map keys and handle key events on Android and OS X

This commit is contained in:
2017-04-17 19:35:48 +02:00
parent 54082591f1
commit 45cf8c9168
11 changed files with 595 additions and 68 deletions

View File

@@ -26,7 +26,8 @@
#include "pch.h"
#include "app.h"
#include "../../../../engine/asset.h"
#include "asset.h"
#include "keymap.h"
typedef void (*GLDEBUGPROC)(GLenum source,
GLenum type,
@@ -363,11 +364,8 @@ static void engine_term_display(struct engine* engine) {
*/
static int32_t engine_handle_input(struct android_app* app, AInputEvent* event) {
struct engine* engine = (struct engine*)app->userData;
float x = AMotionEvent_getX(event, 0);
float y = AMotionEvent_getY(event, 0);
//LOG("event source: %d", AInputEvent_getSource(event));
MouseEvent e;
int32_t eventType = AInputEvent_getType(event);
LOG("event type: %d", eventType);
switch (eventType) {
case AINPUT_EVENT_TYPE_MOTION:
// switch (AInputEvent_getSource(event)) {
@@ -375,6 +373,10 @@ static int32_t engine_handle_input(struct android_app* app, AInputEvent* event)
// case AINPUT_SOURCE_TOUCHSCREEN:
{
int action = AKeyEvent_getAction(event) & AMOTION_EVENT_ACTION_MASK;
float x = AMotionEvent_getX(event, 0);
float y = AMotionEvent_getY(event, 0);
//LOG("event source: %d", AInputEvent_getSource(event));
MouseEvent e;
switch (action) {
case AMOTION_EVENT_ACTION_DOWN:
App::I.mouse_down(0, x, y);
@@ -395,8 +397,12 @@ static int32_t engine_handle_input(struct android_app* app, AInputEvent* event)
// } // end switch
break;
case AINPUT_EVENT_TYPE_KEY:
// handle key input...
break;
{
int32_t key_val = AKeyEvent_getKeyCode(event);
LOG("Received key event: %d\n", key_val);
App::I.key_down(convert_key(key_val));
return 1;
}
} // end switch
return 0;
}