3#include <Foundation/Strings/HashedString.h>
4#include <Foundation/Threading/DelegateTask.h>
5#include <Foundation/Types/SharedPtr.h>
6#include <Foundation/Types/TagSet.h>
7#include <RendererCore/Pipeline/RenderPipeline.h>
8#include <RendererCore/Pipeline/RenderPipelineNode.h>
9#include <RendererCore/Pipeline/RenderPipelineResource.h>
10#include <RendererCore/Pipeline/ViewData.h>
11#include <RendererFoundation/Device/SwapChain.h>
12#include <RendererFoundation/Resources/RenderTargetSetup.h>
37 const plWorld* GetWorld()
const;
60 void SetCullingCamera(
const plCamera* pCamera);
61 const plCamera* GetCullingCamera()
const;
63 void SetLodCamera(
const plCamera* pCamera);
64 const plCamera* GetLodCamera()
const;
96 plResult ComputePickingRay(
float fScreenPosX,
float fScreenPosY,
plVec3& out_vRayStartPos,
plVec3& out_vRayDir)
const;
101 const plMat4& GetProjectionMatrix(plCameraEye eye)
const;
104 const plMat4& GetInverseProjectionMatrix(plCameraEye eye)
const;
107 const plMat4& GetViewMatrix(plCameraEye eye)
const;
110 const plMat4& GetInverseViewMatrix(plCameraEye eye)
const;
113 const plMat4& GetViewProjectionMatrix(plCameraEye eye)
const;
116 const plMat4& GetInverseViewProjectionMatrix(plCameraEye eye)
const;
119 void ComputeCullingFrustum(
plFrustum& out_frustum)
const;
121 void SetShaderPermutationVariable(
const char* szName,
const char* szValue);
123 void SetRenderPassProperty(
const char* szPassName,
const char* szPropertyName,
const plVariant& value);
124 void SetExtractorProperty(
const char* szPassName,
const char* szPropertyName,
const plVariant& value);
126 void ResetRenderPassProperties();
127 void ResetExtractorProperties();
129 void SetRenderPassReadBackProperty(
const char* szPassName,
const char* szPropertyName,
const plVariant& value);
130 plVariant GetRenderPassReadBackProperty(
const char* szPassName,
const char* szPropertyName);
131 bool IsRenderPassReadBackPropertyExisting(
const char* szPassName,
const char* szPropertyName)
const;
137 void UpdateViewData(plUInt32 uiDataIndex);
154 plUInt32 m_uiRenderPipelineResourceDescriptionCounter = 0;
157 const plCamera* m_pCullingCamera =
nullptr;
158 const plCamera* m_pLodCamera =
nullptr;
169 void UpdateCachedMatrices()
const;
172 void EnsureUpToDate();
174 mutable plUInt32 m_uiLastCameraSettingsModification = 0;
175 mutable plUInt32 m_uiLastCameraOrientationModification = 0;
176 mutable float m_fLastViewportAspectRatio = 1.0f;
180 plInternal::RenderDataCache* m_pRenderDataCache =
nullptr;
183 bool m_bPermutationVarsDirty =
false;
185 void ApplyPermutationVars();
200 void ReadBackPassProperties();
204 void ApplyRenderPassProperties();
205 void ApplyExtractorProperties();
207 void ApplyProperty(
plReflectedClass* pObject, PropertyValue& data,
const char* szTypeName);
214#include <RendererCore/Pipeline/Implementation/View_inl.h>
A camera class that stores the orientation and some basic camera settings.
Definition Camera.h:41
Definition DynamicArray.h:81
Represents the frustum of some camera and can be used for culling objects.
Definition Frustum.h:32
Definition RendererFoundationDLL.h:397
This class is optimized to take nearly no memory (sizeof(void*)) and to allow very fast checks whethe...
Definition HashedString.h:25
This class provides functions to work on raw memory.
Definition MemoryUtils.h:26
All classes that should be dynamically reflectable, need to be derived from this base class.
Definition DynamicRTTI.h:86
Definition RenderPipeline.h:20
Definition RenderPipelineNode.h:79
Definition RenderWorld.h:40
A Shared ptr manages a shared object and destroys that object when no one references it anymore....
Definition SharedPtr.h:10
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
A dynamic collection of tags featuring fast lookups.
Definition TagSet.h:23
plVariant is a class that can store different types of variables, which is useful in situations where...
Definition Variant.h:44
Definition Declarations.h:64
Encapsulates a view on the given world through the given camera and rendered with the specified Rende...
Definition View.h:21
A world encapsulates a scene graph of game objects and various component managers and their component...
Definition World.h:22
A custom enum implementation that allows to define the underlying storage type to control its memory ...
Definition Enum.h:37
Definition RenderTargetSetup.h:9
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54
Holds view data like the viewport, view and projection matrices.
Definition ViewData.h:11