Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __CS_IENGINE_RENDERLOOP_H__
00023 #define __CS_IENGINE_RENDERLOOP_H__
00024
00032 #include "csutil/scf.h"
00033
00034 #include "iengine/rendersteps/icontainer.h"
00035
00036 struct iCamera;
00037 struct iClipper2D;
00038 struct iSector;
00039 struct iRenderStep;
00040 struct iRenderView;
00041 struct iMeshWrapper;
00042
00043 class csShaderVariableStack;
00044
00048 #define CS_DEFAULT_RENDERLOOP_NAME "*default"
00049
00064 struct iRenderLoop : public iRenderStepContainer
00065 {
00066 SCF_INTERFACE(iRenderLoop, 2,0,0);
00067 virtual void Draw (iRenderView *rview, iSector *s,
00068 iMeshWrapper* mesh = 0) = 0;
00069 };
00070
00071
00081 struct iRenderLoopManager : public virtual iBase
00082 {
00083 SCF_INTERFACE(iRenderLoopManager, 3,0,0);
00088 virtual csPtr<iRenderLoop> Create () = 0;
00089
00099 virtual bool Register (const char* name, iRenderLoop* loop, bool checkDupes = false) = 0;
00106 virtual iRenderLoop* Retrieve (const char* name) = 0;
00112 virtual const char* GetName (iRenderLoop* loop) = 0;
00118 virtual bool Unregister (iRenderLoop* loop) = 0;
00124 virtual csPtr<iRenderLoop> Load (const char* fileName) = 0;
00130 virtual void UnregisterAll (bool evenDefault = false) = 0;
00131 };
00132
00135 #endif