Administrative source import: native x86 compilation passed for 423 authored units. Source placement and submission states are migrated separately; this commit does not imply peer acceptance.
Previous head: 35d2a8cb36
Payload SHA256: 592f016d2730c5593bb653aa054c1e5f76a6df72c8f5a09e66f74876e2e33dee
41 lines
1.3 KiB
C++
41 lines
1.3 KiB
C++
#ifndef RAGNAROK_SOURCE_RENDER_RENDERSYSTEMBASE_H
|
|
#define RAGNAROK_SOURCE_RENDER_RENDERSYSTEMBASE_H
|
|
|
|
#include <cstdint>
|
|
#include <memory>
|
|
#include <windows.h>
|
|
|
|
class CRenderer;
|
|
class CSurface;
|
|
class CTexture;
|
|
|
|
class CRenderSystemBase {
|
|
public:
|
|
// OFFSET: 0x0056B4D0
|
|
// FUNCTION: fn_02314
|
|
virtual ~CRenderSystemBase() = default;
|
|
virtual std::int32_t Backend() = 0;
|
|
virtual HRESULT Initialize(HWND window) = 0;
|
|
virtual HRESULT Close() = 0;
|
|
virtual bool IsWindowed() = 0;
|
|
virtual std::uint32_t Width() = 0;
|
|
virtual std::uint32_t Height() = 0;
|
|
virtual CRenderer* CreateRenderer() = 0;
|
|
virtual void DestroySurface(CSurface* surface) = 0;
|
|
virtual CSurface* CreateSurface(std::uint32_t width, std::uint32_t height) = 0;
|
|
virtual CTexture* CreateTexture(std::uint32_t width, std::uint32_t height, std::int32_t format, bool option1, bool option2) = 0;
|
|
virtual CSurface* CreateSurfaceOrTexture(std::uint32_t width, std::uint32_t height) = 0;
|
|
virtual CTexture* BackBufferTexture() = 0;
|
|
virtual std::shared_ptr<CSurface> BackBufferSurface() = 0;
|
|
virtual void UpdateOption() = 0;
|
|
virtual void PrepareErrorDialog() = 0;
|
|
virtual void RestoreDisplayMode() = 0;
|
|
virtual HRESULT TestDevice() = 0;
|
|
virtual HRESULT Present(bool option) = 0;
|
|
};
|
|
|
|
#if defined(_WIN32) && !defined(_WIN64)
|
|
static_assert(sizeof(CRenderSystemBase) == 4);
|
|
#endif
|
|
|
|
#endif
|