#include <dali/public-api/events/touch-data.h>
#include <dali/public-api/object/type-registry.h>
#include <dali/public-api/render-tasks/render-task-list.h>
+#include <dali/public-api/rendering/frame-buffer.h>
using Dali::Internal::SceneGraph::Node;
return StagePtr( new Stage( playlist, propertyNotificationManager, updateManager, notificationManager, renderController ) );
}
-void Stage::Initialize()
+void Stage::Initialize( bool renderToFbo )
{
+ mRenderToFbo = renderToFbo;
mObjectRegistry = ObjectRegistry::New();
// Create the ordered list of layers
// if single render task to screen then set its viewport parameters
if( 1 == mRenderTaskList->GetTaskCount() )
{
- Dali::RenderTask mDefaultRenderTask = mRenderTaskList->GetTask( 0u );
+ Dali::RenderTask defaultRenderTask = mRenderTaskList->GetTask( 0u );
- if(!mDefaultRenderTask.GetTargetFrameBuffer())
+ if(!defaultRenderTask.GetTargetFrameBuffer())
{
- mDefaultRenderTask.SetViewport( Viewport(0, 0, width, height) );
+ defaultRenderTask.SetViewport( Viewport(0, 0, width, height) );
}
}
+
+ if( mRenderToFbo )
+ {
+ Dali::FrameBuffer frameBuffer = Dali::FrameBuffer::New( width, height, Dali::FrameBuffer::Attachment::NONE );
+ Dali::Texture texture = Dali::Texture::New( Dali::TextureType::TEXTURE_2D, Dali::Pixel::RGB888, width, height );
+ frameBuffer.AttachColorTexture( texture );
+
+ Dali::RenderTask defaultRenderTask = mRenderTaskList->GetTask( 0u );
+ defaultRenderTask.SetFrameBuffer( frameBuffer );
+ }
}
}
mTopMargin( 0 ),
mSystemOverlay( NULL ),
mDepthTreeDirty( false ),
- mForceNextUpdate( false )
+ mForceNextUpdate( false ),
+ mRenderToFbo( false )
{
}