- #include once "GL/gl.bi"
- #include once "GL/glu.bi"
- #include once "GL/glext.bi"
- #IF defined (__FB_LINUX__)
- #INCLUDE ONCE "GL/glx.bi"
- #ELSEIF defined (__FB_WIN32__)
- '#INCLUDE ONCE "windows.bi"
- extern "windows" lib "gdi32"
- type PROC as function () as integer
- declare function wglGetProcAddress (byval as ZSTRING ptr) as PROC
- end extern
- #ELSE
- #ERROR "Unsupported Platform!"
- #ENDIF
- function YangGL_GetProcAddress (extensionname as STRING) as any ptr
- #IF defined (__FB_LINUX__)
- return glXGetProcAddressARB (extensionname)
- #ELSEIF defined (__FB_WIN32__)
- return wglGetProcAddress (extensionname)
- #ENDIF
- end function
- 'Das mach ich, da mit meiner glext.bi wohl etwas nicht stimmt...
- dim shared glGenBuffers as PFNGLGENBUFFERSPROC
- dim shared glDeleteBuffers as PFNGLDELETEBUFFERSPROC
- dim shared glBindBuffer as PFNGLBINDBUFFERPROC
- 'glBufferData scheint in der glext.bi falsch zu sein:
- type xPFNGLBUFFERDATAPROC as sub(byval as GLenum, byval as GLsizei, byval as GLvoid ptr, byval as GLenum)
- dim shared glBufferData as xPFNGLBUFFERDATAPROC
- type Xenon_model
- triangles as GLuint
- tsize as GLsizei
- quads as GLuint
- qsize as GLsizei
- end type
- 'Die Init-Routine (Xenon_log schreibt eine logfile)
- sub Xenon_init
- Xenon_log "Running Xenon 3D-Engine, compiled with " & __FB_SIGNATURE__ & " on " & __DATE__ & " " & __TIME__
- glEnableClientState (GL_VERTEX_ARRAY)
- glGenBuffers = cast(PFNGLGENBUFFERSPROC, YangGL_GetProcAddress("glGenBuffers"))
- glDeleteBuffers = cast(PFNGLDELETEBUFFERSPROC, YangGL_GetProcAddress("glDeleteBuffers"))
- glBindBuffer = cast(PFNGLBINDBUFFERPROC, YangGL_GetProcAddress("glBindBuffer"))
- glBufferData = cast(xPFNGLBUFFERDATAPROC, YangGL_GetProcAddress("glBufferData"))
- Xenon_log "glGenBuffers : " & YangGL_GetProcAddress("glGenBuffers")
- Xenon_log "glDeleteBuffers : " & YangGL_GetProcAddress("glDeleteBuffers")
- Xenon_log "glBindBuffer : " & YangGL_GetProcAddress("glBindBuffer")
- Xenon_log "glBufferData : " & YangGL_GetProcAddress("glBufferData")
- end sub
- glGenBuffers (1, @Model.triangles)
- glGenBuffers (1, @Model.quads)
- 'Funktioniert nicht
- glBindBuffer (1, Model.triangles)
- 'Funktioniert auch nicht:
- glBindBuffer (1, cast(UINTEGER, @Model.quads))