void DrawHandler::draw(){ glEnable(GL_TEXTURE_2D); glShadeModel(GL_SMOOTH); // Enables Smooth Shading glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glDepthFunc(GL_LEQUAL); // The Type Of Depth Test To Do glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // Really Nice Perspective Calculation //set up lighting setUpLighting(); glMatrixMode(GL_PROJECTION); glLoadIdentity(); //set perspective mode setUpPerspective(); //Draw stuff glPushMatrix(); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(cameras[currentCam]->getPosition().x, cameras[currentCam]->getPosition().y, cameras[currentCam]->getPosition().z, cameras[currentCam]->getLookAt().x, cameras[currentCam]->getLookAt().y, cameras[currentCam]->getLookAt().z, cameras[currentCam]->getUp().x, cameras[currentCam]->getUp().y, cameras[currentCam]->getUp().z ); //Enable Guide if (guideEnabled){ glBegin(GL_QUADS); glVertex3f(-1.0f, 0.0f, -1.0f); glVertex3f(1.0f, 0.0f, -1.0f); glVertex3f(1.0f, 0.0f, 1.0f); glVertex3f(-1.0f, 0.0f, 1.0f); glColor3f(0.0f, 0.0f, 0.0f); glEnd(); } //Draw all objects for (unsigned int i = 0; i < meshLoaders.size(); i++){ meshLoaders[i]->draw(); } //Draw CustomMeshes for (unsigned int i = 0; i < meshLoaders.size(); i++){ //customMeshes[i]->draw(); } glPopMatrix(); glfwSwapBuffers(window); }
void do_display (void) { switch(GetStyle()) { case FTGL_BITMAP: case FTGL_PIXMAP: case FTGL_OUTLINE: break; case FTGL_POLYGON: glDisable(GL_BLEND); setUpLighting(); break; case FTGL_EXTRUDE: glEnable(GL_DEPTH_TEST); glDisable(GL_BLEND); setUpLighting(); break; case FTGL_TEXTURE: glEnable(GL_TEXTURE_2D); glDisable(GL_DEPTH_TEST); setUpLighting(); glNormal3f(0.0, 0.0, 1.0); break; } glColor3f(1.0, 1.0, 1.0); // If you do want to switch the color of bitmaps rendered with glBitmap, // you will need to explicitly call glRasterPos (or its ilk) to lock // in a changed current color. // If there is an active layout use it to render the font if (layouts[currentLayout]) { layouts[currentLayout]->Render(myString); } else { fonts[current_font]->Render(myString); } renderFontmetrics(); renderFontInfo(); }
void do_display (void) { switch(current_font) { case FTGL_BITMAP: case FTGL_PIXMAP: case FTGL_OUTLINE: glDisable(GL_TEXTURE_2D); break; case FTGL_POLYGON: glDisable(GL_TEXTURE_2D); setUpLighting(); break; case FTGL_EXTRUDE: glEnable(GL_DEPTH_TEST); glDisable(GL_BLEND); glEnable(GL_TEXTURE_2D); setUpLighting(); glBindTexture(GL_TEXTURE_2D, textureID[0]); break; case FTGL_TEXTURE: case FTGL_BUFFER: glEnable(GL_TEXTURE_2D); glDisable(GL_DEPTH_TEST); setUpLighting(); glNormal3f(0.0, 0.0, 1.0); break; } glTranslatef(OX, OY,0); // If you do want to switch the color of bitmaps rendered with glBitmap, // you will need to explicitly call glRasterPos (or its ilk) to lock // in a changed current color. glPushMatrix(); glColor3f(1.0, 1.0, 1.0); int renderMode = FTGL::RENDER_FRONT | FTGL::RENDER_BACK; if(layouts[currentLayout]) layouts[currentLayout]->Render(myString, -1, FTPoint(), renderMode); else fonts[current_font]->Render(myString, -1, FTPoint(), FTPoint(), renderMode); if(current_font == FTGL_EXTRUDE) { glBindTexture(GL_TEXTURE_2D, textureID[1]); renderMode = FTGL::RENDER_SIDE; if(layouts[currentLayout]) layouts[currentLayout]->Render(myString, -1, FTPoint(), renderMode); else fonts[current_font]->Render(myString, -1, FTPoint(), FTPoint(), renderMode); } glPopMatrix(); glPushMatrix(); renderFontmetrics(); glPopMatrix(); renderFontInfo(); }