Difference between revisions of "ReactX"

From ReactOS Wiki
Jump to: navigation, search
m (Changelog)
m
Line 3: Line 3:
 
'''DirectX'''
 
'''DirectX'''
  
'''Development Plan'''<br>
+
'''Development Plan'''<br />
How should we implement DirectX? There has been a long discussion on IRC about what is best. We will only use part of the DirectX code from Wine, not all.<br>
+
How should we implement DirectX? There has been a long discussion on IRC about what is best. We will only use part of the DirectX code from Wine, not all.<br />
We have taken the header files from Wine, and also some other DLLs that don't need a rewrite. Thanks to that we now have already very basic support for DirectX.<br>
+
We have taken the header files from Wine, and also some other DLLs that don't need a rewrite. Thanks to that we now have already very basic support for DirectX.
  
'''Can I run 3D Games that need DirectX ?''' <br>
+
'''Can I run 3D Games that need DirectX ?''' <br />
That question is hard to answer since we don't have any graphics support for DirectX in ReactOS yet.<br>
+
That question is hard to answer since we don't have any graphics support for DirectX in ReactOS yet.<br />
Blight_ has done an amazing job in hunting down the Hardware Acceleration bug for Nvidia OpenGL. If you have an Nvidia graphics driver and your games support OpenGL as renderer then your game will probably work, but without any sound.<br>
+
Blight_ has done an amazing job in hunting down the Hardware Acceleration bug for Nvidia OpenGL. If you have an Nvidia graphics driver and your games support OpenGL as renderer then your game will probably work, but without any sound.<br />
ReactOS has had software support for OpenGL 1.4 for a very long time now. This is also thanks to Blight_.<br>
+
ReactOS has had software support for OpenGL 1.4 for a very long time now. This is also thanks to Blight_.
  
As for the status of the DirectX DLLs.<br>
+
As for the status of the DirectX DLLs.<br />
These are not all DirectX DLL files but they are the most used for apps and games.<br><br> 
+
These are not all DirectX DLL files but they are the most used for apps and games.
  
'''d3d8'''<br>
+
'''d3d8'''<br />
We can't use Wine, so it needs to be rewritten to support hardware acceleration and software rendering.<br>  
+
We can't use Wine, so it needs to be rewritten to support hardware acceleration and software rendering.<br />
Some parts are already done in Win32k.<br><br>
+
Some parts are already done in Win32k.
  
'''d3d9'''<br>
+
'''d3d9'''<br />
We can't use Wine, so it needs to be rewritten to support hardware acceleration and software rendering.<br>  
+
We can't use Wine, so it needs to be rewritten to support hardware acceleration and software rendering.<br />
Some parts are already done in Win32k.<br><br>
+
Some parts are already done in Win32k.
  
'''d3dx8'''<br>  
+
'''d3dx8'''<br />
We can't use Wine, so it needs to be rewritten to support hardware acceleration and software rendering.<br>  
+
We can't use Wine, so it needs to be rewritten to support hardware acceleration and software rendering.<br />
Some parts are already done in Win32k.<br><br>
+
Some parts are already done in Win32k.
  
'''d3dxof'''<br>  
+
'''d3dxof'''<br />
Not checked yet.<br><br>
+
Not checked yet.
  
'''ddeml'''<br>  
+
'''ddeml'''<br />
Not checked yet.<br><br>
+
Not checked yet.
  
'''ddraw'''<br>
+
'''ddraw'''<br />
We can't use Wine, so it needs to be rewritten to support hardware acceleration and software rendering.<br>  
+
We can't use Wine, so it needs to be rewritten to support hardware acceleration and software rendering.<br />
Some parts are already done in Win32k.<br><br>
+
Some parts are already done in Win32k.<br /><br />
I am working on this.<br><br>
+
I am working on this.
 
'''devenum'''<br>
 
Same level as Wine. No modifications were made in the source (if I remember correctly). It is in SVN.<br>
 
(Status 75% - from Wine website)<br><br>
 
  
'''dinput'''<br>  
+
'''devenum'''<br />
 +
Same level as Wine. No modifications were made in the source (if I remember correctly). It is in SVN.<br />
 +
(Status 75% - from Wine website)
 +
 
 +
'''dinput'''<br />
 
poll mouse and some other small change are ReactOS specific,
 
poll mouse and some other small change are ReactOS specific,
 
these change working in windows and in wine, it give us bit more stable
 
these change working in windows and in wine, it give us bit more stable
and we can run all DX9 example program.<br><br>
+
and we can run all DX9 example program.
  
 
Todo: load the driver so that it looks up by a GUID id and use that driver.
 
Todo: load the driver so that it looks up by a GUID id and use that driver.
Wine will never implement this for 100%, because they're using only one driver for keyboard, one for the mouse and one for the joystick.<br><br>
+
Wine will never implement this for 100%, because they're using only one driver for keyboard, one for the mouse and one for the joystick.
  
No joystick support or 100% mouse support.<br>
+
No joystick support or 100% mouse support.<br />
When ReactOS gets user hooks for keyboard and mouse, then we'll be on exactly the same level as Wine here.<br><br>
+
When ReactOS gets user hooks for keyboard and mouse, then we'll be on exactly the same level as Wine here.
  
'''dinput8'''<br>
+
'''dinput8'''<br />
Same as Wine. No modifications were made in the source since it is linked against Wine.<br><br>
+
Same as Wine. No modifications were made in the source since it is linked against Wine.
  
'''dmband'''<br>
+
'''dmband'''<br />
Not checked yet.<br><br> 
+
Not checked yet.
  
'''dmcompos'''<br>
+
'''dmcompos'''<br />
Not checked yet.<br><br>
+
Not checked yet.
  
'''dmime'''<br>
+
'''dmime'''<br />
Not checked yet.<br><br>
+
Not checked yet.
  
'''dmloader'''<br>
+
'''dmloader'''<br />
Not checked yet.<br><br>
+
Not checked yet.
  
'''dmscript'''<br>
+
'''dmscript'''<br />
Not checked yet.<br><br>
+
Not checked yet.
  
'''dmstyle'''<br>
+
'''dmstyle'''<br />
Not checked yet.<br><br>
+
Not checked yet.
  
'''dmsynth'''<br>
+
'''dmsynth'''<br />
Not checked yet.<br><br>
+
Not checked yet.
  
'''dmusic'''<br>
+
'''dmusic'''<br />
Not checked yet.<br><br>
+
Not checked yet.
  
'''dmusic32'''<br>
+
'''dmusic32'''<br />
Not checked yet.<br><br>
+
Not checked yet.
  
'''dplay'''<br>
+
'''dplay'''<br />
Same level as Wine. No modifications were made in the source (if I remember correctly). It is in SVN.<br><br>
+
Same level as Wine. No modifications were made in the source (if I remember correctly). It is in SVN.
  
'''dplayx'''<br>
+
'''dplayx'''<br />
Same level as Wine. No modifications were made in the source (if I remember correctly). It is in SVN.<br><br>
+
Same level as Wine. No modifications were made in the source (if I remember correctly). It is in SVN.
  
'''dpnet'''<br>
+
'''dpnet'''<br />
Not checked yet.<br><br>
+
Not checked yet.
  
'''dpnhpast'''<br>
+
'''dpnhpast'''<br />
Not checked yet.<br><br>
+
Not checked yet.
  
'''dsound'''<br>  
+
'''dsound'''<br />
My patch for dsound have been last commit to reactos<br>
+
My patch for dsound have been last commit to reactos<br />
It is base on Wine Dsound<BR>
+
It is base on Wine Dsound<br />
Change: <br>
+
Change: <br />
hardcode it to software mode <br>
+
hardcode it to software mode <br />
remove some wine-specific calls and make a wrapper for them<br>
+
remove some wine-specific calls and make a wrapper for them<br />
TODO:<br>
+
TODO:<br />
Add HW acceleration<br>
+
Add HW acceleration
<br>
 
  
'''dswave'''<br>  
+
'''dswave'''<br />
Not checked yet.<br><br>
+
Not checked yet.
  
'''dxdiagn'''<br>  
+
'''dxdiagn'''<br />
Same level as Wine. No modifications were made in the source (if I remember correctly). It is in SVN.<br>
+
Same level as Wine. No modifications were made in the source (if I remember correctly). It is in SVN.<br />
(Status from Wine website: 100%)<br><br>
+
(Status from Wine website: 100%)
  
'''quartz'''<br>
+
'''quartz'''<br />
Not checked yet.<br><br>
+
Not checked yet.
  
 
'''wined3dcfg.cpl'''
 
'''wined3dcfg.cpl'''
  
<br><br>
+
Magnus Olsen<br />
Magnus Olsen<br>
 
 
GreatLord
 
GreatLord
 +
== See Also ==
 +
* [[OpenGL]]
  
==Changelog==
+
[[Category:ReactOS Components]]
[[ChangeLog-0.2.5]]
 
* Port over wine dinput / dinput8 to reactos (rewrite wine dinput from using gdi hooks for it is not support yet in reactos, it has a bug on mouse buffer. Some directx apps are working if it only need keyboard or mouse.) ([[Magnus Olsen]])
 
 
 
[[ChangeLog-0.2.6]]
 
* fix some bugs in GetDeviceData so it's working now.
 
 
 
* It's working now in Unreal Tournament
 
 
 
* Bug fix from 0.2.6 RC1 was
 
1. The Y-axis are not longer choppy
 
 
 
2. The mouse does not have a delay at 50ms as Directx doc say.
 
it makes it no longer choppy.
 
 
 
3. Set right time stamp on the mouse buffer packet
 
 
 
4. Set calaction right value for event counter for GetDevice
 
50ms equal with one event counter.
 
 
 
* Now even more DirectX apps working.
 
 
 
'''ReactX is a Win32 library'''
 
 
 
[[ChangeLog-0.2.7]]
 
* Reverted last previous sync with Wine and userhook&mdash;before we can sync with Wine, we need to rewrite the enumeration and registration of devices so that they work correctly in both ReactOS and Windows
 
* Added SVN rev. 15043 and userhooks only for the mouse&mdash;the mouse now works in tribles in windowed mode, but in full screen it is a bit choppy; however, this has not been tested in tribles on ReactOS with the new code
 
 
 
([[Magnus Olsen]]).
 
 
 
[[ChangeLog-0.2.8]]
 
Some new stuff for directx, but the call are not in use yet. and it is not wort mentor, untill we can test the api, the change was implement some gdientr to gdi32.dll and some change to win32k. ([[Magnus Olsen]])
 
 
 
[[ChangeLog-0.2.9]]
 
 
 
* Create new headers and clean up existing headers (nothing users will notice yet) ([[Magnus Olsen]])
 
* dplay and dplayx have been taken from wine with minor alterations. ([[Magnus Olsen]])
 
* Implement the following api's but not tested yet for directx hal in win32k : WaitForVerticalBlank, GetScanLine, FlipToGDISurface ([[Magnus Olsen]])
 
* Added d3d8thk.dll and dplay.dll to bootcd ([[Magnus Olsen]])
 
* Added dplayx.dll to bootcd  ([[Magnus Olsen]])
 
* Sync all code shared with Wine ([[Gé van Geldorp]])
 
 
 
[[ChangeLog-0.3.0]]
 
 
 
* Increased DirectX version number to 5.03.2600.2180 ([[Magnus Olsen]])
 
* DirectX : fixed a member name in DD_SURFACECALLBACKS so it is equal to ddk ([[Magnus Olsen]])
 
* DirectX : update d3dhal.h it needs to be rewritten it does not contain all info we need. ([[Magnus Olsen]])
 
* DirectX : ddraw.dll : start to implement D3DParseUnknownCommand this is the ground ([[Magnus Olsen]])
 
* DirectX : ddraw.dll : Correct the HAL startup process thanks to Steffen Schulze to solv it He is working with close software He have wrote complete MoComp to us but  am waiting with to commit that interface. Rember all code he have done is being use in close source apps and thuse apps will stay close source. In his source code overlay surface is working fine. This is frist step to correct HAL. Now we need fix the CreateSurface process. ([[Magnus Olsen]])
 
* DirectX : ddraw.dll :Implement Restore mode in DDraw interface ([[Magnus Olsen]])
 
* DirectX : ddraw.dll : 1. Clean up Hal_DirectDraw_CreateSurface 2. Start implemenr createsurface overlay base on Steffen Schulze code. ([[Magnus Olsen]])
 
* DirectX : ddraw.dll : This is frist directdraw version than can run reactos ddraw demo in windows with our own ddraw.dll 1. Implement DdBlt in ddraw it is not a complete implement it does not blt from a source surface to destination surface. for we do not create other types that primary surface for now. and it is always primary is the destination. Rember it does not working in fullscreen that is a bug. ([[Magnus Olsen]])
 
 
 
==See Also==
 
[[OpenGL]]
 
[[Category:ReactOS_Components]]
 

Revision as of 06:23, 28 May 2014

This page is probably outdated

The information on this page might not be valid for the current state of ReactOS.
A Wiki Administrator should look at this page and decide or discuss what to do with it.


DirectX

Development Plan
How should we implement DirectX? There has been a long discussion on IRC about what is best. We will only use part of the DirectX code from Wine, not all.
We have taken the header files from Wine, and also some other DLLs that don't need a rewrite. Thanks to that we now have already very basic support for DirectX.

Can I run 3D Games that need DirectX ?
That question is hard to answer since we don't have any graphics support for DirectX in ReactOS yet.
Blight_ has done an amazing job in hunting down the Hardware Acceleration bug for Nvidia OpenGL. If you have an Nvidia graphics driver and your games support OpenGL as renderer then your game will probably work, but without any sound.
ReactOS has had software support for OpenGL 1.4 for a very long time now. This is also thanks to Blight_.

As for the status of the DirectX DLLs.
These are not all DirectX DLL files but they are the most used for apps and games.

d3d8
We can't use Wine, so it needs to be rewritten to support hardware acceleration and software rendering.
Some parts are already done in Win32k.

d3d9
We can't use Wine, so it needs to be rewritten to support hardware acceleration and software rendering.
Some parts are already done in Win32k.

d3dx8
We can't use Wine, so it needs to be rewritten to support hardware acceleration and software rendering.
Some parts are already done in Win32k.

d3dxof
Not checked yet.

ddeml
Not checked yet.

ddraw
We can't use Wine, so it needs to be rewritten to support hardware acceleration and software rendering.
Some parts are already done in Win32k.

I am working on this.

devenum
Same level as Wine. No modifications were made in the source (if I remember correctly). It is in SVN.
(Status 75% - from Wine website)

dinput
poll mouse and some other small change are ReactOS specific, these change working in windows and in wine, it give us bit more stable and we can run all DX9 example program.

Todo: load the driver so that it looks up by a GUID id and use that driver. Wine will never implement this for 100%, because they're using only one driver for keyboard, one for the mouse and one for the joystick.

No joystick support or 100% mouse support.
When ReactOS gets user hooks for keyboard and mouse, then we'll be on exactly the same level as Wine here.

dinput8
Same as Wine. No modifications were made in the source since it is linked against Wine.

dmband
Not checked yet.

dmcompos
Not checked yet.

dmime
Not checked yet.

dmloader
Not checked yet.

dmscript
Not checked yet.

dmstyle
Not checked yet.

dmsynth
Not checked yet.

dmusic
Not checked yet.

dmusic32
Not checked yet.

dplay
Same level as Wine. No modifications were made in the source (if I remember correctly). It is in SVN.

dplayx
Same level as Wine. No modifications were made in the source (if I remember correctly). It is in SVN.

dpnet
Not checked yet.

dpnhpast
Not checked yet.

dsound
My patch for dsound have been last commit to reactos
It is base on Wine Dsound
Change:
hardcode it to software mode
remove some wine-specific calls and make a wrapper for them
TODO:
Add HW acceleration

dswave
Not checked yet.

dxdiagn
Same level as Wine. No modifications were made in the source (if I remember correctly). It is in SVN.
(Status from Wine website: 100%)

quartz
Not checked yet.

wined3dcfg.cpl

Magnus Olsen
GreatLord

See Also