void init() { cursor.init(); enabled = true; }
void renderThread(int argc, char **argv) { // Prepare viewport glClearColor(0.0f, 0.0f, 0.0f, 0.0f); glClear(GL_COLOR_BUFFER_BIT); // Setup setup(); // Turn on Alpha blending glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); // Clear the background glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); int textureCounter = 0; //Load the the resources (textures) for (uint i = 1; i < argc ; i++){ std::string argument = std::string(argv[i]); if (argument == "-x" || argument == "-y" || argument == "-w" || argument == "--width" || argument == "-h" || argument == "--height" ) { i++; } else if ( argument == "--square" || argument == "-l" || argument == "--life-coding" ) { } else if ( argument == "-m" ) { bCursor = true; cursor.init(); } else if ( argument == "-s" || argument == "--sec") { i++; argument = std::string(argv[i]); timeLimit = getFloat(argument); std::cout << "Will exit in " << timeLimit << " seconds." << std::endl; } else if ( argument == "-o" ){ i++; argument = std::string(argv[i]); if( haveExt(argument,"png") ){ outputFile = argument; std::cout << "Will save screenshot to " << outputFile << " on exit." << std::endl; } else { std::cout << "At the moment screenshots only support PNG formats" << std::endl; } } else if (argument.find("-") == 0) { std::string parameterPair = argument.substr(argument.find_last_of('-')+1); i++; argument = std::string(argv[i]); Texture* tex = new Texture(); if( tex->load(argument) ){ textures[parameterPair] = tex; std::cout << "Loading " << argument << " as the following uniform: " << std::endl; std::cout << " uniform sampler2D " << parameterPair << "; // loaded"<< std::endl; std::cout << " uniform vec2 " << parameterPair << "Resolution;"<< std::endl; } } else if ( haveExt(argument,"png") || haveExt(argument,"PNG") || haveExt(argument,"jpg") || haveExt(argument,"JPG") || haveExt(argument,"jpeg") || haveExt(argument,"JPEG") ) { Texture* tex = new Texture(); if( tex->load(argument) ){ std::string name = "u_tex"+getString(textureCounter); textures[name] = tex; std::cout << "Loading " << argument << " as the following uniform: " << std::endl; std::cout << " uniform sampler2D " << name << "; // loaded"<< std::endl; std::cout << " uniform vec2 " << name << "Resolution;"<< std::endl; textureCounter++; } } } // Render Loop while (isGL() && bPlay) { // Update updateGL(); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Draw draw(); // Swap the buffers renderGL(); if ( timeLimit > 0.0 && getTime() > timeLimit ) { onKeyPress('s'); bPlay = false; } } }