[ros-kernel] suggestion regarding d3d8thk (and directx in general)
Peter Bajusz
hyp-x at stormregion.com
Sun Nov 16 11:38:23 CET 2003
I repost this message as it didn't seem to get trough.
Jonathan Wilson wrote:
> Its good to see that we now have a d3d8thk (which we will need to get
> DirectX going), however IMO it would be better to implement the DdEntry
> and GdiEntry exports from gdi32.dll which is how real windows works.
gdi32.dll doesn't appear to have DdEntry entry points anymore on real
windows.
I didn't check where this change occured, but possibly it replaces
gdi32.dll when installing DX8 or later.
GdiEntry points are legacy interfaces.
D3D uses only 2 of them but they have d3d8thk equivalents and their
eqivalents do work on real windows. (I think they simply forgot to fix
their code.)
> Given that, we dont even need d3d8thk since the d3d8thk that cones with
> DirectX will work.
>
No we need d3d8thk, as it calls kernel entry points directly and if I
understand corretly entry point ordinals are not portable. (Possibly not
even between different NT revisions.)
> Basicly for directdraw/direct3d, we need:
> 1.correct driver support so that we can load 2k/XP display drivers
Yep.
> 2.implementation for DdEntryxxx and GdiEntryxxx
Depends on what route we take.
You are certainly talking about running the real MS ddraw/d3d runtimes.
I think there's two problems with that:
1. We probably have to fix a LOT of things in ROS to make them run.
I'm writing the simplest code possible for my d3d9 runtime, yet I run
into basic unimplemented functions such as EnumDisplayDevices.
This is not needed for a simple and naive implementation, but it (and
much more) will surely needed if you wan't to run MS's runtimes.
2. DirectX is not free (not in the price sense).
ROS cannot come with DX runtime preinstalled, not a user is allowed to
install DX on ROS unless they own a Windows licence (which somehow
defeats the purpose of ROS.):
"NOTE: IF YOU DO NOT HAVE A VALIDLY LICENSED COPY OF ANY VERSION OR
EDITION OF MICROSOFT WINDOWS 98, WINDOWS MILLENIUM, WINDOWS 2000,
WINDOWS XP OPERATING SYSTEM OR ANY MICROSOFT OPERATING SYSTEM THAT IS A
SUCCESSOR TO ANY OF THOSE OPERATING SYSTEMS (each an "OS Product"), YOU
ARE NOT AUTHORIZED TO INSTALL, COPY OR OTHERWISE USE THE OS COMPONENTS
AND YOU HAVE NO RIGHTS UNDER THIS SUPPLEMENTAL EULA."
> 3.proper implementation for the win32k portions of DirectX (i.e.
> everything that is part of windows and not directx)
Yes I started this, but it's quite hard to test this code until I can
have a real driver running.
(These functions does nothing more than passing data to the driver.)
--
Peter Bajusz / Stormregion
Chaos always defeats order, because it's better organized. -- T.P.
More information about the Ros-kernel
mailing list