QUOTE (Conan Kudo @ Jun 20 2010, 09:40 AM)

Hmmm, Visual C++? I'd probably guess it uses Visual Studio solution/project files. I could probably convert that to CMake so that it could work with both MSVC and GCC x86_{32,64}. Since MinGW-w64 is pretty stable now, it should be compilable as 64-bit Windows binaries on the MinGW target.
Yep, it uses Visual Studio solution/project files.
QUOTE (Conan Kudo @ Jun 20 2010, 09:40 AM)

What are the plans for replacing the the DirectX library dependencies? I've got a few suggestions for replacing that stuff.
The engine is not designed to depend on a specific library like DirectX. The game calls the active driver to do the work, and if that driver is a software 3D render, it will work too.
QUOTE (Conan Kudo @ Jun 20 2010, 09:40 AM)

For DirectSound, we should replace that with OpenAL. I've had good experience with it. DirectInput should be replaced with SDL. Since we already have an OpenGL output, that part should be okay.
When I program I usually go for the fastest way to the hardware, such as talking to the drivers of the operating system directly, unless it is too complicated (like compiling shaders for different graphics cards) and another layer is needed.
An example is how GDI works in Windows:
You have GDI32.DLL dynamically linked with your program which you must use to draw on your window, and GDI32.DLL will validate the call and make a system call into WIN32K.DLL on the driver side to do the actual work.
But you can also use the newer and "improved?" GDIPLUS.DLL, which is a layer to GDI32.DLL to add object oriented classes. You call GDIPLUS.DLL which will do a set of work and then call GDI32.DLL, and so on...
GDIPLUS is much slower than GDI32.DLL, and it also has some nasty bugs that Microsoft decided to never fix because they saw the flaw in the design and gave up.
This is taken from the English wiki page for SDL:
QUOTE
On Microsoft Windows, SDL uses a GDI backend by default. A DirectX backend is also available. Older versions of SDL used DirectX 5, but SDL 1.2 (the current stable release) requires DirectX 7 by default. Sam Lantinga has stated that he plans to use DirectX 8 in future SDL releases.[
A layer to do things that we are already doing, is not an improvement. Also it doesn't sound very exciting to me, that is currently using Direct3D 9 with shaders! DirectX 8 is so last decade.
Instead of depending on layers that are not designed to work with a Sonic game, a custom engine with its own drivers are used instead. Those driver calls are built specially designed to work with Sonic games, and if that interface can't be provided by a specific platform, the platform cannot support this Sonic game.
You need the right hardware to run Sonic 2HD. If the driver written to support the game is not 100% compatible, it will be cut. That are the rules.
I have already cut alot of things because of limits in today's technology. Usually what was cut had to do with visual apeal.
The engine simply runs its own layer for converting calls to the platform's real drivers. There is no need for another layer.
Note that all of the engine is documented with Doxygen, so that I will not have to take my time to explain all the stuff that is going on.