Subject: w32api-2.5 <GL/glu.h> does not define wchar_t (Was: opengl-1.1.0-7 glut.h does not define wchar_t)
From: Andre Bleau <[email-masked]>
To: [email-masked]
Cc: [email-masked]
Date: Thu, 19 Feb 2004 11:12:32 -0500

Philip Lamb <phil at rave dot co dot nz> wrote:
>Hello,
>
>The changes to <GL/glu.h> in w32api-2.5 expose a problem with the glut.h 
>in opengl-1.1.0-7 package, file <GL/glut.h>. The problem is that whcar_t 
>is now required to be defined by /usr/include/w32api/GL/glu.h, however 
>glut.h does not do so.

I think you meant glu.h in the above line.

>I'm not sure where the _best_ place to put a definition is; for myself I 
>have put it at line 153 of glut.h. Others may wish to do so too, and 
>perhaps a patch to the opengl package is in order if other more 
>knowledgeable folks concur.

No glut function uses wchar_t in any form, so IMO it does _not_ belong 
there. The only thing GL-related that uses wchar_t is 
gluErrorUnicodeStringEXT, an M$-specific extension to GLU; from w32api-2.5 
usr/include/w32api/GL/glu.h :

GLAPI const wchar_t * APIENTRY gluErrorUnicodeStringEXT (GLenum error);

 From w32api-2.5 announcement:

>2003-09-24  Dimitri Papadopoulos  <[email-masked]>
>
>         * include/GL/glu.h (gluErrorUnicodeStringWIN): Add macro
>         function. MSDN suggests using gluErrorUnicodeStringWIN
>         instead of gluErrorString, as it allows both ANSI and Unicode
>         error strings.
>
>         * include/GL/glu.h (gluErrorUnicodeStringEXT): Make the
>         returned pointer const for consistency reasons.
>
>2003-09-24  Dimitri Papadopoulos  <[email-masked]>
>
>         * include/GL/glu.h (gluErrorUnicodeStringEXT): Add function.
>         Function exists in glu32.def but is undocumented on MSDN.
>         A Google search came up with this declaration.
>
>2003-09-24  Dimitri Papadopoulos  <[email-masked]>
>
>         * include/GL/glu.h: Rewritten from scratch. Started from GLU 1.3
>         headers from OpenGL Sample Implementation. Windows ships with
>         GLU 1.2 so some constants and functions were removed. Then some
>         typedef's and function declarations were reworked to look like
>         the previous GL/glu.h.

So IMO, your patch below should be applied to glu.h by the w32api maintainers.

>153,156d152
>< # ifndef _WCHAR_T_DEFINED
>< typedef unsigned short wchar_t;
>< #  define _WCHAR_T_DEFINED
>< # endif
>The only other workaround I can see is adding an #include <windows.h> 
>before every #include <GL/glut.h> which is neither elegant nor in the 
>spirit of GLUT's philosophy of hiding platform dependencies.
>--
>Philip Lamb
>[email-masked]

I modified the above line (was a plain email adresss). Beware that Spam 
bots search lists like this one for new targets for their junk.

I CC'd the MingW list about this issue.

André Bleau, Cygwin's OpenGL package maintainer.

Please address all questions and problem reports about Cygwin's OpenGL 
package to cygwin at cygwin dot com . 

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/