]
HGLRC = Alias("HGLRC", HANDLE)
-PROC = Intrinsic("PROC", "%p")
+PROC = Alias("PROC", Opaque)
PFD = Flags(DWORD, [
"PFD_DOUBLEBUFFER",
"PFD_SWAP_COPY",
"PFD_SWAP_LAYER_BUFFERS",
"PFD_GENERIC_ACCELERATED",
- #"PFD_SUPPORT_DIRECTDRAW",
+ "PFD_SUPPORT_DIRECTDRAW",
+ "PFD_DEPTH_DONTCARE",
+ "PFD_DOUBLEBUFFER_DONTCARE",
+ "PFD_STEREO_DONTCARE",
])
PIXELFORMATDESCRIPTOR = Struct("PIXELFORMATDESCRIPTOR", [
])
LPLAYERPLANEDESCRIPTOR = Pointer(LAYERPLANEDESCRIPTOR)
+WGLSWAP = Struct("WGLSWAP", [
+ (HDC, "hdc"),
+ (UINT, "uiFlags"),
+])
+
opengl32.functions += [
DllFunction(BOOL, "wglCopyContext", [(HGLRC, "hglrcSrc"), (HGLRC, "hglrcDst"), (UINT, "mask")]),
DllFunction(HGLRC, "wglCreateContext", [(HDC, "hdc")]),
DllFunction(Int , "wglGetLayerPaletteEntries", [(HDC, "hdc"), (Int, "iLayerPlane"), (Int, "iStart"), (Int, "cEntries"), (OutPointer(COLORREF), "pcr")]),
DllFunction(BOOL , "wglRealizeLayerPalette", [(HDC, "hdc"), (Int, "iLayerPlane"), (BOOL, "bRealize")]),
DllFunction(BOOL , "wglSwapLayerBuffers", [(HDC, "hdc"), (UINT, "fuPlanes")]),
+ DllFunction(DWORD, "wglSwapMultipleBuffers", [(UINT, "n"), (Pointer(Const(WGLSWAP)), "ps")]),
]
-if False:
- WGLSWAP = Struct("WGLSWAP", [
- (HDC, "hdc"),
- (UINT, "uiFlags"),
- ])
-
- opengl32.functions += [
- DllFunction(DWORD, "wglSwapMultipleBuffers", [(UINT, "n"), (Pointer(Const(WGLSWAP)), "ps")]),
- ]
-
class WglGetProcAddressFunction(DllFunction):
WglFunction(Void, "glDeleteProgram", [(GLuint, "program")]),
WglFunction(Void, "glDeleteShader", [(GLuint, "program")]),
WglFunction(Void, "glDetachShader", [(GLuint, "program"), (GLuint, "shader")]),
- WglFunction(Void, "glGetAttachedShaders", [(GLuint, "program"), (GLsizei, "maxCount"), (Pointer(GLsizei), "count"), (Pointer(GLuint), "obj")]),
- WglFunction(Void, "glGetProgramInfoLog", [(GLuint, "program"), (GLsizei, "bufSize"), (Pointer(GLsizei), "length"), (Pointer(GLchar), "infoLog")]),
- WglFunction(Void, "glGetProgramiv", [(GLuint, "program"), (GLenum, "pname"), (Pointer(GLint), "params")]),
- WglFunction(Void, "glGetShaderInfoLog", [(GLuint, "shader"), (GLsizei, "bufSize"), (Pointer(GLsizei), "length"), (Pointer(GLchar), "infoLog")]),
- WglFunction(Void, "glGetShaderiv", [(GLuint, "shader"), (GLenum, "pname"), (Pointer(GLint), "params")]),
+ WglFunction(Void, "glGetAttachedShaders", [(GLuint, "program"), (GLsizei, "maxCount"), (OutPointer(GLsizei), "count"), (Pointer(GLuint), "obj")]),
+ WglFunction(Void, "glGetProgramInfoLog", [(GLuint, "program"), (GLsizei, "bufSize"), (OutPointer(GLsizei), "length"), (Out(GLstring), "infoLog")]),
+ WglFunction(Void, "glGetProgramiv", [(GLuint, "program"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
+ WglFunction(Void, "glGetShaderInfoLog", [(GLuint, "shader"), (GLsizei, "bufSize"), (OutPointer(GLsizei), "length"), (Out(GLstring), "infoLog")]),
+ WglFunction(Void, "glGetShaderiv", [(GLuint, "shader"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
WglFunction(GLboolean, "glIsProgram", [(GLuint, "program")]),
WglFunction(GLboolean, "glIsShader", [(GLuint, "shader")]),
WglFunction(Void, "glStencilFuncSeparate", [(GLenum, "face"), (GLenum, "func"), (GLint, "ref"), (GLuint, "mask")]),
WglFunction(Void, "glGetProgramLocalParameterdvARB", [(GLenum, "target"), (GLuint, "index"), (Array(GLdouble, "4"), "params")]),
WglFunction(Void, "glGetProgramLocalParameterfvARB", [(GLenum, "target"), (GLuint, "index"), (Array(GLfloat, "4"), "params")]),
WglFunction(Void, "glGetProgramStringARB", [(GLenum, "target"), (GLenum, "pname"), (Pointer(GLvoid), "string")]),
- WglFunction(Void, "glGetProgramivARB", [(GLenum, "target"), (GLenum, "pname"), (Pointer(GLint), "params")]),
- WglFunction(Void, "glGetVertexAttribdv", [(GLuint, "index"), (GLenum, "pname"), (Pointer(GLdouble), "params")]),
- WglFunction(Void, "glGetVertexAttribdvARB", [(GLuint, "index"), (GLenum, "pname"), (Pointer(GLdouble), "params")]),
- WglFunction(Void, "glGetVertexAttribfv", [(GLuint, "index"), (GLenum, "pname"), (Pointer(GLfloat), "params")]),
- WglFunction(Void, "glGetVertexAttribfvARB", [(GLuint, "index"), (GLenum, "pname"), (Pointer(GLfloat), "params")]),
- WglFunction(Void, "glGetVertexAttribiv", [(GLuint, "index"), (GLenum, "pname"), (Pointer(GLint), "params")]),
- WglFunction(Void, "glGetVertexAttribivARB", [(GLuint, "index"), (GLenum, "pname"), (Pointer(GLint), "params")]),
+ WglFunction(Void, "glGetProgramivARB", [(GLenum, "target"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
+ WglFunction(Void, "glGetVertexAttribdv", [(GLuint, "index"), (GLenum, "pname"), (OutPointer(GLdouble), "params")]),
+ WglFunction(Void, "glGetVertexAttribdvARB", [(GLuint, "index"), (GLenum, "pname"), (OutPointer(GLdouble), "params")]),
+ WglFunction(Void, "glGetVertexAttribfv", [(GLuint, "index"), (GLenum, "pname"), (OutPointer(GLfloat), "params")]),
+ WglFunction(Void, "glGetVertexAttribfvARB", [(GLuint, "index"), (GLenum, "pname"), (OutPointer(GLfloat), "params")]),
+ WglFunction(Void, "glGetVertexAttribiv", [(GLuint, "index"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
+ WglFunction(Void, "glGetVertexAttribivARB", [(GLuint, "index"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
WglFunction(Void, "glProgramEnvParameter4dARB", [(GLenum, "target"), (GLuint, "index"), (GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z"), (GLdouble, "w")]),
WglFunction(Void, "glProgramParameter4dNV", [(GLenum, "target"), (GLuint, "index"), (GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z"), (GLdouble, "w")]),
WglFunction(Void, "glProgramEnvParameter4dvARB", [(GLenum, "target"), (GLuint, "index"), (Array(Const(GLdouble), "4"), "params")]),
WglFunction(Void, "glDeleteQueriesARB", [(GLsizei, "n"), (Pointer(Const(GLuint)), "ids")]),
WglFunction(Void, "glEndQueryARB", [(GLenum, "target")]),
WglFunction(Void, "glGenQueriesARB", [(GLsizei, "n"), (Pointer(GLuint), "ids")]),
- WglFunction(Void, "glGetQueryObjectivARB", [(GLuint, "id"), (GLenum, "pname"), (Pointer(GLint), "params")]),
- WglFunction(Void, "glGetQueryObjectuivARB", [(GLuint, "id"), (GLenum, "pname"), (Pointer(GLuint), "params")]),
- WglFunction(Void, "glGetQueryivARB", [(GLenum, "target"), (GLenum, "pname"), (Pointer(GLint), "params")]),
+ WglFunction(Void, "glGetQueryObjectivARB", [(GLuint, "id"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
+ WglFunction(Void, "glGetQueryObjectuivARB", [(GLuint, "id"), (GLenum, "pname"), (OutPointer(GLuint), "params")]),
+ WglFunction(Void, "glGetQueryivARB", [(GLenum, "target"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
WglFunction(GLboolean, "glIsQueryARB", [(GLuint, "id")]),
WglFunction(Void, "glAttachObjectARB", [(GLhandleARB, "containerObj"), (GLhandleARB, "obj")]),
WglFunction(Void, "glCompileShader", [(GLhandleARB, "shader")]),
WglFunction(Void, "glGetInfoLogARB", [(GLhandleARB, "obj"), (GLsizei, "maxLength"), (OutPointer(GLsizei), "length"), (Out(GLstringARB), "infoLog")]),
WglFunction(Void, "glGetObjectParameterfvARB", [(GLhandleARB, "obj"), (GLenum, "pname"), (Pointer(GLfloat), "params")]),
WglFunction(Void, "glGetObjectParameterivARB", [(GLhandleARB, "obj"), (GLenum, "pname"), (Pointer(GLint), "params")]),
- WglFunction(Void, "glGetShaderSource", [(GLhandleARB, "shader"), (GLsizei, "bufSize"), (Pointer(GLsizei), "length"), (Pointer(GLcharARB), "source")]),
- WglFunction(Void, "glGetShaderSourceARB", [(GLhandleARB, "shader"), (GLsizei, "bufSize"), (Pointer(GLsizei), "length"), (Pointer(GLcharARB), "source")]),
+ WglFunction(Void, "glGetShaderSource", [(GLhandleARB, "shader"), (GLsizei, "bufSize"), (Pointer(GLsizei), "length"), (Out(GLstringARB), "source")]),
+ WglFunction(Void, "glGetShaderSourceARB", [(GLhandleARB, "shader"), (GLsizei, "bufSize"), (Pointer(GLsizei), "length"), (Out(GLstringARB), "source")]),
WglFunction(GLint, "glGetUniformLocation", [(GLhandleARB, "program"), (Pointer(Const(GLcharARB)), "name")]),
WglFunction(GLint, "glGetUniformLocationARB", [(GLhandleARB, "program"), (Pointer(Const(GLcharARB)), "name")]),
WglFunction(Void, "glGetUniformfv", [(GLhandleARB, "program"), (GLint, "location"), (Pointer(GLfloat), "params")]),
print
print '#include "log.hpp"'
print
+ print '#ifndef PFD_SUPPORT_DIRECTDRAW'
+ print '#define PFD_SUPPORT_DIRECTDRAW 0x00002000'
+ print '#endif'
+ print '#ifndef PFD_SUPPORT_COMPOSITION'
+ print '#define PFD_SUPPORT_COMPOSITION 0x00008000'
+ print '#endif'
+ print
+ print '#ifdef __MINGW32__'
+ print ''
+ print 'typedef struct _WGLSWAP'
+ print '{'
+ print ' HDC hdc;'
+ print ' UINT uiFlags;'
+ print '} WGLSWAP, *PWGLSWAP, FAR *LPWGLSWAP;'
+ print ''
+ print '#define WGL_SWAPMULTIPLE_MAX 16'
+ print ''
+ print '#endif'
+ print
print 'extern "C" {'
print
wrap()