summaryrefslogtreecommitdiffhomepage
path: root/include/rodeo/input.h
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2023-04-24 00:50:24 -0400
committerrealtradam <[email protected]>2023-04-24 00:50:24 -0400
commitc7d724e4f11abb335efcc0d58639a1b458b77019 (patch)
treea0222fed2f77aa994232abf9df79351548db4e92 /include/rodeo/input.h
parentdcd867dc95d13e152716e12f6333796dfc84f4ef (diff)
downloadRodeoKit-c7d724e4f11abb335efcc0d58639a1b458b77019.tar.gz
RodeoKit-c7d724e4f11abb335efcc0d58639a1b458b77019.zip
rework input system. first proper interation
Diffstat (limited to 'include/rodeo/input.h')
-rw-r--r--include/rodeo/input.h63
1 files changed, 53 insertions, 10 deletions
diff --git a/include/rodeo/input.h b/include/rodeo/input.h
index 1f89b8c..5c7cb1c 100644
--- a/include/rodeo/input.h
+++ b/include/rodeo/input.h
@@ -7,25 +7,68 @@ bool
rodeo_input_events_poll(void);
void
-rodeo_input_scene_activate(
- rodeo_input_scene_t *scene
+rodeo_input_command_register_callback(
+ rodeo_input_command_t *command,
+ rodeo_input_callback_function func
);
void
-rodeo_input_scene_deactivate(
- rodeo_input_scene_t *scene
+rodeo_input_command_unregister_callback(
+ rodeo_input_command_t *command,
+ rodeo_input_callback_function func
+);
+
+rodeo_input_scene_t*
+rodeo_input_scene_create(void);
+
+void
+rodeo_input_scene_destroy(rodeo_input_scene_t *scene);
+
+rodeo_input_command_t*
+rodeo_input_command_create(uint32_t input_type);
+
+// make sure to unregister from all scenes before destroying
+void
+rodeo_input_command_destroy(rodeo_input_command_t *command);
+
+// returns false if attempting to register
+// input type that has been set as valid
+bool
+rodeo_input_command_register_binary_scancode(
+ rodeo_input_command_t *input_command,
+ rodeo_input_binary_scancode_t scancode
+);
+
+bool
+rodeo_input_command_register_binary_mouseButton(
+ rodeo_input_command_t *input_command,
+ rodeo_input_binary_mouseButton_t mouse_button
);
+// alternative proposed "general" registration methods
+//rodeo_input_command_register_binary(cmd, rodeo_input_binary_Scancode, rodeo_input_binary_scancode_Q );
+//rodeo_input_command_register_any(cmd, rodeo_input_type_Binary, rodeo_input_binary_Scancode, rodeo_input_binary_scancode_Q );
+
+
void
-rodeo_input_scene_register_callback(
- rodeo_input_callback_function func,
+rodeo_input_scene_register_command(
rodeo_input_scene_t *scene,
- rodeo_input_register_type_t type
+ rodeo_input_command_t *command
);
void
-rodeo_input_scene_unregister_callback(
- rodeo_input_callback_function func,
+rodeo_input_scene_unregister_command(
rodeo_input_scene_t *scene,
- rodeo_input_register_type_t type
+ rodeo_input_command_t *command
+);
+
+void
+rodeo_input_scene_activate(
+ rodeo_input_scene_t *scene
);
+
+void
+rodeo_input_scene_deactivate(
+ rodeo_input_scene_t *scene
+);
+