remove input_raylib.odin
This commit is contained in:
parent
b698f5166b
commit
d6cd65288f
@ -1,360 +0,0 @@
|
||||
package sectr
|
||||
|
||||
import "base:runtime"
|
||||
import "core:os"
|
||||
import c "core:c/libc"
|
||||
import rl "vendor:raylib"
|
||||
|
||||
poll_input :: proc( old, new : ^ InputState )
|
||||
{
|
||||
profile(#procedure)
|
||||
input_process_digital_btn :: proc( old_state, new_state : ^ DigitalBtn, is_down : b32 )
|
||||
{
|
||||
new_state.ended_down = is_down
|
||||
had_transition := old_state.ended_down != new_state.ended_down
|
||||
if had_transition {
|
||||
new_state.half_transitions += 1
|
||||
}
|
||||
else {
|
||||
new_state.half_transitions = 0
|
||||
}
|
||||
}
|
||||
|
||||
// Keyboard
|
||||
{
|
||||
// profile("Keyboard")
|
||||
check_range :: proc( old, new : ^ InputState, start, end : i32 )
|
||||
{
|
||||
for id := start; id < end; id += 1
|
||||
{
|
||||
// TODO(Ed) : LOOK OVER THIS...
|
||||
entry_old := & old.keyboard.keys[id - 1]
|
||||
entry_new := & new.keyboard.keys[id - 1]
|
||||
|
||||
key_id := cast(KeyCode) id
|
||||
|
||||
is_down := cast(b32) rl.IsKeyDown( to_raylib_key(id) )
|
||||
input_process_digital_btn( entry_old, entry_new, is_down )
|
||||
}
|
||||
}
|
||||
|
||||
DeadBound_1 :: 0x02
|
||||
DeadBound_2 :: 0x0F
|
||||
DeadBound_3 :: 0x19
|
||||
DeadBound_4 :: 0x3A
|
||||
check_range( old, new, cast(i32) KeyCode.backspace, DeadBound_2 )
|
||||
check_range( old, new, cast(i32) KeyCode.caps_lock, DeadBound_3 )
|
||||
check_range( old, new, cast(i32) KeyCode.pause, DeadBound_4 )
|
||||
check_range( old, new, cast(i32) KeyCode.semicolon, cast(i32) KeyCode.count )
|
||||
|
||||
swap( & old.keyboard_events.keys_pressed, & new.keyboard_events.keys_pressed )
|
||||
swap( & old.keyboard_events.chars_pressed, & new.keyboard_events.chars_pressed )
|
||||
|
||||
array_clear( new.keyboard_events.keys_pressed )
|
||||
array_clear( new.keyboard_events.chars_pressed )
|
||||
|
||||
for key_pressed := rl.GetKeyPressed(); key_pressed != rl.KeyboardKey.KEY_NULL; key_pressed = rl.GetKeyPressed() {
|
||||
array_append( & new.keyboard_events.keys_pressed, to_key_from_raylib(key_pressed))
|
||||
}
|
||||
for char_pressed := rl.GetCharPressed(); char_pressed != cast(rune)0; char_pressed = rl.GetCharPressed() {
|
||||
array_append( & new.keyboard_events.chars_pressed, char_pressed)
|
||||
}
|
||||
}
|
||||
|
||||
// Mouse
|
||||
{
|
||||
// profile("Mouse")
|
||||
// Process Buttons
|
||||
for id : i32 = 0; id < i32(MouseBtn.count); id += 1
|
||||
{
|
||||
old_btn := & old.mouse.btns[id]
|
||||
new_btn := & new.mouse.btns[id]
|
||||
|
||||
mouse_id := cast(MouseBtn) id
|
||||
|
||||
is_down := cast(b32) rl.IsMouseButtonDown( to_raylib_mouse_btn(id) )
|
||||
input_process_digital_btn( old_btn, new_btn, is_down )
|
||||
}
|
||||
|
||||
new.mouse.raw_pos = rl.GetMousePosition()
|
||||
new.mouse.pos = render_to_screen_pos(new.mouse.raw_pos)
|
||||
new.mouse.delta = rl.GetMouseDelta() * {1, -1}
|
||||
new.mouse.vertical_wheel = rl.GetMouseWheelMove()
|
||||
}
|
||||
}
|
||||
|
||||
record_input :: proc( replay_file : os.Handle, input : ^ InputState ) {
|
||||
raw_data := slice_ptr( transmute(^ byte) input, size_of(InputState) )
|
||||
file_write( replay_file, raw_data )
|
||||
}
|
||||
|
||||
play_input :: proc( replay_file : os.Handle, input : ^ InputState ) {
|
||||
raw_data := slice_ptr( transmute(^ byte) input, size_of(InputState) )
|
||||
total_read, result_code := file_read( replay_file, raw_data )
|
||||
if result_code == os.ERROR_HANDLE_EOF {
|
||||
file_rewind( replay_file )
|
||||
load_snapshot( & Memory_App.snapshot )
|
||||
}
|
||||
}
|
||||
|
||||
to_raylib_key :: proc( key : i32 ) -> rl.KeyboardKey
|
||||
{
|
||||
@static raylib_key_lookup_table := [KeyCode.count] rl.KeyboardKey {
|
||||
rl.KeyboardKey.KEY_NULL, // 0x00
|
||||
|
||||
cast(rl.KeyboardKey) 0, // 0x01
|
||||
|
||||
cast(rl.KeyboardKey) 0, // 0x02
|
||||
cast(rl.KeyboardKey) 0, // 0x03
|
||||
cast(rl.KeyboardKey) 0, // 0x04
|
||||
cast(rl.KeyboardKey) 0, // 0x05
|
||||
cast(rl.KeyboardKey) 0, // 0x06
|
||||
cast(rl.KeyboardKey) 0, // 0x07
|
||||
|
||||
rl.KeyboardKey.BACKSPACE, // 0x08
|
||||
rl.KeyboardKey.TAB, // 0x09
|
||||
|
||||
rl.KeyboardKey.RIGHT, // 0x0A
|
||||
rl.KeyboardKey.LEFT, // 0x0B
|
||||
rl.KeyboardKey.DOWN, // 0x0C
|
||||
rl.KeyboardKey.UP, // 0x0D
|
||||
|
||||
rl.KeyboardKey.ENTER, // 0x0E
|
||||
|
||||
cast(rl.KeyboardKey) 0, // 0x0F
|
||||
|
||||
rl.KeyboardKey.CAPS_LOCK, // 0x10
|
||||
rl.KeyboardKey.SCROLL_LOCK, // 0x11
|
||||
rl.KeyboardKey.NUM_LOCK, // 0x12
|
||||
|
||||
rl.KeyboardKey.LEFT_ALT, // 0x13
|
||||
rl.KeyboardKey.LEFT_SHIFT, // 0x14
|
||||
rl.KeyboardKey.LEFT_CONTROL, // 0x15
|
||||
rl.KeyboardKey.RIGHT_ALT, // 0x16
|
||||
rl.KeyboardKey.RIGHT_SHIFT, // 0x17
|
||||
rl.KeyboardKey.RIGHT_CONTROL, // 0x18
|
||||
|
||||
cast(rl.KeyboardKey) 0, // 0x19
|
||||
|
||||
rl.KeyboardKey.PAUSE, // 0x1A
|
||||
rl.KeyboardKey.ESCAPE, // 0x1B
|
||||
rl.KeyboardKey.HOME, // 0x1C
|
||||
rl.KeyboardKey.END, // 0x1D
|
||||
rl.KeyboardKey.PAGE_UP, // 0x1E
|
||||
rl.KeyboardKey.PAGE_DOWN, // 0x1F
|
||||
rl.KeyboardKey.SPACE, // 0x20
|
||||
|
||||
cast(rl.KeyboardKey) '!', // 0x21
|
||||
cast(rl.KeyboardKey) '"', // 0x22
|
||||
cast(rl.KeyboardKey) '#', // 0x23
|
||||
cast(rl.KeyboardKey) '$', // 0x24
|
||||
cast(rl.KeyboardKey) '%', // 0x25
|
||||
cast(rl.KeyboardKey) '&', // 0x26
|
||||
cast(rl.KeyboardKey) '\'', // 0x27
|
||||
cast(rl.KeyboardKey) '(', // 0x28
|
||||
cast(rl.KeyboardKey) ')', // 0x29
|
||||
cast(rl.KeyboardKey) '*', // 0x2A
|
||||
cast(rl.KeyboardKey) '+', // 0x2B
|
||||
cast(rl.KeyboardKey) ',', // 0x2C
|
||||
cast(rl.KeyboardKey) '-', // 0x2D
|
||||
cast(rl.KeyboardKey) '.', // 0x2E
|
||||
cast(rl.KeyboardKey) '/', // 0x2F
|
||||
|
||||
cast(rl.KeyboardKey) '0', // 0x30
|
||||
cast(rl.KeyboardKey) '1', // 0x31
|
||||
cast(rl.KeyboardKey) '2', // 0x32
|
||||
cast(rl.KeyboardKey) '3', // 0x33
|
||||
cast(rl.KeyboardKey) '4', // 0x34
|
||||
cast(rl.KeyboardKey) '5', // 0x35
|
||||
cast(rl.KeyboardKey) '6', // 0x36
|
||||
cast(rl.KeyboardKey) '7', // 0x37
|
||||
cast(rl.KeyboardKey) '8', // 0x38
|
||||
cast(rl.KeyboardKey) '9', // 0x39
|
||||
|
||||
cast(rl.KeyboardKey) 0, // 0x3A
|
||||
|
||||
cast(rl.KeyboardKey) ';', // 0x3B
|
||||
cast(rl.KeyboardKey) '<', // 0x3C
|
||||
cast(rl.KeyboardKey) '=', // 0x3D
|
||||
cast(rl.KeyboardKey) '>', // 0x3E
|
||||
cast(rl.KeyboardKey) '?', // 0x3F
|
||||
cast(rl.KeyboardKey) '@', // 0x40
|
||||
|
||||
rl.KeyboardKey.A, // 0x41
|
||||
rl.KeyboardKey.B, // 0x42
|
||||
rl.KeyboardKey.C, // 0x43
|
||||
rl.KeyboardKey.D, // 0x44
|
||||
rl.KeyboardKey.E, // 0x45
|
||||
rl.KeyboardKey.F, // 0x46
|
||||
rl.KeyboardKey.G, // 0x47
|
||||
rl.KeyboardKey.H, // 0x48
|
||||
rl.KeyboardKey.I, // 0x49
|
||||
rl.KeyboardKey.J, // 0x4A
|
||||
rl.KeyboardKey.K, // 0x4B
|
||||
rl.KeyboardKey.L, // 0x4C
|
||||
rl.KeyboardKey.M, // 0x4D
|
||||
rl.KeyboardKey.N, // 0x4E
|
||||
rl.KeyboardKey.O, // 0x4F
|
||||
rl.KeyboardKey.P, // 0x50
|
||||
rl.KeyboardKey.Q, // 0x51
|
||||
rl.KeyboardKey.R, // 0x52
|
||||
rl.KeyboardKey.S, // 0x53
|
||||
rl.KeyboardKey.T, // 0x54
|
||||
rl.KeyboardKey.U, // 0x55
|
||||
rl.KeyboardKey.V, // 0x56
|
||||
rl.KeyboardKey.W, // 0x57
|
||||
rl.KeyboardKey.X, // 0x58
|
||||
rl.KeyboardKey.Y, // 0x59
|
||||
rl.KeyboardKey.Z, // 0x5A
|
||||
|
||||
rl.KeyboardKey.LEFT_BRACKET, // 0x5B
|
||||
rl.KeyboardKey.BACKSLASH, // 0x5C
|
||||
rl.KeyboardKey.RIGHT_BRACKET, // 0x5D
|
||||
cast(rl.KeyboardKey) '^', // 0x5E
|
||||
rl.KeyboardKey.GRAVE, // 0x5F
|
||||
cast(rl.KeyboardKey) '`', // 0x60
|
||||
|
||||
rl.KeyboardKey.KP_0, // 0x61
|
||||
rl.KeyboardKey.KP_1, // 0x62
|
||||
rl.KeyboardKey.KP_2, // 0x63
|
||||
rl.KeyboardKey.KP_3, // 0x64
|
||||
rl.KeyboardKey.KP_4, // 0x65
|
||||
rl.KeyboardKey.KP_5, // 0x66
|
||||
rl.KeyboardKey.KP_6, // 0x67
|
||||
rl.KeyboardKey.KP_7, // 0x68
|
||||
rl.KeyboardKey.KP_8, // 0x69
|
||||
rl.KeyboardKey.KP_9, // 0x6A
|
||||
rl.KeyboardKey.KP_DECIMAL, // 0x6B
|
||||
rl.KeyboardKey.KP_EQUAL, // 0x6C
|
||||
rl.KeyboardKey.KP_ADD, // 0x6D
|
||||
rl.KeyboardKey.KP_SUBTRACT, // 0x6E
|
||||
rl.KeyboardKey.KP_MULTIPLY, // 0x6F
|
||||
rl.KeyboardKey.KP_DIVIDE, // 0x70
|
||||
rl.KeyboardKey.KP_ENTER, // 0x71
|
||||
|
||||
rl.KeyboardKey.F1, // 0x72
|
||||
rl.KeyboardKey.F2, // 0x73
|
||||
rl.KeyboardKey.F3, // 0x74
|
||||
rl.KeyboardKey.F4, // 0x75
|
||||
rl.KeyboardKey.F5, // 0x76
|
||||
rl.KeyboardKey.F6, // 0x77
|
||||
rl.KeyboardKey.F7, // 0x78
|
||||
rl.KeyboardKey.F8, // 0x79
|
||||
rl.KeyboardKey.F9, // 0x7A
|
||||
rl.KeyboardKey.F10, // 0x7B
|
||||
rl.KeyboardKey.F11, // 0x7C
|
||||
rl.KeyboardKey.F12, // 0x7D
|
||||
|
||||
rl.KeyboardKey.INSERT, // 0x7E
|
||||
rl.KeyboardKey.DELETE, // 0x7F
|
||||
}
|
||||
return raylib_key_lookup_table[ key ]
|
||||
}
|
||||
|
||||
to_raylib_mouse_btn :: proc( btn : i32 ) -> rl.MouseButton {
|
||||
@static raylib_mouse_btn_lookup_table := [?] rl.MouseButton {
|
||||
rl.MouseButton.LEFT,
|
||||
rl.MouseButton.MIDDLE,
|
||||
rl.MouseButton.RIGHT,
|
||||
rl.MouseButton.SIDE,
|
||||
rl.MouseButton.FORWARD,
|
||||
rl.MouseButton.BACK,
|
||||
rl.MouseButton.EXTRA, }
|
||||
return raylib_mouse_btn_lookup_table[ btn ]
|
||||
}
|
||||
|
||||
to_key_from_raylib :: proc( ray_key : rl.KeyboardKey ) -> (key : KeyCode) {
|
||||
|
||||
switch (ray_key) {
|
||||
case .KEY_NULL : key = cast(KeyCode) ray_key
|
||||
|
||||
case .SPACE,
|
||||
cast(rl.KeyboardKey) '!',
|
||||
cast(rl.KeyboardKey) '"',
|
||||
cast(rl.KeyboardKey) '#',
|
||||
cast(rl.KeyboardKey) '$',
|
||||
cast(rl.KeyboardKey) '%',
|
||||
cast(rl.KeyboardKey) '&',
|
||||
.APOSTROPHE,
|
||||
cast(rl.KeyboardKey) '(',
|
||||
cast(rl.KeyboardKey) ')',
|
||||
cast(rl.KeyboardKey) '*',
|
||||
cast(rl.KeyboardKey) '+',
|
||||
.COMMA, .MINUS, .PERIOD, .SLASH,
|
||||
.ZERO, .ONE, .TWO, .THREE, .FOUR, .FIVE, .SIX, .SEVEN, .EIGHT, .NINE,
|
||||
.SEMICOLON,.EQUAL,
|
||||
.A, .B, .C, .D, .E, .F, .G, .H, .I, .J, .K, .L, .M, .N, .O, .P, .Q, .R, .S, .T, .U, .V, .W, .X, .Y, .Z,
|
||||
.LEFT_BRACKET, .BACKSLASH, .RIGHT_BRACKET, cast(rl.KeyboardKey) '_', .GRAVE :
|
||||
key = cast(KeyCode) ray_key
|
||||
|
||||
case .ESCAPE : key = KeyCode.escape
|
||||
case .ENTER : key = KeyCode.enter
|
||||
case .TAB : key = KeyCode.tab
|
||||
case .BACKSPACE : key = KeyCode.backspace
|
||||
|
||||
case .INSERT : key = KeyCode.insert
|
||||
case .DELETE : key = KeyCode.delete
|
||||
|
||||
case .RIGHT : key = KeyCode.right
|
||||
case .LEFT : key = KeyCode.left
|
||||
case .UP : key = KeyCode.up
|
||||
case .DOWN : key = KeyCode.down
|
||||
|
||||
case .PAGE_UP : key = KeyCode.page_up
|
||||
case .PAGE_DOWN : key = KeyCode.page_down
|
||||
case .HOME : key = KeyCode.home
|
||||
case .END : key = KeyCode.end
|
||||
case .CAPS_LOCK : key = KeyCode.caps_lock
|
||||
case .SCROLL_LOCK : key = KeyCode.scroll_lock
|
||||
case .NUM_LOCK : key = KeyCode.num_lock
|
||||
case .PRINT_SCREEN : key = KeyCode.ignored
|
||||
case .PAUSE : key = KeyCode.pause
|
||||
|
||||
case .F1 : key = KeyCode.F1
|
||||
case .F2 : key = KeyCode.F2
|
||||
case .F3 : key = KeyCode.F3
|
||||
case .F4 : key = KeyCode.F4
|
||||
case .F5 : key = KeyCode.F5
|
||||
case .F6 : key = KeyCode.F6
|
||||
case .F7 : key = KeyCode.F7
|
||||
case .F8 : key = KeyCode.F8
|
||||
case .F9 : key = KeyCode.F9
|
||||
case .F10 : key = KeyCode.F10
|
||||
case .F11 : key = KeyCode.F11
|
||||
case .F12 : key = KeyCode.F12
|
||||
|
||||
case .LEFT_SHIFT : key = KeyCode.left_shift
|
||||
case .LEFT_CONTROL : key = KeyCode.left_control
|
||||
case .LEFT_ALT : key = KeyCode.left_alt
|
||||
case .LEFT_SUPER : key = KeyCode.ignored
|
||||
case .RIGHT_SHIFT : key = KeyCode.right_shift
|
||||
case .RIGHT_CONTROL : key = KeyCode.right_control
|
||||
case .RIGHT_ALT : key = KeyCode.right_alt
|
||||
case .RIGHT_SUPER : key = KeyCode.ignored
|
||||
case .KB_MENU : key = KeyCode.ignored
|
||||
|
||||
case .KP_0 : key = KeyCode.kpad_0
|
||||
case .KP_1 : key = KeyCode.kpad_1
|
||||
case .KP_2 : key = KeyCode.kpad_2
|
||||
case .KP_3 : key = KeyCode.kpad_3
|
||||
case .KP_4 : key = KeyCode.kpad_4
|
||||
case .KP_5 : key = KeyCode.kpad_5
|
||||
case .KP_6 : key = KeyCode.kpad_6
|
||||
case .KP_7 : key = KeyCode.kpad_7
|
||||
case .KP_8 : key = KeyCode.kpad_8
|
||||
case .KP_9 : key = KeyCode.kpad_9
|
||||
|
||||
case .KP_DECIMAL : key = KeyCode.kpad_decimal
|
||||
case .KP_DIVIDE : key = KeyCode.kpad_divide
|
||||
case .KP_MULTIPLY : key = KeyCode.kpad_multiply
|
||||
case .KP_SUBTRACT : key = KeyCode.kpad_minus
|
||||
case .KP_ADD : key = KeyCode.kpad_plus
|
||||
case .KP_ENTER : key = KeyCode.kpad_enter
|
||||
case .KP_EQUAL : key = KeyCode.kpad_equals
|
||||
|
||||
case .BACK : key = KeyCode.ignored
|
||||
case .VOLUME_UP : key = KeyCode.ignored
|
||||
case .VOLUME_DOWN : key = KeyCode.ignored
|
||||
}
|
||||
return
|
||||
}
|
Loading…
Reference in New Issue
Block a user