summaryrefslogtreecommitdiffhomepage
path: root/src/utils.h
diff options
context:
space:
mode:
authorReece Mackie <[email protected]>2019-04-27 19:33:51 +0100
committerRay <[email protected]>2019-04-27 20:33:51 +0200
commit2de1f318212dbceb71db6be053be995208748f2a (patch)
treea357bfc6e8b825ebfd26098a32bc11efa2c8dc8e /src/utils.h
parentf37e55a77bd6177dbaea4d7f484961c09104e104 (diff)
downloadraylib-2de1f318212dbceb71db6be053be995208748f2a.tar.gz
raylib-2de1f318212dbceb71db6be053be995208748f2a.zip
UWP Support Overhaul (#819)
* Working build * Fix build again, stop deleting files * Hotfix crash, needs investigating * Remove VS2015.UWP, I cannot update the project * Lots of UWP work, added keyboard and mouse press support. Still need to finish scroll wheel, mouse position and cursor hiding, plus other stuff that I haven't seen yet. * Implemented a ton more things, added BaseApp.h to provide common code to UWP apps. * Remove constant window dimensions * Enable and Disable cursor support. * Actually use mouse delta * Gamepad Support * Cleaning and small tweaks * Restore original example. * Update comment * Use 'Messages' to handle the cursor functions so code is more portable. * Comment * Comment unused message fields and use vector for mouse pos instead. * Move messages to utils.h and use messages for everything. No more plat-specific code in raylib.h * Working build * Fix build again, stop deleting files * Hotfix crash, needs investigating * Remove VS2015.UWP, I cannot update the project * Lots of UWP work, added keyboard and mouse press support. Still need to finish scroll wheel, mouse position and cursor hiding, plus other stuff that I haven't seen yet. * Implemented a ton more things, added BaseApp.h to provide common code to UWP apps. * Remove constant window dimensions * Enable and Disable cursor support. * Actually use mouse delta * Gamepad Support * Cleaning and small tweaks * Restore original example. * Update comment * Use 'Messages' to handle the cursor functions so code is more portable. * Comment * Comment unused message fields and use vector for mouse pos instead. * Move messages to utils.h and use messages for everything. No more plat-specific code in raylib.h * Tested some desktop stuff and added projection matrix updates for window resizing. * Fixed big bad mouse bug * Fix alt buttons and add hack to combat flickery key presses (far from perfect) * Remove debug code * Final commit * Well, so I thought * Wow, i am bad * Remove packages folder * Remove useless include * Apply requested changes and fix linux build * Try to stop packages folder * Have we fixed the formatting properly? * Third time's the charm? * Where did this come from? * Re-fix * Autoformat is gonna kill * Fixed XBOX ONE Support * Fix tabs
Diffstat (limited to 'src/utils.h')
-rw-r--r--src/utils.h75
1 files changed, 75 insertions, 0 deletions
diff --git a/src/utils.h b/src/utils.h
index d7ab8829..14e6bf70 100644
--- a/src/utils.h
+++ b/src/utils.h
@@ -59,6 +59,81 @@ 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
+{
+ None = 0,
+
+ //Send
+ ShowMouse,
+ HideMouse,
+ LockMouse,
+ UnlockMouse,
+ SetMouseLocation, //Vector0 (pos)
+
+ //Recieve (Into C)
+ RegisterKey, //Int0 (key), Char0 (status)
+ RegisterClick, //Int0 (button), Char0 (status)
+ ScrollWheelUpdate, //Int0 (delta)
+ UpdateMouseLocation, //Vector0 (pos)
+ MarkGamepadActive, //Int0 (gamepad), Bool0 (active or not)
+ MarkGamepadButton, //Int0 (gamepad), Int1 (button), Char0 (status)
+ MarkGamepadAxis,//Int0 (gamepad), int1 (axis), Float0 (value)
+ SetDisplayDims, //Vector0 (display dimensions)
+ HandleResize, //Vector0 (new dimensions) - Onresized event
+ SetGameTime, //Int0
+} UWPMessageType;
+
+typedef struct UWPMessage
+{
+ //The message type
+ UWPMessageType Type;
+
+ //Vector parameters
+ Vector2 Vector0;
+
+ //Int parameters
+ int Int0;
+ int Int1;
+
+ //Char parameters
+ char Char0;
+
+ //Float parameters
+ float Float0;
+
+ //Double parameters
+ double Double0;
+
+ //Bool parameters
+ bool Bool0;
+
+ //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
+
#ifdef __cplusplus
}
#endif