#include "baseOpenGL.h" #include BaseOpenGL* BaseOpenGL::reference; BaseOpenGL::BaseOpenGL(){} int BaseOpenGL::initGL(){ glShadeModel(GL_SMOOTH); glClearColor(0.0f, 0.0f, 0.0f, 0.0f); glClearDepth(1.0f); glEnable(GL_DEPTH_TEST); glEnable(GL_TEXTURE_2D); glDepthFunc(GL_EQUAL); glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); return true; } int BaseOpenGL::startOpenGL(int width, int height, const char* title){ glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowSize(width, height); glutInitWindowPosition(0, 0); this->width = width; this->height = height; this->window = glutCreateWindow(title); this->title = title; int retorno = initGL(); initialStartup(); glutReshapeFunc(BaseOpenGL::reshapeFunc); glutDisplayFunc(BaseOpenGL::displayFunc); glutKeyboardFunc(BaseOpenGL::keyboardFunc); glutSpecialFunc(BaseOpenGL::specialFunc); glutIdleFunc(BaseOpenGL::idleFunc); return retorno; } int BaseOpenGL::getWidth(){ return this->width; } int BaseOpenGL::getHeight(){ return this->height; } int BaseOpenGL::getWindowNumber(){ return this->window; } std::string BaseOpenGL::getTitle(){ return this->title; } void BaseOpenGL::reshapeFunc(int w,int h){ reference->reshapeWindow(w,h); } void BaseOpenGL::displayFunc(void){ reference->draw(); } void BaseOpenGL::keyboardFunc(unsigned char key, int x, int y){ reference->keyBoardEvent(key,x,y); } void BaseOpenGL::specialFunc(int key, int x, int y){ reference->specialKeyBoardEvent(key,x,y); } void BaseOpenGL::idleFunc(void){ reference->idleDraw(); } BaseOpenGL::~BaseOpenGL(){ } void BaseOpenGL::initialStartup(){} void BaseOpenGL::glEnable2D(){ int vPort[4]; glGetIntegerv(GL_VIEWPORT, vPort); glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); //glOrtho(vPort[0], vPort[0]+vPort[2], vPort[1], vPort[1]+vPort[3], -1, 1); glOrtho(0, vPort[2], 0, vPort[3], -1, 1); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); //glTranslatef(0.375, 0.375, 0.); //glPushAttrib(GL_DEPTH_BUFFER_BIT); //glDisable(GL_DEPTH_TEST); } void BaseOpenGL::glDisable2D(){ //glPopAttrib(); glMatrixMode(GL_PROJECTION); glPopMatrix(); glMatrixMode(GL_MODELVIEW); glPopMatrix(); }