mirror of
https://github.com/raysan5/raylib.git
synced 2025-09-10 13:28:16 +00:00
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
This commit is contained in:
75
src/utils.h
75
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
|
||||
|
Reference in New Issue
Block a user