XFree86 4.3.99.16 Bring the tree up to date for the Cygwin folks

This commit is contained in:
Kaleb Keithley 2003-11-25 19:29:01 +00:00
commit adc7f9a4eb
705 changed files with 30330 additions and 26603 deletions

View file

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/g_disptab.c,v 1.3 2001/03/21 16:29:35 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/g_disptab.c,v 1.4 2003/09/28 20:15:41 alanh Exp $ */
/* DO NOT EDIT - THIS FILE IS AUTOMATICALLY GENERATED */
/*
** License Applicability. Except to the extent portions of this file are
@ -32,7 +32,7 @@
#include "glxserver.h"
#include "glxext.h"
#include "g_disptab.h"
__GLXdispatchSingleProcPtr __glXSingleTable[] = {
__GLXdispatchSingleProcPtr __glXSingleTable[__GLX_SINGLE_TABLE_SIZE] = {
__glXNoSuchSingleOpcode,
__glXRender,
__glXRenderLarge,
@ -54,12 +54,12 @@ __GLXdispatchSingleProcPtr __glXSingleTable[] = {
__glXQueryExtensionsString,
__glXQueryServerString,
__glXClientInfo,
__glXNoSuchSingleOpcode,
__glXNoSuchSingleOpcode,
__glXNoSuchSingleOpcode,
__glXNoSuchSingleOpcode,
__glXNoSuchSingleOpcode,
__glXNoSuchSingleOpcode,
__glXNoSuchSingleOpcode, /* glXGetFBConfigs */
__glXNoSuchSingleOpcode, /* glXCreatePixmap */
__glXNoSuchSingleOpcode, /* glXDestroyPixmap */
__glXNoSuchSingleOpcode, /* glXCreateNewContext */
__glXNoSuchSingleOpcode, /* glXQueryContext */
__glXMakeContextCurrent,
__glXNoSuchSingleOpcode,
__glXNoSuchSingleOpcode,
__glXNoSuchSingleOpcode,
@ -409,10 +409,27 @@ __GLXdispatchRenderProcPtr __glXRenderTable[] = {
__glXDisp_MultiTexCoord4dvARB,
__glXDisp_MultiTexCoord4fvARB,
__glXDisp_MultiTexCoord4ivARB,
__glXDisp_MultiTexCoord4svARB,
__glXDisp_MultiTexCoord4svARB, /* 213 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 220 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXDisp_WindowPos3fARB /* 230 */
};
__GLXdispatchSingleProcPtr __glXSwapSingleTable[] = {
__GLXdispatchSingleProcPtr __glXSwapSingleTable[__GLX_SINGLE_TABLE_SIZE] = {
__glXNoSuchSingleOpcode,
__glXSwapRender,
__glXSwapRenderLarge,
@ -434,12 +451,12 @@ __GLXdispatchSingleProcPtr __glXSwapSingleTable[] = {
__glXSwapQueryExtensionsString,
__glXSwapQueryServerString,
__glXSwapClientInfo,
__glXNoSuchSingleOpcode,
__glXNoSuchSingleOpcode,
__glXNoSuchSingleOpcode,
__glXNoSuchSingleOpcode,
__glXNoSuchSingleOpcode,
__glXNoSuchSingleOpcode,
__glXNoSuchSingleOpcode, /* glXGetFBConfigs */
__glXNoSuchSingleOpcode, /* glXCreatePixmap */
__glXNoSuchSingleOpcode, /* glXDestroyPixmap */
__glXNoSuchSingleOpcode, /* glXCreateNewContext */
__glXNoSuchSingleOpcode, /* glXQueryContext */
__glXSwapMakeContextCurrent,
__glXNoSuchSingleOpcode,
__glXNoSuchSingleOpcode,
__glXNoSuchSingleOpcode,
@ -575,7 +592,7 @@ __GLXdispatchSingleProcPtr __glXSwapSingleTable[] = {
__glXDispSwap_GetMinmaxParameteriv,
};
__GLXdispatchRenderProcPtr __glXSwapRenderTable[] = {
__GLXdispatchRenderProcPtr __glXSwapRenderTable[__GLX_RENDER_TABLE_SIZE] = {
__glXNoSuchRenderOpcode,
__glXDispSwap_CallList,
__glXDispSwap_CallLists,
@ -789,5 +806,22 @@ __GLXdispatchRenderProcPtr __glXSwapRenderTable[] = {
__glXDispSwap_MultiTexCoord4dvARB,
__glXDispSwap_MultiTexCoord4fvARB,
__glXDispSwap_MultiTexCoord4ivARB,
__glXDispSwap_MultiTexCoord4svARB,
__glXDispSwap_MultiTexCoord4svARB, /* 213 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 220 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXDispSwap_WindowPos3fARB /* 230 */
};

View file

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/g_disptab.h,v 1.3 2001/03/21 16:29:35 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/g_disptab.h,v 1.4 2003/09/28 20:15:42 alanh Exp $ */
/* DO NOT EDIT - THIS FILE IS AUTOMATICALLY GENERATED */
#ifndef _GLX_g_disptab_h_
#define _GLX_g_disptab_h_
@ -51,6 +51,8 @@ extern int __glXVendorPrivateWithReply(__GLXclientState*, GLbyte*);
extern int __glXQueryExtensionsString(__GLXclientState*, GLbyte*);
extern int __glXQueryServerString(__GLXclientState*, GLbyte*);
extern int __glXClientInfo(__GLXclientState*, GLbyte*);
extern int __glXMakeContextCurrent(__GLXclientState*, GLbyte*);
extern int __glXDisp_NewList(__GLXclientState*, GLbyte*);
extern int __glXDisp_EndList(__GLXclientState*, GLbyte*);
extern int __glXDisp_DeleteLists(__GLXclientState*, GLbyte*);
@ -323,6 +325,7 @@ extern void __glXDisp_MultiTexCoord4dvARB(GLbyte*);
extern void __glXDisp_MultiTexCoord4fvARB(GLbyte*);
extern void __glXDisp_MultiTexCoord4ivARB(GLbyte*);
extern void __glXDisp_MultiTexCoord4svARB(GLbyte*);
extern void __glXDisp_WindowPos3fARB(GLbyte *);
extern int __glXSwapRender(__GLXclientState*, GLbyte*);
extern int __glXSwapRenderLarge(__GLXclientState*, GLbyte*);
@ -344,6 +347,8 @@ extern int __glXSwapVendorPrivateWithReply(__GLXclientState*, GLbyte*);
extern int __glXSwapQueryExtensionsString(__GLXclientState*, GLbyte*);
extern int __glXSwapQueryServerString(__GLXclientState*, GLbyte*);
extern int __glXSwapClientInfo(__GLXclientState*, GLbyte*);
extern int __glXSwapMakeContextCurrent(__GLXclientState*, GLbyte*);
extern int __glXDispSwap_NewList(__GLXclientState*, GLbyte*);
extern int __glXDispSwap_EndList(__GLXclientState*, GLbyte*);
extern int __glXDispSwap_DeleteLists(__GLXclientState*, GLbyte*);
@ -616,15 +621,18 @@ extern void __glXDispSwap_MultiTexCoord4dvARB(GLbyte*);
extern void __glXDispSwap_MultiTexCoord4fvARB(GLbyte*);
extern void __glXDispSwap_MultiTexCoord4ivARB(GLbyte*);
extern void __glXDispSwap_MultiTexCoord4svARB(GLbyte*);
extern void __glXDispSwap_WindowPos3fARB(GLbyte *);
#define __GLX_MIN_GLXCMD_OPCODE 1
#define __GLX_MAX_GLXCMD_OPCODE 20
#define __GLX_MIN_RENDER_OPCODE 1
#define __GLX_MAX_RENDER_OPCODE 213
/*#define __GLX_MAX_RENDER_OPCODE 213*/
#define __GLX_MAX_RENDER_OPCODE 230
#define __GLX_MIN_SINGLE_OPCODE 1
#define __GLX_MAX_SINGLE_OPCODE 159
#define __GLX_SINGLE_TABLE_SIZE 160
#define __GLX_RENDER_TABLE_SIZE 214
/*#define __GLX_RENDER_TABLE_SIZE 214*/
#define __GLX_RENDER_TABLE_SIZE 231
extern __GLXdispatchRenderProcPtr __glXRenderTable[__GLX_RENDER_TABLE_SIZE];
extern __GLXdispatchSingleProcPtr __glXSingleTable[__GLX_SINGLE_TABLE_SIZE];
extern __GLXdispatchRenderProcPtr __glXSwapRenderTable[__GLX_RENDER_TABLE_SIZE];

View file

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/g_disptab_EXT.c,v 1.3 2001/03/21 16:29:35 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/g_disptab_EXT.c,v 1.4 2003/09/28 20:15:42 alanh Exp $ */
/* DO NOT EDIT - THIS FILE IS AUTOMATICALLY GENERATED */
/*
** License Applicability. Except to the extent portions of this file are
@ -32,21 +32,25 @@
#include "glxserver.h"
#include "glxext.h"
#include "g_disptab_EXT.h"
__GLXdispatchRenderProcPtr __glXRenderTable_EXT[] = {
__glXDisp_ColorTable,
__glXDisp_ColorTableParameterfv,
__GLXdispatchRenderProcPtr __glXRenderTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT - __GLX_MIN_RENDER_OPCODE_EXT + 1] = {
__glXDisp_ColorTable, /* 2053 */
__glXDisp_ColorTableParameterfv, /* 2054 */
__glXDisp_ColorTableParameteriv,
__glXDisp_CopyColorTable,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 2060 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXDisp_PointParameterfARB, /* 2065 */
__glXDisp_PointParameterfvARB, /* 2066 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 2070 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
@ -2072,15 +2076,11 @@ __GLXdispatchRenderProcPtr __glXRenderTable_EXT[] = {
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXDisp_BlendColor,
__glXDisp_BlendEquation,
__glXNoSuchRenderOpcode,
__glXDisp_TexSubImage1D,
__glXDisp_TexSubImage2D,
__glXDisp_BlendColor, /* 4096 */
__glXDisp_BlendEquation, /* 4097 */
__glXNoSuchRenderOpcode, /* 4098 */
__glXDisp_TexSubImage1D, /* 4099 */
__glXDisp_TexSubImage2D, /* 4100 */
__glXDisp_ConvolutionFilter1D,
__glXDisp_ConvolutionFilter2D,
__glXDisp_ConvolutionParameterf,
@ -2090,7 +2090,7 @@ __GLXdispatchRenderProcPtr __glXRenderTable_EXT[] = {
__glXDisp_CopyConvolutionFilter1D,
__glXDisp_CopyConvolutionFilter2D,
__glXDisp_SeparableFilter2D,
__glXDisp_Histogram,
__glXDisp_Histogram, /* 4110 */
__glXDisp_Minmax,
__glXDisp_ResetHistogram,
__glXDisp_ResetMinmax,
@ -2100,38 +2100,135 @@ __GLXdispatchRenderProcPtr __glXRenderTable_EXT[] = {
__glXDisp_BindTexture,
__glXDisp_PrioritizeTextures,
__glXDisp_CopyTexImage1D,
__glXDisp_CopyTexImage2D,
__glXDisp_CopyTexSubImage1D,
__glXDisp_CopyTexSubImage2D,
__glXDisp_CopyTexSubImage3D,
__glXDisp_CopyTexImage2D, /* 4120 */
__glXDisp_CopyTexSubImage1D, /* 4121 */
__glXDisp_CopyTexSubImage2D, /* 4122 */
__glXDisp_CopyTexSubImage3D, /* 4123 */
__glXNoSuchRenderOpcode, /* 4124 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4130 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4140 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4150 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4160 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4170 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4180 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4190 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4200 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4210 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4219 */
__glXDisp_ActiveStencilFaceEXT, /* 4220 */
};
__GLXdispatchVendorPrivProcPtr __glXVendorPrivTable_EXT[] = {
__glXDisp_AreTexturesResidentEXT,
__glXDisp_DeleteTexturesEXT,
__glXDisp_GenTexturesEXT,
__glXDisp_IsTextureEXT,
__GLXdispatchVendorPrivProcPtr __glXVendorPrivTable_EXT[__GLX_MAX_VENDPRIV_OPCODE_EXT - __GLX_MIN_VENDPRIV_OPCODE_EXT + 1] = {
__glXDisp_AreTexturesResidentEXT, /* 11 */
__glXDisp_DeleteTexturesEXT, /* 12 */
__glXDisp_GenTexturesEXT, /* 13 */
__glXDisp_IsTextureEXT, /* 14 */
};
__GLXdispatchRenderProcPtr __glXSwapRenderTable_EXT[] = {
__glXDispSwap_ColorTable,
__glXDispSwap_ColorTableParameterfv,
__GLXdispatchRenderProcPtr __glXSwapRenderTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT - __GLX_MIN_RENDER_OPCODE_EXT + 1] = {
__glXDispSwap_ColorTable, /* 2053 */
__glXDispSwap_ColorTableParameterfv, /* 2054 */
__glXDispSwap_ColorTableParameteriv,
__glXDispSwap_CopyColorTable,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 2060 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXDispSwap_PointParameterfARB, /* 2065 */
__glXDispSwap_PointParameterfvARB, /* 2066 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 2070 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
@ -4181,15 +4278,112 @@ __GLXdispatchRenderProcPtr __glXSwapRenderTable_EXT[] = {
__glXDispSwap_BindTexture,
__glXDispSwap_PrioritizeTextures,
__glXDispSwap_CopyTexImage1D,
__glXDispSwap_CopyTexImage2D,
__glXDispSwap_CopyTexSubImage1D,
__glXDispSwap_CopyTexSubImage2D,
__glXDispSwap_CopyTexSubImage3D,
__glXDispSwap_CopyTexImage2D, /* 4120 */
__glXDispSwap_CopyTexSubImage1D, /* 4121 */
__glXDispSwap_CopyTexSubImage2D, /* 4122 */
__glXDispSwap_CopyTexSubImage3D, /* 4123 */
__glXNoSuchRenderOpcode, /* 4124 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4130 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4140 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4150 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4160 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4170 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4180 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4190 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4200 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4210 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4219 */
__glXDispSwap_ActiveStencilFaceEXT, /* 4220 */
};
__GLXdispatchVendorPrivProcPtr __glXSwapVendorPrivTable_EXT[] = {
__glXDispSwap_AreTexturesResidentEXT,
__glXDispSwap_DeleteTexturesEXT,
__glXDispSwap_GenTexturesEXT,
__glXDispSwap_IsTextureEXT,
__GLXdispatchVendorPrivProcPtr __glXSwapVendorPrivTable_EXT[__GLX_MAX_VENDPRIV_OPCODE_EXT - __GLX_MIN_VENDPRIV_OPCODE_EXT + 1] = {
__glXDispSwap_AreTexturesResidentEXT, /* 11 */
__glXDispSwap_DeleteTexturesEXT, /* 12 */
__glXDispSwap_GenTexturesEXT, /* 13 */
__glXDispSwap_IsTextureEXT, /* 14 */
};

View file

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/g_disptab_EXT.h,v 1.3 2001/03/21 16:29:35 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/g_disptab_EXT.h,v 1.4 2003/09/28 20:15:42 alanh Exp $ */
/* DO NOT EDIT - THIS FILE IS AUTOMATICALLY GENERATED */
#ifndef _GLX_g_disptab_EXT_h_
#define _GLX_g_disptab_EXT_h_
@ -67,6 +67,9 @@ extern void __glXDisp_CopyTexImage2D(GLbyte*);
extern void __glXDisp_CopyTexSubImage1D(GLbyte*);
extern void __glXDisp_CopyTexSubImage2D(GLbyte*);
extern void __glXDisp_CopyTexSubImage3D(GLbyte*);
extern void __glXDisp_PointParameterfARB(GLbyte*);
extern void __glXDisp_PointParameterfvARB(GLbyte*);
extern void __glXDisp_ActiveStencilFaceEXT(GLbyte*);
extern int __glXDispSwap_AreTexturesResidentEXT(__GLXclientState*, GLbyte*);
extern int __glXDispSwap_DeleteTexturesEXT(__GLXclientState*, GLbyte*);
@ -104,13 +107,16 @@ extern void __glXDispSwap_CopyTexImage2D(GLbyte*);
extern void __glXDispSwap_CopyTexSubImage1D(GLbyte*);
extern void __glXDispSwap_CopyTexSubImage2D(GLbyte*);
extern void __glXDispSwap_CopyTexSubImage3D(GLbyte*);
extern void __glXDispSwap_PointParameterfARB(GLbyte*);
extern void __glXDispSwap_PointParameterfvARB(GLbyte*);
extern void __glXDispSwap_ActiveStencilFaceEXT(GLbyte*);
#define __GLX_MIN_RENDER_OPCODE_EXT 2053
#define __GLX_MAX_RENDER_OPCODE_EXT 4123
#define __GLX_MAX_RENDER_OPCODE_EXT 4220
#define __GLX_MIN_VENDPRIV_OPCODE_EXT 11
#define __GLX_MAX_VENDPRIV_OPCODE_EXT 14
#define __GLX_VENDPRIV_TABLE_SIZE_EXT 4
#define __GLX_RENDER_TABLE_SIZE_EXT 2071
#define __GLX_VENDPRIV_TABLE_SIZE_EXT (__GLX_MAX_VENDPRIV_OPCODE_EXT - __GLX_MIN_VENDPRIV_OPCODE_EXT + 1)
#define __GLX_RENDER_TABLE_SIZE_EXT (__GLX_MAX_RENDER_OPCODE_EXT - __GLX_MIN_RENDER_OPCODE_EXT + 1)
extern __GLXdispatchRenderProcPtr __glXRenderTable_EXT[__GLX_RENDER_TABLE_SIZE_EXT];
extern __GLXdispatchVendorPrivProcPtr __glXVendorPrivTable_EXT[__GLX_VENDPRIV_TABLE_SIZE_EXT];
extern __GLXdispatchRenderProcPtr __glXSwapRenderTable_EXT[__GLX_RENDER_TABLE_SIZE_EXT];

View file

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/g_render.c,v 1.4 2001/03/21 16:29:35 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/g_render.c,v 1.6 2003/10/28 22:50:17 tsi Exp $ */
/* DO NOT EDIT - THIS FILE IS AUTOMATICALLY GENERATED */
/*
** License Applicability. Except to the extent portions of this file are
@ -982,6 +982,7 @@ void __glXDisp_TexGend(GLbyte *pc)
void __glXDisp_TexGendv(GLbyte *pc)
{
#ifdef __GLX_ALIGN64
GLenum pname;
GLint cmdlen;
GLint compsize;
@ -990,8 +991,6 @@ void __glXDisp_TexGendv(GLbyte *pc)
compsize = __glTexGendv_size(pname);
if (compsize < 0) compsize = 0;
cmdlen = __GLX_PAD(8+compsize*8);
#ifdef __GLX_ALIGN64
if ((unsigned long)(pc) & 7) {
__GLX_MEM_COPY(pc-4, pc, cmdlen);
pc -= 4;
@ -2075,3 +2074,40 @@ void __glXDisp_MultiTexCoord4svARB(GLbyte *pc)
);
}
/*
* Extensions
*/
void __glXDisp_PointParameterfARB(GLbyte *pc)
{
glPointParameterfARB(
*(GLenum *)(pc + 0),
*(GLfloat *)(pc + 4)
);
}
void __glXDisp_PointParameterfvARB(GLbyte *pc)
{
glPointParameterfvARB(
*(GLenum *)(pc + 0),
(GLfloat *)(pc + 4)
);
}
void __glXDisp_ActiveStencilFaceEXT(GLbyte *pc)
{
glActiveStencilFaceEXT(
*(GLenum *)(pc + 0)
);
}
void __glXDisp_WindowPos3fARB(GLbyte *pc)
{
glWindowPos3fARB(
*(GLfloat *)(pc + 0),
*(GLfloat *)(pc + 4),
*(GLfloat *)(pc + 8)
);
}

View file

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/g_renderswap.c,v 1.5 2002/01/14 22:47:08 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/g_renderswap.c,v 1.7 2003/10/28 22:50:17 tsi Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@ -1570,7 +1570,9 @@ void __glXDispSwap_TexGend(GLbyte *pc)
void __glXDispSwap_TexGendv(GLbyte *pc)
{
GLenum pname;
#ifdef __GLX_ALIGN64
GLint cmdlen;
#endif
GLint compsize;
__GLX_DECLARE_SWAP_VARIABLES;
__GLX_DECLARE_SWAP_ARRAY_VARIABLES;
@ -1579,9 +1581,9 @@ void __glXDispSwap_TexGendv(GLbyte *pc)
pname = *(GLenum *)(pc + 4);
compsize = __glTexGendv_size(pname);
if (compsize < 0) compsize = 0;
cmdlen = __GLX_PAD(8+compsize*8);
#ifdef __GLX_ALIGN64
cmdlen = __GLX_PAD(8+compsize*8);
if ((unsigned long)(pc) & 7) {
__GLX_MEM_COPY(pc-4, pc, cmdlen);
pc -= 4;
@ -3306,3 +3308,61 @@ void __glXDispSwap_MultiTexCoord4svARB(GLbyte *pc)
);
}
/*
* Extensions
*/
void __glXDispSwap_PointParameterfARB(GLbyte *pc)
{
__GLX_DECLARE_SWAP_VARIABLES;
__GLX_SWAP_INT(pc + 0);
__GLX_SWAP_FLOAT(pc + 4);
glPointParameterfARB(
*(GLenum *)(pc + 0),
*(GLfloat *)(pc + 4)
);
}
void __glXDispSwap_PointParameterfvARB(GLbyte *pc)
{
GLenum pname;
GLint compsize;
__GLX_DECLARE_SWAP_VARIABLES;
__GLX_DECLARE_SWAP_ARRAY_VARIABLES;
__GLX_SWAP_INT(pc + 0);
pname = *(GLenum *)(pc + 0);
compsize = __glPointParameterfvARB_size(pname);
if (compsize < 0) compsize = 0;
__GLX_SWAP_FLOAT_ARRAY(pc + 4, compsize);
glPointParameterfvARB(
*(GLenum *)(pc + 0),
(GLfloat *)(pc + 4)
);
}
void __glXDispSwap_ActiveStencilFaceEXT(GLbyte *pc)
{
__GLX_DECLARE_SWAP_VARIABLES;
__GLX_SWAP_INT(pc + 0);
glActiveStencilFaceEXT(
*(GLenum *)(pc + 0)
);
}
void __glXDispSwap_WindowPos3fARB(GLbyte *pc)
{
__GLX_DECLARE_SWAP_VARIABLES;
__GLX_SWAP_FLOAT(pc + 0);
__GLX_SWAP_FLOAT(pc + 4);
__GLX_SWAP_FLOAT(pc + 8);
glWindowPos3fARB(
*(GLfloat *)(pc + 0),
*(GLfloat *)(pc + 4),
*(GLfloat *)(pc + 8)
);
}

View file

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/g_single.c,v 1.5 2002/01/14 22:47:08 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/g_single.c,v 1.6 2003/10/28 22:50:17 tsi Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@ -1264,7 +1264,6 @@ int __glXDisp_AreTexturesResident(__GLXclientState *cl, GLbyte *pc)
int __glXDisp_DeleteTextures(__GLXclientState *cl, GLbyte *pc)
{
GLsizei n;
__GLXcontext *cx;
int error;
@ -1273,7 +1272,6 @@ int __glXDisp_DeleteTextures(__GLXclientState *cl, GLbyte *pc)
return error;
}
pc += __GLX_SINGLE_HDR_SIZE;
n = *(GLsizei *)(pc + 0);
glDeleteTextures(
*(GLsizei *)(pc + 0),
@ -1717,7 +1715,6 @@ int __glXDisp_AreTexturesResidentEXT(__GLXclientState *cl, GLbyte *pc)
int __glXDisp_DeleteTexturesEXT(__GLXclientState *cl, GLbyte *pc)
{
GLsizei n;
__GLXcontext *cx;
int error;
@ -1726,7 +1723,6 @@ int __glXDisp_DeleteTexturesEXT(__GLXclientState *cl, GLbyte *pc)
return error;
}
pc += __GLX_VENDPRIV_HDR_SIZE;
n = *(GLsizei *)(pc + 0);
glDeleteTexturesEXT(
*(GLsizei *)(pc + 0),

View file

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/glxcmds.c,v 1.9 2002/12/14 01:36:09 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/glxcmds.c,v 1.11 2003/10/28 22:50:17 tsi Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@ -64,9 +64,13 @@ static __GLimports imports = {
__glXImpFclose,
__glXImpFprintf,
__glXImpGetDrawablePrivate,
__glXImpGetReadablePrivate,
NULL
};
static int DoMakeCurrent( __GLXclientState *cl, GLXDrawable drawId,
GLXDrawable readId, GLXContextID contextId, GLXContextTag tag );
/************************************************************************/
/*
@ -361,26 +365,138 @@ static void StartUsingContext(__GLXclientState *cl, __GLXcontext *glxc)
/*
** Make an OpenGL context and drawable current.
*/
int __glXMakeCurrent(__GLXclientState *cl, GLbyte *pc)
{
xGLXMakeCurrentReq *req = (xGLXMakeCurrentReq *) pc;
return DoMakeCurrent( cl, req->drawable, req->drawable,
req->context, req->oldContextTag );
}
int __glXMakeContextCurrent(__GLXclientState *cl, GLbyte *pc)
{
xGLXMakeContextCurrentReq *req = (xGLXMakeContextCurrentReq *) pc;
return DoMakeCurrent( cl, req->drawable, req->readdrawable,
req->context, req->oldContextTag );
}
int __glXMakeCurrentReadSGI(__GLXclientState *cl, GLbyte *pc)
{
xGLXMakeCurrentReadSGIReq *req = (xGLXMakeCurrentReadSGIReq *) pc;
return DoMakeCurrent( cl, req->drawable, req->readable,
req->context, req->oldContextTag );
}
/**
* Given a drawable ID, get the associated drawable and / or pixmap.
*
* If the specified drawable ID is not a pixmap, \c ppPixmap will be set
* to \c NULL on return. In either case, \c ppDraw will be set to a drawable.
* In the case where the drawable ID is a pixmap, \c ppDraw will be set to
* the drawable associated with that pixmap.
*
* \param glxc Associated GLX context.
* \param drawId ID of the drawable.
* \param ppDraw Location to store the pointer to the drawable.
* \param ppPixmap Location to store the pointer to the pixmap.
* \param client Pointer to the client state.
* \return Zero is returned on success. Otherwise a GLX / X11 protocol error
* is returned.
*
* \notes This function will need some modification when support pbuffers
* is added.
*/
static int GetDrawableOrPixmap( __GLXcontext *glxc, GLXDrawable drawId,
DrawablePtr *ppDraw, __GLXpixmap **ppPixmap,
ClientPtr client )
{
DrawablePtr pDraw;
__GLXpixmap *drawPixmap = NULL;
pDraw = (DrawablePtr) LookupDrawable(drawId, client);
if (pDraw) {
if (pDraw->type == DRAWABLE_WINDOW) {
/*
** Drawable is an X Window.
*/
WindowPtr pWin = (WindowPtr)pDraw;
VisualID vid = wVisual(pWin);
/*
** Check if window and context are similar.
*/
if ((vid != glxc->pVisual->vid) ||
(pWin->drawable.pScreen != glxc->pScreen)) {
client->errorValue = drawId;
return BadMatch;
}
} else {
/*
** An X Pixmap is not allowed as a parameter (a GLX Pixmap
** is, but it must first be created with glxCreateGLXPixmap).
*/
client->errorValue = drawId;
return __glXBadDrawable;
}
} else {
drawPixmap = (__GLXpixmap *) LookupIDByType(drawId, __glXPixmapRes);
if (drawPixmap) {
/*
** Check if pixmap and context are similar.
*/
if (drawPixmap->pScreen != glxc->pScreen ||
drawPixmap->pGlxVisual != glxc->pGlxVisual) {
client->errorValue = drawId;
return BadMatch;
}
pDraw = drawPixmap->pDraw;
} else {
/*
** Drawable is neither a Window nor a GLXPixmap.
*/
client->errorValue = drawId;
return __glXBadDrawable;
}
}
*ppPixmap = drawPixmap;
*ppDraw = pDraw;
return 0;
}
static int DoMakeCurrent( __GLXclientState *cl,
GLXDrawable drawId, GLXDrawable readId,
GLXContextID contextId, GLXContextTag tag )
{
ClientPtr client = cl->client;
DrawablePtr pDraw;
xGLXMakeCurrentReq *req = (xGLXMakeCurrentReq *) pc;
DrawablePtr pRead;
xGLXMakeCurrentReply reply;
GLXDrawable drawId = req->drawable;
GLXContextID contextId = req->context;
__GLXpixmap *pGlxPixmap = 0;
__GLXpixmap *drawPixmap = NULL;
__GLXpixmap *readPixmap = NULL;
__GLXcontext *glxc, *prevglxc;
__GLinterface *gc, *prevgc;
__GLXdrawablePrivate *glxPriv = NULL;
GLXContextTag tag = req->oldContextTag;
__GLXdrawablePrivate *drawPriv = NULL;
__GLXdrawablePrivate *readPriv = NULL;
GLint error;
GLuint mask;
/*
** If one is None and the other isn't, it's a bad match.
*/
if ((drawId == None && contextId != None) ||
(drawId != None && contextId == None)) {
mask = (drawId == None) ? (1 << 0) : 0;
mask |= (readId == None) ? (1 << 1) : 0;
mask |= (contextId == None) ? (1 << 2) : 0;
if ( (mask != 0x00) && (mask != 0x07) ) {
return BadMatch;
}
@ -410,6 +526,8 @@ int __glXMakeCurrent(__GLXclientState *cl, GLbyte *pc)
** Lookup new context. It must not be current for someone else.
*/
if (contextId != None) {
int status;
glxc = (__GLXcontext *) LookupIDByType(contextId, __glXContextRes);
if (!glxc) {
client->errorValue = contextId;
@ -420,72 +538,53 @@ int __glXMakeCurrent(__GLXclientState *cl, GLbyte *pc)
return BadAccess;
}
gc = glxc->gc;
assert( drawId != None );
assert( readId != None );
status = GetDrawableOrPixmap( glxc, drawId, & pDraw, & drawPixmap,
client );
if ( status != 0 ) {
return status;
}
if ( readId != drawId ) {
status = GetDrawableOrPixmap( glxc, readId, & pRead, & readPixmap,
client );
if ( status != 0 ) {
return status;
}
} else {
pRead = pDraw;
}
/* FIXME: Finish refactoring this. - idr */
/* get the drawable private */
if (pDraw) {
drawPriv = __glXGetDrawablePrivate(pDraw, drawId, glxc->modes);
if (drawPriv == NULL) {
return __glXBadDrawable;
}
}
if (pRead != pDraw) {
readPriv = __glXGetDrawablePrivate(pRead, readId, glxc->modes);
if (readPriv == NULL) {
return __glXBadDrawable;
}
} else {
readPriv = drawPriv;
}
} else {
/* Switching to no context. Ignore new drawable. */
glxc = 0;
gc = 0;
}
if (drawId != None) {
pDraw = (DrawablePtr) LookupDrawable(drawId, client);
if (pDraw) {
if (pDraw->type == DRAWABLE_WINDOW) {
/*
** Drawable is an X Window.
*/
WindowPtr pWin = (WindowPtr)pDraw;
VisualID vid = wVisual(pWin);
/*
** Check if window and context are similar.
*/
if ((vid != glxc->pVisual->vid) ||
(pWin->drawable.pScreen != glxc->pScreen)) {
client->errorValue = drawId;
return BadMatch;
}
} else {
/*
** An X Pixmap is not allowed as a parameter (a GLX Pixmap
** is, but it must first be created with glxCreateGLXPixmap).
*/
client->errorValue = drawId;
return __glXBadDrawable;
}
} else {
pGlxPixmap = (__GLXpixmap *) LookupIDByType(drawId,
__glXPixmapRes);
if (pGlxPixmap) {
/*
** Check if pixmap and context are similar.
*/
if (pGlxPixmap->pScreen != glxc->pScreen ||
pGlxPixmap->pGlxVisual != glxc->pGlxVisual) {
client->errorValue = drawId;
return BadMatch;
}
pDraw = pGlxPixmap->pDraw;
} else {
/*
** Drawable is neither a Window nor a GLXPixmap.
*/
client->errorValue = drawId;
return __glXBadDrawable;
}
}
} else {
pDraw = 0;
pRead = 0;
}
/* get the drawable private */
if (pDraw) {
glxPriv = __glXGetDrawablePrivate(pDraw, drawId, glxc->modes);
if (glxPriv == NULL) {
return __glXBadDrawable;
}
}
if (prevglxc) {
/*
@ -506,66 +605,97 @@ int __glXMakeCurrent(__GLXclientState *cl, GLbyte *pc)
if (!(*prevgc->exports.loseCurrent)((__GLcontext *)prevgc)) {
return __glXBadContext;
}
__glXDeassociateContext(prevglxc, prevglxc->glxPriv);
__glXDeassociateContext(prevglxc);
}
if ((glxc != 0) && !glxc->isDirect) {
glxc->glxPriv = glxPriv;
__glXCacheDrawableSize(glxPriv);
glxc->drawPriv = drawPriv;
glxc->readPriv = readPriv;
__glXCacheDrawableSize(drawPriv);
/* make the context current */
if (!(*gc->exports.makeCurrent)((__GLcontext *)gc, &glxPriv->glPriv)) {
glxc->glxPriv = NULL;
if (!(*gc->exports.makeCurrent)((__GLcontext *)gc)) {
glxc->drawPriv = NULL;
glxc->readPriv = NULL;
return __glXBadContext;
}
/* resize the buffers */
if (!__glXResizeDrawableBuffers(glxPriv)) {
if (!__glXResizeDrawableBuffers(drawPriv)) {
/* could not do initial resize. make current failed */
(*gc->exports.loseCurrent)((__GLcontext *)gc);
glxc->glxPriv = NULL;
glxc->drawPriv = NULL;
glxc->readPriv = NULL;
return __glXBadContext;
}
glxc->isCurrent = GL_TRUE;
__glXAssociateContext(glxc, glxPriv);
assert(glxPriv->glxc == glxc);
__glXAssociateContext(glxc);
assert(drawPriv->drawGlxc == glxc);
assert(readPriv->readGlxc == glxc);
}
if (prevglxc) {
if (prevglxc->pGlxPixmap) {
if (prevglxc->drawPixmap) {
if (prevglxc->drawPixmap != prevglxc->readPixmap) {
/*
** The previous drawable was a glx pixmap, release it.
*/
prevglxc->readPixmap->refcnt--;
if (!prevglxc->readPixmap->idExists &&
!prevglxc->readPixmap->refcnt) {
PixmapPtr pPixmap = (PixmapPtr) prevglxc->readPixmap->pDraw;
/*
** The DestroyPixmap routine should decrement the
** refcount of the X pixmap and free only if it's zero.
*/
(*prevglxc->readPixmap->pScreen->DestroyPixmap)(pPixmap);
__glXFree(prevglxc->readPixmap);
}
}
/*
** The previous drawable was a glx pixmap, release it.
*/
prevglxc->pGlxPixmap->refcnt--;
if (!prevglxc->pGlxPixmap->idExists &&
!prevglxc->pGlxPixmap->refcnt) {
PixmapPtr pPixmap = (PixmapPtr) prevglxc->pGlxPixmap->pDraw;
prevglxc->drawPixmap->refcnt--;
if (!prevglxc->drawPixmap->idExists &&
!prevglxc->drawPixmap->refcnt) {
PixmapPtr pPixmap = (PixmapPtr) prevglxc->drawPixmap->pDraw;
/*
** The DestroyPixmap routine should decrement the
** refcount of the X pixmap and free only if it's zero.
*/
(*prevglxc->pGlxPixmap->pScreen->DestroyPixmap)(pPixmap);
__glXFree(prevglxc->pGlxPixmap);
(*prevglxc->drawPixmap->pScreen->DestroyPixmap)(pPixmap);
__glXFree(prevglxc->drawPixmap);
}
prevglxc->pGlxPixmap = 0;
prevglxc->drawPixmap = NULL;
}
ChangeCurrentContext(cl, glxc, tag);
StopUsingContext(prevglxc);
} else {
tag = AddCurrentContext(cl, glxc);
}
if (glxc) {
if (pGlxPixmap) {
pGlxPixmap->refcnt++;
glxc->pGlxPixmap = pGlxPixmap;
if (drawPixmap) {
drawPixmap->refcnt++;
glxc->drawPixmap = drawPixmap;
}
if (readPixmap && (readPixmap != drawPixmap)) {
readPixmap->refcnt++;
glxc->readPixmap = readPixmap;
}
StartUsingContext(cl, glxc);
reply.contextTag = tag;
} else {
reply.contextTag = 0;
}
reply.length = 0;
reply.type = X_Reply;
reply.sequenceNumber = client->sequence;
@ -617,6 +747,8 @@ int __glXQueryVersion(__GLXclientState *cl, GLbyte *pc)
major = req->majorVersion;
minor = req->minorVersion;
(void)major;
(void)minor;
/*
** Server should take into consideration the version numbers sent by the
@ -1446,6 +1578,8 @@ int __glXVendorPrivateWithReply(__GLXclientState *cl, GLbyte *pc)
switch (vendorcode) {
case X_GLXvop_QueryContextInfoEXT:
return __glXQueryContextInfoEXT(cl, pc);
case X_GLXvop_MakeCurrentReadSGI:
return __glXMakeCurrentReadSGI(cl, pc);
default:
break;
}

View file

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/glxcmdsswap.c,v 1.7 2002/01/14 22:47:08 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/glxcmdsswap.c,v 1.9 2003/10/28 22:50:17 tsi Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@ -94,6 +94,34 @@ int __glXSwapMakeCurrent(__GLXclientState *cl, GLbyte *pc)
return __glXMakeCurrent(cl, pc);
}
int __glXSwapMakeContextCurrent(__GLXclientState *cl, GLbyte *pc)
{
xGLXMakeContextCurrentReq *req = (xGLXMakeContextCurrentReq *) pc;
__GLX_DECLARE_SWAP_VARIABLES;
__GLX_SWAP_SHORT(&req->length);
__GLX_SWAP_INT(&req->drawable);
__GLX_SWAP_INT(&req->readdrawable);
__GLX_SWAP_INT(&req->context);
__GLX_SWAP_INT(&req->oldContextTag);
return __glXMakeContextCurrent(cl, pc);
}
int __glXSwapMakeCurrentReadSGI(__GLXclientState *cl, GLbyte *pc)
{
xGLXMakeCurrentReadSGIReq *req = (xGLXMakeCurrentReadSGIReq *) pc;
__GLX_DECLARE_SWAP_VARIABLES;
__GLX_SWAP_SHORT(&req->length);
__GLX_SWAP_INT(&req->drawable);
__GLX_SWAP_INT(&req->readable);
__GLX_SWAP_INT(&req->context);
__GLX_SWAP_INT(&req->oldContextTag);
return __glXMakeCurrentReadSGI(cl, pc);
}
int __glXSwapIsDirect(__GLXclientState *cl, GLbyte *pc)
{
xGLXIsDirectReq *req = (xGLXIsDirectReq *) pc;
@ -329,7 +357,7 @@ int __glXSwapClientInfo(__GLXclientState *cl, GLbyte *pc)
return __glXClientInfo(cl, pc);
}
int __glXSwapQueryContextInfoEXT(__GLXclientState *cl, char *pc)
int __glXSwapQueryContextInfoEXT(__GLXclientState *cl, GLbyte *pc)
{
xGLXQueryContextInfoEXTReq *req = (xGLXQueryContextInfoEXTReq *) pc;
__GLX_DECLARE_SWAP_VARIABLES;
@ -337,7 +365,7 @@ int __glXSwapQueryContextInfoEXT(__GLXclientState *cl, char *pc)
__GLX_SWAP_SHORT(&req->length);
__GLX_SWAP_INT(&req->context);
return __glXQueryContextInfoEXT(cl, (GLbyte *)pc);
return __glXQueryContextInfoEXT(cl, pc);
}
/************************************************************************/
@ -785,6 +813,16 @@ int __glXSwapVendorPrivateWithReply(__GLXclientState *cl, GLbyte *pc)
vendorcode = req->vendorCode;
switch (vendorcode) {
case X_GLXvop_QueryContextInfoEXT:
return __glXSwapQueryContextInfoEXT(cl, pc);
case X_GLXvop_MakeCurrentReadSGI:
return __glXSwapMakeCurrentReadSGI(cl, pc);
default:
break;
}
if ((vendorcode >= __GLX_MIN_VENDPRIV_OPCODE_EXT) &&
(vendorcode <= __GLX_MAX_VENDPRIV_OPCODE_EXT)) {
return (*__glXSwapVendorPrivTable_EXT[vendorcode-__GLX_MIN_VENDPRIV_OPCODE_EXT])(cl, (GLbyte*)req);

View file

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/glxcontext.h,v 1.4 2002/02/22 21:45:07 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/glxcontext.h,v 1.5 2003/09/28 20:15:43 alanh Exp $ */
#ifndef _GLX_context_h_
#define _GLX_context_h_
@ -54,7 +54,8 @@ struct __GLXcontextRec {
/*
** list of contexts bound to the same drawable
*/
struct __GLXcontextRec *nextPriv;
struct __GLXcontextRec *nextDrawPriv;
struct __GLXcontextRec *nextReadPriv;
/*
** Opaque pointer the context object created by the GL that the
@ -142,12 +143,14 @@ struct __GLXcontextRec {
/*
** Set only if current drawable is a glx pixmap.
*/
__GLXpixmap *pGlxPixmap;
__GLXpixmap *drawPixmap;
__GLXpixmap *readPixmap;
/*
** The drawable private this context is bound to
*/
__GLXdrawablePrivate *glxPriv;
__GLXdrawablePrivate *drawPriv;
__GLXdrawablePrivate *readPriv;
};
/* pending state defines */

View file

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/glxdrawable.h,v 1.3 2001/03/21 16:29:36 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/glxdrawable.h,v 1.4 2003/09/28 20:15:43 alanh Exp $ */
#ifndef _GLX_drawable_h_
#define _GLX_drawable_h_
@ -78,9 +78,13 @@ struct __GLXdrawablePrivateRec {
GLint width, height;
/*
** list of contexts bound to this drawable
** Lists of contexts bound to this drawable. There are two lists here.
** One list is of the contexts that have this drawable bound for drawing,
** and the other is the list of contexts that have this drawable bound
** for reading.
*/
struct __GLXcontextRec *glxc;
struct __GLXcontextRec *drawGlxc;
struct __GLXcontextRec *readGlxc;
/*
** "methods" that the drawble should be able to respond to.

View file

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/glxext.c,v 1.8 2001/08/23 18:25:40 alanh Exp $
/* $XFree86: xc/programs/Xserver/GL/glx/glxext.c,v 1.9 2003/09/28 20:15:43 alanh Exp $
** The contents of this file are subject to the GLX Public License Version 1.0
** (the "License"). You may not use this file except in compliance with the
** License. You may obtain a copy of the License at Silicon Graphics, Inc.,
@ -114,7 +114,7 @@ static int ClientGone(int clientIndex, XID id)
for (i=0; i < cl->numCurrentContexts; i++) {
cx = cl->currentContexts[i];
if (cx) {
__glXDeassociateContext(cx, cx->glxPriv);
__glXDeassociateContext(cx);
cx->isCurrent = GL_FALSE;
if (!cx->idExists) {
__glXFreeContext(cx);
@ -343,7 +343,7 @@ __GLXcontext *__glXForceCurrent(__GLXclientState *cl, GLXContextTag tag,
}
if (!cx->isDirect) {
if (cx->glxPriv == NULL) {
if (cx->drawPriv == NULL) {
/*
** The drawable has vanished. It must be a window, because only
** windows can be destroyed from under us; GLX pixmaps are

View file

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/glxext.h,v 1.4 2001/03/21 16:29:36 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/glxext.h,v 1.7 2003/11/17 22:20:26 dawes Exp $ */
#ifndef _glxext_h_
#define _glxext_h_
@ -71,14 +71,16 @@ extern GLboolean __glXErrorOccured(void);
extern void __glXResetLargeCommandStatus(__GLXclientState*);
extern int __glXQueryContextInfoEXT(__GLXclientState *cl, GLbyte *pc);
extern int __glXSwapQueryContextInfoEXT(__GLXclientState *cl, char *pc);
extern int __glXSwapQueryContextInfoEXT(__GLXclientState *cl, GLbyte *pc);
extern int __glXMakeCurrentReadSGI(__GLXclientState *cl, GLbyte *pc);
extern int __glXSwapMakeCurrentReadSGI(__GLXclientState *cl, GLbyte *pc);
extern void GlxExtensionInit(void);
extern Bool __glXCoreType(void);
extern int GlxInitVisuals(
#if NeedFunctionPrototypes
VisualPtr * visualp,
DepthPtr * depthp,
int * nvisualp,
@ -88,7 +90,6 @@ extern int GlxInitVisuals(
unsigned long sizes,
int bitsPerRGB,
int preferredVis
#endif
);
#endif /* _glxext_h_ */

View file

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/glximports.c,v 1.5 2001/03/21 16:29:36 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/glximports.c,v 1.6 2003/09/28 20:15:43 alanh Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@ -167,5 +167,14 @@ __GLdrawablePrivate *__glXImpGetDrawablePrivate(__GLcontext *gc)
__GLinterface *glci = (__GLinterface *) gc;
__GLXcontext *glrc = (__GLXcontext *) glci->imports.other;
return &glrc->glxPriv->glPriv;
return &glrc->drawPriv->glPriv;
}
__GLdrawablePrivate *__glXImpGetReadablePrivate(__GLcontext *gc)
{
__GLinterface *glci = (__GLinterface *) gc;
__GLXcontext *glrc = (__GLXcontext *) glci->imports.other;
return &glrc->readPriv->glPriv;
}

View file

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/glximports.h,v 1.3 2001/03/21 16:29:36 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/glximports.h,v 1.4 2003/09/28 20:15:43 alanh Exp $ */
#ifndef _glximports_h_
#define _glximports_h_
@ -55,6 +55,7 @@ extern int __glXImpFprintf(__GLcontext *gc, void *stream,
const char *fmt, ...);
extern __GLdrawablePrivate *__glXImpGetDrawablePrivate(__GLcontext *gc);
extern __GLdrawablePrivate *__glXImpGetReadablePrivate(__GLcontext *gc);
#endif /* _glximports_h_ */

View file

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/glxscreens.c,v 1.10 2002/04/04 14:05:36 eich Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/glxscreens.c,v 1.12 2003/09/28 20:15:43 alanh Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@ -46,23 +46,77 @@
#include "glxserver.h"
#include "glxutil.h"
static char GLServerExtensions[] =
static const char GLServerExtensions[] =
"GL_ARB_depth_texture "
"GL_ARB_imaging "
"GL_ARB_multitexture "
"GL_ARB_point_parameters "
"GL_ARB_shadow "
"GL_ARB_shadow_ambient "
"GL_ARB_texture_border_clamp "
"GL_ARB_texture_cube_map "
"GL_ARB_texture_env_add "
"GL_ARB_texture_env_combine "
"GL_ARB_texture_env_crossbar "
"GL_ARB_texture_env_dot3 "
"GL_ARB_texture_mirrored_repeat "
"GL_ARB_transpose_matrix "
"GL_ARB_window_pos "
"GL_EXT_abgr "
"GL_EXT_blend_color "
"GL_EXT_blend_minmax "
"GL_EXT_blend_subtract "
"GL_EXT_texture_env_add "
"GL_EXT_texture_env_combine "
"GL_EXT_texture_env_dot3 "
"GL_EXT_texture_lod_bias "
"GL_EXT_bgra "
"GL_EXT_blend_color "
"GL_EXT_blend_func_separate "
"GL_EXT_blend_logic_op "
"GL_EXT_blend_minmax "
"GL_EXT_blend_subtract "
"GL_EXT_clip_volume_hint "
"GL_EXT_copy_texture "
"GL_EXT_draw_range_elements "
"GL_EXT_fog_coord "
"GL_EXT_multi_draw_arrays "
"GL_EXT_packed_pixels "
"GL_EXT_polygon_offset "
"GL_EXT_rescale_normal "
"GL_EXT_secondary_color "
"GL_EXT_separate_specular_color "
"GL_EXT_shadow_funcs "
"GL_EXT_stencil_two_side "
"GL_EXT_stencil_wrap "
"GL_EXT_subtexture "
"GL_EXT_texture "
"GL_EXT_texture3D "
"GL_EXT_texture_edge_clamp "
"GL_EXT_texture_env_add "
"GL_EXT_texture_env_combine "
"GL_EXT_texture_env_dot3 "
"GL_EXT_texture_lod "
"GL_EXT_texture_lod_bias "
"GL_EXT_texture_object "
"GL_EXT_texture_rectangle "
"GL_EXT_vertex_array "
"GL_APPLE_packed_pixels "
"GL_ATI_texture_mirror_once "
"GL_ATI_texture_env_combine3 "
#if 0
/* This is currently removed because there seem to be some problems with
* it and the software-only indirect rendering path. At this point, I'm
* not sure which side (client or server) has the problem. - idr
*/
"GL_HP_occlusion_test "
#endif
"GL_IBM_texture_mirrored_repeat "
"GL_MESA_pack_invert "
"GL_MESA_ycbcr_texture "
"GL_NV_blend_square "
"GL_NV_texgen_reflection "
"GL_NV_texture_rectangle "
"GL_SGIS_generate_mipmap "
"GL_SGIS_texture_border_clamp "
"GL_SGIS_texture_edge_clamp "
"GL_SGIS_texture_lod "
"GL_SGIX_depth_texture "
"GL_SGIX_shadow "
"GL_SGIX_shadow_ambient "
;
/*
@ -75,6 +129,7 @@ static char GLXServerExtensions[] =
"GLX_EXT_visual_info "
"GLX_EXT_visual_rating "
"GLX_EXT_import_context "
"GLX_SGI_make_current_read "
;
/*
@ -94,6 +149,7 @@ GLint __glXNumActiveScreens;
RESTYPE __glXDrawableRes;
#if 0
static int
CountBits(unsigned long mask)
{
@ -106,6 +162,7 @@ CountBits(unsigned long mask)
return count;
}
#endif
#if 0
/*
@ -186,8 +243,13 @@ static Bool DrawableGone(__GLXdrawablePrivate *glxPriv, XID xid)
** When a window is destroyed, notify all context bound to
** it, that there are no longer bound to anything.
*/
for (cx = glxPriv->glxc; cx; cx = cx1) {
cx1 = cx->nextPriv;
for (cx = glxPriv->drawGlxc; cx; cx = cx1) {
cx1 = cx->nextDrawPriv;
cx->pendingState |= __GLX_PENDING_DESTROY;
}
for (cx = glxPriv->readGlxc; cx; cx = cx1) {
cx1 = cx->nextReadPriv;
cx->pendingState |= __GLX_PENDING_DESTROY;
}
}
@ -247,9 +309,14 @@ static Bool PositionWindow(WindowPtr pWin, int x, int y)
/* XXX: what can we possibly do here? */
ret = False;
}
/* mark contexts as needing resize */
glxc = NULL;
for (glxc = glxPriv->glxc; glxc; glxc = glxc->nextPriv) {
for (glxc = glxPriv->drawGlxc; glxc; glxc = glxc->nextDrawPriv) {
glxc->pendingState |= __GLX_PENDING_RESIZE;
}
for (glxc = glxPriv->readGlxc; glxc; glxc = glxc->nextReadPriv) {
glxc->pendingState |= __GLX_PENDING_RESIZE;
}

View file

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/glxserver.h,v 1.4 2001/08/23 18:25:40 alanh Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/glxserver.h,v 1.5 2003/09/28 20:15:43 alanh Exp $ */
#ifndef _GLX_server_h_
#define _GLX_server_h_
@ -279,4 +279,6 @@ extern int __glXConvolutionParameterfvSize(GLenum pname);
extern int __glXColorTableParameterfvSize(GLenum pname);
extern int __glXColorTableParameterivSize(GLenum pname);
extern int __glXPointParameterfvARBReqSize(GLbyte *pc, Bool swap);
#endif /* !__GLX_server_h__ */

View file

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/glxutil.c,v 1.5 2001/03/21 16:29:37 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/glxutil.c,v 1.6 2003/09/28 20:15:43 alanh Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@ -130,33 +130,59 @@ __glXFree(void *addr)
** associate a context with a drawable
*/
void
__glXAssociateContext(__GLXcontext *glxc, __GLXdrawablePrivate *glxPriv)
__glXAssociateContext(__GLXcontext *glxc)
{
glxc->nextPriv = glxPriv->glxc;
glxPriv->glxc = glxc;
glxc->nextDrawPriv = glxc->drawPriv->drawGlxc;
glxc->drawPriv->drawGlxc = glxc;
__glXRefDrawablePrivate(glxPriv);
__glXRefDrawablePrivate(glxc->drawPriv);
glxc->nextReadPriv = glxc->readPriv->readGlxc;
glxc->readPriv->readGlxc = glxc;
__glXRefDrawablePrivate(glxc->readPriv);
}
/*
** Deassociate a context from a drawable
*/
void
__glXDeassociateContext(__GLXcontext *glxc, __GLXdrawablePrivate *glxPriv)
__glXDeassociateContext(__GLXcontext *glxc)
{
__GLXcontext *glxc1, *glxc2;
__GLXcontext *curr, *prev;
glxc2 = NULL;
for (glxc1=glxPriv->glxc; glxc1; glxc2=glxc1, glxc1=glxc1->nextPriv) {
if (glxc1 == glxc) {
prev = NULL;
for ( curr = glxc->drawPriv->drawGlxc
; curr != NULL
; prev = curr, curr = curr->nextDrawPriv ) {
if (curr == glxc) {
/* found context. Deassociate. */
if (glxc2 == NULL) {
glxPriv->glxc = glxc1->nextPriv;
if (prev == NULL) {
glxc->drawPriv->drawGlxc = curr->nextDrawPriv;
} else {
glxc2->nextPriv = glxc1->nextPriv;
prev->nextDrawPriv = curr->nextDrawPriv;
}
glxc1->nextPriv = NULL;
__glXUnrefDrawablePrivate(glxPriv);
curr->nextDrawPriv = NULL;
__glXUnrefDrawablePrivate(glxc->drawPriv);
break;
}
}
prev = NULL;
for ( curr = glxc->readPriv->readGlxc
; curr != NULL
; prev = curr, curr = curr->nextReadPriv ) {
if (curr == glxc) {
/* found context. Deassociate. */
if (prev == NULL) {
glxc->readPriv->readGlxc = curr->nextReadPriv;
} else {
prev->nextReadPriv = curr->nextReadPriv;
}
curr->nextReadPriv = NULL;
__glXUnrefDrawablePrivate(glxc->readPriv);
break;
}
}
@ -259,16 +285,18 @@ LockDP(__GLdrawablePrivate *glPriv, __GLcontext *gc)
assert((glxc->pendingState & __GLX_PENDING_RESIZE) == 0x0);
}
if (glxc->pendingState & __GLX_PENDING_DESTROY) {
__GLXdrawablePrivate *glxPriv = glxc->glxPriv;
glxc->pendingState &= ~__GLX_PENDING_DESTROY;
assert(glxPriv->xorigin == 0);
assert(glxPriv->yorigin == 0);
assert(glxPriv->width == 0);
assert(glxPriv->height == 0);
assert(glxc->drawPriv->xorigin == 0);
assert(glxc->drawPriv->yorigin == 0);
assert(glxc->drawPriv->width == 0);
assert(glxc->drawPriv->height == 0);
assert(glxc->readPriv->xorigin == 0);
assert(glxc->readPriv->yorigin == 0);
assert(glxc->readPriv->width == 0);
assert(glxc->readPriv->height == 0);
(*glci->exports.notifyDestroy)(gc);
__glXDeassociateContext(glxc, glxPriv);
__glXDeassociateContext(glxc);
assert((glxc->pendingState & __GLX_PENDING_DESTROY) == 0x0);
}
if (glxc->pendingState & __GLX_PENDING_SWAP) {

View file

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/glxutil.h,v 1.3 2001/03/21 16:29:37 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/glxutil.h,v 1.4 2003/09/28 20:15:43 alanh Exp $ */
#ifndef _glxcmds_h_
#define _glxcmds_h_
@ -46,8 +46,8 @@ extern void *__glXRealloc(void *addr, size_t newSize);
extern void __glXFree(void *ptr);
/* relate contexts with drawables */
extern void __glXAssociateContext(__GLXcontext *glxc, __GLXdrawablePrivate *glxPriv);
extern void __glXDeassociateContext(__GLXcontext *glxc, __GLXdrawablePrivate *glxPriv);
extern void __glXAssociateContext(__GLXcontext *glxc);
extern void __glXDeassociateContext(__GLXcontext *glxc);
/* drawable operation */
extern void __glXGetDrawableSize(__GLdrawablePrivate *glPriv,

View file

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/impsize.h,v 1.3 2001/03/21 16:29:37 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/impsize.h,v 1.4 2003/09/28 20:15:43 alanh Exp $ */
#ifndef _impsize_h_
#define _impsize_h_
@ -67,4 +67,6 @@ extern int __glTexParameterfv_size(GLenum e);
extern int __glTexParameteriv_size(GLenum e);
extern int __glEvalComputeK(GLenum target);
extern int __glPointParameterfvARB_size(GLenum pname);
#endif /* _impsize_h_ */

View file

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/render2.c,v 1.5 2001/03/21 16:29:37 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/render2.c,v 1.6 2003/10/28 22:50:18 tsi Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@ -82,18 +82,25 @@ void __glXDisp_Map2f(GLbyte *pc)
void __glXDisp_Map1d(GLbyte *pc)
{
GLint order, k, compsize;
GLint order, k;
#ifdef __GLX_ALIGN64
GLint compsize;
#endif
GLenum target;
GLdouble u1, u2, *points;
target = *(GLenum*) (pc + 16);
order = *(GLint*) (pc + 20);
k = __glEvalComputeK(target);
#ifdef __GLX_ALIGN64
if (order < 0 || k < 0) {
compsize = 0;
} else {
compsize = order * k;
}
#endif
__GLX_GET_DOUBLE(u1,pc);
__GLX_GET_DOUBLE(u2,pc+8);
pc += 24;
@ -118,18 +125,25 @@ void __glXDisp_Map1d(GLbyte *pc)
void __glXDisp_Map2d(GLbyte *pc)
{
GLdouble u1, u2, v1, v2, *points;
GLint uorder, vorder, ustride, vstride, k, compsize;
GLint uorder, vorder, ustride, vstride, k;
#ifdef __GLX_ALIGN64
GLint compsize;
#endif
GLenum target;
target = *(GLenum *)(pc + 32);
uorder = *(GLint *)(pc + 36);
vorder = *(GLint *)(pc + 40);
k = __glEvalComputeK(target);
#ifdef __GLX_ALIGN64
if (vorder < 0 || uorder < 0 || k < 0) {
compsize = 0;
} else {
compsize = uorder * vorder * k;
}
#endif
__GLX_GET_DOUBLE(u1,pc);
__GLX_GET_DOUBLE(u2,pc+8);
__GLX_GET_DOUBLE(v1,pc+16);

View file

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/rensize.c,v 1.5 2002/02/22 21:45:07 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/rensize.c,v 1.6 2003/09/28 20:15:43 alanh Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@ -267,109 +267,8 @@ int __glXPixelMapusvReqSize(GLbyte *pc, Bool swap )
int __glXImageSize( GLenum format, GLenum type, GLsizei w, GLsizei h,
GLint rowLength, GLint skipRows, GLint alignment )
{
GLint bytesPerElement, elementsPerGroup, groupsPerRow;
GLint groupSize, rowSize, padding;
if (w < 0 || h < 0 ||
(type == GL_BITMAP &&
(format != GL_COLOR_INDEX && format != GL_STENCIL_INDEX))) {
return -1;
}
if (w==0 || h==0) return 0;
if (type == GL_BITMAP) {
if (rowLength > 0) {
groupsPerRow = rowLength;
} else {
groupsPerRow = w;
}
rowSize = (groupsPerRow + 7) >> 3;
padding = (rowSize % alignment);
if (padding) {
rowSize += alignment - padding;
}
return ((h + skipRows) * rowSize);
} else {
switch(format) {
case GL_COLOR_INDEX:
case GL_STENCIL_INDEX:
case GL_DEPTH_COMPONENT:
elementsPerGroup = 1;
break;
case GL_RED:
case GL_GREEN:
case GL_BLUE:
case GL_ALPHA:
case GL_LUMINANCE:
case GL_INTENSITY:
elementsPerGroup = 1;
break;
case GL_LUMINANCE_ALPHA:
elementsPerGroup = 2;
break;
case GL_RGB:
case GL_BGR:
elementsPerGroup = 3;
break;
case GL_RGBA:
case GL_BGRA:
case GL_ABGR_EXT:
elementsPerGroup = 4;
break;
default:
return -1;
}
switch(type) {
case GL_UNSIGNED_BYTE:
case GL_BYTE:
bytesPerElement = 1;
break;
case GL_UNSIGNED_BYTE_3_3_2:
case GL_UNSIGNED_BYTE_2_3_3_REV:
bytesPerElement = 1;
elementsPerGroup = 1;
break;
case GL_UNSIGNED_SHORT:
case GL_SHORT:
bytesPerElement = 2;
break;
case GL_UNSIGNED_SHORT_5_6_5:
case GL_UNSIGNED_SHORT_5_6_5_REV:
case GL_UNSIGNED_SHORT_4_4_4_4:
case GL_UNSIGNED_SHORT_4_4_4_4_REV:
case GL_UNSIGNED_SHORT_5_5_5_1:
case GL_UNSIGNED_SHORT_1_5_5_5_REV:
bytesPerElement = 2;
elementsPerGroup = 1;
break;
case GL_INT:
case GL_UNSIGNED_INT:
case GL_FLOAT:
bytesPerElement = 4;
break;
case GL_UNSIGNED_INT_8_8_8_8:
case GL_UNSIGNED_INT_8_8_8_8_REV:
case GL_UNSIGNED_INT_10_10_10_2:
case GL_UNSIGNED_INT_2_10_10_10_REV:
bytesPerElement = 4;
elementsPerGroup = 1;
break;
default:
return -1;
}
groupSize = bytesPerElement * elementsPerGroup;
if (rowLength > 0) {
groupsPerRow = rowLength;
} else {
groupsPerRow = w;
}
rowSize = groupsPerRow * groupSize;
padding = (rowSize % alignment);
if (padding) {
rowSize += alignment - padding;
}
return ((h + skipRows) * rowSize);
}
return __glXImage3DSize( format, type, w, h, 1, 0, rowLength,
0, skipRows, alignment );
}
/* XXX
@ -406,8 +305,6 @@ int __glXImage3DSize( GLenum format, GLenum type, GLsizei w, GLsizei h,
case GL_COLOR_INDEX:
case GL_STENCIL_INDEX:
case GL_DEPTH_COMPONENT:
elementsPerGroup = 1;
break;
case GL_RED:
case GL_GREEN:
case GL_BLUE:
@ -416,6 +313,13 @@ int __glXImage3DSize( GLenum format, GLenum type, GLsizei w, GLsizei h,
case GL_INTENSITY:
elementsPerGroup = 1;
break;
case GL_422_EXT:
case GL_422_REV_EXT:
case GL_422_AVERAGE_EXT:
case GL_422_REV_AVERAGE_EXT:
case GL_DEPTH_STENCIL_NV:
case GL_DEPTH_STENCIL_MESA:
case GL_YCBCR_MESA:
case GL_LUMINANCE_ALPHA:
elementsPerGroup = 2;
break;
@ -451,6 +355,10 @@ int __glXImage3DSize( GLenum format, GLenum type, GLsizei w, GLsizei h,
case GL_UNSIGNED_SHORT_4_4_4_4_REV:
case GL_UNSIGNED_SHORT_5_5_5_1:
case GL_UNSIGNED_SHORT_1_5_5_5_REV:
case GL_UNSIGNED_SHORT_8_8_APPLE:
case GL_UNSIGNED_SHORT_8_8_REV_APPLE:
case GL_UNSIGNED_SHORT_15_1_MESA:
case GL_UNSIGNED_SHORT_1_15_REV_MESA:
bytesPerElement = 2;
elementsPerGroup = 1;
break;
@ -463,6 +371,9 @@ int __glXImage3DSize( GLenum format, GLenum type, GLsizei w, GLsizei h,
case GL_UNSIGNED_INT_8_8_8_8_REV:
case GL_UNSIGNED_INT_10_10_10_2:
case GL_UNSIGNED_INT_2_10_10_10_REV:
case GL_UNSIGNED_INT_24_8_NV:
case GL_UNSIGNED_INT_24_8_MESA:
case GL_UNSIGNED_INT_8_24_REV_MESA:
bytesPerElement = 4;
elementsPerGroup = 1;
break;
@ -998,3 +909,12 @@ int __glXColorTableParameterivReqSize(GLbyte *pc, Bool swap )
/* no difference between fv and iv versions */
return __glXColorTableParameterfvReqSize(pc, swap);
}
int __glXPointParameterfvARBReqSize(GLbyte *pc, Bool swap )
{
GLenum pname = *(GLenum *)(pc + 0);
if (swap) {
pname = SWAPL( pname );
}
return 4 * __glPointParameterfvARB_size( pname );
}

File diff suppressed because it is too large Load diff

View file

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/singlesize.c,v 1.4 2002/02/22 21:45:07 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/singlesize.c,v 1.6 2003/11/06 18:37:56 tsi Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@ -35,6 +35,7 @@
*/
#include <GL/gl.h>
#include "glxserver.h"
#include "singlesize.h"
/*
@ -46,101 +47,7 @@
GLint __glReadPixels_size(GLenum format, GLenum type, GLint w, GLint h)
{
GLint elements, esize;
GLint rowsize, padding;
if (w < 0 || h < 0) {
return -1;
}
switch (format) {
case GL_COLOR_INDEX:
case GL_STENCIL_INDEX:
case GL_DEPTH_COMPONENT:
elements = 1;
break;
case GL_RED:
case GL_GREEN:
case GL_BLUE:
case GL_ALPHA:
case GL_LUMINANCE:
case GL_INTENSITY:
elements = 1;
break;
case GL_LUMINANCE_ALPHA:
elements = 2;
break;
case GL_RGB:
case GL_BGR:
elements = 3;
break;
case GL_RGBA:
case GL_BGRA:
case GL_ABGR_EXT:
elements = 4;
break;
default:
return -1;
}
/*
** According to the GLX protocol, each row must be padded to a multiple of
** 4 bytes. 4 bytes also happens to be the default alignment in the pixel
** store modes of the GL.
*/
switch (type) {
case GL_BITMAP:
if (format == GL_COLOR_INDEX || format == GL_STENCIL_INDEX) {
rowsize = ((w * elements)+7)/8;
padding = rowsize % 4;
if (padding) {
rowsize += 4 - padding;
}
return (rowsize * h);
} else {
return -1;
}
case GL_BYTE:
case GL_UNSIGNED_BYTE:
esize = 1;
break;
case GL_UNSIGNED_BYTE_3_3_2:
case GL_UNSIGNED_BYTE_2_3_3_REV:
esize = 1;
elements = 1;
break;
case GL_SHORT:
case GL_UNSIGNED_SHORT:
esize = 2;
break;
case GL_UNSIGNED_SHORT_5_6_5:
case GL_UNSIGNED_SHORT_5_6_5_REV:
case GL_UNSIGNED_SHORT_4_4_4_4:
case GL_UNSIGNED_SHORT_4_4_4_4_REV:
case GL_UNSIGNED_SHORT_5_5_5_1:
case GL_UNSIGNED_SHORT_1_5_5_5_REV:
esize = 2;
elements = 1;
break;
case GL_INT:
case GL_UNSIGNED_INT:
case GL_FLOAT:
esize = 4;
break;
case GL_UNSIGNED_INT_8_8_8_8:
case GL_UNSIGNED_INT_8_8_8_8_REV:
case GL_UNSIGNED_INT_10_10_10_2:
case GL_UNSIGNED_INT_2_10_10_10_REV:
esize = 4;
elements = 1;
break;
default:
return -1;
}
rowsize = w * elements * esize;
padding = rowsize % 4;
if (padding) {
rowsize += 4 - padding;
}
return (rowsize * h);
return __glXImage3DSize( format, type, w, h, 1, 0, 0, 0, 0, 4 );
}
GLint __glGetTexEnvfv_size(GLenum pname)
@ -207,23 +114,43 @@ GLint __glGetTexGeniv_size(GLenum pname)
GLint __glGetTexParameterfv_size(GLenum pname)
{
switch (pname) {
case GL_TEXTURE_BORDER_COLOR:
return 4;
case GL_TEXTURE_WRAP_S:
case GL_TEXTURE_WRAP_T:
case GL_TEXTURE_WRAP_R:
return 1;
case GL_TEXTURE_MIN_FILTER:
case GL_TEXTURE_MAG_FILTER:
return 1;
case GL_TEXTURE_BORDER_COLOR:
return 4;
case GL_TEXTURE_PRIORITY:
return 1;
case GL_TEXTURE_RESIDENT:
return 1;
/* GL_SGIS_texture_lod / GL_EXT_texture_lod / GL 1.2 */
case GL_TEXTURE_MIN_LOD:
case GL_TEXTURE_MAX_LOD:
case GL_TEXTURE_BASE_LEVEL:
case GL_TEXTURE_MAX_LEVEL:
/* GL_SGIX_texture_lod_bias */
case GL_TEXTURE_LOD_BIAS_S_SGIX:
case GL_TEXTURE_LOD_BIAS_T_SGIX:
case GL_TEXTURE_LOD_BIAS_R_SGIX:
/* GL_ARB_shadow / GL 1.4 */
case GL_TEXTURE_COMPARE_MODE:
case GL_TEXTURE_COMPARE_FUNC:
/* GL_SGIX_shadow_ambient / GL_ARB_shadow_ambient */
case GL_TEXTURE_COMPARE_FAIL_VALUE_ARB:
/* GL_SGIX_shadow */
case GL_TEXTURE_COMPARE_SGIX:
case GL_TEXTURE_COMPARE_OPERATOR_SGIX:
/* GL_SGIX_texture_coordinate_clamp */
case GL_TEXTURE_MAX_CLAMP_S_SGIX:
case GL_TEXTURE_MAX_CLAMP_T_SGIX:
case GL_TEXTURE_MAX_CLAMP_R_SGIX:
return 1;
default:
@ -911,6 +838,15 @@ GLint __glGet_size(GLenum sq)
case GL_TEXTURE_BINDING_CUBE_MAP_ARB:
case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB:
return 1;
case GL_OCCLUSION_TEST_RESULT_HP:
case GL_OCCLUSION_TEST_HP:
return 1;
case GL_PACK_INVERT_MESA:
return 1;
case GL_CULL_VERTEX_IBM:
return 1;
case GL_RASTER_POSITION_UNCLIPPED_IBM:
return 1;
default:
return -1;
}
@ -964,82 +900,8 @@ GLint __glGetTexLevelParameteriv_size(GLenum pname)
GLint __glGetTexImage_size(GLenum target, GLint level, GLenum format,
GLenum type, GLint width, GLint height, GLint depth)
{
GLint elements, esize;
GLint padding, rowsize;
switch (format) {
case GL_RGBA:
case GL_BGRA:
case GL_ABGR_EXT:
elements = 4;
break;
case GL_RGB:
case GL_BGR:
elements = 3;
break;
case GL_RED:
case GL_GREEN:
case GL_BLUE:
case GL_ALPHA:
case GL_LUMINANCE:
case GL_INTENSITY:
elements = 1;
break;
case GL_LUMINANCE_ALPHA:
elements = 2;
break;
default:
return -1;
}
switch (type) {
case GL_BYTE:
case GL_UNSIGNED_BYTE:
esize = 1;
break;
case GL_UNSIGNED_BYTE_3_3_2:
case GL_UNSIGNED_BYTE_2_3_3_REV:
esize = 1;
elements = 1;
break;
case GL_SHORT:
case GL_UNSIGNED_SHORT:
esize = 2;
break;
case GL_UNSIGNED_SHORT_5_6_5:
case GL_UNSIGNED_SHORT_5_6_5_REV:
case GL_UNSIGNED_SHORT_4_4_4_4:
case GL_UNSIGNED_SHORT_4_4_4_4_REV:
case GL_UNSIGNED_SHORT_5_5_5_1:
case GL_UNSIGNED_SHORT_1_5_5_5_REV:
esize = 2;
elements = 1;
break;
case GL_INT:
case GL_UNSIGNED_INT:
case GL_FLOAT:
esize = 4;
break;
case GL_UNSIGNED_INT_8_8_8_8:
case GL_UNSIGNED_INT_8_8_8_8_REV:
case GL_UNSIGNED_INT_10_10_10_2:
case GL_UNSIGNED_INT_2_10_10_10_REV:
esize = 4;
elements = 1;
break;
default:
return -1;
}
/*
** According to the GLX protocol, each row must be padded to a multiple of
** 4 bytes. 4 bytes also happens to be the default alignment in the pixel
** store modes of the GL.
*/
rowsize = width * elements * esize;
padding = rowsize % 4;
if (padding) {
rowsize += 4 - padding;
}
return (rowsize * height * depth);
return __glXImage3DSize( format, type, width, height, depth,
0, 0, 0, 0, 4 );
}
GLint __glGetConvolutionParameteriv_size(GLenum pname)