00001 #pragma once 00002 #ifndef RENDERPASS_H 00003 #define RENDERPASS_H 00004 00005 #include "Types.h" 00006 #include "Rendernode.h" 00007 #include "Camera.h" 00008 #include "Framebuffer.h" 00009 #include "PropertyProxy.h" 00010 #include "BindingInterface.h" 00011 00012 using namespace std; 00013 00014 namespace RenderTools { 00015 00018 class Renderpass : public BindingInterface, public AbstractPropertyContainer { 00019 public: 00020 00021 Renderpass( void ); 00022 virtual ~Renderpass( void ); 00023 00024 static PropertyPtr create( const XMLNodePtr & xml = XMLNodePtr() ); 00025 virtual void createProperties( void ); 00026 virtual const string getTypeName( bool ofComponent = false ) const; 00027 00028 virtual void onInitialize( void ); 00029 virtual void onBind( int unit = -1 ); 00030 virtual void onUnbind( int unit = -1 ); 00031 void addRendernode( const RendernodePtr p ); 00032 void addRendernode( const string name ); 00033 void setDrawbuffer(const string name ); 00034 void setCopybuffer( const string name ); 00035 void setCamera( const string name ); 00036 const RendernodeProxyContainerPtr getRendernodeProxies( void ) const; 00037 const RendernodeProxyPtr getRendernodeProxy( unsigned int which ) const; 00038 const FramebufferProxyPtr getDrawbufferProxy( void ) const; 00039 const FramebufferProxyPtr getCopybufferProxy( void ) const; 00040 const CameraProxyPtr getCameraProxy( void ) const; 00041 void removeRendernode( const RendernodePtr ); 00042 void removeRendernodes( void ); 00043 00044 RenderpassPtr operator << ( const CameraPtr p ); 00045 RenderpassPtr operator << ( const RendernodePtr p ); 00046 RenderpassPtr operator << ( const FramebufferPtr p ); 00047 RenderpassPtr operator << ( const XMLNodePtr p ); 00048 private: 00049 RendernodeProxyContainerPtr m_rendernodes; 00050 CameraProxyPtr m_camera; 00051 FramebufferProxyPtr m_drawbuffer; 00052 FramebufferProxyPtr m_copybuffer; 00053 }; 00054 00055 }; // namespace 00056 00057 #endif 00058
1.5.8