DDraw, wined3d (d3d8,
d3d9) and OpenGL32 in Mac OSX + stack fudging -- x86 only
ccn at ccntech.com
Sun Apr 30 16:56:03 CDT 2006
I didn't work on this patch, but I can add some answers to Mike's
On Sun, 30 Apr 2006 05:32:49 -0700, Mike Hearn wrote:
> On Sat, 29 Apr 2006 14:46:33 -0700, Nick Burns wrote:
>> OpenGL dynamic loading
>> -- Mac OSX does not need to dlsym every ogl entry point -- it
>> that for you...
> Hmm, well so do Windows and Linux ;) I think it's done that way
> some of the GL functions are introduced in later versions of OpenGL
> so we
> need to test for them at runtime.
We can at least avoid any direct dlsym references on the Mac and
simply use the glXGetProcAddress procedure. Also, for anything that
is added to the OpenGL stack post 10.4.4 or whatever the first intel
version of OS X was, it could avoid a huge amount of
glXGetProcAddress's for the included opengl calls like glBegin, etc.
Was there more to this you wanted to add, Nick?
>> Stack fudging
>> -- mac requires 16 byte aligned stack windows does not
>> -- this leads to illegal instructions (aligned wrongly)
> This is an Intel Mac right?! Intel chips have never required
> alignment as
> far as I know, though it can help performance.
This is not a requirement by the processor, per se, but by the OS X
ABI. When a windows function attempts to call into an OS X function,
the ABI must be properly set up in order to work with the OS X ABI
compliant code. 16 byte alignment is one requirement of OS X's ABI:
>> GLX Root Window
>> -- Wine uses the fact that a root window exists in x11 in many
>> -- But no one wants to run the x11 root window on their mac
>> (what the
>> b&w checkerz are ugly?)
> What stops you fixing the Mac X server to, well, not suck? I don't
> see why
> you need to hack Wine to fix this.
On systems that already have roots like the Window Server on OS X and
the GDI root on Windows, your system then looks like Linux. This
works fine and all, but it makes it so that Mac OS X and Windows apps
don't show up side by side with the linux apps. In the end, I'm sure
it would be most desirable to avoid X11 on the Mac completely because
it's an optional install (albeit easily installable after the fact)
and it just doesn't have an OS X feel to it, which is what people
would desire who are running OS X.
More information about the wine-devel