progs/glsl: finish conversion to GLEW
This is a follow-on to b799af91d5
.
Remove _func function suffix and unneeded #includes.
This commit is contained in:
@@ -10,9 +10,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <GL/glew.h>
|
#include <GL/glew.h>
|
||||||
#include <GL/gl.h>
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
#include "extfuncs.h"
|
|
||||||
#include "shaderutil.h"
|
#include "shaderutil.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -144,9 +142,9 @@ Reshape(int width, int height)
|
|||||||
static void
|
static void
|
||||||
CleanUp(void)
|
CleanUp(void)
|
||||||
{
|
{
|
||||||
glDeleteShader_func(fragShader);
|
glDeleteShader(fragShader);
|
||||||
glDeleteShader_func(vertShader);
|
glDeleteShader(vertShader);
|
||||||
glDeleteProgram_func(program);
|
glDeleteProgram(program);
|
||||||
glutDestroyWindow(win);
|
glutDestroyWindow(win);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -219,19 +217,17 @@ Init(void)
|
|||||||
if (!ShadersSupported())
|
if (!ShadersSupported())
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
GetExtensionFuncs();
|
|
||||||
|
|
||||||
vertShader = CompileShaderText(GL_VERTEX_SHADER, VertShaderText);
|
vertShader = CompileShaderText(GL_VERTEX_SHADER, VertShaderText);
|
||||||
fragShader = CompileShaderText(GL_FRAGMENT_SHADER, FragShaderText);
|
fragShader = CompileShaderText(GL_FRAGMENT_SHADER, FragShaderText);
|
||||||
program = LinkShaders(vertShader, fragShader);
|
program = LinkShaders(vertShader, fragShader);
|
||||||
|
|
||||||
glUseProgram_func(program);
|
glUseProgram(program);
|
||||||
|
|
||||||
/* Setup the HeightArray[] uniform */
|
/* Setup the HeightArray[] uniform */
|
||||||
for (i = 0; i < 20; i++)
|
for (i = 0; i < 20; i++)
|
||||||
HeightArray[i] = i / 20.0;
|
HeightArray[i] = i / 20.0;
|
||||||
u = glGetUniformLocation_func(program, "HeightArray");
|
u = glGetUniformLocation(program, "HeightArray");
|
||||||
glUniform1fv_func(u, 20, HeightArray);
|
glUniform1fv(u, 20, HeightArray);
|
||||||
|
|
||||||
assert(glGetError() == 0);
|
assert(glGetError() == 0);
|
||||||
|
|
||||||
|
@@ -10,10 +10,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <GL/glew.h>
|
#include <GL/glew.h>
|
||||||
#include <GL/gl.h>
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
#include <GL/glext.h>
|
|
||||||
#include "extfuncs.h"
|
|
||||||
#include "shaderutil.h"
|
#include "shaderutil.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -79,11 +76,11 @@ Redisplay(void)
|
|||||||
BitmapText("-X");
|
BitmapText("-X");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
glUseProgram_func(Program);
|
glUseProgram(Program);
|
||||||
|
|
||||||
/* vertex positions (deltas) depend on texture size and window size */
|
/* vertex positions (deltas) depend on texture size and window size */
|
||||||
if (uScale != -1) {
|
if (uScale != -1) {
|
||||||
glUniform2f_func(uScale,
|
glUniform2f(uScale,
|
||||||
2.0 * TEX_WIDTH / WinWidth,
|
2.0 * TEX_WIDTH / WinWidth,
|
||||||
2.0 * TEX_HEIGHT / WinHeight);
|
2.0 * TEX_HEIGHT / WinHeight);
|
||||||
}
|
}
|
||||||
@@ -106,7 +103,7 @@ Redisplay(void)
|
|||||||
glTexCoord2f(0, 1); glVertex3fv(nx);
|
glTexCoord2f(0, 1); glVertex3fv(nx);
|
||||||
glEnd();
|
glEnd();
|
||||||
|
|
||||||
glUseProgram_func(0);
|
glUseProgram(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
glPopMatrix();
|
glPopMatrix();
|
||||||
@@ -161,9 +158,9 @@ Key(unsigned char key, int x, int y)
|
|||||||
printf("Using billboard texture\n");
|
printf("Using billboard texture\n");
|
||||||
break;
|
break;
|
||||||
case 27:
|
case 27:
|
||||||
glDeleteShader_func(FragShader);
|
glDeleteShader(FragShader);
|
||||||
glDeleteShader_func(VertShader);
|
glDeleteShader(VertShader);
|
||||||
glDeleteProgram_func(Program);
|
glDeleteProgram(Program);
|
||||||
glutDestroyWindow(Win);
|
glutDestroyWindow(Win);
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
@@ -278,21 +275,19 @@ Init(void)
|
|||||||
if (!ShadersSupported())
|
if (!ShadersSupported())
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
GetExtensionFuncs();
|
|
||||||
|
|
||||||
VertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText);
|
VertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText);
|
||||||
FragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText);
|
FragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText);
|
||||||
Program = LinkShaders(VertShader, FragShader);
|
Program = LinkShaders(VertShader, FragShader);
|
||||||
|
|
||||||
glUseProgram_func(Program);
|
glUseProgram(Program);
|
||||||
|
|
||||||
uScale = glGetUniformLocation_func(Program, "scale");
|
uScale = glGetUniformLocation(Program, "scale");
|
||||||
uTex = glGetUniformLocation_func(Program, "tex2d");
|
uTex = glGetUniformLocation(Program, "tex2d");
|
||||||
if (uTex != -1) {
|
if (uTex != -1) {
|
||||||
glUniform1i_func(uTex, 0); /* tex unit 0 */
|
glUniform1i(uTex, 0); /* tex unit 0 */
|
||||||
}
|
}
|
||||||
|
|
||||||
glUseProgram_func(0);
|
glUseProgram(0);
|
||||||
|
|
||||||
glClearColor(0.3f, 0.3f, 0.3f, 0.0f);
|
glClearColor(0.3f, 0.3f, 0.3f, 0.0f);
|
||||||
glEnable(GL_DEPTH_TEST);
|
glEnable(GL_DEPTH_TEST);
|
||||||
|
@@ -10,10 +10,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <GL/glew.h>
|
#include <GL/glew.h>
|
||||||
#include <GL/gl.h>
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
#include <GL/glext.h>
|
|
||||||
#include "extfuncs.h"
|
|
||||||
#include "shaderutil.h"
|
#include "shaderutil.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -83,9 +80,9 @@ Reshape(int width, int height)
|
|||||||
static void
|
static void
|
||||||
CleanUp(void)
|
CleanUp(void)
|
||||||
{
|
{
|
||||||
glDeleteShader_func(fragShader);
|
glDeleteShader(fragShader);
|
||||||
glDeleteShader_func(vertShader);
|
glDeleteShader(vertShader);
|
||||||
glDeleteProgram_func(program);
|
glDeleteProgram(program);
|
||||||
glutDestroyWindow(win);
|
glutDestroyWindow(win);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -145,13 +142,11 @@ Init(void)
|
|||||||
if (!ShadersSupported())
|
if (!ShadersSupported())
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
GetExtensionFuncs();
|
|
||||||
|
|
||||||
vertShader = CompileShaderFile(GL_VERTEX_SHADER, VertProgFile);
|
vertShader = CompileShaderFile(GL_VERTEX_SHADER, VertProgFile);
|
||||||
fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile);
|
fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile);
|
||||||
program = LinkShaders(vertShader, fragShader);
|
program = LinkShaders(vertShader, fragShader);
|
||||||
|
|
||||||
glUseProgram_func(program);
|
glUseProgram(program);
|
||||||
|
|
||||||
InitUniforms(program, Uniforms);
|
InitUniforms(program, Uniforms);
|
||||||
|
|
||||||
@@ -161,9 +156,9 @@ Init(void)
|
|||||||
|
|
||||||
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
||||||
|
|
||||||
assert(glIsProgram_func(program));
|
assert(glIsProgram(program));
|
||||||
assert(glIsShader_func(fragShader));
|
assert(glIsShader(fragShader));
|
||||||
assert(glIsShader_func(vertShader));
|
assert(glIsShader(vertShader));
|
||||||
|
|
||||||
glColor3f(1, 0, 0);
|
glColor3f(1, 0, 0);
|
||||||
}
|
}
|
||||||
|
@@ -9,10 +9,8 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
#include <GL/glew.h>
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
#include <GL/glu.h>
|
|
||||||
#include <GL/glext.h>
|
|
||||||
#include "extfuncs.h"
|
|
||||||
#include "shaderutil.h"
|
#include "shaderutil.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -60,7 +58,7 @@ static void
|
|||||||
Square(GLfloat size)
|
Square(GLfloat size)
|
||||||
{
|
{
|
||||||
glNormal3f(0, 0, 1);
|
glNormal3f(0, 0, 1);
|
||||||
glVertexAttrib3f_func(tangentAttrib, 1, 0, 0);
|
glVertexAttrib3f(tangentAttrib, 1, 0, 0);
|
||||||
glBegin(GL_POLYGON);
|
glBegin(GL_POLYGON);
|
||||||
glTexCoord2f(0, 0); glVertex2f(-size, -size);
|
glTexCoord2f(0, 0); glVertex2f(-size, -size);
|
||||||
glTexCoord2f(1, 0); glVertex2f( size, -size);
|
glTexCoord2f(1, 0); glVertex2f( size, -size);
|
||||||
@@ -164,9 +162,9 @@ Reshape(int width, int height)
|
|||||||
static void
|
static void
|
||||||
CleanUp(void)
|
CleanUp(void)
|
||||||
{
|
{
|
||||||
glDeleteShader_func(fragShader);
|
glDeleteShader(fragShader);
|
||||||
glDeleteShader_func(vertShader);
|
glDeleteShader(vertShader);
|
||||||
glDeleteProgram_func(program);
|
glDeleteProgram(program);
|
||||||
glutDestroyWindow(win);
|
glutDestroyWindow(win);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -230,17 +228,15 @@ Init(void)
|
|||||||
if (!ShadersSupported())
|
if (!ShadersSupported())
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
GetExtensionFuncs();
|
|
||||||
|
|
||||||
vertShader = CompileShaderFile(GL_VERTEX_SHADER, VertProgFile);
|
vertShader = CompileShaderFile(GL_VERTEX_SHADER, VertProgFile);
|
||||||
fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile);
|
fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile);
|
||||||
program = LinkShaders(vertShader, fragShader);
|
program = LinkShaders(vertShader, fragShader);
|
||||||
|
|
||||||
glUseProgram_func(program);
|
glUseProgram(program);
|
||||||
|
|
||||||
assert(glIsProgram_func(program));
|
assert(glIsProgram(program));
|
||||||
assert(glIsShader_func(fragShader));
|
assert(glIsShader(fragShader));
|
||||||
assert(glIsShader_func(vertShader));
|
assert(glIsShader(vertShader));
|
||||||
|
|
||||||
assert(glGetError() == 0);
|
assert(glGetError() == 0);
|
||||||
|
|
||||||
@@ -250,7 +246,7 @@ Init(void)
|
|||||||
|
|
||||||
CheckError(__LINE__);
|
CheckError(__LINE__);
|
||||||
|
|
||||||
tangentAttrib = glGetAttribLocation_func(program, "Tangent");
|
tangentAttrib = glGetAttribLocation(program, "Tangent");
|
||||||
printf("Tangent Attrib: %d\n", tangentAttrib);
|
printf("Tangent Attrib: %d\n", tangentAttrib);
|
||||||
|
|
||||||
assert(tangentAttrib >= 0);
|
assert(tangentAttrib >= 0);
|
||||||
|
@@ -14,10 +14,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <GL/glew.h>
|
#include <GL/glew.h>
|
||||||
#include <GL/gl.h>
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
#include <GL/glext.h>
|
|
||||||
#include "extfuncs.h"
|
|
||||||
#include "shaderutil.h"
|
#include "shaderutil.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -71,9 +68,9 @@ Reshape(int width, int height)
|
|||||||
static void
|
static void
|
||||||
CleanUp(void)
|
CleanUp(void)
|
||||||
{
|
{
|
||||||
glDeleteShader_func(fragShader);
|
glDeleteShader(fragShader);
|
||||||
glDeleteShader_func(vertShader);
|
glDeleteShader(vertShader);
|
||||||
glDeleteProgram_func(program);
|
glDeleteProgram(program);
|
||||||
glutDestroyWindow(win);
|
glutDestroyWindow(win);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -178,13 +175,11 @@ Init(void)
|
|||||||
if (!ShadersSupported())
|
if (!ShadersSupported())
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
GetExtensionFuncs();
|
|
||||||
|
|
||||||
vertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText);
|
vertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText);
|
||||||
fragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText);
|
fragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText);
|
||||||
program = LinkShaders(vertShader, fragShader);
|
program = LinkShaders(vertShader, fragShader);
|
||||||
|
|
||||||
glUseProgram_func(program);
|
glUseProgram(program);
|
||||||
|
|
||||||
/*assert(glGetError() == 0);*/
|
/*assert(glGetError() == 0);*/
|
||||||
|
|
||||||
@@ -198,9 +193,9 @@ Init(void)
|
|||||||
|
|
||||||
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
||||||
|
|
||||||
assert(glIsProgram_func(program));
|
assert(glIsProgram(program));
|
||||||
assert(glIsShader_func(fragShader));
|
assert(glIsShader(fragShader));
|
||||||
assert(glIsShader_func(vertShader));
|
assert(glIsShader(vertShader));
|
||||||
|
|
||||||
glColor3f(1, 0, 0);
|
glColor3f(1, 0, 0);
|
||||||
}
|
}
|
||||||
|
@@ -13,10 +13,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <GL/glew.h>
|
#include <GL/glew.h>
|
||||||
#include <GL/gl.h>
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
#include <GL/glext.h>
|
|
||||||
#include "extfuncs.h"
|
|
||||||
#include "shaderutil.h"
|
#include "shaderutil.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -86,9 +83,9 @@ Reshape(int width, int height)
|
|||||||
static void
|
static void
|
||||||
CleanUp(void)
|
CleanUp(void)
|
||||||
{
|
{
|
||||||
glDeleteShader_func(fragShader);
|
glDeleteShader(fragShader);
|
||||||
glDeleteShader_func(vertShader);
|
glDeleteShader(vertShader);
|
||||||
glDeleteProgram_func(program);
|
glDeleteProgram(program);
|
||||||
glutDestroyWindow(win);
|
glutDestroyWindow(win);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -130,13 +127,11 @@ Init(void)
|
|||||||
if (!ShadersSupported())
|
if (!ShadersSupported())
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
GetExtensionFuncs();
|
|
||||||
|
|
||||||
vertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText);
|
vertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText);
|
||||||
fragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText);
|
fragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText);
|
||||||
program = LinkShaders(vertShader, fragShader);
|
program = LinkShaders(vertShader, fragShader);
|
||||||
|
|
||||||
glUseProgram_func(program);
|
glUseProgram(program);
|
||||||
|
|
||||||
/*assert(glGetError() == 0);*/
|
/*assert(glGetError() == 0);*/
|
||||||
|
|
||||||
@@ -144,9 +139,9 @@ Init(void)
|
|||||||
|
|
||||||
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
||||||
|
|
||||||
assert(glIsProgram_func(program));
|
assert(glIsProgram(program));
|
||||||
assert(glIsShader_func(fragShader));
|
assert(glIsShader(fragShader));
|
||||||
assert(glIsShader_func(vertShader));
|
assert(glIsShader(vertShader));
|
||||||
|
|
||||||
glColor3f(1, 0, 0);
|
glColor3f(1, 0, 0);
|
||||||
}
|
}
|
||||||
|
@@ -10,10 +10,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <GL/glew.h>
|
#include <GL/glew.h>
|
||||||
#include <GL/gl.h>
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
#include <GL/glext.h>
|
|
||||||
#include "extfuncs.h"
|
|
||||||
#include "shaderutil.h"
|
#include "shaderutil.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -70,9 +67,9 @@ Reshape(int width, int height)
|
|||||||
static void
|
static void
|
||||||
CleanUp(void)
|
CleanUp(void)
|
||||||
{
|
{
|
||||||
glDeleteShader_func(fragShader);
|
glDeleteShader(fragShader);
|
||||||
glDeleteShader_func(vertShader);
|
glDeleteShader(vertShader);
|
||||||
glDeleteProgram_func(program);
|
glDeleteProgram(program);
|
||||||
glutDestroyWindow(win);
|
glutDestroyWindow(win);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,8 +139,6 @@ Init(void)
|
|||||||
if (!ShadersSupported())
|
if (!ShadersSupported())
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
GetExtensionFuncs();
|
|
||||||
|
|
||||||
if (FragProgFile)
|
if (FragProgFile)
|
||||||
fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile);
|
fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile);
|
||||||
else
|
else
|
||||||
@@ -156,7 +151,7 @@ Init(void)
|
|||||||
|
|
||||||
program = LinkShaders(vertShader, fragShader);
|
program = LinkShaders(vertShader, fragShader);
|
||||||
|
|
||||||
glUseProgram_func(program);
|
glUseProgram(program);
|
||||||
|
|
||||||
/*assert(glGetError() == 0);*/
|
/*assert(glGetError() == 0);*/
|
||||||
|
|
||||||
@@ -165,9 +160,9 @@ Init(void)
|
|||||||
|
|
||||||
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
||||||
|
|
||||||
assert(glIsProgram_func(program));
|
assert(glIsProgram(program));
|
||||||
assert(glIsShader_func(fragShader));
|
assert(glIsShader(fragShader));
|
||||||
assert(glIsShader_func(vertShader));
|
assert(glIsShader(vertShader));
|
||||||
|
|
||||||
glColor3f(1, 0, 0);
|
glColor3f(1, 0, 0);
|
||||||
}
|
}
|
||||||
|
@@ -10,10 +10,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <GL/glew.h>
|
#include <GL/glew.h>
|
||||||
#include <GL/gl.h>
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
#include <GL/glext.h>
|
|
||||||
#include "extfuncs.h"
|
|
||||||
#include "shaderutil.h"
|
#include "shaderutil.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -133,11 +130,11 @@ Reshape(int width, int height)
|
|||||||
static void
|
static void
|
||||||
CleanUp(void)
|
CleanUp(void)
|
||||||
{
|
{
|
||||||
glDeleteShader_func(VertShader1);
|
glDeleteShader(VertShader1);
|
||||||
glDeleteShader_func(VertShader2);
|
glDeleteShader(VertShader2);
|
||||||
glDeleteShader_func(FragShader1);
|
glDeleteShader(FragShader1);
|
||||||
glDeleteShader_func(FragShader2);
|
glDeleteShader(FragShader2);
|
||||||
glDeleteProgram_func(Program);
|
glDeleteProgram(Program);
|
||||||
glutDestroyWindow(Win);
|
glutDestroyWindow(Win);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -176,11 +173,11 @@ static void
|
|||||||
CheckLink(GLuint prog)
|
CheckLink(GLuint prog)
|
||||||
{
|
{
|
||||||
GLint stat;
|
GLint stat;
|
||||||
glGetProgramiv_func(prog, GL_LINK_STATUS, &stat);
|
glGetProgramiv(prog, GL_LINK_STATUS, &stat);
|
||||||
if (!stat) {
|
if (!stat) {
|
||||||
GLchar log[1000];
|
GLchar log[1000];
|
||||||
GLsizei len;
|
GLsizei len;
|
||||||
glGetProgramInfoLog_func(prog, 1000, &len, log);
|
glGetProgramInfoLog(prog, 1000, &len, log);
|
||||||
fprintf(stderr, "Linker error:\n%s\n", log);
|
fprintf(stderr, "Linker error:\n%s\n", log);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -192,8 +189,6 @@ Init(void)
|
|||||||
if (!ShadersSupported())
|
if (!ShadersSupported())
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
GetExtensionFuncs();
|
|
||||||
|
|
||||||
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
||||||
|
|
||||||
VertShader1 = CompileShaderText(GL_VERTEX_SHADER, VertShaderSource1);
|
VertShader1 = CompileShaderText(GL_VERTEX_SHADER, VertShaderSource1);
|
||||||
@@ -201,26 +196,26 @@ Init(void)
|
|||||||
FragShader1 = CompileShaderText(GL_FRAGMENT_SHADER, FragShaderSource1);
|
FragShader1 = CompileShaderText(GL_FRAGMENT_SHADER, FragShaderSource1);
|
||||||
FragShader2 = CompileShaderText(GL_FRAGMENT_SHADER, FragShaderSource2);
|
FragShader2 = CompileShaderText(GL_FRAGMENT_SHADER, FragShaderSource2);
|
||||||
|
|
||||||
Program = glCreateProgram_func();
|
Program = glCreateProgram();
|
||||||
glAttachShader_func(Program, VertShader1);
|
glAttachShader(Program, VertShader1);
|
||||||
glAttachShader_func(Program, VertShader2);
|
glAttachShader(Program, VertShader2);
|
||||||
glAttachShader_func(Program, FragShader1);
|
glAttachShader(Program, FragShader1);
|
||||||
glAttachShader_func(Program, FragShader2);
|
glAttachShader(Program, FragShader2);
|
||||||
|
|
||||||
glLinkProgram_func(Program);
|
glLinkProgram(Program);
|
||||||
|
|
||||||
CheckLink(Program);
|
CheckLink(Program);
|
||||||
|
|
||||||
glUseProgram_func(Program);
|
glUseProgram(Program);
|
||||||
|
|
||||||
uDiffuse = glGetUniformLocation_func(Program, "diffuse");
|
uDiffuse = glGetUniformLocation(Program, "diffuse");
|
||||||
uSpecular = glGetUniformLocation_func(Program, "specular");
|
uSpecular = glGetUniformLocation(Program, "specular");
|
||||||
uTexture = glGetUniformLocation_func(Program, "texture");
|
uTexture = glGetUniformLocation(Program, "texture");
|
||||||
printf("DiffusePos %d SpecularPos %d TexturePos %d\n",
|
printf("DiffusePos %d SpecularPos %d TexturePos %d\n",
|
||||||
uDiffuse, uSpecular, uTexture);
|
uDiffuse, uSpecular, uTexture);
|
||||||
|
|
||||||
glUniform4fv_func(uDiffuse, 1, diffuse);
|
glUniform4fv(uDiffuse, 1, diffuse);
|
||||||
glUniform4fv_func(uSpecular, 1, specular);
|
glUniform4fv(uSpecular, 1, specular);
|
||||||
|
|
||||||
glClearColor(0.3f, 0.3f, 0.3f, 0.0f);
|
glClearColor(0.3f, 0.3f, 0.3f, 0.0f);
|
||||||
glEnable(GL_DEPTH_TEST);
|
glEnable(GL_DEPTH_TEST);
|
||||||
@@ -229,11 +224,11 @@ Init(void)
|
|||||||
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specular);
|
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specular);
|
||||||
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 10.0f);
|
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 10.0f);
|
||||||
|
|
||||||
assert(glIsProgram_func(Program));
|
assert(glIsProgram(Program));
|
||||||
assert(glIsShader_func(VertShader1));
|
assert(glIsShader(VertShader1));
|
||||||
assert(glIsShader_func(VertShader2));
|
assert(glIsShader(VertShader2));
|
||||||
assert(glIsShader_func(FragShader1));
|
assert(glIsShader(FragShader1));
|
||||||
assert(glIsShader_func(FragShader2));
|
assert(glIsShader(FragShader2));
|
||||||
|
|
||||||
glColor3f(1, 0, 0);
|
glColor3f(1, 0, 0);
|
||||||
}
|
}
|
||||||
|
@@ -10,10 +10,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <GL/glew.h>
|
#include <GL/glew.h>
|
||||||
#include <GL/gl.h>
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
#include <GL/glext.h>
|
|
||||||
#include "extfuncs.h"
|
|
||||||
#include "shaderutil.h"
|
#include "shaderutil.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -57,9 +54,9 @@ Redisplay(void)
|
|||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
/* set interactive uniform parameters */
|
/* set interactive uniform parameters */
|
||||||
glUniform1fv_func(uZoom, 1, &zoom);
|
glUniform1fv(uZoom, 1, &zoom);
|
||||||
glUniform1fv_func(uXcenter, 1, &xCenter);
|
glUniform1fv(uXcenter, 1, &xCenter);
|
||||||
glUniform1fv_func(uYcenter, 1, &yCenter);
|
glUniform1fv(uYcenter, 1, &yCenter);
|
||||||
|
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glRotatef(xRot, 1.0f, 0.0f, 0.0f);
|
glRotatef(xRot, 1.0f, 0.0f, 0.0f);
|
||||||
@@ -95,9 +92,9 @@ Reshape(int width, int height)
|
|||||||
static void
|
static void
|
||||||
CleanUp(void)
|
CleanUp(void)
|
||||||
{
|
{
|
||||||
glDeleteShader_func(fragShader);
|
glDeleteShader(fragShader);
|
||||||
glDeleteShader_func(vertShader);
|
glDeleteShader(vertShader);
|
||||||
glDeleteProgram_func(program);
|
glDeleteProgram(program);
|
||||||
glutDestroyWindow(win);
|
glutDestroyWindow(win);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -156,19 +153,17 @@ Init(void)
|
|||||||
if (!ShadersSupported())
|
if (!ShadersSupported())
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
GetExtensionFuncs();
|
|
||||||
|
|
||||||
vertShader = CompileShaderFile(GL_VERTEX_SHADER, VertProgFile);
|
vertShader = CompileShaderFile(GL_VERTEX_SHADER, VertProgFile);
|
||||||
fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile);
|
fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile);
|
||||||
program = LinkShaders(vertShader, fragShader);
|
program = LinkShaders(vertShader, fragShader);
|
||||||
|
|
||||||
glUseProgram_func(program);
|
glUseProgram(program);
|
||||||
|
|
||||||
InitUniforms(program, Uniforms);
|
InitUniforms(program, Uniforms);
|
||||||
|
|
||||||
uZoom = glGetUniformLocation_func(program, "Zoom");
|
uZoom = glGetUniformLocation(program, "Zoom");
|
||||||
uXcenter = glGetUniformLocation_func(program, "Xcenter");
|
uXcenter = glGetUniformLocation(program, "Xcenter");
|
||||||
uYcenter = glGetUniformLocation_func(program, "Ycenter");
|
uYcenter = glGetUniformLocation(program, "Ycenter");
|
||||||
|
|
||||||
assert(glGetError() == 0);
|
assert(glGetError() == 0);
|
||||||
|
|
||||||
@@ -176,9 +171,9 @@ Init(void)
|
|||||||
|
|
||||||
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
||||||
|
|
||||||
assert(glIsProgram_func(program));
|
assert(glIsProgram(program));
|
||||||
assert(glIsShader_func(fragShader));
|
assert(glIsShader(fragShader));
|
||||||
assert(glIsShader_func(vertShader));
|
assert(glIsShader(vertShader));
|
||||||
|
|
||||||
glColor3f(1, 0, 0);
|
glColor3f(1, 0, 0);
|
||||||
}
|
}
|
||||||
|
@@ -9,10 +9,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <GL/glew.h>
|
#include <GL/glew.h>
|
||||||
#include <GL/gl.h>
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
#include <GL/glext.h>
|
|
||||||
#include "extfuncs.h"
|
|
||||||
|
|
||||||
static const char *VertShaderText =
|
static const char *VertShaderText =
|
||||||
"void main() {\n"
|
"void main() {\n"
|
||||||
@@ -108,10 +105,10 @@ CleanUp(void)
|
|||||||
{
|
{
|
||||||
GLint i;
|
GLint i;
|
||||||
|
|
||||||
glDeleteShader_func(vertShader);
|
glDeleteShader(vertShader);
|
||||||
for( i = 0; i < 4; i++ ) {
|
for( i = 0; i < 4; i++ ) {
|
||||||
glDeleteShader_func(fragShader[ i ]);
|
glDeleteShader(fragShader[ i ]);
|
||||||
glDeleteProgram_func(program[ i ]);
|
glDeleteProgram(program[ i ]);
|
||||||
}
|
}
|
||||||
glutDestroyWindow(win);
|
glutDestroyWindow(win);
|
||||||
}
|
}
|
||||||
@@ -144,7 +141,7 @@ Key(unsigned char key, int x, int y)
|
|||||||
case '2':
|
case '2':
|
||||||
case '3':
|
case '3':
|
||||||
case '4':
|
case '4':
|
||||||
glUseProgram_func(program[ key - '1' ]);
|
glUseProgram(program[ key - '1' ]);
|
||||||
break;
|
break;
|
||||||
case 27:
|
case 27:
|
||||||
CleanUp();
|
CleanUp();
|
||||||
@@ -187,15 +184,15 @@ LoadAndCompileShader(GLuint shader, const char *text)
|
|||||||
{
|
{
|
||||||
GLint stat;
|
GLint stat;
|
||||||
|
|
||||||
glShaderSource_func(shader, 1, (const GLchar **) &text, NULL);
|
glShaderSource(shader, 1, (const GLchar **) &text, NULL);
|
||||||
|
|
||||||
glCompileShader_func(shader);
|
glCompileShader(shader);
|
||||||
|
|
||||||
glGetShaderiv_func(shader, GL_COMPILE_STATUS, &stat);
|
glGetShaderiv(shader, GL_COMPILE_STATUS, &stat);
|
||||||
if (!stat) {
|
if (!stat) {
|
||||||
GLchar log[1000];
|
GLchar log[1000];
|
||||||
GLsizei len;
|
GLsizei len;
|
||||||
glGetShaderInfoLog_func(shader, 1000, &len, log);
|
glGetShaderInfoLog(shader, 1000, &len, log);
|
||||||
fprintf(stderr, "noise: problem compiling shader: %s\n", log);
|
fprintf(stderr, "noise: problem compiling shader: %s\n", log);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
@@ -209,11 +206,11 @@ static void
|
|||||||
CheckLink(GLuint prog)
|
CheckLink(GLuint prog)
|
||||||
{
|
{
|
||||||
GLint stat;
|
GLint stat;
|
||||||
glGetProgramiv_func(prog, GL_LINK_STATUS, &stat);
|
glGetProgramiv(prog, GL_LINK_STATUS, &stat);
|
||||||
if (!stat) {
|
if (!stat) {
|
||||||
GLchar log[1000];
|
GLchar log[1000];
|
||||||
GLsizei len;
|
GLsizei len;
|
||||||
glGetProgramInfoLog_func(prog, 1000, &len, log);
|
glGetProgramInfoLog(prog, 1000, &len, log);
|
||||||
fprintf(stderr, "Linker error:\n%s\n", log);
|
fprintf(stderr, "Linker error:\n%s\n", log);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -234,22 +231,20 @@ Init(void)
|
|||||||
/*exit(1);*/
|
/*exit(1);*/
|
||||||
}
|
}
|
||||||
|
|
||||||
GetExtensionFuncs();
|
vertShader = glCreateShader(GL_VERTEX_SHADER);
|
||||||
|
|
||||||
vertShader = glCreateShader_func(GL_VERTEX_SHADER);
|
|
||||||
LoadAndCompileShader(vertShader, VertShaderText);
|
LoadAndCompileShader(vertShader, VertShaderText);
|
||||||
|
|
||||||
for( i = 0; i < 4; i++ ) {
|
for( i = 0; i < 4; i++ ) {
|
||||||
fragShader[ i ] = glCreateShader_func(GL_FRAGMENT_SHADER);
|
fragShader[ i ] = glCreateShader(GL_FRAGMENT_SHADER);
|
||||||
LoadAndCompileShader(fragShader[ i ], FragShaderText[ i ]);
|
LoadAndCompileShader(fragShader[ i ], FragShaderText[ i ]);
|
||||||
program[ i ] = glCreateProgram_func();
|
program[ i ] = glCreateProgram();
|
||||||
glAttachShader_func(program[ i ], fragShader[ i ]);
|
glAttachShader(program[ i ], fragShader[ i ]);
|
||||||
glAttachShader_func(program[ i ], vertShader);
|
glAttachShader(program[ i ], vertShader);
|
||||||
glLinkProgram_func(program[ i ]);
|
glLinkProgram(program[ i ]);
|
||||||
CheckLink(program[ i ]);
|
CheckLink(program[ i ]);
|
||||||
}
|
}
|
||||||
|
|
||||||
glUseProgram_func(program[ 0 ]);
|
glUseProgram(program[ 0 ]);
|
||||||
|
|
||||||
assert(glGetError() == 0);
|
assert(glGetError() == 0);
|
||||||
|
|
||||||
|
@@ -31,7 +31,6 @@
|
|||||||
#include <GL/glew.h>
|
#include <GL/glew.h>
|
||||||
#include "GL/glut.h"
|
#include "GL/glut.h"
|
||||||
#include "readtex.h"
|
#include "readtex.h"
|
||||||
#include "extfuncs.h"
|
|
||||||
#include "shaderutil.h"
|
#include "shaderutil.h"
|
||||||
|
|
||||||
static const char *Demo = "multitex";
|
static const char *Demo = "multitex";
|
||||||
@@ -81,22 +80,22 @@ static void
|
|||||||
DrawPolygonArray(void)
|
DrawPolygonArray(void)
|
||||||
{
|
{
|
||||||
if (VertCoord_attr >= 0) {
|
if (VertCoord_attr >= 0) {
|
||||||
glVertexAttribPointer_func(VertCoord_attr, 2, GL_FLOAT, GL_FALSE,
|
glVertexAttribPointer(VertCoord_attr, 2, GL_FLOAT, GL_FALSE,
|
||||||
0, VertCoords);
|
0, VertCoords);
|
||||||
glEnableVertexAttribArray_func(VertCoord_attr);
|
glEnableVertexAttribArray(VertCoord_attr);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
glVertexPointer(2, GL_FLOAT, 0, VertCoords);
|
glVertexPointer(2, GL_FLOAT, 0, VertCoords);
|
||||||
glEnable(GL_VERTEX_ARRAY);
|
glEnable(GL_VERTEX_ARRAY);
|
||||||
}
|
}
|
||||||
|
|
||||||
glVertexAttribPointer_func(TexCoord0_attr, 2, GL_FLOAT, GL_FALSE,
|
glVertexAttribPointer(TexCoord0_attr, 2, GL_FLOAT, GL_FALSE,
|
||||||
0, Tex0Coords);
|
0, Tex0Coords);
|
||||||
glEnableVertexAttribArray_func(TexCoord0_attr);
|
glEnableVertexAttribArray(TexCoord0_attr);
|
||||||
|
|
||||||
glVertexAttribPointer_func(TexCoord1_attr, 2, GL_FLOAT, GL_FALSE,
|
glVertexAttribPointer(TexCoord1_attr, 2, GL_FLOAT, GL_FALSE,
|
||||||
0, Tex1Coords);
|
0, Tex1Coords);
|
||||||
glEnableVertexAttribArray_func(TexCoord1_attr);
|
glEnableVertexAttribArray(TexCoord1_attr);
|
||||||
|
|
||||||
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
|
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
|
||||||
}
|
}
|
||||||
@@ -110,11 +109,11 @@ DrawPolygonVert(void)
|
|||||||
glBegin(GL_TRIANGLE_FAN);
|
glBegin(GL_TRIANGLE_FAN);
|
||||||
|
|
||||||
for (i = 0; i < 4; i++) {
|
for (i = 0; i < 4; i++) {
|
||||||
glVertexAttrib2fv_func(TexCoord0_attr, Tex0Coords[i]);
|
glVertexAttrib2fv(TexCoord0_attr, Tex0Coords[i]);
|
||||||
glVertexAttrib2fv_func(TexCoord1_attr, Tex1Coords[i]);
|
glVertexAttrib2fv(TexCoord1_attr, Tex1Coords[i]);
|
||||||
|
|
||||||
if (VertCoord_attr >= 0)
|
if (VertCoord_attr >= 0)
|
||||||
glVertexAttrib2fv_func(VertCoord_attr, VertCoords[i]);
|
glVertexAttrib2fv(VertCoord_attr, VertCoords[i]);
|
||||||
else
|
else
|
||||||
glVertex2fv(VertCoords[i]);
|
glVertex2fv(VertCoords[i]);
|
||||||
}
|
}
|
||||||
@@ -268,27 +267,27 @@ CreateProgram(const char *vertProgFile, const char *fragProgFile,
|
|||||||
assert(vertShader);
|
assert(vertShader);
|
||||||
program = LinkShaders(vertShader, fragShader);
|
program = LinkShaders(vertShader, fragShader);
|
||||||
|
|
||||||
glUseProgram_func(program);
|
glUseProgram(program);
|
||||||
|
|
||||||
InitUniforms(program, uniforms);
|
InitUniforms(program, uniforms);
|
||||||
|
|
||||||
VertCoord_attr = glGetAttribLocation_func(program, "VertCoord");
|
VertCoord_attr = glGetAttribLocation(program, "VertCoord");
|
||||||
if (VertCoord_attr > 0) {
|
if (VertCoord_attr > 0) {
|
||||||
/* We want the VertCoord attrib to have position zero so that
|
/* We want the VertCoord attrib to have position zero so that
|
||||||
* the call to glVertexAttrib(0, xyz) triggers vertex processing.
|
* the call to glVertexAttrib(0, xyz) triggers vertex processing.
|
||||||
* Otherwise, if TexCoord0 or TexCoord1 gets position 0 we'd have
|
* Otherwise, if TexCoord0 or TexCoord1 gets position 0 we'd have
|
||||||
* to set that attribute last (which is a PITA to manage).
|
* to set that attribute last (which is a PITA to manage).
|
||||||
*/
|
*/
|
||||||
glBindAttribLocation_func(program, 0, "VertCoord");
|
glBindAttribLocation(program, 0, "VertCoord");
|
||||||
/* re-link */
|
/* re-link */
|
||||||
glLinkProgram_func(program);
|
glLinkProgram(program);
|
||||||
/* VertCoord_attr should be zero now */
|
/* VertCoord_attr should be zero now */
|
||||||
VertCoord_attr = glGetAttribLocation_func(program, "VertCoord");
|
VertCoord_attr = glGetAttribLocation(program, "VertCoord");
|
||||||
assert(VertCoord_attr == 0);
|
assert(VertCoord_attr == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
TexCoord0_attr = glGetAttribLocation_func(program, "TexCoord0");
|
TexCoord0_attr = glGetAttribLocation(program, "TexCoord0");
|
||||||
TexCoord1_attr = glGetAttribLocation_func(program, "TexCoord1");
|
TexCoord1_attr = glGetAttribLocation(program, "TexCoord1");
|
||||||
|
|
||||||
printf("TexCoord0_attr = %d\n", TexCoord0_attr);
|
printf("TexCoord0_attr = %d\n", TexCoord0_attr);
|
||||||
printf("TexCoord1_attr = %d\n", TexCoord1_attr);
|
printf("TexCoord1_attr = %d\n", TexCoord1_attr);
|
||||||
@@ -316,8 +315,6 @@ InitGL(void)
|
|||||||
}
|
}
|
||||||
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
||||||
|
|
||||||
GetExtensionFuncs();
|
|
||||||
|
|
||||||
InitTextures();
|
InitTextures();
|
||||||
InitPrograms();
|
InitPrograms();
|
||||||
|
|
||||||
|
@@ -9,10 +9,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <GL/glew.h>
|
#include <GL/glew.h>
|
||||||
#include <GL/gl.h>
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
#include <GL/glext.h>
|
|
||||||
#include "extfuncs.h"
|
|
||||||
#include "shaderutil.h"
|
#include "shaderutil.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -68,7 +65,7 @@ Redisplay(void)
|
|||||||
{
|
{
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
glUniform1fv_func(Uniforms[2].location, 1, &Slice);
|
glUniform1fv(Uniforms[2].location, 1, &Slice);
|
||||||
|
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glRotatef(xRot, 1.0f, 0.0f, 0.0f);
|
glRotatef(xRot, 1.0f, 0.0f, 0.0f);
|
||||||
@@ -104,9 +101,9 @@ Reshape(int width, int height)
|
|||||||
static void
|
static void
|
||||||
CleanUp(void)
|
CleanUp(void)
|
||||||
{
|
{
|
||||||
glDeleteShader_func(fragShader);
|
glDeleteShader(fragShader);
|
||||||
glDeleteShader_func(vertShader);
|
glDeleteShader(vertShader);
|
||||||
glDeleteProgram_func(program);
|
glDeleteProgram(program);
|
||||||
glutDestroyWindow(win);
|
glutDestroyWindow(win);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -176,13 +173,11 @@ Init(void)
|
|||||||
if (!ShadersSupported())
|
if (!ShadersSupported())
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
GetExtensionFuncs();
|
|
||||||
|
|
||||||
vertShader = CompileShaderText(GL_VERTEX_SHADER, VertShaderText);
|
vertShader = CompileShaderText(GL_VERTEX_SHADER, VertShaderText);
|
||||||
fragShader = CompileShaderText(GL_FRAGMENT_SHADER, FragShaderText);
|
fragShader = CompileShaderText(GL_FRAGMENT_SHADER, FragShaderText);
|
||||||
program = LinkShaders(vertShader, fragShader);
|
program = LinkShaders(vertShader, fragShader);
|
||||||
|
|
||||||
glUseProgram_func(program);
|
glUseProgram(program);
|
||||||
|
|
||||||
InitUniforms(program, Uniforms);
|
InitUniforms(program, Uniforms);
|
||||||
|
|
||||||
@@ -192,9 +187,9 @@ Init(void)
|
|||||||
|
|
||||||
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
||||||
|
|
||||||
assert(glIsProgram_func(program));
|
assert(glIsProgram(program));
|
||||||
assert(glIsShader_func(fragShader));
|
assert(glIsShader(fragShader));
|
||||||
assert(glIsShader_func(vertShader));
|
assert(glIsShader(vertShader));
|
||||||
|
|
||||||
glColor3f(1, 0, 0);
|
glColor3f(1, 0, 0);
|
||||||
}
|
}
|
||||||
|
@@ -11,10 +11,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <GL/glew.h>
|
#include <GL/glew.h>
|
||||||
#include <GL/gl.h>
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
#include <GL/glext.h>
|
|
||||||
#include "extfuncs.h"
|
|
||||||
#include "shaderutil.h"
|
#include "shaderutil.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -65,9 +62,9 @@ Reshape(int width, int height)
|
|||||||
static void
|
static void
|
||||||
CleanUp(void)
|
CleanUp(void)
|
||||||
{
|
{
|
||||||
glDeleteShader_func(fragShader);
|
glDeleteShader(fragShader);
|
||||||
glDeleteShader_func(vertShader);
|
glDeleteShader(vertShader);
|
||||||
glDeleteProgram_func(program);
|
glDeleteProgram(program);
|
||||||
glutDestroyWindow(win);
|
glutDestroyWindow(win);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,18 +139,16 @@ Init(void)
|
|||||||
if (!ShadersSupported())
|
if (!ShadersSupported())
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
GetExtensionFuncs();
|
|
||||||
|
|
||||||
vertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText);
|
vertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText);
|
||||||
fragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText);
|
fragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText);
|
||||||
program = LinkShaders(vertShader, fragShader);
|
program = LinkShaders(vertShader, fragShader);
|
||||||
|
|
||||||
glUseProgram_func(program);
|
glUseProgram(program);
|
||||||
|
|
||||||
tex0 = glGetUniformLocation_func(program, "tex0");
|
tex0 = glGetUniformLocation(program, "tex0");
|
||||||
printf("Uniforms: tex0: %d\n", tex0);
|
printf("Uniforms: tex0: %d\n", tex0);
|
||||||
|
|
||||||
glUniform1i_func(tex0, 0); /* tex unit 0 */
|
glUniform1i(tex0, 0); /* tex unit 0 */
|
||||||
|
|
||||||
/*assert(glGetError() == 0);*/
|
/*assert(glGetError() == 0);*/
|
||||||
|
|
||||||
@@ -161,9 +156,9 @@ Init(void)
|
|||||||
|
|
||||||
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
||||||
|
|
||||||
assert(glIsProgram_func(program));
|
assert(glIsProgram(program));
|
||||||
assert(glIsShader_func(fragShader));
|
assert(glIsShader(fragShader));
|
||||||
assert(glIsShader_func(vertShader));
|
assert(glIsShader(vertShader));
|
||||||
|
|
||||||
MakeTexture();
|
MakeTexture();
|
||||||
|
|
||||||
|
@@ -11,10 +11,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <GL/glew.h>
|
#include <GL/glew.h>
|
||||||
#include <GL/gl.h>
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
#include <GL/glext.h>
|
|
||||||
#include "extfuncs.h"
|
|
||||||
#include "shaderutil.h"
|
#include "shaderutil.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -100,7 +97,7 @@ Redisplay(void)
|
|||||||
*/
|
*/
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glTranslatef(0, 1.2, 0);
|
glTranslatef(0, 1.2, 0);
|
||||||
glUseProgram_func(0);
|
glUseProgram(0);
|
||||||
DrawPoints(GL_FALSE);
|
DrawPoints(GL_FALSE);
|
||||||
glPopMatrix();
|
glPopMatrix();
|
||||||
|
|
||||||
@@ -109,9 +106,9 @@ Redisplay(void)
|
|||||||
*/
|
*/
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glTranslatef(0, -1.2, 0);
|
glTranslatef(0, -1.2, 0);
|
||||||
glUseProgram_func(Program);
|
glUseProgram(Program);
|
||||||
if (uViewportInv != -1) {
|
if (uViewportInv != -1) {
|
||||||
glUniform2f_func(uViewportInv, 1.0 / WinWidth, 1.0 / WinHeight);
|
glUniform2f(uViewportInv, 1.0 / WinWidth, 1.0 / WinHeight);
|
||||||
}
|
}
|
||||||
DrawPoints(GL_TRUE);
|
DrawPoints(GL_TRUE);
|
||||||
glPopMatrix();
|
glPopMatrix();
|
||||||
@@ -151,9 +148,9 @@ Key(unsigned char key, int x, int y)
|
|||||||
Smooth = !Smooth;
|
Smooth = !Smooth;
|
||||||
break;
|
break;
|
||||||
case 27:
|
case 27:
|
||||||
glDeleteShader_func(FragShader);
|
glDeleteShader(FragShader);
|
||||||
glDeleteShader_func(VertShader);
|
glDeleteShader(VertShader);
|
||||||
glDeleteProgram_func(Program);
|
glDeleteProgram(Program);
|
||||||
glutDestroyWindow(Win);
|
glutDestroyWindow(Win);
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
@@ -226,17 +223,15 @@ Init(void)
|
|||||||
if (!ShadersSupported())
|
if (!ShadersSupported())
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
GetExtensionFuncs();
|
|
||||||
|
|
||||||
VertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText);
|
VertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText);
|
||||||
FragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText);
|
FragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText);
|
||||||
Program = LinkShaders(VertShader, FragShader);
|
Program = LinkShaders(VertShader, FragShader);
|
||||||
|
|
||||||
glUseProgram_func(Program);
|
glUseProgram(Program);
|
||||||
|
|
||||||
uViewportInv = glGetUniformLocation_func(Program, "viewportInv");
|
uViewportInv = glGetUniformLocation(Program, "viewportInv");
|
||||||
|
|
||||||
glUseProgram_func(0);
|
glUseProgram(0);
|
||||||
|
|
||||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
}
|
}
|
||||||
|
@@ -42,7 +42,6 @@
|
|||||||
#include <GL/glew.h>
|
#include <GL/glew.h>
|
||||||
#include "GL/glut.h"
|
#include "GL/glut.h"
|
||||||
#include "readtex.h"
|
#include "readtex.h"
|
||||||
#include "extfuncs.h"
|
|
||||||
#include "shaderutil.h"
|
#include "shaderutil.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -291,7 +290,7 @@ CreateProgram(void)
|
|||||||
assert(vertShader);
|
assert(vertShader);
|
||||||
program = LinkShaders(vertShader, fragShader);
|
program = LinkShaders(vertShader, fragShader);
|
||||||
|
|
||||||
glUseProgram_func(program);
|
glUseProgram(program);
|
||||||
|
|
||||||
free(fragShaderText);
|
free(fragShaderText);
|
||||||
|
|
||||||
@@ -316,10 +315,10 @@ InitProgram(void)
|
|||||||
#else
|
#else
|
||||||
sprintf(uname, "tex[%d]", s);
|
sprintf(uname, "tex[%d]", s);
|
||||||
#endif
|
#endif
|
||||||
loc = glGetUniformLocation_func(Program, uname);
|
loc = glGetUniformLocation(Program, uname);
|
||||||
assert(loc >= 0);
|
assert(loc >= 0);
|
||||||
|
|
||||||
glUniform1i_func(loc, s);
|
glUniform1i(loc, s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -334,8 +333,6 @@ InitGL(void)
|
|||||||
|
|
||||||
printf("GL_RENDERER = %s\n", (const char *) glGetString(GL_RENDERER));
|
printf("GL_RENDERER = %s\n", (const char *) glGetString(GL_RENDERER));
|
||||||
|
|
||||||
GetExtensionFuncs();
|
|
||||||
|
|
||||||
glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &NumSamplers);
|
glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &NumSamplers);
|
||||||
if (NumSamplers > MAX_SAMPLERS)
|
if (NumSamplers > MAX_SAMPLERS)
|
||||||
NumSamplers = MAX_SAMPLERS;
|
NumSamplers = MAX_SAMPLERS;
|
||||||
|
@@ -11,10 +11,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <GL/glew.h>
|
#include <GL/glew.h>
|
||||||
#include <GL/gl.h>
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
#include <GL/glext.h>
|
|
||||||
#include "extfuncs.h"
|
|
||||||
|
|
||||||
|
|
||||||
/** Use GL_RECTANGLE texture (with projective texcoords)? */
|
/** Use GL_RECTANGLE texture (with projective texcoords)? */
|
||||||
@@ -67,7 +64,7 @@ Redisplay(void)
|
|||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
|
|
||||||
CheckError(__LINE__);
|
CheckError(__LINE__);
|
||||||
glUseProgram_func(program);
|
glUseProgram(program);
|
||||||
CheckError(__LINE__);
|
CheckError(__LINE__);
|
||||||
|
|
||||||
glBegin(GL_POLYGON);
|
glBegin(GL_POLYGON);
|
||||||
@@ -87,7 +84,7 @@ Redisplay(void)
|
|||||||
|
|
||||||
glPopMatrix();
|
glPopMatrix();
|
||||||
|
|
||||||
glUseProgram_func(0);
|
glUseProgram(0);
|
||||||
glWindowPos2iARB(80, 20);
|
glWindowPos2iARB(80, 20);
|
||||||
PrintString("white black white black");
|
PrintString("white black white black");
|
||||||
|
|
||||||
@@ -111,9 +108,9 @@ Reshape(int width, int height)
|
|||||||
static void
|
static void
|
||||||
CleanUp(void)
|
CleanUp(void)
|
||||||
{
|
{
|
||||||
glDeleteShader_func(fragShader);
|
glDeleteShader(fragShader);
|
||||||
glDeleteShader_func(vertShader);
|
glDeleteShader(vertShader);
|
||||||
glDeleteProgram_func(program);
|
glDeleteProgram(program);
|
||||||
glutDestroyWindow(win);
|
glutDestroyWindow(win);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -179,13 +176,13 @@ static void
|
|||||||
LoadAndCompileShader(GLuint shader, const char *text)
|
LoadAndCompileShader(GLuint shader, const char *text)
|
||||||
{
|
{
|
||||||
GLint stat;
|
GLint stat;
|
||||||
glShaderSource_func(shader, 1, (const GLchar **) &text, NULL);
|
glShaderSource(shader, 1, (const GLchar **) &text, NULL);
|
||||||
glCompileShader_func(shader);
|
glCompileShader(shader);
|
||||||
glGetShaderiv_func(shader, GL_COMPILE_STATUS, &stat);
|
glGetShaderiv(shader, GL_COMPILE_STATUS, &stat);
|
||||||
if (!stat) {
|
if (!stat) {
|
||||||
GLchar log[1000];
|
GLchar log[1000];
|
||||||
GLsizei len;
|
GLsizei len;
|
||||||
glGetShaderInfoLog_func(shader, 1000, &len, log);
|
glGetShaderInfoLog(shader, 1000, &len, log);
|
||||||
fprintf(stderr, "fslight: problem compiling shader:\n%s\n", log);
|
fprintf(stderr, "fslight: problem compiling shader:\n%s\n", log);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
@@ -223,11 +220,11 @@ static void
|
|||||||
CheckLink(GLuint prog)
|
CheckLink(GLuint prog)
|
||||||
{
|
{
|
||||||
GLint stat;
|
GLint stat;
|
||||||
glGetProgramiv_func(prog, GL_LINK_STATUS, &stat);
|
glGetProgramiv(prog, GL_LINK_STATUS, &stat);
|
||||||
if (!stat) {
|
if (!stat) {
|
||||||
GLchar log[1000];
|
GLchar log[1000];
|
||||||
GLsizei len;
|
GLsizei len;
|
||||||
glGetProgramInfoLog_func(prog, 1000, &len, log);
|
glGetProgramInfoLog(prog, 1000, &len, log);
|
||||||
fprintf(stderr, "Linker error:\n%s\n", log);
|
fprintf(stderr, "Linker error:\n%s\n", log);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -267,35 +264,33 @@ Init(void)
|
|||||||
}
|
}
|
||||||
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
||||||
|
|
||||||
GetExtensionFuncs();
|
fragShader = glCreateShader(GL_FRAGMENT_SHADER);
|
||||||
|
|
||||||
fragShader = glCreateShader_func(GL_FRAGMENT_SHADER);
|
|
||||||
if (FragProgFile)
|
if (FragProgFile)
|
||||||
ReadShader(fragShader, FragProgFile);
|
ReadShader(fragShader, FragProgFile);
|
||||||
else
|
else
|
||||||
LoadAndCompileShader(fragShader, fragShaderText);
|
LoadAndCompileShader(fragShader, fragShaderText);
|
||||||
|
|
||||||
vertShader = glCreateShader_func(GL_VERTEX_SHADER);
|
vertShader = glCreateShader(GL_VERTEX_SHADER);
|
||||||
if (VertProgFile)
|
if (VertProgFile)
|
||||||
ReadShader(vertShader, VertProgFile);
|
ReadShader(vertShader, VertProgFile);
|
||||||
else
|
else
|
||||||
LoadAndCompileShader(vertShader, vertShaderText);
|
LoadAndCompileShader(vertShader, vertShaderText);
|
||||||
|
|
||||||
program = glCreateProgram_func();
|
program = glCreateProgram();
|
||||||
glAttachShader_func(program, fragShader);
|
glAttachShader(program, fragShader);
|
||||||
glAttachShader_func(program, vertShader);
|
glAttachShader(program, vertShader);
|
||||||
glLinkProgram_func(program);
|
glLinkProgram(program);
|
||||||
CheckLink(program);
|
CheckLink(program);
|
||||||
glUseProgram_func(program);
|
glUseProgram(program);
|
||||||
|
|
||||||
uTexture2D = glGetUniformLocation_func(program, "shadowTex2D");
|
uTexture2D = glGetUniformLocation(program, "shadowTex2D");
|
||||||
uTextureRect = glGetUniformLocation_func(program, "shadowTexRect");
|
uTextureRect = glGetUniformLocation(program, "shadowTexRect");
|
||||||
printf("uTexture2D %d uTextureRect %d\n", uTexture2D, uTextureRect);
|
printf("uTexture2D %d uTextureRect %d\n", uTexture2D, uTextureRect);
|
||||||
if (uTexture2D >= 0) {
|
if (uTexture2D >= 0) {
|
||||||
glUniform1i_func(uTexture2D, 0); /* use texture unit 0 */
|
glUniform1i(uTexture2D, 0); /* use texture unit 0 */
|
||||||
}
|
}
|
||||||
if (uTextureRect >= 0) {
|
if (uTextureRect >= 0) {
|
||||||
glUniform1i_func(uTextureRect, 1); /* use texture unit 0 */
|
glUniform1i(uTextureRect, 1); /* use texture unit 0 */
|
||||||
}
|
}
|
||||||
CheckError(__LINE__);
|
CheckError(__LINE__);
|
||||||
|
|
||||||
|
@@ -13,10 +13,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <GL/glew.h>
|
#include <GL/glew.h>
|
||||||
#include <GL/gl.h>
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
#include <GL/glext.h>
|
|
||||||
#include "extfuncs.h"
|
|
||||||
#include "shaderutil.h"
|
#include "shaderutil.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -65,11 +62,11 @@ Cylinder(GLfloat length, GLfloat radius, GLint slices, GLint stacks)
|
|||||||
float a = (float) i / (slices - 1) * M_PI * 2.0;
|
float a = (float) i / (slices - 1) * M_PI * 2.0;
|
||||||
float x = radius * cos(a);
|
float x = radius * cos(a);
|
||||||
float y = radius * sin(a);
|
float y = radius * sin(a);
|
||||||
glVertexAttrib1f_func(WeightAttr, w0);
|
glVertexAttrib1f(WeightAttr, w0);
|
||||||
glNormal3f(x, y, 0.0);
|
glNormal3f(x, y, 0.0);
|
||||||
glVertex3f(x, y, z0);
|
glVertex3f(x, y, z0);
|
||||||
|
|
||||||
glVertexAttrib1f_func(WeightAttr, w0 + dw);
|
glVertexAttrib1f(WeightAttr, w0 + dw);
|
||||||
glNormal3f(x, y, 0.0);
|
glNormal3f(x, y, 0.0);
|
||||||
glVertex3f(x, y, z0 + dz);
|
glVertex3f(x, y, z0 + dz);
|
||||||
}
|
}
|
||||||
@@ -107,8 +104,8 @@ Redisplay(void)
|
|||||||
{
|
{
|
||||||
UpdateMatrices();
|
UpdateMatrices();
|
||||||
|
|
||||||
glUniformMatrix4fv_func(uMat0, 1, GL_FALSE, Matrices[0]);
|
glUniformMatrix4fv(uMat0, 1, GL_FALSE, Matrices[0]);
|
||||||
glUniformMatrix4fv_func(uMat1, 1, GL_FALSE, Matrices[1]);
|
glUniformMatrix4fv(uMat1, 1, GL_FALSE, Matrices[1]);
|
||||||
|
|
||||||
if (WireFrame)
|
if (WireFrame)
|
||||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||||
@@ -149,9 +146,9 @@ Reshape(int width, int height)
|
|||||||
static void
|
static void
|
||||||
CleanUp(void)
|
CleanUp(void)
|
||||||
{
|
{
|
||||||
glDeleteShader_func(fragShader);
|
glDeleteShader(fragShader);
|
||||||
glDeleteShader_func(vertShader);
|
glDeleteShader(vertShader);
|
||||||
glDeleteProgram_func(program);
|
glDeleteProgram(program);
|
||||||
glutDestroyWindow(win);
|
glutDestroyWindow(win);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -222,18 +219,16 @@ Init(void)
|
|||||||
if (!ShadersSupported())
|
if (!ShadersSupported())
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
GetExtensionFuncs();
|
|
||||||
|
|
||||||
vertShader = CompileShaderFile(GL_VERTEX_SHADER, VertProgFile);
|
vertShader = CompileShaderFile(GL_VERTEX_SHADER, VertProgFile);
|
||||||
fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile);
|
fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile);
|
||||||
program = LinkShaders(vertShader, fragShader);
|
program = LinkShaders(vertShader, fragShader);
|
||||||
|
|
||||||
glUseProgram_func(program);
|
glUseProgram(program);
|
||||||
|
|
||||||
uMat0 = glGetUniformLocation_func(program, "mat0");
|
uMat0 = glGetUniformLocation(program, "mat0");
|
||||||
uMat1 = glGetUniformLocation_func(program, "mat1");
|
uMat1 = glGetUniformLocation(program, "mat1");
|
||||||
|
|
||||||
WeightAttr = glGetAttribLocation_func(program, "weight");
|
WeightAttr = glGetAttribLocation(program, "weight");
|
||||||
|
|
||||||
assert(glGetError() == 0);
|
assert(glGetError() == 0);
|
||||||
|
|
||||||
|
@@ -12,10 +12,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <GL/glew.h>
|
#include <GL/glew.h>
|
||||||
#include <GL/gl.h>
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
#include <GL/glext.h>
|
|
||||||
#include "extfuncs.h"
|
|
||||||
|
|
||||||
|
|
||||||
static GLint WinWidth = 300, WinHeight = 300;
|
static GLint WinWidth = 300, WinHeight = 300;
|
||||||
@@ -329,8 +326,6 @@ Init(void)
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
GetExtensionFuncs();
|
|
||||||
|
|
||||||
glClearColor(0.3f, 0.3f, 0.3f, 0.0f);
|
glClearColor(0.3f, 0.3f, 0.3f, 0.0f);
|
||||||
|
|
||||||
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
||||||
|
@@ -31,7 +31,6 @@
|
|||||||
#include <GL/glew.h>
|
#include <GL/glew.h>
|
||||||
#include "GL/glut.h"
|
#include "GL/glut.h"
|
||||||
#include "readtex.h"
|
#include "readtex.h"
|
||||||
#include "extfuncs.h"
|
|
||||||
#include "shaderutil.h"
|
#include "shaderutil.h"
|
||||||
|
|
||||||
static const char *Demo = "texdemo1";
|
static const char *Demo = "texdemo1";
|
||||||
@@ -98,7 +97,7 @@ draw(void)
|
|||||||
/* sphere w/ reflection map */
|
/* sphere w/ reflection map */
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glTranslatef(0, 1, 0);
|
glTranslatef(0, 1, 0);
|
||||||
glUseProgram_func(Program1);
|
glUseProgram(Program1);
|
||||||
|
|
||||||
/* setup texture matrix */
|
/* setup texture matrix */
|
||||||
glActiveTexture(GL_TEXTURE0);
|
glActiveTexture(GL_TEXTURE0);
|
||||||
@@ -117,7 +116,7 @@ draw(void)
|
|||||||
glPopMatrix();
|
glPopMatrix();
|
||||||
|
|
||||||
/* ground */
|
/* ground */
|
||||||
glUseProgram_func(Program2);
|
glUseProgram(Program2);
|
||||||
glTranslatef(0, -1.0, 0);
|
glTranslatef(0, -1.0, 0);
|
||||||
DrawGround(5);
|
DrawGround(5);
|
||||||
|
|
||||||
@@ -381,7 +380,7 @@ CreateProgram(const char *vertProgFile, const char *fragProgFile,
|
|||||||
fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, fragProgFile);
|
fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, fragProgFile);
|
||||||
program = LinkShaders(vertShader, fragShader);
|
program = LinkShaders(vertShader, fragShader);
|
||||||
|
|
||||||
glUseProgram_func(program);
|
glUseProgram(program);
|
||||||
|
|
||||||
InitUniforms(program, uniforms);
|
InitUniforms(program, uniforms);
|
||||||
|
|
||||||
@@ -408,8 +407,6 @@ Init(GLboolean useImageFiles)
|
|||||||
}
|
}
|
||||||
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
||||||
|
|
||||||
GetExtensionFuncs();
|
|
||||||
|
|
||||||
InitTextures(useImageFiles);
|
InitTextures(useImageFiles);
|
||||||
InitPrograms();
|
InitPrograms();
|
||||||
|
|
||||||
|
@@ -10,10 +10,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <GL/glew.h>
|
#include <GL/glew.h>
|
||||||
#include <GL/gl.h>
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
#include <GL/glext.h>
|
|
||||||
#include "extfuncs.h"
|
|
||||||
#include "shaderutil.h"
|
#include "shaderutil.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -100,9 +97,9 @@ Reshape(int width, int height)
|
|||||||
static void
|
static void
|
||||||
CleanUp(void)
|
CleanUp(void)
|
||||||
{
|
{
|
||||||
glDeleteShader_func(fragShader);
|
glDeleteShader(fragShader);
|
||||||
glDeleteShader_func(vertShader);
|
glDeleteShader(vertShader);
|
||||||
glDeleteProgram_func(program);
|
glDeleteProgram(program);
|
||||||
glutDestroyWindow(win);
|
glutDestroyWindow(win);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,13 +167,11 @@ Init(void)
|
|||||||
if (!ShadersSupported())
|
if (!ShadersSupported())
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
GetExtensionFuncs();
|
|
||||||
|
|
||||||
vertShader = CompileShaderFile(GL_VERTEX_SHADER, VertProgFile);
|
vertShader = CompileShaderFile(GL_VERTEX_SHADER, VertProgFile);
|
||||||
fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile);
|
fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile);
|
||||||
program = LinkShaders(vertShader, fragShader);
|
program = LinkShaders(vertShader, fragShader);
|
||||||
|
|
||||||
glUseProgram_func(program);
|
glUseProgram(program);
|
||||||
|
|
||||||
InitUniforms(program, Uniforms);
|
InitUniforms(program, Uniforms);
|
||||||
|
|
||||||
|
@@ -16,10 +16,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <GL/glew.h>
|
#include <GL/glew.h>
|
||||||
#include <GL/gl.h>
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
#include <GL/glext.h>
|
|
||||||
#include "extfuncs.h"
|
|
||||||
#include "shaderutil.h"
|
#include "shaderutil.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -86,9 +83,9 @@ Redisplay(void)
|
|||||||
RotateVerts(Zrot, 3, TriVerts, v);
|
RotateVerts(Zrot, 3, TriVerts, v);
|
||||||
ComputeBounds(3, v, &xmin, &ymin, &xmax, &ymax);
|
ComputeBounds(3, v, &xmin, &ymin, &xmax, &ymax);
|
||||||
|
|
||||||
glUniform2fv_func(uv0, 1, v[0]);
|
glUniform2fv(uv0, 1, v[0]);
|
||||||
glUniform2fv_func(uv1, 1, v[1]);
|
glUniform2fv(uv1, 1, v[1]);
|
||||||
glUniform2fv_func(uv2, 1, v[2]);
|
glUniform2fv(uv2, 1, v[2]);
|
||||||
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
@@ -133,9 +130,9 @@ Reshape(int width, int height)
|
|||||||
static void
|
static void
|
||||||
CleanUp(void)
|
CleanUp(void)
|
||||||
{
|
{
|
||||||
glDeleteShader_func(fragShader);
|
glDeleteShader(fragShader);
|
||||||
glDeleteShader_func(vertShader);
|
glDeleteShader(vertShader);
|
||||||
glDeleteProgram_func(program);
|
glDeleteProgram(program);
|
||||||
glutDestroyWindow(win);
|
glutDestroyWindow(win);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -197,17 +194,15 @@ Init(void)
|
|||||||
if (!ShadersSupported())
|
if (!ShadersSupported())
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
GetExtensionFuncs();
|
|
||||||
|
|
||||||
vertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText);
|
vertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText);
|
||||||
fragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText);
|
fragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText);
|
||||||
program = LinkShaders(vertShader, fragShader);
|
program = LinkShaders(vertShader, fragShader);
|
||||||
|
|
||||||
glUseProgram_func(program);
|
glUseProgram(program);
|
||||||
|
|
||||||
uv0 = glGetUniformLocation_func(program, "v0");
|
uv0 = glGetUniformLocation(program, "v0");
|
||||||
uv1 = glGetUniformLocation_func(program, "v1");
|
uv1 = glGetUniformLocation(program, "v1");
|
||||||
uv2 = glGetUniformLocation_func(program, "v2");
|
uv2 = glGetUniformLocation(program, "v2");
|
||||||
printf("Uniforms: %d %d %d\n", uv0, uv1, uv2);
|
printf("Uniforms: %d %d %d\n", uv0, uv1, uv2);
|
||||||
|
|
||||||
/*assert(glGetError() == 0);*/
|
/*assert(glGetError() == 0);*/
|
||||||
@@ -217,9 +212,9 @@ Init(void)
|
|||||||
|
|
||||||
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
||||||
|
|
||||||
assert(glIsProgram_func(program));
|
assert(glIsProgram(program));
|
||||||
assert(glIsShader_func(fragShader));
|
assert(glIsShader(fragShader));
|
||||||
assert(glIsShader_func(vertShader));
|
assert(glIsShader(vertShader));
|
||||||
|
|
||||||
glColor3f(1, 0, 0);
|
glColor3f(1, 0, 0);
|
||||||
}
|
}
|
||||||
|
@@ -13,10 +13,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <GL/glew.h>
|
#include <GL/glew.h>
|
||||||
#include <GL/gl.h>
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
#include <GL/glext.h>
|
|
||||||
#include "extfuncs.h"
|
|
||||||
#include "shaderutil.h"
|
#include "shaderutil.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -60,11 +57,11 @@ Redisplay(void)
|
|||||||
glFrontFace(FrontWinding);
|
glFrontFace(FrontWinding);
|
||||||
|
|
||||||
if (DetermineFacingInFragProg) {
|
if (DetermineFacingInFragProg) {
|
||||||
glUniform1i_func(u_fragface, 1);
|
glUniform1i(u_fragface, 1);
|
||||||
glDisable(GL_VERTEX_PROGRAM_TWO_SIDE);
|
glDisable(GL_VERTEX_PROGRAM_TWO_SIDE);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
glUniform1i_func(u_fragface, 0);
|
glUniform1i(u_fragface, 0);
|
||||||
glEnable(GL_VERTEX_PROGRAM_TWO_SIDE);
|
glEnable(GL_VERTEX_PROGRAM_TWO_SIDE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -76,7 +73,7 @@ Redisplay(void)
|
|||||||
/* Draw a tristrip ring */
|
/* Draw a tristrip ring */
|
||||||
glBegin(GL_TRIANGLE_STRIP);
|
glBegin(GL_TRIANGLE_STRIP);
|
||||||
glColor4fv(Red);
|
glColor4fv(Red);
|
||||||
glSecondaryColor3fv_func(Green);
|
glSecondaryColor3fv(Green);
|
||||||
for (i = 0; i <= sections; i++) {
|
for (i = 0; i <= sections; i++) {
|
||||||
float a = (float) i / (sections) * M_PI * 2.0;
|
float a = (float) i / (sections) * M_PI * 2.0;
|
||||||
float x = radius * cos(a);
|
float x = radius * cos(a);
|
||||||
@@ -126,9 +123,9 @@ Reshape(int width, int height)
|
|||||||
static void
|
static void
|
||||||
CleanUp(void)
|
CleanUp(void)
|
||||||
{
|
{
|
||||||
glDeleteShader_func(fragShader);
|
glDeleteShader(fragShader);
|
||||||
glDeleteShader_func(vertShader);
|
glDeleteShader(vertShader);
|
||||||
glDeleteProgram_func(program);
|
glDeleteProgram(program);
|
||||||
glutDestroyWindow(win);
|
glutDestroyWindow(win);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -230,15 +227,13 @@ Init(void)
|
|||||||
if (!ShadersSupported())
|
if (!ShadersSupported())
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
GetExtensionFuncs();
|
|
||||||
|
|
||||||
vertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText);
|
vertShader = CompileShaderText(GL_VERTEX_SHADER, vertShaderText);
|
||||||
fragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText);
|
fragShader = CompileShaderText(GL_FRAGMENT_SHADER, fragShaderText);
|
||||||
program = LinkShaders(vertShader, fragShader);
|
program = LinkShaders(vertShader, fragShader);
|
||||||
|
|
||||||
glUseProgram_func(program);
|
glUseProgram(program);
|
||||||
|
|
||||||
u_fragface = glGetUniformLocation_func(program, "fragface");
|
u_fragface = glGetUniformLocation(program, "fragface");
|
||||||
printf("Uniforms: %d\n", u_fragface);
|
printf("Uniforms: %d\n", u_fragface);
|
||||||
|
|
||||||
/*assert(glGetError() == 0);*/
|
/*assert(glGetError() == 0);*/
|
||||||
@@ -247,9 +242,9 @@ Init(void)
|
|||||||
|
|
||||||
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
||||||
|
|
||||||
assert(glIsProgram_func(program));
|
assert(glIsProgram(program));
|
||||||
assert(glIsShader_func(fragShader));
|
assert(glIsShader(fragShader));
|
||||||
assert(glIsShader_func(vertShader));
|
assert(glIsShader(vertShader));
|
||||||
|
|
||||||
glEnable(GL_DEPTH_TEST);
|
glEnable(GL_DEPTH_TEST);
|
||||||
|
|
||||||
|
@@ -12,10 +12,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <GL/glew.h>
|
#include <GL/glew.h>
|
||||||
#include <GL/gl.h>
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
#include <GL/glext.h>
|
|
||||||
#include "extfuncs.h"
|
|
||||||
#include "shaderutil.h"
|
#include "shaderutil.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -59,14 +56,14 @@ Redisplay(void)
|
|||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
/* render with vertex shader only */
|
/* render with vertex shader only */
|
||||||
glUseProgram_func(VertProgram);
|
glUseProgram(VertProgram);
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glTranslatef(-1.5, 0, 0);
|
glTranslatef(-1.5, 0, 0);
|
||||||
DrawQuadTex();
|
DrawQuadTex();
|
||||||
glPopMatrix();
|
glPopMatrix();
|
||||||
|
|
||||||
/* render with fragment shader only */
|
/* render with fragment shader only */
|
||||||
glUseProgram_func(FragProgram);
|
glUseProgram(FragProgram);
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glTranslatef(+1.5, 0, 0);
|
glTranslatef(+1.5, 0, 0);
|
||||||
DrawQuadColor();
|
DrawQuadColor();
|
||||||
@@ -91,10 +88,10 @@ Reshape(int width, int height)
|
|||||||
static void
|
static void
|
||||||
CleanUp(void)
|
CleanUp(void)
|
||||||
{
|
{
|
||||||
glDeleteShader_func(FragShader);
|
glDeleteShader(FragShader);
|
||||||
glDeleteShader_func(VertShader);
|
glDeleteShader(VertShader);
|
||||||
glDeleteProgram_func(VertProgram);
|
glDeleteProgram(VertProgram);
|
||||||
glDeleteProgram_func(FragProgram);
|
glDeleteProgram(FragProgram);
|
||||||
glutDestroyWindow(Win);
|
glutDestroyWindow(Win);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -130,8 +127,6 @@ Init(void)
|
|||||||
if (!ShadersSupported())
|
if (!ShadersSupported())
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
GetExtensionFuncs();
|
|
||||||
|
|
||||||
if (FragProgFile)
|
if (FragProgFile)
|
||||||
FragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile);
|
FragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile);
|
||||||
else
|
else
|
||||||
@@ -150,10 +145,10 @@ Init(void)
|
|||||||
|
|
||||||
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
||||||
|
|
||||||
assert(glIsProgram_func(VertProgram));
|
assert(glIsProgram(VertProgram));
|
||||||
assert(glIsProgram_func(FragProgram));
|
assert(glIsProgram(FragProgram));
|
||||||
assert(glIsShader_func(FragShader));
|
assert(glIsShader(FragShader));
|
||||||
assert(glIsShader_func(VertShader));
|
assert(glIsShader(VertShader));
|
||||||
|
|
||||||
glColor3f(1, 0, 0);
|
glColor3f(1, 0, 0);
|
||||||
}
|
}
|
||||||
|
@@ -10,10 +10,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <GL/glew.h>
|
#include <GL/glew.h>
|
||||||
#include <GL/gl.h>
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
#include <GL/glext.h>
|
|
||||||
#include "extfuncs.h"
|
|
||||||
#include "shaderutil.h"
|
#include "shaderutil.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -134,9 +131,9 @@ Reshape(int width, int height)
|
|||||||
static void
|
static void
|
||||||
CleanUp(void)
|
CleanUp(void)
|
||||||
{
|
{
|
||||||
glDeleteShader_func(fragShader);
|
glDeleteShader(fragShader);
|
||||||
glDeleteShader_func(vertShader);
|
glDeleteShader(vertShader);
|
||||||
glDeleteProgram_func(program);
|
glDeleteProgram(program);
|
||||||
glutDestroyWindow(win);
|
glutDestroyWindow(win);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -240,13 +237,11 @@ Init(void)
|
|||||||
if (!ShadersSupported())
|
if (!ShadersSupported())
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
GetExtensionFuncs();
|
|
||||||
|
|
||||||
vertShader = CompileShaderText(GL_VERTEX_SHADER, VertShaderText);
|
vertShader = CompileShaderText(GL_VERTEX_SHADER, VertShaderText);
|
||||||
fragShader = CompileShaderText(GL_FRAGMENT_SHADER, FragShaderText);
|
fragShader = CompileShaderText(GL_FRAGMENT_SHADER, FragShaderText);
|
||||||
program = LinkShaders(vertShader, fragShader);
|
program = LinkShaders(vertShader, fragShader);
|
||||||
|
|
||||||
glUseProgram_func(program);
|
glUseProgram(program);
|
||||||
|
|
||||||
assert(glGetError() == 0);
|
assert(glGetError() == 0);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user