wgl prototypes missing from wingdi.h
Andreas Mohr
andi at rhlx01.fht-esslingen.de
Thu Jul 15 02:29:34 CDT 2004
Hi,
On Wed, Jul 14, 2004 at 08:45:04PM +0200, Lionel Ulmer wrote:
> > Uhhh. So should I file a bug report?
>
> Well, it would be a nice way to prevent it falling out of my TODO list
> (which is rather huge :-) ).
>
> > I don't see where the conflict is. I thought that wgl was Windows only.
> > What Linux headers will define prototypes that appear in wgl.h?
>
> The problem is not with the wgl.h header, but with the other OpenGL headers
> (GL/gl.h, GL/glext.h) which are almost the same between Windows and Linux.
> except for the calling convention. And as you use Wine's OpenGL library, you
> need to include a GL/gl.h file that defines this prototype with a 'stdcall'
> convention (which you will not have when including Linux' GL include which
> declares it as a 'cdecl' prototype). So Wine needs also to provide not only
> wgl.h but also GL/gl.h and GL/glext.h.
>
> Basically, it's a mess :-)
...which could perhaps be solved by making the calling convention a define
in the Linux headers, no?
/* our headers usually need cdecl, but external software sometimes has different requirements, so allow overriding */
#ifndef WGL_CALLCONV
#define WGL_CALLCONV cdecl
#endif
And Wine then simply does:
#define WGL_CALLCONV stdcall
#include "opengl_header.h"
Or am I completely and utterly mistaken here?
Andreas Mohr
More information about the wine-devel
mailing list