0% found this document useful (0 votes)
214 views10 pages

OpenGL ICD Development

This document contains C code for a driver that implements OpenGL functions by wrapping calls to the Windows OpenGL API. It defines structures and functions for maintaining a table of OpenGL function pointers. The driver initializes this table by adding pointers to standard OpenGL functions. It also implements various Windows OpenGL functions by calling the corresponding Windows API functions while performing debugging checks.

Uploaded by

ivanagui2
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
214 views10 pages

OpenGL ICD Development

This document contains C code for a driver that implements OpenGL functions by wrapping calls to the Windows OpenGL API. It defines structures and functions for maintaining a table of OpenGL function pointers. The driver initializes this table by adding pointers to standard OpenGL functions. It also implements various Windows OpenGL functions by calling the corresponding Windows API functions while performing debugging checks.

Uploaded by

ivanagui2
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 10

// TitaniumGL

// THIS SOURCE CODE PART IS FOR LEARNING PURPOSES ONLY.


// THIS SOFTWARE IS NOT OPEN-SOURCE.
// --image-base=0x6FBD0000
typedef struct _icdTable {
unsigned int size;
PROC table[336];
} ICDTABLE, *PICDTABLE;
ICDTABLE icdmost;
void icd_hozzaad(PROC fvhelye){
icdmost.table[icdmost.size]=fvhelye;
icdmost.size++;
}
void icdujrageneral(){
DEBUGWAITFLAG2;
icdmost.size=0;
icd_hozzaad((PROC)glNewList);
icd_hozzaad((PROC)glEndList);
icd_hozzaad((PROC)glCallList);
icd_hozzaad((PROC)glCallLists);
icd_hozzaad((PROC)glDeleteLists);
icd_hozzaad((PROC)glGenLists);
icd_hozzaad((PROC)glListBase);
icd_hozzaad((PROC)glBegin);
icd_hozzaad((PROC)glBitmap);
icd_hozzaad((PROC)glColor3b);

//0
//1
//2
//3
//624
//5
//6
//7
//8
//9

..........
icd_hozzaad((PROC)glDeleteTextures);
icd_hozzaad((PROC)glGenTextures);
icd_hozzaad((PROC)glGetPointerv);
icd_hozzaad((PROC)glIsTexture);
icd_hozzaad((PROC)glPrioritizeTextures);
icd_hozzaad((PROC)glTexSubImage1D);
icd_hozzaad((PROC)glTexSubImage2D);
icd_hozzaad((PROC)glPopClientAttrib);
icd_hozzaad((PROC)glPushClientAttrib);

//62327
//62328
//62329
//330
//331
//62332
//62333
//334
//335

int icd_legeneralva=0;
//PICDTABLE icdmostPP;
void * callback_backup=NULL;
__declspec(dllexport) APIENTRY PICDTABLE DrvSetContext(HDC hdc, HGLRC hglrc, voi
d *callback){
DEBUGWAITFLAG2;
//
if(!icd_legeneralva){
icdujrageneral();
icd_legeneralva=1;
icdmost.size=336;

//
//
//

icdmostPP=(PICDTABLE)malloc(337*sizeof(void*));
memcpy((void*)icdmostPP, &icdmost, 337*sizeof(void*));
}

/*

if(callback){
DEBUGWAITFLAG2; typedef DWORD CALLBACK (*CONT_OGL)(void*);
PROC proc = (PROC)callback;
CONT_OGL CONT_O = (CONT_OGL)proc;
CONT_O = (CONT_OGL)proc;
CONT_O(&icdmost);
callback_backup=callback;
}*/
return &icdmost;

}
__declspec(dllexport) GLAPI void APIENTRY DrvReleaseContext(HGLRC hglrc){ // BOO
L?
DEBUGWAITFLAG2;
//
return 1;
}

__declspec(dllexport) HGLRC APIENTRY DrvCreateContext(HDC hdc){


DEBUGWAITFLAG2;
return wglCreateContext(hdc);
}
__declspec(dllexport) BOOL APIENTRY DrvDeleteContext(HGLRC hRC){
DEBUGWAITFLAG2;
//
icd_legeneralva=0;
return wglDeleteContext(hRC);
}
__declspec(dllexport) BOOL APIENTRY DrvMakeCurrent(HDC hDC, HGLRC hRC){
DEBUGWAITFLAG2;
return wglMakeCurrent(hDC, hRC);
}
__declspec(dllexport) HGLRC WINAPI APIENTRY DrvCreateLayerContext(HDC hdc, int i
LayerPlane){
DEBUGWAITFLAG2;
return wglCreateLayerContext(hdc, iLayerPlane);
}
__declspec(dllexport) BOOL WINAPI APIENTRY DrvCopyContext(HGLRC hglrcSrc, HGLRC
hglrcDst, UINT mask){
DEBUGWAITFLAG2;
return wglCopyContext(hglrcSrc, hglrcDst, mask);
}
__declspec(dllexport) BOOL WINAPI APIENTRY DrvDescribeLayerPlane(HDC hdc, int iP
ixelFormat, int iLayerPlane, UINT nBytes, LPLAYERPLANEDESCRIPTOR plpd){
DEBUGWAITFLAG2;
return wglDescribeLayerPlane(hdc, iPixelFormat, iLayerPlane, nBytes, plpd);
}
__declspec(dllexport) int WINAPI APIENTRY DrvGetLayerPaletteEntries(HDC hdc, int

iLayerPlane, int iStart, int cEntries, COLORREF *pcr) {


DEBUGWAITFLAG2;
return wglGetLayerPaletteEntries(hdc, iLayerPlane, iStart, cEntries, pcr);
}
__declspec(dllexport) PROC WINAPI APIENTRY DrvGetProcAddress(LPCSTR lpszProc){
DEBUGWAITFLAG2;
return wglGetProcAddress(lpszProc);
}
__declspec(dllexport) BOOL WINAPI APIENTRY DrvRealizeLayerPalette(HDC hdc, int i
LayerPlane, BOOL bRealize) {
DEBUGWAITFLAG2;
return wglRealizeLayerPalette(hdc, iLayerPlane, bRealize);
}
__declspec(dllexport) WINGDIAPI APIENTRY HGLRC GLAPIENTRY DrvGetCurrentContext(v
oid){
DEBUGWAITFLAG2;
return wglGetCurrentContext();
}
__declspec(dllexport) WINGDIAPI HDC APIENTRY DrvGetCurrentDC(void){
DEBUGWAITFLAG2;
return wglGetCurrentDC();
}
__declspec(dllexport) WINGDIAPI int APIENTRY DrvChoosePixelFormat(HDC hdc, PIXEL
FORMATDESCRIPTOR *ppfd){
DEBUGWAITFLAG2;
return wglChoosePixelFormat(hdc, ppfd);
}
__declspec(dllexport) WINGDIAPI int APIENTRY DrvDescribePixelFormat(HDC dhdc, lo
ng int iPixelFormat, unsigned long int cjpfd, PIXELFORMATDESCRIPTOR *ppfd){
DEBUGWAITFLAG2;
return wglDescribePixelFormat(dhdc, iPixelFormat, cjpfd, ppfd);
}
__declspec(dllexport) WINGDIAPI int APIENTRY DrvGetPixelFormat(HDC hdc){
DEBUGWAITFLAG2;
return wglGetPixelFormat(hdc);
}
__declspec(dllexport) int WINAPI APIENTRY DrvSetLayerPaletteEntries(HDC hdc, int
iLayerPlane, int iStart, int cEntries, const COLORREF *pcr){
DEBUGWAITFLAG2;
return wglSetLayerPaletteEntries(hdc, iLayerPlane, iStart, cEntries, pcr);
}
__declspec(dllexport) WINGDIAPI BOOL GLAPIENTRY DrvSetPixelFormat(HDC hdc,int iP
ixelFormat){
DEBUGWAITFLAG2;
//
DrvSetContext(hdc, 0, callback_backup);
return 1;
}
__declspec(dllexport) WINGDIAPI BOOL GLAPIENTRY DrvShareLists(HGLRC hglrc1, HGLR
C hglrc2){
DEBUGWAITFLAG2;
return wglShareLists(hglrc1, hglrc2);
}
__declspec(dllexport) WINGDIAPI BOOL GLAPIENTRY DrvSwapBuffers(HDC hdc){

DEBUGWAITFLAG2;
return wglSwapBuffers(hdc);
}
__declspec(dllexport) WINGDIAPI BOOL GLAPIENTRY DrvSwapLayerBuffers(HDC hdc, UIN
T fuPlanes){
DEBUGWAITFLAG2;
return wglSwapLayerBuffers(hdc, fuPlanes);
}
__declspec(dllexport) WINGDIAPI BOOL GLAPIENTRY DrvSwapMultipleBuffers(DWORD dw,
UINT fuPlanes){
DEBUGWAITFLAG2;
//
return wglSwapMultipleBuffers(dw, fuPlanes);
return 1;
}
__declspec(dllexport) WINGDIAPI BOOL GLAPIENTRY DrvUseFontBitmapsA(HDC hdc, DWOR
D first, DWORD count, DWORD listBase){
DEBUGWAITFLAG2;
return wglUseFontBitmapsA(hdc, first, count, listBase);
}
__declspec(dllexport) WINGDIAPI BOOL GLAPIENTRY DrvUseFontBitmapsW(HDC hdc, DWOR
D first, DWORD count, DWORD listBase){
DEBUGWAITFLAG2;
return wglUseFontBitmapsW(hdc, first, count, listBase);
}
__declspec(dllexport) WINGDIAPI BOOL GLAPIENTRY DrvUseFontOutlinesA(HDC hdc, DWO
RD first, DWORD count, DWORD listBase, FLOAT deviation, FLOAT extrusion, int for
mat, LPGLYPHMETRICSFLOAT lpgmf){
DEBUGWAITFLAG2;
return wglUseFontOutlinesA(hdc, first, count, listBase, deviation, extrusio
n, format, lpgmf);
}
__declspec(dllexport) WINGDIAPI BOOL GLAPIENTRY DrvUseFontOutlinesW(HDC hdc, DWO
RD first, DWORD count, DWORD listBase, FLOAT deviation, FLOAT extrusion, int for
mat, LPGLYPHMETRICSFLOAT lpgmf){
DEBUGWAITFLAG2;
return wglUseFontOutlinesW(hdc, first, count, listBase, deviation, extrusio
n, format, lpgmf);
__declspec(dllexport) WINGDIAPI GLAPI BOOL APIENTRY DrvValidateVersion(DWORD ver
sion){
DEBUGWAITFLAG2;
return (BOOL)1;
}
__declspec(dllexport) GLAPI APIENTRY HGLRC wglCreateContext(HDC hdc){
DEBUGWAITFLAG2;
reset_flags_nimp();
if(!initelvevolt){
#ifdef WIN32
utolsoaktivdc=hdc;
HWND hwnd; if(hdc) hwnd=WindowFromDC(hdc);
if(hwnd){
LPRECT lpRect=(LPRECT)malloc(2048);
if(GetClientRect(hwnd, lpRect)){
RESX=abs(lpRect->right-lpRect->left);
RESY=abs(lpRect->top-lpRect->bottom);
helyx=lpRect->left;
helyy=lpRect->top;
}
free(lpRect);
}else{

RESX=0;
RESY=0;
}
#endif
initswf();
}
utolsoaktivdc=hdc;
if(KRITIKUS_HIBA && !HWND_INIT_FAILD) return (HGLRC)0;
return (HGLRC)1;
}
__declspec(dllexport) GLAPI BOOL GLAPIENTRY wglDeleteContext(HGLRC hRC){
DEBUGWAITFLAG2;
//
STARTUPINFO sui;PROCESS_INFORMATION pi;
//
TCHAR szApp[MAX_PATH];
//
BOOL fRet=CreateProcess(szApp, NULL, NULL, NULL, FALSE, CREATE_NEW
_CONSOLE | CREATE_NEW_PROCESS_GROUP, NULL, NULL, &sui, &pi);
//
ConDisplayMode( GetStdHandle( STD_OUTPUT_HANDLE ), 1 );
//
ConDisplayMode( GetStdHandle( STD_OUTPUT_HANDLE ), 0 );
return 1;
}
__declspec(dllexport) GLAPI GLAPIENTRY void * wglGetProcAddress(char *lpszP
roc){
#endif
DEBUGWAITFLAG2;
#ifdef HIBAJAVIT
if(hiba){fprintf(hiba, "%s\n", lpszProc);fflush(hiba);}
#endif
if(strcmp(lpszProc, "glDrawArraysEXT")==0) return (PROCdd)glDrawArrays;
if(strcmp(lpszProc, "glColorPointerEXT")==0) return (PROCdd)glColorPointer;
if(strcmp(lpszProc, "glArrayElementEXT")==0) return (PROCdd)glArrayElement;
if(strcmp(lpszProc, "glIndexPointerEXT")==0) return (PROCdd)glIndexPointer;
if(strcmp(lpszProc, "glNormalPointerEXT")==0) return (PROCdd)glNormalPointe
r;
if(strcmp(lpszProc, "glTexCoordPointerEXT")==0) return (PROCdd)glTexCoordPo
inter;
if(strcmp(lpszProc, "glVertexPointerEXT")==0) return (PROCdd)glVertexPointe
r;
if(strcmp(lpszProc, "glGetPointervEXT")==0) return (PROCdd)glGetPointerv;
if(strcmp(lpszProc, "glEdgeFlagPointerEXT")==0) return (PROCdd)glEdgeFlagPo
interEXT;
if(strcmp(lpszProc, "wglGetExtensionsStringEXT")==0) return (PROCdd)wglGetE
xtensionsStringEXT;
#ifdef WIN32
if(strcmp(lpszProc, "wglGetExtensionsStringARB")==0) return (PROCdd)w
glGetExtensionsStringARB;
if(strcmp(lpszProc, "wglChoosePixelFormatARB")==0) return (PROCdd)wgl
ChoosePixelFormatARB;
if(strcmp("wglGetPixelFormatAttribivARB",lpszProc)==0) return (PROC)G
etPixelFormatAttribiv;
if(strcmp("wglGetPixelFormatAttribfvARB",lpszProc)==0) return (PROC)G
etPixelFormatAttribfv;
if(strcmp("wglBindTexImageARB",lpszProc)==0) return (PROC)BindTexImag
eL;
if(strcmp("wglReleaseTexImageARB",lpszProc)==0) return (PROC)ReleaseT
exImageL;
if(strcmp("wglSetPbufferAttribARB",lpszProc)==0) return (PROC)SetPbuf

ferAttribL;
#endif
#include "alapfuggvenyek_pointervisszaad.c"
#ifdef PBUFFER_EMU_w32
if(strcmp("wglCreatePbufferARB",lpszProc)==0) return (PROCdd)wglCreat
ePbufferARB;
if(strcmp("wglGetPbufferDCARB",lpszProc)==0) return (PROCdd)wglGetPbu
fferDCARB;
if(strcmp("wglReleasePbufferDCARB",lpszProc)==0) return (PROCdd)wglRe
leasePbufferDCARB;
if(strcmp("wglDestroyPbufferARB",lpszProc)==0) return (PROCdd)wglDest
royPbufferARB;
if(strcmp("wglQueryPbufferARB",lpszProc)==0) return (PROCdd)wglQueryP
bufferARB;
#endif
if(strcmp("glMultiDrawArraysEXT",lpszProc)==0) return (PROC)glMultiDrawArra
ysEXT;
if(strcmp("glMultiDrawElementsEXT",lpszProc)==0) return (PROC)glMultiDrawEl
ementsEXT;
if(strcmp("glMultiDrawArrays",lpszProc)==0) return (PROC)glMultiDrawArraysE
XT;
if(strcmp("glMultiDrawElements",lpszProc)==0) return (PROC)glMultiDrawEleme
ntsEXT;
if(strcmp("glBindBufferARB",lpszProc)==0) return (PROC)BindBufferARB;
if(strcmp("glDeleteBuffersARB",lpszProc)==0) return (PROC)DeleteBuffersARB;
if(strcmp("glGenBuffersARB",lpszProc)==0) return (PROC)GenBuffersARB;
if(strcmp("glIsBufferARB",lpszProc)==0) return (PROC)IsBufferARB;
if(strcmp("glBufferDataARB",lpszProc)==0) return (PROC)BufferDataARB;
if(strcmp("glBufferSubDataARB",lpszProc)==0) return (PROC)BufferSubDataARB;
if(strcmp("glGetBufferSubDataARB",lpszProc)==0) return (PROC)GetBufferSubDa
taARB;
if(strcmp("glMapBufferARB",lpszProc)==0) return (PROC)MapBufferARB;
if(strcmp("glMapBufferRange",lpszProc)==0) return (PROC)glMapBufferRange;
if(strcmp("glMapBufferRangeARB",lpszProc)==0) return (PROC)glMapBufferRange
;
if(strcmp("glFlushMappedBufferRange",lpszProc)==0) return (PROC)glFlushMapp
edBufferRange;
if(strcmp("glFlushMappedBufferRangeARB",lpszProc)==0) return (PROC)glFlushM
appedBufferRange;
if(strcmp("glUnmapBufferARB",lpszProc)==0) return (PROC)UnmapBufferARB;
if(strcmp("glGetBufferParameterivARB",lpszProc)==0) return (PROC)GetBufferP
arameterivARB;
if(strcmp("glGetBufferPointervARB",lpszProc)==0) return (PROC)GetBufferPoin
terv;
if(strcmp("glBindBuffer",lpszProc)==0) return (PROC)BindBufferARB;
if(strcmp("glDeleteBuffers",lpszProc)==0) return (PROC)DeleteBuffersARB;
if(strcmp("glGenBuffers",lpszProc)==0) return (PROC)GenBuffersARB;
if(strcmp("glIsBuffer",lpszProc)==0) return (PROC)IsBufferARB;
if(strcmp("glBufferData",lpszProc)==0) return (PROC)BufferDataARB;
if(strcmp("glBufferSubData",lpszProc)==0) return (PROC)BufferSubDataARB;
if(strcmp("glGetBufferSubData",lpszProc)==0) return (PROC)GetBufferSubDataA
RB;
if(strcmp("glMapBuffer",lpszProc)==0) return (PROC)MapBufferARB;
if(strcmp("glUnmapBuffer",lpszProc)==0) return (PROC)UnmapBufferARB;
if(strcmp("glGetBufferParameteriv",lpszProc)==0) return (PROC)GetBufferPara
meterivARB;

if(strcmp("glGetBufferPointerv",lpszProc)==0) return (PROC)GetBufferPointer


v;
if(strcmp("glActiveTexture",lpszProc)==0) return (PROCdd)glActiveTexture;
if(strcmp("glActiveTextureARB",lpszProc)==0) return (PROCdd)glActiveTexture
;
if(strcmp("glClientActiveTexture",lpszProc)==0) return (PROCdd)glClientActi
veTexture;
if(strcmp("glClientActiveTextureARB",lpszProc)==0) return (PROCdd)glClientA
ctiveTexture;
if(strcmp("glMultiTexCoord1dARB",lpszProc)==0) return (PROCdd)glMultiTexCoo
rd1d;
if(strcmp("glMultiTexCoord1dvARB",lpszProc)==0) return (PROCdd)glMultiTexCo
ord1dv;
if(strcmp("glMultiTexCoord1fvARB",lpszProc)==0) return (PROCdd)glMultiTexCo
ord1fv;
if(strcmp("glMultiTexCoord1fARB",lpszProc)==0) return (PROCdd)glMultiTexCoo
rd1f;
if(strcmp("glMultiTexCoord1iARB",lpszProc)==0) return (PROCdd)glMultiTexCoo
rd1i;
if(strcmp("glMultiTexCoord1ivARB",lpszProc)==0) return (PROCdd)glMultiTexCo
ord1iv;
if(strcmp("glMultiTexCoord1sARB",lpszProc)==0) return (PROCdd)glMultiTexCoo
rd1s;
if(strcmp("glMultiTexCoord1svARB",lpszProc)==0) return (PROCdd)glMultiTexCo
ord1sv;
if(strcmp("glMultiTexCoord2dARB",lpszProc)==0) return (PROCdd)glMultiTexCoo
rd2d;
if(strcmp("glMultiTexCoord2dvARB",lpszProc)==0) return (PROCdd)glMultiTexCo
ord2dv;
if(strcmp("glMultiTexCoord2fARB",lpszProc)==0) return (PROCdd)glMultiTexCoo
rd2f;
if(strcmp("glMultiTexCoord2fvARB",lpszProc)==0) return (PROCdd)glMultiTexCo
ord2fv;
if(strcmp("glMultiTexCoord2iARB",lpszProc)==0) return (PROCdd)glMultiTexCoo
rd2i;
if(strcmp("glMultiTexCoord2ivARB",lpszProc)==0) return (PROCdd)glMultiTexCo
ord2iv;
if(strcmp("glMultiTexCoord2sARB",lpszProc)==0) return (PROCdd)glMultiTexCoo
rd2s;
if(strcmp("glMultiTexCoord2svARB",lpszProc)==0) return (PROCdd)glMultiTexCo
ord2sv;
if(strcmp("glMultiTexCoord3dARB",lpszProc)==0) return (PROCdd)glMultiTexCoo
rd3d;
if(strcmp("glMultiTexCoord3dvARB",lpszProc)==0) return (PROCdd)glMultiTexCo
ord3dv;
if(strcmp("glMultiTexCoord3fARB",lpszProc)==0) return (PROCdd)glMultiTexCoo
rd3f;
if(strcmp("glMultiTexCoord3fvARB",lpszProc)==0) return (PROCdd)glMultiTexCo
ord3fv;
if(strcmp("glMultiTexCoord3iARB",lpszProc)==0) return (PROCdd)glMultiTexCoo
rd3i;
if(strcmp("glMultiTexCoord3ivARB",lpszProc)==0) return (PROCdd)glMultiTexCo
ord3iv;
if(strcmp("glMultiTexCoord3sARB",lpszProc)==0) return (PROCdd)glMultiTexCoo
rd3s;
if(strcmp("glMultiTexCoord3svARB",lpszProc)==0) return (PROCdd)glMultiTexCo
ord3sv;
if(strcmp("glMultiTexCoord4dARB",lpszProc)==0) return (PROCdd)glMultiTexCoo
rd4d;
if(strcmp("glMultiTexCoord4dvARB",lpszProc)==0) return (PROCdd)glMultiTexCo

ord4dv;
if(strcmp("glMultiTexCoord4fARB",lpszProc)==0) return (PROCdd)glMultiTexCoo
rd4f;
if(strcmp("glMultiTexCoord4fvARB",lpszProc)==0) return (PROCdd)glMultiTexCo
ord4fv;
if(strcmp("glMultiTexCoord4iARB",lpszProc)==0) return (PROCdd)glMultiTexCoo
rd4i;
if(strcmp("glMultiTexCoord4ivARB",lpszProc)==0) return (PROCdd)glMultiTexCo
ord4iv;
if(strcmp("glMultiTexCoord4sARB",lpszProc)==0) return (PROCdd)glMultiTexCoo
rd4s;
if(strcmp("glMultiTexCoord4svARB",lpszProc)==0) return (PROCdd)glMultiTexCo
ord4sv;
if(strcmp("wglSwapIntervalEXT",lpszProc)==0) return (PROCdd)wglSwapInterval
EXT;
if(strcmp("wglGetSwapIntervalEXT",lpszProc)==0) return (PROCdd)wglGetSwapIn
tervalEXT;
if(strcmp("glLockArraysEXT",lpszProc)==0) return (PROCdd)LockArraysEXT;
if(strcmp("glUnlockArraysEXT",lpszProc)==0) return (PROCdd)UnlockArraysEXT;
if(strcmp("glLockArrays",lpszProc)==0) return (PROCdd)LockArraysEXT;
if(strcmp("glUnlockArrays",lpszProc)==0) return (PROCdd)UnlockArraysEXT;
if(strcmp("glMultiTexCoord1d",lpszProc)==0) return (PROCdd)glMultiTexCoord1
d;
if(strcmp("glMultiTexCoord1dv",lpszProc)==0) return (PROCdd)glMultiTexCoord
1dv;
if(strcmp("glMultiTexCoord1fv",lpszProc)==0) return (PROCdd)glMultiTexCoord
1fv;
if(strcmp("glMultiTexCoord1f",lpszProc)==0) return (PROCdd)glMultiTexCoord1
f;
if(strcmp("glMultiTexCoord1i",lpszProc)==0) return (PROCdd)glMultiTexCoord1
i;
if(strcmp("glMultiTexCoord1iv",lpszProc)==0) return (PROCdd)glMultiTexCoord
1iv;
if(strcmp("glMultiTexCoord1s",lpszProc)==0) return (PROCdd)glMultiTexCoord1
s;
if(strcmp("glMultiTexCoord1sv",lpszProc)==0) return (PROCdd)glMultiTexCoord
1sv;
if(strcmp("glMultiTexCoord2d",lpszProc)==0) return (PROCdd)glMultiTexCoord2
d;
if(strcmp("glMultiTexCoord2dv",lpszProc)==0) return (PROCdd)glMultiTexCoord
2dv;
if(strcmp("glMultiTexCoord2f",lpszProc)==0) return (PROCdd)glMultiTexCoord2
f;
if(strcmp("glMultiTexCoord2fv",lpszProc)==0) return (PROCdd)glMultiTexCoord
2fv;
if(strcmp("glMultiTexCoord2i",lpszProc)==0) return (PROCdd)glMultiTexCoord2
i;
if(strcmp("glMultiTexCoord2iv",lpszProc)==0) return (PROCdd)glMultiTexCoord
2iv;
if(strcmp("glMultiTexCoord2s",lpszProc)==0) return (PROCdd)glMultiTexCoord2
s;
if(strcmp("glMultiTexCoord2sv",lpszProc)==0) return (PROCdd)glMultiTexCoord
2sv;
if(strcmp("glMultiTexCoord3d",lpszProc)==0) return (PROCdd)glMultiTexCoord3
d;
if(strcmp("glMultiTexCoord3dv",lpszProc)==0) return (PROCdd)glMultiTexCoord
3dv;
if(strcmp("glMultiTexCoord3f",lpszProc)==0) return (PROCdd)glMultiTexCoord3
f;
if(strcmp("glMultiTexCoord3fv",lpszProc)==0) return (PROCdd)glMultiTexCoord

3fv;
if(strcmp("glMultiTexCoord3i",lpszProc)==0) return (PROCdd)glMultiTexCoord3
i;
if(strcmp("glMultiTexCoord3iv",lpszProc)==0) return (PROCdd)glMultiTexCoord
3iv;
if(strcmp("glMultiTexCoord3s",lpszProc)==0) return (PROCdd)glMultiTexCoord3
s;
if(strcmp("glMultiTexCoord3sv",lpszProc)==0) return (PROCdd)glMultiTexCoord
3sv;
if(strcmp("glMultiTexCoord4d",lpszProc)==0) return (PROCdd)glMultiTexCoord4
d;
if(strcmp("glMultiTexCoord4dv",lpszProc)==0) return (PROCdd)glMultiTexCoord
4dv;
if(strcmp("glMultiTexCoord4f",lpszProc)==0) return (PROCdd)glMultiTexCoord4
f;
if(strcmp("glMultiTexCoord4fv",lpszProc)==0) return (PROCdd)glMultiTexCoord
4fv;
if(strcmp("glMultiTexCoord4i",lpszProc)==0) return (PROCdd)glMultiTexCoord4
i;
if(strcmp("glMultiTexCoord4iv",lpszProc)==0) return (PROCdd)glMultiTexCoord
4iv;
if(strcmp("glMultiTexCoord4s",lpszProc)==0) return (PROCdd)glMultiTexCoord4
s;
if(strcmp("glMultiTexCoord4sv",lpszProc)==0) return (PROCdd)glMultiTexCoord
4sv;
if(strcmp("glDrawRangeElements",lpszProc)==0) return (PROCdd)glDrawRangeEle
ments;
if(strcmp("glDrawRangeElementsEXT",lpszProc)==0) return (PROCdd)glDrawRange
Elements;
if(strcmp("glMultTransposeMatrixd",lpszProc)==0) return (PROCdd)glMultTrans
poseMatrixd;
if(strcmp("glMultTransposeMatrixf",lpszProc)==0) return (PROCdd)glMultTrans
poseMatrixf;
if(strcmp("glLoadTransposeMatrixd",lpszProc)==0) return (PROCdd)glLoadTrans
poseMatrixd;
if(strcmp("glLoadTransposeMatrixf",lpszProc)==0) return (PROCdd)glLoadTrans
poseMatrixf;
if(strcmp("glMultTransposeMatrixdARB",lpszProc)==0) return (PROCdd)glMultTr
ansposeMatrixd;
if(strcmp("glMultTransposeMatrixfARB",lpszProc)==0) return (PROCdd)glMultTr
ansposeMatrixf;
if(strcmp("glLoadTransposeMatrixdARB",lpszProc)==0) return (PROCdd)glLoadTr
ansposeMatrixd;
if(strcmp("glLoadTransposeMatrixfARB",lpszProc)==0) return (PROCdd)glLoadTr
ansposeMatrixf;
if(strcmp("glSampleCoverageARB",lpszProc)==0) return (PROCdd)glSampleCovera
ge;
if(strcmp("glBlendFuncSeparate",lpszProc)==0) return (PROCdd)BlendFuncSepar
ateEXT;
if(strcmp("glBlendFuncSeparateEXT",lpszProc)==0) return (PROCdd)BlendFuncSe
parateEXT;
if(strcmp("glBlendEquation",lpszProc)==0) return (PROCdd)glBlendEquation;
#ifdef warningkommentek_irkal
printf("TitaniumGL notesz: ez a fuggveny nem tamogatott: %s\n", lpszP
roc);
#endif
#ifdef HIBAJAVIT
if(hiba){fprintf(hiba, "NINCS MEG.\n");fflush(hiba);}
#endif
return NULL;

You might also like