25 std::shared_ptr<Ship::FileDrop> fileDrop =
nullptr,
26 std::shared_ptr<Ship::ConsoleVariable> consoleVariable =
nullptr,
27 std::shared_ptr<Fast::Fast3dGui> fast3dGui =
nullptr);
32 void Init(
const char* gameName,
const char* apiName,
bool startFullScreen, uint32_t width, uint32_t height,
33 int32_t posX, int32_t posY)
override;
36 void (*onAllKeysUp)())
override;
37 void SetMouseCallbacks(
bool (*onMouseButtonDown)(
int btn),
bool (*onMouseButtonUp)(
int btn))
override;
49 void GetDimensions(uint32_t* width, uint32_t* height, int32_t* posX, int32_t* posY)
override;
50 void SetDimensions(uint32_t width, uint32_t height, int32_t posX, int32_t posY)
override;
67 void SetFullscreenImpl(
bool on,
bool call_callback);
68 void HandleSingleEvent(SDL_Event& event);
69 int TranslateScancode(
int scancode)
const;
70 int UntranslateScancode(
int translatedScancode)
const;
71 void OnKeydown(
int scancode)
const;
72 void OnKeyup(
int scancode)
const;
73 void OnMouseButtonDown(
int btn)
const;
74 void OnMouseButtonUp(
int btn)
const;
75 void SyncFramerateWithTime()
const;
80 SDL_Renderer* mRenderer;
81 int mSdlToLusTable[512];
82 float mMouseWheelX = 0.0f;
83 float mMouseWheelY = 0.0f;
88 int mWindowWidth = 640;
89 int mWindowHeight = 480;
90 void (*mOnAllKeysUp)();
92 std::shared_ptr<Ship::ConsoleVariable> mConsoleVariable;
93 std::shared_ptr<Ship::Config> mConfig;
94 std::shared_ptr<Ship::FileDrop> mFileDrop;
95 std::shared_ptr<Fast::Fast3dGui> mFast3dGui;
SDL2 implementation of the Fast3D window/input backend.
Definition gfx_sdl.h:21
void SetKeyboardCallbacks(bool(*onKeyDown)(int scancode), bool(*onKeyUp)(int scancode), void(*onAllKeysUp)()) override
void GetActiveWindowRefreshRate(uint32_t *refreshRate) override
const char * GetKeyName(int scancode) override
void GetMousePos(int32_t *x, int32_t *y) override
void SwapBuffersBegin() override
bool CanDisableVsync() override
void SetTargetFps(int fps) override
bool IsRunning() override
void SetDimensions(uint32_t width, uint32_t height, int32_t posX, int32_t posY) override
void SetFullscreenChangedCallback(void(*onFullscreenChanged)(bool is_now_fullscreen)) override
void SetCursorVisibility(bool visability) override
void Init(const char *gameName, const char *apiName, bool startFullScreen, uint32_t width, uint32_t height, int32_t posX, int32_t posY) override
void SetMouseCallbacks(bool(*onMouseButtonDown)(int btn), bool(*onMouseButtonUp)(int btn)) override
void GetDimensions(uint32_t *width, uint32_t *height, int32_t *posX, int32_t *posY) override
void GetMouseDelta(int32_t *x, int32_t *y) override
Ship::WindowRect GetPrimaryMonitorRect() override
~GfxWindowBackendSDL2() override
void SwapBuffersEnd() override
double GetTime() override
void SetMousePos(int32_t posX, int32_t posY) override
void SetFullscreen(bool fullscreen) override
GfxWindowBackendSDL2(std::shared_ptr< Ship::Config > config=nullptr, std::shared_ptr< Ship::FileDrop > fileDrop=nullptr, std::shared_ptr< Ship::ConsoleVariable > consoleVariable=nullptr, std::shared_ptr< Fast::Fast3dGui > fast3dGui=nullptr)
Constructs the backend with optional shared engine dependencies.
bool GetMouseState(uint32_t btn) override
void SetMouseCapture(bool capture) override
void HandleEvents() override
bool IsFrameReady() override
bool IsMouseCaptured() override
bool IsFullscreen() override
void SetMaxFrameLatency(int latency) override
void GetMouseWheel(float *x, float *y) override
Definition gfx_window_manager_api.h:7
Definition gfx_direct3d_common.h:19
Core namespace for the libultraship engine framework.
Definition gfx_direct3d_common.h:14
Screen-space rectangle in integer pixels.
Definition Window.h:38