28 #ifndef HPL_RENDER_LIST_H 29 #define HPL_RENDER_LIST_H 31 #include "hpl1/engine/graphics/GraphicsTypes.h" 32 #include "hpl1/engine/graphics/Material.h" 33 #include "hpl1/engine/graphics/OcclusionQuery.h" 34 #include "hpl1/engine/graphics/VertexBuffer.h" 35 #include "hpl1/engine/math/MathTypes.h" 36 #include "hpl1/engine/scene/Light3D.h" 37 #include "hpl1/engine/system/SystemTypes.h" 38 #include "hpl1/std/multiset.h" 39 #include "hpl1/std/set.h" 48 class cRenderSettings;
52 enum eRenderListDrawType {
53 eRenderListDrawType_Normal,
54 eRenderListDrawType_Trans,
55 eRenderListDrawType_LastEnum
68 typedef tRenderNodeSet::iterator tRenderNodeSetIt;
76 tRenderNodeSet m_setNodes;
78 void DeleteChildren();
90 typedef tMotionBlurObjectSet::iterator tMotionBlurObjectSetIt;
93 tMotionBlurObjectSetIt>
100 bool operator()(iRenderable *pObjectA, iRenderable *pObjectB)
const;
104 typedef tTransperantObjectSet::iterator tTransperantObjectSetIt;
126 typedef tOcclusionQueryObjectSet::iterator tOcclusionQueryObjectSetIt;
129 tOcclusionQueryObjectSetIt>
135 typedef tRenderableSet::iterator tRenderableSetIt;
138 typedef tLight3DSet::iterator tLight3DSetIt;
150 void SetCamera(
cCamera3D *apCamera) { mpCamera = apCamera; }
151 cCamera3D *GetCamera() {
return mpCamera; }
153 bool Add(iRenderable *apObject);
156 void AddOcclusionQuery(cOcclusionQueryObject *apObject);
158 cOcclusionQueryObjectIterator GetQueryIterator();
160 cMotionBlurObjectIterator GetMotionBlurIterator();
162 cTransperantObjectIterator GetTransperantIterator();
164 cLight3DIterator GetLightIt();
165 cRenderableIterator GetObjectIt();
172 int GetRenderCount() {
return mlRenderCount; }
173 int GetLastRenderCount() {
return mlLastRenderCount; }
175 int GetLightObjects(
int alLightIdx) {
return mvObjectsPerLight[alLightIdx]; }
177 void SetFrameTime(
float afTime) { mfFrameTime = afTime; }
179 cRenderNode *GetRootNode(eRenderListDrawType aObjectType, eMaterialRenderType aPassType,
int alLightNum);
181 static inline int GetGlobalRenderCount() {
return mlGlobalRenderCount; }
186 void AddToTree(iRenderable *apObject, eRenderListDrawType aObjectType,
187 eMaterialRenderType mPassType,
int alLightNum,
iLight3D *apLight,
188 bool abUseDepth,
int alPass);
190 static int mlGlobalRenderCount;
192 tLight3DSet m_setLights;
193 int mvObjectsPerLight[MAX_NUM_OF_LIGHTS];
195 tRenderableSet m_setObjects;
197 tOcclusionQueryObjectSet m_setQueries;
199 tMotionBlurObjectSet m_setMotionBlurObjects;
200 tTransperantObjectSet m_setTransperantObjects;
210 int mlLastRenderCount;
224 #endif // HPL_RENDER_LIST_H
Definition: RenderList.h:120
Definition: Renderer3D.h:77
Definition: SystemTypes.h:262
Definition: RenderState.h:62
Definition: VertexBuffer.h:90
Definition: Light3D.h:117
Definition: RenderList.h:84
Definition: RenderList.h:70
Definition: Renderable.h:70
Definition: RenderList.h:62
Definition: SystemTypes.h:411
Definition: RenderList.h:145
Definition: OcclusionQuery.h:33
Definition: RenderList.h:98
Definition: RenderList.h:110
Definition: Graphics.h:46
Definition: Camera3D.h:53