16 static constexpr size_t TexturePixelSize = 4;
17 static constexpr size_t MaxTextureSize = 8192;
19 Display(std::unique_ptr<Renderer> renderer);
23 bool bAllowUnacceleratedRenderer)
override;
24 [[nodiscard]] std::string GetApiDescription()
const override
26 return m_Renderer->GetApiDescription();
28 void GetDisplaySpecs(DisplaySpecs& out)
const override;
29 void ResolutionChanged()
override;
31 RagePixelFormat pf)
const override;
33 bool BeginFrame()
override;
34 void EndFrame()
override;
37 void SetBlendMode(BlendMode mode)
override;
38 bool SupportsTextureFormat(RagePixelFormat pixfmt,
39 bool realtime =
false)
override;
40 bool SupportsThreadedRendering()
override;
41 bool SupportsPerVertexMatrixScale()
override;
43 intptr_t CreateTexture(RagePixelFormat pixfmt,
45 bool bGenerateMipMaps)
override;
46 void UpdateTexture(intptr_t uTexHandle,
52 void DeleteTexture(intptr_t iTexHandle)
override;
53 void ClearAllTextures()
override;
54 [[nodiscard]]
int GetMaxTextureSize()
const override;
56 int GetNumTextureUnits()
override;
57 void SetTexture(TextureUnit tu, intptr_t iTexture)
override;
58 void SetTextureMode(TextureUnit tu, TextureMode tm)
override;
59 void SetTextureWrapping(TextureUnit tu,
bool b)
override;
60 void SetTextureFiltering(TextureUnit tu,
bool b)
override;
61 [[nodiscard]]
bool IsZWriteEnabled()
const override;
62 [[nodiscard]]
bool IsZTestEnabled()
const override;
63 void SetZWrite(
bool b)
override;
64 void SetZBias(
float f)
override;
65 void SetZTestMode(ZTestMode mode)
override;
66 void ClearZBuffer()
override;
67 void SetCullMode(CullMode mode)
override;
68 void SetAlphaTest(
bool b)
override;
69 void SetMaterial(
const RageColor& emissive,
73 float shininess)
override;
74 void SetLighting(
bool b)
override;
75 void SetLightOff(
int index)
override;
76 void SetLightDirectional(
int index,
82 const std::string& vertexShaderPath,
83 const std::string& fragmentShaderPath)
override;
85 const std::vector<uint8_t>& vertexShaderArgs,
86 const std::vector<uint8_t>& fragShaderArgs,
87 bool persist)
override;
88 void ReloadPipelines()
override;
90 int& iTextureWidthOut,
91 int& iTextureHeightOut)
override;
92 intptr_t GetRenderTarget()
override;
93 void SetRenderTarget(intptr_t uTexHandle,
bool bPreserveTexture)
override;
95 void SetSphereEnvironmentMapping(TextureUnit tu,
bool b)
override;
96 void SetCelShaded(
int stage)
override;
98 bool IsD3DInternal()
override {
return m_Renderer->IsD3DInternal(); }
99 [[nodiscard]]
bool SupportsFullscreenBorderlessWindow()
const override
110 int iNumVerts)
override;
114 int iNumVerts)
override;
116 int iNumVerts)
override;
118 int iMeshIndex)
override;
121 bool& bNewDeviceOut)
override;
126 std::unique_ptr<Renderer> m_Renderer;
127 bool m_IsInitDone =
false;
130 intptr_t m_CurrentRenderTarget = 0;
131 size_t CurrentBufferScale = 1;