[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#803221: mesa-common-dev: incompatibility (missing typedefs) between gl.h and glext.h



Package: mesa-common-dev
Version: 10.3.2-1+deb8u1
Severity: normal

Dear Maintainer,

A number of typedefs that were defined in previous versions of Mesa
are now missing, if <GL/gl.h> is included before <GL/glext.h>.  The
lack of these definitions breaks existing code.

It seems the current version of glext.h and the current version of
gl.h have a disagreement regarding what types are "supposed" to be
defined for a given version of the API.

Specifically, in version 8.0.5-4+deb7u2, the following 37 types were
defined in the '#ifndef GL_VERSION_1_3_DEPRECATED' section of glext.h:

  PFNGLCLIENTACTIVETEXTUREPROC
  PFNGLMULTITEXCOORD1DPROC
  PFNGLMULTITEXCOORD1DVPROC
  PFNGLMULTITEXCOORD1FPROC
  PFNGLMULTITEXCOORD1FVPROC
  PFNGLMULTITEXCOORD1IPROC
  PFNGLMULTITEXCOORD1IVPROC
  PFNGLMULTITEXCOORD1SPROC
  PFNGLMULTITEXCOORD1SVPROC
  PFNGLMULTITEXCOORD2DPROC
  PFNGLMULTITEXCOORD2DVPROC
  PFNGLMULTITEXCOORD2FPROC
  PFNGLMULTITEXCOORD2FVPROC
  PFNGLMULTITEXCOORD2IPROC
  PFNGLMULTITEXCOORD2IVPROC
  PFNGLMULTITEXCOORD2SPROC
  PFNGLMULTITEXCOORD2SVPROC
  PFNGLMULTITEXCOORD3DPROC
  PFNGLMULTITEXCOORD3DVPROC
  PFNGLMULTITEXCOORD3FPROC
  PFNGLMULTITEXCOORD3FVPROC
  PFNGLMULTITEXCOORD3IPROC
  PFNGLMULTITEXCOORD3IVPROC
  PFNGLMULTITEXCOORD3SPROC
  PFNGLMULTITEXCOORD3SVPROC
  PFNGLMULTITEXCOORD4DPROC
  PFNGLMULTITEXCOORD4DVPROC
  PFNGLMULTITEXCOORD4FPROC
  PFNGLMULTITEXCOORD4FVPROC
  PFNGLMULTITEXCOORD4IPROC
  PFNGLMULTITEXCOORD4IVPROC
  PFNGLMULTITEXCOORD4SPROC
  PFNGLMULTITEXCOORD4SVPROC
  PFNGLLOADTRANSPOSEMATRIXFPROC
  PFNGLLOADTRANSPOSEMATRIXDPROC
  PFNGLMULTTRANSPOSEMATRIXFPROC
  PFNGLMULTTRANSPOSEMATRIXDPROC

In version 10.3.2-1+deb8u1, these types have been moved to the
'GL_VERSION_1_3' section of glext.h, but are not defined in gl.h.
Thus (since gl.h defines GL_VERSION_1_3) these types cannot be used.

Likewise, the following 32 types were previously part of the
'GL_VERSION_1_2_DEPRECATED' section in glext.h:

  PFNGLCOLORTABLEPROC
  PFNGLCOLORTABLEPARAMETERFVPROC
  PFNGLCOLORTABLEPARAMETERIVPROC
  PFNGLCOPYCOLORTABLEPROC
  PFNGLGETCOLORTABLEPROC
  PFNGLGETCOLORTABLEPARAMETERFVPROC
  PFNGLGETCOLORTABLEPARAMETERIVPROC
  PFNGLCOLORSUBTABLEPROC
  PFNGLCOPYCOLORSUBTABLEPROC
  PFNGLCONVOLUTIONFILTER1DPROC
  PFNGLCONVOLUTIONFILTER2DPROC
  PFNGLCONVOLUTIONPARAMETERFPROC
  PFNGLCONVOLUTIONPARAMETERFVPROC
  PFNGLCONVOLUTIONPARAMETERIPROC
  PFNGLCONVOLUTIONPARAMETERIVPROC
  PFNGLCOPYCONVOLUTIONFILTER1DPROC
  PFNGLCOPYCONVOLUTIONFILTER2DPROC
  PFNGLGETCONVOLUTIONFILTERPROC
  PFNGLGETCONVOLUTIONPARAMETERFVPROC
  PFNGLGETCONVOLUTIONPARAMETERIVPROC
  PFNGLGETSEPARABLEFILTERPROC
  PFNGLSEPARABLEFILTER2DPROC
  PFNGLGETHISTOGRAMPROC
  PFNGLGETHISTOGRAMPARAMETERFVPROC
  PFNGLGETHISTOGRAMPARAMETERIVPROC
  PFNGLGETMINMAXPROC
  PFNGLGETMINMAXPARAMETERFVPROC
  PFNGLGETMINMAXPARAMETERIVPROC
  PFNGLHISTOGRAMPROC
  PFNGLMINMAXPROC
  PFNGLRESETHISTOGRAMPROC
  PFNGLRESETMINMAXPROC

These types are now defined under 'GL_ARB_imaging' in glext.h, and are
not defined in gl.h.

The oldest version of Mesa that I have lying around is 6.5.2; in that
version, these typedefs appear in both gl.h and glext.h, and there are
no "deprecated" sections.  I guess that at some point, the deprecated
sections were added to glext.h, and in response, the typedefs - but
not the corresponding prototypes or macros - were removed from gl.h to
avoid redefining them.  (Whereas the smart thing to do would have been
to leave the typedefs alone, and #define GL_VERSION_1_2_DEPRECATED and
GL_VERSION_1_3_DEPRECATED in gl.h.)  Now that the deprecated sections
have been removed, it's broken again.


Reply to: