fast proxy functions now exported by nasm code. opengl32 builds and links with both mingw and vc6.

svn path=/trunk/; revision=8053
This commit is contained in:
Royce Mitchell III 2004-02-06 18:17:18 +00:00
parent 796b118754
commit 27440e7327
13 changed files with 1193 additions and 121 deletions

View file

@ -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)

View file

@ -22,29 +22,10 @@
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <ntos/types.h>
#include <napi/teb.h>
#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 */

View file

@ -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

View file

@ -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 <windows.h>
#include <winreg.h>
#include <ntos/types.h>
#include <napi/teb.h>
#include "teb.h"
#include <string.h>
#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;

View file

@ -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

View file

@ -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

View file

@ -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>
{{{
}}}
###############################################################################

View file

@ -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 <debug.h>
# 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 <debug.h>
# 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 */

View file

@ -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 */

View file

@ -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 <ntos/types.h>
#include <napi/teb.h>
#endif/*_MSC_VER*/

View file

@ -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

View file

@ -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

View file

@ -10,17 +10,23 @@
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <ntos/types.h>
#include <napi/teb.h>
#include <GL/gl.h>
#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 */