mirror of
https://github.com/X11Libre/xserver.git
synced 2026-09-16 19:32:26 +00:00
XFree86 4.3.99.16 Bring the tree up to date for the Cygwin folks
This commit is contained in:
parent
90f1536dd3
commit
adc7f9a4eb
705 changed files with 30330 additions and 26603 deletions
|
|
@ -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 */
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
|
|
|
|||
310
GL/glx/glxcmds.c
310
GL/glx/glxcmds.c
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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_ */
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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_ */
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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__ */
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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_ */
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
132
GL/glx/rensize.c
132
GL/glx/rensize.c
|
|
@ -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 );
|
||||
}
|
||||
|
|
|
|||
4257
GL/glx/rensizetab.c
4257
GL/glx/rensizetab.c
File diff suppressed because it is too large
Load diff
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in a new issue