| #ifndef _FRAMEWORK_H_ |
| #define _FRAMEWORK_H_ |
| |
| #ifdef WIN32 |
| #define WIN32_LEAN_AND_MEAN |
| #include <windows.h> |
| #endif |
| |
| #include <stdlib.h> |
| #include <stdio.h> |
| #include <string.h> |
| #include <assert.h> |
| #include <math.h> |
| #include <GL/gl.h> |
| #include <GL/glut.h> |
| #include <GL/glext.h> |
| |
| #ifdef WIN32 |
| #define GETPROCADDRESS(x) wglGetProcAddress (x) |
| #else |
| #define GETPROCADDRESS(x) glutGetProcAddress (x) |
| #endif |
| |
| #define GETPROCADDR(x,T) do { x = (T) (GETPROCADDRESS(#x)); assert (x != NULL); } while (0) |
| |
| /* |
| * GL_ARB_multitexture |
| */ |
| #ifndef GL_ARB_multitexture |
| extern PFNGLCLIENTACTIVETEXTUREARBPROC glClientActiveTextureARB; |
| extern PFNGLMULTITEXCOORD4FVARBPROC glMultiTexCoord4fvARB; |
| #endif |
| |
| /* |
| * GL_ARB_shader_objects |
| */ |
| extern PFNGLDELETEOBJECTARBPROC glDeleteObjectARB; |
| extern PFNGLGETHANDLEARBPROC glGetHandleARB; |
| extern PFNGLDETACHOBJECTARBPROC glDetachObjectARB; |
| extern PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARB; |
| extern PFNGLSHADERSOURCEARBPROC glShaderSourceARB; |
| extern PFNGLCOMPILESHADERARBPROC glCompileShaderARB; |
| extern PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARB; |
| extern PFNGLATTACHOBJECTARBPROC glAttachObjectARB; |
| extern PFNGLLINKPROGRAMARBPROC glLinkProgramARB; |
| extern PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObjectARB; |
| extern PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB; |
| extern PFNGLGETINFOLOGARBPROC glGetInfoLogARB; |
| extern PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARB; |
| /*static PFNGLUNIFORM4FVARBPROC glUniform4fvARB = NULL;*/ |
| |
| /* |
| * GL_ARB_vertex_shader |
| */ |
| extern PFNGLVERTEXATTRIB4FVARBPROC glVertexAttrib4fvARB; |
| extern PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB; |
| extern PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB; |
| extern PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB; |
| extern PFNGLBINDATTRIBLOCATIONARBPROC glBindAttribLocationARB; |
| extern PFNGLGETATTRIBLOCATIONARBPROC glGetAttribLocationARB; |
| |
| /* |
| * GL_EXT_fog_coord |
| */ |
| extern PFNGLFOGCOORDFVEXTPROC glFogCoordfvEXT; |
| extern PFNGLFOGCOORDPOINTEREXTPROC glFogCoordPointerEXT; |
| |
| /* |
| * GL_EXT_secondary_color |
| */ |
| extern PFNGLSECONDARYCOLOR3FVEXTPROC glSecondaryColor3fvEXT; |
| extern PFNGLSECONDARYCOLORPOINTEREXTPROC glSecondaryColorPointerEXT; |
| |
| extern void InitFramework (int *argc, char *argv[]); |
| |
| extern void InitScene (void); |
| extern void RenderScene (void); |
| |
| extern GLboolean CheckObjectStatus (GLhandleARB); |
| |
| #endif |
| |