~ubuntu-branches/ubuntu/quantal/mesa/quantal

« back to all changes in this revision

Viewing changes to progs/slang/framework.c

  • Committer: Bazaar Package Importer
  • Author(s): Sebastien Bacher
  • Date: 2007-02-21 12:44:07 UTC
  • mfrom: (1.2.1 upstream)
  • mto: This revision was merged to the branch mainline in revision 22.
  • Revision ID: james.westby@ubuntu.com-20070221124407-rgcacs32mycrtadl
ImportĀ upstreamĀ versionĀ 6.5.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#include "framework.h"
2
 
 
3
 
/*
4
 
 * GL_ARB_multitexture
5
 
 */
6
 
#ifndef GL_ARB_multitexture
7
 
PFNGLCLIENTACTIVETEXTUREARBPROC glClientActiveTextureARB;
8
 
PFNGLMULTITEXCOORD4FVARBPROC glMultiTexCoord4fvARB;
9
 
#endif
10
 
 
11
 
/*
12
 
 * GL_ARB_shader_objects
13
 
 */
14
 
PFNGLDELETEOBJECTARBPROC glDeleteObjectARB;
15
 
PFNGLGETHANDLEARBPROC glGetHandleARB;
16
 
PFNGLDETACHOBJECTARBPROC glDetachObjectARB;
17
 
PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARB;
18
 
PFNGLSHADERSOURCEARBPROC glShaderSourceARB;
19
 
PFNGLCOMPILESHADERARBPROC glCompileShaderARB;
20
 
PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARB;
21
 
PFNGLATTACHOBJECTARBPROC glAttachObjectARB;
22
 
PFNGLLINKPROGRAMARBPROC glLinkProgramARB;
23
 
PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObjectARB;
24
 
PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB;
25
 
PFNGLGETINFOLOGARBPROC glGetInfoLogARB;
26
 
PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARB;
27
 
 
28
 
/*
29
 
 * GL_ARB_vertex_shader
30
 
 */
31
 
PFNGLVERTEXATTRIB4FVARBPROC glVertexAttrib4fvARB;
32
 
PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB;
33
 
PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB;
34
 
PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB;
35
 
PFNGLBINDATTRIBLOCATIONARBPROC glBindAttribLocationARB;
36
 
PFNGLGETATTRIBLOCATIONARBPROC glGetAttribLocationARB;
37
 
 
38
 
/*
39
 
 * GL_EXT_fog_coord
40
 
 */
41
 
PFNGLFOGCOORDFVEXTPROC glFogCoordfvEXT;
42
 
PFNGLFOGCOORDPOINTEREXTPROC glFogCoordPointerEXT;
43
 
 
44
 
/*
45
 
 * GL_EXT_secondary_color
46
 
 */
47
 
PFNGLSECONDARYCOLOR3FVEXTPROC glSecondaryColor3fvEXT;
48
 
PFNGLSECONDARYCOLORPOINTEREXTPROC glSecondaryColorPointerEXT;
49
 
 
50
 
static void Display (void)
51
 
{
52
 
   glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
53
 
   RenderScene ();
54
 
   glutSwapBuffers ();
55
 
}
56
 
 
57
 
static void Idle (void)
58
 
{
59
 
   glutPostRedisplay ();
60
 
}
61
 
 
62
 
void InitFramework (int *argc, char *argv[])
63
 
{
64
 
   glutInit (argc, argv);
65
 
   glutInitWindowPosition (0, 0);
66
 
   glutInitWindowSize (200, 200);
67
 
   glutInitDisplayMode (GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
68
 
   glutCreateWindow (argv[0]);
69
 
 
70
 
#ifndef GL_ARB_multitexture
71
 
   GETPROCADDR(glClientActiveTextureARB, PFNGLCLIENTACTIVETEXTUREARBPROC);
72
 
   GETPROCADDR(glMultiTexCoord4fvARB, PFNGLMULTITEXCOORD4FVARBPROC);
73
 
#endif
74
 
 
75
 
   GETPROCADDR(glDeleteObjectARB, PFNGLDELETEOBJECTARBPROC);
76
 
   GETPROCADDR(glGetHandleARB, PFNGLGETHANDLEARBPROC);
77
 
   GETPROCADDR(glDetachObjectARB, PFNGLDETACHOBJECTARBPROC);
78
 
   GETPROCADDR(glCreateShaderObjectARB, PFNGLCREATESHADEROBJECTARBPROC);
79
 
   GETPROCADDR(glShaderSourceARB, PFNGLSHADERSOURCEARBPROC);
80
 
   GETPROCADDR(glCompileShaderARB, PFNGLCOMPILESHADERARBPROC);
81
 
   GETPROCADDR(glCreateProgramObjectARB, PFNGLCREATEPROGRAMOBJECTARBPROC);
82
 
   GETPROCADDR(glAttachObjectARB, PFNGLATTACHOBJECTARBPROC);
83
 
   GETPROCADDR(glLinkProgramARB, PFNGLLINKPROGRAMARBPROC);
84
 
   GETPROCADDR(glUseProgramObjectARB, PFNGLUSEPROGRAMOBJECTARBPROC);
85
 
   GETPROCADDR(glGetObjectParameterivARB, PFNGLGETOBJECTPARAMETERIVARBPROC);
86
 
   GETPROCADDR(glGetInfoLogARB, PFNGLGETINFOLOGARBPROC);
87
 
   GETPROCADDR(glGetUniformLocationARB, PFNGLGETUNIFORMLOCATIONARBPROC);
88
 
 
89
 
   GETPROCADDR(glVertexAttrib4fvARB, PFNGLVERTEXATTRIB4FVARBPROC);
90
 
   GETPROCADDR(glVertexAttribPointerARB, PFNGLVERTEXATTRIBPOINTERARBPROC);
91
 
   GETPROCADDR(glEnableVertexAttribArrayARB, PFNGLENABLEVERTEXATTRIBARRAYARBPROC);
92
 
   GETPROCADDR(glDisableVertexAttribArrayARB, PFNGLDISABLEVERTEXATTRIBARRAYARBPROC);
93
 
   GETPROCADDR(glBindAttribLocationARB, PFNGLBINDATTRIBLOCATIONARBPROC);
94
 
   GETPROCADDR(glGetAttribLocationARB, PFNGLGETATTRIBLOCATIONARBPROC);
95
 
 
96
 
   GETPROCADDR(glFogCoordfvEXT, PFNGLFOGCOORDFVEXTPROC);
97
 
   GETPROCADDR(glFogCoordPointerEXT, PFNGLFOGCOORDPOINTEREXTPROC);
98
 
 
99
 
   GETPROCADDR(glSecondaryColor3fvEXT, PFNGLSECONDARYCOLOR3FVEXTPROC);
100
 
   GETPROCADDR(glSecondaryColorPointerEXT, PFNGLSECONDARYCOLORPOINTEREXTPROC);
101
 
 
102
 
   printf ("VENDOR: %s\n", glGetString (GL_VENDOR));
103
 
   printf ("RENDERER: %s\n", glGetString (GL_RENDERER));
104
 
 
105
 
   InitScene ();
106
 
 
107
 
   glutDisplayFunc (Display);
108
 
   glutIdleFunc (Idle);
109
 
   glutMainLoop ();
110
 
}
111
 
 
112
 
GLboolean CheckObjectStatus (GLhandleARB handle)
113
 
{
114
 
   GLint type, status, length;
115
 
   GLcharARB *infolog;
116
 
 
117
 
   glGetObjectParameterivARB (handle, GL_OBJECT_TYPE_ARB, &type);
118
 
   if (type == GL_SHADER_OBJECT_ARB)
119
 
      glGetObjectParameterivARB (handle, GL_OBJECT_COMPILE_STATUS_ARB, &status);
120
 
   else if (type == GL_PROGRAM_OBJECT_ARB)
121
 
      glGetObjectParameterivARB (handle, GL_OBJECT_LINK_STATUS_ARB, &status);
122
 
   else {
123
 
      assert (0);
124
 
      return GL_FALSE;
125
 
   }
126
 
 
127
 
   if (status)
128
 
      return GL_TRUE;
129
 
 
130
 
   printf ("\n%s FAILED. INFO LOG FOLLOWS:\n",
131
 
           type == GL_SHADER_OBJECT_ARB ? "SHADER COMPILE" : "PROGRAM LINK");
132
 
 
133
 
   glGetObjectParameterivARB (handle, GL_OBJECT_INFO_LOG_LENGTH_ARB, &length);
134
 
   infolog = (GLcharARB *) (malloc (length));
135
 
   if (infolog != NULL) {
136
 
      glGetInfoLogARB (handle, length, NULL, infolog);
137
 
      printf ("%s", infolog);
138
 
      free (infolog);
139
 
   }
140
 
 
141
 
   printf ("\n");
142
 
 
143
 
   return GL_FALSE;
144
 
}
145