diff --git a/reactos/lib/opengl32/Makefile b/reactos/lib/opengl32/Makefile index f47faadb851..56c09e3d946 100644 --- a/reactos/lib/opengl32/Makefile +++ b/reactos/lib/opengl32/Makefile @@ -14,13 +14,14 @@ TARGET_CFLAGS += -D_DISABLE_TIDENTS -Wall -Werror TARGET_LFLAGS = -lgdi32 -lntdll -TARGET_SDKLIBS = opengl32.a gdi32.a ntdll.a +TARGET_SDKLIBS = gdi32.a ntdll.a # ntdll.a gdi32.a - may still need these TARGET_OBJECTS = \ gl.o \ opengl32.o \ - wgl.o + wgl.o \ + tebimports.o DEP_OBJECTS = $(TARGET_OBJECTS) diff --git a/reactos/lib/opengl32/gl.c b/reactos/lib/opengl32/gl.c index fbcbd3da98c..8814c65d7e8 100644 --- a/reactos/lib/opengl32/gl.c +++ b/reactos/lib/opengl32/gl.c @@ -22,29 +22,10 @@ #define WIN32_LEAN_AND_MEAN #include -#include -#include +#include "teb.h" #include "opengl32.h" -/* GL data types - x86 typedefs */ -typedef unsigned int GLenum; -typedef unsigned char GLboolean; -typedef unsigned int GLbitfield; -typedef signed char GLbyte; -typedef short GLshort; -typedef int GLint; -typedef int GLsizei; -typedef unsigned char GLubyte; -typedef unsigned short GLushort; -typedef unsigned int GLuint; -typedef unsigned short GLhalf; -typedef float GLfloat; -typedef float GLclampf; -typedef double GLdouble; -typedef double GLclampd; -typedef void GLvoid; - int STDCALL glEmptyFunc0() { return 0; } int STDCALL glEmptyFunc4( long l1 ) { return 0; } int STDCALL glEmptyFunc8( long l1, long l2 ) { return 0; } @@ -77,7 +58,7 @@ int STDCALL glEmptyFunc56( long l1, long l2, long l3, long l4, long l5, long l11, long l12, long l13, long l14 ) { return 0; } - +#if !defined(_M_IX86) # define X(func, ret, typeargs, args, icdidx, tebidx, stack) \ ret STDCALL func typeargs \ { \ @@ -98,6 +79,14 @@ ret STDCALL func typeargs \ GLFUNCS_MACRO +#undef X +#endif//non-x86 architectures + +/* FIXME - change this code to lookup slow table and jump - probably needs to go in nasm */ +#define X(func,ret,typeargs,args,icdidx,stack) EXPORT ret STDCALL func typeargs { return 0; } +#define XVOID(func,typeargs,args,icdidx,stack) EXPORT void STDCALL func typeargs {} +#include "slowlist.h" +#undef XVOID #undef X /* EOF */ diff --git a/reactos/lib/opengl32/glfuncs.mac b/reactos/lib/opengl32/glfuncs.mac new file mode 100644 index 00000000000..08266da366a --- /dev/null +++ b/reactos/lib/opengl32/glfuncs.mac @@ -0,0 +1,337 @@ +;GLFUNC name,icdidx,tebidx,stack +GLFUNC glAccum,213,-1,8 +GLFUNC glAlphaFunc,240,-1,8 +GLFUNC glAreTexturesResident,322,-1,12 +GLFUNC glArrayElement,306,144,4 +GLFUNC glBegin,7,2,4 +GLFUNC glBindTexture,307,145,8 +GLFUNC glBitmap,8,-1,28 +GLFUNC glBlendFunc,241,-1,8 +GLFUNC glCallList,2,0,4 +GLFUNC glCallLists,3,1,12 +GLFUNC glClear,203,-1,4 +GLFUNC glClearAccum,204,-1,16 +GLFUNC glClearColor,206,-1,16 +GLFUNC glClearDepth,208,-1,8 +GLFUNC glClearIndex,205,-1,4 +GLFUNC glClearStencil,207,-1,4 +GLFUNC glClipPlane,150,-1,8 +GLFUNC glColor3b,9,3,12 +GLFUNC glColor3bv,10,4,4 +GLFUNC glColor3d,11,5,24 +GLFUNC glColor3dv,12,6,4 +GLFUNC glColor3f,13,7,12 +GLFUNC glColor3fv,14,8,4 +GLFUNC glColor3i,15,9,12 +GLFUNC glColor3iv,16,10,4 +GLFUNC glColor3s,17,11,12 +GLFUNC glColor3sv,18,12,4 +GLFUNC glColor3ub,19,13,12 +GLFUNC glColor3ubv,20,14,4 +GLFUNC glColor3ui,21,15,12 +GLFUNC glColor3uiv,22,16,4 +GLFUNC glColor3us,23,17,12 +GLFUNC glColor3usv,24,18,4 +GLFUNC glColor4b,25,19,16 +GLFUNC glColor4bv,26,20,4 +GLFUNC glColor4d,27,21,32 +GLFUNC glColor4dv,28,22,4 +GLFUNC glColor4f,29,23,16 +GLFUNC glColor4fv,30,24,4 +GLFUNC glColor4i,31,25,16 +GLFUNC glColor4iv,32,26,4 +GLFUNC glColor4s,33,27,16 +GLFUNC glColor4sv,34,28,4 +GLFUNC glColor4ub,35,29,16 +GLFUNC glColor4ubv,36,30,4 +GLFUNC glColor4ui,37,31,16 +GLFUNC glColor4uiv,38,32,4 +GLFUNC glColor4us,39,33,16 +GLFUNC glColor4usv,40,34,4 +GLFUNC glColorMask,210,-1,16 +GLFUNC glColorMaterial,151,-1,8 +GLFUNC glColorPointer,308,146,16 +GLFUNC glCopyPixels,255,-1,20 +GLFUNC glCopyTexImage1D,323,-1,28 +GLFUNC glCopyTexImage2D,324,-1,32 +GLFUNC glCopyTexSubImage1D,325,-1,24 +GLFUNC glCopyTexSubImage2D,326,-1,32 +GLFUNC glCullFace,152,-1,4 +GLFUNC glDeleteLists,4,-1,8 +GLFUNC glDeleteTextures,327,-1,8 +GLFUNC glDepthFunc,245,-1,4 +GLFUNC glDepthMask,211,-1,4 +GLFUNC glDepthRange,288,-1,16 +GLFUNC glDisable,214,116,4 +GLFUNC glDisableClientState,309,147,4 +GLFUNC glDrawArrays,310,148,12 +GLFUNC glDrawBuffer,202,-1,4 +GLFUNC glDrawElements,311,149,16 +GLFUNC glDrawPixels,257,-1,20 +GLFUNC glEdgeFlag,41,35,4 +GLFUNC glEdgeFlagPointer,312,150,8 +GLFUNC glEdgeFlagv,42,36,4 +GLFUNC glEnable,215,117,4 +GLFUNC glEnableClientState,313,151,4 +GLFUNC glEnd,43,37,0 +GLFUNC glEndList,1,-1,0 +GLFUNC glEvalCoord1d,228,120,8 +GLFUNC glEvalCoord1dv,229,121,4 +GLFUNC glEvalCoord1f,230,122,4 +GLFUNC glEvalCoord1fv,231,123,4 +GLFUNC glEvalCoord2d,232,124,16 +GLFUNC glEvalCoord2dv,233,125,4 +GLFUNC glEvalCoord2f,234,126,8 +GLFUNC glEvalCoord2fv,235,127,4 +GLFUNC glEvalMesh1,236,-1,12 +GLFUNC glEvalMesh2,238,-1,20 +GLFUNC glEvalPoint1,237,128,4 +GLFUNC glEvalPoint2,239,129,8 +GLFUNC glFeedbackBuffer,194,-1,12 +GLFUNC glFinish,216,-1,0 +GLFUNC glFlush,217,-1,0 +GLFUNC glFogf,153,-1,8 +GLFUNC glFogfv,154,-1,8 +GLFUNC glFogi,155,-1,8 +GLFUNC glFogiv,156,-1,8 +GLFUNC glFrontFace,157,-1,4 +GLFUNC glFrustum,289,-1,48 +GLFUNC glGenLists,5,-1,4 +GLFUNC glGenTextures,328,-1,8 +GLFUNC glGetBooleanv,258,-1,8 +GLFUNC glGetClipPlane,259,-1,8 +GLFUNC glGetDoublev,260,-1,8 +GLFUNC glGetError,261,-1,0 +GLFUNC glGetFloatv,262,-1,8 +GLFUNC glGetIntegerv,263,-1,8 +GLFUNC glGetLightfv,264,-1,12 +GLFUNC glGetLightiv,265,-1,12 +GLFUNC glGetMapdv,266,-1,12 +GLFUNC glGetMapfv,267,-1,12 +GLFUNC glGetMapiv,268,-1,12 +GLFUNC glGetMaterialfv,269,-1,12 +GLFUNC glGetMaterialiv,270,-1,12 +GLFUNC glGetPixelMapfv,271,-1,8 +GLFUNC glGetPixelMapuiv,272,-1,8 +GLFUNC glGetPixelMapusv,273,-1,8 +GLFUNC glGetPointerv,329,160,8 +GLFUNC glGetPolygonStipple,274,-1,4 +GLFUNC glGetString,275,-1,4 +GLFUNC glGetTexEnvfv,276,-1,12 +GLFUNC glGetTexEnviv,277,-1,12 +GLFUNC glGetTexGendv,278,-1,12 +GLFUNC glGetTexGenfv,279,-1,12 +GLFUNC glGetTexGeniv,280,-1,12 +GLFUNC glGetTexImage,281,-1,20 +GLFUNC glGetTexLevelParameterfv,284,-1,16 +GLFUNC glGetTexLevelParameteriv,285,-1,16 +GLFUNC glGetTexParameterfv,282,-1,12 +GLFUNC glGetTexParameteriv,283,-1,12 +GLFUNC glHint,158,-1,8 +GLFUNC glIndexMask,212,-1,4 +GLFUNC glIndexPointer,314,152,12 +GLFUNC glIndexd,44,38,8 +GLFUNC glIndexdv,45,39,4 +GLFUNC glIndexf,46,40,4 +GLFUNC glIndexfv,47,41,4 +GLFUNC glIndexi,48,42,4 +GLFUNC glIndexiv,49,43,4 +GLFUNC glIndexs,50,44,4 +GLFUNC glIndexsv,51,45,4 +GLFUNC glIndexub,315,153,4 +GLFUNC glIndexubv,316,154,4 +GLFUNC glInitNames,197,-1,0 +GLFUNC glInterleavedArrays,317,155,12 +GLFUNC glIsEnabled,286,-1,4 +GLFUNC glIsList,287,-1,4 +GLFUNC glIsTexture,330,-1,4 +GLFUNC glLightModelf,163,-1,8 +GLFUNC glLightModelfv,164,-1,8 +GLFUNC glLightModeli,165,-1,8 +GLFUNC glLightModeliv,166,-1,8 +GLFUNC glLightf,159,-1,12 +GLFUNC glLightfv,160,-1,12 +GLFUNC glLighti,161,-1,12 +GLFUNC glLightiv,162,-1,12 +GLFUNC glLineStipple,167,-1,8 +GLFUNC glLineWidth,168,-1,4 +GLFUNC glListBase,6,-1,4 +GLFUNC glLoadIdentity,290,130,0 +GLFUNC glLoadMatrixd,292,132,4 +GLFUNC glLoadMatrixf,291,131,4 +GLFUNC glLoadName,198,-1,4 +GLFUNC glLogicOp,242,-1,4 +GLFUNC glMap1d,220,-1,32 +GLFUNC glMap1f,221,-1,24 +GLFUNC glMap2d,222,-1,56 +GLFUNC glMap2f,223,-1,40 +GLFUNC glMapGrid1d,224,-1,20 +GLFUNC glMapGrid1f,225,-1,12 +GLFUNC glMapGrid2d,226,-1,40 +GLFUNC glMapGrid2f,227,-1,24 +GLFUNC glMaterialf,169,112,12 +GLFUNC glMaterialfv,170,113,12 +GLFUNC glMateriali,171,114,12 +GLFUNC glMaterialiv,172,115,12 +GLFUNC glMatrixMode,293,133,4 +GLFUNC glMultMatrixd,295,135,4 +GLFUNC glMultMatrixf,294,134,4 +GLFUNC glNewList,0,-1,8 +GLFUNC glNormal3b,52,46,12 +GLFUNC glNormal3bv,53,47,4 +GLFUNC glNormal3d,54,48,24 +GLFUNC glNormal3dv,55,49,4 +GLFUNC glNormal3f,56,50,12 +GLFUNC glNormal3fv,57,51,4 +GLFUNC glNormal3i,58,52,12 +GLFUNC glNormal3iv,59,53,4 +GLFUNC glNormal3s,60,54,12 +GLFUNC glNormal3sv,61,55,4 +GLFUNC glNormalPointer,318,156,12 +GLFUNC glOrtho,296,-1,48 +GLFUNC glPassThrough,199,-1,4 +GLFUNC glPixelMapfv,251,-1,12 +GLFUNC glPixelMapuiv,252,-1,12 +GLFUNC glPixelMapusv,253,-1,12 +GLFUNC glPixelStoref,249,-1,8 +GLFUNC glPixelStorei,250,-1,8 +GLFUNC glPixelTransferf,247,-1,8 +GLFUNC glPixelTransferi,248,-1,8 +GLFUNC glPixelZoom,246,-1,8 +GLFUNC glPointSize,173,-1,4 +GLFUNC glPolygonMode,174,-1,8 +GLFUNC glPolygonOffset,319,157,8 +GLFUNC glPolygonStipple,175,-1,4 +GLFUNC glPopAttrib,218,118,0 +GLFUNC glPopClientAttrib,334,161,0 +GLFUNC glPopMatrix,297,136,0 +GLFUNC glPopName,200,-1,0 +GLFUNC glPrioritizeTextures,331,-1,12 +GLFUNC glPushAttrib,219,119,4 +GLFUNC glPushClientAttrib,335,162,4 +GLFUNC glPushMatrix,298,137,0 +GLFUNC glPushName,201,-1,4 +GLFUNC glRasterPos2d,62,-1,16 +GLFUNC glRasterPos2dv,63,-1,4 +GLFUNC glRasterPos2f,64,-1,8 +GLFUNC glRasterPos2fv,65,-1,4 +GLFUNC glRasterPos2i,66,-1,8 +GLFUNC glRasterPos2iv,67,-1,4 +GLFUNC glRasterPos2s,68,-1,8 +GLFUNC glRasterPos2sv,69,-1,4 +GLFUNC glRasterPos3d,70,-1,24 +GLFUNC glRasterPos3dv,71,-1,4 +GLFUNC glRasterPos3f,72,-1,12 +GLFUNC glRasterPos3fv,73,-1,4 +GLFUNC glRasterPos3i,74,-1,12 +GLFUNC glRasterPos3iv,75,-1,4 +GLFUNC glRasterPos3s,76,-1,12 +GLFUNC glRasterPos3sv,77,-1,4 +GLFUNC glRasterPos4d,78,-1,32 +GLFUNC glRasterPos4dv,79,-1,4 +GLFUNC glRasterPos4f,80,-1,16 +GLFUNC glRasterPos4fv,81,-1,4 +GLFUNC glRasterPos4i,82,-1,16 +GLFUNC glRasterPos4iv,83,-1,4 +GLFUNC glRasterPos4s,84,-1,16 +GLFUNC glRasterPos4sv,85,-1,4 +GLFUNC glReadBuffer,254,-1,4 +GLFUNC glReadPixels,256,-1,28 +GLFUNC glRectd,86,-1,32 +GLFUNC glRectdv,87,-1,8 +GLFUNC glRectf,88,-1,16 +GLFUNC glRectfv,89,-1,8 +GLFUNC glRecti,90,-1,16 +GLFUNC glRectiv,91,-1,8 +GLFUNC glRects,92,-1,16 +GLFUNC glRectsv,93,-1,8 +GLFUNC glRenderMode,196,-1,4 +GLFUNC glRotated,299,138,32 +GLFUNC glRotatef,300,139,16 +GLFUNC glScaled,301,140,24 +GLFUNC glScalef,302,141,12 +GLFUNC glScissor,176,-1,16 +GLFUNC glSelectBuffer,195,-1,8 +GLFUNC glShadeModel,177,-1,4 +GLFUNC glStencilFunc,243,-1,12 +GLFUNC glStencilMask,209,-1,4 +GLFUNC glStencilOp,244,-1,12 +GLFUNC glTexCoord1d,94,56,8 +GLFUNC glTexCoord1dv,95,57,4 +GLFUNC glTexCoord1f,96,58,4 +GLFUNC glTexCoord1fv,97,59,4 +GLFUNC glTexCoord1i,98,60,4 +GLFUNC glTexCoord1iv,99,61,4 +GLFUNC glTexCoord1s,100,62,4 +GLFUNC glTexCoord1sv,101,63,4 +GLFUNC glTexCoord2d,102,64,16 +GLFUNC glTexCoord2dv,103,65,4 +GLFUNC glTexCoord2f,104,66,8 +GLFUNC glTexCoord2fv,105,67,4 +GLFUNC glTexCoord2i,106,68,8 +GLFUNC glTexCoord2iv,107,69,4 +GLFUNC glTexCoord2s,108,70,8 +GLFUNC glTexCoord2sv,109,71,4 +GLFUNC glTexCoord3d,110,72,24 +GLFUNC glTexCoord3dv,111,73,4 +GLFUNC glTexCoord3f,112,74,12 +GLFUNC glTexCoord3fv,113,75,4 +GLFUNC glTexCoord3i,114,76,12 +GLFUNC glTexCoord3iv,115,77,4 +GLFUNC glTexCoord3s,116,78,12 +GLFUNC glTexCoord3sv,117,79,4 +GLFUNC glTexCoord4d,118,80,32 +GLFUNC glTexCoord4dv,119,81,4 +GLFUNC glTexCoord4f,120,82,16 +GLFUNC glTexCoord4fv,121,83,4 +GLFUNC glTexCoord4i,122,84,16 +GLFUNC glTexCoord4iv,123,85,4 +GLFUNC glTexCoord4s,124,86,16 +GLFUNC glTexCoord4sv,125,87,4 +GLFUNC glTexCoordPointer,320,158,16 +GLFUNC glTexEnvf,184,-1,12 +GLFUNC glTexEnvfv,185,-1,12 +GLFUNC glTexEnvi,186,-1,12 +GLFUNC glTexEnviv,187,-1,12 +GLFUNC glTexGend,188,-1,16 +GLFUNC glTexGendv,189,-1,12 +GLFUNC glTexGenf,190,-1,12 +GLFUNC glTexGenfv,191,-1,12 +GLFUNC glTexGeni,192,-1,12 +GLFUNC glTexGeniv,193,-1,12 +GLFUNC glTexImage1D,182,-1,32 +GLFUNC glTexImage2D,183,-1,36 +GLFUNC glTexParameterf,178,-1,12 +GLFUNC glTexParameterfv,179,-1,12 +GLFUNC glTexParameteri,180,-1,12 +GLFUNC glTexParameteriv,181,-1,12 +GLFUNC glTexSubImage1D,332,-1,28 +GLFUNC glTexSubImage2D,333,-1,36 +GLFUNC glTranslated,303,142,24 +GLFUNC glTranslatef,304,143,12 +GLFUNC glVertex2d,126,88,16 +GLFUNC glVertex2dv,127,89,4 +GLFUNC glVertex2f,128,90,8 +GLFUNC glVertex2fv,129,91,4 +GLFUNC glVertex2i,130,92,8 +GLFUNC glVertex2iv,131,93,4 +GLFUNC glVertex2s,132,94,8 +GLFUNC glVertex2sv,133,95,4 +GLFUNC glVertex3d,134,96,24 +GLFUNC glVertex3dv,135,97,4 +GLFUNC glVertex3f,136,98,12 +GLFUNC glVertex3fv,137,99,4 +GLFUNC glVertex3i,138,100,12 +GLFUNC glVertex3iv,139,101,4 +GLFUNC glVertex3s,140,102,12 +GLFUNC glVertex3sv,141,103,4 +GLFUNC glVertex4d,142,104,32 +GLFUNC glVertex4dv,143,105,4 +GLFUNC glVertex4f,144,106,16 +GLFUNC glVertex4fv,145,107,4 +GLFUNC glVertex4i,146,108,16 +GLFUNC glVertex4iv,147,109,4 +GLFUNC glVertex4s,148,110,16 +GLFUNC glVertex4sv,149,111,4 +GLFUNC glVertexPointer,321,159,16 +GLFUNC glViewport,305,-1,16 diff --git a/reactos/lib/opengl32/opengl32.c b/reactos/lib/opengl32/opengl32.c index 3634de39e9c..24e2e4df0ac 100644 --- a/reactos/lib/opengl32/opengl32.c +++ b/reactos/lib/opengl32/opengl32.c @@ -1,4 +1,4 @@ -/* $Id: opengl32.c,v 1.11 2004/02/06 17:22:55 royce Exp $ +/* $Id: opengl32.c,v 1.12 2004/02/06 18:17:18 royce Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -12,8 +12,7 @@ #define WIN32_LEAN_AND_MEAN #include #include -#include -#include +#include "teb.h" #include #include "opengl32.h" @@ -40,7 +39,9 @@ DWORD OPENGL32_tls; GLPROCESSDATA OPENGL32_processdata; -static void OPENGL32_ThreadDetach() +static +void +OPENGL32_ThreadDetach() { /* FIXME - do we need to release some HDC or something? */ GLTHREADDATA* lpData = NULL; @@ -54,7 +55,9 @@ static void OPENGL32_ThreadDetach() } -BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD Reason, LPVOID Reserved) +BOOL +WINAPI +DllMain(HINSTANCE hInstance, DWORD Reason, LPVOID Reserved) { GLTHREADDATA* lpData = NULL; ICDTable *dispatchTable = NULL; @@ -154,7 +157,9 @@ BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD Reason, LPVOID Reserved) * ARGUMENTS: [IN] icd: GLDRIVERDATA to append to list * NOTES: Only call this when you hold the driver_mutex */ -static void OPENGL32_AppendICD( GLDRIVERDATA *icd ) +static +void +OPENGL32_AppendICD( GLDRIVERDATA *icd ) { if (OPENGL32_processdata.driver_list == NULL) OPENGL32_processdata.driver_list = icd; @@ -172,7 +177,9 @@ static void OPENGL32_AppendICD( GLDRIVERDATA *icd ) * ARGUMENTS: [IN] icd: GLDRIVERDATA to remove from list * NOTES: Only call this when you hold the driver_mutex */ -static void OPENGL32_RemoveICD( GLDRIVERDATA *icd ) +static +void +OPENGL32_RemoveICD( GLDRIVERDATA *icd ) { if (icd == OPENGL32_processdata.driver_list) OPENGL32_processdata.driver_list = icd->next; @@ -199,7 +206,9 @@ static void OPENGL32_RemoveICD( GLDRIVERDATA *icd ) * * TODO: call SetLastError() where appropriate */ -static GLDRIVERDATA *OPENGL32_LoadDriver( LPCWSTR driver ) +static +GLDRIVERDATA* +OPENGL32_LoadDriver( LPCWSTR driver ) { LONG ret; GLDRIVERDATA *icd; @@ -256,14 +265,16 @@ static GLDRIVERDATA *OPENGL32_LoadDriver( LPCWSTR driver ) * RETURNS: error code; ERROR_SUCCESS on success */ #define LOAD_DRV_PROC( icd, proc, required ) \ - ((FARPROC)(icd->proc)) = GetProcAddress( icd->handle, #proc ); \ + *(char**)&icd->proc = (char*)GetProcAddress( icd->handle, #proc ); \ if (required && icd->proc == NULL) { \ DBGPRINT( "Error: GetProcAddress(\"%s\") failed!", #proc ); \ FreeLibrary( icd->handle ); \ return GetLastError(); \ } -static DWORD OPENGL32_InitializeDriver( GLDRIVERDATA *icd ) +static +DWORD +OPENGL32_InitializeDriver( GLDRIVERDATA *icd ) { /* check version */ if (icd->version > 2) @@ -329,7 +340,9 @@ static DWORD OPENGL32_InitializeDriver( GLDRIVERDATA *icd ) /* FUNCTION: Unload loaded ICD. * RETURNS: TRUE on success, FALSE otherwise. */ -static BOOL OPENGL32_UnloadDriver( GLDRIVERDATA *icd ) +static +BOOL +OPENGL32_UnloadDriver( GLDRIVERDATA *icd ) { BOOL allOk = TRUE; @@ -387,7 +400,8 @@ GLDRIVERDATA *OPENGL32_LoadICDForHDC( HDC hdc ) /* FUNCTION: Load ICD (shared ICD data) * RETURNS: GLDRIVERDATA pointer on success, NULL otherwise. */ -GLDRIVERDATA *OPENGL32_LoadICD( LPCWSTR driver ) +GLDRIVERDATA* +OPENGL32_LoadICD ( LPCWSTR driver ) { GLDRIVERDATA *icd; @@ -430,7 +444,8 @@ GLDRIVERDATA *OPENGL32_LoadICD( LPCWSTR driver ) /* FUNCTION: Unload ICD (shared ICD data) * RETURNS: TRUE on success, FALSE otherwise. */ -BOOL OPENGL32_UnloadICD( GLDRIVERDATA *icd ) +BOOL +OPENGL32_UnloadICD( GLDRIVERDATA *icd ) { BOOL ret = TRUE; @@ -463,11 +478,12 @@ BOOL OPENGL32_UnloadICD( GLDRIVERDATA *icd ) * RETURNS: Error code (ERROR_NO_MORE_ITEMS at end of list); On failure all * OUT vars are left untouched. */ -DWORD OPENGL32_RegEnumDrivers( DWORD idx, LPWSTR name, LPDWORD cName ) +DWORD +OPENGL32_RegEnumDrivers( DWORD idx, LPWSTR name, LPDWORD cName ) { HKEY hKey; - LPCWSTR subKey = L"SOFTWARE\\Microsoft\\Windows NT\\" - "CurrentVersion\\OpenGLDrivers\\"; + LPCWSTR subKey = + L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\OpenGLDrivers\\"; LONG ret; DWORD size; WCHAR driver[256]; @@ -510,11 +526,13 @@ DWORD OPENGL32_RegEnumDrivers( DWORD idx, LPWSTR name, LPDWORD cName ) * driver_version and flags. * RETURNS: Error code; On failure all OUT vars are left untouched. */ -DWORD OPENGL32_RegGetDriverInfo( LPCWSTR driver, GLDRIVERDATA *icd ) +/*static*/ +DWORD +OPENGL32_RegGetDriverInfo( LPCWSTR driver, GLDRIVERDATA *icd ) { HKEY hKey; - WCHAR subKey[1024] = L"SOFTWARE\\Microsoft\\Windows NT\\" - "CurrentVersion\\OpenGLDrivers\\"; + WCHAR subKey[1024] = + L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\OpenGLDrivers\\"; LONG ret; DWORD type, size; diff --git a/reactos/lib/opengl32/opengl32.def b/reactos/lib/opengl32/opengl32.def index 7d9e66ca828..ae97e8d0ce6 100644 --- a/reactos/lib/opengl32/opengl32.def +++ b/reactos/lib/opengl32/opengl32.def @@ -1,13 +1,14 @@ -; $Id: opengl32.def,v 1.2 2004/02/05 04:28:11 royce Exp $ +; $Id: opengl32.def,v 1.3 2004/02/06 18:17:18 royce Exp $ ; -; opengl32.edf +; opengl32.def ; ; ReactOS Operating System ; LIBRARY opengl32.dll EXPORTS -;DllInitialize +DllMain +;DllInitialize glAccum glAlphaFunc glAreTexturesResident @@ -374,28 +375,28 @@ glVertex4sv glVertexPointer glViewport -wglChoosePixelFormat -wglCopyContext -wglCreateContext -wglCreateLayerContext -wglDeleteContext -wglDescribeLayerPlane -wglDescribePixelFormat -wglGetCurrentContext -wglGetCurrentDC +wglChoosePixelFormat=rosglChoosePixelFormat +wglCopyContext=rosglCopyContext +wglCreateContext=rosglCreateContext +wglCreateLayerContext=rosglCreateLayerContext +wglDeleteContext=rosglDeleteContext +wglDescribeLayerPlane=rosglDescribeLayerPlane +wglDescribePixelFormat=rosglDescribePixelFormat +wglGetCurrentContext=rosglGetCurrentContext +wglGetCurrentDC=rosglGetCurrentDC ;wglGetDefaultProcAddress -wglGetLayerPaletteEntries -wglGetPixelFormat -wglGetProcAddress -wglMakeCurrent -wglRealizeLayerPalette -wglSetLayerPaletteEntries -wglSetPixelFormat -wglShareLists -wglSwapBuffers -wglSwapLayerBuffers -;wglSwapMultipleBuffers -wglUseFontBitmapsA -wglUseFontBitmapsW -wglUseFontOutlinesA -wglUseFontOutlinesW +wglGetLayerPaletteEntries=rosglGetLayerPaletteEntries +wglGetPixelFormat=rosglGetPixelFormat +wglGetProcAddress=rosglGetProcAddress +wglMakeCurrent=rosglMakeCurrent +wglRealizeLayerPalette=rosglRealizeLayerPalette +wglSetLayerPaletteEntries=rosglSetLayerPaletteEntries +wglSetPixelFormat=rosglSetPixelFormat +wglShareLists=rosglShareLists +wglSwapBuffers=rosglSwapBuffers +wglSwapLayerBuffers=rosglSwapLayerBuffers +;wglSwapMultipleBuffers=rosglSwapMultipleBuffers +wglUseFontBitmapsA=rosglUseFontBitmapsA +wglUseFontBitmapsW=rosglUseFontBitmapsW +wglUseFontOutlinesA=rosglUseFontOutlinesA +wglUseFontOutlinesW=rosglUseFontOutlinesW diff --git a/reactos/lib/opengl32/opengl32.dsp b/reactos/lib/opengl32/opengl32.dsp new file mode 100644 index 00000000000..a559390e7bb --- /dev/null +++ b/reactos/lib/opengl32/opengl32.dsp @@ -0,0 +1,181 @@ +# Microsoft Developer Studio Project File - Name="opengl32" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=opengl32 - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "opengl32.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "opengl32.mak" CFG="opengl32 - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "opengl32 - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "opengl32 - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "opengl32 - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "OPENGL32_EXPORTS" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "OPENGL32_EXPORTS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 + +!ELSEIF "$(CFG)" == "opengl32 - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "OPENGL32_EXPORTS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "OPENGL32_EXPORTS" /YX /FD /TP /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 gdi32.lib advapi32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "opengl32 - Win32 Release" +# Name "opengl32 - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\gl.c +# End Source File +# Begin Source File + +SOURCE=.\opengl32.c +# End Source File +# Begin Source File + +SOURCE=.\tebimports.asm + +!IF "$(CFG)" == "opengl32 - Win32 Release" + +# Begin Custom Build - Compiling $(InputPath) +IntDir=.\Release +InputPath=.\tebimports.asm +InputName=tebimports + +"$(IntDir)/$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + nasmw.exe -f win32 $(InputPath) -o "$(IntDir)/$(InputName).obj" + +# End Custom Build + +!ELSEIF "$(CFG)" == "opengl32 - Win32 Debug" + +# Begin Custom Build - Compiling $(InputPath) +IntDir=.\Debug +InputPath=.\tebimports.asm +InputName=tebimports + +"$(IntDir)/$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + nasmw.exe -f win32 -d win32 $(InputPath) -o "$(IntDir)/$(InputName).obj" + +# End Custom Build + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=.\wgl.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\glfuncs.h +# End Source File +# Begin Source File + +SOURCE=.\icdlist.h +# End Source File +# Begin Source File + +SOURCE=.\icdtable.h +# End Source File +# Begin Source File + +SOURCE=.\opengl32.def +# End Source File +# Begin Source File + +SOURCE=.\opengl32.h +# End Source File +# Begin Source File + +SOURCE=.\slowlist.h +# End Source File +# Begin Source File + +SOURCE=.\teb.h +# End Source File +# Begin Source File + +SOURCE=.\teblist.h +# End Source File +# Begin Source File + +SOURCE=.\teblist.mac +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/reactos/lib/opengl32/opengl32.dsw b/reactos/lib/opengl32/opengl32.dsw new file mode 100644 index 00000000000..387ff47f98d --- /dev/null +++ b/reactos/lib/opengl32/opengl32.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "opengl32"=.\opengl32.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/reactos/lib/opengl32/opengl32.h b/reactos/lib/opengl32/opengl32.h index be407a88197..61479c424c9 100644 --- a/reactos/lib/opengl32/opengl32.h +++ b/reactos/lib/opengl32/opengl32.h @@ -1,4 +1,4 @@ -/* $Id: opengl32.h,v 1.10 2004/02/06 17:22:55 royce Exp $ +/* $Id: opengl32.h,v 1.11 2004/02/06 18:17:18 royce Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -12,6 +12,10 @@ #ifndef OPENGL32_PRIVATE_H #define OPENGL32_PRIVATE_H +#ifdef __cplusplus +extern "C" { +#endif//__cplusplus + /* gl function list */ #include "glfuncs.h" @@ -27,13 +31,17 @@ #endif /* !NDEBUG */ /* debug macros */ -#ifdef DEBUG_OPENGL32 /* FIXME: DPRINT wants DbgPrint - where is it? */ -ULONG DbgPrint(PCH Format,...); -# include -# define DBGPRINT( fmt, args... ) \ - DPRINT( "OpenGL32.DLL: %s: "fmt"\n", __FUNCTION__, ##args ) +#ifdef _MSC_VER +inline void DBGPRINT ( ... ) {} #else -# define DBGPRINT( ... ) do {} while (0) +# ifdef DEBUG_OPENGL32 +ULONG DbgPrint(PCH Format,...); +# include +# define DBGPRINT( fmt, args... ) \ + DPRINT( "OpenGL32.DLL: %s: "fmt"\n", __FUNCTION__, ##args ) +# else +# define DBGPRINT( ... ) do {} while (0) +# endif #endif #ifdef DEBUG_OPENGL32_BRKPTS @@ -46,8 +54,29 @@ ULONG DbgPrint(PCH Format,...); # endif #endif -#if 0 +/* function/data attributes */ +#define EXPORT __declspec(dllexport) +#ifdef _MSC_VER +# define NAKED __declspec(naked) +# define SHARED +# ifndef STDCALL +# define STDCALL __stdcall +# endif/*STDCALL*/ +#else /* GCC */ +# define NAKED __attribute__((naked)) +# define SHARED __attribute__((section("shared"), shared)) +#endif + +#ifdef APIENTRY +#undef APIENTRY +#endif//APIENTRY +#define APIENTRY EXPORT __stdcall + +/* gl function list */ +#include "glfuncs.h" + /* table indices for funcnames and function pointers */ +#if 0 enum glfunc_indices { GLIDX_INVALID = -1, @@ -59,7 +88,25 @@ enum glfunc_indices /* function name table */ extern const char* OPENGL32_funcnames[GLIDX_COUNT]; -#endif +#endif//0 + +/* GL data types - x86 typedefs */ +typedef unsigned int GLenum; +typedef unsigned char GLboolean; +typedef unsigned int GLbitfield; +typedef signed char GLbyte; +typedef short GLshort; +typedef int GLint; +typedef int GLsizei; +typedef unsigned char GLubyte; +typedef unsigned short GLushort; +typedef unsigned int GLuint; +typedef unsigned short GLhalf; +typedef float GLfloat; +typedef float GLclampf; +typedef double GLdouble; +typedef double GLclampd; +typedef void GLvoid; /* Called by the driver to set the dispatch table */ typedef DWORD (CALLBACK * SetContextCallBack)( const ICDTable * ); @@ -160,6 +207,14 @@ int STDCALL glEmptyFunc52( long, long, long, long, long, long, long, long, int STDCALL glEmptyFunc56( long, long, long, long, long, long, long, long, long, long, long, long, long, long ); +#define X(func,ret,typeargs,args,icdidx,tebidx,stack) EXPORT ret STDCALL func typeargs; +GLFUNCS_MACRO +#undef X + +#ifdef __cplusplus +}; // extern "C" +#endif//__cplusplus + #endif//OPENGL32_PRIVATE_H /* EOF */ diff --git a/reactos/lib/opengl32/slowlist.h b/reactos/lib/opengl32/slowlist.h new file mode 100644 index 00000000000..eb8607e3679 --- /dev/null +++ b/reactos/lib/opengl32/slowlist.h @@ -0,0 +1,192 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * FILE: lib/opengl32/glfuncs.h + * PURPOSE: OpenGL32 lib, GLFUNCS_MACRO + * PROGRAMMER: gen_glfuncs_macro.sh + * UPDATE HISTORY: + * !!! AUTOMATICALLY CREATED FROM glfuncs.csv !!! + */ + +/* To use this macro define a macro X(name, ret, typeargs, args, icdidx, tebidx, stack). + * It gets called for every glXXX function. i.e. glVertex3f: name = "glVertex3f", + * ret = "void", typeargs = "(GLfloat x, GLfloat y, GLfloat z)", args = "(x,y,z)", + * icdidx = "136", tebidx = "98" and stack = "12". + * Don't forget to undefine X ;-) + */ + +XVOID(glAccum,(GLenum op, GLfloat value), (op,value), 213, 8) +XVOID(glAlphaFunc, (GLenum func, GLclampf ref), (func,ref), 240, 8) +X(glAreTexturesResident, GLboolean, (GLsizei n, const GLuint *textures, GLboolean *residences), (n,textures,residences), 322, 12) +XVOID(glBitmap, (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap), (width,height,xorig,yorig,xmove,ymove,bitmap), 8, 28) +XVOID(glBlendFunc, (GLenum sfactor, GLenum dfactor), (sfactor,dfactor), 241, 8) +XVOID(glClear, (GLbitfield mask), (mask), 203, 4) +XVOID(glClearAccum, (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha), (red,green,blue,alpha), 204, 16) +XVOID(glClearColor, (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha), (red,green,blue,alpha), 206, 16) +XVOID(glClearDepth, (GLclampd depth), (depth), 208, 8) +XVOID(glClearIndex, (GLfloat c), (c), 205, 4) +XVOID(glClearStencil, (GLint s), (s), 207, 4) +XVOID(glClipPlane, (GLenum plane, const GLdouble *equation), (plane,equation), 150, 8) +XVOID(glColorMask, (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha), (red,green,blue,alpha), 210, 16) +XVOID(glColorMaterial, (GLenum face, GLenum mode), (face,mode), 151, 8) +XVOID(glCopyPixels, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type), (x,y,width,height,type), 255, 20) +XVOID(glCopyTexImage1D, (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border), (target,level,internalformat,x,y,width,border), 323, 28) +XVOID(glCopyTexImage2D, (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border), (target,level,internalformat,x,y,width,height,border), 324, 32) +XVOID(glCopyTexSubImage1D, (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width), (target,level,xoffset,x,y,width), 325, 24) +XVOID(glCopyTexSubImage2D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height), (target,level,xoffset,yoffset,x,y,width,height), 326, 32) +XVOID(glCullFace, (GLenum mode), (mode), 152, 4) +XVOID(glDeleteLists, (GLuint list, GLsizei range), (list,range), 4, 8) +XVOID(glDeleteTextures, (GLsizei n, const GLuint *textures), (n,textures), 327, 8) +XVOID(glDepthFunc, (GLenum func), (func), 245, 4) +XVOID(glDepthMask, (GLboolean flag), (flag), 211, 4) +XVOID(glDepthRange, (GLclampd zNear, GLclampd zFar), (zNear,zFar), 288, 16) +XVOID(glDrawBuffer, (GLenum mode), (mode), 202, 4) +XVOID(glDrawPixels, (GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels), (width,height,format,type,pixels), 257, 20) +XVOID(glEndList, (void), (), 1, 0) +XVOID(glEvalMesh1, (GLenum mode, GLint i1, GLint i2), (mode,i1,i2), 236, 12) +XVOID(glEvalMesh2, (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2), (mode,i1,i2,j1,j2), 238, 20) +XVOID(glFeedbackBuffer, (GLsizei size, GLenum type, GLfloat *buffer), (size,type,buffer), 194, 12) +XVOID(glFinish, (void), (), 216, 0) +XVOID(glFlush, (void), (), 217, 0) +XVOID(glFogf, (GLenum pname, GLfloat param), (pname,param), 153, 8) +XVOID(glFogfv, (GLenum pname, const GLfloat *params), (pname,params), 154, 8) +XVOID(glFogi, (GLenum pname, GLint param), (pname,param), 155, 8) +XVOID(glFogiv, (GLenum pname, const GLint *params), (pname,params), 156, 8) +XVOID(glFrontFace, (GLenum mode), (mode), 157, 4) +XVOID(glFrustum, (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar), (left,right,bottom,top,zNear,zFar), 289, 48) +X(glGenLists, GLuint, (GLsizei range), (range), 5, 4) +XVOID(glGenTextures, (GLsizei n, GLuint *textures), (n,textures), 328, 8) +XVOID(glGetBooleanv, (GLenum pname, GLboolean *params), (pname,params), 258, 8) +XVOID(glGetClipPlane, (GLenum plane, GLdouble *equation), (plane,equation), 259, 8) +XVOID(glGetDoublev, (GLenum pname, GLdouble *params), (pname,params), 260, 8) +X(glGetError, GLenum, (void), (), 261, 0) +XVOID(glGetFloatv, (GLenum pname, GLfloat *params), (pname,params), 262, 8) +XVOID(glGetIntegerv, (GLenum pname, GLint *params), (pname,params), 263, 8) +XVOID(glGetLightfv, (GLenum light, GLenum pname, GLfloat *params), (light,pname,params), 264, 12) +XVOID(glGetLightiv, (GLenum light, GLenum pname, GLint *params), (light,pname,params), 265, 12) +XVOID(glGetMapdv, (GLenum target, GLenum query, GLdouble *v), (target,query,v), 266, 12) +XVOID(glGetMapfv, (GLenum target, GLenum query, GLfloat *v), (target,query,v), 267, 12) +XVOID(glGetMapiv, (GLenum target, GLenum query, GLint *v), (target,query,v), 268, 12) +XVOID(glGetMaterialfv, (GLenum face, GLenum pname, GLfloat *params), (face,pname,params), 269, 12) +XVOID(glGetMaterialiv, (GLenum face, GLenum pname, GLint *params), (face,pname,params), 270, 12) +XVOID(glGetPixelMapfv, (GLenum map, GLfloat *values), (map,values), 271, 8) +XVOID(glGetPixelMapuiv, (GLenum map, GLuint *values), (map,values), 272, 8) +XVOID(glGetPixelMapusv, (GLenum map, GLushort *values), (map,values), 273, 8) +XVOID(glGetPolygonStipple, (GLubyte *mask), (mask), 274, 4) +X(glGetString, const GLubyte* , (GLenum name), (name), 275, 4) +XVOID(glGetTexEnvfv, (GLenum target, GLenum pname, GLfloat *params), (target,pname,params), 276, 12) +XVOID(glGetTexEnviv, (GLenum target, GLenum pname, GLint *params), (target,pname,params), 277, 12) +XVOID(glGetTexGendv, (GLenum coord, GLenum pname, GLdouble *params), (coord,pname,params), 278, 12) +XVOID(glGetTexGenfv, (GLenum coord, GLenum pname, GLfloat *params), (coord,pname,params), 279, 12) +XVOID(glGetTexGeniv, (GLenum coord, GLenum pname, GLint *params), (coord,pname,params), 280, 12) +XVOID(glGetTexImage, (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels), (target,level,format,type,pixels), 281, 20) +XVOID(glGetTexLevelParameterfv, (GLenum target, GLint level, GLenum pname, GLfloat *params), (target,level,pname,params), 284, 16) +XVOID(glGetTexLevelParameteriv, (GLenum target, GLint level, GLenum pname, GLint *params), (target,level,pname,params), 285, 16) +XVOID(glGetTexParameterfv, (GLenum target, GLenum pname, GLfloat *params), (target,pname,params), 282, 12) +XVOID(glGetTexParameteriv, (GLenum target, GLenum pname, GLint *params), (target,pname,params), 283, 12) +XVOID(glHint, (GLenum target, GLenum mode), (target,mode), 158, 8) +XVOID(glIndexMask, (GLuint mask), (mask), 212, 4) +XVOID(glInitNames, (void), (), 197, 0) +X(glIsEnabled, GLboolean, (GLenum cap), (cap), 286, 4) +X(glIsList, GLboolean, (GLuint list), (list), 287, 4) +X(glIsTexture, GLboolean, (GLuint texture), (texture), 330, 4) +XVOID(glLightModelf, (GLenum pname, GLfloat param), (pname,param), 163, 8) +XVOID(glLightModelfv, (GLenum pname, const GLfloat *params), (pname,params), 164, 8) +XVOID(glLightModeli, (GLenum pname, GLint param), (pname,param), 165, 8) +XVOID(glLightModeliv, (GLenum pname, const GLint *params), (pname,params), 166, 8) +XVOID(glLightf, (GLenum light, GLenum pname, GLfloat param), (light,pname,param), 159, 12) +XVOID(glLightfv, (GLenum light, GLenum pname, const GLfloat *params), (light,pname,params), 160, 12) +XVOID(glLighti, (GLenum light, GLenum pname, GLint param), (light,pname,param), 161, 12) +XVOID(glLightiv, (GLenum light, GLenum pname, const GLint *params), (light,pname,params), 162, 12) +XVOID(glLineStipple, (GLint factor, GLushort pattern), (factor,pattern), 167, 8) +XVOID(glLineWidth, (GLfloat width), (width), 168, 4) +XVOID(glListBase, (GLuint base), (base), 6, 4) +XVOID(glLoadName, (GLuint name), (name), 198, 4) +XVOID(glLogicOp, (GLenum opcode), (opcode), 242, 4) +XVOID(glMap1d, (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points), (target,u1,u2,stride,order,points), 220, 32) +XVOID(glMap1f, (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points), (target,u1,u2,stride,order,points), 221, 24) +XVOID(glMap2d, (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points), (target,u1,u2,ustride,uorder,v1,v2,vstride,vorder,points), 222, 56) +XVOID(glMap2f, (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points), (target,u1,u2,ustride,uorder,v1,v2,vstride,vorder,points), 223, 40) +XVOID(glMapGrid1d, (GLint un, GLdouble u1, GLdouble u2), (un,u1,u2), 224, 20) +XVOID(glMapGrid1f, (GLint un, GLfloat u1, GLfloat u2), (un,u1,u2), 225, 12) +XVOID(glMapGrid2d, (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2), (un,u1,u2,vn,v1,v2), 226, 40) +XVOID(glMapGrid2f, (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2), (un,u1,u2,vn,v1,v2), 227, 24) +XVOID(glNewList, (GLuint list, GLenum mode), (list,mode), 0, 8) +XVOID(glOrtho, (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar), (left,right,bottom,top,zNear,zFar), 296, 48) +XVOID(glPassThrough, (GLfloat token), (token), 199, 4) +XVOID(glPixelMapfv, (GLenum map, GLint mapsize, const GLfloat *values), (map,mapsize,values), 251, 12) +XVOID(glPixelMapuiv, (GLenum map, GLint mapsize, const GLuint *values), (map,mapsize,values), 252, 12) +XVOID(glPixelMapusv, (GLenum map, GLint mapsize, const GLushort *values), (map,mapsize,values), 253, 12) +XVOID(glPixelStoref, (GLenum pname, GLfloat param), (pname,param), 249, 8) +XVOID(glPixelStorei, (GLenum pname, GLint param), (pname,param), 250, 8) +XVOID(glPixelTransferf, (GLenum pname, GLfloat param), (pname,param), 247, 8) +XVOID(glPixelTransferi, (GLenum pname, GLint param), (pname,param), 248, 8) +XVOID(glPixelZoom, (GLfloat xfactor, GLfloat yfactor), (xfactor,yfactor), 246, 8) +XVOID(glPointSize, (GLfloat size), (size), 173, 4) +XVOID(glPolygonMode, (GLenum face, GLenum mode), (face,mode), 174, 8) +XVOID(glPolygonStipple, (const GLubyte *mask), (mask), 175, 4) +XVOID(glPopName, (void), (), 200, 0) +XVOID(glPrioritizeTextures, (GLsizei n, const GLuint *textures, const GLclampf *priorities), (n,textures,priorities), 331, 12) +XVOID(glPushName, (GLuint name), (name), 201, 4) +XVOID(glRasterPos2d, (GLdouble x, GLdouble y), (x,y), 62, 16) +XVOID(glRasterPos2dv, (const GLdouble *v), (v), 63, 4) +XVOID(glRasterPos2f, (GLfloat x, GLfloat y), (x,y), 64, 8) +XVOID(glRasterPos2fv, (const GLfloat *v), (v), 65, 4) +XVOID(glRasterPos2i, (GLint x, GLint y), (x,y), 66, 8) +XVOID(glRasterPos2iv, (const GLint *v), (v), 67, 4) +XVOID(glRasterPos2s, (GLshort x, GLshort y), (x,y), 68, 8) +XVOID(glRasterPos2sv, (const GLshort *v), (v), 69, 4) +XVOID(glRasterPos3d, (GLdouble x, GLdouble y, GLdouble z), (x,y,z), 70, 24) +XVOID(glRasterPos3dv, (const GLdouble *v), (v), 71, 4) +XVOID(glRasterPos3f, (GLfloat x, GLfloat y, GLfloat z), (x,y,z), 72, 12) +XVOID(glRasterPos3fv, (const GLfloat *v), (v), 73, 4) +XVOID(glRasterPos3i, (GLint x, GLint y, GLint z), (x,y,z), 74, 12) +XVOID(glRasterPos3iv, (const GLint *v), (v), 75, 4) +XVOID(glRasterPos3s, (GLshort x, GLshort y, GLshort z), (x,y,z), 76, 12) +XVOID(glRasterPos3sv, (const GLshort *v), (v), 77, 4) +XVOID(glRasterPos4d, (GLdouble x, GLdouble y, GLdouble z, GLdouble w), (x,y,z,w), 78, 32) +XVOID(glRasterPos4dv, (const GLdouble *v), (v), 79, 4) +XVOID(glRasterPos4f, (GLfloat x, GLfloat y, GLfloat z, GLfloat w), (x,y,z,w), 80, 16) +XVOID(glRasterPos4fv, (const GLfloat *v), (v), 81, 4) +XVOID(glRasterPos4i, (GLint x, GLint y, GLint z, GLint w), (x,y,z,w), 82, 16) +XVOID(glRasterPos4iv, (const GLint *v), (v), 83, 4) +XVOID(glRasterPos4s, (GLshort x, GLshort y, GLshort z, GLshort w), (x,y,z,w), 84, 16) +XVOID(glRasterPos4sv, (const GLshort *v), (v), 85, 4) +XVOID(glReadBuffer, (GLenum mode), (mode), 254, 4) +XVOID(glReadPixels, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels), (x,y,width,height,format,type,pixels), 256, 28) +XVOID(glRectd, (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2), (x1,y1,x2,y2), 86, 32) +XVOID(glRectdv, (const GLdouble *v1, const GLdouble *v2), (v1,v2), 87, 8) +XVOID(glRectf, (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2), (x1,y1,x2,y2), 88, 16) +XVOID(glRectfv, (const GLfloat *v1, const GLfloat *v2), (v1,v2), 89, 8) +XVOID(glRecti, (GLint x1, GLint y1, GLint x2, GLint y2), (x1,y1,x2,y2), 90, 16) +XVOID(glRectiv, (const GLint *v1, const GLint *v2), (v1,v2), 91, 8) +XVOID(glRects, (GLshort x1, GLshort y1, GLshort x2, GLshort y2), (x1,y1,x2,y2), 92, 16) +XVOID(glRectsv, (const GLshort *v1, const GLshort *v2), (v1,v2), 93, 8) +X(glRenderMode, GLint, (GLenum mode), (mode), 196, 4) +XVOID(glScissor, (GLint x, GLint y, GLsizei width, GLsizei height), (x,y,width,height), 176, 16) +XVOID(glSelectBuffer, (GLsizei size, GLuint *buffer), (size,buffer), 195, 8) +XVOID(glShadeModel, (GLenum mode), (mode), 177, 4) +XVOID(glStencilFunc, (GLenum func, GLint ref, GLuint mask), (func,ref,mask), 243, 12) +XVOID(glStencilMask, (GLuint mask), (mask), 209, 4) +XVOID(glStencilOp, (GLenum fail, GLenum zfail, GLenum zpass), (fail,zfail,zpass), 244, 12) +XVOID(glTexEnvf, (GLenum target, GLenum pname, GLfloat param), (target,pname,param), 184, 12) +XVOID(glTexEnvfv, (GLenum target, GLenum pname, const GLfloat *params), (target,pname,params), 185, 12) +XVOID(glTexEnvi, (GLenum target, GLenum pname, GLint param), (target,pname,param), 186, 12) +XVOID(glTexEnviv, (GLenum target, GLenum pname, const GLint *params), (target,pname,params), 187, 12) +XVOID(glTexGend, (GLenum coord, GLenum pname, GLdouble param), (coord,pname,param), 188, 16) +XVOID(glTexGendv, (GLenum coord, GLenum pname, const GLdouble *params), (coord,pname,params), 189, 12) +XVOID(glTexGenf, (GLenum coord, GLenum pname, GLfloat param), (coord,pname,param), 190, 12) +XVOID(glTexGenfv, (GLenum coord, GLenum pname, const GLfloat *params), (coord,pname,params), 191, 12) +XVOID(glTexGeni, (GLenum coord, GLenum pname, GLint param), (coord,pname,param), 192, 12) +XVOID(glTexGeniv, (GLenum coord, GLenum pname, const GLint *params), (coord,pname,params), 193, 12) +XVOID(glTexImage1D, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels), (target,level,internalformat,width,border,format,type,pixels), 182, 32) +XVOID(glTexImage2D, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels), (target,level,internalformat,width,height,border,format,type,pixels), 183, 36) +XVOID(glTexParameterf, (GLenum target, GLenum pname, GLfloat param), (target,pname,param), 178, 12) +XVOID(glTexParameterfv, (GLenum target, GLenum pname, const GLfloat *params), (target,pname,params), 179, 12) +XVOID(glTexParameteri, (GLenum target, GLenum pname, GLint param), (target,pname,param), 180, 12) +XVOID(glTexParameteriv, (GLenum target, GLenum pname, const GLint *params), (target,pname,params), 181, 12) +XVOID(glTexSubImage1D, (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels), (target,level,xoffset,width,format,type,pixels), 332, 28) +XVOID(glTexSubImage2D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels), (target,level,xoffset,yoffset,width,height,format,type,pixels), 333, 36) +XVOID(glViewport, (GLint x, GLint y, GLsizei width, GLsizei height), (x,y,width,height), 305, 16) + +/* EOF */ diff --git a/reactos/lib/opengl32/teb.h b/reactos/lib/opengl32/teb.h new file mode 100644 index 00000000000..76adb297a4a --- /dev/null +++ b/reactos/lib/opengl32/teb.h @@ -0,0 +1,33 @@ +// teb.h + +#ifdef _MSC_VER + +typedef struct _TEB +{ + char blah[0x7C4]; + PVOID glDispatchTable[0xA3]; /* 7C4h */ + PVOID glReserved1[0xA3]; /* A50h */ + PVOID glReserved2; /* BDCh */ + PVOID glSectionInfo; /* BE0h */ + PVOID glSection; /* BE4h */ + PVOID glTable; /* BE8h */ + PVOID glCurrentRC; /* BECh */ + PVOID glContext; /* BF0h */ +} TEB, *PTEB; + +#pragma warning ( disable : 4035 ) +static inline PTEB __declspec(naked) NtCurrentTeb(void) +{ + //struct _TEB * pTeb; + __asm mov eax, fs:0x18 + //__asm mov pTeb, eax + //return pTeb; +}; +#pragma warning ( default : 4035 ) + +#else/*_MSC_VER*/ + +#include +#include + +#endif/*_MSC_VER*/ diff --git a/reactos/lib/opengl32/tebimports.asm b/reactos/lib/opengl32/tebimports.asm new file mode 100644 index 00000000000..8b723c67b8a --- /dev/null +++ b/reactos/lib/opengl32/tebimports.asm @@ -0,0 +1,12 @@ +section .text + +%macro TEB_ENTRY 4 +;TEBOFF_%1 equ ($%3+7C4h) +;export %1 +global _%1@%4 +_%1@%4: + mov eax, [fs:18h] ; obtain a pointer to the TEB + jmp [eax+%3+7C4h] +%endmacro +%include "teblist.mac" +%undef TEB_ENTRY diff --git a/reactos/lib/opengl32/teblist.mac b/reactos/lib/opengl32/teblist.mac new file mode 100644 index 00000000000..ba1d2b16530 --- /dev/null +++ b/reactos/lib/opengl32/teblist.mac @@ -0,0 +1,164 @@ +;TEB_ENTRY name,icdidx,tebidx,stack +TEB_ENTRY glCallList,2,0,4 +TEB_ENTRY glCallLists,3,1,12 +TEB_ENTRY glBegin,7,2,4 +TEB_ENTRY glColor3b,9,3,12 +TEB_ENTRY glColor3bv,10,4,4 +TEB_ENTRY glColor3d,11,5,24 +TEB_ENTRY glColor3dv,12,6,4 +TEB_ENTRY glColor3f,13,7,12 +TEB_ENTRY glColor3fv,14,8,4 +TEB_ENTRY glColor3i,15,9,12 +TEB_ENTRY glColor3iv,16,10,4 +TEB_ENTRY glColor3s,17,11,12 +TEB_ENTRY glColor3sv,18,12,4 +TEB_ENTRY glColor3ub,19,13,12 +TEB_ENTRY glColor3ubv,20,14,4 +TEB_ENTRY glColor3ui,21,15,12 +TEB_ENTRY glColor3uiv,22,16,4 +TEB_ENTRY glColor3us,23,17,12 +TEB_ENTRY glColor3usv,24,18,4 +TEB_ENTRY glColor4b,25,19,16 +TEB_ENTRY glColor4bv,26,20,4 +TEB_ENTRY glColor4d,27,21,32 +TEB_ENTRY glColor4dv,28,22,4 +TEB_ENTRY glColor4f,29,23,16 +TEB_ENTRY glColor4fv,30,24,4 +TEB_ENTRY glColor4i,31,25,16 +TEB_ENTRY glColor4iv,32,26,4 +TEB_ENTRY glColor4s,33,27,16 +TEB_ENTRY glColor4sv,34,28,4 +TEB_ENTRY glColor4ub,35,29,16 +TEB_ENTRY glColor4ubv,36,30,4 +TEB_ENTRY glColor4ui,37,31,16 +TEB_ENTRY glColor4uiv,38,32,4 +TEB_ENTRY glColor4us,39,33,16 +TEB_ENTRY glColor4usv,40,34,4 +TEB_ENTRY glEdgeFlag,41,35,4 +TEB_ENTRY glEdgeFlagv,42,36,4 +TEB_ENTRY glEnd,43,37,0 +TEB_ENTRY glIndexd,44,38,8 +TEB_ENTRY glIndexdv,45,39,4 +TEB_ENTRY glIndexf,46,40,4 +TEB_ENTRY glIndexfv,47,41,4 +TEB_ENTRY glIndexi,48,42,4 +TEB_ENTRY glIndexiv,49,43,4 +TEB_ENTRY glIndexs,50,44,4 +TEB_ENTRY glIndexsv,51,45,4 +TEB_ENTRY glNormal3b,52,46,12 +TEB_ENTRY glNormal3bv,53,47,4 +TEB_ENTRY glNormal3d,54,48,24 +TEB_ENTRY glNormal3dv,55,49,4 +TEB_ENTRY glNormal3f,56,50,12 +TEB_ENTRY glNormal3fv,57,51,4 +TEB_ENTRY glNormal3i,58,52,12 +TEB_ENTRY glNormal3iv,59,53,4 +TEB_ENTRY glNormal3s,60,54,12 +TEB_ENTRY glNormal3sv,61,55,4 +TEB_ENTRY glTexCoord1d,94,56,8 +TEB_ENTRY glTexCoord1dv,95,57,4 +TEB_ENTRY glTexCoord1f,96,58,4 +TEB_ENTRY glTexCoord1fv,97,59,4 +TEB_ENTRY glTexCoord1i,98,60,4 +TEB_ENTRY glTexCoord1iv,99,61,4 +TEB_ENTRY glTexCoord1s,100,62,4 +TEB_ENTRY glTexCoord1sv,101,63,4 +TEB_ENTRY glTexCoord2d,102,64,16 +TEB_ENTRY glTexCoord2dv,103,65,4 +TEB_ENTRY glTexCoord2f,104,66,8 +TEB_ENTRY glTexCoord2fv,105,67,4 +TEB_ENTRY glTexCoord2i,106,68,8 +TEB_ENTRY glTexCoord2iv,107,69,4 +TEB_ENTRY glTexCoord2s,108,70,8 +TEB_ENTRY glTexCoord2sv,109,71,4 +TEB_ENTRY glTexCoord3d,110,72,24 +TEB_ENTRY glTexCoord3dv,111,73,4 +TEB_ENTRY glTexCoord3f,112,74,12 +TEB_ENTRY glTexCoord3fv,113,75,4 +TEB_ENTRY glTexCoord3i,114,76,12 +TEB_ENTRY glTexCoord3iv,115,77,4 +TEB_ENTRY glTexCoord3s,116,78,12 +TEB_ENTRY glTexCoord3sv,117,79,4 +TEB_ENTRY glTexCoord4d,118,80,32 +TEB_ENTRY glTexCoord4dv,119,81,4 +TEB_ENTRY glTexCoord4f,120,82,16 +TEB_ENTRY glTexCoord4fv,121,83,4 +TEB_ENTRY glTexCoord4i,122,84,16 +TEB_ENTRY glTexCoord4iv,123,85,4 +TEB_ENTRY glTexCoord4s,124,86,16 +TEB_ENTRY glTexCoord4sv,125,87,4 +TEB_ENTRY glVertex2d,126,88,16 +TEB_ENTRY glVertex2dv,127,89,4 +TEB_ENTRY glVertex2f,128,90,8 +TEB_ENTRY glVertex2fv,129,91,4 +TEB_ENTRY glVertex2i,130,92,8 +TEB_ENTRY glVertex2iv,131,93,4 +TEB_ENTRY glVertex2s,132,94,8 +TEB_ENTRY glVertex2sv,133,95,4 +TEB_ENTRY glVertex3d,134,96,24 +TEB_ENTRY glVertex3dv,135,97,4 +TEB_ENTRY glVertex3f,136,98,12 +TEB_ENTRY glVertex3fv,137,99,4 +TEB_ENTRY glVertex3i,138,100,12 +TEB_ENTRY glVertex3iv,139,101,4 +TEB_ENTRY glVertex3s,140,102,12 +TEB_ENTRY glVertex3sv,141,103,4 +TEB_ENTRY glVertex4d,142,104,32 +TEB_ENTRY glVertex4dv,143,105,4 +TEB_ENTRY glVertex4f,144,106,16 +TEB_ENTRY glVertex4fv,145,107,4 +TEB_ENTRY glVertex4i,146,108,16 +TEB_ENTRY glVertex4iv,147,109,4 +TEB_ENTRY glVertex4s,148,110,16 +TEB_ENTRY glVertex4sv,149,111,4 +TEB_ENTRY glMaterialf,169,112,12 +TEB_ENTRY glMaterialfv,170,113,12 +TEB_ENTRY glMateriali,171,114,12 +TEB_ENTRY glMaterialiv,172,115,12 +TEB_ENTRY glDisable,214,116,4 +TEB_ENTRY glEnable,215,117,4 +TEB_ENTRY glPopAttrib,218,118,0 +TEB_ENTRY glPushAttrib,219,119,4 +TEB_ENTRY glEvalCoord1d,228,120,8 +TEB_ENTRY glEvalCoord1dv,229,121,4 +TEB_ENTRY glEvalCoord1f,230,122,4 +TEB_ENTRY glEvalCoord1fv,231,123,4 +TEB_ENTRY glEvalCoord2d,232,124,16 +TEB_ENTRY glEvalCoord2dv,233,125,4 +TEB_ENTRY glEvalCoord2f,234,126,8 +TEB_ENTRY glEvalCoord2fv,235,127,4 +TEB_ENTRY glEvalPoint1,237,128,4 +TEB_ENTRY glEvalPoint2,239,129,8 +TEB_ENTRY glLoadIdentity,290,130,0 +TEB_ENTRY glLoadMatrixf,291,131,4 +TEB_ENTRY glLoadMatrixd,292,132,4 +TEB_ENTRY glMatrixMode,293,133,4 +TEB_ENTRY glMultMatrixf,294,134,4 +TEB_ENTRY glMultMatrixd,295,135,4 +TEB_ENTRY glPopMatrix,297,136,0 +TEB_ENTRY glPushMatrix,298,137,0 +TEB_ENTRY glRotated,299,138,32 +TEB_ENTRY glRotatef,300,139,16 +TEB_ENTRY glScaled,301,140,24 +TEB_ENTRY glScalef,302,141,12 +TEB_ENTRY glTranslated,303,142,24 +TEB_ENTRY glTranslatef,304,143,12 +TEB_ENTRY glArrayElement,306,144,4 +TEB_ENTRY glBindTexture,307,145,8 +TEB_ENTRY glColorPointer,308,146,16 +TEB_ENTRY glDisableClientState,309,147,4 +TEB_ENTRY glDrawArrays,310,148,12 +TEB_ENTRY glDrawElements,311,149,16 +TEB_ENTRY glEdgeFlagPointer,312,150,8 +TEB_ENTRY glEnableClientState,313,151,4 +TEB_ENTRY glIndexPointer,314,152,12 +TEB_ENTRY glIndexub,315,153,4 +TEB_ENTRY glIndexubv,316,154,4 +TEB_ENTRY glInterleavedArrays,317,155,12 +TEB_ENTRY glNormalPointer,318,156,12 +TEB_ENTRY glPolygonOffset,319,157,8 +TEB_ENTRY glTexCoordPointer,320,158,16 +TEB_ENTRY glVertexPointer,321,159,16 +TEB_ENTRY glGetPointerv,329,160,8 +TEB_ENTRY glPopClientAttrib,334,161,0 +TEB_ENTRY glPushClientAttrib,335,162,4 diff --git a/reactos/lib/opengl32/wgl.c b/reactos/lib/opengl32/wgl.c index bd7911e5b17..651b8be7e23 100644 --- a/reactos/lib/opengl32/wgl.c +++ b/reactos/lib/opengl32/wgl.c @@ -10,17 +10,23 @@ #define WIN32_LEAN_AND_MEAN #include -#include -#include -#include - +#include "teb.h" #include "opengl32.h" +#ifdef __cplusplus +extern "C" { +#endif//__cplusplus + +#ifdef _MSC_VER +#define UNIMPLEMENTED +#endif//_MSC_VER /* FUNCTION: Append OpenGL Rendering Context (GLRC) to list * ARGUMENTS: [IN] glrc: GLRC to append to list */ -static void WGL_AppendContext( GLRC *glrc ) +static +void +WGL_AppendContext( GLRC *glrc ) { /* synchronize */ if (WaitForSingleObject( OPENGL32_processdata.glrc_mutex, INFINITE ) == @@ -49,7 +55,9 @@ static void WGL_AppendContext( GLRC *glrc ) /* FUNCTION: Remove OpenGL Rendering Context (GLRC) from list * ARGUMENTS: [IN] glrc: GLRC to remove from list */ -static void WGL_RemoveContext( GLRC *glrc ) +static +void +WGL_RemoveContext( GLRC *glrc ) { /* synchronize */ if (WaitForSingleObject( OPENGL32_processdata.glrc_mutex, INFINITE ) == @@ -84,7 +92,9 @@ static void WGL_RemoveContext( GLRC *glrc ) /* FUNCTION: Check wether a GLRC is in the list * ARGUMENTS: [IN] glrc: GLRC to remove from list */ -static BOOL WGL_ContainsContext( GLRC *glrc ) +static +BOOL +WGL_ContainsContext( GLRC *glrc ) { GLRC *p; @@ -119,7 +129,9 @@ static BOOL WGL_ContainsContext( GLRC *glrc ) * functions) * RETURNS: unkown */ -DWORD CALLBACK WGL_SetContextCallBack( const ICDTable *table ) +DWORD +CALLBACK +WGL_SetContextCallBack( const ICDTable *table ) { /* UINT i;*/ TEB *teb; @@ -171,7 +183,9 @@ DWORD CALLBACK WGL_SetContextCallBack( const ICDTable *table ) } -int APIENTRY rosglChoosePixelFormat( HDC hdc, CONST PIXELFORMATDESCRIPTOR *pfd ) +int +APIENTRY +rosglChoosePixelFormat( HDC hdc, CONST PIXELFORMATDESCRIPTOR *pfd ) { UNIMPLEMENTED; return 0; @@ -184,7 +198,9 @@ int APIENTRY rosglChoosePixelFormat( HDC hdc, CONST PIXELFORMATDESCRIPTOR *pfd ) * [IN] mask Bitfield like given to glPushAttrib() * RETURN: TRUE on success, FALSE on failure */ -BOOL APIENTRY rosglCopyContext( HGLRC hsrc, HGLRC hdst, UINT mask ) +BOOL +APIENTRY +rosglCopyContext( HGLRC hsrc, HGLRC hdst, UINT mask ) { GLRC *src = (GLRC *)hsrc; GLRC *dst = (GLRC *)hdst; @@ -213,24 +229,15 @@ BOOL APIENTRY rosglCopyContext( HGLRC hsrc, HGLRC hdst, UINT mask ) } -/* FUNCTION: Create a new GL Rendering Context for the given DC. - * ARGUMENTS: [IN] hdc Handle for DC for which to create context - * RETURNS: NULL on failure, new GLRC on success - */ -HGLRC APIENTRY rosglCreateLayerContext( HDC hdc, int layer ); -HGLRC APIENTRY rosglCreateContext( HDC hdc ) -{ - return rosglCreateLayerContext( hdc, 0 ); -} - - /* FUNCTION: Create a new GL Rendering Context for the given plane on * the given DC. * ARGUMENTS: [IN] hdc Handle for DC for which to create context * [IN] layer Layer number to bind (draw?) to * RETURNS: NULL on failure, new GLRC on success */ -HGLRC APIENTRY rosglCreateLayerContext( HDC hdc, int layer ) +HGLRC +APIENTRY +rosglCreateLayerContext( HDC hdc, int layer ) { /* LONG ret; WCHAR driver[256]; @@ -336,11 +343,25 @@ HGLRC APIENTRY rosglCreateLayerContext( HDC hdc, int layer ) } +/* FUNCTION: Create a new GL Rendering Context for the given DC. + * ARGUMENTS: [IN] hdc Handle for DC for which to create context + * RETURNS: NULL on failure, new GLRC on success + */ +HGLRC +APIENTRY +rosglCreateContext( HDC hdc ) +{ + return rosglCreateLayerContext( hdc, 0 ); +} + + /* FUNCTION: Delete an OpenGL context * ARGUMENTS: [IN] hglrc Handle to GLRC to delete; must not be a threads RC! * RETURNS: TRUE on success, FALSE otherwise */ -BOOL APIENTRY rosglDeleteContext( HGLRC hglrc ) +BOOL +APIENTRY +rosglDeleteContext( HGLRC hglrc ) { GLRC *glrc = (GLRC *)hglrc; @@ -377,7 +398,9 @@ BOOL APIENTRY rosglDeleteContext( HGLRC hglrc ) } -BOOL APIENTRY rosglDescribeLayerPlane( HDC hdc, int iPixelFormat, int iLayerPlane, +BOOL +APIENTRY +rosglDescribeLayerPlane( HDC hdc, int iPixelFormat, int iLayerPlane, UINT nBytes, LPLAYERPLANEDESCRIPTOR plpd ) { UNIMPLEMENTED; @@ -385,7 +408,9 @@ BOOL APIENTRY rosglDescribeLayerPlane( HDC hdc, int iPixelFormat, int iLayerPlan } -int APIENTRY rosglDescribePixelFormat( HDC hdc, int iFormat, UINT nBytes, +int +APIENTRY +rosglDescribePixelFormat( HDC hdc, int iFormat, UINT nBytes, LPPIXELFORMATDESCRIPTOR pfd ) { int ret = 0; @@ -406,7 +431,9 @@ int APIENTRY rosglDescribePixelFormat( HDC hdc, int iFormat, UINT nBytes, /* FUNCTION: Return the current GLRC * RETURNS: Current GLRC (NULL if none was set current) */ -HGLRC APIENTRY rosglGetCurrentContext() +HGLRC +APIENTRY +rosglGetCurrentContext() { return (HGLRC)(OPENGL32_threaddata->glrc); } @@ -415,7 +442,9 @@ HGLRC APIENTRY rosglGetCurrentContext() /* FUNCTION: Return the current DC * RETURNS: NULL on failure, current DC otherwise */ -HDC APIENTRY rosglGetCurrentDC() +HDC +APIENTRY +rosglGetCurrentDC() { /* FIXME: is it correct to return NULL when there is no current GLRC or is there another way to find out the wanted HDC? */ @@ -425,7 +454,9 @@ HDC APIENTRY rosglGetCurrentDC() } -int APIENTRY rosglGetLayerPaletteEntries( HDC hdc, int iLayerPlane, int iStart, +int +APIENTRY +rosglGetLayerPaletteEntries( HDC hdc, int iLayerPlane, int iStart, int cEntries, COLORREF *pcr ) { UNIMPLEMENTED; @@ -433,7 +464,9 @@ int APIENTRY rosglGetLayerPaletteEntries( HDC hdc, int iLayerPlane, int iStart, } -int APIENTRY rosglGetPixelFormat( HDC hdc ) +int +WINAPI +rosglGetPixelFormat( HDC hdc ) { UNIMPLEMENTED; return 0; @@ -444,7 +477,9 @@ int APIENTRY rosglGetPixelFormat( HDC hdc ) * ARGUMENTS: [IN] proc: Name of the function to look for * RETURNS: The address of the proc or NULL on failure. */ -PROC APIENTRY rosglGetProcAddress( LPCSTR proc ) +PROC +APIENTRY +rosglGetProcAddress( LPCSTR proc ) { if (OPENGL32_threaddata->glrc == NULL) { @@ -484,7 +519,9 @@ PROC APIENTRY rosglGetProcAddress( LPCSTR proc ) * [IN] hglrc Handle for a GLRC to make current * RETURNS: TRUE on success, FALSE otherwise */ -BOOL APIENTRY rosglMakeCurrent( HDC hdc, HGLRC hglrc ) +BOOL +APIENTRY +rosglMakeCurrent( HDC hdc, HGLRC hglrc ) { GLRC *glrc = (GLRC *)hglrc; @@ -537,23 +574,28 @@ BOOL APIENTRY rosglMakeCurrent( HDC hdc, HGLRC hglrc ) } -BOOL APIENTRY rosglRealizeLayerPalette( HDC hdc, int iLayerPlane, BOOL bRealize ) +BOOL +APIENTRY +rosglRealizeLayerPalette( HDC hdc, int iLayerPlane, BOOL bRealize ) { UNIMPLEMENTED; return FALSE; } -int APIENTRY rosglSetLayerPaletteEntries( HDC hdc, int iLayerPlane, int iStart, - int cEntries, CONST COLORREF *pcr ) +int +APIENTRY +rosglSetLayerPaletteEntries( HDC hdc, int iLayerPlane, int iStart, + int cEntries, CONST COLORREF *pcr ) { UNIMPLEMENTED; return 0; } -BOOL APIENTRY rosglSetPixelFormat( HDC hdc, int iFormat, - CONST PIXELFORMATDESCRIPTOR *pfd ) +BOOL +WINAPI +rosglSetPixelFormat( HDC hdc, int iFormat, CONST PIXELFORMATDESCRIPTOR *pfd ) { GLDRIVERDATA *icd; @@ -576,7 +618,9 @@ BOOL APIENTRY rosglSetPixelFormat( HDC hdc, int iFormat, * [IN] hglrc2 GLRC number 2 * RETURNS: TRUR on success, FALSE on failure */ -BOOL APIENTRY rosglShareLists( HGLRC hglrc1, HGLRC hglrc2 ) +BOOL +APIENTRY +rosglShareLists( HGLRC hglrc1, HGLRC hglrc2 ) { GLRC *glrc1 = (GLRC *)hglrc1; GLRC *glrc2 = (GLRC *)hglrc2; @@ -609,7 +653,9 @@ BOOL APIENTRY rosglShareLists( HGLRC hglrc1, HGLRC hglrc2 ) * ARGUMENTS: [IN] hdc Handle to device context to swap buffers for * RETURNS: TRUE on success, FALSE on failure */ -BOOL APIENTRY rosglSwapBuffers( HDC hdc ) +BOOL +APIENTRY +rosglSwapBuffers( HDC hdc ) { #if 0 /* check if there is a current GLRC */ @@ -648,28 +694,36 @@ BOOL APIENTRY rosglSwapBuffers( HDC hdc ) } -BOOL APIENTRY rosglSwapLayerBuffers( HDC hdc, UINT fuPlanes ) +BOOL +APIENTRY +rosglSwapLayerBuffers( HDC hdc, UINT fuPlanes ) { UNIMPLEMENTED; return FALSE; } -BOOL APIENTRY rosglUseFontBitmapsA( HDC hdc, DWORD first, DWORD count, DWORD listBase ) +BOOL +APIENTRY +rosglUseFontBitmapsA( HDC hdc, DWORD first, DWORD count, DWORD listBase ) { UNIMPLEMENTED; return FALSE; } -BOOL APIENTRY rosglUseFontBitmapsW( HDC hdc, DWORD first, DWORD count, DWORD listBase ) +BOOL +APIENTRY +rosglUseFontBitmapsW( HDC hdc, DWORD first, DWORD count, DWORD listBase ) { UNIMPLEMENTED; return FALSE; } -BOOL APIENTRY rosglUseFontOutlinesA( HDC hdc, DWORD first, DWORD count, DWORD listBase, +BOOL +APIENTRY +rosglUseFontOutlinesA( HDC hdc, DWORD first, DWORD count, DWORD listBase, FLOAT deviation, FLOAT extrusion, int format, LPGLYPHMETRICSFLOAT lpgmf ) { @@ -678,7 +732,9 @@ BOOL APIENTRY rosglUseFontOutlinesA( HDC hdc, DWORD first, DWORD count, DWORD li } -BOOL APIENTRY rosglUseFontOutlinesW( HDC hdc, DWORD first, DWORD count, DWORD listBase, +BOOL +APIENTRY +rosglUseFontOutlinesW( HDC hdc, DWORD first, DWORD count, DWORD listBase, FLOAT deviation, FLOAT extrusion, int format, LPGLYPHMETRICSFLOAT lpgmf ) { @@ -686,4 +742,8 @@ BOOL APIENTRY rosglUseFontOutlinesW( HDC hdc, DWORD first, DWORD count, DWORD li return FALSE; } +#ifdef __cplusplus +}; // extern "C" +#endif//__cplusplus + /* EOF */