3#include <Foundation/Communication/Message.h>
4#include <Foundation/Math/BoundingBoxSphere.h>
5#include <Foundation/Math/Transform.h>
6#include <Foundation/Memory/FrameAllocator.h>
7#include <Foundation/Strings/HashedString.h>
8#include <RendererCore/Pipeline/Declarations.h>
23 bool operator==(
const Category& other)
const;
24 bool operator!=(
const Category& other)
const;
25 bool IsValid()
const {
return m_uiValue != 0xFFFF; }
27 plUInt16 m_uiValue = 0xFFFF;
51 plUInt64 GetCategorySortingKey(
Category category,
const plCamera& camera)
const;
57 plUInt32 m_uiBatchId = 0;
58 plUInt32 m_uiSortingKey = 0;
59 float m_fSortingDepthOffset = 0.0f;
63#if PL_ENABLED(PL_COMPILE_FOR_DEVELOPMENT)
68 PL_MAKE_SUBSYSTEM_STARTUP_FRIEND(RendererCore, RenderData);
71 static void UpdateRendererTypes();
73 static void CreateRendererInstances();
74 static void ClearRendererInstances();
88 static bool s_bRendererInstancesDirty;
93static T* plCreateRenderDataForThisFrame(
const plGameObject* pOwner);
113#define plInvalidRenderDataCategory plRenderData::Category()
119 const plView* m_pView =
nullptr;
133 plUInt16 m_uiCategory = 0;
137 plUInt32 m_uiNumCacheIfStatic = 0;
146 auto& d = m_ExtractedOccluderData.ExpandAndGetRef();
147 d.m_pObject = pObject;
148 d.m_Transform = transform;
163#include <RendererCore/Pipeline/Implementation/RenderData_inl.h>
A camera class that stores the orientation and some basic camera settings.
Definition Camera.h:41
Definition DynamicArray.h:81
This class represents an object inside the world.
Definition GameObject.h:32
Definition HashTable.h:333
This class is optimized to take nearly no memory (sizeof(void*)) and to allow very fast checks whethe...
Definition HashedString.h:25
A hybrid array uses in-place storage to handle the first few elements without any allocation....
Definition HybridArray.h:12
Base class for all message types. Each message type has it's own id which is used to dispatch message...
Definition Message.h:22
This class holds information about reflected types. Each instance represents one type that is known t...
Definition RTTI.h:30
Definition RasterizerObject.h:13
All classes that should be dynamically reflectable, need to be derived from this base class.
Definition DynamicRTTI.h:86
Base class for all render data. Render data must contain all information that is needed to render the...
Definition RenderData.h:14
plUInt64(*)(const plRenderData *, const plCamera &) SortingKeyFunc
This function generates a 64bit sorting key for the given render data. Data with lower sorting key is...
Definition RenderData.h:40
Definition RenderPipeline.h:20
This is the base class for types that handle rendering of different object types.
Definition Renderer.h:9
A class to use together with plHashedString for quick comparisons with temporary strings that need no...
Definition HashedString.h:151
Encapsulates a view on the given world through the given camera and rendered with the specified Rende...
Definition View.h:21
Definition RenderData.h:96
A handle to a game object.
Definition Declarations.h:76
The data that is broadcast whenever a plugin is (un-) loaded.
Definition Plugin.h:11
Definition RenderData.h:31
Definition RenderData.h:19