X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-GlViewDirectRendering.cpp;h=75eb57008cfefb50ea9e48c5a982e29590451666;hp=82e3be942e08ed25fe8e28078040a0fce110cc36;hb=0255ba0039cf628d8dbc82d8898000da98833532;hpb=7875069ceecfd24c2a8cf3a28564f7d115296e93 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-GlViewDirectRendering.cpp b/automated-tests/src/dali-toolkit/utc-Dali-GlViewDirectRendering.cpp index 82e3be9..75eb570 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-GlViewDirectRendering.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-GlViewDirectRendering.cpp @@ -23,10 +23,13 @@ #include #include #include +#include + using namespace Dali; using namespace Dali::Toolkit; + // Positive test case for a method int UtcDaliGlViewDirectRenderingNew(void) { @@ -202,6 +205,24 @@ void glTerminate(void) { } + +// Internal callback function +void glInitMT(Dali::RenderCallbackInput& input) +{ +} + +int gDRFramesRendered = 0; + +int glRenderFrameMT(Dali::RenderCallbackInput& input) +{ + gDRFramesRendered++; + return 1; +} + +void glTerminateMT(Dali::RenderCallbackInput& input) +{ +} + void resizeCB(Vector2 size) { } @@ -385,4 +406,110 @@ int UtcDaliGlViewDirectRenderingTerminateCallback(void) DALI_TEST_CHECK(true); END_TEST; -} \ No newline at end of file +} + +// Positive test case for a method +int UtcDaliGlViewDirectRenderingThreadedNew(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliGlViewDirectRenderingThreadedNew"); + GlView view = GlView::New(GlView::BackendMode::DIRECT_RENDERING_THREADED, GlView::ColorFormat::RGBA8888); + DALI_TEST_CHECK(view); + + auto mode1 = view.GetBackendMode(); + + DALI_TEST_EQUALS(mode1, GlView::BackendMode::DIRECT_RENDERING_THREADED, TEST_LOCATION); + + END_TEST; +} + +int UtcDaliGlViewDirectRenderingThreadedOnScene(void) +{ + ToolkitTestApplication application; + + GlView view = Toolkit::GlView::New(GlView::BackendMode::DIRECT_RENDERING_THREADED, GlView::ColorFormat::RGB888); + + //Onscene + application.GetScene().Add(view); + view.SetRenderingMode(GlView::RenderingMode::CONTINUOUS); + view.SetGraphicsConfig(true, true, 0, GlView::GraphicsApiVersion::GLES_VERSION_3_0); + view.RegisterGlCallbacks(Dali::MakeCallback(DirectRenderingCode::glInitMT), Dali::MakeCallback(DirectRenderingCode::glRenderFrameMT), Dali::MakeCallback(DirectRenderingCode::glTerminateMT)); + view.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT); + view.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT); + + // Set size on the actor (half the window size to show that glClear() and scissor test work together) + view.SetProperty(Actor::Property::SIZE, Size(100, 100)); + view.SetProperty(Actor::Property::POSITION, Vector2(0,0)); + + while( DirectRenderingCode::gDRFramesRendered < 1 ) + { + application.SendNotification(); + application.Render(); + } + DALI_TEST_CHECK(true); + END_TEST; +} + +extern "C" bool gDirectRenderingFailCreateShader; +extern "C" bool gDirectRenderingFailCreateProgram; + + +int UtcDaliGlViewDirectRenderingThreadedOnScene1(void) +{ + ToolkitTestApplication application; + + GlView view = Toolkit::GlView::New(GlView::BackendMode::DIRECT_RENDERING_THREADED, GlView::ColorFormat::RGB888); + + // This test will fail instantiating shaders + gDirectRenderingFailCreateShader = true; + + //Onscene + application.GetScene().Add(view); + view.SetRenderingMode(GlView::RenderingMode::CONTINUOUS); + view.SetGraphicsConfig(true, true, 0, GlView::GraphicsApiVersion::GLES_VERSION_3_0); + view.RegisterGlCallbacks(Dali::MakeCallback(DirectRenderingCode::glInitMT), Dali::MakeCallback(DirectRenderingCode::glRenderFrameMT), Dali::MakeCallback(DirectRenderingCode::glTerminateMT)); + view.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT); + view.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT); + + // Set size on the actor (half the window size to show that glClear() and scissor test work together) + view.SetProperty(Actor::Property::SIZE, Size(100, 100)); + view.SetProperty(Actor::Property::POSITION, Vector2(0,0)); + + while( DirectRenderingCode::gDRFramesRendered < 1 ) + { + application.SendNotification(); + application.Render(); + } + DALI_TEST_CHECK(true); + END_TEST; +} + +int UtcDaliGlViewDirectRenderingThreadedOnScene2(void) +{ + ToolkitTestApplication application; + + GlView view = Toolkit::GlView::New(GlView::BackendMode::DIRECT_RENDERING_THREADED, GlView::ColorFormat::RGB888); + + // This test will fail instantiating shaders + gDirectRenderingFailCreateProgram = true; + + //Onscene + application.GetScene().Add(view); + view.SetRenderingMode(GlView::RenderingMode::CONTINUOUS); + view.SetGraphicsConfig(true, true, 0, GlView::GraphicsApiVersion::GLES_VERSION_3_0); + view.RegisterGlCallbacks(Dali::MakeCallback(DirectRenderingCode::glInitMT), Dali::MakeCallback(DirectRenderingCode::glRenderFrameMT), Dali::MakeCallback(DirectRenderingCode::glTerminateMT)); + view.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT); + view.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT); + + // Set size on the actor (half the window size to show that glClear() and scissor test work together) + view.SetProperty(Actor::Property::SIZE, Size(100, 100)); + view.SetProperty(Actor::Property::POSITION, Vector2(0,0)); + + while( DirectRenderingCode::gDRFramesRendered < 1 ) + { + application.SendNotification(); + application.Render(); + } + DALI_TEST_CHECK(true); + END_TEST; +}