Compare commits

..

6 Commits

Author SHA1 Message Date
Nicolás Ortega Froysa
29cfe699cc
Make for smoother zoom. 2018-10-25 23:40:22 +02:00
Nicolás Ortega Froysa
72e2b3dd09
Can use ESC or 'Q' to quit now.
For those who don't know the system shortcut for closing a window.
2018-10-25 23:33:55 +02:00
Nicolás Ortega Froysa
30c0bdb23b
Removing OpenMP support.
Just realized that there are only 8 vertices, and therefore 24 variables
being updated every frame, which means that using OpenMP would (if
anything) slow it down.
2018-10-25 23:05:05 +02:00
Nicolás Ortega Froysa
44a71b3227
Set version string to v2.1 2018-10-25 23:01:26 +02:00
Nicolás Ortega Froysa
e1f7cbaa1d
Optimize color changing with OpenMP. 2018-10-25 23:00:26 +02:00
Nicolás Ortega Froysa
766a2d597c
Add FPS limiter (limits at 60 FPS). 2018-10-25 22:59:40 +02:00
5 changed files with 14 additions and 7 deletions

View File

@ -25,7 +25,7 @@ project(TrippyCube C CXX)
# Binary filename # Binary filename
set(TARGET_NAME "trippy-cube") set(TARGET_NAME "trippy-cube")
set(TARGET_VERSION "v2.0.1") set(TARGET_VERSION "v2.1")
# Use DEBUG by default # Use DEBUG by default
if(NOT CMAKE_BUILD_TYPE) if(NOT CMAKE_BUILD_TYPE)

View File

@ -38,7 +38,7 @@ void camera::update(const input *in_sys) {
std::get<1>(pos) = dist * sin(yaw); std::get<1>(pos) = dist * sin(yaw);
std::get<2>(pos) = dist * cos(yaw) * cos(angle); std::get<2>(pos) = dist * cos(yaw) * cos(angle);
dist -= in_sys->get_scroll(); dist -= static_cast<float>(in_sys->get_scroll()) / 2.5f;
if(dist < 0) if(dist < 0.0f)
dist = 0; dist = 0.0f;
} }

View File

@ -36,7 +36,7 @@ public:
void render(); void render();
private: private:
const float color_shift = 0.0001; const float color_shift = 0.005;
void shift_colors(); void shift_colors();
// OpenGL buffers // OpenGL buffers

View File

@ -93,6 +93,9 @@ void input::set_key(SDL_Keysym key, bool value) {
case SDLK_d: case SDLK_d:
actions["move_right"] = value; actions["move_right"] = value;
break; break;
case SDLK_ESCAPE:
case SDLK_q:
actions["quit"] = value;
default: default:
break; break;
} }

View File

@ -39,8 +39,11 @@ void run() {
camera cam; camera cam;
cube box; cube box;
unsigned int last_time = SDL_GetTicks();
while(not in_sys.get_action("quit")) while(not in_sys.get_action("quit"))
{ {
in_sys.sync_events();
cam.update(&in_sys); cam.update(&in_sys);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
@ -64,9 +67,10 @@ void run() {
glUniformMatrix4fv(matrix_id, 1, GL_FALSE, &mvp[0][0]); glUniformMatrix4fv(matrix_id, 1, GL_FALSE, &mvp[0][0]);
box.render(); box.render();
SDL_GL_SwapWindow(window); SDL_GL_SwapWindow(window);
in_sys.sync_events(); if(SDL_GetTicks() - last_time < (1000 / 60))
SDL_Delay((1000 / 60) - (SDL_GetTicks() - last_time));
last_time = SDL_GetTicks();
} }
} }