25 #ifndef WGEOFFSCREENRENDERPASS_H
26 #define WGEOFFSCREENRENDERPASS_H
31 #include <osg/FrameBufferObject>
33 #include "../WGEUtils.h"
34 #include "../WGETexture.h"
35 #include "../WExportWGE.h"
50 typedef osg::ref_ptr< WGEOffscreenRenderPass >
RefPtr;
55 typedef osg::ref_ptr< const WGEOffscreenRenderPass >
ConstRefPtr;
79 WGEOffscreenRenderPass(
size_t textureWidth,
size_t textureHeight, osg::ref_ptr< WGETextureHud > hud, std::string name,
int num = 0 );
94 void attach( BufferComponent buffer, osg::ref_ptr< osg::Texture2D > texture );
106 osg::ref_ptr< osg::Texture2D > attach( BufferComponent buffer, GLint internalFormat = GL_RGBA );
115 void detach( BufferComponent buffer );
124 template <
typename T >
125 void bind( osg::ref_ptr< T > texture,
size_t unit = 0 );
134 osg::ref_ptr< osg::Texture2D > createTexture( GLint internalFormat = GL_RGBA );
141 std::string getName()
const;
150 static std::string getBufferName( BufferComponent buffer );
157 size_t getTextureWidth()
const;
164 size_t getTextureHeight()
const;
171 virtual void addUniform( osg::ref_ptr< osg::Uniform > uniform );
187 osg::ref_ptr<osg::FrameBufferObject>
m_fbo;
192 osg::ref_ptr< WGETextureHud >
m_hud;
201 template <
typename T >
207 #endif // WGEOFFSCREENRENDERPASS_H