[Tizen] Fix opacity animation issue in 3D 06/285406/3
authorseungho baek <sbsh.baek@samsung.com>
Mon, 12 Dec 2022 08:26:26 +0000 (17:26 +0900)
committerHeeyong Song <heeyong.song@samsung.com>
Tue, 13 Dec 2022 06:47:51 +0000 (06:47 +0000)
Change-Id: Id663f1254511bcb21df8d86b655f60bde969021f
Signed-off-by: seungho baek <sbsh.baek@samsung.com>
dali/internal/event/rendering/renderer-impl.cpp
dali/internal/update/rendering/scene-graph-renderer.cpp
dali/public-api/rendering/renderer.h

index bf68b0e..ee63ebc 100644 (file)
@@ -80,6 +80,7 @@ DALI_ENUM_TO_STRING_TABLE_BEGIN(BLEND_MODE)
   DALI_ENUM_TO_STRING_WITH_SCOPE(BlendMode, AUTO)
   DALI_ENUM_TO_STRING_WITH_SCOPE(BlendMode, ON)
   DALI_ENUM_TO_STRING_WITH_SCOPE(BlendMode, ON_WITHOUT_CULL)
+  DALI_ENUM_TO_STRING_WITH_SCOPE(BlendMode, OFF_ONLY_OPAQUE)
 DALI_ENUM_TO_STRING_TABLE_END(BLEND_MODE)
 
 DALI_ENUM_TO_STRING_TABLE_BEGIN(BLEND_EQUATION)
index 0036c92..33fe0c1 100644 (file)
@@ -645,6 +645,24 @@ Renderer::OpacityType Renderer::GetOpacityType(BufferIndex updateBufferIndex, co
 
       break;
     }
+    case BlendMode::OFF_ONLY_OPAQUE: // the renderer should never use blending
+    {
+      // renderer should determine opacity using the actor color
+      float alpha = node.GetWorldColor(updateBufferIndex).a;
+      if(alpha <= FULLY_TRANSPARENT)
+      {
+        opacityType = Renderer::TRANSPARENT;
+      }
+      else if(alpha < FULLY_OPAQUE)
+      {
+        opacityType = Renderer::TRANSLUCENT;
+      }
+      else
+      {
+        opacityType = Renderer::OPAQUE;
+      }
+      break;
+    }
     case BlendMode::OFF: // the renderer should never use blending
     default:
     {
index c19e514..541a673 100644 (file)
@@ -62,10 +62,11 @@ namespace BlendMode
  */
 enum Type
 {
-  OFF,            ///< Blending is disabled.                                                    @SINCE_1_1.43
-  AUTO,           ///< Blending is enabled if there is alpha channel. This is the default mode. @SINCE_1_1.43
-  ON,             ///< Blending is enabled.                                                     @SINCE_1_1.43
-  ON_WITHOUT_CULL ///< Blending is enabled, and don't cull the renderer                         @SINCE_2_0.43
+  OFF,             ///< Blending is disabled.                                                    @SINCE_1_1.43
+  AUTO,            ///< Blending is enabled if there is alpha channel. This is the default mode. @SINCE_1_1.43
+  ON,              ///< Blending is enabled.                                                     @SINCE_1_1.43
+  ON_WITHOUT_CULL, ///< Blending is enabled, and don't cull the renderer                         @SINCE_2_0.43
+  OFF_ONLY_OPAQUE
 };
 
 } // namespace BlendMode