5151#define GLXBadPbuffer 10
5252#define GLXBadCurrentDrawable 11
5353#define GLXBadWindow 12
54+ #define GLXBadProfileARB 13
5455
55- #define __GLX_NUMBER_ERRORS 13
56+ #define __GLX_NUMBER_ERRORS 14
5657
5758/*
5859** Events.
6162** extension and the client doesn't.
6263*/
6364#define GLX_PbufferClobber 0
65+ #define GLX_BufferSwapComplete 1
6466
6567#define __GLX_NUMBER_EVENTS 17
6668
@@ -1254,7 +1256,7 @@ typedef struct {
12541256/*
12551257** glXHyperpipeConfigSGIX request
12561258*/
1257- typedef struct GLXHyperpipeConfigSGIX {
1259+ typedef struct {
12581260 CARD8 reqType ;
12591261 CARD8 glxCode ;
12601262 CARD16 length B16 ;
@@ -1286,6 +1288,98 @@ typedef struct {
12861288} xGLXHyperpipeConfigSGIXReply ;
12871289#define sz_xGLXHyperpipeConfigSGIXReply 32
12881290
1291+ /**
1292+ * \name Protocol structures for GLX_ARB_create_context and
1293+ * GLX_ARB_create_context_profile
1294+ */
1295+ /*@{*/
1296+ /**
1297+ * Protocol header for glXSetClientInfoARB
1298+ *
1299+ * This structure is follwed by \c numVersions * 2 \c CARD32 values listing
1300+ * the OpenGL versions supported by the client. The pairs of values are an
1301+ * OpenGL major version followed by a minor version. For example,
1302+ *
1303+ * CARD32 versions[4] = { 2, 1, 3, 0 };
1304+ *
1305+ * says that the client supports OpenGL 2.1 and OpenGL 3.0.
1306+ *
1307+ * These are followed by \c numGLExtensionBytes bytes of \c STRING8 containing
1308+ * the OpenGL extension string supported by the client and up to 3 bytes of
1309+ * padding.
1310+ *
1311+ * The list of OpenGL extensions is followed by \c numGLXExtensionBytes bytes
1312+ * of \c STRING8 containing the GLX extension string supported by the client
1313+ * and up to 3 bytes of padding.
1314+ *
1315+ * This protocol replaces \c GLXClientInfo.
1316+ *
1317+ * \sa GLXClientInfo, GLXSetClientInfo2ARB
1318+ */
1319+ typedef struct GLXSetClientInfoARB {
1320+ CARD8 reqType ;
1321+ CARD8 glxCode ;
1322+ CARD16 length B16 ;
1323+ CARD32 major B32 ;
1324+ CARD32 minor B32 ;
1325+ CARD32 numVersions B32 ;
1326+ CARD32 numGLExtensionBytes B32 ;
1327+ CARD32 numGLXExtensionBytes B32 ;
1328+ /*
1329+ ** More data may follow; this is just the header.
1330+ */
1331+ } xGLXSetClientInfoARBReq ;
1332+ #define sz_xGLXSetClientInfoARBReq 24
1333+
1334+ /**
1335+ * Protocol head for glXCreateContextAttribsARB
1336+ *
1337+ * This protocol replaces \c GLXCreateContext, \c GLXCreateNewContext, and
1338+ * \c GLXCreateContextWithConfigSGIX.
1339+ */
1340+ typedef struct GLXCreateContextAttribsARB {
1341+ CARD8 reqType ;
1342+ CARD8 glxCode ;
1343+ CARD16 length B16 ;
1344+ GLXContextID context B32 ;
1345+ GLXFBConfigID fbconfig B32 ;
1346+ CARD32 screen ;
1347+ GLXContextID shareList B32 ;
1348+ BOOL isDirect ;
1349+ CARD8 reserved1 ;
1350+ CARD16 reserved2 B16 ;
1351+ CARD32 numAttribs B32 ;
1352+ /* followed by attribute list */
1353+ } xGLXCreateContextAttribsARBReq ;
1354+ #define sz_xGLXCreateContextAttribsARBReq 28
1355+
1356+ /**
1357+ * Protocol header for glXSetClientInfo2ARB
1358+ *
1359+ * The glXSetClientInfo2ARB protocol differs from glXSetClientInfoARB in that
1360+ * the list of OpenGL versions supported by the client is 3 \c CARD32 values
1361+ * per version: major version, minor version, and supported profile mask.
1362+ *
1363+ * This protocol replaces \c GLXClientInfo and \c GLXSetClientInfoARB.
1364+ *
1365+ * \sa GLXClientInfo, GLXSetClientInfoARB
1366+ */
1367+ typedef struct GLXSetClientInfo2ARB {
1368+ CARD8 reqType ;
1369+ CARD8 glxCode ;
1370+ CARD16 length B16 ;
1371+ CARD32 major B32 ;
1372+ CARD32 minor B32 ;
1373+ CARD32 numVersions B32 ;
1374+ CARD32 numGLExtensionBytes B32 ;
1375+ CARD32 numGLXExtensionBytes B32 ;
1376+ /*
1377+ ** More data may follow; this is just the header.
1378+ */
1379+ } xGLXSetClientInfo2ARBReq ;
1380+ #define sz_xGLXSetClientInfo2ARBReq 24
1381+ /*@}*/
1382+
12891383/************************************************************************/
12901384
12911385/*
@@ -1309,6 +1403,34 @@ typedef struct {
13091403 CARD32 unused2 B32 ;
13101404} xGLXPbufferClobberEvent ;
13111405
1406+ typedef struct {
1407+ BYTE type ;
1408+ BYTE pad ;
1409+ CARD16 sequenceNumber B16 ;
1410+ CARD16 event_type B16 ;
1411+ CARD32 drawable ;
1412+ CARD32 ust_hi B32 ;
1413+ CARD32 ust_lo B32 ;
1414+ CARD32 msc_hi B32 ;
1415+ CARD32 msc_lo B32 ;
1416+ CARD32 sbc_hi B32 ;
1417+ CARD32 sbc_lo B32 ;
1418+ } xGLXBufferSwapComplete ;
1419+
1420+ typedef struct {
1421+ BYTE type ;
1422+ BYTE pad ;
1423+ CARD16 sequenceNumber B16 ;
1424+ CARD16 event_type B16 ;
1425+ CARD16 pad2 ;
1426+ CARD32 drawable ;
1427+ CARD32 ust_hi B32 ;
1428+ CARD32 ust_lo B32 ;
1429+ CARD32 msc_hi B32 ;
1430+ CARD32 msc_lo B32 ;
1431+ CARD32 sbc B32 ;
1432+ } xGLXBufferSwapComplete2 ;
1433+
13121434/************************************************************************/
13131435
13141436/*
@@ -2034,7 +2156,9 @@ typedef struct {
20342156#define X_GLXChangeDrawableAttributes 30
20352157#define X_GLXCreateWindow 31
20362158#define X_GLXDestroyWindow 32
2037-
2159+ #define X_GLXSetClientInfoARB 33
2160+ #define X_GLXCreateContextAtrribsARB 34
2161+ #define X_GLXSetConfigInfo2ARB 35
20382162
20392163/* Opcodes for single commands (part of GLX command space) */
20402164
0 commit comments