summaryrefslogtreecommitdiffhomepage
path: root/src/utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils.h')
-rw-r--r--src/utils.h61
1 files changed, 60 insertions, 1 deletions
diff --git a/src/utils.h b/src/utils.h
index 08b33962..1611b02c 100644
--- a/src/utils.h
+++ b/src/utils.h
@@ -5,7 +5,7 @@
*
* LICENSE: zlib/libpng
*
-* Copyright (c) 2014-2018 Ramon Santamaria (@raysan5)
+* Copyright (c) 2014-2019 Ramon Santamaria (@raysan5)
*
* This software is provided "as-is", without any express or implied warranty. In no event
* will the authors be held liable for any damages arising from the use of this software.
@@ -59,6 +59,65 @@ void InitAssetManager(AAssetManager *manager); // Initialize asset manager from
FILE *android_fopen(const char *fileName, const char *mode); // Replacement for fopen()
#endif
+#if defined(PLATFORM_UWP)
+// UWP Messages System
+typedef enum {
+ UWP_MSG_NONE = 0,
+
+ // Send
+ UWP_MSG_SHOW_MOUSE,
+ UWP_MSG_HIDE_MOUSE,
+ UWP_MSG_LOCK_MOUSE,
+ UWP_MSG_UNLOCK_MOUSE,
+ UWP_MSG_SET_MOUSE_LOCATION, // paramVector0 (pos)
+
+ // Receive (Into C)
+ UWP_MSG_REGISTER_KEY, // paramInt0 (key), paramChar0 (status)
+ UWP_MSG_REGISTER_CLICK, // paramInt0 (button), paramChar0 (status)
+ UWP_MSG_SCROLL_WHEEL_UPDATE, // paramInt0 (delta)
+ UWP_MSG_UPDATE_MOUSE_LOCATION, // paramVector0 (pos)
+ UWP_MSG_SET_GAMEPAD_ACTIVE, // paramInt0 (gamepad), paramBool0 (active or not)
+ UWP_MSG_SET_GAMEPAD_BUTTON, // paramInt0 (gamepad), paramInt1 (button), paramChar0 (status)
+ UWP_MSG_SET_GAMEPAD_AXIS, // paramInt0 (gamepad), int1 (axis), paramFloat0 (value)
+ UWP_MSG_SET_DISPLAY_DIMS, // paramVector0 (display dimensions)
+ UWP_MSG_HANDLE_RESIZE, // paramVector0 (new dimensions) - Onresized event
+ UWP_MSG_SET_GAME_TIME, // paramInt0
+} UWPMessageType;
+
+typedef struct UWPMessage {
+ UWPMessageType type; // Message type
+
+ Vector2 paramVector0; // Vector parameters
+ int paramInt0; // Int parameter
+ int paramInt1; // Int parameter
+ char paramChar0; // Char parameters
+ float paramFloat0; // Float parameters
+ double paramDouble0; // Double parameters
+ bool paramBool0; // Bool parameters
+
+ // More parameters can be added and fed to functions
+} UWPMessage;
+
+// Allocate UWP Message
+RLAPI UWPMessage* CreateUWPMessage(void);
+
+// Free UWP Message
+RLAPI void DeleteUWPMessage(UWPMessage* msg);
+
+// Get messages into C++
+RLAPI bool UWPHasMessages(void);
+RLAPI UWPMessage* UWPGetMessage(void);
+RLAPI void UWPSendMessage(UWPMessage* msg);
+
+// For C to call
+#ifndef __cplusplus // Hide from C++ code
+void SendMessageToUWP(UWPMessage* msg);
+bool HasMessageFromUWP(void);
+UWPMessage* GetMessageFromUWP(void);
+#endif
+
+#endif //defined(PLATFORM_UWP)
+
#ifdef __cplusplus
}
#endif