|
/**********************************************************************************************
|
|
*
|
|
* raylib.uwp_events - Functions for bootstrapping UWP functionality within raylib's core.
|
|
*
|
|
*
|
|
* LICENSE: zlib/libpng
|
|
*
|
|
* Copyright (c) 2020-2020 Reece Mackie (@Rover656)
|
|
*
|
|
* 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.
|
|
*
|
|
* Permission is granted to anyone to use this software for any purpose, including commercial
|
|
* applications, and to alter it and redistribute it freely, subject to the following restrictions:
|
|
*
|
|
* 1. The origin of this software must not be misrepresented; you must not claim that you
|
|
* wrote the original software. If you use this software in a product, an acknowledgment
|
|
* in the product documentation would be appreciated but is not required.
|
|
*
|
|
* 2. Altered source versions must be plainly marked as such, and must not be misrepresented
|
|
* as being the original software.
|
|
*
|
|
* 3. This notice may not be removed or altered from any source distribution.
|
|
*
|
|
**********************************************************************************************/
|
|
|
|
#ifndef UWP_EVENTS_H
|
|
#define UWP_EVENTS_H
|
|
|
|
#if defined(__cplusplus)
|
|
extern "C" {
|
|
#endif
|
|
|
|
#if defined(PLATFORM_UWP)
|
|
|
|
// Determine if UWP functions are set and ready for raylib's use.
|
|
bool UWPIsConfigured();
|
|
|
|
// Call this to set the UWP data path you wish for saving and loading.
|
|
void UWPSetDataPath(const char* path);
|
|
|
|
// Function for getting program time.
|
|
typedef double(*UWPQueryTimeFunc)();
|
|
UWPQueryTimeFunc UWPGetQueryTimeFunc(void);
|
|
void UWPSetQueryTimeFunc(UWPQueryTimeFunc func);
|
|
|
|
// Function for sleeping the current thread
|
|
typedef void (*UWPSleepFunc)(double sleepUntil);
|
|
UWPSleepFunc UWPGetSleepFunc(void);
|
|
void UWPSetSleepFunc(UWPSleepFunc func);
|
|
|
|
// Function for querying the display size
|
|
typedef void(*UWPDisplaySizeFunc)(int* width, int* height);
|
|
UWPDisplaySizeFunc UWPGetDisplaySizeFunc(void);
|
|
void UWPSetDisplaySizeFunc(UWPDisplaySizeFunc func);
|
|
|
|
// Functions for mouse cursor control
|
|
typedef void(*UWPMouseFunc)(void);
|
|
UWPMouseFunc UWPGetMouseLockFunc();
|
|
void UWPSetMouseLockFunc(UWPMouseFunc func);
|
|
UWPMouseFunc UWPGetMouseUnlockFunc();
|
|
void UWPSetMouseUnlockFunc(UWPMouseFunc func);
|
|
UWPMouseFunc UWPGetMouseShowFunc();
|
|
void UWPSetMouseShowFunc(UWPMouseFunc func);
|
|
UWPMouseFunc UWPGetMouseHideFunc();
|
|
void UWPSetMouseHideFunc(UWPMouseFunc func);
|
|
|
|
// Function for setting mouse cursor position.
|
|
typedef void (*UWPMouseSetPosFunc)(int x, int y);
|
|
UWPMouseSetPosFunc UWPGetMouseSetPosFunc();
|
|
void UWPSetMouseSetPosFunc(UWPMouseSetPosFunc func);
|
|
|
|
// The below functions are implemented in core.c but are placed here so they can be called by user code.
|
|
// This choice is made as platform-specific code is preferred to be kept away from raylib.h
|
|
|
|
// Call this when a Key is pressed or released.
|
|
void UWPKeyDownEvent(int key, bool down, bool controlKey);
|
|
|
|
// Call this on the CoreWindow::CharacterRecieved event
|
|
void UWPKeyCharEvent(int key);
|
|
|
|
// Call when a mouse button state changes
|
|
void UWPMouseButtonEvent(int button, bool down);
|
|
|
|
// Call when the mouse cursor moves
|
|
void UWPMousePosEvent(double x, double y);
|
|
|
|
// Call when the mouse wheel moves
|
|
void UWPMouseWheelEvent(int deltaY);
|
|
|
|
// Call when the window resizes
|
|
void UWPResizeEvent(int width, int height);
|
|
|
|
// Call when a gamepad is made active
|
|
void UWPActivateGamepadEvent(int gamepad, bool active);
|
|
|
|
// Call when a gamepad button state changes
|
|
void UWPRegisterGamepadButton(int gamepad, int button, bool down);
|
|
|
|
// Call when a gamepad axis state changes
|
|
void UWPRegisterGamepadAxis(int gamepad, int axis, float value);
|
|
|
|
// Call when the touch point moves
|
|
void UWPGestureMove(int pointer, float x, float y);
|
|
|
|
// Call when there is a touch down or up
|
|
void UWPGestureTouch(int pointer, float x, float y, bool touch);
|
|
|
|
// Set the core window pointer so that we can pass it to EGL.
|
|
void* UWPGetCoreWindowPtr();
|
|
void UWPSetCoreWindowPtr(void* ptr);
|
|
|
|
#if defined(__cplusplus)
|
|
}
|
|
#endif
|
|
|
|
#endif // PLATFORM_UWP
|
|
|
|
#endif // UWP_EVENTS_H
|