Beispiel #1
0
static void key_callback(GLFWwindow *window, int key, int scancode, int action, int mods)
{
    if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS)
        glfwSetWindowShouldClose(window, GL_TRUE);
    if (action == GLFW_PRESS || action == GLFW_REPEAT)
    {
        switch (key) {
            case GLFW_KEY_W:
                moveCamera(1.f, 0.f, 0.f);
                break;
            case GLFW_KEY_S:
                moveCamera(-1.f, 0.f, 0.f);
                break;
            case GLFW_KEY_A:
                moveCamera(0.f, -1.f, 0.f);
                break;
            case GLFW_KEY_D:
                moveCamera(0.f, 1.f, 0.f);
                break;
            case GLFW_KEY_Z:
                moveCameraGlobal(0.f, 0.f, -1.f);
                break;
            case GLFW_KEY_Q:
                moveCameraGlobal(0.f, 0.f, 1.f);
                break;
            case GLFW_KEY_I:
                turnCamera(1.f, 0.f, 0.f);
                break;
            case GLFW_KEY_K:
                turnCamera(-1.f, 0.f, 0.f);
                break;
            case GLFW_KEY_L:
                turnCamera(0.f, -1.f, 0.f);
                break;
            case GLFW_KEY_J:
                turnCamera(0.f, 1.f, 0.f);
                break;
            case GLFW_KEY_T:
                changeFOV(-1.f);
                break;
            case GLFW_KEY_Y:
                changeFOV(1.f);
                break;
            case GLFW_KEY_M:
                light = camera_pos;
                break;
            case GLFW_KEY_P:
                nextRenderMethod();
                break;
                /*default:*/
        }
    }
}
Beispiel #2
0
// Setup OpenGL perspective
void setupOpengl() {
	glViewport(0, 0, WIDTH, HEIGHT);
	glMatrixMode(GL_PROJECTION);
	glEnable(GL_DEPTH_TEST);

	changeFOV(45);
	


	glMatrixMode(GL_MODELVIEW);
}
Beispiel #3
0
void mainLoop() {
	
	
	changeFOV(fov);
	
	while(true) {
		processEvents();

 
		glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); // Clear color and depth buffer
		glLoadIdentity(); // Reset orientation
 
 		if(fov != fov_accel || ang_accel != 0.f || y_offset_accel != 0.f)
 		{
 			changeFOV(fov_accel);
		}
		
		drawRegularBox(0,0);
		
		for(int i = -16; i < 17; i++)
		{
			for( int j = -16; j < 17; j++)
			{
				if(i < 2 && i > -2 && j < 2 && j > -2)
				{
					break;
				}
			
				int thing = 	((i+16)*57 + (j+16)*109)%34 ;
				if(thing < 6 || thing > 22)
				{
					drawRegularBox(10*i, 10 * j);
				}
			}
		}
		
 
		SDL_GL_SwapBuffers(); // Update screen
 
	}
}