Add ApplyCustomFragmentPrefix 14/260814/2
authorEunki, Hong <eunkiki.hong@samsung.com>
Mon, 5 Jul 2021 06:10:54 +0000 (15:10 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Wed, 7 Jul 2021 12:08:10 +0000 (21:08 +0900)
 - Apply suitable prefix for the native image fragment shader

Change-Id: I9b810053fe7fa57379c3e4f3cdf356c2ec313587
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
watch_viewer_dali/internal/watch_view/watch_view_impl.cpp
widget_viewer_dali/internal/widget_view/widget_view_impl.cpp

index 926da33acbfdc2f3a212a3763c37769b40ce9625..6c2a0e267ea51639d423400cdcdf63ee8fea313b 100644 (file)
@@ -346,13 +346,10 @@ void WatchView::UpdateBuffer(const WatchBase& watch)
 
 Dali::Shader WatchView::CreateShader()
 {
-  std::string fragmentShader = "#extension GL_OES_EGL_image_external:require\n";
-  fragmentShader += "\n";
-  std::string vertexShader;
-  std::string customFragmentShader;
+  std::string vertexShader   = VERTEX_SHADER_TEXTURE;
+  std::string fragmentShader = FRAGMENT_SHADER_TEXTURE;
 
-  vertexShader = VERTEX_SHADER_TEXTURE;
-  fragmentShader += FRAGMENT_SHADER_TEXTURE;
+  mImageSource->ApplyNativeFragmentShader(fragmentShader);
 
   return Dali::Shader::New( vertexShader, fragmentShader );
 }
index efa90c14d7317fafef2fbcd28ec5361047a0c2fd..ef6ec5f903cf3771fb9fe2bad5c6f338b17ca041 100644 (file)
@@ -1773,10 +1773,8 @@ void WidgetView::ReloadWidget()
 
 Dali::Shader WidgetView::CreateShader()
 {
-  std::string fragmentShader = "#extension GL_OES_EGL_image_external:require\n";
-  fragmentShader += "\n";
   std::string vertexShader;
-  std::string customFragmentShader;
+  std::string fragmentShader;
 
   if( !mEffectPropertyMap.Empty() )
   {
@@ -1796,28 +1794,24 @@ Dali::Shader WidgetView::CreateShader()
     Property::Value* fragmentShaderValue = mEffectPropertyMap.Find( CUSTOM_FRAGMENT_SHADER );
     if( fragmentShaderValue )
     {
-      if( !GetStringFromProperty( *fragmentShaderValue, customFragmentShader ) )
+      if( !GetStringFromProperty( *fragmentShaderValue, fragmentShader ) )
       {
         DALI_LOG_ERROR( "'%s' parameter does not correctly specify a string\n", CUSTOM_FRAGMENT_SHADER );
       }
-      fragmentShader += customFragmentShader;
-      std::size_t found = fragmentShader.find( DEFAULT_SAMPLER_TYPE_NAME );
-      if( found != std::string::npos )
-      {
-        fragmentShader.replace( found , strlen( DEFAULT_SAMPLER_TYPE_NAME ), CUSTOM_SAMPLER_TYPE_NAME );
-      }
     }
     else
     {
-      fragmentShader += FRAGMENT_SHADER_TEXTURE;
+      fragmentShader = FRAGMENT_SHADER_TEXTURE;
     }
   }
   else
   {
     vertexShader = VERTEX_SHADER_TEXTURE;
-    fragmentShader += FRAGMENT_SHADER_TEXTURE;
+    fragmentShader = FRAGMENT_SHADER_TEXTURE;
   }
 
+  mImageSource->ApplyNativeFragmentShader(fragmentShader);
+
   return Dali::Shader::New( vertexShader, fragmentShader );
 }