http://bugs.winehq.org/show_bug.cgi?id=25423
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://pouet.net/prod.php?w |http://titandemo.org/prod_a |hich=56331 |.php?id=69 CC| |focht@gmx.net Component|-unknown |opengl Summary|"38644" 1024 bytes demo |"38644" - Mandelbulb in 1K |crashes |intro crashes
--- Comment #2 from Anastasius Focht focht@gmx.net 2011-10-30 07:42:51 CDT --- Hello,
it seems the demo uses its own loader/imports resolver (directly walks PE structures).
Unfortunately it can't cope with forwarded imports. The author probably didn't expect that Wine forwards some opengl32 API.
Partial dump of the loaders own "IAT":
--- snip --- ... 004300B4 7E61A912 ; opengl32.glColor3us 004300B8 7E61969C ; opengl32.glAccum 004300BC 7E62259D ; opengl32.glRectf 004300C0 7E61969C ; opengl32.glAccum 004300C4 7E66C75C ; ASCII "gdi32.wglCreateContext" 004300C8 7E6266B2 ; opengl32.wglGetProcAddress 004300CC 7E66C7EA ; ASCII "gdi32.wglMakeCurrent" 004300D0 00000000 --- snip ---
opengl32.spec:
http://source.winehq.org/git/wine.git/blob/658b048940e837e988487a64a4be3d4c6...
If you make small wrappers for wglCreateContext() and wglMakeCurrent() which call corresponding gdi32 API using function pointers the demos will work.
The "magic" of 1K is actually a little shader snippet and of course squeezing out PE header specs ;-)
Regards