GLBox() { App = new sf::Window(sf::VideoMode(RES_WIDTH, RES_HEIGHT, 32), "Bubbles!"); // Setting up shaders FILE * logFile; logFile = fopen("log text", "wb"); if(NULL == logFile) { printf("Unable to open log file. Exiting...\n"); exit(2); } __glewInit(logFile); ShaderManager shaders = ShaderManager(logFile); char const * bubbleDrawVert = "BubbleShaders/bubbleRender3dModel.vert"; char const * bubbleDrawFrag = "BubbleShaders/bubbleRender3dModel.frag"; bubbleShaderProg = shaders.buildShaderProgram(&bubbleDrawVert, &bubbleDrawFrag, 1, 1); Clock = sf::Clock(); mode = BUBBLE_MODE; gfxinit(); while (App->IsOpened()) { App->SetActive(); handleEvents(); setShader(); setShaderVariables(bubbleShaderProg); display(); App->Display(); } fclose(logFile); }
void init() { // Create the main window App = new sf::Window(sf::VideoMode(RESOLUTION_X, RESOLUTION_Y, 32), "Modeling Program"); // Create a clock for measuring time elapsed Clock = sf::Clock(); __glewInit(); currentRes[0] = RESOLUTION_X; currentRes[1] = RESOLUTION_Y; transM = TRANS_TRANSLATION; axisM = X_AXIS; selected = 0; idCounter = 1; //Initial light position lightPos[0] = 2.0f; lightPos[1] = 2.0f; lightPos[2] = 2.0f; //Initial camera position cameraPos[0] = 0.0f; cameraPos[1] = 0.0f; cameraPos[2] = 0.0f; //Perspective setup glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(45.0,currentRes[0]/currentRes[1], 0.5, 50.0); glMatrixMode(GL_MODELVIEW); //Camera setup camera = Camera(); camera.translate(0.0,0.0,20.0); camera.rotate(60.0, 1.0, 0.0, 0.0); camera.rotate(30.0, 0.0, 0.0, 1.0); camera.apply_transformations(); //setup render target texture //this will eventually hald the rendered scene and be //rendered to a quad for post process effects /*int numTex = 1; glGenTextures(numTex, &textureTarget); setupTargetTexture();*/ //setup the shader programs //the first set is the vertex and fragment shaders for the 3D render //the second set is the shaders for the texture post process effects ShaderManager shaders; shaders.GL20Support = GL20Support; char const * drawVert = "Shaders/Render3dModel.vert"; char const * drawFrag = "Shaders/Render3dModel.frag"; shaderProg = shaders.buildShaderProgram(&drawVert, &drawFrag, 1, 1); /*char const * texVert = "Shaders/RenderTexture.vert"; char const * texFrag = "Shaders/RenderTexture.frag"; texProg = shaders.buildShaderProgram(&texVert, &texFrag, 1, 1);*/ char const * noLightVert = "Shaders/NoLighting.vert"; char const * noLightFrag = "Shaders/NoLighting.frag"; noLightProg = shaders.buildShaderProgram(&noLightVert, &noLightFrag, 1, 1); //this object helps draw textures that fill the viewport /*texRender = ShowTexture(texProg); texRender.GL20Support = GL20Support;*/ // Bind custom attributes glBindAttribLocation(shaderProg, 1, "ambient"); // Start render loop while (App->IsOpened()) { Clock.Reset(); // Process events handleEvents(); // Set the active window before using OpenGL commands // It's useless here because active window is always the same, // but don't forget it if you use multiple windows or controls App->SetActive(); //render 3D scene, then put 2D output in texture, render texture renderScene(); // Finally, display rendered frame on screen App->Display(); float diff = 1.0/FPS-Clock.GetElapsedTime(); if(diff > 0) sf::Sleep(diff); } }
GLBox() { App = new sf::Window(sf::VideoMode(RESOLUTION, RESOLUTION, 32), "Spherio"); glEnable(GL_LIGHTING); cameraLookMode = false; lastPos[0] = -1; lastPos[1] = -1; cameraTheta = tiltX = tiltZ = 0; cameraPhi = 50; buttonPressed[0] = buttonPressed[1] = buttonPressed[2] = buttonPressed[3] = false; gfxinit(); double a[] = {20, 0, -20}; double b[] = {20, 10, -20}; double block1Color[3] = {1, 0, 0}; double block1Center[3] = {0, 0, 0}; level[0] = Block(block1Color, block1Center, 4, 1, 4, 0, 0); double ballColor[3] = {0,1,1}; double ballCenter[3] = {0,3,0}; ball = Sphere(ballColor,ballCenter,0.314159); //double block2Color[3] = {0, 0, 1}; //double block2Center[3] = {2, 0, -5}; //level[1] = Block(block2Color, block2Center, 1, 1, 1, 0, 45); /*level[2] = Block(0, 0, -200, 0, 10, -200, 2); level[3] = Block(0, -10, -20, 0, 10, -20, 2); level[4] = Block(-10, 0, -20, 10, 0, -2, 2); */ //level[0].toString(); FILE * logFile; logFile = fopen("log.txt", "wb"); if(logFile == NULL) { printf("Unable to open log file. Exiting...\n"); exit(2); } __glewInit(logFile); ShaderManager shaders = ShaderManager(logFile); const char * vertPath = "Shaders/Render3dModel.vert"; const char * fragPath = "Shaders/Render3dModel.frag"; prog = shaders.buildShaderProgram(&vertPath, &fragPath, 1, 1); vertPath = "Shaders/BallShader.vert"; fragPath = "Shaders/BallShader.frag"; ballProg = shaders.buildShaderProgram(&vertPath, &fragPath, 1, 1); while (App->IsOpened()) { App->SetActive(); handleEvents(); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); updateModelviewMatrix(); glUseProgram(prog); setShaderVariables(prog); setShaderVariables(ballProg); for (int i = 0; i < 1; ++i) { level[i].display(); } glUseProgram(ballProg); ball.display(); App->Display(); } }