48
48
static GLuint Program;
50
static GLfloat Xrot = -90.0, Yrot = .0, Zrot = 0.0;
50
static GLfloat Xrot = 0.0, Yrot = .0, Zrot = 0.0;
51
51
static GLfloat EyeDist = 10;
52
52
static GLboolean Anim = GL_TRUE;
53
static GLboolean UseArrays = GL_TRUE;
55
static GLint VertCoord_attr = -1, TexCoord0_attr = -1, TexCoord1_attr = -1;
55
58
/* value[0] = tex unit */
64
DrawPolygon(GLfloat size)
67
glRotatef(90, 1, 0, 0);
71
glMultiTexCoord2f(GL_TEXTURE0, 0, 0);
72
glMultiTexCoord2f(GL_TEXTURE1, 0, 0);
73
glVertex2f(-size, -size);
75
glMultiTexCoord2f(GL_TEXTURE0, 2, 0);
76
glMultiTexCoord2f(GL_TEXTURE1, 1, 0);
77
glVertex2f( size, -size);
79
glMultiTexCoord2f(GL_TEXTURE0, 2, 2);
80
glMultiTexCoord2f(GL_TEXTURE1, 1, 1);
81
glVertex2f( size, size);
83
glMultiTexCoord2f(GL_TEXTURE0, 0, 2);
84
glMultiTexCoord2f(GL_TEXTURE1, 0, 1);
85
glVertex2f(-size, size);
66
static const GLfloat Tex0Coords[4][2] = {
67
{ 0.0, 0.0 }, { 2.0, 0.0 }, { 2.0, 2.0 }, { 0.0, 2.0 }
70
static const GLfloat Tex1Coords[4][2] = {
71
{ 0.0, 0.0 }, { 1.0, 0.0 }, { 1.0, 1.0 }, { 0.0, 1.0 }
74
static const GLfloat VertCoords[4][2] = {
75
{ -3.0, -3.0 }, { 3.0, -3.0 }, { 3.0, 3.0 }, { -3.0, 3.0 }
80
DrawPolygonArray(void)
82
if (VertCoord_attr >= 0) {
83
glVertexAttribPointer_func(VertCoord_attr, 2, GL_FLOAT, GL_FALSE,
85
glEnableVertexAttribArray_func(VertCoord_attr);
88
glVertexPointer(2, GL_FLOAT, 0, VertCoords);
89
glEnable(GL_VERTEX_ARRAY);
92
glVertexAttribPointer_func(TexCoord0_attr, 2, GL_FLOAT, GL_FALSE,
94
glEnableVertexAttribArray_func(TexCoord0_attr);
96
glVertexAttribPointer_func(TexCoord1_attr, 2, GL_FLOAT, GL_FALSE,
98
glEnableVertexAttribArray_func(TexCoord1_attr);
100
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
105
DrawPolygonVert(void)
109
glBegin(GL_TRIANGLE_FAN);
111
for (i = 0; i < 4; i++) {
112
glVertexAttrib2fv_func(TexCoord0_attr, Tex0Coords[i]);
113
glVertexAttrib2fv_func(TexCoord1_attr, Tex1Coords[i]);
115
if (VertCoord_attr >= 0)
116
glVertexAttrib2fv_func(VertCoord_attr, VertCoords[i]);
118
glVertex2fv(VertCoords[i]);
233
272
InitUniforms(program, uniforms);
274
TexCoord0_attr = glGetAttribLocation_func(program, "TexCoord0");
275
TexCoord1_attr = glGetAttribLocation_func(program, "TexCoord1");
276
VertCoord_attr = glGetAttribLocation_func(program, "VertCoord");
277
printf("TexCoord0_attr = %d\n", TexCoord0_attr);
278
printf("TexCoord1_attr = %d\n", TexCoord1_attr);
279
printf("VertCoord_attr = %d\n", VertCoord_attr);