2013-08-07 21:45:56 -07:00
/*
2016-01-01 00:11:04 -08:00
* Copyright 2010 - 2016 Branimir Karadzic . All rights reserved .
* License : https : //github.com/bkaradzic/bgfx#license-bsd-2-clause
2013-08-07 21:45:56 -07:00
*/
2013-11-14 19:10:10 -08:00
# ifndef INPUT_H_HEADER_GUARD
# define INPUT_H_HEADER_GUARD
2013-08-07 21:45:56 -07:00
# include "entry.h"
typedef void ( * InputBindingFn ) ( const void * _userData ) ;
struct InputBinding
{
entry : : Key : : Enum m_key ;
uint8_t m_modifiers ;
uint8_t m_flags ;
InputBindingFn m_fn ;
const void * m_userData ;
} ;
2013-08-07 22:50:01 -07:00
# define INPUT_BINDING_END { entry::Key::None, entry::Modifier::None, 0, NULL, NULL }
2013-08-07 21:45:56 -07:00
2015-02-09 20:12:46 -08:00
///
void inputInit ( ) ;
///
void inputShutdown ( ) ;
2013-08-07 21:45:56 -07:00
///
void inputAddBindings ( const char * _name , const InputBinding * _bindings ) ;
///
void inputRemoveBindings ( const char * _name ) ;
///
void inputProcess ( ) ;
///
void inputSetKeyState ( entry : : Key : : Enum _key , uint8_t _modifiers , bool _down ) ;
2015-06-02 14:28:22 -07:00
///
bool inputGetKeyState ( entry : : Key : : Enum _key , uint8_t * _modifiers = NULL ) ;
2015-06-04 18:26:09 -07:00
///
uint8_t inputGetModifiersState ( ) ;
2014-11-08 20:57:47 -08:00
/// Adds single UTF-8 encoded character into input buffer.
void inputChar ( uint8_t _len , const uint8_t _char [ 4 ] ) ;
/// Returns single UTF-8 encoded character from input buffer.
const uint8_t * inputGetChar ( ) ;
/// Flush internal input buffer.
void inputCharFlush ( ) ;
2013-08-07 21:45:56 -07:00
///
void inputSetMouseResolution ( uint16_t _width , uint16_t _height ) ;
///
2014-08-05 21:13:50 -07:00
void inputSetMousePos ( int32_t _mx , int32_t _my , int32_t _mz ) ;
2013-08-07 21:45:56 -07:00
///
void inputSetMouseButtonState ( entry : : MouseButton : : Enum _button , uint8_t _state ) ;
///
void inputSetMouseLock ( bool _lock ) ;
///
2014-08-05 21:13:50 -07:00
void inputGetMouse ( float _mouse [ 3 ] ) ;
2013-08-07 21:45:56 -07:00
///
bool inputIsMouseLocked ( ) ;
2014-12-15 20:58:54 -08:00
///
void inputSetGamepadAxis ( entry : : GamepadHandle _handle , entry : : GamepadAxis : : Enum _axis , int32_t _value ) ;
///
int32_t inputGetGamepadAxis ( entry : : GamepadHandle _handle , entry : : GamepadAxis : : Enum _axis ) ;
2013-11-14 19:10:10 -08:00
# endif // INPUT_H_HEADER_GUARD