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 #ifndef __CS_IENGINE_RENDERMANAGER_H__
00020 #define __CS_IENGINE_RENDERMANAGER_H__
00021
00026 #include "csutil/scf_interface.h"
00027 #include "ivaria/view.h"
00028
00029 struct iTextureHandle;
00030 struct iVisibilityCuller;
00031
00035 struct iRenderManager : public virtual iBase
00036 {
00037 SCF_INTERFACE(iRenderManager,2,0,1);
00038
00040 virtual bool RenderView (iView* view) = 0;
00041
00048 virtual bool PrecacheView (iView* view) = 0;
00049 };
00050
00055 struct iRenderManagerTargets : public virtual iBase
00056 {
00057 SCF_INTERFACE(iRenderManagerTargets,1,0,1);
00058
00060 enum TargetFlags
00061 {
00063 updateOnce = 1,
00071 assumeAlwaysUsed = 2,
00072
00074 clearScreen = 4
00075 };
00087 virtual void RegisterRenderTarget (iTextureHandle* target,
00088 iView* view, int subtexture = 0, uint flags = 0) = 0;
00090 virtual void UnregisterRenderTarget (iTextureHandle* target,
00091 int subtexture = 0) = 0;
00097 virtual void MarkAsUsed (iTextureHandle* target) = 0;
00098 };
00099
00103 struct iRenderManagerPostEffects : public virtual iBase
00104 {
00105 SCF_INTERFACE(iRenderManagerPostEffects,1,0,0);
00106
00108 virtual void ClearLayers() = 0;
00109
00114 virtual bool AddLayersFromDocument (iDocumentNode* node) = 0;
00115
00120 virtual bool AddLayersFromFile (const char* filename) = 0;
00121 };
00122
00126 struct iRenderManagerVisCull : public virtual iBase
00127 {
00128 SCF_INTERFACE(iRenderManagerVisCull,1,0,0);
00129
00131 virtual csPtr<iVisibilityCuller> GetVisCuller () = 0;
00132 };
00133
00134 #endif // __CS_IENGINE_RENDERMANAGER_H__