mirror of
https://github.com/captain-amygdala/pistorm.git
synced 2026-01-11 23:43:13 +00:00
NOTE: A working keyboard must be attached to the Raspberry Pi while testing this, otherwise it's impossible to actually quit the emulator. raylib takes possession of the SSH keyboard for some reason, which makes it so you can't Ctrl+C out of the emulator over SSH, you must Ctrl+C or press Q on the Pi keyboard. A mostly working RTG implementation using raylib instead of SDL2.0 Greatly decreases the rendering overhead for 8bpp modes and gets rid of the need for hardware ARGB888 texture format support. RTG will be initialized using the resolution of the Raspberry Pi, and onbly the 320x200/320x240 modes are currently scaled to the full vertical area of the screen.
120 lines
4.0 KiB
C
120 lines
4.0 KiB
C
/**********************************************************************************************
|
|
*
|
|
* 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
|