From bd9a19ecdb109e9b0418a66e0ce20e3a01b758aa Mon Sep 17 00:00:00 2001 From: seungho Date: Wed, 28 Apr 2021 18:10:53 +0900 Subject: [PATCH] Make to use DevelTexture::ApplyNativeFragmentShader in video-view - The extension name could be different for each device. - This patch force to use DevelTexture::ApplyNativeFragmentShader to change shader code for the egl image Change-Id: Ic87f141c62c844af19da93ce652d7b3ee197f0b5 Signed-off-by: seungho --- .../src/dali-toolkit/utc-Dali-VideoView.cpp | 30 ++++++++++++++++++++++ .../controls/video-view/video-view-impl.cpp | 11 +++++--- 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/automated-tests/src/dali-toolkit/utc-Dali-VideoView.cpp b/automated-tests/src/dali-toolkit/utc-Dali-VideoView.cpp index 9a77bba..de842bf 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-VideoView.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-VideoView.cpp @@ -458,6 +458,36 @@ int UtcDaliVideoViewMethodsForCoverage2(void) END_TEST; } +int UtcDaliVideoViewCustomShaderForCoverage3(void) +{ + ToolkitTestApplication application; + VideoView videoView = VideoView::New(); + DALI_TEST_CHECK( videoView ); + + ToolkitApplication::DECODED_IMAGES_SUPPORTED = true; + + videoView.SetProperty( Toolkit::VideoView::Property::UNDERLAY, false ); + bool isUnderlay = videoView.GetProperty( Toolkit::VideoView::Property::UNDERLAY ).Get< bool >(); + DALI_TEST_CHECK( !isUnderlay ); + + application.GetScene().Add( videoView ); + videoView.SetProperty( VideoView::Property::VIDEO, "testvideo" ); + + Property::Map customShader; + customShader.Insert( "vertexShader", VERTEX_SHADER ); + + Property::Map map; + map.Insert( "shader", customShader ); + + videoView.SetProperty( VideoView::Property::VIDEO, map ); + + Property::Map map2; + Property::Value value = videoView.GetProperty( VideoView::Property::VIDEO ); + + DALI_TEST_CHECK( !value.Get( map2 ) ); + END_TEST; +} + int UtcDaliVideoViewPropertyUnderlay(void) { ToolkitTestApplication application; diff --git a/dali-toolkit/internal/controls/video-view/video-view-impl.cpp b/dali-toolkit/internal/controls/video-view/video-view-impl.cpp index 85b219e..509426e 100644 --- a/dali-toolkit/internal/controls/video-view/video-view-impl.cpp +++ b/dali-toolkit/internal/controls/video-view/video-view-impl.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #include // INTERNAL INCLUDES @@ -869,7 +870,7 @@ void VideoView::PlayAnimation(Dali::Animation animation) Dali::Shader VideoView::CreateShader() { - std::string fragmentShader = "#extension GL_OES_EGL_image_external:require\n"; + std::string fragmentShader; std::string vertexShader; std::string customFragmentShader; bool checkShader = false; @@ -900,13 +901,15 @@ Dali::Shader VideoView::CreateShader() if(!fragmentShaderValue || !checkShader) { - fragmentShader += SHADER_VIDEO_VIEW_TEXTURE_FRAG.data(); + fragmentShader = SHADER_VIDEO_VIEW_TEXTURE_FRAG.data(); + DevelTexture::ApplyNativeFragmentShader(mNativeTexture, fragmentShader); } } else { - vertexShader = SHADER_VIDEO_VIEW_TEXTURE_VERT.data(); - fragmentShader += SHADER_VIDEO_VIEW_TEXTURE_FRAG.data(); + vertexShader = SHADER_VIDEO_VIEW_TEXTURE_VERT.data(); + fragmentShader = SHADER_VIDEO_VIEW_TEXTURE_FRAG.data(); + DevelTexture::ApplyNativeFragmentShader(mNativeTexture, fragmentShader); } return Dali::Shader::New(vertexShader, fragmentShader); -- 2.7.4