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