ogl_beamforming

Ultrasound Beamforming Implemented with OpenGL
git clone anongit@rnpnr.xyz:ogl_beamforming.git
Log | Files | Refs | Feed | Submodules | README | LICENSE

util_os_ui.c (1933B)


      1 /* See LICENSE for license details. */
      2 
      3 // NOTE(rnp): functions which require platform layer support but
      4 // otherwise share implementation
      5 // TODO(rnp): replace all this with platform specific functions
      6 
      7 void *GetPlatformWindowHandle(void);
      8 
      9 // see: external/raylib/src/external/glfw/include/GLFW/glfw3.h
     10 typedef void glfw_window_resize_fn(void *window, i32 width, i32 height);
     11 
     12 glfw_window_resize_fn *glfwSetWindowSizeCallback(void *window, glfw_window_resize_fn *callback);
     13 
     14 global BeamformerInput       *beamformer_input;
     15 global glfw_window_resize_fn *raylib_window_resize;
     16 
     17 function void
     18 os_push_input_event(BeamformerInput *input, BeamformerInputEvent event)
     19 {
     20 	assert(input->event_count < countof(input->event_queue));
     21 	if (input->event_count < countof(input->event_queue))
     22 		input->event_queue[input->event_count++] = event;
     23 }
     24 
     25 function void
     26 os_window_equip_common(BeamformerInput *input, void *window)
     27 {
     28 	beamformer_input = input;
     29 }
     30 
     31 function void
     32 os_build_frame_input(BeamformerInput *input)
     33 {
     34 	Vector2 new_mouse = {-1, -1};
     35 	if (IsWindowFocused()) new_mouse = GetMousePosition();
     36 	input->mouse_x = new_mouse.x;
     37 	input->mouse_y = new_mouse.y;
     38 
     39 	input->input_modifiers  = 0;
     40 	input->input_modifiers |= BeamformerInputModifier_LeftAlt      * IsKeyDown(KEY_LEFT_ALT);
     41 	input->input_modifiers |= BeamformerInputModifier_RightAlt     * IsKeyDown(KEY_RIGHT_ALT);
     42 	input->input_modifiers |= BeamformerInputModifier_LeftControl  * IsKeyDown(KEY_LEFT_CONTROL);
     43 	input->input_modifiers |= BeamformerInputModifier_RightControl * IsKeyDown(KEY_RIGHT_CONTROL);
     44 	input->input_modifiers |= BeamformerInputModifier_LeftShift    * IsKeyDown(KEY_LEFT_SHIFT);
     45 	input->input_modifiers |= BeamformerInputModifier_RightShift   * IsKeyDown(KEY_RIGHT_SHIFT);
     46 	input->input_modifiers |= BeamformerInputModifier_LeftMeta     * IsKeyDown(KEY_LEFT_SUPER);
     47 	input->input_modifiers |= BeamformerInputModifier_RightMeta    * IsKeyDown(KEY_RIGHT_SUPER);
     48 }