/*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*/
// EXTERNAL INCLUDES
+#include <dali/devel-api/actors/actor-devel.h>
+
#include <dali/public-api/dali-core.h>
#include <dali/devel-api/images/texture-set-image.h>
#include <cstdio>
application.Render(0);
// Expect no blue component in either buffer - yellow
- DALI_TEST_EQUALS( renderer.GetProperty<Vector4>(colorIndex), Color::YELLOW, TEST_LOCATION );
+ DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector4 >( colorIndex ), Color::YELLOW, TEST_LOCATION );
application.Render(0);
- DALI_TEST_EQUALS( renderer.GetProperty<Vector4>(colorIndex), Color::YELLOW, TEST_LOCATION );
+ DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector4 >( colorIndex ), Color::YELLOW, TEST_LOCATION );
renderer.RemoveConstraints();
renderer.SetProperty(colorIndex, Color::WHITE );
application.SendNotification();
application.Render(0);
- DALI_TEST_EQUALS( renderer.GetProperty<Vector4>(colorIndex), Color::WHITE, TEST_LOCATION );
+ DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector4 >( colorIndex ), Color::WHITE, TEST_LOCATION );
END_TEST;
}
application.SendNotification();
application.Render(500);
- DALI_TEST_EQUALS( renderer.GetProperty<Vector4>(colorIndex), Color::WHITE * 0.5f, TEST_LOCATION );
+ DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector4 >( colorIndex ), Color::WHITE * 0.5f, TEST_LOCATION );
application.Render(500);
- DALI_TEST_EQUALS( renderer.GetProperty<Vector4>(colorIndex), Color::TRANSPARENT, TEST_LOCATION );
+ DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector4 >( colorIndex ), Color::TRANSPARENT, TEST_LOCATION );
END_TEST;
}
END_TEST;
}
+
+Renderer CreateRenderer( Actor actor, Geometry geometry, Shader shader, int depthIndex )
+{
+ Image image0 = BufferImage::New( 64, 64, Pixel::RGB888 );
+ TextureSet textureSet0 = CreateTextureSet( image0 );
+ Renderer renderer0 = Renderer::New( geometry, shader );
+ renderer0.SetTextures( textureSet0 );
+ renderer0.SetProperty( Renderer::Property::DEPTH_INDEX, depthIndex );
+ actor.AddRenderer(renderer0);
+ return renderer0;
+}
+
+
+Actor CreateActor( Actor parent, int siblingOrder, const char* location )
+{
+ Actor actor0 = Actor::New();
+ actor0.SetAnchorPoint(AnchorPoint::CENTER);
+ actor0.SetParentOrigin(AnchorPoint::CENTER);
+ actor0.SetPosition(0.0f,0.0f);
+ actor0.SetSize(100, 100);
+ actor0.SetProperty( Dali::DevelActor::Property::SIBLING_ORDER, siblingOrder );
+ DALI_TEST_EQUALS( actor0.GetProperty<int>( Dali::DevelActor::Property::SIBLING_ORDER), siblingOrder, TEST_INNER_LOCATION(location) );
+ parent.Add(actor0);
+
+ return actor0;
+}
+
int UtcDaliRendererRenderOrder2DLayer(void)
{
TestApplication application;
Shader shader = Shader::New("VertexSource", "FragmentSource");
Geometry geometry = CreateQuadGeometry();
- Actor actor0 = Actor::New();
- actor0.SetAnchorPoint(AnchorPoint::CENTER);
- actor0.SetParentOrigin(AnchorPoint::CENTER);
- actor0.SetPosition(0.0f,0.0f);
- Image image0 = BufferImage::New( 64, 64, Pixel::RGB888 );
- TextureSet textureSet0 = CreateTextureSet( image0 );
- Renderer renderer0 = Renderer::New( geometry, shader );
- renderer0.SetTextures( textureSet0 );
- actor0.AddRenderer(renderer0);
- actor0.SetSize(1, 1);
- Stage::GetCurrent().Add(actor0);
- application.SendNotification();
- application.Render(0);
+ Actor root = Stage::GetCurrent().GetRootLayer();
- Actor actor1 = Actor::New();
- actor1.SetAnchorPoint(AnchorPoint::CENTER);
- actor1.SetParentOrigin(AnchorPoint::CENTER);
- actor1.SetPosition(0.0f,0.0f);
- Image image1= BufferImage::New( 64, 64, Pixel::RGB888 );
- TextureSet textureSet1 = CreateTextureSet( image1 );
- Renderer renderer1 = Renderer::New( geometry, shader );
- renderer1.SetTextures( textureSet1 );
- actor1.AddRenderer(renderer1);
- actor1.SetSize(1, 1);
- Stage::GetCurrent().Add(actor1);
- application.SendNotification();
- application.Render(0);
+ Actor actor0 = CreateActor( root, 0, TEST_LOCATION );
+ Renderer renderer0 = CreateRenderer( actor0, geometry, shader, 0 );
- Actor actor2 = Actor::New();
- actor2.SetAnchorPoint(AnchorPoint::CENTER);
- actor2.SetParentOrigin(AnchorPoint::CENTER);
- actor2.SetPosition(0.0f,0.0f);
- Image image2= BufferImage::New( 64, 64, Pixel::RGB888 );
- TextureSet textureSet2 = CreateTextureSet( image2 );
- Renderer renderer2 = Renderer::New( geometry, shader );
- renderer2.SetTextures( textureSet2 );
- actor2.AddRenderer(renderer2);
- actor2.SetSize(1, 1);
- Stage::GetCurrent().Add(actor2);
- application.SendNotification();
- application.Render(0);
+ Actor actor1 = CreateActor( root, 0, TEST_LOCATION );
+ Renderer renderer1 = CreateRenderer( actor1, geometry, shader, 0 );
+
+ Actor actor2 = CreateActor( root, 0, TEST_LOCATION );
+ Renderer renderer2 = CreateRenderer( actor2, geometry, shader, 0 );
+
+ Actor actor3 = CreateActor( root, 0, TEST_LOCATION );
+ Renderer renderer3 = CreateRenderer( actor3, geometry, shader, 0 );
- Actor actor3 = Actor::New();
- actor3.SetAnchorPoint(AnchorPoint::CENTER);
- actor3.SetParentOrigin(AnchorPoint::CENTER);
- actor3.SetPosition(0.0f,0.0f);
- Image image3 = BufferImage::New( 64, 64, Pixel::RGB888 );
- TextureSet textureSet3 = CreateTextureSet( image3 );
- Renderer renderer3 = Renderer::New( geometry, shader );
- renderer3.SetTextures( textureSet3 );
- actor3.AddRenderer(renderer3);
- actor3.SetSize(1, 1);
- Stage::GetCurrent().Add(actor3);
application.SendNotification();
application.Render(0);
Shader shader = Shader::New("VertexSource", "FragmentSource");
Geometry geometry = CreateQuadGeometry();
- Actor actor0 = Actor::New();
- actor0.SetAnchorPoint(AnchorPoint::CENTER);
- actor0.SetParentOrigin(AnchorPoint::CENTER);
- actor0.SetPosition(0.0f,0.0f);
- actor0.SetSize(1, 1);
- Stage::GetCurrent().Add(actor0);
+ Actor root = Stage::GetCurrent().GetRootLayer();
- Actor actor1 = Actor::New();
- actor1.SetAnchorPoint(AnchorPoint::CENTER);
- actor1.SetParentOrigin(AnchorPoint::CENTER);
- actor1.SetPosition(0.0f,0.0f);
- actor1.SetSize(1, 1);
- actor0.Add(actor1);
+ Actor actor0 = CreateActor( root, 0, TEST_LOCATION );
+ Actor actor1 = CreateActor( actor0, 0, TEST_LOCATION );
+ Renderer renderer0 = CreateRenderer( actor0, geometry, shader, 2 );
+ Renderer renderer1 = CreateRenderer( actor0, geometry, shader, 0 );
+ Renderer renderer2 = CreateRenderer( actor0, geometry, shader, 1 );
+ Renderer renderer3 = CreateRenderer( actor1, geometry, shader, 1 );
+ Renderer renderer4 = CreateRenderer( actor1, geometry, shader, 0 );
+ Renderer renderer5 = CreateRenderer( actor1, geometry, shader, -1 );
- //Renderer0
- Image image0 = BufferImage::New( 64, 64, Pixel::RGB888 );
- TextureSet textureSet0 = CreateTextureSet( image0 );
- Renderer renderer0 = Renderer::New( geometry, shader );
- renderer0.SetTextures( textureSet0 );
- renderer0.SetProperty( Renderer::Property::DEPTH_INDEX, 2 );
- actor0.AddRenderer(renderer0);
- application.SendNotification();
- application.Render(0);
-
- //Renderer1
- Image image1= BufferImage::New( 64, 64, Pixel::RGB888 );
- TextureSet textureSet1 = CreateTextureSet( image1 );
- Renderer renderer1 = Renderer::New( geometry, shader );
- renderer1.SetTextures( textureSet1 );
- renderer1.SetProperty( Renderer::Property::DEPTH_INDEX, 0 );
- actor0.AddRenderer(renderer1);
application.SendNotification();
application.Render(0);
- //Renderer2
- Image image2= BufferImage::New( 64, 64, Pixel::RGB888 );
- TextureSet textureSet2 = CreateTextureSet( image2 );
- Renderer renderer2 = Renderer::New( geometry, shader );
- renderer2.SetTextures( textureSet2 );
- renderer2.SetProperty( Renderer::Property::DEPTH_INDEX, 1 );
- actor0.AddRenderer(renderer2);
- application.SendNotification();
- application.Render(0);
-
- //Renderer3
- Image image3 = BufferImage::New( 64, 64, Pixel::RGB888 );
- TextureSet textureSet3 = CreateTextureSet( image3 );
- Renderer renderer3 = Renderer::New( geometry, shader );
- renderer3.SetTextures( textureSet3 );
- renderer3.SetProperty( Renderer::Property::DEPTH_INDEX, 1 );
- actor1.AddRenderer(renderer3);
- application.SendNotification();
- application.Render(0);
-
- //Renderer4
- Image image4= BufferImage::New( 64, 64, Pixel::RGB888 );
- TextureSet textureSet4 = CreateTextureSet( image4 );
- Renderer renderer4 = Renderer::New( geometry, shader );
- renderer4.SetTextures( textureSet4 );
- renderer4.SetProperty( Renderer::Property::DEPTH_INDEX, 0 );
- actor1.AddRenderer(renderer4);
- application.SendNotification();
- application.Render(0);
-
- //Renderer5
- Image image5= BufferImage::New( 64, 64, Pixel::RGB888 );
- TextureSet textureSet5 = CreateTextureSet( image5 );
- Renderer renderer5 = Renderer::New( geometry, shader );
- renderer5.SetTextures( textureSet5 );
- renderer5.SetProperty( Renderer::Property::DEPTH_INDEX, -1 );
- actor1.AddRenderer(renderer5);
- application.SendNotification();
- application.Render(0);
-
-
TestGlAbstraction& gl = application.GetGlAbstraction();
gl.EnableTextureCallTrace(true);
application.SendNotification();
END_TEST;
}
-int UtcDaliRendererRenderOrder2DLayerOverlay(void)
+
+int UtcDaliRendererRenderOrder2DLayerSiblingOrder(void)
{
TestApplication application;
- tet_infoline("Test the rendering order in a 2D layer is correct for overlays");
+ tet_infoline("Test the rendering order in a 2D layer is correct using sibling order");
+
+ /*
+ * Creates the following hierarchy:
+ *
+ * Layer
+ * / \
+ * / \
+ * / \
+ * / \
+ * / \
+ * actor0 (SIBLING_ORDER:1) actor1 (SIBLING_ORDER:0)
+ * / | \ / | \
+ * / | \ / | \
+ * / | \ / | \
+ * renderer0 renderer1 actor2 renderer2 renderer3 renderer4
+ * DI:2 DI:0 | DI:0 DI:1 DI:2
+ * |
+ * renderer5
+ * DI:-1
+ *
+ * actor0 has sibling order 1
+ * actor1 has sibling order 0
+ * actor2 has sibling order 0
+ *
+ * renderer0 has depth index 2
+ * renderer1 has depth index 0
+ *
+ * renderer2 has depth index 0
+ * renderer3 has depth index 1
+ * renderer4 has depth index 2
+ *
+ * renderer5 has depth index -1
+ *
+ * Expected rendering order: renderer2 - renderer3 - renderer4 - renderer1 - renderer0 - renderer5
+ */
Shader shader = Shader::New("VertexSource", "FragmentSource");
Geometry geometry = CreateQuadGeometry();
+ Actor root = Stage::GetCurrent().GetRootLayer();
+ Actor actor0 = CreateActor( root, 1, TEST_LOCATION );
+ Actor actor1 = CreateActor( root, 0, TEST_LOCATION );
+ Actor actor2 = CreateActor( actor0, 0, TEST_LOCATION );
- Actor actor0 = Actor::New();
- actor0.SetAnchorPoint(AnchorPoint::CENTER);
- actor0.SetParentOrigin(AnchorPoint::CENTER);
- Image image0 = BufferImage::New( 64, 64, Pixel::RGB888 );
- TextureSet textureSet0 = CreateTextureSet( image0 );
- Renderer renderer0 = Renderer::New( geometry, shader );
- renderer0.SetTextures( textureSet0 );
- actor0.AddRenderer(renderer0);
- actor0.SetPosition(0.0f,0.0f);
- actor0.SetSize(100, 100);
- Stage::GetCurrent().Add(actor0);
- actor0.SetDrawMode( DrawMode::OVERLAY_2D );
- application.SendNotification();
- application.Render(0);
+ Renderer renderer0 = CreateRenderer( actor0, geometry, shader, 2 );
+ Renderer renderer1 = CreateRenderer( actor0, geometry, shader, 0 );
+ Renderer renderer2 = CreateRenderer( actor1, geometry, shader, 0 );
+ Renderer renderer3 = CreateRenderer( actor1, geometry, shader, 1 );
+ Renderer renderer4 = CreateRenderer( actor1, geometry, shader, 2 );
+ Renderer renderer5 = CreateRenderer( actor2, geometry, shader, -1 );
- Actor actor1 = Actor::New();
- actor1.SetAnchorPoint(AnchorPoint::CENTER);
- actor1.SetParentOrigin(AnchorPoint::CENTER);
- Image image1= BufferImage::New( 64, 64, Pixel::RGB888 );
- TextureSet textureSet1 = CreateTextureSet( image1 );
- Renderer renderer1 = Renderer::New( geometry, shader );
- renderer1.SetTextures( textureSet1 );
- actor1.SetPosition(0.0f,0.0f);
- actor1.AddRenderer(renderer1);
- actor1.SetSize(100, 100);
- Stage::GetCurrent().Add(actor1);
- actor1.SetDrawMode( DrawMode::OVERLAY_2D );
application.SendNotification();
- application.Render(0);
+ application.Render();
- Actor actor2 = Actor::New();
- actor2.SetAnchorPoint(AnchorPoint::CENTER);
- actor2.SetParentOrigin(AnchorPoint::CENTER);
- Image image2= BufferImage::New( 64, 64, Pixel::RGB888 );
- TextureSet textureSet2 = CreateTextureSet( image2 );
- Renderer renderer2 = Renderer::New( geometry, shader );
- renderer2.SetTextures( textureSet2 );
- actor2.AddRenderer(renderer2);
- actor2.SetPosition(0.0f,0.0f);
- actor2.SetSize(100, 100);
- Stage::GetCurrent().Add(actor2);
+ TestGlAbstraction& gl = application.GetGlAbstraction();
+ gl.EnableTextureCallTrace(true);
application.SendNotification();
application.Render(0);
- Actor actor3 = Actor::New();
- actor3.SetAnchorPoint(AnchorPoint::CENTER);
- actor3.SetParentOrigin(AnchorPoint::CENTER);
- Image image3 = BufferImage::New( 64, 64, Pixel::RGB888 );
- TextureSet textureSet3 = CreateTextureSet( image3 );
- Renderer renderer3 = Renderer::New( geometry, shader );
- renderer3.SetTextures( textureSet3 );
- actor3.SetPosition(0.0f,0.0f);
- actor3.AddRenderer(renderer3);
- actor3.SetSize(100, 100);
- Stage::GetCurrent().Add(actor3);
- actor3.SetDrawMode( DrawMode::OVERLAY_2D );
- application.SendNotification();
- application.Render(0);
+ int textureBindIndex[6];
+ for( unsigned int i(0); i<6; ++i )
+ {
+ std::stringstream params;
+ params << GL_TEXTURE_2D<<", "<<i+1;
+ textureBindIndex[i] = gl.GetTextureTrace().FindIndexFromMethodAndParams("BindTexture", params.str() );
+ }
+
+ DALI_TEST_EQUALS( textureBindIndex[2], 0, TEST_LOCATION );
+ DALI_TEST_EQUALS( textureBindIndex[3], 1, TEST_LOCATION );
+ DALI_TEST_EQUALS( textureBindIndex[4], 2, TEST_LOCATION );
+ DALI_TEST_EQUALS( textureBindIndex[1], 3, TEST_LOCATION );
+ DALI_TEST_EQUALS( textureBindIndex[0], 4, TEST_LOCATION );
+ DALI_TEST_EQUALS( textureBindIndex[5], 5, TEST_LOCATION );
- Actor actor4 = Actor::New();
- actor4.SetAnchorPoint(AnchorPoint::CENTER);
- actor4.SetParentOrigin(AnchorPoint::CENTER);
- Image image4 = BufferImage::New( 64, 64, Pixel::RGB888 );
- TextureSet textureSet4 = CreateTextureSet( image4 );
- Renderer renderer4 = Renderer::New( geometry, shader );
- renderer4.SetTextures( textureSet4 );
- actor4.AddRenderer(renderer4);
- actor4.SetPosition(0.0f,0.0f);
- actor4.SetSize(100, 100);
- Stage::GetCurrent().Add(actor4);
+ // Change sibling order of actor1
+ // New Expected rendering order: renderer1 - renderer0 - renderer 5 - renderer2 - renderer3 - renderer4
+ actor1.SetProperty( Dali::DevelActor::Property::SIBLING_ORDER, 2 );
+
+ gl.GetTextureTrace().Reset();
application.SendNotification();
application.Render(0);
+ for( unsigned int i(0); i<6; ++i )
+ {
+ std::stringstream params;
+ params << GL_TEXTURE_2D<<", "<<i+1;
+ textureBindIndex[i] = gl.GetTextureTrace().FindIndexFromMethodAndParams("BindTexture", params.str() );
+ }
+
+ DALI_TEST_EQUALS( textureBindIndex[1], 0, TEST_LOCATION );
+ DALI_TEST_EQUALS( textureBindIndex[0], 1, TEST_LOCATION );
+ DALI_TEST_EQUALS( textureBindIndex[5], 2, TEST_LOCATION );
+ DALI_TEST_EQUALS( textureBindIndex[2], 3, TEST_LOCATION );
+ DALI_TEST_EQUALS( textureBindIndex[3], 4, TEST_LOCATION );
+ DALI_TEST_EQUALS( textureBindIndex[4], 5, TEST_LOCATION );
+
+ END_TEST;
+}
+
+int UtcDaliRendererRenderOrder2DLayerOverlay(void)
+{
+ TestApplication application;
+ tet_infoline("Test the rendering order in a 2D layer is correct for overlays");
+
+ Shader shader = Shader::New("VertexSource", "FragmentSource");
+ Geometry geometry = CreateQuadGeometry();
+ Actor root = Stage::GetCurrent().GetRootLayer();
+
/*
* Create the following hierarchy:
*
*
* Expected rendering order : actor2 - actor4 - actor1 - actor0 - actor3
*/
- Stage::GetCurrent().Add( actor2 );
+
+ Actor actor0 = CreateActor( root, 0, TEST_LOCATION );
+ actor0.SetDrawMode( DrawMode::OVERLAY_2D );
+ Renderer renderer0 = CreateRenderer( actor0, geometry, shader, 0 );
+
+ Actor actor1 = CreateActor( root, 0, TEST_LOCATION );
+ actor1.SetDrawMode( DrawMode::OVERLAY_2D );
+ Renderer renderer1 = CreateRenderer( actor1, geometry, shader, 0 );
+
+ Actor actor2 = CreateActor( root, 0, TEST_LOCATION );
+ Renderer renderer2 = CreateRenderer( actor2, geometry, shader, 0 );
+
+ Actor actor3 = CreateActor( root, 0, TEST_LOCATION );
+ actor3.SetDrawMode( DrawMode::OVERLAY_2D );
+ Renderer renderer3 = CreateRenderer( actor3, geometry, shader, 0 );
+
+ Actor actor4 = CreateActor( root, 0, TEST_LOCATION );
+ Renderer renderer4 = CreateRenderer( actor4, geometry, shader, 0 );
+
+ application.SendNotification();
+ application.Render(0);
+
actor2.Add(actor1);
actor2.Add(actor4);
actor1.Add(actor0);
actor0.Add(actor3);
- application.SendNotification();
- application.Render(0);
TestGlAbstraction& gl = application.GetGlAbstraction();
gl.EnableTextureCallTrace(true);
void CheckEnumerationProperty( Renderer& renderer, Property::Index propertyIndex, T initialValue, T firstCheckEnumeration, T secondCheckEnumeration, std::string secondCheckString )
{
DALI_TEST_CHECK( renderer.GetProperty<int>( propertyIndex ) == static_cast<int>( initialValue ) );
+ DALI_TEST_CHECK( renderer.GetCurrentProperty< int >( propertyIndex ) == static_cast<int>( initialValue ) );
renderer.SetProperty( propertyIndex, firstCheckEnumeration );
DALI_TEST_CHECK( renderer.GetProperty<int>( propertyIndex ) == static_cast<int>( firstCheckEnumeration ) );
+ DALI_TEST_CHECK( renderer.GetCurrentProperty< int >( propertyIndex ) == static_cast<int>( firstCheckEnumeration ) );
renderer.SetProperty( propertyIndex, secondCheckString );
DALI_TEST_CHECK( renderer.GetProperty<int>( propertyIndex ) == static_cast<int>( secondCheckEnumeration ) );
+ DALI_TEST_CHECK( renderer.GetCurrentProperty< int >( propertyIndex ) == static_cast<int>( secondCheckEnumeration ) );
}
int UtcDaliRendererEnumProperties(void)
END_TEST;
}
+
+int UtcDaliRendererWrongNumberOfTextures(void)
+{
+ TestApplication application;
+ tet_infoline("Test renderer does render even if number of textures is different than active samplers in the shader");
+
+ //Create a TextureSet with 4 textures (One more texture in the texture set than active samplers)
+ //@note Shaders in the test suit have 3 active samplers. See TestGlAbstraction::GetActiveUniform()
+ Texture texture = Texture::New( TextureType::TEXTURE_2D, Pixel::RGBA8888, 64u, 64u );
+ TextureSet textureSet = CreateTextureSet();
+ textureSet.SetTexture(0, texture );
+ textureSet.SetTexture(1, texture );
+ textureSet.SetTexture(2, texture );
+ textureSet.SetTexture(3, texture );
+ Shader shader = Shader::New("VertexSource", "FragmentSource");
+ Geometry geometry = CreateQuadGeometry();
+ Renderer renderer = Renderer::New( geometry, shader );
+ renderer.SetTextures( textureSet );
+
+ Actor actor= Actor::New();
+ actor.AddRenderer(renderer);
+ actor.SetPosition(0.0f,0.0f);
+ actor.SetSize(100, 100);
+ Stage::GetCurrent().Add(actor);
+
+ TestGlAbstraction& gl = application.GetGlAbstraction();
+ TraceCallStack& drawTrace = gl.GetDrawTrace();
+ drawTrace.Reset();
+ drawTrace.Enable(true);
+
+ application.SendNotification();
+ application.Render(0);
+
+ //Test we do the drawcall when TextureSet has more textures than there are active samplers in the shader
+ DALI_TEST_EQUALS( drawTrace.CountMethod("DrawElements"), 1, TEST_LOCATION );
+
+ //Create a TextureSet with 1 texture (two more active samplers than texture in the texture set)
+ //@note Shaders in the test suit have 3 active samplers. See TestGlAbstraction::GetActiveUniform()
+ textureSet = CreateTextureSet();
+ renderer.SetTextures( textureSet );
+ textureSet.SetTexture(0, texture );
+ drawTrace.Reset();
+ application.SendNotification();
+ application.Render(0);
+
+ //Test we do the drawcall when TextureSet has less textures than there are active samplers in the shader.
+ DALI_TEST_EQUALS( drawTrace.CountMethod("DrawElements"), 1, TEST_LOCATION );
+
+ END_TEST;
+}