Window window = DevelWindow::Get(Self());
if(window)
{
+ // Only for on-screen window
window.ResizeSignal().Connect(this, &SceneView::OnWindowResized);
- RenderTaskList taskList = window.GetRenderTaskList();
+
+ mWindow = window;
+ mWindowOrientation = DevelWindow::GetPhysicalOrientation(window);
+ }
+
+ // On-screen / Off-screen window
+ mSceneHolder = Integration::SceneHolder::Get(Self());
+ if(mSceneHolder)
+ {
+ RenderTaskList taskList = mSceneHolder.GetRenderTaskList();
mRenderTask = taskList.CreateTask();
mRenderTask.SetSourceActor(mRootLayer);
mRenderTask.SetExclusive(true);
mRenderTask.SetScreenToFrameBufferMappingActor(Self());
UpdateRenderTask();
- mWindow = window;
}
Control::OnSceneConnection(depth);
if(window)
{
window.ResizeSignal().Disconnect(this, &SceneView::OnWindowResized);
- RenderTaskList taskList = window.GetRenderTaskList();
+ }
+ mWindow.Reset();
+
+ if(mSceneHolder)
+ {
if(mRenderTask)
{
+ RenderTaskList taskList = mSceneHolder.GetRenderTaskList();
taskList.RemoveTask(mRenderTask);
mRenderTask.Reset();
- mFrameBuffer.Reset();
}
+ mSceneHolder.Reset();
}
- mWindow.Reset();
+ mFrameBuffer.Reset();
Control::OnSceneDisconnection();
}