mirror of
https://github.com/raysan5/raylib.git
synced 2026-02-03 12:49:17 -05:00
UWP rework (#1231)
* First draft of UWP rework. * Read desc - Moved UWP specific functions to uwp_events.h - Removed BaseApp. - Implemented example UWP lifecycle. * Added GIF recording and screenshot support. * Character inputs and filesystem stuff * Fix game closing on Xbox when B is pressed. * Fix the gamepad binding hack * Add as many keys as I believe are possible. * Implemented mouse locking of a sort. * Remove rogue todo, the rest are for a game dev using this example. * Implemented touch how I "think" it should work. I cant test this. * Review.
This commit is contained in:
@ -4,22 +4,49 @@
|
||||
|
||||
#include "pch.h"
|
||||
|
||||
// Define what header we use for BaseApp.h
|
||||
#define PCH "pch.h"
|
||||
|
||||
// Enable hold hack
|
||||
#define HOLDHACK
|
||||
|
||||
#include "BaseApp.h"
|
||||
|
||||
namespace raylibUWP
|
||||
{
|
||||
ref class App sealed : public BaseApp
|
||||
ref class App sealed : public Windows::ApplicationModel::Core::IFrameworkView
|
||||
{
|
||||
public:
|
||||
public:
|
||||
App();
|
||||
|
||||
App();
|
||||
// IFrameworkView methods.
|
||||
void Initialize(Windows::ApplicationModel::Core::CoreApplicationView^ applicationView) override;
|
||||
void SetWindow(Windows::UI::Core::CoreWindow^ window) override;
|
||||
void Load(Platform::String^ entryPoint) override;
|
||||
void Run() override;
|
||||
void Uninitialize() override;
|
||||
private:
|
||||
bool mWindowVisible = true;
|
||||
bool mSuspended = false;
|
||||
|
||||
void Update() override;
|
||||
void GameLoop();
|
||||
void PreProcessInputs();
|
||||
void PostProcessInputs();
|
||||
|
||||
// Helpers
|
||||
int GetRaylibKey(Windows::System::VirtualKey kVey);
|
||||
|
||||
// Events
|
||||
void OnActivated(Windows::ApplicationModel::Core::CoreApplicationView^ applicationView, Windows::ApplicationModel::Activation::IActivatedEventArgs^ args);
|
||||
void OnSuspending(Platform::Object^ sender, Windows::ApplicationModel::SuspendingEventArgs^ args);
|
||||
void OnResuming(Platform::Object^ sender, Platform::Object^ args);
|
||||
void OnWindowSizeChanged(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::WindowSizeChangedEventArgs^ args);
|
||||
void OnVisibilityChanged(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::VisibilityChangedEventArgs^ args);
|
||||
void OnPointerPressed(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::PointerEventArgs^ args);
|
||||
void OnPointerReleased(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::PointerEventArgs^ args);
|
||||
void OnPointerWheelChanged(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::PointerEventArgs^ args);
|
||||
void OnPointerMoved(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::PointerEventArgs^ args);
|
||||
void OnKeyDown(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::KeyEventArgs^ args);
|
||||
void OnKeyUp(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::KeyEventArgs^ args);
|
||||
void OnCharacterReceived(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::CharacterReceivedEventArgs^ args);
|
||||
void OnBackRequested(Platform::Object^ sender, Windows::UI::Core::BackRequestedEventArgs^ args);
|
||||
};
|
||||
|
||||
ref class AppSource sealed : Windows::ApplicationModel::Core::IFrameworkViewSource
|
||||
{
|
||||
public:
|
||||
Windows::ApplicationModel::Core::IFrameworkView^ CreateView() override;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user