@@ -15,7 +15,7 @@ glm::vec3 cam_up(0.0f, 1.0f, 0.0f); // up | What orientation "up" is
15
15
GLint shaderProgram;
16
16
GLint skyShaderProgram;
17
17
GLint waterProgram;
18
- GLint terrainProgram ;
18
+ GLint cubeProgram ;
19
19
GLint particleProgram;
20
20
GLint fullScreenShader;
21
21
GLuint clipPlaneW, clipPlaneN;
@@ -35,8 +35,8 @@ int rightMouseDown;
35
35
#define SKYBOX_F_SHADER_PATH " ../skyboxShader.frag"
36
36
#define W_V_SHADER_PATH " ../waterShader.vert"
37
37
#define W_F_SHADER_PATH " ../waterShader.frag"
38
- #define T_V_SHADER_PATH " ../terrain .vert"
39
- #define T_F_SHADER_PATH " ../terrain .frag"
38
+ #define C_V_SHADER_PATH " ../cube .vert"
39
+ #define C_F_SHADER_PATH " ../cube .frag"
40
40
#define P_SHADER_V " ../particleShader.vert"
41
41
#define P_SHADER_F " ../particleShader.frag"
42
42
#define FS_SHADER_V " ../fullScreenShader.vert"
@@ -112,7 +112,7 @@ GLuint loc_reflection, loc_refraction, loc_dudv, loc_move_factor, loc_cam_pos, l
112
112
GLuint dudvTex, normalTex;
113
113
// Post processing locations
114
114
GLuint loc_gauss, loc_neon;
115
- bool gauss_on = false , neon_on = false ;
115
+ bool gauss_on = false , neon_on = false , show_cubes = false ;
116
116
117
117
// Time
118
118
clock_t timer;
@@ -137,7 +137,7 @@ void Window::initialize_objects()
137
137
shaderProgram = LoadShaders (V_SHADER_PATH, F_SHADER_PATH);
138
138
skyShaderProgram = LoadShaders (SKYBOX_V_SHADER_PATH, SKYBOX_F_SHADER_PATH);
139
139
waterProgram = LoadShaders (W_V_SHADER_PATH, W_F_SHADER_PATH);
140
- terrainProgram = LoadShaders (T_V_SHADER_PATH, T_F_SHADER_PATH );
140
+ cubeProgram = LoadShaders (C_V_SHADER_PATH, C_F_SHADER_PATH );
141
141
particleProgram = LoadShaders (P_SHADER_V, P_SHADER_F);
142
142
fullScreenShader = LoadShaders (FS_SHADER_V, FS_SHADER_F);
143
143
@@ -173,7 +173,7 @@ void Window::initialize_objects()
173
173
engine->play2D (RAIN_1, true );
174
174
175
175
skybox = new SkyBox ();
176
- cube = new Cube (shaderProgram );
176
+ cube = new Cube (cubeProgram );
177
177
178
178
179
179
hm = new Terrain (shaderProgram, SIMPLE_HEIGHT_MAP, 10 );
@@ -260,7 +260,7 @@ void Window::clean_up()
260
260
glDeleteProgram (shaderProgram);
261
261
glDeleteProgram (skyShaderProgram);
262
262
glDeleteProgram (waterProgram); // no more drinkable water in LA
263
- glDeleteProgram (terrainProgram );
263
+ glDeleteProgram (cubeProgram );
264
264
}
265
265
266
266
GLFWwindow* Window::create_window (int width, int height)
@@ -425,9 +425,21 @@ void Window::drawObjects(){
425
425
hm->draw (hm_mat);
426
426
// glBindVertexArray(0);
427
427
// glBindTexture(GL_TEXTURE_2D, 0);
428
-
429
- glUniform1i (glGetUniformLocation (shaderProgram, " texturize" ), false );
430
- cube->draw (glm::mat4 (1 .0f ));
428
+ glUseProgram (cubeProgram);
429
+ if (show_cubes){
430
+ glUniform1i (glGetUniformLocation (cubeProgram, " cube_color" ), 1 );
431
+ glm::mat4 cb_mat = glm::translate (glm::mat4 (1 .0f ), glm::vec3 (0 , 10.0 , 0 ));
432
+ cube->draw (cb_mat);
433
+
434
+ glUniform1i (glGetUniformLocation (cubeProgram, " cube_color" ), 2 );
435
+ glm::mat4 cb1_mat = glm::translate (glm::mat4 (1 .0f ), glm::vec3 (10.0 , 20.0 , 0 ));
436
+ cube->draw (cb1_mat);
437
+
438
+ glUniform1i (glGetUniformLocation (cubeProgram, " cube_color" ), 3 );
439
+ glm::mat4 cb2_mat = glm::translate (glm::mat4 (1 .0f ), glm::vec3 (-10.0 , 30.0 , 0 ));
440
+ cube->draw (cb2_mat);
441
+ }
442
+ glUseProgram (shaderProgram);
431
443
}
432
444
void Window::drawReflection (){
433
445
// Render everything above water (reflection)
@@ -676,6 +688,10 @@ void Window::key_callback(GLFWwindow* window, int key, int scancode, int action,
676
688
// }
677
689
//
678
690
// >>>>>>> 14ad8e24514fc53849d8b10095427afa12500312
691
+
692
+ if (key == GLFW_KEY_C){
693
+ show_cubes = !show_cubes;
694
+ }
679
695
}
680
696
}
681
697
0 commit comments