Tramway SDK
Classes | Typedefs | Enumerations | Functions | Variables
tram::UI Namespace Reference

Classes

struct  KeyBinding
 

Typedefs

typedef uint16_t keyboardaction_t
 

Enumerations

enum  KeyboardKey : uint16_t {
  KEY_SPACE , KEY_APOSTROPHE , KEY_COMMA , KEY_MINUS ,
  KEY_PERIOD , KEY_SLASH , KEY_0 , KEY_1 ,
  KEY_2 , KEY_3 , KEY_4 , KEY_5 ,
  KEY_6 , KEY_7 , KEY_8 , KEY_9 ,
  KEY_SEMICOLON , KEY_EQUAL , KEY_A , KEY_B ,
  KEY_C , KEY_D , KEY_E , KEY_F ,
  KEY_G , KEY_H , KEY_I , KEY_J ,
  KEY_K , KEY_L , KEY_M , KEY_N ,
  KEY_O , KEY_P , KEY_Q , KEY_R ,
  KEY_S , KEY_T , KEY_U , KEY_V ,
  KEY_W , KEY_X , KEY_Y , KEY_Z ,
  KEY_LEFT_BRACKET , KEY_BACKSLASH , KEY_RIGHT_BRACKET , KEY_GRAVE_ACCENT ,
  KEY_WORLD_1 , KEY_WORLD_2 , KEY_ESCAPE , KEY_ENTER ,
  KEY_TAB , KEY_BACKSPACE , KEY_INSERT , KEY_DELETE ,
  KEY_RIGHT , KEY_LEFT , KEY_DOWN , KEY_UP ,
  KEY_PAGE_UP , KEY_PAGE_DOWN , KEY_HOME , KEY_END ,
  KEY_CAPS_LOCK , KEY_SCROLL_LOCK , KEY_NUM_LOCK , KEY_PRINT_SCREEN ,
  KEY_PAUSE , KEY_F1 , KEY_F2 , KEY_F3 ,
  KEY_F4 , KEY_F5 , KEY_F6 , KEY_F7 ,
  KEY_F8 , KEY_F9 , KEY_F10 , KEY_F11 ,
  KEY_F12 , KEY_F13 , KEY_F14 , KEY_F15 ,
  KEY_F16 , KEY_F17 , KEY_F18 , KEY_F19 ,
  KEY_F20 , KEY_F21 , KEY_F22 , KEY_F23 ,
  KEY_F24 , KEY_F25 , KEY_KP_0 , KEY_KP_1 ,
  KEY_KP_2 , KEY_KP_3 , KEY_KP_4 , KEY_KP_5 ,
  KEY_KP_6 , KEY_KP_7 , KEY_KP_8 , KEY_KP_9 ,
  KEY_KP_DECIMAL , KEY_KP_DIVIDE , KEY_KP_MULTIPLY , KEY_KP_SUBTRACT ,
  KEY_KP_ADD , KEY_KP_ENTER , KEY_KP_EQUAL , KEY_LEFT_SHIFT ,
  KEY_LEFT_CONTROL , KEY_LEFT_ALT , KEY_LEFT_SUPER , KEY_RIGHT_SHIFT ,
  KEY_RIGHT_CONTROL , KEY_RIGHT_ALT , KEY_RIGHT_SUPER , KEY_MENU ,
  KEY_RIGHTMOUSE , KEY_LEFTMOUSE , KEY_MIDDLEMOUSE , KEY_LASTKEY
}
 
enum  KeyboardAxis : uint16_t { KEY_MOUSE_X , KEY_MOUSE_Y , KEY_MOUSE_SCROLL , KEY_LASTAXIS }
 
enum  InputState {
  STATE_DEFAULT , STATE_NO_INPUT , STATE_FLYING , STATE_MENU_OPEN ,
  STATE_CURSOR
}
 
enum  KeyboardAction : keyboardaction_t {
  KEY_ACTION_NONE , KEY_ACTION_FORWARD , KEY_ACTION_BACKWARD , KEY_ACTION_STRAFE_LEFT ,
  KEY_ACTION_STRAFE_RIGHT , KEY_ACTION_JUMP , KEY_ACTION_CROUCH , KEY_ACTION_SPRINT ,
  KEY_ACTION_ACTIVATE , KEY_ACTION_UP , KEY_ACTION_DOWN , KEY_ACTION_LEFT ,
  KEY_ACTION_RIGHT , KEY_ACTION_LAST
}
 
enum  CursorType { CURSOR_DEFAULT , CURSOR_TEXT , CURSOR_CLICK }
 

Functions

void BindKeyboardKey (KeyboardKey key, keyboardaction_t action)
 
void BindKeyboardKey (KeyboardKey key, void(*action)())
 
void BindKeyboardKey (KeyboardKey key, void(*action)(KeyboardKey))
 
void Init ()
 
void Uninit ()
 
void Update ()
 
void EndFrame ()
 
void SetWebMainLoop (void(*loop_function)(void))
 
float GetScreenWidth ()
 
float GetScreenHeight ()
 
void SetWindowTitle (const char *title)
 
void SetWindowSize (int w, int h)
 
void SetCursor (CursorType cursor)
 
void SetInputState (InputState state)
 
InputState GetInputState ()
 
bool PollKeyboardKey (KeyboardKey key)
 Checks the state of a key for the current frame. More...
 
float PollKeyboardAxis (KeyboardAxis key)
 Checks the state of an axis for the current frame. More...
 
float PollKeyboardAxisDelta (KeyboardAxis key)
 Checks the change of an axis for since the last frame. More...
 
float GetAxisSensitivity (KeyboardAxis key)
 
void SetAxisSensitivity (KeyboardAxis key, float value)
 
void KeyPress (KeyboardKey key)
 
void KeyRelease (KeyboardKey key)
 
void KeyCode (uint16_t code)
 
void KeyMouse (float xpos, float ypos)
 
void KeyScroll (float value)
 
void ScreenResize (int width, int height)
 
void ScreenClose ()
 
bool ShouldExit ()
 
keyboardaction_t RegisterKeyboardAction (const char *name)
 
keyboardaction_t GetKeyboardAction (name_t name)
 
name_t GetKeyboardActionName (keyboardaction_t type)
 
std::vector< std::pair< keyboardaction_t, std::vector< KeyboardKey > > > GetAllKeyboardKeyBindings ()
 
const char * GetKeyboardKeyName (KeyboardKey key)
 

Variables

const size_t MAX_KEYBOARDACTION_TYPES = 100
 
const float CAMERA_SENSITIVITY = 6.0f
 
const float CAMERA_SPEED = 6.0f
 

Typedef Documentation

◆ keyboardaction_t

typedef uint16_t tram::UI::keyboardaction_t

Enumeration Type Documentation

◆ CursorType

Enumerator
CURSOR_DEFAULT 
CURSOR_TEXT 
CURSOR_CLICK 

◆ InputState

Enumerator
STATE_DEFAULT 
STATE_NO_INPUT 
STATE_FLYING 
STATE_MENU_OPEN 
STATE_CURSOR 

◆ KeyboardAction

Enumerator
KEY_ACTION_NONE 
KEY_ACTION_FORWARD 
KEY_ACTION_BACKWARD 
KEY_ACTION_STRAFE_LEFT 
KEY_ACTION_STRAFE_RIGHT 
KEY_ACTION_JUMP 
KEY_ACTION_CROUCH 
KEY_ACTION_SPRINT 
KEY_ACTION_ACTIVATE 
KEY_ACTION_UP 
KEY_ACTION_DOWN 
KEY_ACTION_LEFT 
KEY_ACTION_RIGHT 
KEY_ACTION_LAST 

◆ KeyboardAxis

enum tram::UI::KeyboardAxis : uint16_t
Enumerator
KEY_MOUSE_X 
KEY_MOUSE_Y 
KEY_MOUSE_SCROLL 
KEY_LASTAXIS 

◆ KeyboardKey

enum tram::UI::KeyboardKey : uint16_t
Enumerator
KEY_SPACE 
KEY_APOSTROPHE 
KEY_COMMA 
KEY_MINUS 
KEY_PERIOD 
KEY_SLASH 
KEY_0 
KEY_1 
KEY_2 
KEY_3 
KEY_4 
KEY_5 
KEY_6 
KEY_7 
KEY_8 
KEY_9 
KEY_SEMICOLON 
KEY_EQUAL 
KEY_A 
KEY_B 
KEY_C 
KEY_D 
KEY_E 
KEY_F 
KEY_G 
KEY_H 
KEY_I 
KEY_J 
KEY_K 
KEY_L 
KEY_M 
KEY_N 
KEY_O 
KEY_P 
KEY_Q 
KEY_R 
KEY_S 
KEY_T 
KEY_U 
KEY_V 
KEY_W 
KEY_X 
KEY_Y 
KEY_Z 
KEY_LEFT_BRACKET 
KEY_BACKSLASH 
KEY_RIGHT_BRACKET 
KEY_GRAVE_ACCENT 
KEY_WORLD_1 
KEY_WORLD_2 
KEY_ESCAPE 
KEY_ENTER 
KEY_TAB 
KEY_BACKSPACE 
KEY_INSERT 
KEY_DELETE 
KEY_RIGHT 
KEY_LEFT 
KEY_DOWN 
KEY_UP 
KEY_PAGE_UP 
KEY_PAGE_DOWN 
KEY_HOME 
KEY_END 
KEY_CAPS_LOCK 
KEY_SCROLL_LOCK 
KEY_NUM_LOCK 
KEY_PRINT_SCREEN 
KEY_PAUSE 
KEY_F1 
KEY_F2 
KEY_F3 
KEY_F4 
KEY_F5 
KEY_F6 
KEY_F7 
KEY_F8 
KEY_F9 
KEY_F10 
KEY_F11 
KEY_F12 
KEY_F13 
KEY_F14 
KEY_F15 
KEY_F16 
KEY_F17 
KEY_F18 
KEY_F19 
KEY_F20 
KEY_F21 
KEY_F22 
KEY_F23 
KEY_F24 
KEY_F25 
KEY_KP_0 
KEY_KP_1 
KEY_KP_2 
KEY_KP_3 
KEY_KP_4 
KEY_KP_5 
KEY_KP_6 
KEY_KP_7 
KEY_KP_8 
KEY_KP_9 
KEY_KP_DECIMAL 
KEY_KP_DIVIDE 
KEY_KP_MULTIPLY 
KEY_KP_SUBTRACT 
KEY_KP_ADD 
KEY_KP_ENTER 
KEY_KP_EQUAL 
KEY_LEFT_SHIFT 
KEY_LEFT_CONTROL 
KEY_LEFT_ALT 
KEY_LEFT_SUPER 
KEY_RIGHT_SHIFT 
KEY_RIGHT_CONTROL 
KEY_RIGHT_ALT 
KEY_RIGHT_SUPER 
KEY_MENU 
KEY_RIGHTMOUSE 
KEY_LEFTMOUSE 
KEY_MIDDLEMOUSE 
KEY_LASTKEY 

Function Documentation

◆ BindKeyboardKey() [1/3]

void tram::UI::BindKeyboardKey ( KeyboardKey  key,
keyboardaction_t  action 
)

◆ BindKeyboardKey() [2/3]

void tram::UI::BindKeyboardKey ( KeyboardKey  key,
void(*)()  action 
)

◆ BindKeyboardKey() [3/3]

void tram::UI::BindKeyboardKey ( KeyboardKey  key,
void(*)(KeyboardKey action 
)

◆ EndFrame()

void tram::UI::EndFrame ( )

◆ GetAllKeyboardKeyBindings()

std::vector< std::pair< keyboardaction_t, std::vector< KeyboardKey > > > tram::UI::GetAllKeyboardKeyBindings ( )

◆ GetAxisSensitivity()

float tram::UI::GetAxisSensitivity ( KeyboardAxis  key)

◆ GetInputState()

InputState tram::UI::GetInputState ( )

◆ GetKeyboardAction()

keyboardaction_t tram::UI::GetKeyboardAction ( name_t  name)

◆ GetKeyboardActionName()

name_t tram::UI::GetKeyboardActionName ( keyboardaction_t  type)

◆ GetKeyboardKeyName()

const char * tram::UI::GetKeyboardKeyName ( KeyboardKey  key)

◆ GetScreenHeight()

float tram::UI::GetScreenHeight ( )

◆ GetScreenWidth()

float tram::UI::GetScreenWidth ( )

◆ Init()

void tram::Platform::Input::Init ( )

◆ KeyCode()

void tram::UI::KeyCode ( uint16_t  code)

◆ KeyMouse()

void tram::UI::KeyMouse ( float  xpos,
float  ypos 
)

◆ KeyPress()

void tram::UI::KeyPress ( KeyboardKey  key)

◆ KeyRelease()

void tram::UI::KeyRelease ( KeyboardKey  key)

◆ KeyScroll()

void tram::UI::KeyScroll ( float  value)

◆ PollKeyboardAxis()

float tram::UI::PollKeyboardAxis ( KeyboardAxis  key)

Checks the state of an axis for the current frame.

Returns
Value of the axis.

◆ PollKeyboardAxisDelta()

float tram::UI::PollKeyboardAxisDelta ( KeyboardAxis  key)

Checks the change of an axis for since the last frame.

Returns
Value of the axis delta.

◆ PollKeyboardKey()

bool tram::UI::PollKeyboardKey ( KeyboardKey  key)

Checks the state of a key for the current frame.

Returns
True, if key is pressed, false otherwise.

◆ RegisterKeyboardAction()

keyboardaction_t tram::UI::RegisterKeyboardAction ( const char *  name)

◆ ScreenClose()

void tram::UI::ScreenClose ( )

◆ ScreenResize()

void tram::UI::ScreenResize ( int  width,
int  height 
)

◆ SetAxisSensitivity()

void tram::UI::SetAxisSensitivity ( KeyboardAxis  key,
float  value 
)

◆ SetCursor()

void tram::UI::SetCursor ( CursorType  cursor)

◆ SetInputState()

void tram::UI::SetInputState ( InputState  state)

◆ SetWebMainLoop()

void tram::UI::SetWebMainLoop ( void(*)(void)  loop_function)

◆ SetWindowSize()

void tram::UI::SetWindowSize ( int  w,
int  h 
)

◆ SetWindowTitle()

void tram::UI::SetWindowTitle ( const char *  title)

◆ ShouldExit()

bool tram::UI::ShouldExit ( )

◆ Uninit()

void tram::Platform::Input::Uninit ( )

◆ Update()

void tram::Platform::Input::Update ( )

Variable Documentation

◆ CAMERA_SENSITIVITY

const float tram::UI::CAMERA_SENSITIVITY = 6.0f

◆ CAMERA_SPEED

const float tram::UI::CAMERA_SPEED = 6.0f

◆ MAX_KEYBOARDACTION_TYPES

const size_t tram::UI::MAX_KEYBOARDACTION_TYPES = 100