libultraship
Reimplementations of libultra (N64 SDK) functions for modern hardware
Loading...
Searching...
No Matches
gfx_window_manager_api.h
Go to the documentation of this file.
1#pragma once
2
3#include <stdint.h>
4#include <stdbool.h>
6namespace Fast {
8 public:
9 virtual ~GfxWindowBackend() = default;
10 virtual void Init(const char* gameName, const char* apiName, bool startFullScreen, uint32_t width, uint32_t height,
11 int32_t posX, int32_t posY) = 0;
12 virtual void Close() = 0;
13 virtual void SetKeyboardCallbacks(bool (*mOnKeyDown)(int scancode), bool (*mOnKeyUp)(int scancode),
14 void (*mOnAllKeysUp)()) = 0;
15 virtual void SetMouseCallbacks(bool (*mOnMouseButtonDown)(int btn), bool (*mOnMouseButtonUp)(int btn)) = 0;
16 virtual void SetFullscreenChangedCallback(void (*mOnFullscreenChanged)(bool is_now_fullscreen)) = 0;
17 virtual void SetFullscreen(bool fullscreen) = 0;
18 virtual void GetActiveWindowRefreshRate(uint32_t* refreshRate) = 0;
19 virtual void SetCursorVisibility(bool visability) = 0;
20 virtual void SetMousePos(int32_t posX, int32_t posY) = 0;
21 virtual void GetMousePos(int32_t* x, int32_t* y) = 0;
22 virtual void GetMouseDelta(int32_t* x, int32_t* y) = 0;
23 virtual void GetMouseWheel(float* x, float* y) = 0;
24 virtual bool GetMouseState(uint32_t btn) = 0;
25 virtual void SetMouseCapture(bool capture) = 0;
26 virtual bool IsMouseCaptured() = 0;
27 virtual void GetDimensions(uint32_t* width, uint32_t* height, int32_t* posX, int32_t* posY) = 0;
28 virtual void SetDimensions(uint32_t width, uint32_t height, int32_t posX, int32_t posY) = 0;
30 virtual void HandleEvents() = 0;
31 virtual bool IsFrameReady() = 0;
32 virtual void SwapBuffersBegin() = 0;
33 virtual void SwapBuffersEnd() = 0;
34 virtual double GetTime() = 0;
35 virtual int GetTargetFps() = 0;
36 virtual void SetTargetFps(int fps) = 0;
37 virtual void SetMaxFrameLatency(int latency) = 0;
38 virtual const char* GetKeyName(int scancode) = 0;
39 virtual bool CanDisableVsync() = 0;
40 virtual bool IsRunning() = 0;
41 virtual void Destroy() = 0;
42 virtual bool IsFullscreen() = 0;
43
44 protected:
45 void (*mOnFullscreenChanged)(bool isNowFullscreen);
46 bool (*mOnKeyDown)(int scancode);
47 bool (*mOnKeyUp)(int scancode);
48 bool (*mOnMouseButtonDown)(int btn);
49 bool (*mOnMouseButtonUp)(int btn);
50 uint32_t mTargetFps = 60;
52 bool mIsRunning = true;
53 bool mVsyncEnabled = true;
54};
55} // namespace Fast
Definition gfx_window_manager_api.h:7
virtual void SwapBuffersEnd()=0
virtual void HandleEvents()=0
virtual void SetMouseCapture(bool capture)=0
virtual bool IsFrameReady()=0
virtual bool IsFullscreen()=0
virtual void SwapBuffersBegin()=0
virtual void SetMouseCallbacks(bool(*mOnMouseButtonDown)(int btn), bool(*mOnMouseButtonUp)(int btn))=0
virtual bool IsRunning()=0
virtual double GetTime()=0
virtual bool GetMouseState(uint32_t btn)=0
virtual void Destroy()=0
virtual void SetFullscreen(bool fullscreen)=0
bool(* mOnKeyUp)(int scancode)
Definition gfx_window_manager_api.h:47
virtual void SetTargetFps(int fps)=0
virtual void SetDimensions(uint32_t width, uint32_t height, int32_t posX, int32_t posY)=0
virtual bool CanDisableVsync()=0
virtual void GetMouseWheel(float *x, float *y)=0
bool mVsyncEnabled
Definition gfx_window_manager_api.h:53
virtual void Close()=0
virtual const char * GetKeyName(int scancode)=0
bool mFullScreen
Definition gfx_window_manager_api.h:51
virtual void GetActiveWindowRefreshRate(uint32_t *refreshRate)=0
virtual ~GfxWindowBackend()=default
virtual void SetFullscreenChangedCallback(void(*mOnFullscreenChanged)(bool is_now_fullscreen))=0
virtual void SetKeyboardCallbacks(bool(*mOnKeyDown)(int scancode), bool(*mOnKeyUp)(int scancode), void(*mOnAllKeysUp)())=0
uint32_t mTargetFps
Definition gfx_window_manager_api.h:50
virtual void SetCursorVisibility(bool visability)=0
virtual void GetMouseDelta(int32_t *x, int32_t *y)=0
virtual void SetMaxFrameLatency(int latency)=0
virtual void GetDimensions(uint32_t *width, uint32_t *height, int32_t *posX, int32_t *posY)=0
virtual void SetMousePos(int32_t posX, int32_t posY)=0
virtual int GetTargetFps()=0
virtual void GetMousePos(int32_t *x, int32_t *y)=0
bool mIsRunning
Definition gfx_window_manager_api.h:52
virtual bool IsMouseCaptured()=0
void(* mOnFullscreenChanged)(bool isNowFullscreen)
Definition gfx_window_manager_api.h:45
bool(* mOnMouseButtonDown)(int btn)
Definition gfx_window_manager_api.h:48
virtual Ship::WindowRect GetPrimaryMonitorRect()=0
bool(* mOnMouseButtonUp)(int btn)
Definition gfx_window_manager_api.h:49
virtual void Init(const char *gameName, const char *apiName, bool startFullScreen, uint32_t width, uint32_t height, int32_t posX, int32_t posY)=0
bool(* mOnKeyDown)(int scancode)
Definition gfx_window_manager_api.h:46
Definition gfx_direct3d_common.h:19
Screen-space rectangle in integer pixels.
Definition Window.h:38