| 187 | } |
| 188 | |
| 189 | void ApiVulkanSample::input_event(const vkb::InputEvent &input_event) |
| 190 | { |
| 191 | VulkanSample::input_event(input_event); |
| 192 | |
| 193 | bool gui_captures_event = false; |
| 194 | |
| 195 | if (has_gui()) |
| 196 | { |
| 197 | gui_captures_event = get_gui().input_event(input_event); |
| 198 | } |
| 199 | |
| 200 | if (!gui_captures_event) |
| 201 | { |
| 202 | if (input_event.get_source() == vkb::EventSource::Mouse) |
| 203 | { |
| 204 | const auto &mouse_button = static_cast<const vkb::MouseButtonInputEvent &>(input_event); |
| 205 | |
| 206 | handle_mouse_move(static_cast<int32_t>(mouse_button.get_pos_x()), static_cast<int32_t>(mouse_button.get_pos_y())); |
| 207 | |
| 208 | if (mouse_button.get_action() == vkb::MouseAction::Down) |
| 209 | { |
| 210 | switch (mouse_button.get_button()) |
| 211 | { |
| 212 | case vkb::MouseButton::Left: |
| 213 | mouse_buttons.left = true; |
| 214 | break; |
| 215 | case vkb::MouseButton::Right: |
| 216 | mouse_buttons.right = true; |
| 217 | break; |
| 218 | case vkb::MouseButton::Middle: |
| 219 | mouse_buttons.middle = true; |
| 220 | break; |
| 221 | default: |
| 222 | break; |
| 223 | } |
| 224 | } |
| 225 | else if (mouse_button.get_action() == vkb::MouseAction::Up) |
| 226 | { |
| 227 | switch (mouse_button.get_button()) |
| 228 | { |
| 229 | case vkb::MouseButton::Left: |
| 230 | mouse_buttons.left = false; |
| 231 | break; |
| 232 | case vkb::MouseButton::Right: |
| 233 | mouse_buttons.right = false; |
| 234 | break; |
| 235 | case vkb::MouseButton::Middle: |
| 236 | mouse_buttons.middle = false; |
| 237 | break; |
| 238 | default: |
| 239 | break; |
| 240 | } |
| 241 | } |
| 242 | } |
| 243 | else if (input_event.get_source() == vkb::EventSource::Touchscreen) |
| 244 | { |
| 245 | const auto &touch_event = static_cast<const vkb::TouchInputEvent &>(input_event); |
| 246 |
nothing calls this directly
no test coverage detected