|
@@ -5150,7 +5150,8 @@ static void *GamepadThread(void *arg)
|
|
|
#endif // PLATFORM_RPI
|
|
|
|
|
|
#if defined(PLATFORM_UWP)
|
|
|
-
|
|
|
+// UWP function pointers
|
|
|
+// NOTE: Those pointers are set by UWP App
|
|
|
static UWPQueryTimeFunc uwpQueryTimeFunc = NULL;
|
|
|
static UWPSleepFunc uwpSleepFunc = NULL;
|
|
|
static UWPDisplaySizeFunc uwpDisplaySizeFunc = NULL;
|
|
@@ -5159,165 +5160,48 @@ static UWPMouseFunc uwpMouseUnlockFunc = NULL;
|
|
|
static UWPMouseFunc uwpMouseShowFunc = NULL;
|
|
|
static UWPMouseFunc uwpMouseHideFunc = NULL;
|
|
|
static UWPMouseSetPosFunc uwpMouseSetPosFunc = NULL;
|
|
|
-static void* uwpCoreWindow = NULL;
|
|
|
+static void *uwpCoreWindow = NULL;
|
|
|
|
|
|
+// Check all required UWP function pointers have been set
|
|
|
bool UWPIsConfigured()
|
|
|
{
|
|
|
bool pass = true;
|
|
|
- if (uwpQueryTimeFunc == NULL)
|
|
|
- {
|
|
|
- TRACELOG(LOG_ERROR, "You must call UWPSetQueryTimeFunc with a valid function before calling InitWindow()");
|
|
|
- pass = false;
|
|
|
- }
|
|
|
|
|
|
- if (uwpSleepFunc == NULL)
|
|
|
- {
|
|
|
- TRACELOG(LOG_ERROR, "You must call UWPSetSleepFunc with a valid function before calling InitWindow()");
|
|
|
- pass = false;
|
|
|
- }
|
|
|
+ if (uwpQueryTimeFunc == NULL) { TRACELOG(LOG_ERROR, "UWP: UWPSetQueryTimeFunc() must be called with a valid function before InitWindow()"); pass = false; }
|
|
|
+ if (uwpSleepFunc == NULL) { TRACELOG(LOG_ERROR, "UWP: UWPSetSleepFunc() must be called with a valid function before InitWindow()"); pass = false; }
|
|
|
+ if (uwpDisplaySizeFunc == NULL) { TRACELOG(LOG_ERROR, "UWP: UWPSetDisplaySizeFunc() must be called with a valid function before InitWindow()"); pass = false; }
|
|
|
+ if (uwpMouseLockFunc == NULL) { TRACELOG(LOG_ERROR, "UWP: UWPSetMouseLockFunc() must be called with a valid function before InitWindow()"); pass = false; }
|
|
|
+ if (uwpMouseUnlockFunc == NULL) { TRACELOG(LOG_ERROR, "UWP: UWPSetMouseUnlockFunc() must be called with a valid function before InitWindow()"); pass = false; }
|
|
|
+ if (uwpMouseShowFunc == NULL) { TRACELOG(LOG_ERROR, "UWP: UWPSetMouseShowFunc() must be called with a valid function before InitWindow()"); pass = false; }
|
|
|
+ if (uwpMouseHideFunc == NULL) { TRACELOG(LOG_ERROR, "UWP: UWPSetMouseHideFunc() must be called with a valid function before InitWindow()"); pass = false; }
|
|
|
+ if (uwpMouseSetPosFunc == NULL) { TRACELOG(LOG_ERROR, "UWP: UWPSetMouseSetPosFunc() must be called with a valid function before InitWindow()"); pass = false; }
|
|
|
+ if (uwpCoreWindow == NULL) { TRACELOG(LOG_ERROR, "UWP: A pointer to the UWP core window must be set before InitWindow()"); pass = false; }
|
|
|
|
|
|
- if (uwpDisplaySizeFunc == NULL)
|
|
|
- {
|
|
|
- TRACELOG(LOG_ERROR, "You must call UWPSetDisplaySizeFunc with a valid function before calling InitWindow()");
|
|
|
- pass = false;
|
|
|
- }
|
|
|
-
|
|
|
- if (uwpMouseLockFunc == NULL)
|
|
|
- {
|
|
|
- TRACELOG(LOG_ERROR, "You must call UWPSetMouseLockFunc with a valid function before calling InitWindow()");
|
|
|
- pass = false;
|
|
|
- }
|
|
|
-
|
|
|
- if (uwpMouseUnlockFunc == NULL)
|
|
|
- {
|
|
|
- TRACELOG(LOG_ERROR, "You must call UWPSetMouseUnlockFunc with a valid function before calling InitWindow()");
|
|
|
- pass = false;
|
|
|
- }
|
|
|
-
|
|
|
- if (uwpMouseShowFunc == NULL)
|
|
|
- {
|
|
|
- TRACELOG(LOG_ERROR, "You must call UWPSetMouseShowFunc with a valid function before calling InitWindow()");
|
|
|
- pass = false;
|
|
|
- }
|
|
|
-
|
|
|
- if (uwpMouseHideFunc == NULL)
|
|
|
- {
|
|
|
- TRACELOG(LOG_ERROR, "You must call UWPSetMouseHideFunc with a valid function before calling InitWindow()");
|
|
|
- pass = false;
|
|
|
- }
|
|
|
-
|
|
|
- if (uwpMouseSetPosFunc == NULL)
|
|
|
- {
|
|
|
- TRACELOG(LOG_ERROR, "You must call UWPSetMouseSetPosFunc with a valid function before calling InitWindow()");
|
|
|
- pass = false;
|
|
|
- }
|
|
|
-
|
|
|
- if (uwpCoreWindow == NULL)
|
|
|
- {
|
|
|
- TRACELOG(LOG_ERROR, "You must set a pointer to the UWP core window before calling InitWindow()");
|
|
|
- pass = false;
|
|
|
- }
|
|
|
return pass;
|
|
|
}
|
|
|
-void UWPSetDataPath(const char* path)
|
|
|
-{
|
|
|
- CORE.UWP.internalDataPath = path;
|
|
|
-}
|
|
|
-
|
|
|
-UWPQueryTimeFunc UWPGetQueryTimeFunc(void)
|
|
|
-{
|
|
|
- return uwpQueryTimeFunc;
|
|
|
-}
|
|
|
-
|
|
|
-void UWPSetQueryTimeFunc(UWPQueryTimeFunc func)
|
|
|
-{
|
|
|
- uwpQueryTimeFunc = func;
|
|
|
-}
|
|
|
-
|
|
|
-UWPSleepFunc UWPGetSleepFunc(void)
|
|
|
-{
|
|
|
- return uwpSleepFunc;
|
|
|
-}
|
|
|
-
|
|
|
-void UWPSetSleepFunc(UWPSleepFunc func)
|
|
|
-{
|
|
|
- uwpSleepFunc = func;
|
|
|
-}
|
|
|
-
|
|
|
-UWPDisplaySizeFunc UWPGetDisplaySizeFunc(void)
|
|
|
-{
|
|
|
- return uwpDisplaySizeFunc;
|
|
|
-}
|
|
|
-
|
|
|
-void UWPSetDisplaySizeFunc(UWPDisplaySizeFunc func)
|
|
|
-{
|
|
|
- uwpDisplaySizeFunc = func;
|
|
|
-}
|
|
|
|
|
|
-UWPMouseFunc UWPGetMouseLockFunc()
|
|
|
-{
|
|
|
- return uwpMouseLockFunc;
|
|
|
-}
|
|
|
-
|
|
|
-void UWPSetMouseLockFunc(UWPMouseFunc func)
|
|
|
-{
|
|
|
- uwpMouseLockFunc = func;
|
|
|
-}
|
|
|
-
|
|
|
-UWPMouseFunc UWPGetMouseUnlockFunc()
|
|
|
-{
|
|
|
- return uwpMouseUnlockFunc;
|
|
|
-}
|
|
|
-
|
|
|
-void UWPSetMouseUnlockFunc(UWPMouseFunc func)
|
|
|
-{
|
|
|
- uwpMouseUnlockFunc = func;
|
|
|
-}
|
|
|
-
|
|
|
-UWPMouseFunc UWPGetMouseShowFunc()
|
|
|
-{
|
|
|
- return uwpMouseShowFunc;
|
|
|
-}
|
|
|
-
|
|
|
-void UWPSetMouseShowFunc(UWPMouseFunc func)
|
|
|
-{
|
|
|
- uwpMouseShowFunc = func;
|
|
|
-}
|
|
|
-
|
|
|
-UWPMouseFunc UWPGetMouseHideFunc()
|
|
|
-{
|
|
|
- return uwpMouseHideFunc;
|
|
|
-}
|
|
|
-
|
|
|
-void UWPSetMouseHideFunc(UWPMouseFunc func)
|
|
|
-{
|
|
|
- uwpMouseHideFunc = func;
|
|
|
-}
|
|
|
-
|
|
|
-UWPMouseSetPosFunc UWPGetMouseSetPosFunc()
|
|
|
-{
|
|
|
- return uwpMouseSetPosFunc;
|
|
|
-}
|
|
|
-
|
|
|
-void UWPSetMouseSetPosFunc(UWPMouseSetPosFunc func)
|
|
|
-{
|
|
|
- uwpMouseSetPosFunc = func;
|
|
|
-}
|
|
|
-
|
|
|
-void* UWPGetCoreWindowPtr()
|
|
|
-{
|
|
|
- return uwpCoreWindow;
|
|
|
-}
|
|
|
-
|
|
|
-void UWPSetCoreWindowPtr(void* ptr)
|
|
|
-{
|
|
|
- uwpCoreWindow = ptr;
|
|
|
-}
|
|
|
-
|
|
|
-void UWPMouseWheelEvent(int deltaY)
|
|
|
-{
|
|
|
- CORE.Input.Mouse.currentWheelMove = (int)deltaY;
|
|
|
-}
|
|
|
+// UWP function handlers get/set
|
|
|
+void UWPSetDataPath(const char* path) { CORE.UWP.internalDataPath = path; }
|
|
|
+UWPQueryTimeFunc UWPGetQueryTimeFunc(void) { return uwpQueryTimeFunc; }
|
|
|
+void UWPSetQueryTimeFunc(UWPQueryTimeFunc func) { uwpQueryTimeFunc = func; }
|
|
|
+UWPSleepFunc UWPGetSleepFunc(void) { return uwpSleepFunc; }
|
|
|
+void UWPSetSleepFunc(UWPSleepFunc func) { uwpSleepFunc = func; }
|
|
|
+UWPDisplaySizeFunc UWPGetDisplaySizeFunc(void) { return uwpDisplaySizeFunc; }
|
|
|
+void UWPSetDisplaySizeFunc(UWPDisplaySizeFunc func) { uwpDisplaySizeFunc = func; }
|
|
|
+UWPMouseFunc UWPGetMouseLockFunc() { return uwpMouseLockFunc; }
|
|
|
+void UWPSetMouseLockFunc(UWPMouseFunc func) { uwpMouseLockFunc = func; }
|
|
|
+UWPMouseFunc UWPGetMouseUnlockFunc() { return uwpMouseUnlockFunc; }
|
|
|
+void UWPSetMouseUnlockFunc(UWPMouseFunc func) { uwpMouseUnlockFunc = func; }
|
|
|
+UWPMouseFunc UWPGetMouseShowFunc() { return uwpMouseShowFunc; }
|
|
|
+void UWPSetMouseShowFunc(UWPMouseFunc func) { uwpMouseShowFunc = func; }
|
|
|
+UWPMouseFunc UWPGetMouseHideFunc() { return uwpMouseHideFunc; }
|
|
|
+void UWPSetMouseHideFunc(UWPMouseFunc func) { uwpMouseHideFunc = func; }
|
|
|
+UWPMouseSetPosFunc UWPGetMouseSetPosFunc() { return uwpMouseSetPosFunc; }
|
|
|
+void UWPSetMouseSetPosFunc(UWPMouseSetPosFunc func) { uwpMouseSetPosFunc = func; }
|
|
|
+
|
|
|
+void *UWPGetCoreWindowPtr() { return uwpCoreWindow; }
|
|
|
+void UWPSetCoreWindowPtr(void* ptr) { uwpCoreWindow = ptr; }
|
|
|
+void UWPMouseWheelEvent(int deltaY) { CORE.Input.Mouse.currentWheelMove = (int)deltaY; }
|
|
|
|
|
|
void UWPKeyDownEvent(int key, bool down, bool controlKey)
|
|
|
{
|
|
@@ -5341,7 +5225,6 @@ void UWPKeyDownEvent(int key, bool down, bool controlKey)
|
|
|
// saveFileFromMEMFSToDisk() function is defined in raylib/templates/web_shel/shell.html
|
|
|
emscripten_run_script(TextFormat("saveFileFromMEMFSToDisk('%s','%s')", TextFormat("screenrec%03i.gif", screenshotCounter - 1), TextFormat("screenrec%03i.gif", screenshotCounter - 1)));
|
|
|
#endif
|
|
|
-
|
|
|
TRACELOG(LOG_INFO, "SYSTEM: Finish animated GIF recording");
|
|
|
}
|
|
|
else
|
|
@@ -5350,15 +5233,8 @@ void UWPKeyDownEvent(int key, bool down, bool controlKey)
|
|
|
gifFramesCounter = 0;
|
|
|
|
|
|
char path[512] = { 0 };
|
|
|
-#if defined(PLATFORM_ANDROID)
|
|
|
- strcpy(path, CORE.Android.internalDataPath);
|
|
|
- strcat(path, TextFormat("./screenrec%03i.gif", screenshotCounter));
|
|
|
-#elif defined(PLATFORM_UWP)
|
|
|
strcpy(path, CORE.UWP.internalDataPath);
|
|
|
strcat(path, TextFormat("./screenrec%03i.gif", screenshotCounter));
|
|
|
-#else
|
|
|
- strcpy(path, TextFormat("./screenrec%03i.gif", screenshotCounter));
|
|
|
-#endif
|
|
|
|
|
|
// NOTE: delay represents the time between frames in the gif, if we capture a gif frame every
|
|
|
// 10 game frames and each frame trakes 16.6ms (60fps), delay between gif frames should be ~16.6*10.
|
|
@@ -5472,15 +5348,15 @@ void UWPResizeEvent(int width, int height)
|
|
|
|
|
|
void UWPActivateGamepadEvent(int gamepad, bool active)
|
|
|
{
|
|
|
- if (gamepad < MAX_GAMEPADS) {
|
|
|
- CORE.Input.Gamepad.ready[gamepad] = active;
|
|
|
- }
|
|
|
+ if (gamepad < MAX_GAMEPADS) CORE.Input.Gamepad.ready[gamepad] = active;
|
|
|
}
|
|
|
|
|
|
void UWPRegisterGamepadButton(int gamepad, int button, bool down)
|
|
|
{
|
|
|
- if (gamepad < MAX_GAMEPADS) {
|
|
|
- if (button < MAX_GAMEPAD_BUTTONS) {
|
|
|
+ if (gamepad < MAX_GAMEPADS)
|
|
|
+ {
|
|
|
+ if (button < MAX_GAMEPAD_BUTTONS)
|
|
|
+ {
|
|
|
CORE.Input.Gamepad.currentState[gamepad][button] = down;
|
|
|
CORE.Input.Gamepad.lastButtonPressed = button;
|
|
|
}
|
|
@@ -5491,10 +5367,7 @@ void UWPRegisterGamepadAxis(int gamepad, int axis, float value)
|
|
|
{
|
|
|
if (gamepad < MAX_GAMEPADS)
|
|
|
{
|
|
|
- if (axis < MAX_GAMEPAD_AXIS)
|
|
|
- {
|
|
|
- CORE.Input.Gamepad.axisState[gamepad][axis] = value;
|
|
|
- }
|
|
|
+ if (axis < MAX_GAMEPAD_AXIS) CORE.Input.Gamepad.axisState[gamepad][axis] = value;
|
|
|
}
|
|
|
}
|
|
|
|