X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-VideoView.cpp;h=b2874e2799a0fbea48f3cea3cb05a3df3f34112a;hb=564e9d67ee51b52b668e9791c13e14beeb63220e;hp=d1d35b1d9c6065143bbfb2c74e1effbabc3c6809;hpb=3afd5e4f64ae0a8ee21ce025f6665fec6584ae5b;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/src/dali-toolkit/utc-Dali-VideoView.cpp b/automated-tests/src/dali-toolkit/utc-Dali-VideoView.cpp index d1d35b1..b2874e2 100755 --- a/automated-tests/src/dali-toolkit/utc-Dali-VideoView.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-VideoView.cpp @@ -20,6 +20,7 @@ #include #include #include +#include using namespace Dali; using namespace Dali::Toolkit; @@ -48,9 +49,10 @@ const char* VERTEX_SHADER = DALI_COMPOSE_SHADER( }\n ); +const char* fragmentShaderPrefix( "#extension GL_OES_EGL_image_external:require\n" ); const char* FRAGMENT_SHADER = DALI_COMPOSE_SHADER( varying mediump vec2 vTexCoord;\n - uniform sampler2D sTexture;\n + uniform samplerExternalOES sTexture;\n uniform lowp vec4 uColor;\n \n void main()\n @@ -300,6 +302,9 @@ int UtcDaliVideoViewMethodsForCoverage(void) videoView.Stop(); videoView.Forward(10); videoView.Backward(10); + + Toolkit::DevelVideoView::GetMediaPlayer( videoView ); + VideoView::VideoViewSignalType& signal = videoView.FinishedSignal(); DALI_TEST_EQUALS( 0, signal.GetConnectionCount(), TEST_LOCATION ); @@ -347,6 +352,12 @@ int UtcDaliVideoViewCustomShaderForCoverage(void) 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 ); + Stage::GetCurrent().Add( videoView ); videoView.SetProperty( VideoView::Property::VIDEO, "testvideo" ); @@ -394,14 +405,14 @@ int UtcDaliVideoViewMethodsForCoverage2(void) Vector3 vector(100.0f, 100.0f, 0.0f); - DALI_TEST_CHECK(vector != videoView.GetCurrentSize()); - videoView.SetSize( vector ); + DALI_TEST_CHECK(vector != videoView.GetCurrentProperty< Vector3 >( Actor::Property::SIZE )); + videoView.SetProperty( Actor::Property::SIZE, vector ); application.SendNotification(); application.Render(); // Check the size in the new frame - DALI_TEST_CHECK(vector == videoView.GetCurrentSize()); + DALI_TEST_CHECK(vector == videoView.GetCurrentProperty< Vector3 >( Actor::Property::SIZE )); END_TEST; } @@ -528,3 +539,61 @@ int UtcDaliVideoViewPropertyDisplayMode(void) END_TEST; } + + +int UtcDaliVideoViewCustomShader(void) +{ + ToolkitTestApplication application; + tet_infoline( "VideoView with custom shader" ); + + VideoView view = VideoView::New(); + DALI_TEST_CHECK( view ); + + ToolkitApplication::DECODED_IMAGES_SUPPORTED = true; + + view.SetProperty( Toolkit::VideoView::Property::UNDERLAY, false ); + bool isUnderlay = view.GetProperty( Toolkit::VideoView::Property::UNDERLAY ).Get< bool >(); + DALI_TEST_CHECK( !isUnderlay ); + + Stage::GetCurrent().Add( view ); + view.SetProperty( VideoView::Property::VIDEO, "testvideo" ); + + /* insert custom shader */ + Property::Map customShader; + std::string fragmentShaderString; + fragmentShaderString.reserve( strlen( fragmentShaderPrefix ) + strlen( FRAGMENT_SHADER ) ); + fragmentShaderString.append( fragmentShaderPrefix ); + fragmentShaderString.append( FRAGMENT_SHADER ); + customShader.Insert( "vertexShader", VERTEX_SHADER ); + customShader.Insert( "fragmentShader", fragmentShaderString ); + + Property::Map map; + map.Insert( "shader", customShader ); + + view.SetProperty( VideoView::Property::VIDEO, map ); + + /* do render for check custom shader */ + Stage::GetCurrent().Add( view ); + view.Play(); + + application.SendNotification(); + application.Render(); + + /* get renderer */ + DALI_TEST_CHECK( view.GetRendererCount() == 1u ); + Renderer renderer = view.GetRendererAt( 0 ); + Shader shader = renderer.GetShader(); + DALI_TEST_CHECK( shader ); + + Property::Value value = shader.GetProperty(Shader::Property::PROGRAM); + Property::Map* shaderMap = value.GetMap(); + DALI_TEST_CHECK( shaderMap ); + + Property::Value* fragment = shaderMap->Find( "fragment" ); // fragment key name from shader-impl.cpp + DALI_TEST_EQUALS( fragmentShaderString, fragment->Get(), TEST_LOCATION ); + + Property::Value* vertex = shaderMap->Find( "vertex" ); // vertex key name from shader-impl.cpp + DALI_TEST_EQUALS( VERTEX_SHADER, vertex->Get(), TEST_LOCATION ); + + END_TEST; +}