Plasma Engine  2.0
Loading...
Searching...
No Matches
RmlUiRenderer.h
1#pragma once
2
3#include <RmlUiPlugin/RmlUiPluginDLL.h>
4
5#include <RendererCore/Meshes/MeshBufferResource.h>
6#include <RendererCore/Pipeline/Renderer.h>
7
9
10class PL_RMLUIPLUGIN_DLL plRmlUiRenderer : public plRenderer
11{
12 PL_ADD_DYNAMIC_REFLECTION(plRmlUiRenderer, plRenderer);
13 PL_DISALLOW_COPY_AND_ASSIGN(plRmlUiRenderer);
14
15public:
18
19 // plRenderer implementation
20 virtual void GetSupportedRenderDataTypes(plHybridArray<const plRTTI*, 8>& ref_types) const override;
21 virtual void GetSupportedRenderDataCategories(plHybridArray<plRenderData::Category, 8>& ref_categories) const override;
22
23 virtual void RenderBatch(
24 const plRenderViewContext& renderViewContext, const plRenderPipelinePass* pPass, const plRenderDataBatch& batch) const override;
25
26private:
27 void SetScissorRect(const plRenderViewContext& renderViewContext, const plRectFloat& rect, bool bEnable, bool bTransformRect) const;
28 void PrepareStencil(const plRenderViewContext& renderViewContext, const plRectFloat& rect) const;
29
30 plShaderResourceHandle m_hShader;
31 plConstantBufferStorageHandle m_hConstantBuffer;
32
33 plGALBufferHandle m_hQuadIndexBuffer;
34
35 plVertexDeclarationInfo m_VertexDeclarationInfo;
36
37 mutable plMat4 m_mLastTransform = plMat4::MakeIdentity();
38 mutable plRectFloat m_LastRect = plRectFloat(0, 0);
39};
Definition ConstantBufferStorage.h:54
Definition RendererFoundationDLL.h:418
A hybrid array uses in-place storage to handle the first few elements without any allocation....
Definition HybridArray.h:12
static plMat4Template< float > MakeIdentity()
Definition Mat4_inl.h:75
Definition RenderDataBatch.h:6
Definition RenderPipelinePass.h:26
This is the base class for types that handle rendering of different object types.
Definition Renderer.h:9
Definition RmlUiRenderer.h:11
Definition Declarations.h:51
Definition MeshBufferResource.h:24