bool setupGL() { glfwInit(); glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3); glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 2); glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); glfwOpenWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); glfwOpenWindowHint( GLFW_WINDOW_NO_RESIZE, GL_TRUE ); if(!glfwOpenWindow( WIDTH, HEIGHT, 8, 8, 8, 8, 32, 0, GLFW_WINDOW)) { logError("could not create GLFW-window"); return false; } logErrorsGL(); glewExperimental = GL_TRUE; if (GLEW_OK != glewInit()) { logError("GLEW init error"); return false; } logErrorsGL(); logNote("Successfully created OpenGL-window, version %i.%i", glfwGetWindowParam(GLFW_OPENGL_VERSION_MAJOR), glfwGetWindowParam(GLFW_OPENGL_VERSION_MINOR)); logNote("GLSL-version: %s",glGetString(GL_SHADING_LANGUAGE_VERSION)); glEnable(GL_DEPTH_TEST); glEnable(GL_CULL_FACE); glCullFace(GL_BACK); glfwSwapInterval(0); glActiveTexture(GL_TEXTURE0); glClearColor(1.0, 1.0, 1.0, 0.0); glfwDisable(GLFW_MOUSE_CURSOR); glfwSetKeyCallback(keyCallback); return true; }
Framebuffer2D::Framebuffer2D(int width, int height) { this->width = width; this->height = height; numAuxBuffers = 0; auxBuffers = NULL; logErrorsGL(); // Allocate a RenderBuffer depth buffer, to enable depth comparision. // Will be removed when user attaches a FrameBuffer depth buffer. glGenRenderbuffers(1, &renderBufferDepthHandle); glBindRenderbuffer(GL_RENDERBUFFER, renderBufferDepthHandle); glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, width, height); glGenFramebuffers(1, &fboHandle); glBindFramebuffer(GL_FRAMEBUFFER, fboHandle); glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, renderBufferDepthHandle); glDrawBuffer(GL_NONE); glBindFramebuffer(GL_FRAMEBUFFER, 0); }
bool Engine::init(int width, int height, bool fullscreen) { glfwInit(); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); glfwWindowHint(GLFW_RESIZABLE, GL_FALSE); //int fs = fullscreen ? GLFW_FULLSCREEN : GLFW_WINDOW; window = glfwCreateWindow(width, height, "Facial", NULL, NULL); windowSize = ivec2(width, height); /* if(!glfwOpenWindow( width, height, R_BPP, G_BPP, B_BPP, A_BPP, DEPTH_BPP, STENCIL_BPP, fs)) */ if(!window) { logError("could not create GLFW-window"); return false; } /* Make the window's context current */ glfwMakeContextCurrent(window); glfwSetKeyCallback(window, Engine::keyCallback); glfwSetMouseButtonCallback(window, Engine::mouseButtonCallback); glfwSetCursorPosCallback(window, Engine::cursorPosCallback); glfwSetScrollCallback(window, scrollCallback); logErrorsGL(); //#ifndef __APPLE__ glewExperimental = GL_TRUE; if (GLEW_OK != glewInit()) { logError("GLEW init error"); return false; } //#endif logErrorsGL(); logNote("Successfully created OpenGL-window, version %i.%i", glfwGetWindowAttrib(window, GLFW_CONTEXT_VERSION_MAJOR), glfwGetWindowAttrib(window, GLFW_CONTEXT_VERSION_MINOR)); logNote("GLSL-version: %s",glGetString(GL_SHADING_LANGUAGE_VERSION)); glEnable(GL_DEPTH_TEST); glEnable(GL_CULL_FACE); glfwSwapInterval(0); return true; }