Clone of mesa.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

framework.h 2.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #ifndef _FRAMEWORK_H_
  2. #define _FRAMEWORK_H_
  3. #ifdef WIN32
  4. #define WIN32_LEAN_AND_MEAN
  5. #include <windows.h>
  6. #endif
  7. #include <stdlib.h>
  8. #include <stdio.h>
  9. #include <string.h>
  10. #include <assert.h>
  11. #include <math.h>
  12. #include <GL/gl.h>
  13. #include <GL/glut.h>
  14. #include <GL/glext.h>
  15. #ifdef WIN32
  16. #define GETPROCADDRESS(x) wglGetProcAddress (x)
  17. #else
  18. #define GETPROCADDRESS(x) glutGetProcAddress (x)
  19. #endif
  20. #define GETPROCADDR(x,T) do { x = (T) (GETPROCADDRESS(#x)); assert (x != NULL); } while (0)
  21. /*
  22. * GL_ARB_multitexture
  23. */
  24. #ifndef GL_ARB_multitexture
  25. extern PFNGLCLIENTACTIVETEXTUREARBPROC glClientActiveTextureARB;
  26. extern PFNGLMULTITEXCOORD4FVARBPROC glMultiTexCoord4fvARB;
  27. #endif
  28. /*
  29. * GL_ARB_shader_objects
  30. */
  31. extern PFNGLDELETEOBJECTARBPROC glDeleteObjectARB;
  32. extern PFNGLGETHANDLEARBPROC glGetHandleARB;
  33. extern PFNGLDETACHOBJECTARBPROC glDetachObjectARB;
  34. extern PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARB;
  35. extern PFNGLSHADERSOURCEARBPROC glShaderSourceARB;
  36. extern PFNGLCOMPILESHADERARBPROC glCompileShaderARB;
  37. extern PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARB;
  38. extern PFNGLATTACHOBJECTARBPROC glAttachObjectARB;
  39. extern PFNGLLINKPROGRAMARBPROC glLinkProgramARB;
  40. extern PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObjectARB;
  41. extern PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB;
  42. extern PFNGLGETINFOLOGARBPROC glGetInfoLogARB;
  43. extern PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARB;
  44. /*static PFNGLUNIFORM4FVARBPROC glUniform4fvARB = NULL;*/
  45. /*
  46. * GL_ARB_vertex_shader
  47. */
  48. extern PFNGLVERTEXATTRIB4FVARBPROC glVertexAttrib4fvARB;
  49. extern PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB;
  50. extern PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB;
  51. extern PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB;
  52. extern PFNGLBINDATTRIBLOCATIONARBPROC glBindAttribLocationARB;
  53. extern PFNGLGETATTRIBLOCATIONARBPROC glGetAttribLocationARB;
  54. /*
  55. * GL_EXT_fog_coord
  56. */
  57. extern PFNGLFOGCOORDFVEXTPROC glFogCoordfvEXT;
  58. extern PFNGLFOGCOORDPOINTEREXTPROC glFogCoordPointerEXT;
  59. /*
  60. * GL_EXT_secondary_color
  61. */
  62. extern PFNGLSECONDARYCOLOR3FVEXTPROC glSecondaryColor3fvEXT;
  63. extern PFNGLSECONDARYCOLORPOINTEREXTPROC glSecondaryColorPointerEXT;
  64. extern void InitFramework (int *argc, char *argv[]);
  65. extern void InitScene (void);
  66. extern void RenderScene (void);
  67. extern GLboolean CheckObjectStatus (GLhandleARB);
  68. #endif