Movement keys for (first person) camera on Linux (Refs #56, Refs #181, Refs #186)

This commit is contained in:
Sascha Willems 2016-08-03 21:44:04 +02:00
parent df70cc1b6a
commit f8cd3ee452
2 changed files with 34 additions and 1 deletions

View file

@ -1381,12 +1381,44 @@ void VulkanExampleBase::handleEvent(const xcb_generic_event_t *event)
mouseButtons.right = false; mouseButtons.right = false;
} }
break; break;
case XCB_KEY_PRESS:
{
const xcb_key_release_event_t *keyEvent = (const xcb_key_release_event_t *)event;
switch (keyEvent->detail)
{
case KEY_W:
camera.keys.up = true;
break;
case KEY_S:
camera.keys.down = true;
break;
case KEY_A:
camera.keys.left = true;
break;
case KEY_D:
camera.keys.right = true;
break;
}
}
break;
case XCB_KEY_RELEASE: case XCB_KEY_RELEASE:
{ {
const xcb_key_release_event_t *keyEvent = (const xcb_key_release_event_t *)event; const xcb_key_release_event_t *keyEvent = (const xcb_key_release_event_t *)event;
switch (keyEvent->detail) switch (keyEvent->detail)
{ {
case 0x9: case KEY_W:
camera.keys.up = false;
break;
case KEY_S:
camera.keys.down = false;
break;
case KEY_A:
camera.keys.left = false;
break;
case KEY_D:
camera.keys.right = false;
break;
case KEY_ESCAPE:
quit = true; quit = true;
break; break;
} }

View file

@ -33,6 +33,7 @@
#include "vulkan/vulkan.h" #include "vulkan/vulkan.h"
#include "keycodes.hpp"
#include "vulkantools.h" #include "vulkantools.h"
#include "vulkandebug.h" #include "vulkandebug.h"