this patch adds wglGetExtensionsStringARB to the opengl.dll. I don't know if it really does all in the proper way. So somebody with more opengl experiences should take a look at the patch before including it.
Well, I think the best way would be to do something like that :
Index: dlls/opengl32/opengl32.spec =================================================================== RCS file: /home/wine/wine/dlls/opengl32/opengl32.spec,v retrieving revision 1.19 diff -u -r1.19 opengl32.spec --- dlls/opengl32/opengl32.spec 20 Mar 2003 03:53:13 -0000 1.19 +++ dlls/opengl32/opengl32.spec 3 May 2003 20:41:57 -0000 @@ -6,6 +6,7 @@ @ stdcall wglGetCurrentContext() @ stdcall wglGetCurrentDC() @ stdcall wglGetExtensionsStringEXT() +@ stdcall wglGetExtensionsStringARB() wglGetExtensionsStringEXT @ stdcall wglGetLayerPaletteEntries(long long long long ptr) @ stdcall wglGetProcAddress(str) @ stdcall wglMakeCurrent(long long)
Could you try if this works for you ?
Basically, your patch is wrong because you return OpenGL extensions whereas this function should return WGL extensions (and as we do not support any for now, we return an empty string).
Moreover, Wine already supported 'wglGetExtensionsStringEXT' (needed by some games), so I just told here that 'wglGetExtensionsStringARB' is a duplicate of the 'wglGetExtensionsStringEXT' function.
Lionel
Hi Lionel,
On Sat, 2003-05-03 at 22:44, Lionel Ulmer wrote:
this patch adds wglGetExtensionsStringARB to the opengl.dll. I don't know if it really does all in the proper way. So somebody with more opengl experiences should take a look at the patch before including it.
Well, I think the best way would be to do something like that :
Index: dlls/opengl32/opengl32.spec
RCS file: /home/wine/wine/dlls/opengl32/opengl32.spec,v retrieving revision 1.19 diff -u -r1.19 opengl32.spec --- dlls/opengl32/opengl32.spec 20 Mar 2003 03:53:13 -0000 1.19 +++ dlls/opengl32/opengl32.spec 3 May 2003 20:41:57 -0000 @@ -6,6 +6,7 @@ @ stdcall wglGetCurrentContext() @ stdcall wglGetCurrentDC() @ stdcall wglGetExtensionsStringEXT() +@ stdcall wglGetExtensionsStringARB() wglGetExtensionsStringEXT @ stdcall wglGetLayerPaletteEntries(long long long long ptr) @ stdcall wglGetProcAddress(str) @ stdcall wglMakeCurrent(long long)
Could you try if this works for you ?
didn't work:
trace:opengl:X11DRV_ChoosePixelFormat (0x403942a0,0x40dd1bd4) - size / version : 40 / 1 - dwFlags : PFD_DOUBLEBUFFER PFD_DRAW_TO_WINDOW PFD_SUPPORT_OPENGL - iPixelType : PFD_TYPE_RGBA - Color : 16 - Alpha : 0 - Accum : 0 - Depth : 16 - Stencil : 0 - Aux : 0 - iLayerType : PFD_MAIN_PLANE trace:opengl:X11DRV_ChoosePixelFormat Found visual : 0x3c0b8160 - returns 1 trace:opengl:X11DRV_SetPixelFormat (0x403942a0,1,0x40dd1bd4) trace:opengl:wglCreateContext (0x12c) trace:opengl:wglCreateContext creating context 0x40394338 (GL context creation delayed) trace:opengl:wglMakeCurrent (0x12c,0x40394338) trace:opengl:wglMakeCurrent created a delayed OpenGL context (0x3c0bd990) trace:opengl:wglMakeCurrent returning True trace:opengl:wine_glGetString (7939) trace:opengl:wglGetProcAddress (wglGetExtensionsStringARB) trace:opengl:wglGetProcAddress found function in 'standard' OpenGL functions (0x43e5cca8) trace:opengl:wglGetExtensionsStringEXT () returning "" trace:opengl:wglMakeCurrent ((nil),(nil)) trace:opengl:wglMakeCurrent returning True trace:opengl:wglDeleteContext ((nil)) warn:opengl:wglDeleteContext Error deleting context !
Looks like it needs some extensions.
Basically, your patch is wrong because you return OpenGL extensions whereas this function should return WGL extensions (and as we do not support any for now, we return an empty string).
I thought that, but it was working and I've not much experiences with opengl.
Bye, Michael
Looks like it needs some extensions.
Could you try again with your patch (mine is obviously wrong now that I looked a bit more as the ARB versions has a HDC parameter while the EXT one has not) but with returning the empty string ?
Could you also try and just return the 'WGL_ARB_extensions_string' string :-) ?
If this works, can you resubmit your patch by changing the 'static const char *WGL_extensions = "";' line to 'static const char *WGL_extensions = "WGL_ARB_extensions_string WGL_EXT_extensions_string";'
And to have wglGetExtensionsStringARB returning what wglGetExtensionsStringEXT returns ?
I thought that, but it was working and I've not much experiences with opengl.
Well, the only way to be really sure would be to go on Windows and to call this function to see if it returns also 'plain' GL extensions. If no, we are in our rights to not return anything :-)
Lionel
If this works, can you resubmit your patch by changing the 'static const char *WGL_extensions = "";' line to 'static const char *WGL_extensions = "WGL_ARB_extensions_string WGL_EXT_extensions_string";'
And to have wglGetExtensionsStringARB returning what wglGetExtensionsStringEXT returns ?
I hope I did it the right way :)
Bye, Michael
I hope I did it the right way :)
Perfect :-) (so I suppose this 'hack' works ?)
There is just the Changelog missing (or maybe you did provide it in the first version of the patch).
Anyway, to be even more perfect, one would have changed also the 'make_opengl' script to also add the new API in it.. But well, do not re-send the patch again, I will do it in my next update.
Lionel