00001 Propane::Shader::Program myNewShader;
00002 myNewShader.loadVertexShader("shader.vert");
00003 myNewShader.loadFragmentShader("shader.frag");
00004
00005 if(!myNewShader.compile()) {
00006
00007 std::cerr << "Info log: " << std::endl;
00008 std::cerr << myNewShader.getInfoLog();
00009 return 1;
00010 }
00011
00012 bool done = false;
00013
00014 float timer = 0.0f;
00015
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
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 }