[Tizen] Make FBO visual use premultiplied alpha 57/285457/1
authorEunki, Hong <eunkiki.hong@samsung.com>
Tue, 13 Dec 2022 06:43:47 +0000 (15:43 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Tue, 13 Dec 2022 06:43:47 +0000 (15:43 +0900)
Since FBO result use Premultiplied alpha texture,
make sure that FBO image use premultiplied alpha.

Change-Id: I53e957ac3e2311587f3b68c29e4ca967972ad24d
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
dali-scene3d/internal/controls/scene-view/scene-view-impl.cpp

index 49579a4..6ac1cb2 100644 (file)
@@ -415,10 +415,18 @@ void SceneView::UpdateRenderTask()
         Property::Map imagePropertyMap;
         imagePropertyMap.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE);
         imagePropertyMap.Insert(Toolkit::ImageVisual::Property::URL, imageUrl.GetUrl());
+        // To make sure this visual call LoadTexture API immediate.
+        imagePropertyMap.Insert(Toolkit::ImageVisual::Property::LOAD_POLICY, Toolkit::ImageVisual::LoadPolicy::IMMEDIATE);
         // To flip rendered scene without CameraActor::SetInvertYAxis() to avoid backface culling.
         imagePropertyMap.Insert(Toolkit::ImageVisual::Property::PIXEL_AREA, Vector4(0.0f, 1.0f, 1.0f, -1.0f));
         mVisual = Toolkit::VisualFactory::Get().CreateVisual(imagePropertyMap);
 
+        // Use premultiplied alpha when we use FBO
+        if(mVisual)
+        {
+          Toolkit::GetImplementation(mVisual).EnablePreMultipliedAlpha(true);
+        }
+
         Toolkit::DevelControl::RegisterVisual(*this, RENDERING_BUFFER, mVisual);
 
         mRenderTask.SetFrameBuffer(mFrameBuffer);