Welcome to the FAQ!

This is an ever-growing collection of questions and answers which have been already asked by various people during the lifetime of Tao Classic. The questions are categorized below – click to expand/hide the contents of the different categories.

OS, Requirements, Installation

Q: Currently what OS(es) are supported by Tao Classic?
A: Development is focused on primarily on Windows. Linux and OSX should be also supported, but currently no frequent builds or tests are done on the latter two. The reason is simple: development is currently done by a single person.

Q: Any plans on supporting other OSes?
A: Well, maybe, later on. This pretty much depends on the future of Mono on different OSes.

Q: How about Android?
A: .NET for Android is currently not available as a free framework (Xamarin has paid license), so this takes Android off the table for now.

Q: … and iOS?
A: Pretty much the same as Android – currently there’s only one known .NET framework for iOS (Xamarin.iOS), which is not free and there are no free alternatives, so it’s a no-go either.

Q: Any specific requirements for installing Tao Classic?
A: Nothing special. However to use it, you’ll need to have a .NET or a Mono runtime installed.

Q: Why there’s no installer package at the moment? Tao Framework had a nice NSIS-based installer! I want that back!
A: Having an installer is a convenience function. As development time is the most limited resource, currently focus is on other tasks, sorry. So maybe later.

32bit / 64bit / AnyCPU problems

Q: So i’ve tried the 64bit assemblies of Tao Classic and then i ended up with some BadImageFormatException. Help, please?
A: Tao Classic uses native interop for most of its parts – meaning that the .NET (C#) code in the assemblies, such as Tao.OpenGL will call the native DLLs under the hood. However, this can introduce a problem: if a 64 bit application tries to call a DLL which has been compiled for 32 bit, the caller will run into a problem, because 32 bit DLLs can only be loaded and called by 32 bit applications. This means that if you want to support both 32 bit and 64 bit, you need to have both versions of the native DLLs available. This can be tricky, especially if you don’t want to copy every native DLL your application depends on along with your EXE file. (I suggest doing it anyway however!) The simplest solution is to have two separate directories for the binaries in your application, like bin32 and bin64, where all your DLLs and EXEs can be safely separated and a separate data directory which is shared between those.

Q: Can i use AnyCPU and a single set of native DLLs to get rid of this mess?
A: Actually, it’s the worst choice! Assuming you’ve built your application in AnyCPU mode and you run it on a 64 bit system, it’s possible that it’ll try to load up a 32bit DLL via one of Tao Classic’s assemblies. Guess what? You’ll see a nice fat BadImageFormatException once again! The same applies to having your application running on a 32 bit system, while it tries to load a 64 bit DLL. I guess you’ve figured it out by now – if you build your application with AnyCPU setting, you’ll have to find a way to know, which DLL to load (and actually how?) depending on the system the application is running on. (For the ‘how’ part, you can use Windows API, however it will introduce platform-specific code in your application and you can wave Linux goodbye!)

Supported libraries and APIs

Q: When will be X.Y version of library Z supported?
A: That depends on the amount of changes needed compared to supporting the currently wrapped libraries. The idea is to have the newest version of each library wrapped in each major release of Tao Classic.

Q: Could you please add support for my library?
A: Unfortunately no additional libraries are planned for now, however, feel free to hammer the developer’s mailbox with this question. If your library is successful and people keep asking for it, then well… exceptions can be made.

Q: DirectX?
A: Nope. Probably never. Tao Classic’s goal is to support multiple platforms on the long run – DirectX doesn’t really fits into this picture. Also, there’s a .NET wrapper for DirectX already out there called SlimDX.

Contributing to Tao Classic

Q: I have some crazy ideas that you might find useful! Where can i send those?
A: Once again, feel free to share them with the community via the forum.

Q: I have some tutorials or example code and i’d like to have it added to the site or to the installation package of Tao Classic. What should i do?
A: In this case, contact the developer directly at laszlo.merczel@gmail.com

Module Specific: Tao.Math

Q: Ok, this is not a wrapper module… What’s the point of Tao.Math?
A: Well, to provide classes for handling all the matrix- and vector-related stuff you might encounter during working with Tao Classic, especially with Tao.OpenGL. It’s up to you however, to decide, whether you use Tao.Math or not. It’s fully optional.

Q: This module seems like a bit too much lightweight to me. What’s the deal with it? I could imagine a math library with a lot of more stuff.
A: Good news: Tao.Math is a new addition to Tao Classic and as such, it’s in the works. The fact is, that a surprisingly large percent of people switching to Tao Classic is interested in Tao.Math – literally at the moment every second question the author receives is about this module. Expect some high priority updates on this one, soon enough!

Module Specific: Tao.OpenGL

Q: Why there’s no OpenGL 4.4? The specs has been published weeks ago!
A: Yes, they have. However at the same time Khronos has changed the format of the specifications, so it means that the code generator behind Tao.OpenGL (a separate project which generated the C# code from the OpenGL spec files) has to be almost fully rewritten. And this takes time…

Q: What happened to SimpleOpenGLControl?
A: Gone. For now. The point is that Tao Classic supports OpenGL 3.0+ render context creating and this is something SimpleOpenGLControl can’t do, so it has been replaced with OpenGLControl and OpenGLForm. However it has been already realized that permanently removing a class from an API is a mistake, because there might be people out there who’re planning to migrate from Tao Framework to Tao Classic and they might not be in a mood to start it by rewriting everything that involves SimpleOpenGLControl. So it’ll be back soon.

Module Specific: Tao.SDL

Q: Will Tao Classic support SDL 2.0?
A: Yes, it will, but unfortunately i cannot give an ETA yet…


Q: I’ve ran into some problems. How can i get support?
A: Just like behind anything that is opensource, the most important thing is the community. By having this website, the goal is to have one for Tao Classic too. So the primary place to get support should be the forum. (You can also try opening a ticket on SourceForge, but the experience is – most people won’t do this anyway.)

Q: How about good old problems like i can’t access the forum, etc?
A: In this case, contact the site admin directly at laszlo.merczel@gmail.com

Q: A few days have passed and i’m not getting any replies from the author! Is Tao Classic dead?
A: Probably the author is just way too busy with personal stuff. Don’t worry – if the project ever will be abandoned or discontinued, a statement will be made clean and clear about it, right here on the site, probably months before, so people will have time to migrate to another frameworks, etc.

Licensing, Copyright

To be done…