Add ApplyCustomFragmentPrefix 11/260411/3
authorseungho <sbsh.baek@samsung.com>
Thu, 24 Jun 2021 07:14:46 +0000 (16:14 +0900)
committerseungho <sbsh.baek@samsung.com>
Mon, 28 Jun 2021 09:57:29 +0000 (18:57 +0900)
 - Apply suitable prefix for the native image fragment shader

Change-Id: I72ed947327e7d5b1443b8b06c6c758f7ab8c592f
Signed-off-by: seungho <sbsh.baek@samsung.com>
dali-extension/internal/rive-animation-view/animation-renderer/rive-animation-renderer.cpp
dali-extension/vector-animation-renderer/tizen-vector-animation-renderer.cpp

index 0e841d0..fff3f2e 100644 (file)
@@ -41,7 +41,6 @@ namespace Internal
 {
 namespace
 {
-const char* const DEFAULT_SAMPLER_TYPENAME("sampler2D");
 const char* const PIXEL_AREA_UNIFORM_NAME("pixelArea");
 
 const Vector4 FULL_TEXTURE_RECT(0.f, 0.f, 1.f, 1.f);
@@ -419,31 +418,7 @@ void RiveAnimationRenderer::SetShader()
   }
 
   // Get custom fragment shader prefix
-  const char* fragmentPrefix = mTargetSurface->GetCustomFragmentPrefix();
-
-  size_t prefixIndex = fragmentShader.find(Dali::Shader::GetShaderVersionPrefix());
-  if(fragmentPrefix)
-  {
-    if(prefixIndex == std::string::npos)
-    {
-      fragmentShader = fragmentPrefix + fragmentShader;
-    }
-    else
-    {
-      fragmentShader.insert(prefixIndex + Dali::Shader::GetShaderVersionPrefix().length(), std::string(fragmentPrefix) + "\n");
-    }
-  }
-
-  // Get custom sampler type name
-  const char* customSamplerTypename = mTargetSurface->GetCustomSamplerTypename();
-  if(customSamplerTypename)
-  {
-    size_t position = fragmentShader.find(DEFAULT_SAMPLER_TYPENAME);
-    if(position != std::string::npos)
-    {
-      fragmentShader.replace(position, strlen(DEFAULT_SAMPLER_TYPENAME), customSamplerTypename);
-    }
-  }
+  mTargetSurface->ApplyNativeFragmentShader(fragmentShader);
 
   // Set the modified shader again
   Shader newShader = Shader::New(vertexShader, fragmentShader);
index 80371de..5d10591 100755 (executable)
@@ -43,7 +43,6 @@ namespace Plugin
 namespace
 {
 
-const char* const DEFAULT_SAMPLER_TYPENAME( "sampler2D" );
 const char* const PIXEL_AREA_UNIFORM_NAME( "pixelArea" );
 
 const Vector4 FULL_TEXTURE_RECT( 0.f, 0.f, 1.f, 1.f );
@@ -407,31 +406,7 @@ void TizenVectorAnimationRenderer::SetShader()
   }
 
   // Get custom fragment shader prefix
-  const char* fragmentPrefix = mTargetSurface->GetCustomFragmentPrefix();
-
-  size_t prefixIndex = fragmentShader.find(Dali::Shader::GetShaderVersionPrefix());
-  if(fragmentPrefix != nullptr)
-  {
-    if(prefixIndex == std::string::npos)
-    {
-      fragmentShader = fragmentPrefix + fragmentShader;
-    }
-    else
-    {
-      fragmentShader.insert(prefixIndex + Dali::Shader::GetShaderVersionPrefix().length(), std::string(fragmentPrefix) + "\n");
-    }
-  }
-
-  // Get custom sampler type name
-  const char* customSamplerTypename = mTargetSurface->GetCustomSamplerTypename();
-  if( customSamplerTypename )
-  {
-    size_t position = fragmentShader.find( DEFAULT_SAMPLER_TYPENAME );
-    if( position != std::string::npos )
-    {
-      fragmentShader.replace( position, strlen( DEFAULT_SAMPLER_TYPENAME ), customSamplerTypename );
-    }
-  }
+  mTargetSurface->ApplyNativeFragmentShader(fragmentShader);
 
   // Set the modified shader again
   Shader newShader = Shader::New( vertexShader, fragmentShader );