What is the DXGL ? project?
In prior versions of Direct3D, doing a port was not an easy thing. Now, the API is much simpler and we are finally able to write a port of the architecture. This is also the first port of Direct3D onto a non-Microsoft platform. We can do it now because we know how to accomplish this project.

DXGL is open sourced?
Yes, it is now, as MIT license.This is the same license than used for OpenBeOS.

Can use DXGL Wrapper as FULL replacement of my current DirectX 8 driver ?
No, but if you develop an Direct3D 8 program, you can use the wrapper and see if is compatible. If not, just reports the problems you have..

I can't install DXGL under Windows 2K/XP. How to fix that ?
If you have an error when enabling the wrapper you may need to turn off Windows File Protection (WFP) as the wrapper replaces the Direct3D dll's. Do this by opening regedit and changing the value of SFCDisable in the key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" to 1 NOTE: This means that system files are no longer protected from installers and other programs that may overwrite them with older versions, change the value back to 0 to protect the system files.

How will it work ?
Right now, the Direct3D 8 port will be a layer on top of OpenGL (the newest implementation). Some routines will have to be optimized in assembler in order to compensate for the emulation process.

I have developed a Direct3D 8 program. How will I compile it under BeOS ?
The interfaces will be the same. Of course, depending on the evolution of the OpenGL extensions, features like single pass rendering, cube mapping will be implemented. You will have to rewrite the Window's messaging process, but under BeOS, it's more simpler. We also provide a tool that converts Visual C++ resources into BeOS source code. Direct X headers will be modified to be platform independent too.

So, if it's an 'OpenGL' emulation, I should write my application directly in OpenGL?
Of course, but with Direct3D 8, you won't need to write the thread management, window creation, (which is not fully evident for programmer who worked in a mono-threaded environment) and all that specific stuff.The implementation will be straight-forward. You just create a Be Application, create a Direct3D8 object and that it. Initialization in twenty lines of source code. So ...

How will OpenGL'wrapper work with a new Direct3D 8 program and what will be it's performance?
During the development phase, we provide a Direct3D 8 wrapper under Windows and we run the Direct3D 8 application on it. Under Windows, Direct3D programs which were compiled for Direct X 8 use the D3D8.DLL file (the Direct3D 8 core engine). We create a new D3D8.DLL that can be installed on the computer alongside the Direct3D programs, but in fact, this DLL will be our Direct3D to OpenGL wrapper. This will prove that our Direct3D to OpenGL wrapper emulation works. Using our programs or any third party benchmark programs, you will be able to evaluate the emulation performance. When completed, we just compile the wrapper onto the BeOS platform, since the source code will be designed for it.

It's crazy, the BeOS market is small. Why bother with this anyways?
Well, Because we have the opportunity to provide features that could encourage game companies to consider BeOS as a possible platform for developing games on it and ease the port from Windows to BeOS. We also provide tools for exporting the Windows User Interface to BeOS. UPDATE: This tool is already available on Bebits

But there is no hardware 3D acceleration ?
The new release of the OpenGL Kit (currently in beta version) now supports hardware acceleration. We've tested it and it works and it is fast enough for rendering games at the same speed as Windows. Moreover, Direct3D 8 for BeOS will have some assembler optimized routines for SSE and 3DNow! that are not available with the default OpenGL driver.UPDATE: Again, due the end of Be, only OpenBeOS will answer this question.

Did Be ask you to do the port?
No, we are totally independent on this project. The port of Direct3D for Linux should be possible too, later. When the product is complete, we will give to Be Inc. the source code of the layer and perhaps they will integrate it in the next release version of BeOS. All we want from them is that they complete the hardware acceleration support for BeOS. UPDATE: Again, due the end of Be, this does not matter anymore. Some sources said that Be was against this idea.

Can I beta test Direct3D 8 ?
A beta version of Direct3D will be available when we have some source code samples. These samples will be based upon original Direct 3D 8 samples. UPDATE: The DXGL Wrapper is now available.

And the whole Direct X system?
Yes later, of course, DirectSound and DirectInput will be supported. Of course, the next release of Direct X will be supported (Direct X 9). UPDATE: DirectX 8.1 is now supported. Supporting DirectX 9 should not be a problem because the API changes are still smalls.

Are there any legal issues that can arise with Microsoft?
Direct X API will be a bit like MESA and OpenGL (same features, and 95% compatible with all Direct X source code). If incompatibilities are found, we will fix them in order to give the most accurate results. In any case, some slight changes will have to be done. We won't disassemble/reverse engineering Direct X source code, but instead will write an API based from the Direct X 8 SDK documentation, with the same interface, function names and so on.

When will DirectX for BeOS will be available ?
A beta version should be available starting in March or April 2001. After the final release of the new OpenGL API on BeOS, Direct 3D 8 for BeOS should be available and free to download from our site. UPDATE: Again, wait for OpenBeos.

DirectX8 introduces Pixel Shaders and Vertex Shaders. Will they besupported ?
They will be supported, of course, as far as Be will support the equivalent OpenGL features. At the OpenGL initialization time, the wrapper checks that the correct extensions are detected and uses them. Actually multitexturing, palette texturing are supported too. NVidia has just released the new OpenGL extensions for Pixel Shaders and Vertex Shaders. Probably other manufactures will follow. UPDATE: new OpenGL 1.4 extensions like ARB_vertex_program and ARB_fragment_program now fix that problem !.

 


For getting information about DirectX for Win32, see the Official Direct X Site

 For Direct3D information, see the NVidia Developer Site where a lot of samples code is provided.

 For OpenGL development, see the www.opengl.org site

 For BeOS development, see the OpenBeOS Web Site.