mirror of
https://gitlab.com/dosowisko.net/libsuperderpy.git
synced 2025-03-20 18:17:12 +01:00
maemo: rewrite mouse events into touch ones
This commit is contained in:
parent
a73e780668
commit
b67d146cdb
2 changed files with 41 additions and 4 deletions
|
@ -9,9 +9,9 @@ if (NOT LIBSUPERDERPY_CONFIG_INCLUDED)
|
||||||
set(CMAKE_C_STANDARD 99)
|
set(CMAKE_C_STANDARD 99)
|
||||||
set(CMAKE_C_STANDARD_REQUIRED true)
|
set(CMAKE_C_STANDARD_REQUIRED true)
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -ffast-math")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -ffast-math")
|
||||||
if(MAEMO)
|
if(MAEMO5)
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")
|
||||||
endif(MAEMO)
|
endif(MAEMO5)
|
||||||
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O1 -fno-optimize-sibling-calls -fno-omit-frame-pointer -fsanitize=leak -DLEAK_SANITIZER=1 -fno-common -fsanitize-recover=all")
|
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O1 -fno-optimize-sibling-calls -fno-omit-frame-pointer -fsanitize=leak -DLEAK_SANITIZER=1 -fno-common -fsanitize-recover=all")
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-undefined,error")
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-undefined,error")
|
||||||
|
@ -53,9 +53,10 @@ if (NOT LIBSUPERDERPY_CONFIG_INCLUDED)
|
||||||
)
|
)
|
||||||
endif(NOT DEFINED LIBSUPERDERPY_NO_GAME_GIT_REV)
|
endif(NOT DEFINED LIBSUPERDERPY_NO_GAME_GIT_REV)
|
||||||
|
|
||||||
if(MAEMO)
|
if(MAEMO5)
|
||||||
|
add_definitions(-DMAEMO5=1)
|
||||||
add_definitions(-D_Noreturn=)
|
add_definitions(-D_Noreturn=)
|
||||||
endif(MAEMO)
|
endif(MAEMO5)
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
if(CMAKE_INSTALL_PREFIX MATCHES "/usr/local")
|
if(CMAKE_INSTALL_PREFIX MATCHES "/usr/local")
|
||||||
|
|
|
@ -85,6 +85,42 @@ static inline void HandleEvent(struct Game* game, ALLEGRO_EVENT* ev) {
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef MAEMO5
|
||||||
|
// on Maemo we get mouse events instead of touch ones, so we'll rewrite them by ourselves
|
||||||
|
|
||||||
|
if ((ev->type == ALLEGRO_EVENT_MOUSE_AXES) || (ev->type == ALLEGRO_EVENT_MOUSE_BUTTON_DOWN) || (ev->type == ALLEGRO_EVENT_MOUSE_BUTTON_UP)) {
|
||||||
|
switch (ev->type) {
|
||||||
|
case ALLEGRO_EVENT_MOUSE_BUTTON_DOWN:
|
||||||
|
ev->type = ALLEGRO_EVENT_TOUCH_BEGIN;
|
||||||
|
break;
|
||||||
|
case ALLEGRO_EVENT_MOUSE_BUTTON_UP:
|
||||||
|
ev->type = ALLEGRO_EVENT_TOUCH_END;
|
||||||
|
break;
|
||||||
|
case ALLEGRO_EVENT_MOUSE_AXES:
|
||||||
|
ev->type = ALLEGRO_EVENT_TOUCH_MOVE;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
ALLEGRO_DISPLAY* display = ev->mouse.display;
|
||||||
|
float dx = ev->mouse.dx;
|
||||||
|
float dy = ev->mouse.dy;
|
||||||
|
float x = ev->mouse.x;
|
||||||
|
float y = ev->mouse.y;
|
||||||
|
double timestamp = ev->mouse.timestamp;
|
||||||
|
|
||||||
|
ev->touch.display = display;
|
||||||
|
ev->touch.dx = dx;
|
||||||
|
ev->touch.dy = dy;
|
||||||
|
ev->touch.id = 0;
|
||||||
|
ev->touch.primary = true;
|
||||||
|
ev->touch.source = (ALLEGRO_TOUCH_INPUT*)al_get_touch_input_event_source();
|
||||||
|
ev->touch.timestamp = timestamp;
|
||||||
|
ev->touch.x = x;
|
||||||
|
ev->touch.y = y;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void HandleDebugEvent(struct Game* game, ALLEGRO_EVENT* ev) {
|
static inline void HandleDebugEvent(struct Game* game, ALLEGRO_EVENT* ev) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue