void Sphere::setupGLBuffers() { if(Sphere::initialized) { // no need to resetup return; } setVertexData(); // set the vertex data before using size_t dataSize = Sphere::numVert * 4 * sizeof(GLfloat); // vertex data glGenBuffers(1, &Sphere::vBuffer); glBindBuffer(GL_ARRAY_BUFFER, Sphere::vBuffer); glBufferData(GL_ARRAY_BUFFER, dataSize, Sphere::vertexData, GL_STATIC_DRAW); glGenBuffers(1, &Sphere::eBuffer); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, Sphere::eBuffer); glBufferData(GL_ELEMENT_ARRAY_BUFFER, Sphere::numVert * sizeof(GLushort), Sphere::elemData, GL_STATIC_DRAW); glBindBuffer(GL_ARRAY_BUFFER, 0); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); // shader program Sphere::shaderPrg = shaderSetup("Sphere.vert", "Sphere.frag"); // TODO SETUP VERTEX POSITIONAL DATA AND STUFF Sphere::vPosition = glGetAttribLocation(Sphere::shaderPrg, "vPosition" ); Sphere::transLoc = glGetUniformLocation(Sphere::shaderPrg, "trans"); Sphere::initialized = true; }
void piglit_init(int argc, char **argv) { /* GL version must be 3.0 */ piglit_require_gl_version(30); loadTex(); glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); glOrtho(0, piglit_width, 0, piglit_height, -1, 1); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); glClearColor(0.1, 0.1, 0.1, 1.0); shaderSetup(); }
void piglit_init(int argc, char **argv) { /* Check if EXT_gpu_shader4 is supported */ if (!piglit_is_extension_supported("GL_EXT_gpu_shader4")) /* If EXT_gpu_shader4 is not supported GL version must be 3.0 */ piglit_require_gl_version(30); loadTex(); glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); glOrtho(0, piglit_width, 0, piglit_height, -1, 1); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); glClearColor(0.1, 0.1, 0.1, 1.0); shaderSetup(); }
/* Initializes the OpenGL environment for ray tracing. Sets the OpenGL state variables Sets the global vertex and element buffers for drawing */ void initOpenGL(void) { // OpenGL state variables glEnable(GL_DEPTH_TEST | GL_CULL_FACE); glClearColor(0.0, 0.0, 0.0, 1.0); glCullFace(GL_FRONT); glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); // Simple Square for ray tracing shaders GLushort elemData[] = {0, 1, 2, 3, 0, 2}; // x, y, z, GLfloat vertData[] = {-1.0, 1.0, 0.0, -1.0, -1.0, 0.0, 1.0, -1.0, 0.0, 1.0, 1.0, 0.0}; int dataSize = NUM_VERTS * 3 * sizeof(GLfloat); glGenBuffers(1, &vBuffer); glBindBuffer(GL_ARRAY_BUFFER, vBuffer); glBufferData(GL_ARRAY_BUFFER, dataSize, vertData, GL_STATIC_DRAW); glGenBuffers(1, &eBuffer); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, eBuffer); glBufferData(GL_ELEMENT_ARRAY_BUFFER, 6*sizeof(GLushort), elemData, GL_STATIC_DRAW); // compile shader programs here in Resources folder shaderProg = shaderSetup("resources/pong.vert", "resources/pong.frag"); if (!shaderProg) { perror("ERROR Setting up default shadern"); exit(1); } vertPos = glGetAttribLocation(shaderProg, "currVert"); ball_glPos = glGetUniformLocation(shaderProg, "ballPos"); player_glPos = glGetUniformLocation(shaderProg, "playerPos"); comp_glPos = glGetUniformLocation(shaderProg, "compPos"); return; }