CrystalSpace

Public API Reference

iengine/rendermanager.h
Go to the documentation of this file.
00001 /*
00002     Copyright (C) 2007 by Marten Svanfeldt
00003 
00004     This library is free software; you can redistribute it and/or
00005     modify it under the terms of the GNU Library General Public
00006     License as published by the Free Software Foundation; either
00007     version 2 of the License, or (at your option) any later version.
00008 
00009     This library is distributed in the hope that it will be useful,
00010     but WITHOUT ANY WARRANTY; without even the implied warranty of
00011     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012     Library General Public License for more details.
00013 
00014     You should have received a copy of the GNU Library General Public
00015     License along with this library; if not, write to the Free
00016     Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
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__

Generated for Crystal Space 2.0 by doxygen 1.7.6.1