Beispiel #1
0
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;
}
Beispiel #2
0
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);
}
Beispiel #3
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;
	}