|
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.
|