iengine/rendermanager.h Source File (Crystal Space 2.0 Public API Reference)

| ## Public API Reference

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

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__