[Tizen] Fix opacity animation issue in 3D 07/285407/1
authorseungho baek <sbsh.baek@samsung.com>
Mon, 12 Dec 2022 08:28:43 +0000 (17:28 +0900)
committerseungho baek <sbsh.baek@samsung.com>
Mon, 12 Dec 2022 08:28:43 +0000 (17:28 +0900)
Change-Id: Ib46c120a62f10d846c43855691604145dc52c8ad
Signed-off-by: seungho baek <sbsh.baek@samsung.com>
dali-scene3d/public-api/loader/renderer-state.cpp
dali-scene3d/public-api/loader/shader-definition-factory.cpp

index ad8059d..e8ecc38 100644 (file)
@@ -51,10 +51,9 @@ namespace RendererState
 
 void Apply(Type rendererState, Renderer& renderer)
 {
-  RENDERER_SET_PROPERTY(DEPTH_WRITE_MODE, MaskMatch(rendererState, DEPTH_WRITE) ? DepthWriteMode::ON : DepthWriteMode::OFF);
   RENDERER_SET_PROPERTY(DEPTH_TEST_MODE, MaskMatch(rendererState, DEPTH_TEST) ? DepthTestMode::ON : DepthTestMode::OFF);
 
-  RENDERER_SET_PROPERTY(BLEND_MODE, MaskMatch(rendererState, ALPHA_BLEND) ? BlendMode::ON : BlendMode::OFF);
+  RENDERER_SET_PROPERTY(BLEND_MODE, MaskMatch(rendererState, ALPHA_BLEND) ? BlendMode::ON : BlendMode::OFF_ONLY_OPAQUE);
 
   const bool cullBack = MaskMatch(rendererState, CULL_BACK);
   RENDERER_SET_PROPERTY(FACE_CULLING_MODE, MaskMatch(rendererState, CULL_FRONT) ? (cullBack ? FaceCullingMode::FRONT_AND_BACK : FaceCullingMode::FRONT) : (cullBack ? FaceCullingMode::BACK : FaceCullingMode::NONE));
index 2e92362..a244fc5 100644 (file)
@@ -231,7 +231,7 @@ Index ShaderDefinitionFactory::ProduceShader(const NodeDefinition& nodeDef)
 
   ShaderDefinition shaderDef;
   shaderDef.mUseBuiltInShader = true;
-  shaderDef.mRendererState    = RendererState::DEPTH_TEST | RendererState::DEPTH_WRITE;
+  shaderDef.mRendererState    = RendererState::DEPTH_TEST;
 
   auto& materialDef = *receiver.mMaterialDef;
   if(!materialDef.mDoubleSided)
@@ -243,7 +243,7 @@ Index ShaderDefinitionFactory::ProduceShader(const NodeDefinition& nodeDef)
   if(hasTransparency)
   {
     // TODO: this requires more granularity
-    shaderDef.mRendererState = (shaderDef.mRendererState | RendererState::ALPHA_BLEND) & ~RendererState::DEPTH_WRITE;
+    shaderDef.mRendererState = (shaderDef.mRendererState | RendererState::ALPHA_BLEND);
   }
 
   if(hasTransparency ||