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:
Reece Mackie
2019-04-27 19:33:51 +01:00
committed by Ray
parent f37e55a77b
commit 2de1f31821
29 changed files with 1382 additions and 838 deletions

View File

@@ -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