Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; *---------------------------------*
- ; * OpenGL Base *
- ; * xorc1zt *
- ; * 2011 *
- ; *---------------------------------*
- EnableExplicit
- ; Debug trace
- #TRACEFUNCTION = #True
- Macro traceFunction(string)
- CompilerIf #TRACEFUNCTION
- Debug "[ TRACE ]: "+string
- CompilerEndIf
- EndMacro
- IncludeFile "glconst.pb"
- IncludeFile "matrix.pb"
- ; Use these for enable/disable loading of extensions
- #ENABLEGL1_0 = #True
- #ENABLEGL1_1 = #True
- #ENABLEGL1_2 = #True
- #ENABLEGL1_3 = #True
- #ENABLEGL1_4 = #True
- #ENABLEGL1_5 = #True
- #ENABLEGL2_0 = #True
- #ENABLEGL2_1 = #True
- #ENABLEGL3_0 = #True
- #ENABLEGL3_1 = #True
- #ENABLEGL3_2 = #True
- #ENABLEGL3_3 = #True
- #ENABLEGLMISC = #True
- ;- OpenGL 1.0
- CompilerIf #ENABLEGL1_0
- Prototype PFNGLCULLFACEPROC ( mode.l )
- Prototype PFNGLFRONTFACEPROC ( mode.l )
- Prototype PFNGLHINTPROC ( target.l, mode.l )
- Prototype PFNGLLINEWIDTHPROC ( width.f )
- Prototype PFNGLPOINTSIZEPROC ( size.f )
- Prototype PFNGLPOLYGONMODEPROC ( face.l, mode.l )
- Prototype PFNGLSCISSORPROC ( x.i, y.i, width.i, height.i )
- Prototype PFNGLTEXPARAMETERFPROC ( target.l, pname.l, param.f )
- Prototype PFNGLTEXPARAMETERFVPROC ( target.l, pname.l, *params.f )
- Prototype PFNGLTEXPARAMETERIPROC ( target.l, pname.l, param.i )
- Prototype PFNGLTEXPARAMETERIVPROC ( target.l, pname.l, *params.i )
- Prototype PFNGLTEXIMAGE1DPROC ( target.l, level.i, internalformat.i, width.i, border.i, format.l, type.l, *pixels )
- Prototype PFNGLTEXIMAGE2DPROC ( target.l, level.i, internalformat.i, width.i, height.i, border.i, format.l, type.l, *pixels )
- Prototype PFNGLDRAWBUFFERPROC ( mode.l )
- Prototype PFNGLCLEARPROC ( mask.i )
- Prototype PFNGLCLEARCOLORPROC ( red.f, green.f, blue.f, alpha.f )
- Prototype PFNGLCLEARSTENCILPROC ( s.i )
- Prototype PFNGLCLEARDEPTHPROC ( depth.d )
- Prototype PFNGLSTENCILMASKPROC ( mask.i )
- Prototype PFNGLCOLORMASKPROC ( red.b, green.b, blue.b, alpha.b )
- Prototype PFNGLDEPTHMASKPROC ( flag.b )
- Prototype PFNGLDISABLEPROC ( cap.l )
- Prototype PFNGLENABLEPROC ( cap.l )
- Prototype PFNGLFINISHPROC ( )
- Prototype PFNGLFLUSHPROC ( )
- Prototype PFNGLBLENDFUNCPROC ( sfactor.l, dfactor.l )
- Prototype PFNGLLOGICOPPROC ( opcode.l )
- Prototype PFNGLSTENCILFUNCPROC ( func.l, ref.i, mask.i )
- Prototype PFNGLSTENCILOPPROC ( fail.l, zfail.l, zpass.l )
- Prototype PFNGLDEPTHFUNCPROC ( func.l )
- Prototype PFNGLPIXELSTOREFPROC ( pname.l, param.f )
- Prototype PFNGLPIXELSTOREIPROC ( pname.l, param.i )
- Prototype PFNGLREADBUFFERPROC ( mode.l )
- Prototype PFNGLREADPIXELSPROC ( x.i, y.i, width.i, height.i, format.l, type.l, *pixels )
- Prototype PFNGLGETBOOLEANVPROC ( pname.l, *params.b)
- Prototype PFNGLGETDOUBLEVPROC ( pname.l, *params.d )
- Prototype.l PFNGLGETERRORPROC ( )
- Prototype PFNGLGETFLOATVPROC ( pname.l, *params.f )
- Prototype PFNGLGETINTEGERVPROC ( pname.l, *params.i )
- Prototype PFNGLGETSTRINGPROC ( name.l )
- Prototype PFNGLGETTEXIMAGEPROC ( target.l, level.i, format.l, type.l, *pixels )
- Prototype PFNGLGETTEXPARAMETERFVPROC ( target.l, pname.l, *params.f )
- Prototype PFNGLGETTEXPARAMETERIVPROC ( target.l, pname.l, *params.i )
- Prototype PFNGLGETTEXLEVELPARAMETERFVPROC ( target.l, level.i, pname.l, *params.f )
- Prototype PFNGLGETTEXLEVELPARAMETERIVPROC ( target.l, level.i, pname.l, *params.i )
- Prototype.b PFNGLISENABLEDPROC ( cap.l )
- Prototype PFNGLDEPTHRANGEPROC ( near.d, far.d )
- Prototype PFNGLVIEWPORTPROC ( x.i, y.i, width.i, height.i )
- Global glCullFace.PFNGLCULLFACEPROC
- Global glFrontFace.PFNGLFRONTFACEPROC
- Global glHint.PFNGLHINTPROC
- Global glLineWidth.PFNGLLINEWIDTHPROC
- Global glPointSize.PFNGLPOINTSIZEPROC
- Global glPolygonMode.PFNGLPOLYGONMODEPROC
- Global glScissor.PFNGLSCISSORPROC
- Global glTexParameterf.PFNGLTEXPARAMETERFPROC
- Global glTexParameterfv.PFNGLTEXPARAMETERFVPROC
- Global glTexParameteri.PFNGLTEXPARAMETERIPROC
- Global glTexParameteriv.PFNGLTEXPARAMETERIVPROC
- Global glTexImage1D.PFNGLTEXIMAGE1DPROC
- Global glTexImage2D.PFNGLTEXIMAGE2DPROC
- Global glDrawBuffer.PFNGLDRAWBUFFERPROC
- Global glClear.PFNGLCLEARPROC
- Global glClearColor.PFNGLCLEARCOLORPROC
- Global glClearStencil.PFNGLCLEARSTENCILPROC
- Global glClearDepth.PFNGLCLEARDEPTHPROC
- Global glStencilMask.PFNGLSTENCILMASKPROC
- Global glColorMask.PFNGLCOLORMASKPROC
- Global glDepthMask.PFNGLDEPTHMASKPROC
- Global glDisable.PFNGLDISABLEPROC
- Global glEnable.PFNGLENABLEPROC
- Global glFinish.PFNGLFINISHPROC
- Global glFlush.PFNGLFLUSHPROC
- Global glBlendFunc.PFNGLBLENDFUNCPROC
- Global glLogicOp.PFNGLLOGICOPPROC
- Global glStencilFunc.PFNGLSTENCILFUNCPROC
- Global glStencilOp.PFNGLSTENCILOPPROC
- Global glDepthFunc.PFNGLDEPTHFUNCPROC
- Global glPixelStoref.PFNGLPIXELSTOREFPROC
- Global glPixelStorei.PFNGLPIXELSTOREIPROC
- Global glReadBuffer.PFNGLREADBUFFERPROC
- Global glReadPixels.PFNGLREADPIXELSPROC
- Global glGetBooleanv.PFNGLGETBOOLEANVPROC
- Global glGetDoublev.PFNGLGETDOUBLEVPROC
- Global glGetError.PFNGLGETERRORPROC
- Global glGetFloatv.PFNGLGETFLOATVPROC
- Global glGetIntegerv.PFNGLGETINTEGERVPROC
- Global glGetString_.PFNGLGETSTRINGPROC
- Global glGetTexImage.PFNGLGETTEXIMAGEPROC
- Global glGetTexParameterfv.PFNGLGETTEXPARAMETERFVPROC
- Global glGetTexParameteriv.PFNGLGETTEXPARAMETERIVPROC
- Global glGetTexLevelParameterfv.PFNGLGETTEXLEVELPARAMETERFVPROC
- Global glGetTexLevelParameteriv.PFNGLGETTEXLEVELPARAMETERIVPROC
- Global glIsEnabled.PFNGLISENABLEDPROC
- Global glDepthRange.PFNGLDEPTHRANGEPROC
- Global glViewport.PFNGLVIEWPORTPROC
- CompilerEndIf
- ;- OpenGL 1.1
- CompilerIf #ENABLEGL1_1
- Prototype PFNGLDRAWARRAYSPROC ( mode.l, first.i, count.i )
- Prototype PFNGLDRAWELEMENTSPROC ( mode.l, count.i, type.l, *indices )
- Prototype PFNGLGETPOINTERVPROC ( pname.l, *params )
- Prototype PFNGLPOLYGONOFFSETPROC ( factor.f, units.f )
- Prototype PFNGLCOPYTEXIMAGE1DPROC ( target.l, level.i, internalformat.l, x.i, y.i, width.i, border.i )
- Prototype PFNGLCOPYTEXIMAGE2DPROC ( target.l, level.i, internalformat.l, x.i, y.i, width.i, height.i, border.i )
- Prototype PFNGLCOPYTEXSUBIMAGE1DPROC ( target.l, level.i, xoffset.i, x.i, y.i, width.i )
- Prototype PFNGLCOPYTEXSUBIMAGE2DPROC ( target.l, level.i, xoffset.i, yoffset.i, x.i, y.i, width.i, height.i )
- Prototype PFNGLTEXSUBIMAGE1DPROC ( target.l, level.i, xoffset.i, width.i, format.l, type.l, *pixels )
- Prototype PFNGLTEXSUBIMAGE2DPROC ( target.l, level.i, xoffset.i, yoffset.i, width.i, height.i, format.l, type.l, *pixels )
- Prototype PFNGLBINDTEXTUREPROC ( target.l, texture.i )
- Prototype PFNGLDELETETEXTURESPROC ( n.i, *textures.i )
- Prototype PFNGLGENTEXTURESPROC ( n.i, *textures.i )
- Prototype.b PFNGLISTEXTUREPROC ( texture.i )
- Global glDrawArrays.PFNGLDRAWARRAYSPROC
- Global glDrawElements.PFNGLDRAWELEMENTSPROC
- Global glGetPointerv.PFNGLGETPOINTERVPROC
- Global glPolygonOffset.PFNGLPOLYGONOFFSETPROC
- Global glCopyTexImage1D.PFNGLCOPYTEXIMAGE1DPROC
- Global glCopyTexImage2D.PFNGLCOPYTEXIMAGE2DPROC
- Global glCopyTexSubImage1D.PFNGLCOPYTEXSUBIMAGE1DPROC
- Global glCopyTexSubImage2D.PFNGLCOPYTEXSUBIMAGE2DPROC
- Global glTexSubImage1D.PFNGLTEXSUBIMAGE1DPROC
- Global glTexSubImage2D.PFNGLTEXSUBIMAGE2DPROC
- Global glBindTexture.PFNGLBINDTEXTUREPROC
- Global glDeleteTextures.PFNGLDELETETEXTURESPROC
- Global glGenTextures.PFNGLGENTEXTURESPROC
- Global glIsTexture.PFNGLISTEXTUREPROC
- CompilerEndIf
- ;- OpenGL 1.2
- CompilerIf #ENABLEGL1_2
- Prototype PFNGLBLENDCOLORPROC ( red.f, green.f, blue.f, alpha.f)
- Prototype PFNGLBLENDEQUATIONPROC ( mode.l )
- Prototype PFNGLDRAWRANGEELEMENTSPROC ( mode.l, start.i, End_.i, count.i, type.l, indices.l)
- Prototype PFNGLTEXIMAGE3DPROC ( target.l, level.i, internalformat.i, width.i, height.i, depth.i, border.i, format.l, type.l, pixels.l)
- Prototype PFNGLTEXSUBIMAGE3DPROC ( target.l, level.i, xoffset.i, yoffset.i, zoffset.i, width.i, height.i, depth.i, format.l, type.l, pixels.l)
- Prototype PFNGLCOPYTEXSUBIMAGE3DPROC ( target.l, level.i, xoffset.i, yoffset.i, zoffset.i, x.i, y.i, width.i, height.i )
- Global glBlendColor.PFNGLBLENDCOLORPROC
- Global glBlendEquation.PFNGLBLENDEQUATIONPROC
- Global glDrawRangeElements.PFNGLDRAWRANGEELEMENTSPROC
- Global glTexImage3D.PFNGLTEXIMAGE3DPROC
- Global glTexSubImage3D.PFNGLTEXSUBIMAGE3DPROC
- Global glCopyTexSubImage3D.PFNGLCOPYTEXSUBIMAGE3DPROC
- CompilerEndIf
- ;- OpenGL 1.3
- CompilerIf #ENABLEGL1_3
- Prototype PFNGLACTIVETEXTUREPROC ( texture.l )
- Prototype PFNGLSAMPLECOVERAGEPROC ( value.f, invert.b )
- Prototype PFNGLCOMPRESSEDTEXIMAGE3DPROC ( target.l, level.i, internalformat.l, width.i, height.i, depth.i, border.i, imageSize.i, Data_.l )
- Prototype PFNGLCOMPRESSEDTEXIMAGE2DPROC ( target.l, level.i, internalformat.l, width.i, height.i, border.i, imageSize.i, Data_.l )
- Prototype PFNGLCOMPRESSEDTEXIMAGE1DPROC ( target.l, level.i, internalformat.l, width.i, border.i, imageSize.i, Data_.l )
- Prototype PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC ( target.l, level.i, xoffset.i, yoffset.i, zoffset.i, width.i, height.i, depth.i, format.l, imageSize.i, Data_.l )
- Prototype PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC ( target.l, level.i, xoffset.i, yoffset.i, width.i, height.i, format.l, imageSize.i, Data_.l )
- Prototype PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC ( target.l, level.i, xoffset.i, width.i, format.l, imageSize.i, Data_.l )
- Prototype PFNGLGETCOMPRESSEDTEXIMAGEPROC ( target.l, level.i, img.l)
- Global glActiveTexture.PFNGLACTIVETEXTUREPROC
- Global glSampleCoverage.PFNGLSAMPLECOVERAGEPROC
- Global glCompressedTexImage3D.PFNGLCOMPRESSEDTEXIMAGE3DPROC
- Global glCompressedTexImage2D.PFNGLCOMPRESSEDTEXIMAGE2DPROC
- Global glCompressedTexImage1D.PFNGLCOMPRESSEDTEXIMAGE1DPROC
- Global glCompressedTexSubImage3D.PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC
- Global glCompressedTexSubImage2D.PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC
- Global glCompressedTexSubImage1D.PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC
- Global glGetCompressedTexImage.PFNGLGETCOMPRESSEDTEXIMAGEPROC
- CompilerEndIf
- ;- OpenGL 1.4
- CompilerIf #ENABLEGL1_4
- Prototype PFNGLBLENDFUNCSEPARATEPROC ( sfactorRGB.l, dfactorRGB.l, sfactorAlpha.l, dfactorAlpha.l)
- Prototype PFNGLMULTIDRAWARRAYSPROC ( mode.l, *first.i, *count.i, primcount.i)
- Prototype PFNGLMULTIDRAWELEMENTSPROC ( mode.l, *count.i, type.l, *indices.l, primcount.i )
- Prototype PFNGLPOINTPARAMETERFPROC ( pname.l, param.f )
- Prototype PFNGLPOINTPARAMETERFVPROC ( pname.l, *param.f )
- Prototype PFNGLPOINTPARAMETERIPROC ( pname.l, param.i )
- Prototype PFNGLPOINTPARAMETERIVPROC ( pname.l, *param.i )
- Global glBlendFuncSeparate.PFNGLBLENDFUNCSEPARATEPROC
- Global glMultiDrawArrays.PFNGLMULTIDRAWARRAYSPROC
- Global glMultiDrawElements.PFNGLMULTIDRAWELEMENTSPROC
- Global glPointParameterf.PFNGLPOINTPARAMETERFPROC
- Global glPointParameterfv.PFNGLPOINTPARAMETERFVPROC
- Global glPointParameteri.PFNGLPOINTPARAMETERIPROC
- Global glPointParameteriv.PFNGLPOINTPARAMETERIVPROC
- CompilerEndIf
- ;- OpenGL 1.5
- CompilerIf #ENABLEGL1_5
- Prototype PFNGLGENQUERIESPROC (n.i, *ids.i)
- Prototype PFNGLDELETEQUERIESPROC (n.i,*ids.i)
- Prototype.b PFNGLISQUERYPROC (id.i)
- Prototype PFNGLBEGINQUERYPROC (target.l, id.i)
- Prototype PFNGLENDQUERYPROC (target.l)
- Prototype PFNGLGETQUERYIVPROC (target.l, pname.l, *params.i)
- Prototype PFNGLGETQUERYOBJECTIVPROC (id.i, pname.l, *params.i)
- Prototype PFNGLGETQUERYOBJECTUIVPROC (id.i, pname.l, *params.i)
- Prototype PFNGLBINDBUFFERPROC (target.l, buffer.i)
- Prototype PFNGLDELETEBUFFERSPROC (n.i, *buffers.i)
- Prototype PFNGLGENBUFFERSPROC (n.i, *buffers.i)
- Prototype.b PFNGLISBUFFERPROC (buffer.i)
- Prototype PFNGLBUFFERDATAPROC (target.l, size.i, *Data_.l, usage.l)
- Prototype PFNGLBUFFERSUBDATAPROC (target.l, offset.i, size.i, *Data_.l)
- Prototype PFNGLGETBUFFERSUBDATAPROC (target.l, offset.i, size.i, *Data_.l)
- Prototype PFNGLMAPBUFFERPROC (target.l, access.l)
- Prototype.b PFNGLUNMAPBUFFERPROC (target.l)
- Prototype PFNGLGETBUFFERPARAMETERIVPROC (target.l, pname.l, *params.i)
- Prototype PFNGLGETBUFFERPOINTERVPROC (target.l, pname.l, *params.l)
- Global glGenQueries.PFNGLGENQUERIESPROC
- Global glDeleteQueries.PFNGLDELETEQUERIESPROC
- Global glIsQuery.PFNGLISQUERYPROC
- Global glBeginQuery.PFNGLBEGINQUERYPROC
- Global glEndQuery.PFNGLENDQUERYPROC
- Global glGetQueryiv.PFNGLGETQUERYIVPROC
- Global glGetQueryObjectiv.PFNGLGETQUERYOBJECTIVPROC
- Global glGetQueryObjectuiv.PFNGLGETQUERYOBJECTUIVPROC
- Global glBindBuffer.PFNGLBINDBUFFERPROC
- Global glDeleteBuffers.PFNGLDELETEBUFFERSPROC
- Global glGenBuffers.PFNGLGENBUFFERSPROC
- Global glIsBuffer.PFNGLISBUFFERPROC
- Global glBufferData.PFNGLBUFFERDATAPROC
- Global glBufferSubData.PFNGLBUFFERSUBDATAPROC
- Global glGetBufferSubData.PFNGLGETBUFFERSUBDATAPROC
- Global glMapBuffer.PFNGLMAPBUFFERPROC
- Global glUnmapBuffer.PFNGLUNMAPBUFFERPROC
- Global glGetBufferParameteriv.PFNGLGETBUFFERPARAMETERIVPROC
- Global glGetBufferPointerv.PFNGLGETBUFFERPOINTERVPROC
- CompilerEndIf
- ;- OpenGL 2.0
- CompilerIf #ENABLEGL2_0
- Prototype PFNGLBLENDEQUATIONSEPARATEPROC ( modeRGB.l, modeAlpha.l )
- Prototype PFNGLDRAWBUFFERSPROC ( n.i, *bufs.l )
- Prototype PFNGLSTENCILOPSEPARATEPROC ( face.l, sfail.l, dpfail.l, dppass.l )
- Prototype PFNGLSTENCILFUNCSEPARATEPROC ( face.l, func.l, ref.i, mask.i )
- Prototype PFNGLSTENCILMASKSEPARATEPROC ( face.l, mask.i )
- Prototype PFNGLATTACHSHADERPROC ( program.i, shader.i )
- Prototype PFNGLBINDATTRIBLOCATIONPROC ( program.i, index.i, name.s )
- Prototype PFNGLCOMPILESHADERPROC ( shader.i )
- Prototype.i PFNGLCREATEPROGRAMPROC ( )
- Prototype.i PFNGLCREATESHADERPROC ( type.l )
- Prototype PFNGLDELETEPROGRAMPROC ( program.i )
- Prototype PFNGLDELETESHADERPROC ( shader.i )
- Prototype PFNGLDETACHSHADERPROC ( program.i, shader.i )
- Prototype PFNGLDISABLEVERTEXATTRIBARRAYPROC ( index.i )
- Prototype PFNGLENABLEVERTEXATTRIBARRAYPROC ( index.i )
- Prototype PFNGLGETACTIVEATTRIBPROC ( program.i, index.i, bufSize.i, *length.i, *size.i, *type.l, *name.s )
- Prototype PFNGLGETACTIVEUNIFORMPROC ( program.i, index.i, bufSize.i, *length.i, *size.i, *type.l, *name.s )
- Prototype PFNGLGETATTACHEDSHADERSPROC ( program.i, maxCount.i, *count.i, *obj.i )
- Prototype PFNGLGETATTRIBLOCATIONPROC ( program.i, name.s )
- Prototype PFNGLGETPROGRAMIVPROC ( program.i, pname.l, *params.i )
- Prototype PFNGLGETPROGRAMINFOLOGPROC ( program.i, bufSize.i, *length.i, *infoLog.s )
- Prototype PFNGLGETSHADERIVPROC ( shader.i, pname.l, *params.i )
- Prototype PFNGLGETSHADERINFOLOGPROC ( shader.i, bufSize.i, *length.i, *infoLog.s )
- Prototype PFNGLGETSHADERSOURCEPROC ( shader.i, bufSize.i, *length.i, *source.s )
- Prototype PFNGLGETUNIFORMLOCATIONPROC ( program.i, name.s )
- Prototype PFNGLGETUNIFORMFVPROC ( program.i, location.i, *params.f )
- Prototype PFNGLGETUNIFORMIVPROC ( program.i, location.i, *params.i )
- Prototype PFNGLGETVERTEXATTRIBDVPROC ( index.i, pname.l, *params.d )
- Prototype PFNGLGETVERTEXATTRIBFVPROC ( index.i, pname.l, *params.f )
- Prototype PFNGLGETVERTEXATTRIBIVPROC ( index.i, pname.l, *params.i )
- Prototype PFNGLGETVERTEXATTRIBPOINTERVPROC ( index.i, pname.l, *pointer )
- Prototype.b PFNGLISPROGRAMPROC ( program.i )
- Prototype.b PFNGLISSHADERPROC ( shader.i )
- Prototype PFNGLLINKPROGRAMPROC ( program.i )
- Prototype PFNGLSHADERSOURCEPROC ( shader.i, count.i, *string.s, *length.i )
- Prototype PFNGLUSEPROGRAMPROC ( program.i )
- Prototype PFNGLUNIFORM1FPROC ( location.i, v0.f )
- Prototype PFNGLUNIFORM2FPROC ( location.i, v0.f, v1.f )
- Prototype PFNGLUNIFORM3FPROC ( location.i, v0.f, v1.f, v2.f )
- Prototype PFNGLUNIFORM4FPROC ( location.i, v0.f, v1.f, v2.f, v3.f )
- Prototype PFNGLUNIFORM1IPROC ( location.i, v0.i )
- Prototype PFNGLUNIFORM2IPROC ( location.i, v0.i, v1.i )
- Prototype PFNGLUNIFORM3IPROC ( location.i, v0.i, v1.i, v2.i )
- Prototype PFNGLUNIFORM4IPROC ( location.i, v0.i, v1.i, v2.i, v3.i )
- Prototype PFNGLUNIFORM1FVPROC ( location.i, count.i, *value.f )
- Prototype PFNGLUNIFORM2FVPROC ( location.i, count.i, *value.f )
- Prototype PFNGLUNIFORM3FVPROC ( location.i, count.i, *value.f )
- Prototype PFNGLUNIFORM4FVPROC ( location.i, count.i, *value.f )
- Prototype PFNGLUNIFORM1IVPROC ( location.i, count.i, *value.i )
- Prototype PFNGLUNIFORM2IVPROC ( location.i, count.i, *value.i )
- Prototype PFNGLUNIFORM3IVPROC ( location.i, count.i, *value.i )
- Prototype PFNGLUNIFORM4IVPROC ( location.i, count.i, *value.i )
- Prototype PFNGLUNIFORMMATRIX2FVPROC ( location.i, count.i, transpose.b, *value.f )
- Prototype PFNGLUNIFORMMATRIX3FVPROC ( location.i, count.i, transpose.b, *value.f )
- Prototype PFNGLUNIFORMMATRIX4FVPROC ( location.i, count.i, transpose.b, *value.f )
- Prototype PFNGLVALIDATEPROGRAMPROC ( program.i )
- Prototype PFNGLVERTEXATTRIB1DPROC ( index.i, x.d )
- Prototype PFNGLVERTEXATTRIB1DVPROC ( index.i, *v.d )
- Prototype PFNGLVERTEXATTRIB1FPROC ( index.i, x.f )
- Prototype PFNGLVERTEXATTRIB1FVPROC ( index.i, *v.f )
- Prototype PFNGLVERTEXATTRIB1SPROC ( index.i, x.w )
- Prototype PFNGLVERTEXATTRIB1SVPROC ( index.i, *v.w )
- Prototype PFNGLVERTEXATTRIB2DPROC ( index.i, x.d, y.d )
- Prototype PFNGLVERTEXATTRIB2DVPROC ( index.i, *v.d )
- Prototype PFNGLVERTEXATTRIB2FPROC ( index.i, x.f, y.f )
- Prototype PFNGLVERTEXATTRIB2FVPROC ( index.i, *v.f )
- Prototype PFNGLVERTEXATTRIB2SPROC ( index.i, x.w, y.w )
- Prototype PFNGLVERTEXATTRIB2SVPROC ( index.i, *v.w )
- Prototype PFNGLVERTEXATTRIB3DPROC ( index.i, x.d, y.d, z.d )
- Prototype PFNGLVERTEXATTRIB3DVPROC ( index.i, *v.d )
- Prototype PFNGLVERTEXATTRIB3FPROC ( index.i, x.f, y.f, z.f )
- Prototype PFNGLVERTEXATTRIB3FVPROC ( index.i, *v.f )
- Prototype PFNGLVERTEXATTRIB3SPROC ( index.i, x.w, y.w, z.w )
- Prototype PFNGLVERTEXATTRIB3SVPROC ( index.i, *v.w )
- Prototype PFNGLVERTEXATTRIB4NBVPROC ( index.i, *v.b )
- Prototype PFNGLVERTEXATTRIB4NIVPROC ( index.i, *v.i )
- Prototype PFNGLVERTEXATTRIB4NSVPROC ( index.i, *v.w )
- Prototype PFNGLVERTEXATTRIB4NUBPROC ( index.i, x.b, y.b, z.b, w.b )
- Prototype PFNGLVERTEXATTRIB4NUBVPROC ( index.i, *v.b )
- Prototype PFNGLVERTEXATTRIB4NUIVPROC ( index.i, *v.i )
- Prototype PFNGLVERTEXATTRIB4NUSVPROC ( index.i, *v.w)
- Prototype PFNGLVERTEXATTRIB4BVPROC ( index.i, *v.b )
- Prototype PFNGLVERTEXATTRIB4DPROC ( index.i, x.d, y.d, z.d, w.d )
- Prototype PFNGLVERTEXATTRIB4DVPROC ( index.i, *v.d )
- Prototype PFNGLVERTEXATTRIB4FPROC ( index.i, x.f, y.f, z.f, w.f )
- Prototype PFNGLVERTEXATTRIB4FVPROC ( index.i, *v.f )
- Prototype PFNGLVERTEXATTRIB4IVPROC ( index.i, *v.i )
- Prototype PFNGLVERTEXATTRIB4SPROC ( index.i, x.w, y.w, z.w, w.w )
- Prototype PFNGLVERTEXATTRIB4SVPROC ( index.i, *v.w )
- Prototype PFNGLVERTEXATTRIB4UBVPROC ( index.i, *v.b )
- Prototype PFNGLVERTEXATTRIB4UIVPROC ( index.i, *v.i )
- Prototype PFNGLVERTEXATTRIB4USVPROC ( index.i, *v.w)
- Prototype PFNGLVERTEXATTRIBPOINTERPROC ( index.i, size.i, type.l, normalized.b, stride.i, *pointer )
- Global glBlendEquationSeparate.PFNGLBLENDEQUATIONSEPARATEPROC
- Global glDrawBuffers.PFNGLDRAWBUFFERSPROC
- Global glStencilOpSeparate.PFNGLSTENCILOPSEPARATEPROC
- Global glStencilFuncSeparate.PFNGLSTENCILFUNCSEPARATEPROC
- Global glStencilMaskSeparate.PFNGLSTENCILMASKSEPARATEPROC
- Global glAttachShader.PFNGLATTACHSHADERPROC
- Global glBindAttribLocation.PFNGLBINDATTRIBLOCATIONPROC
- Global glCompileShader.PFNGLCOMPILESHADERPROC
- Global glCreateProgram.PFNGLCREATEPROGRAMPROC
- Global glCreateShader.PFNGLCREATESHADERPROC
- Global glDeleteProgram.PFNGLDELETEPROGRAMPROC
- Global glDeleteShader.PFNGLDELETESHADERPROC
- Global glDetachShader.PFNGLDETACHSHADERPROC
- Global glDisableVertexAttribArray.PFNGLDISABLEVERTEXATTRIBARRAYPROC
- Global glEnableVertexAttribArray.PFNGLENABLEVERTEXATTRIBARRAYPROC
- Global glGetActiveAttrib.PFNGLGETACTIVEATTRIBPROC
- Global glGetActiveUniform.PFNGLGETACTIVEUNIFORMPROC
- Global glGetAttachedShaders.PFNGLGETATTACHEDSHADERSPROC
- Global glGetAttribLocation.PFNGLGETATTRIBLOCATIONPROC
- Global glGetProgramiv.PFNGLGETPROGRAMIVPROC
- Global glGetProgramInfoLog.PFNGLGETPROGRAMINFOLOGPROC
- Global glGetShaderiv.PFNGLGETSHADERIVPROC
- Global glGetShaderInfoLog.PFNGLGETSHADERINFOLOGPROC
- Global glGetShaderSource.PFNGLGETSHADERSOURCEPROC
- Global glGetUniformLocation.PFNGLGETUNIFORMLOCATIONPROC
- Global glGetUniformfv.PFNGLGETUNIFORMFVPROC
- Global glGetUniformiv.PFNGLGETUNIFORMIVPROC
- Global glGetVertexAttribdv.PFNGLGETVERTEXATTRIBDVPROC
- Global glGetVertexAttribfv.PFNGLGETVERTEXATTRIBFVPROC
- Global glGetVertexAttribiv.PFNGLGETVERTEXATTRIBIVPROC
- Global glGetVertexAttribPointerv.PFNGLGETVERTEXATTRIBPOINTERVPROC
- Global glIsProgram.PFNGLISPROGRAMPROC
- Global glIsShader.PFNGLISSHADERPROC
- Global glLinkProgram.PFNGLLINKPROGRAMPROC
- Global glShaderSource.PFNGLSHADERSOURCEPROC
- Global glUseProgram.PFNGLUSEPROGRAMPROC
- Global glUniform1f.PFNGLUNIFORM1FPROC
- Global glUniform2f.PFNGLUNIFORM2FPROC
- Global glUniform3f.PFNGLUNIFORM3FPROC
- Global glUniform4f.PFNGLUNIFORM4FPROC
- Global glUniform1i.PFNGLUNIFORM1IPROC
- Global glUniform2i.PFNGLUNIFORM2IPROC
- Global glUniform3i.PFNGLUNIFORM3IPROC
- Global glUniform4i.PFNGLUNIFORM4IPROC
- Global glUniform1fv.PFNGLUNIFORM1FVPROC
- Global glUniform2fv.PFNGLUNIFORM2FVPROC
- Global glUniform3fv.PFNGLUNIFORM3FVPROC
- Global glUniform4fv.PFNGLUNIFORM4FVPROC
- Global glUniform1iv.PFNGLUNIFORM1IVPROC
- Global glUniform2iv.PFNGLUNIFORM2IVPROC
- Global glUniform3iv.PFNGLUNIFORM3IVPROC
- Global glUniform4iv.PFNGLUNIFORM4IVPROC
- Global glUniformMatrix2fv.PFNGLUNIFORMMATRIX2FVPROC
- Global glUniformMatrix3fv.PFNGLUNIFORMMATRIX3FVPROC
- Global glUniformMatrix4fv.PFNGLUNIFORMMATRIX4FVPROC
- Global glValidateProgram.PFNGLVALIDATEPROGRAMPROC
- Global glVertexAttrib1d.PFNGLVERTEXATTRIB1DPROC
- Global glVertexAttrib1dv.PFNGLVERTEXATTRIB1DVPROC
- Global glVertexAttrib1f.PFNGLVERTEXATTRIB1FPROC
- Global glVertexAttrib1fv.PFNGLVERTEXATTRIB1FVPROC
- Global glVertexAttrib1s.PFNGLVERTEXATTRIB1SPROC
- Global glVertexAttrib1sv.PFNGLVERTEXATTRIB1SVPROC
- Global glVertexAttrib2d.PFNGLVERTEXATTRIB2DPROC
- Global glVertexAttrib2dv.PFNGLVERTEXATTRIB2DVPROC
- Global glVertexAttrib2f.PFNGLVERTEXATTRIB2FPROC
- Global glVertexAttrib2fv.PFNGLVERTEXATTRIB2FVPROC
- Global glVertexAttrib2s.PFNGLVERTEXATTRIB2SPROC
- Global glVertexAttrib2sv.PFNGLVERTEXATTRIB2SVPROC
- Global glVertexAttrib3d.PFNGLVERTEXATTRIB3DPROC
- Global glVertexAttrib3dv.PFNGLVERTEXATTRIB3DVPROC
- Global glVertexAttrib3f.PFNGLVERTEXATTRIB3FPROC
- Global glVertexAttrib3fv.PFNGLVERTEXATTRIB3FVPROC
- Global glVertexAttrib3s.PFNGLVERTEXATTRIB3SPROC
- Global glVertexAttrib3sv.PFNGLVERTEXATTRIB3SVPROC
- Global glVertexAttrib4Nbv.PFNGLVERTEXATTRIB4NBVPROC
- Global glVertexAttrib4Niv.PFNGLVERTEXATTRIB4NIVPROC
- Global glVertexAttrib4Nsv.PFNGLVERTEXATTRIB4NSVPROC
- Global glVertexAttrib4Nub.PFNGLVERTEXATTRIB4NUBPROC
- Global glVertexAttrib4Nubv.PFNGLVERTEXATTRIB4NUBVPROC
- Global glVertexAttrib4Nuiv.PFNGLVERTEXATTRIB4NUIVPROC
- Global glVertexAttrib4Nusv.PFNGLVERTEXATTRIB4NUSVPROC
- Global glVertexAttrib4bv.PFNGLVERTEXATTRIB4BVPROC
- Global glVertexAttrib4d.PFNGLVERTEXATTRIB4DPROC
- Global glVertexAttrib4dv.PFNGLVERTEXATTRIB4DVPROC
- Global glVertexAttrib4f.PFNGLVERTEXATTRIB4FPROC
- Global glVertexAttrib4fv.PFNGLVERTEXATTRIB4FVPROC
- Global glVertexAttrib4iv.PFNGLVERTEXATTRIB4IVPROC
- Global glVertexAttrib4s.PFNGLVERTEXATTRIB4SPROC
- Global glVertexAttrib4sv.PFNGLVERTEXATTRIB4SVPROC
- Global glVertexAttrib4ubv.PFNGLVERTEXATTRIB4UBVPROC
- Global glVertexAttrib4uiv.PFNGLVERTEXATTRIB4UIVPROC
- Global glVertexAttrib4usv.PFNGLVERTEXATTRIB4USVPROC
- Global glVertexAttribPointer.PFNGLVERTEXATTRIBPOINTERPROC
- CompilerEndIf
- ;- OpenGL 2.1
- CompilerIf #ENABLEGL2_1
- Prototype PFNGLUNIFORMMATRIX2X3FVPROC ( location.i, count.i, transpose.b, *value.f )
- Prototype PFNGLUNIFORMMATRIX3X2FVPROC ( location.i, count.i, transpose.b, *value.f )
- Prototype PFNGLUNIFORMMATRIX2X4FVPROC ( location.i, count.i, transpose.b, *value.f )
- Prototype PFNGLUNIFORMMATRIX4X2FVPROC ( location.i, count.i, transpose.b, *value.f )
- Prototype PFNGLUNIFORMMATRIX3X4FVPROC ( location.i, count.i, transpose.b, *value.f )
- Prototype PFNGLUNIFORMMATRIX4X3FVPROC ( location.i, count.i, transpose.b, *value.f )
- Global glUniformMatrix2x3fv.PFNGLUNIFORMMATRIX2X3FVPROC
- Global glUniformMatrix3x2fv.PFNGLUNIFORMMATRIX3X2FVPROC
- Global glUniformMatrix2x4fv.PFNGLUNIFORMMATRIX2X4FVPROC
- Global glUniformMatrix4x2fv.PFNGLUNIFORMMATRIX4X2FVPROC
- Global glUniformMatrix3x4fv.PFNGLUNIFORMMATRIX3X4FVPROC
- Global glUniformMatrix4x3fv.PFNGLUNIFORMMATRIX4X3FVPROC
- CompilerEndIf
- ;- OpenGL 3.0
- CompilerIf #ENABLEGL3_0
- Prototype PFNGLCOLORMASKIPROC ( index.i, r.b, g.b, b.b, a.b )
- Prototype PFNGLGETBOOLEANI_VPROC ( target.i, index.i, *data_.b )
- Prototype PFNGLGETINTEGERI_VPROC ( target.i, index.i, *data_.i )
- Prototype PFNGLENABLEIPROC ( target.i, index.i )
- Prototype PFNGLDISABLEIPROC ( target.i, index.i )
- Prototype.b PFNGLISENABLEDIPROC ( target.i, index.i )
- Prototype PFNGLBEGINTRANSFORMFEEDBACKPROC ( primitiveMode.l )
- Prototype PFNGLENDTRANSFORMFEEDBACKPROC ( )
- Prototype PFNGLBINDBUFFERRANGEPROC ( target.i, index.i, buffer.i, offset.i, size.i )
- Prototype PFNGLBINDBUFFERBASEPROC ( target.i, index.i, buffer.i )
- Prototype PFNGLTRANSFORMFEEDBACKVARYINGSPROC ( program.i, count.i, *varyings.s, bufferMode.l )
- Prototype PFNGLGETTRANSFORMFEEDBACKVARYINGPROC ( program.i, index.i, bufSize.i, *length.i, *size.i, *type.l, *name.s )
- Prototype PFNGLCLAMPCOLORPROC ( target.i, clamp.l )
- Prototype PFNGLBEGINCONDITIONALRENDERPROC ( id.i, mode.l )
- Prototype PFNGLENDCONDITIONALRENDERPROC ( )
- Prototype PFNGLVERTEXATTRIBIPOINTERPROC ( index.i, size.i, type.i, stride.i, *pointer )
- Prototype PFNGLGETVERTEXATTRIBIIVPROC ( index.i, pname.l, *params.i )
- Prototype PFNGLGETVERTEXATTRIBIUIVPROC ( index.i, pname.l, *params.i )
- Prototype PFNGLVERTEXATTRIBI1IPROC ( index.i, x.i )
- Prototype PFNGLVERTEXATTRIBI2IPROC ( index.i, x.i, y.i )
- Prototype PFNGLVERTEXATTRIBI3IPROC ( index.i, x.i, y.i, z.i )
- Prototype PFNGLVERTEXATTRIBI4IPROC ( index.i, x.i, y.i, z.i, w.i )
- Prototype PFNGLVERTEXATTRIBI1UIPROC ( index.i, x.i )
- Prototype PFNGLVERTEXATTRIBI2UIPROC ( index.i, x.i, y.i )
- Prototype PFNGLVERTEXATTRIBI3UIPROC ( index.i, x.i, y.i, z.i )
- Prototype PFNGLVERTEXATTRIBI4UIPROC ( index.i, x.i, y.i, z.i, w.i )
- Prototype PFNGLVERTEXATTRIBI1IVPROC ( index.i, *v.i )
- Prototype PFNGLVERTEXATTRIBI2IVPROC ( index.i, *v.i )
- Prototype PFNGLVERTEXATTRIBI3IVPROC ( index.i, *v.i )
- Prototype PFNGLVERTEXATTRIBI4IVPROC ( index.i, *v.i )
- Prototype PFNGLVERTEXATTRIBI1UIVPROC ( index.i, *v.i )
- Prototype PFNGLVERTEXATTRIBI2UIVPROC ( index.i, *v.i )
- Prototype PFNGLVERTEXATTRIBI3UIVPROC ( index.i, *v.i )
- Prototype PFNGLVERTEXATTRIBI4UIVPROC ( index.i, *v.i )
- Prototype PFNGLVERTEXATTRIBI4BVPROC ( index.i, *v.b )
- Prototype PFNGLVERTEXATTRIBI4SVPROC ( index.i, *v.w )
- Prototype PFNGLVERTEXATTRIBI4UBVPROC ( index.i, *v.b )
- Prototype PFNGLVERTEXATTRIBI4USVPROC ( index.i, *v.w )
- Prototype PFNGLGETUNIFORMUIVPROC ( program.i, location.i, *params.i )
- Prototype PFNGLBINDFRAGDATALOCATIONPROC ( program.i, color.i, *name.s )
- Prototype.i PFNGLGETFRAGDATALOCATIONPROC ( program.i, *name.s )
- Prototype PFNGLUNIFORM1UIPROC ( location.i, v0.i )
- Prototype PFNGLUNIFORM2UIPROC ( location.i, v0.i, v1.i )
- Prototype PFNGLUNIFORM3UIPROC ( location.i, v0.i, v1.i, v2.i )
- Prototype PFNGLUNIFORM4UIPROC ( location.i, v0.i, v1.i, v2.i, v3.i )
- Prototype PFNGLUNIFORM1UIVPROC ( location.i, count.i, *value.i )
- Prototype PFNGLUNIFORM2UIVPROC ( location.i, count.i, *value.i )
- Prototype PFNGLUNIFORM3UIVPROC ( location.i, count.i, *value.i )
- Prototype PFNGLUNIFORM4UIVPROC ( location.i, count.i, *value.i )
- Prototype PFNGLTEXPARAMETERIIVPROC ( target.i, pname.l, *params.i )
- Prototype PFNGLTEXPARAMETERIUIVPROC ( target.i, pname.l, *params.i )
- Prototype PFNGLGETTEXPARAMETERIIVPROC ( target.i, pname.l, *params.i )
- Prototype PFNGLGETTEXPARAMETERIUIVPROC ( target.i, pname.l, *params.i )
- Prototype PFNGLCLEARBUFFERIVPROC ( buffer.l, drawbuffer.i, *value.i )
- Prototype PFNGLCLEARBUFFERUIVPROC ( buffer.l, drawbuffer.i, *value.i )
- Prototype PFNGLCLEARBUFFERFVPROC ( buffer.l, drawbuffer.i, *value.f )
- Prototype PFNGLCLEARBUFFERFIPROC ( buffer.l, drawbuffer.i, depth.f, stencil.i )
- Prototype.l PFNGLGETSTRINGIPROC ( name.l, index.i )
- Global glColorMaski.PFNGLCOLORMASKIPROC
- Global glGetBooleani_v.PFNGLGETBOOLEANI_VPROC
- Global glGetIntegeri_v.PFNGLGETINTEGERI_VPROC
- Global glEnablei.PFNGLENABLEIPROC
- Global glDisablei.PFNGLDISABLEIPROC
- Global glIsEnabledi.PFNGLISENABLEDIPROC
- Global glBeginTransformFeedback.PFNGLBEGINTRANSFORMFEEDBACKPROC
- Global glEndTransformFeedback.PFNGLENDTRANSFORMFEEDBACKPROC
- Global glBindBufferRange.PFNGLBINDBUFFERRANGEPROC
- Global glBindBufferBase.PFNGLBINDBUFFERBASEPROC
- Global glTransformFeedbackVaryings.PFNGLTRANSFORMFEEDBACKVARYINGSPROC
- Global glGetTransformFeedbackVarying.PFNGLGETTRANSFORMFEEDBACKVARYINGPROC
- Global glClampColor.PFNGLCLAMPCOLORPROC
- Global glBeginConditionalRender.PFNGLBEGINCONDITIONALRENDERPROC
- Global glEndConditionalRender.PFNGLENDCONDITIONALRENDERPROC
- Global glVertexAttribIPointer.PFNGLVERTEXATTRIBIPOINTERPROC
- Global glGetVertexAttribIiv.PFNGLGETVERTEXATTRIBIIVPROC
- Global glGetVertexAttribIuiv.PFNGLGETVERTEXATTRIBIUIVPROC
- Global glVertexAttribI1i.PFNGLVERTEXATTRIBI1IPROC
- Global glVertexAttribI2i.PFNGLVERTEXATTRIBI2IPROC
- Global glVertexAttribI3i.PFNGLVERTEXATTRIBI3IPROC
- Global glVertexAttribI4i.PFNGLVERTEXATTRIBI4IPROC
- Global glVertexAttribI1ui.PFNGLVERTEXATTRIBI1UIPROC
- Global glVertexAttribI2ui.PFNGLVERTEXATTRIBI2UIPROC
- Global glVertexAttribI3ui.PFNGLVERTEXATTRIBI3UIPROC
- Global glVertexAttribI4ui.PFNGLVERTEXATTRIBI4UIPROC
- Global glVertexAttribI1iv.PFNGLVERTEXATTRIBI1IVPROC
- Global glVertexAttribI2iv.PFNGLVERTEXATTRIBI2IVPROC
- Global glVertexAttribI3iv.PFNGLVERTEXATTRIBI3IVPROC
- Global glVertexAttribI4iv.PFNGLVERTEXATTRIBI4IVPROC
- Global glVertexAttribI1uiv.PFNGLVERTEXATTRIBI1UIVPROC
- Global glVertexAttribI2uiv.PFNGLVERTEXATTRIBI2UIVPROC
- Global glVertexAttribI3uiv.PFNGLVERTEXATTRIBI3UIVPROC
- Global glVertexAttribI4uiv.PFNGLVERTEXATTRIBI4UIVPROC
- Global glVertexAttribI4bv.PFNGLVERTEXATTRIBI4BVPROC
- Global glVertexAttribI4sv.PFNGLVERTEXATTRIBI4SVPROC
- Global glVertexAttribI4ubv.PFNGLVERTEXATTRIBI4UBVPROC
- Global glVertexAttribI4usv.PFNGLVERTEXATTRIBI4USVPROC
- Global glGetUniformuiv.PFNGLGETUNIFORMUIVPROC
- Global glBindFragDataLocation.PFNGLBINDFRAGDATALOCATIONPROC
- Global glGetFragDataLocation.PFNGLGETFRAGDATALOCATIONPROC
- Global glUniform1ui.PFNGLUNIFORM1UIPROC
- Global glUniform2ui.PFNGLUNIFORM2UIPROC
- Global glUniform3ui.PFNGLUNIFORM3UIPROC
- Global glUniform4ui.PFNGLUNIFORM4UIPROC
- Global glUniform1uiv.PFNGLUNIFORM1UIVPROC
- Global glUniform2uiv.PFNGLUNIFORM2UIVPROC
- Global glUniform3uiv.PFNGLUNIFORM3UIVPROC
- Global glUniform4uiv.PFNGLUNIFORM4UIVPROC
- Global glTexParameterIiv.PFNGLTEXPARAMETERIIVPROC
- Global glTexParameterIuiv.PFNGLTEXPARAMETERIUIVPROC
- Global glGetTexParameterIiv.PFNGLGETTEXPARAMETERIIVPROC
- Global glGetTexParameterIuiv.PFNGLGETTEXPARAMETERIUIVPROC
- Global glClearBufferiv.PFNGLCLEARBUFFERIVPROC
- Global glClearBufferuiv.PFNGLCLEARBUFFERUIVPROC
- Global glClearBufferfv.PFNGLCLEARBUFFERFVPROC
- Global glClearBufferfi.PFNGLCLEARBUFFERFIPROC
- Global glGetStringi_.PFNGLGETSTRINGIPROC
- CompilerEndIf
- ;- OpenGL 3.1
- CompilerIf #ENABLEGL3_1
- Prototype PFNGLDRAWARRAYSINSTANCEDPROC ( mode.l, first.i, count.i, primcount.i )
- Prototype PFNGLDRAWELEMENTSINSTANCEDPROC ( mode.l, count.i, type.l, *indices, primcount.i )
- Prototype PFNGLTEXBUFFERPROC ( target.l, internalformat.l, buffer.i )
- Prototype PFNGLPRIMITIVERESTARTINDEXPROC ( index.i )
- Global glDrawArraysInstanced.PFNGLDRAWARRAYSINSTANCEDPROC
- Global glDrawElementsInstanced.PFNGLDRAWELEMENTSINSTANCEDPROC
- Global glTexBuffer.PFNGLTEXBUFFERPROC
- Global glPrimitiveRestartIndex.PFNGLPRIMITIVERESTARTINDEXPROC
- CompilerEndIf
- ;- OpenGL 3.2
- CompilerIf #ENABLEGL3_2
- Prototype PFNGLGETINTEGER64I_VPROC ( target.l, index.i, *data_.q )
- Prototype PFNGLGETBUFFERPARAMETERI64VPROC ( target.l, pname.l, *params.q )
- Prototype PFNGLFRAMEBUFFERTEXTUREPROC ( target.l, attachment.l, texture.i, level.i )
- Global glGetInteger64i_v.PFNGLGETINTEGER64I_VPROC
- Global glGetBufferParameteri64v.PFNGLGETBUFFERPARAMETERI64VPROC
- Global glFramebufferTexture.PFNGLFRAMEBUFFERTEXTUREPROC
- CompilerEndIf
- ;- OpenGL 3.3
- CompilerIf #ENABLEGL3_2
- Prototype PFNGLVERTEXATTRIBDIVISORPROC (index.i, divisor.i)
- Global glVertexAttribDivisor.PFNGLVERTEXATTRIBDIVISORPROC
- CompilerEndIf
- ;- OpenGL Misc
- CompilerIf #ENABLEGLMISC
- Prototype.b PFNGLISRENDERBUFFERPROC ( renderbuffer.i )
- Prototype PFNGLBINDRENDERBUFFERPROC ( target.l, renderbuffer.i )
- Prototype PFNGLDELETERENDERBUFFERSPROC ( n.i, *renderbuffers.i )
- Prototype PFNGLGENRENDERBUFFERSPROC ( n.i, *renderbuffers.i )
- Prototype PFNGLRENDERBUFFERSTORAGEPROC ( target.l, internalformat.l, width.i, height.i )
- Prototype PFNGLGETRENDERBUFFERPARAMETERIVPROC ( target.l, pname.l, *params.i )
- Prototype.b PFNGLISFRAMEBUFFERPROC ( framebuffer.i )
- Prototype PFNGLBINDFRAMEBUFFERPROC ( target.l, framebuffer.i )
- Prototype PFNGLDELETEFRAMEBUFFERSPROC ( n.i, *framebuffers.i )
- Prototype PFNGLGENFRAMEBUFFERSPROC ( n.i, *framebuffers.i )
- Prototype.l PFNGLCHECKFRAMEBUFFERSTATUSPROC ( target.l )
- Prototype PFNGLFRAMEBUFFERTEXTURE1DPROC ( target.l, attachment.l, textarget.l, texture.i, level.i )
- Prototype PFNGLFRAMEBUFFERTEXTURE2DPROC ( target.l, attachment.l, textarget.l, texture.i, level.i )
- Prototype PFNGLFRAMEBUFFERTEXTURE3DPROC ( target.l, attachment.l, textarget.l, texture.i, level.i, zoffset.i )
- Prototype PFNGLFRAMEBUFFERRENDERBUFFERPROC ( target.l, attachment.l, renderbuffertarget.l, renderbuffer.i )
- Prototype PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC ( target.l, attachment.l, pname.l, *params.i )
- Prototype PFNGLGENERATEMIPMAPPROC ( target.l )
- Prototype PFNGLBLITFRAMEBUFFERPROC ( srcX0.i, srcY0.i, srcX1.i, srcY1.i, dstX0.i, dstY0.i, dstX1.i, dstY1.i, mask.i, filter.l )
- Prototype PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC ( target.l, samples.i, internalformat.l, width.i, height.i )
- Prototype PFNGLFRAMEBUFFERTEXTURELAYERPROC ( target.l, attachment.l, texture.i, level.i, layer.i )
- Global glIsRenderbuffer.PFNGLISRENDERBUFFERPROC
- Global glBindRenderbuffer.PFNGLBINDRENDERBUFFERPROC
- Global glDeleteRenderbuffers.PFNGLDELETERENDERBUFFERSPROC
- Global glGenRenderbuffers.PFNGLGENRENDERBUFFERSPROC
- Global glRenderbufferStorage.PFNGLRENDERBUFFERSTORAGEPROC
- Global glGetRenderbufferParameteriv.PFNGLGETRENDERBUFFERPARAMETERIVPROC
- Global glIsFramebuffer.PFNGLISFRAMEBUFFERPROC
- Global glBindFramebuffer.PFNGLBINDFRAMEBUFFERPROC
- Global glDeleteFramebuffers.PFNGLDELETEFRAMEBUFFERSPROC
- Global glGenFramebuffers.PFNGLGENFRAMEBUFFERSPROC
- Global glCheckFramebufferStatus.PFNGLCHECKFRAMEBUFFERSTATUSPROC
- Global glFramebufferTexture1D.PFNGLFRAMEBUFFERTEXTURE1DPROC
- Global glFramebufferTexture2D.PFNGLFRAMEBUFFERTEXTURE2DPROC
- Global glFramebufferTexture3D.PFNGLFRAMEBUFFERTEXTURE3DPROC
- Global glFramebufferRenderbuffer.PFNGLFRAMEBUFFERRENDERBUFFERPROC
- Global glGetFramebufferAttachmentParameteriv.PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC
- Global glGenerateMipmap.PFNGLGENERATEMIPMAPPROC
- Global glBlitFramebuffer.PFNGLBLITFRAMEBUFFERPROC
- Global glRenderbufferStorageMultisample.PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC
- Global glFramebufferTextureLayer.PFNGLFRAMEBUFFERTEXTURELAYERPROC
- CompilerEndIf
- Prototype.i wglGetProcAddressPROTO ( funcname.s )
- Global wglGetProcAddress.wglGetProcAddressPROTO
- Macro setGLEXT(var, extname)
- ;var = glfwGetProcAddress(extname)
- var = wglGetProcAddress(extname)
- If Not var
- LogTXT(extname+": Not found !!!")
- Else
- LogTXT(extname+": 0x"+Hex(var))
- EndIf
- EndMacro
- Macro setGLCORE(var, extname)
- var = GetFunction(0,extname)
- If Not var
- LogTXT(extname+": Not found !!!")
- Else
- LogTXT(extname+": 0x"+Hex(var))
- EndIf
- EndMacro
- Macro glGetString(name)
- PeekS( glGetString_(name) )
- EndMacro
- Macro glGetStringi(name, index)
- PeekS( glGetStringi_(name, index) )
- EndMacro
- Macro glClearScreen(Red, Green, Blue)
- glClearColor(Red, Green, Blue, 1.0)
- glClear(#GL_COLOR_BUFFER_BIT | #GL_DEPTH_BUFFER_BIT)
- EndMacro
- #LOG_FILE = "Log.txt"
- ; Write to log file
- Procedure LogTXT(string.s)
- Define hFile.i
- hFile.i = OpenFile(#PB_Any, #LOG_FILE)
- FileSeek(hFile, Lof(hFile))
- WriteStringN(hFile, string)
- CloseFile(hFile)
- EndProcedure
- ; must be call after StartGLFW()
- Procedure initGLFunctions()
- traceFunction("initGLFunctions()")
- LogTXT("--- Loading OpenGL Functions: ")
- Define libhandle.i = OpenLibrary(0,"opengl32.dll")
- wglGetProcAddress = GetFunction(0, "wglGetProcAddress")
- ; *++++ OPENGL 1.0 ++++*
- setGLCORE( glCullFace, "glCullFace" )
- setGLCORE( glFrontFace, "glFrontFace" )
- setGLCORE( glHint, "glHint" )
- setGLCORE( glLineWidth, "glLineWidth" )
- setGLCORE( glPointSize, "glPointSize" )
- setGLCORE( glPolygonMode, "glPolygonMode" )
- setGLCORE( glScissor, "glScissor" )
- setGLCORE( glTexParameterf, "glTexParameterf" )
- setGLCORE( glTexParameterfv, "glTexParameterfv" )
- setGLCORE( glTexParameteri, "glTexParameteri" )
- setGLCORE( glTexParameteriv, "glTexParameteriv" )
- setGLCORE( glTexImage1D, "glTexImage1D" )
- setGLCORE( glTexImage2D, "glTexImage2D" )
- setGLCORE( glDrawBuffer, "glDrawBuffer" )
- setGLCORE( glClear, "glClear" )
- setGLCORE( glClearColor, "glClearColor" )
- setGLCORE( glClearStencil, "glClearStencil" )
- setGLCORE( glClearDepth, "glClearDepth" )
- setGLCORE( glStencilMask, "glStencilMask" )
- setGLCORE( glColorMask, "glColorMask" )
- setGLCORE( glDepthMask, "glDepthMask" )
- setGLCORE( glDisable, "glDisable" )
- setGLCORE( glEnable, "glEnable" )
- setGLCORE( glFinish, "glFinish" )
- setGLCORE( glFlush, "glFlush" )
- setGLCORE( glBlendFunc, "glBlendFunc" )
- setGLCORE( glLogicOp, "glLogicOp" )
- setGLCORE( glStencilFunc, "glStencilFunc" )
- setGLCORE( glStencilOp, "glStencilOp" )
- setGLCORE( glDepthFunc, "glDepthFunc" )
- setGLCORE( glPixelStoref, "glPixelStoref" )
- setGLCORE( glPixelStorei, "glPixelStorei" )
- setGLCORE( glReadBuffer, "glReadBuffer" )
- setGLCORE( glReadPixels, "glReadPixels" )
- setGLCORE( glGetBooleanv, "glGetBooleanv" )
- setGLCORE( glGetDoublev, "glGetDoublev" )
- setGLCORE( glGetError, "glGetError" )
- setGLCORE( glGetFloatv, "glGetFloatv" )
- setGLCORE( glGetIntegerv, "glGetIntegerv" )
- setGLCORE( glGetString_, "glGetString" )
- setGLCORE( glGetTexImage, "glGetTexImage" )
- setGLCORE( glGetTexParameterfv, "glGetTexParameterfv" )
- setGLCORE( glGetTexParameteriv, "glGetTexParameteriv" )
- setGLCORE( glGetTexLevelParameterfv, "glGetTexLevelParameterfv" )
- setGLCORE( glGetTexLevelParameteriv, "glGetTexLevelParameteriv" )
- setGLCORE( glIsEnabled, "glIsEnabled" )
- setGLCORE( glDepthRange, "glDepthRange" )
- setGLCORE( glViewport, "glViewport" )
- ; *++++ OPENGL 1.1 ++++*
- setGLCORE( glDrawArrays, "glDrawArrays" )
- setGLCORE( glDrawElements, "glDrawElements" )
- setGLCORE( glGetPointerv, "glGetPointerv" )
- setGLCORE( glPolygonOffset, "glPolygonOffset" )
- setGLCORE( glCopyTexImage1D, "glCopyTexImage1D" )
- setGLCORE( glCopyTexImage2D, "glCopyTexImage2D" )
- setGLCORE( glCopyTexSubImage1D, "glCopyTexSubImage1D" )
- setGLCORE( glCopyTexSubImage2D, "glCopyTexSubImage2D" )
- setGLCORE( glTexSubImage1D, "glTexSubImage1D" )
- setGLCORE( glTexSubImage2D, "glTexSubImage2D" )
- setGLCORE( glBindTexture, "glBindTexture" )
- setGLCORE( glDeleteTextures, "glDeleteTextures" )
- setGLCORE( glGenTextures, "glGenTextures" )
- setGLCORE( glIsTexture, "glIsTexture" )
- ; *++++ OPENGL 1.2 ++++*
- CompilerIf #ENABLEGL1_2
- setGLEXT( glBlendColor, "glBlendColor" )
- setGLEXT( glBlendEquation, "glBlendEquation" )
- setGLEXT( glDrawRangeElements, "glDrawRangeElements" )
- setGLEXT( glTexImage3D, "glTexImage3D" )
- setGLEXT( glTexSubImage3D, "glTexSubImage3D" )
- setGLEXT( glCopyTexSubImage3D, "glCopyTexSubImage3D" )
- CompilerEndIf
- ; *++++ OPENGL 1.3 ++++*
- CompilerIf #ENABLEGL1_3
- setGLEXT( glActiveTexture, "glActiveTexture" )
- setGLEXT( glSampleCoverage, "glSampleCoverage" )
- setGLEXT( glCompressedTexImage3D, "glCompressedTexImage3D" )
- setGLEXT( glCompressedTexImage2D, "glCompressedTexImage2D" )
- setGLEXT( glCompressedTexImage1D, "glCompressedTexImage1D" )
- setGLEXT( glCompressedTexSubImage3D, "glCompressedTexSubImage3D" )
- setGLEXT( glCompressedTexSubImage2D, "glCompressedTexSubImage2D" )
- setGLEXT( glCompressedTexSubImage1D, "glCompressedTexSubImage1D" )
- setGLEXT( glGetCompressedTexImage, "glGetCompressedTexImage" )
- CompilerEndIf
- ; *++++ OPENGL 1.4 ++++*
- CompilerIf #ENABLEGL1_4
- setGLEXT( glBlendFuncSeparate, "glBlendFuncSeparate" )
- setGLEXT( glMultiDrawArrays, "glMultiDrawArrays" )
- setGLEXT( glMultiDrawElements, "glMultiDrawElements" )
- setGLEXT( glPointParameterf, "glPointParameterf" )
- setGLEXT( glPointParameterfv, "glPointParameterfv" )
- setGLEXT( glPointParameteri, "glPointParameteri" )
- setGLEXT( glPointParameteriv, "glPointParameteriv" )
- CompilerEndIf
- ; *++++ OPENGL 1.5 ++++*
- CompilerIf #ENABLEGL1_5
- setGLEXT( glGenQueries, "glGenQueries" )
- setGLEXT( glDeleteQueries, "glDeleteQueries" )
- setGLEXT( glIsQuery, "glIsQuery" )
- setGLEXT( glBeginQuery, "glBeginQuery" )
- setGLEXT( glEndQuery, "glEndQuery" )
- setGLEXT( glGetQueryiv, "glGetQueryiv" )
- setGLEXT( glGetQueryObjectiv, "glGetQueryObjectiv" )
- setGLEXT( glGetQueryObjectuiv, "glGetQueryObjectuiv" )
- setGLEXT( glBindBuffer, "glBindBuffer" )
- setGLEXT( glDeleteBuffers, "glDeleteBuffers" )
- setGLEXT( glGenBuffers, "glGenBuffers" )
- setGLEXT( glIsBuffer, "glIsBuffer" )
- setGLEXT( glBufferData, "glBufferData" )
- setGLEXT( glBufferSubData, "glBufferSubData" )
- setGLEXT( glMapBuffer, "glMapBuffer" )
- setGLEXT( glUnmapBuffer, "glUnmapBuffer" )
- setGLEXT( glGetBufferParameteriv, "glGetBufferParameteriv" )
- setGLEXT( glGetBufferPointerv, "glGetBufferPointerv" )
- CompilerEndIf
- ; *++++ OPENGL 2.0 ++++*
- CompilerIf #ENABLEGL2_0
- setGLEXT( glBlendEquationSeparate, "glBlendEquationSeparate" )
- setGLEXT( glDrawBuffers, "glDrawBuffers" )
- setGLEXT( glStencilOpSeparate, "glStencilOpSeparate" )
- setGLEXT( glStencilFuncSeparate, "glStencilFuncSeparate" )
- setGLEXT( glStencilMaskSeparate, "glStencilMaskSeparate" )
- setGLEXT( glAttachShader, "glAttachShader" )
- setGLEXT( glBindAttribLocation, "glBindAttribLocation" )
- setGLEXT( glCompileShader, "glCompileShader" )
- setGLEXT( glCreateProgram, "glCreateProgram" )
- setGLEXT( glCreateShader, "glCreateShader" )
- setGLEXT( glDeleteProgram, "glDeleteProgram" )
- setGLEXT( glDeleteShader, "glDeleteShader" )
- setGLEXT( glDetachShader, "glDetachShader" )
- setGLEXT( glDisableVertexAttribArray, "glDisableVertexAttribArray" )
- setGLEXT( glEnableVertexAttribArray, "glEnableVertexAttribArray" )
- setGLEXT( glGetActiveAttrib, "glGetActiveAttrib" )
- setGLEXT( glGetActiveUniform, "glGetActiveUniform" )
- setGLEXT( glGetAttachedShaders, "glGetAttachedShaders" )
- setGLEXT( glGetAttribLocation, "glGetAttribLocation" )
- setGLEXT( glGetProgramiv, "glGetProgramiv" )
- setGLEXT( glGetProgramInfoLog, "glGetProgramInfoLog" )
- setGLEXT( glGetShaderiv, "glGetShaderiv" )
- setGLEXT( glGetShaderInfoLog, "glGetShaderInfoLog" )
- setGLEXT( glGetShaderSource, "glGetShaderSource" )
- setGLEXT( glGetUniformLocation, "glGetUniformLocation" )
- setGLEXT( glGetUniformfv, "glGetUniformfv" )
- setGLEXT( glGetUniformiv, "glGetUniformiv" )
- setGLEXT( glGetVertexAttribdv, "glGetVertexAttribdv" )
- setGLEXT( glGetVertexAttribfv, "glGetVertexAttribfv" )
- setGLEXT( glGetVertexAttribiv, "glGetVertexAttribiv" )
- setGLEXT( glGetVertexAttribPointerv, "glGetVertexAttribPointerv" )
- setGLEXT( glIsProgram, "glIsProgram" )
- setGLEXT( glIsShader, "glIsShader" )
- setGLEXT( glLinkProgram, "glLinkProgram" )
- setGLEXT( glShaderSource, "glShaderSource" )
- setGLEXT( glUseProgram, "glUseProgram" )
- setGLEXT( glUniform1f, "glUniform1f" )
- setGLEXT( glUniform2f, "glUniform2f" )
- setGLEXT( glUniform3f, "glUniform3f" )
- setGLEXT( glUniform4f, "glUniform4f" )
- setGLEXT( glUniform1i, "glUniform1i" )
- setGLEXT( glUniform2i, "glUniform2i" )
- setGLEXT( glUniform3i, "glUniform3i" )
- setGLEXT( glUniform4i, "glUniform4i" )
- setGLEXT( glUniform1fv, "glUniform1fv" )
- setGLEXT( glUniform2fv, "glUniform2fv" )
- setGLEXT( glUniform3fv, "glUniform3fv" )
- setGLEXT( glUniform4fv, "glUniform4fv" )
- setGLEXT( glUniform1iv, "glUniform1iv" )
- setGLEXT( glUniform2iv, "glUniform2iv" )
- setGLEXT( glUniform3iv, "glUniform3iv" )
- setGLEXT( glUniform4iv, "glUniform4iv" )
- setGLEXT( glUniformMatrix2fv, "glUniformMatrix2fv" )
- setGLEXT( glUniformMatrix3fv, "glUniformMatrix3fv" )
- setGLEXT( glUniformMatrix4fv, "glUniformMatrix4fv" )
- setGLEXT( glValidateProgram, "glValidateProgram" )
- setGLEXT( glVertexAttrib1d, "glVertexAttrib1d" )
- setGLEXT( glVertexAttrib1dv, "glVertexAttrib1dv" )
- setGLEXT( glVertexAttrib1f, "glVertexAttrib1f" )
- setGLEXT( glVertexAttrib1fv, "glVertexAttrib1fv" )
- setGLEXT( glVertexAttrib1s, "glVertexAttrib1s" )
- setGLEXT( glVertexAttrib1sv, "glVertexAttrib1sv" )
- setGLEXT( glVertexAttrib2d, "glVertexAttrib2d" )
- setGLEXT( glVertexAttrib2dv, "glVertexAttrib2dv" )
- setGLEXT( glVertexAttrib2f, "glVertexAttrib2f" )
- setGLEXT( glVertexAttrib2fv, "glVertexAttrib2fv" )
- setGLEXT( glVertexAttrib2s, "glVertexAttrib2s" )
- setGLEXT( glVertexAttrib2sv, "glVertexAttrib2sv" )
- setGLEXT( glVertexAttrib3d, "glVertexAttrib3d" )
- setGLEXT( glVertexAttrib3dv, "glVertexAttrib3dv" )
- setGLEXT( glVertexAttrib3f, "glVertexAttrib3f" )
- setGLEXT( glVertexAttrib3fv, "glVertexAttrib3fv" )
- setGLEXT( glVertexAttrib3s, "glVertexAttrib3s" )
- setGLEXT( glVertexAttrib3sv, "glVertexAttrib3sv" )
- setGLEXT( glVertexAttrib4Nbv, "glVertexAttrib4Nbv" )
- setGLEXT( glVertexAttrib4Niv, "glVertexAttrib4Niv" )
- setGLEXT( glVertexAttrib4Nsv, "glVertexAttrib4Nsv" )
- setGLEXT( glVertexAttrib4Nub, "glVertexAttrib4Nub" )
- setGLEXT( glVertexAttrib4Nubv, "glVertexAttrib4Nubv" )
- setGLEXT( glVertexAttrib4Nuiv, "glVertexAttrib4Nuiv" )
- setGLEXT( glVertexAttrib4Nusv, "glVertexAttrib4Nusv" )
- setGLEXT( glVertexAttrib4bv, "glVertexAttrib4bv" )
- setGLEXT( glVertexAttrib4d, "glVertexAttrib4d" )
- setGLEXT( glVertexAttrib4dv, "glVertexAttrib4dv" )
- setGLEXT( glVertexAttrib4f, "glVertexAttrib4f" )
- setGLEXT( glVertexAttrib4fv, "glVertexAttrib4fv" )
- setGLEXT( glVertexAttrib4iv, "glVertexAttrib4iv" )
- setGLEXT( glVertexAttrib4s, "glVertexAttrib4s" )
- setGLEXT( glVertexAttrib4sv, "glVertexAttrib4sv" )
- setGLEXT( glVertexAttrib4ubv, "glVertexAttrib4ubv" )
- setGLEXT( glVertexAttrib4uiv, "glVertexAttrib4Nusv" )
- setGLEXT( glVertexAttrib4usv, "glVertexAttrib4usv" )
- setGLEXT( glVertexAttribPointer, "glVertexAttribPointer" )
- CompilerEndIf
- ; *++++ OPENGL 2.1 ++++*
- CompilerIf #ENABLEGL2_1
- setGLEXT( glUniformMatrix2x3fv, "glUniformMatrix2x3fv" )
- setGLEXT( glUniformMatrix3x2fv, "glUniformMatrix3x2fv" )
- setGLEXT( glUniformMatrix2x4fv, "glUniformMatrix2x4fv" )
- setGLEXT( glUniformMatrix4x2fv, "glUniformMatrix4x2fv" )
- setGLEXT( glUniformMatrix3x4fv, "glUniformMatrix3x4fv" )
- setGLEXT( glUniformMatrix4x3fv, "glUniformMatrix4x3fv" )
- CompilerEndIf
- ; *++++ OPENGL 3.0 ++++*
- CompilerIf #ENABLEGL3_0
- setGLEXT( glColorMaski, "glColorMaski" )
- setGLEXT( glGetBooleani_v, "glGetBooleani_v" )
- setGLEXT( glGetIntegeri_v, "glGetIntegeri_v" )
- setGLEXT( glEnablei, "glEnablei" )
- setGLEXT( glDisablei, "glDisablei" )
- setGLEXT( glIsEnabledi, "glIsEnabledi" )
- setGLEXT( glBeginTransformFeedback, "glBeginTransformFeedback" )
- setGLEXT( glEndTransformFeedback, "glEndTransformFeedback" )
- setGLEXT( glBindBufferRange, "glBindBufferRange" )
- setGLEXT( glBindBufferBase, "glBindBufferBase" )
- setGLEXT( glTransformFeedbackVaryings, "glTransformFeedbackVaryings" )
- setGLEXT( glGetTransformFeedbackVarying, "glGetTransformFeedbackVarying" )
- setGLEXT( glClampColor, "glClampColor" )
- setGLEXT( glBeginConditionalRender, "glBeginConditionalRender" )
- setGLEXT( glEndConditionalRender, "glEndConditionalRender" )
- setGLEXT( glVertexAttribIPointer, "glVertexAttribIPointer" )
- setGLEXT( glGetVertexAttribIiv, "glGetVertexAttribIiv" )
- setGLEXT( glGetVertexAttribIuiv, "glGetVertexAttribIuiv" )
- setGLEXT( glVertexAttribI1i, "glVertexAttribI1i" )
- setGLEXT( glVertexAttribI2i, "glVertexAttribI2i" )
- setGLEXT( glVertexAttribI3i, "glVertexAttribI3i" )
- setGLEXT( glVertexAttribI4i, "glVertexAttribI4i" )
- setGLEXT( glVertexAttribI1ui, "glVertexAttribI1ui" )
- setGLEXT( glVertexAttribI2ui, "glVertexAttribI2ui" )
- setGLEXT( glVertexAttribI3ui, "glVertexAttribI3ui" )
- setGLEXT( glVertexAttribI4ui, "glVertexAttribI4ui" )
- setGLEXT( glVertexAttribI1iv, "glVertexAttribI1iv" )
- setGLEXT( glVertexAttribI2iv, "glVertexAttribI2iv" )
- setGLEXT( glVertexAttribI3iv, "glVertexAttribI3iv" )
- setGLEXT( glVertexAttribI4iv, "glVertexAttribI4iv" )
- setGLEXT( glVertexAttribI1uiv, "glVertexAttribI1uiv" )
- setGLEXT( glVertexAttribI2uiv, "glVertexAttribI2uiv" )
- setGLEXT( glVertexAttribI3uiv, "glVertexAttribI3uiv" )
- setGLEXT( glVertexAttribI4uiv, "glVertexAttribI4uiv" )
- setGLEXT( glVertexAttribI4bv, "glVertexAttribI4bv" )
- setGLEXT( glVertexAttribI4sv, "glVertexAttribI4sv" )
- setGLEXT( glVertexAttribI4ubv, "glVertexAttribI4ubv" )
- setGLEXT( glVertexAttribI4usv, "glVertexAttribI4usv" )
- setGLEXT( glGetUniformuiv, "glGetUniformuiv" )
- setGLEXT( glBindFragDataLocation, "glBindFragDataLocation" )
- setGLEXT( glGetFragDataLocation, "glGetFragDataLocation" )
- setGLEXT( glUniform1ui, "glUniform1ui" )
- setGLEXT( glUniform2ui, "glUniform2ui" )
- setGLEXT( glUniform3ui, "glUniform3ui" )
- setGLEXT( glUniform4ui, "glUniform4ui" )
- setGLEXT( glUniform1uiv, "glUniform1uiv" )
- setGLEXT( glUniform2uiv, "glUniform2uiv" )
- setGLEXT( glUniform3uiv, "glUniform3uiv" )
- setGLEXT( glUniform4uiv, "glUniform4uiv" )
- setGLEXT( glTexParameterIiv, "glTexParameterIiv" )
- setGLEXT( glTexParameterIuiv, "glTexParameterIuiv" )
- setGLEXT( glGetTexParameterIiv, "glGetTexParameterIiv" )
- setGLEXT( glGetTexParameterIuiv, "glGetTexParameterIuiv" )
- setGLEXT( glClearBufferiv, "glClearBufferiv" )
- setGLEXT( glClearBufferuiv, "glClearBufferuiv" )
- setGLEXT( glClearBufferfv, "glClearBufferfv" )
- setGLEXT( glClearBufferfi, "glClearBufferfi" )
- setGLEXT( glGetStringi_, "glGetStringi" )
- CompilerEndIf
- ; *++++ OPENGL 3.1 ++++*
- CompilerIf #ENABLEGL3_1
- setGLEXT( glDrawArraysInstanced, "glDrawArraysInstanced" )
- setGLEXT( glDrawElementsInstanced, "glDrawElementsInstanced" )
- setGLEXT( glTexBuffer, "glTexBuffer" )
- setGLEXT( glPrimitiveRestartIndex, "glPrimitiveRestartIndex" )
- CompilerEndIf
- ; *++++ OPENGL 3.2 ++++*
- CompilerIf #ENABLEGL3_2
- setGLEXT( glGetInteger64i_v, "glGetInteger64i_v" )
- setGLEXT( glGetBufferParameteri64v, "glGetBufferParameteri64v" )
- setGLEXT( glFramebufferTexture, "glFramebufferTexture" )
- CompilerEndIf
- ; *++++ OPENGL 3.2 ++++*
- CompilerIf #ENABLEGL3_3
- setGLEXT( glVertexAttribDivisor, "glVertexAttribDivisor" )
- CompilerEndIf
- ; *++++ OPENGL Misc ++++*
- CompilerIf #ENABLEGLMISC
- setGLEXT( glIsRenderbuffer, "glIsRenderbuffer" )
- setGLEXT( glBindRenderbuffer, "glBindRenderbuffer" )
- setGLEXT( glDeleteRenderbuffers, "glDeleteRenderbuffers" )
- setGLEXT( glGenRenderbuffers, "glGenRenderbuffers" )
- setGLEXT( glRenderbufferStorage, "glRenderbufferStorage" )
- setGLEXT( glGetRenderbufferParameteriv, "glGetRenderbufferParameteriv" )
- setGLEXT( glIsFramebuffer, "glIsFramebuffer" )
- setGLEXT( glBindFramebuffer, "glBindFramebuffer" )
- setGLEXT( glDeleteFramebuffers, "glDeleteFramebuffers" )
- setGLEXT( glGenFramebuffers, "glGenFramebuffers" )
- setGLEXT( glCheckFramebufferStatus, "glCheckFramebufferStatus" )
- setGLEXT( glFramebufferTexture1D, "glFramebufferTexture1D" )
- setGLEXT( glFramebufferTexture2D, "glFramebufferTexture2D" )
- setGLEXT( glFramebufferTexture3D, "glFramebufferTexture3D" )
- setGLEXT( glFramebufferRenderbuffer, "glFramebufferRenderbuffer" )
- setGLEXT( glGetFramebufferAttachmentParameteriv, "glGetFramebufferAttachmentParameteriv" )
- setGLEXT( glGenerateMipmap, "glGenerateMipmap" )
- setGLEXT( glBlitFramebuffer, "glBlitFramebuffer" )
- setGLEXT( glRenderbufferStorageMultisample, "glRenderbufferStorageMultisample" )
- setGLEXT( glFramebufferTextureLayer, "glFramebufferTextureLayer" )
- CompilerEndIf
- LogTXT("OpenGL Extensions Loaded"+#CRLF$)
- EndProcedure
- Procedure initGLBase()
- Define.i parametercounter
- traceFunction("initGLBase()")
- CompilerIf Subsystem("OpenGL") = #False
- Debug "You must use OpenGL as subsystem !!!"
- End
- CompilerEndIf
- If Not InitSprite()
- Debug "initsprite fail"
- End
- EndIf
- ;Parse launch parameters
- For parametercounter = 0 To CountProgramParameters()-1
- If ProgramParameter(parametercounter) = "-eraselog" ; erase the log file
- DeleteFile(#LOG_FILE)
- EndIf
- Next parametercounter
- EndProcedure
- Procedure.i openGLWindow(posX.i, posY.i, width.i, height.i, title.s)
- Define whandle.i
- Define numofextensions.i
- Define counter.i
- traceFunction("openGLWindow()")
- initGLBase()
- LogTXT("[ "+title+" ] Start")
- LogTXT("Build on "+FormatDate("%dd/%mm/%yyyy - %hh:%ii:%ss", #PB_Compiler_Date))
- LogTXT(#CRLF$)
- whandle = OpenWindow( 0, posX,posY, width, height, title, #PB_Window_SystemMenu | #PB_Window_SizeGadget )
- If Not whandle
- Debug "openwindow fail"
- End
- EndIf
- If Not OpenWindowedScreen( WindowID(0), 0, 0, width, height, 1, 0, 0 )
- Debug "openwindowedscreen fail"
- End
- EndIf
- initGLFunctions()
- LogTXT("--- OpenGL Infos:")
- LogTXT("OpenGL Vendor: " +#TAB$+#TAB$+ glGetString( #GL_VENDOR ) )
- LogTXT("OpenGL Renderer: " +#TAB$+ glGetString( #GL_RENDERER ) )
- LogTXT("OpenGL Version: " +#TAB$+ glGetString( #GL_VERSION ) )
- LogTXT("OpenGL Shader: " +#TAB$+#TAB$+ glGetString( #GL_SHADING_LANGUAGE_VERSION) )
- LogTXT(#CRLF$)
- LogTXT("--- OpenGL Extensions: ")
- glGetIntegerv(#GL_NUM_EXTENSIONS ,@numofextensions )
- For counter = 0 To numofextensions-1
- LogTXT(glGetStringi(#GL_EXTENSIONS, counter))
- Next counter
- LogTXT(#CRLF$)
- ProcedureReturn whandle
- EndProcedure
- Procedure.i loadShader(type.l, source.s, sourcetype.b=0)
- Define sourcestringbuffer.s
- Define logsize.i
- Define *logbuff
- Define id.i
- Define pbuff.l
- Define sourcelen.i
- traceFunction("loadShader()")
- id = glCreateShader(type)
- If sourcetype
- If ReadFile(0, source)
- While Eof(0) = 0
- sourcestringbuffer+ReadString(0)+#CRLF$
- Wend
- CloseFile(0)
- Else
- Debug "shader source file error"
- EndIf
- ;sourcelen=Len(sourcestringbuffer)
- pbuff=@sourcestringbuffer
- glShaderSource(id, 1, @pbuff, #Null)
- Else
- pbuff=@source
- glShaderSource(id, 1, @pbuff, #Null)
- EndIf
- glCompileShader(id)
- glGetShaderiv(id, #GL_INFO_LOG_LENGTH, @logsize)
- ;write to the log file the compilation log of the shader
- If logsize > 0
- *logbuff = AllocateMemory(logsize)
- glGetShaderInfoLog(id, logsize, @logsize, *logbuff)
- If sourcetype
- LogTXT("Shader ("+source+") debug log: "+ PeekS(*logbuff) )
- Else
- LogTXT("Shader (*MEMORY*) Debug log: "+ PeekS(*logbuff) )
- EndIf
- FreeMemory(*logbuff)
- EndIf
- ProcedureReturn id
- EndProcedure
- Procedure.i createProgram( vertexshaderID.i, fragmentshaderID.i )
- Define progamID.i
- Define logsize.i
- Define *logbuff
- traceFunction("createProgram()")
- progamID = glCreateProgram()
- glAttachShader(progamID, vertexshaderID)
- glAttachShader(progamID, fragmentshaderID)
- glLinkProgram(progamID)
- glGetProgramiv(progamID, #GL_INFO_LOG_LENGTH, @logsize)
- ;write to the log file the compilation log of the shader
- If logsize > 0
- *logbuff = AllocateMemory(logsize)
- glGetProgramInfoLog(progamID, logsize, @logsize, *logbuff)
- LogTXT("Program debug log: "+ PeekS(*logbuff) )
- FreeMemory(*logbuff)
- EndIf
- ProcedureReturn progamID
- EndProcedure
- Procedure.i createProgramFast(vertex_shader.s, fragment_shader.s, sourcetype.b=0)
- Define vertID.i
- Define fragID.i
- Define programID.i
- traceFunction("createProgramFast()")
- vertID = loadShader( #GL_VERTEX_SHADER, vertex_shader,sourcetype )
- fragID = loadShader( #GL_FRAGMENT_SHADER, fragment_shader,sourcetype )
- programID = createProgram( vertID, fragID )
- glDeleteShader( vertID )
- glDeleteShader( fragID )
- ProcedureReturn programID
- EndProcedure
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement