-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgame.cpp
More file actions
38 lines (30 loc) · 1.19 KB
/
game.cpp
File metadata and controls
38 lines (30 loc) · 1.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include "game.h"
#include "sdy.datadefines.glsl"
Game::Game(GLFWwindow* window, InputBundle* input) : window(window), cameraEnabled(true), input(input), camera(input), gl(), objectManager(&gl.shader), guiManager(&objectManager) {}
void Game::init() {
gl.initializeGL();
objectManager.init();
camera.setInitialUniforms(&gl.shader);
NodeCPU* un = objectManager.addNode(objectManager.root, OP_MIN, vec3(0.0f), vec3(0.0f), vec3(1.0f));
objectManager.addNode(objectManager.root, PRIM_SPHERE, vec3(0.0f, 5.0f, 0.0f), vec3(1.0f, 0.0f,0.0f), vec3(1.0f));
for(int i=0; i<7; i++)
objectManager.addNode(un, PRIM_SPHERE, vec3(2.0f+i, 5.0f, 0.0f), vec3(0.0f), vec3(1.0f));
}
void Game::update(float dt) {
if (input->f3Down) {
cameraEnabled = !cameraEnabled;
if(cameraEnabled)
glfwSetInputMode(window, GLFW_CURSOR, GLFW_CURSOR_DISABLED);
else
glfwSetInputMode(window, GLFW_CURSOR, GLFW_CURSOR_NORMAL);
guiManager.setWidgetsActive(!cameraEnabled);
}
camera.update(dt, cameraEnabled);
gl.shader.uniformVec2i("u_ScreenDimensions", MyGL::screenDimensions);
camera.updateUniforms(&gl.shader);
}
void Game::render() {
gl.render();
guiManager.processInput(*input);
guiManager.drawImGuiElements(camera);
}