int main(int argc, char** argv){ glutInit(&argc, argv); glutInitDisplayMode (GLUT_DOUBLE | GLUT_ALPHA ); glutInitContextVersion (3, 3); glutInitContextProfile(GLUT_CORE_PROFILE); glutInitWindowSize (windowWidth, windowHeight); glutInitWindowPosition (300, 200); glutCreateWindow ("My window GL"); if(gl3wInit()<0) return 1; glutSetOption(GLUT_ACTION_ON_WINDOW_CLOSE, GLUT_ACTION_CONTINUE_EXECUTION); init(); glutDisplayFunc(display); glutReshapeFunc(reshape); glutSpecialFunc(keyboardS); glutSpecialUpFunc(keyboardSpecialUpFunc); glutMouseFunc(mouseFcn); glutMotionFunc(mouseMoveFnc); glutMouseWheelFunc(mouseWheelFnc); glutMainLoop(); finalizeProgram(gouraudShading); return(0); }
bool EndPatchProgram::init() { if( ! ShaderProgram::init( true ) || ! loadShaders() ) { return false; } createVBO( "in_position", ShaderProgram::gl_Vertex ); createVBO( "in_vertexID", ShaderProgram::gl_MultiTexCoord7 ); if( ! finalizeProgram() ) { return false; } use(); ShaderProgram::createSBO( "valenceBuffer" ); ShaderProgram::createSBO( "neighborIndexBuffer" ); ShaderProgram::createSBO( "vertexData" ); // tell GL to only draw onto a pixel if the shape is closer to the viewer glEnable( GL_DEPTH_TEST ); // enable depth-testing glDepthFunc( GL_LESS ); // depth-testing interprets a smaller value as "closer" return true; }