v2_zero( vg.mouse_wheel );
v2_zero( vg.mouse_delta );
- /* Update input */
- vg_process_inputs();
-
/* SDL event loop */
SDL_Event event;
while( SDL_PollEvent( &event ) ){
}
SDL_GetMouseState( &vg.mouse_pos[0], &vg.mouse_pos[1] );
+ vg_process_inputs();
}
static void _vg_gameloop_update(void)
vg_input.sdl_keys = SDL_GetKeyboardState( &count );
vg_input.sdl_mouse = SDL_GetMouseState(NULL,NULL);
- if( vg_input.display_input_method != k_input_method_kbm ){
+ if( vg_input.display_input_method != k_input_method_kbm )
+ {
/* check for giving keyboard priority */
- for( int i=0; i<count; i++ ){
- if( vg_input.sdl_keys[i] ){
+ for( int i=0; i<count; i++ )
+ {
+ if( vg_input.sdl_keys[i] )
+ {
vg_input.display_input_method = k_input_method_kbm;
vg_info( "display_input: k_input_method_kbm (keyboard %d)\n", i );
break;
SDL_BUTTON(SDL_BUTTON_MIDDLE)) )
{
vg_input.display_input_method = k_input_method_kbm;
- vg_info( "display_input: k_input_method_kbm (mouse)\n" );
+ vg_info( "display_input: k_input_method_kbm (mouse click)\n" );
+ }
+
+ vg_input.hidden_mouse_travel += v2_length( vg.mouse_delta );
+ if( vg_input.hidden_mouse_travel > 64.0f )
+ {
+ vg_input.display_input_method = k_input_method_kbm;
+ vg_input.hidden_mouse_travel = 0.0f;
+ vg_info( "display_input: k_input_method_kbm (mouse move)\n" );
}
}
+ else
+ vg_input.hidden_mouse_travel = 0.0f;
}
void async_vg_input_init( void *payload, u32 size )