X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=laserbrain_demo;a=blobdiff_plain;f=src%2Fapp.cc;h=eb0266300755b41380df4b68b3507668b73f7230;hp=07ecdecaf0a43a3630f4f56e6ce65ea57a0852d2;hb=dd5d77962633caa459b366e596295023a727b33c;hpb=5c69b226e45df981db338dd859ef1d95e9be8f96 diff --git a/src/app.cc b/src/app.cc index 07ecdec..eb02663 100644 --- a/src/app.cc +++ b/src/app.cc @@ -2,6 +2,7 @@ #include #include #include +#include #include "app.h" #include "opengl.h" #include "sdr.h" @@ -63,7 +64,7 @@ static bool bnstate[8]; static bool keystate[256]; static bool gpad_bnstate[64]; static Vec2 joy_move, joy_look; -static float joy_deadzone = 0.01; +static float joy_deadzone = 0.1; static float framerate; @@ -113,6 +114,11 @@ bool app_init(int argc, char **argv) app_resize(opt.width, opt.height); app_fullscreen(opt.fullscreen); + if(opt.data_url) { + info_log("Adding URL asset source: %s\n", opt.data_url); + ass_add_url("data", opt.data_url); + } + if(opt.vr) { if(goatvr_init() == -1) { return false; @@ -319,7 +325,18 @@ static void update(float dt) jlook_lensq -= jdeadsq; float mag = len * len; - avatar.body_rot += mag * joy_look.x / len * 200.0 * dt; + + if(opt.min_turn > 0.0f) { + static long last_turn; + if(len > 0.5 && time_msec - last_turn > 350) { + float sign = joy_look.x > 0.0f ? 1.0f : -1.0f; + avatar.body_rot += opt.min_turn * sign; + last_turn = time_msec; + } + } else { + avatar.body_rot += mag * joy_look.x / len * 200.0 * dt; + } + avatar.head_alt += mag * joy_look.y / len * 100.0 * dt; if(avatar.head_alt < -90.0f) avatar.head_alt = -90.0f; if(avatar.head_alt > 90.0f) avatar.head_alt = 90.0f; @@ -559,6 +576,12 @@ void app_display() vp_width = win_width; vp_height = win_height; + if(!gfbo && !fb_srgb && sdr_post_gamma) { + glViewport(0, 0, win_width, win_height); + slow_post(sdr_post_gamma); + glUseProgram(0); + } + if(should_swap) { app_swap_buffers(); }