X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffg_gl2.h;h=ab8ba5c7da15e649fba51e86b5a9d13e8c10fdd2;hb=2c12c9eb8d63cabac2d4113b4f54fdf53da8368c;hp=18a043c576164fea651b96da80ef6144ab104879;hpb=bc861a62269504a0f7001548d33626be17b77339;p=freeglut diff --git a/src/fg_gl2.h b/src/fg_gl2.h index 18a043c..ab8ba5c 100644 --- a/src/fg_gl2.h +++ b/src/fg_gl2.h @@ -26,9 +26,31 @@ #ifndef FG_GL2_H #define FG_GL2_H -#ifndef APIENTRY -# define APIENTRY -#endif +#include +#include "fg_internal.h" + +#ifdef GL_ES_VERSION_2_0 +/* Use existing functions on GLES 2.0 */ + +#define FGH_ARRAY_BUFFER GL_ARRAY_BUFFER +#define FGH_STATIC_DRAW GL_STATIC_DRAW +#define FGH_ELEMENT_ARRAY_BUFFER GL_ELEMENT_ARRAY_BUFFER + +#define fghGenBuffers glGenBuffers +#define fghDeleteBuffers glDeleteBuffers +#define fghBindBuffer glBindBuffer +#define fghBufferData glBufferData +#define fghEnableVertexAttribArray glEnableVertexAttribArray +#define fghDisableVertexAttribArray glDisableVertexAttribArray +#define fghVertexAttribPointer glVertexAttribPointer + +#else +/* Load functions dynamically, they are not defined in e.g. win32's + OpenGL headers */ + +# ifndef APIENTRY +# define APIENTRY +# endif /* extension #defines, types and entries, avoiding a dependency on additional libraries like GLEW or the GL/glext.h header */ @@ -36,21 +58,25 @@ #define FGH_STATIC_DRAW 0x88E4 #define FGH_ELEMENT_ARRAY_BUFFER 0x8893 -typedef ptrdiff_t fghGLsizeiptr; -typedef void (APIENTRY *PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef void (APIENTRY *PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (APIENTRY *PFNGLBUFFERDATAPROC) (GLenum target, fghGLsizeiptr size, const GLvoid *data, GLenum usage); -typedef void (APIENTRY *PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint* buffers); -typedef void (APIENTRY *PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (APIENTRY *PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint); -typedef void (APIENTRY *PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); - -PFNGLGENBUFFERSPROC fghGenBuffers; -PFNGLDELETEBUFFERSPROC fghDeleteBuffers; -PFNGLBINDBUFFERPROC fghBindBuffer; -PFNGLBUFFERDATAPROC fghBufferData; -PFNGLENABLEVERTEXATTRIBARRAYPROC fghEnableVertexAttribArray; -PFNGLDISABLEVERTEXATTRIBARRAYPROC fghDisableVertexAttribArray; -PFNGLVERTEXATTRIBPOINTERPROC fghVertexAttribPointer; +typedef int fghGLsizeiptr; +typedef void (APIENTRY *FGH_PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); +typedef void (APIENTRY *FGH_PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); +typedef void (APIENTRY *FGH_PFNGLBUFFERDATAPROC) (GLenum target, fghGLsizeiptr size, const GLvoid *data, GLenum usage); +typedef void (APIENTRY *FGH_PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint* buffers); +typedef void (APIENTRY *FGH_PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); +typedef void (APIENTRY *FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint); +typedef void (APIENTRY *FGH_PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); + +FGH_PFNGLGENBUFFERSPROC fghGenBuffers; +FGH_PFNGLDELETEBUFFERSPROC fghDeleteBuffers; +FGH_PFNGLBINDBUFFERPROC fghBindBuffer; +FGH_PFNGLBUFFERDATAPROC fghBufferData; +FGH_PFNGLENABLEVERTEXATTRIBARRAYPROC fghEnableVertexAttribArray; +FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC fghDisableVertexAttribArray; +FGH_PFNGLVERTEXATTRIBPOINTERPROC fghVertexAttribPointer; + +# endif + +extern void fgInitGL2(); #endif