From f35112160fb2b75de2af835aeab8706fadf9451e Mon Sep 17 00:00:00 2001 From: "Eunki, Hong" Date: Mon, 5 Jul 2021 15:10:54 +0900 Subject: [PATCH] Add ApplyCustomFragmentPrefix - Apply suitable prefix for the native image fragment shader Change-Id: I9b810053fe7fa57379c3e4f3cdf356c2ec313587 Signed-off-by: Eunki, Hong --- .../internal/watch_view/watch_view_impl.cpp | 9 +++------ .../internal/widget_view/widget_view_impl.cpp | 18 ++++++------------ 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/watch_viewer_dali/internal/watch_view/watch_view_impl.cpp b/watch_viewer_dali/internal/watch_view/watch_view_impl.cpp index 926da33..6c2a0e2 100644 --- a/watch_viewer_dali/internal/watch_view/watch_view_impl.cpp +++ b/watch_viewer_dali/internal/watch_view/watch_view_impl.cpp @@ -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 ); } diff --git a/widget_viewer_dali/internal/widget_view/widget_view_impl.cpp b/widget_viewer_dali/internal/widget_view/widget_view_impl.cpp index efa90c1..ef6ec5f 100644 --- a/widget_viewer_dali/internal/widget_view/widget_view_impl.cpp +++ b/widget_viewer_dali/internal/widget_view/widget_view_impl.cpp @@ -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 ); } -- 2.34.1