[Tizen] Fix Making Issue of SceneView 93/301593/1 accepted/tizen/7.0/unified/20231121.121559
authorseungho baek <sbsh.baek@samsung.com>
Mon, 20 Nov 2023 09:32:44 +0000 (18:32 +0900)
committerseungho baek <sbsh.baek@samsung.com>
Mon, 20 Nov 2023 09:32:44 +0000 (18:32 +0900)
Change-Id: I1079d0be81697015bbcdc43fe1732252547a4c1e
Signed-off-by: seungho baek <sbsh.baek@samsung.com>
dali-scene3d/internal/controls/scene-view/scene-view-impl.cpp
dali-toolkit/internal/graphics/shaders/image-visual-shader.frag
dali-toolkit/internal/visuals/image-visual-shader-factory.cpp

index 73c7712..f370b59 100644 (file)
@@ -1111,6 +1111,7 @@ void SceneView::UpdateRenderTask()
         // 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));
         imagePropertyMap.Insert(Toolkit::ImageVisual::Property::ALPHA_MASK_URL, mAlphaMaskUrl);
+        imagePropertyMap.Insert(Toolkit::ImageVisual::Property::SYNCHRONOUS_LOADING, true);
         if(!mAlphaMaskUrl.empty())
         {
           imagePropertyMap.Insert(Toolkit::ImageVisual::Property::MASK_CONTENT_SCALE, mMaskContentScaleFactor);
@@ -1119,6 +1120,7 @@ void SceneView::UpdateRenderTask()
         }
         mMaskingPropertyChanged = false;
         mVisual = Toolkit::VisualFactory::Get().CreateVisual(imagePropertyMap);
+        Self().RegisterProperty("uYFlipMaskTexture", 1.0f);
 
         Toolkit::DevelControl::RegisterVisual(*this, RENDERING_BUFFER, mVisual);
 
index cb5e765..cd5aefc 100644 (file)
@@ -16,6 +16,7 @@ uniform sampler2D sTextureV;
 
 #ifdef IS_REQUIRED_ALPHA_MASKING
 uniform sampler2D sMaskTexture;
+uniform mediump float uYFlipMaskTexture;
 INPUT mediump vec2 vMaskTexCoord;
 #endif
 
@@ -245,7 +246,9 @@ void main()
 #endif
 
 #ifdef IS_REQUIRED_ALPHA_MASKING
-  mediump float maskAlpha = TEXTURE(sMaskTexture, vMaskTexCoord).a;
+  mediump vec2 maskTexCoord = vMaskTexCoord;
+  maskTexCoord.y = mix(maskTexCoord.y, 1.0-maskTexCoord.y, uYFlipMaskTexture);
+  mediump float maskAlpha = TEXTURE(sMaskTexture, maskTexCoord).a;
   textureColor.a *= maskAlpha;
   textureColor.rgb *= mix(1.0, maskAlpha, preMultipliedAlpha);
 #endif
index 728c219..3154831 100644 (file)
@@ -271,6 +271,7 @@ Shader ImageVisualShaderFactory::GetShader(VisualFactoryCache& factoryCache, con
     }
     shader = Shader::New(vertexShader, fragmentShader);
     shader.RegisterProperty(PIXEL_AREA_UNIFORM_NAME, FULL_TEXTURE_RECT);
+    shader.RegisterProperty("uYFlipMaskTexture", 0.0f);
     factoryCache.SaveShader(shaderType, shader);
   }