ShaderUse.cpp

00001 Propane::Shader::Program myNewShader;
00002 myNewShader.loadVertexShader("shader.vert");
00003 myNewShader.loadFragmentShader("shader.frag");
00004 // Make sure to compile. If your code doesn't work, that's probably why.
00005 if(!myNewShader.compile()) {
00006         // Make sure to always check for this!
00007         std::cerr << "Info log: " << std::endl;
00008         std::cerr << myNewShader.getInfoLog();
00009         return 1;
00010 }
00011 
00012 bool done = false;
00013 // A simple second timer value
00014 float timer = 0.0f;
00015 // Get a handle we can feed the timer's status into the shader from
00016 GLint timerHandle = myNewShader.getUniformLocation("timer");
00017 
00018 while(!done) {
00019         Propane::clearScreen();
00020         timer += Propane::getNewDelta();
00021 
00022         myNewShader.turnOn();
00023         myNewShader.passToUniform(timerHandle, timer);
00024         glBegin(GL_QUADS);
00025         // Draw a patchwork of quads
00026         for(int x = 0; x < 640; x += 64) {
00027                 for(int y = 0; y < 480; y += 48) {
00028                         glColor3f(      Propane::Math::randomFloat(0,1),
00029                                         Propane::Math::randomFloat(0,1),
00030                                         Propane::Math::randomFloat(0,1));
00031                         glVertex2i(x,y);
00032                         glVertex2i(x + 64, y);
00033                         glVertex2i(x + 64, y + 64);
00034                         glVertex2i(x, y + 64);
00035                 }
00036         }
00037         glEnd();
00038         myNewShader.turnOff();
00039 
00040         Propane::flip();
00041         Propane::delay(1);
00042 }

Generated on Sun Jan 14 16:49:10 2007 for Propane Injector by  doxygen 1.4.6