mRenderObject = new Render::TextureFrameBuffer( mWidth, mHeight, mAttachments );
}
- AddFrameBuffer( mEventThreadServices.GetUpdateManager(), *mRenderObject );
+ OwnerPointer< Render::FrameBuffer > transferOwnership( mRenderObject );
+ AddFrameBuffer( mEventThreadServices.GetUpdateManager(), transferOwnership );
}
void FrameBuffer::AttachColorTexture( TexturePtr texture, uint32_t mipmapLevel, uint32_t layer )
return mIsSurfaceBacked ? nullptr : mColor.Get();
}
+void FrameBuffer::SetSize( uint32_t width, uint32_t height )
+{
+ mWidth = width;
+ mHeight = height;
+
+ if( mRenderObject->IsSurfaceBacked() )
+ {
+ SetFrameBufferSizeMessage( mEventThreadServices.GetUpdateManager(), static_cast<Render::SurfaceFrameBuffer*>( mRenderObject ), width, height );
+ }
+}
+
+void FrameBuffer::SetBackgroundColor( const Vector4& color )
+{
+ if( mRenderObject->IsSurfaceBacked() )
+ {
+ SetFrameBufferBackgroundColorMessage( mEventThreadServices.GetUpdateManager(), static_cast<Render::SurfaceFrameBuffer*>( mRenderObject ), color );
+ }
+}
+
+void FrameBuffer::MarkSurfaceAsInvalid()
+{
+ if ( mIsSurfaceBacked )
+ {
+ Render::SurfaceFrameBuffer* renderObject = static_cast<Render::SurfaceFrameBuffer*>( mRenderObject );
+ renderObject->MarkSurfaceAsInvalid();
+ }
+}
+
+void FrameBuffer::SetPartialUpdateEnabled( bool value )
+{
+ if( mRenderObject->IsSurfaceBacked() )
+ {
+ SetFrameBufferPartialUpdateMessage( mEventThreadServices.GetUpdateManager(), static_cast<Render::SurfaceFrameBuffer*>( mRenderObject ), value );
+ }
+}
+
+
FrameBuffer::~FrameBuffer()
{
if( EventThreadServices::IsCoreRunning() && mRenderObject )