{
mScene = Dali::Integration::Scene::New(Size(static_cast<float>(mSurfaceWidth), static_cast<float>(mSurfaceHeight)));
mScene.SetDpi(Vector2(static_cast<float>(mDpi.x), static_cast<float>(mDpi.y)));
+
+ // Create render target for the scene
+ Graphics::RenderTargetCreateInfo rtInfo{};
+ rtInfo.SetExtent( {mSurfaceWidth, mSurfaceHeight });
+ mRenderTarget = mGraphicsController.CreateRenderTarget( rtInfo, nullptr );
+ mScene.SetSurfaceRenderTarget( mRenderTarget.get() );
}
void TestApplication::InitializeCore()
uint32_t mSurfaceHeight;
uint32_t mFrame;
+ Graphics::UniquePtr<Graphics::RenderTarget> mRenderTarget;
+
struct
{
uint32_t x;
if(mask != 0)
{
- mGl.Clear(mask);
+ // Test scissor area and RT size
+ const auto& area = cmd.data.beginRenderPass.renderArea;
+ if( area.x == 0 &&
+ area.y == 0 &&
+ area.width == renderTarget->mCreateInfo.extent.width &&
+ area.height == renderTarget->mCreateInfo.extent.height )
+ {
+ mGl.Disable(GL_SCISSOR_TEST);
+ mGl.Clear(mask);
+ }
+ else
+ {
+ mGl.Enable(GL_SCISSOR_TEST);
+ mGl.Scissor(cmd.data.beginRenderPass.renderArea.x, cmd.data.beginRenderPass.renderArea.y,
+ cmd.data.beginRenderPass.renderArea.width, cmd.data.beginRenderPass.renderArea.height);
+ mGl.Clear(mask);
+ mGl.Disable(GL_SCISSOR_TEST);
+ }
}
}
else
mScene = AdaptorImpl::GetScene( *mMainWindow );
mScene.SetDpi( Vector2( horizontalDpi, verticalDpi ) );
+ // Create render target for the scene
+ Graphics::RenderTargetCreateInfo rtInfo{};
+ rtInfo.SetExtent( {mSurfaceWidth, mSurfaceHeight });
+ mRenderTarget = mGraphicsController.CreateRenderTarget( rtInfo, nullptr );
+ mScene.SetSurfaceRenderTarget( mRenderTarget.get() );
+
// Core needs to be initialized next before we start the adaptor
InitializeCore();
Accessibility::Accessible::SetObjectRegistry(mCore->GetObjectRegistry());