map keys and handle key events on Android and OS X
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user