Commit c1ab3b4c9ffa2172d332b85b94546b5d5f730c28

Authored by Ferran Sole
1 parent d52edf7e

Rendering API clean-up

Change-Id: I66e818b2ef1744c20af0997375065e029399df84
examples/benchmark/benchmark.cpp
@@ -225,9 +225,10 @@ Renderer CreateRenderer( unsigned int index ) @@ -225,9 +225,10 @@ Renderer CreateRenderer( unsigned int index )
225 225
226 const char* imagePath = !gNinePatch ? IMAGE_PATH[index] : NINEPATCH_IMAGE_PATH[index]; 226 const char* imagePath = !gNinePatch ? IMAGE_PATH[index] : NINEPATCH_IMAGE_PATH[index];
227 Image image = ResourceImage::New(imagePath); 227 Image image = ResourceImage::New(imagePath);
228 - Material material = Material::New( shader );  
229 - material.AddTexture( image, "sTexture" );  
230 - renderers[index] = Renderer::New( QuadMesh(), material ); 228 + TextureSet textureSet = TextureSet::New();
  229 + textureSet.SetImage( 0u, image );
  230 + renderers[index] = Renderer::New( QuadMesh(), shader );
  231 + renderers[index].SetTextures( textureSet );
231 renderers[index].SetProperty( Renderer::Property::BLENDING_MODE, BlendingMode::OFF ); 232 renderers[index].SetProperty( Renderer::Property::BLENDING_MODE, BlendingMode::OFF );
232 } 233 }
233 return renderers[index]; 234 return renderers[index];
examples/line-mesh/line-mesh-example.cpp
@@ -204,9 +204,8 @@ public: @@ -204,9 +204,8 @@ public:
204 } 204 }
205 205
206 mShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER ); 206 mShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER );
207 - mMaterial = Material::New( mShader );  
208 mGeometry = CreateGeometry(); 207 mGeometry = CreateGeometry();
209 - mRenderer = Renderer::New( mGeometry, mMaterial ); 208 + mRenderer = Renderer::New( mGeometry, mShader );
210 209
211 mMeshActor = Actor::New(); 210 mMeshActor = Actor::New();
212 mMeshActor.AddRenderer( mRenderer ); 211 mMeshActor.AddRenderer( mRenderer );
@@ -332,7 +331,6 @@ private: @@ -332,7 +331,6 @@ private:
332 Vector3 mStageSize; ///< The size of the stage 331 Vector3 mStageSize; ///< The size of the stage
333 332
334 Shader mShader; 333 Shader mShader;
335 - Material mMaterial;  
336 Geometry mGeometry; 334 Geometry mGeometry;
337 Renderer mRenderer; 335 Renderer mRenderer;
338 Actor mMeshActor; 336 Actor mMeshActor;
examples/mesh-morph/mesh-morph-example.cpp
@@ -292,11 +292,8 @@ public: @@ -292,11 +292,8 @@ public:
292 application.GetWindow().ShowIndicator( Dali::Window::INVISIBLE ); 292 application.GetWindow().ShowIndicator( Dali::Window::INVISIBLE );
293 293
294 mShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER ); 294 mShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER );
295 -  
296 - mMaterial = Material::New( mShader );  
297 mGeometry = CreateGeometry(); 295 mGeometry = CreateGeometry();
298 -  
299 - mRenderer = Renderer::New( mGeometry, mMaterial ); 296 + mRenderer = Renderer::New( mGeometry, mShader );
300 297
301 mMeshActor = Actor::New(); 298 mMeshActor = Actor::New();
302 mMeshActor.AddRenderer( mRenderer ); 299 mMeshActor.AddRenderer( mRenderer );
@@ -346,7 +343,6 @@ private: @@ -346,7 +343,6 @@ private:
346 Vector3 mStageSize; ///< The size of the stage 343 Vector3 mStageSize; ///< The size of the stage
347 344
348 Shader mShader; 345 Shader mShader;
349 - Material mMaterial;  
350 Geometry mGeometry; 346 Geometry mGeometry;
351 Renderer mRenderer; 347 Renderer mRenderer;
352 Actor mMeshActor; 348 Actor mMeshActor;
examples/mesh-sorting/mesh-sorting-example.cpp
@@ -30,7 +30,7 @@ using namespace Dali; @@ -30,7 +30,7 @@ using namespace Dali;
30 namespace 30 namespace
31 { 31 {
32 32
33 -const char* MATERIAL_SAMPLES[] = 33 +const char* IMAGES[] =
34 { 34 {
35 DEMO_IMAGE_DIR "people-medium-1.jpg", 35 DEMO_IMAGE_DIR "people-medium-1.jpg",
36 DEMO_IMAGE_DIR "people-medium-4.jpg", 36 DEMO_IMAGE_DIR "people-medium-4.jpg",
@@ -39,7 +39,7 @@ const char* MATERIAL_SAMPLES[] = @@ -39,7 +39,7 @@ const char* MATERIAL_SAMPLES[] =
39 DEMO_IMAGE_DIR "people-medium-15.jpg", 39 DEMO_IMAGE_DIR "people-medium-15.jpg",
40 DEMO_IMAGE_DIR "people-medium-6.jpg", 40 DEMO_IMAGE_DIR "people-medium-6.jpg",
41 }; 41 };
42 -const unsigned int NUMBER_OF_SAMPLES(sizeof(MATERIAL_SAMPLES)/sizeof(const char*)); 42 +const unsigned int NUMBER_OF_SAMPLES(sizeof(IMAGES)/sizeof(const char*));
43 43
44 44
45 #define MAKE_SHADER(A)#A 45 #define MAKE_SHADER(A)#A
@@ -164,16 +164,17 @@ public: @@ -164,16 +164,17 @@ public:
164 mShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER ); 164 mShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER );
165 mGeometry = CreateGeometry(); 165 mGeometry = CreateGeometry();
166 166
167 - Material firstMat; 167 + TextureSet firstTextureSet;
168 168
169 for( unsigned i=0; i<NUMBER_OF_SAMPLES; ++i) 169 for( unsigned i=0; i<NUMBER_OF_SAMPLES; ++i)
170 { 170 {
171 - Image image = ResourceImage::New( MATERIAL_SAMPLES[i] );  
172 - Material material = Material::New( mShader );  
173 - material.AddTexture(image, "sTexture");  
174 - if( i==0 ) { firstMat = material; } 171 + Image image = ResourceImage::New( IMAGES[i] );
  172 + TextureSet textureSet = TextureSet::New();
  173 + textureSet.SetImage( 0u, image );
  174 + if( i==0 ) { firstTextureSet = textureSet; }
175 175
176 - Renderer renderer = Renderer::New( mGeometry, material ); 176 + Renderer renderer = Renderer::New( mGeometry, mShader );
  177 + renderer.SetTextures( textureSet );
177 Actor meshActor = Actor::New(); 178 Actor meshActor = Actor::New();
178 mActors[i] = meshActor; 179 mActors[i] = meshActor;
179 meshActor.AddRenderer( renderer ); 180 meshActor.AddRenderer( renderer );
@@ -197,7 +198,7 @@ public: @@ -197,7 +198,7 @@ public:
197 stage.Add( meshActor ); 198 stage.Add( meshActor );
198 } 199 }
199 200
200 - mActors[NUMBER_OF_SAMPLES-2].GetRendererAt(0).SetMaterial( firstMat ); 201 + mActors[NUMBER_OF_SAMPLES-2].GetRendererAt(0).SetTextures( firstTextureSet );
201 202
202 stage.GetRootLayer().TouchedSignal().Connect(this, &ExampleController::OnStageTouched); 203 stage.GetRootLayer().TouchedSignal().Connect(this, &ExampleController::OnStageTouched);
203 } 204 }
examples/metaball-explosion/metaball-explosion-example.cpp
@@ -474,9 +474,10 @@ void MetaballExplosionController::CreateMetaballActors() @@ -474,9 +474,10 @@ void MetaballExplosionController::CreateMetaballActors()
474 //Create the shader for the metaballs 474 //Create the shader for the metaballs
475 Shader shader = Shader::New( METABALL_VERTEX_SHADER, METABALL_FRAG_SHADER ); 475 Shader shader = Shader::New( METABALL_VERTEX_SHADER, METABALL_FRAG_SHADER );
476 476
477 - Material material = Material::New( shader );  
478 Geometry metaballGeom = CreateGeometry(); 477 Geometry metaballGeom = CreateGeometry();
479 - 478 + Renderer renderer = Renderer::New( metaballGeom, shader );
  479 + renderer.SetProperty( Renderer::Property::BLENDING_MODE, BlendingMode::ON );
  480 + renderer.SetBlendFunc(BlendingFactor::ONE, BlendingFactor::ONE, BlendingFactor::ONE, BlendingFactor::ONE);
480 //Initialization of each of the metaballs 481 //Initialization of each of the metaballs
481 for( int i = 0; i < METABALL_NUMBER; i++ ) 482 for( int i = 0; i < METABALL_NUMBER; i++ )
482 { 483 {
@@ -487,11 +488,6 @@ void MetaballExplosionController::CreateMetaballActors() @@ -487,11 +488,6 @@ void MetaballExplosionController::CreateMetaballActors()
487 mMetaballs[i].actor.SetName("Metaball"); 488 mMetaballs[i].actor.SetName("Metaball");
488 mMetaballs[i].actor.SetScale( 1.0f ); 489 mMetaballs[i].actor.SetScale( 1.0f );
489 mMetaballs[i].actor.SetParentOrigin( ParentOrigin::CENTER ); 490 mMetaballs[i].actor.SetParentOrigin( ParentOrigin::CENTER );
490 -  
491 - Renderer renderer = Renderer::New( metaballGeom, material );  
492 - renderer.SetProperty( Renderer::Property::BLENDING_MODE, BlendingMode::ON );  
493 - renderer.SetBlendFunc(BlendingFactor::ONE, BlendingFactor::ONE, BlendingFactor::ONE, BlendingFactor::ONE);  
494 -  
495 mMetaballs[i].actor.AddRenderer( renderer ); 491 mMetaballs[i].actor.AddRenderer( renderer );
496 492
497 mMetaballs[i].positionIndex = mMetaballs[i].actor.RegisterProperty( "uPositionMetaball", mMetaballs[i].position ); 493 mMetaballs[i].positionIndex = mMetaballs[i].actor.RegisterProperty( "uPositionMetaball", mMetaballs[i].position );
@@ -557,17 +553,17 @@ void MetaballExplosionController::AddRefractionImage() @@ -557,17 +553,17 @@ void MetaballExplosionController::AddRefractionImage()
557 553
558 //Create new shader 554 //Create new shader
559 Shader shader = Shader::New( METABALL_VERTEX_SHADER, REFRACTION_FRAG_SHADER ); 555 Shader shader = Shader::New( METABALL_VERTEX_SHADER, REFRACTION_FRAG_SHADER );
560 - //Create new material  
561 - Material material = Material::New( shader );  
562 556
563 - //Add Textures  
564 - material.AddTexture(mBackImage, "sTexture");  
565 - material.AddTexture(fbo, "sEffect"); 557 + //Create new texture set
  558 + TextureSet textureSet = TextureSet::New();
  559 + textureSet.SetImage( 0u, mBackImage );
  560 + textureSet.SetImage( 1u, fbo );
566 561
567 //Create geometry 562 //Create geometry
568 Geometry metaballGeom = CreateGeometryComposition(); 563 Geometry metaballGeom = CreateGeometryComposition();
569 564
570 - Renderer mRenderer = Renderer::New( metaballGeom, material ); 565 + Renderer mRenderer = Renderer::New( metaballGeom, shader );
  566 + mRenderer.SetTextures( textureSet );
571 567
572 mCompositionActor = Actor::New( ); 568 mCompositionActor = Actor::New( );
573 mCompositionActor.SetParentOrigin(ParentOrigin::CENTER); 569 mCompositionActor.SetParentOrigin(ParentOrigin::CENTER);
examples/metaball-refrac/metaball-refrac-example.cpp
@@ -196,8 +196,10 @@ private: @@ -196,8 +196,10 @@ private:
196 Vector2 mGravityVar; 196 Vector2 mGravityVar;
197 197
198 Renderer mRendererRefraction; 198 Renderer mRendererRefraction;
199 - Material mMaterialRefraction;  
200 - Material mMaterialNormal; 199 + TextureSet mTextureSetRefraction;
  200 + Shader mShaderRefraction;
  201 + TextureSet mTextureSetNormal;
  202 + Shader mShaderNormal;
201 203
202 //Animations 204 //Animations
203 Animation mGravityAnimation[METABALL_NUMBER]; 205 Animation mGravityAnimation[METABALL_NUMBER];
@@ -444,13 +446,12 @@ void MetaballRefracController::CreateMetaballActors() @@ -444,13 +446,12 @@ void MetaballRefracController::CreateMetaballActors()
444 //With MeshData Textured 446 //With MeshData Textured
445 float aspect = (float)mScreenSize.y / (float)mScreenSize.x; 447 float aspect = (float)mScreenSize.y / (float)mScreenSize.x;
446 448
447 - //Create the shader for the metaballs  
448 - 449 + //Create the renderer for the metaballs
449 Shader shader = Shader::New( METABALL_VERTEX_SHADER, METABALL_FRAG_SHADER ); 450 Shader shader = Shader::New( METABALL_VERTEX_SHADER, METABALL_FRAG_SHADER );
450 -  
451 - Material material = Material::New( shader );  
452 -  
453 Geometry metaballGeom = CreateGeometry(); 451 Geometry metaballGeom = CreateGeometry();
  452 + Renderer renderer = Renderer::New( metaballGeom, shader );
  453 + renderer.SetProperty( Renderer::Property::BLENDING_MODE, BlendingMode::ON );
  454 + renderer.SetBlendFunc(BlendingFactor::ONE, BlendingFactor::ONE, BlendingFactor::ONE, BlendingFactor::ONE);
454 455
455 //Each metaball has a different radius 456 //Each metaball has a different radius
456 mMetaballs[0].radius = mMetaballs[0].initRadius = 0.0145f; 457 mMetaballs[0].radius = mMetaballs[0].initRadius = 0.0145f;
@@ -468,9 +469,7 @@ void MetaballRefracController::CreateMetaballActors() @@ -468,9 +469,7 @@ void MetaballRefracController::CreateMetaballActors()
468 mMetaballs[i].actor.SetScale( 1.0f ); 469 mMetaballs[i].actor.SetScale( 1.0f );
469 mMetaballs[i].actor.SetParentOrigin( ParentOrigin::CENTER ); 470 mMetaballs[i].actor.SetParentOrigin( ParentOrigin::CENTER );
470 471
471 - Renderer renderer = Renderer::New( metaballGeom, material );  
472 - renderer.SetProperty( Renderer::Property::BLENDING_MODE, BlendingMode::ON );  
473 - renderer.SetBlendFunc(BlendingFactor::ONE, BlendingFactor::ONE, BlendingFactor::ONE, BlendingFactor::ONE); 472 +
474 mMetaballs[i].actor.AddRenderer( renderer ); 473 mMetaballs[i].actor.AddRenderer( renderer );
475 474
476 mMetaballs[i].positionIndex = mMetaballs[i].actor.RegisterProperty( "uPositionMetaball", mMetaballs[i].position ); 475 mMetaballs[i].positionIndex = mMetaballs[i].actor.RegisterProperty( "uPositionMetaball", mMetaballs[i].position );
@@ -536,22 +535,19 @@ void MetaballRefracController::AddRefractionImage() @@ -536,22 +535,19 @@ void MetaballRefracController::AddRefractionImage()
536 Geometry metaballGeom = CreateGeometryComposition(); 535 Geometry metaballGeom = CreateGeometryComposition();
537 536
538 //Create Refraction shader and renderer 537 //Create Refraction shader and renderer
539 - Shader shader = Shader::New( METABALL_VERTEX_SHADER, REFRACTION_FRAG_SHADER );  
540 - //Create new material  
541 - mMaterialRefraction = Material::New( shader ); 538 + mShaderRefraction = Shader::New( METABALL_VERTEX_SHADER, REFRACTION_FRAG_SHADER );
542 539
543 - //Add Textures  
544 - mMaterialRefraction.AddTexture(mBackImage, "sTexture");  
545 - mMaterialRefraction.AddTexture(mMetaballFBO, "sEffect"); 540 + //Create new texture set
  541 + mTextureSetRefraction = TextureSet::New();
  542 + mTextureSetRefraction.SetImage( 0u, mBackImage );
  543 + mTextureSetRefraction.SetImage( 1u, mMetaballFBO );
546 544
547 //Create normal shader 545 //Create normal shader
548 - Shader shaderNormal = Shader::New( METABALL_VERTEX_SHADER, FRAG_SHADER );  
549 - //Create new material  
550 - mMaterialNormal = Material::New( shaderNormal );  
551 -  
552 - //Add samplers  
553 - mMaterialNormal.AddTexture(mBackImage, "sTexture"); 546 + mShaderNormal = Shader::New( METABALL_VERTEX_SHADER, FRAG_SHADER );
554 547
  548 + //Create new texture set
  549 + mTextureSetNormal = TextureSet::New();
  550 + mTextureSetNormal.SetImage( 0u, mBackImage );
555 551
556 //Create actor 552 //Create actor
557 mCompositionActor = Actor::New( ); 553 mCompositionActor = Actor::New( );
@@ -559,8 +555,8 @@ void MetaballRefracController::AddRefractionImage() @@ -559,8 +555,8 @@ void MetaballRefracController::AddRefractionImage()
559 mCompositionActor.SetPosition(Vector3(0.0f, 0.0f, 0.0f)); 555 mCompositionActor.SetPosition(Vector3(0.0f, 0.0f, 0.0f));
560 mCompositionActor.SetSize(mScreenSize.x, mScreenSize.y); 556 mCompositionActor.SetSize(mScreenSize.x, mScreenSize.y);
561 557
562 -  
563 - mRendererRefraction = Renderer::New( metaballGeom, mMaterialNormal ); 558 + mRendererRefraction = Renderer::New( metaballGeom, mShaderNormal );
  559 + mRendererRefraction.SetTextures( mTextureSetNormal );
564 mCompositionActor.AddRenderer( mRendererRefraction ); 560 mCompositionActor.AddRenderer( mRendererRefraction );
565 561
566 Stage stage = Stage::GetCurrent(); 562 Stage stage = Stage::GetCurrent();
@@ -743,7 +739,8 @@ void MetaballRefracController::StopAfterClickAnimations() @@ -743,7 +739,8 @@ void MetaballRefracController::StopAfterClickAnimations()
743 */ 739 */
744 void MetaballRefracController::ResetMetaballsState() 740 void MetaballRefracController::ResetMetaballsState()
745 { 741 {
746 - mRendererRefraction.SetMaterial(mMaterialNormal); 742 + mRendererRefraction.SetTextures(mTextureSetNormal);
  743 + mRendererRefraction.SetShader( mShaderNormal );
747 744
748 for (int i = 0 ; i < METABALL_NUMBER ; i++) 745 for (int i = 0 ; i < METABALL_NUMBER ; i++)
749 { 746 {
@@ -785,8 +782,8 @@ bool MetaballRefracController::OnTouch( Actor actor, const TouchEvent&amp; touch ) @@ -785,8 +782,8 @@ bool MetaballRefracController::OnTouch( Actor actor, const TouchEvent&amp; touch )
785 mRadiusVarAnimation[3].Play(); 782 mRadiusVarAnimation[3].Play();
786 783
787 //We draw with the refraction-composition shader 784 //We draw with the refraction-composition shader
788 - mRendererRefraction.SetMaterial(mMaterialRefraction);  
789 - 785 + mRendererRefraction.SetTextures(mTextureSetRefraction);
  786 + mRendererRefraction.SetShader( mShaderRefraction );
790 mCurrentTouchPosition = point.screen; 787 mCurrentTouchPosition = point.screen;
791 788
792 //we use the click position for the metaballs 789 //we use the click position for the metaballs
examples/new-window/new-window-example.cpp
@@ -263,8 +263,7 @@ void NewWindowController::AddMeshActor( Actor&amp; parentActor ) @@ -263,8 +263,7 @@ void NewWindowController::AddMeshActor( Actor&amp; parentActor )
263 263
264 // Create a coloured mesh 264 // Create a coloured mesh
265 Shader shaderColorMesh = Shader::New( VERTEX_COLOR_MESH, FRAGMENT_COLOR_MESH ); 265 Shader shaderColorMesh = Shader::New( VERTEX_COLOR_MESH, FRAGMENT_COLOR_MESH );
266 - Material colorMeshmaterial = Material::New( shaderColorMesh );  
267 - Renderer colorMeshRenderer = Renderer::New( meshGeometry, colorMeshmaterial ); 266 + Renderer colorMeshRenderer = Renderer::New( meshGeometry, shaderColorMesh );
268 267
269 Actor colorMeshActor = Actor::New(); 268 Actor colorMeshActor = Actor::New();
270 colorMeshActor.AddRenderer( colorMeshRenderer ); 269 colorMeshActor.AddRenderer( colorMeshRenderer );
@@ -278,9 +277,10 @@ void NewWindowController::AddMeshActor( Actor&amp; parentActor ) @@ -278,9 +277,10 @@ void NewWindowController::AddMeshActor( Actor&amp; parentActor )
278 // Create a textured mesh 277 // Create a textured mesh
279 Image effectImage = ResourceImage::New(EFFECT_IMAGE); 278 Image effectImage = ResourceImage::New(EFFECT_IMAGE);
280 Shader shaderTextureMesh = Shader::New( VERTEX_TEXTURE_MESH, FRAGMENT_TEXTURE_MESH ); 279 Shader shaderTextureMesh = Shader::New( VERTEX_TEXTURE_MESH, FRAGMENT_TEXTURE_MESH );
281 - Material textureMeshMaterial = Material::New( shaderTextureMesh );  
282 - textureMeshMaterial.AddTexture(effectImage, "sTexture");  
283 - Renderer textureMeshRenderer = Renderer::New( meshGeometry, textureMeshMaterial ); 280 + TextureSet textureSet = TextureSet::New();
  281 + textureSet.SetImage( 0u, effectImage );
  282 + Renderer textureMeshRenderer = Renderer::New( meshGeometry, shaderTextureMesh );
  283 + textureMeshRenderer.SetTextures( textureSet );
284 284
285 Actor textureMeshActor = Actor::New(); 285 Actor textureMeshActor = Actor::New();
286 textureMeshActor.AddRenderer( textureMeshRenderer ); 286 textureMeshActor.AddRenderer( textureMeshRenderer );
@@ -331,7 +331,7 @@ void NewWindowController::AddBlendingImageActor( Actor&amp; parentActor ) @@ -331,7 +331,7 @@ void NewWindowController::AddBlendingImageActor( Actor&amp; parentActor )
331 blendActor.SetSize(140, 140); 331 blendActor.SetSize(140, 140);
332 parentActor.Add(blendActor); 332 parentActor.Add(blendActor);
333 333
334 - blendActor.GetRendererAt(0u).GetMaterial().AddTexture(fb2, "sEffect"); 334 + blendActor.GetRendererAt(0u).GetTextures().SetImage( 1u, fb2 );
335 } 335 }
336 336
337 void NewWindowController::AddTextLabel( Actor& parentActor ) 337 void NewWindowController::AddTextLabel( Actor& parentActor )
examples/point-mesh/point-mesh-example.cpp
@@ -152,18 +152,19 @@ public: @@ -152,18 +152,19 @@ public:
152 // Hide the indicator bar 152 // Hide the indicator bar
153 application.GetWindow().ShowIndicator( Dali::Window::INVISIBLE ); 153 application.GetWindow().ShowIndicator( Dali::Window::INVISIBLE );
154 154
155 - mImage = ResourceImage::New( MATERIAL_SAMPLE );  
156 - Image image = ResourceImage::New( MATERIAL_SAMPLE2 ); 155 + Image image0 = ResourceImage::New( MATERIAL_SAMPLE );
  156 + Image image1 = ResourceImage::New( MATERIAL_SAMPLE2 );
157 157
158 - mShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER ); 158 + Shader shader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER );
159 159
160 - mMaterial = Material::New( mShader );  
161 - mMaterial.AddTexture(mImage, "sTexture1");  
162 - mMaterial.AddTexture(image, "sTexture2"); 160 + TextureSet textureSet = TextureSet::New();
  161 + textureSet.SetImage( 0u, image0 );
  162 + textureSet.SetImage( 1u, image1 );
163 163
164 - mGeometry = CreateGeometry(); 164 + Geometry geometry = CreateGeometry();
165 165
166 - mRenderer = Renderer::New( mGeometry, mMaterial ); 166 + mRenderer = Renderer::New( geometry, shader );
  167 + mRenderer.SetTextures( textureSet );
167 168
168 mMeshActor = Actor::New(); 169 mMeshActor = Actor::New();
169 mMeshActor.AddRenderer( mRenderer ); 170 mMeshActor.AddRenderer( mRenderer );
@@ -219,10 +220,6 @@ private: @@ -219,10 +220,6 @@ private:
219 Application& mApplication; ///< Application instance 220 Application& mApplication; ///< Application instance
220 Vector3 mStageSize; ///< The size of the stage 221 Vector3 mStageSize; ///< The size of the stage
221 222
222 - Image mImage;  
223 - Shader mShader;  
224 - Material mMaterial;  
225 - Geometry mGeometry;  
226 Renderer mRenderer; 223 Renderer mRenderer;
227 Actor mMeshActor; 224 Actor mMeshActor;
228 Renderer mRenderer2; 225 Renderer mRenderer2;
examples/radial-menu/radial-sweep-view-impl.cpp
@@ -302,10 +302,6 @@ void RadialSweepViewImpl::Deactivate() @@ -302,10 +302,6 @@ void RadialSweepViewImpl::Deactivate()
302 { 302 {
303 mAnim.Stop(); 303 mAnim.Stop();
304 } 304 }
305 - // mLayer.Remove( mStencilActor );  
306 - // mStencilActor.Reset();  
307 - // mMesh.Reset();  
308 - // mMaterial.Reset();  
309 } 305 }
310 306
311 void RadialSweepViewImpl::CreateStencil( Radian initialSector ) 307 void RadialSweepViewImpl::CreateStencil( Radian initialSector )
@@ -344,14 +340,13 @@ void RadialSweepViewImpl::CreateStencil( Radian initialSector ) @@ -344,14 +340,13 @@ void RadialSweepViewImpl::CreateStencil( Radian initialSector )
344 meshGeometry.AddVertexBuffer( vertices ); 340 meshGeometry.AddVertexBuffer( vertices );
345 meshGeometry.SetIndexBuffer( indices ); 341 meshGeometry.SetIndexBuffer( indices );
346 342
347 - // Create material 343 + // Create shader
348 std::ostringstream vertexShaderStringStream; 344 std::ostringstream vertexShaderStringStream;
349 vertexShaderStringStream<<VERTEX_SHADER_PREFIX<<VERTEX_SHADER; 345 vertexShaderStringStream<<VERTEX_SHADER_PREFIX<<VERTEX_SHADER;
350 Shader shader = Shader::New( vertexShaderStringStream.str(), FRAGMENT_SHADER ); 346 Shader shader = Shader::New( vertexShaderStringStream.str(), FRAGMENT_SHADER );
351 - Material material = Material::New( shader );  
352 347
353 // Create renderer 348 // Create renderer
354 - Renderer renderer = Renderer::New( meshGeometry, material ); 349 + Renderer renderer = Renderer::New( meshGeometry, shader );
355 350
356 mStencilActor = Actor::New(); 351 mStencilActor = Actor::New();
357 mStencilActor.AddRenderer( renderer ); 352 mStencilActor.AddRenderer( renderer );
examples/refraction-effect/refraction-effect-example.cpp
@@ -281,10 +281,11 @@ private: @@ -281,10 +281,11 @@ private:
281 mGeometry = CreateGeometry( MESH_FILES[mCurrentMeshId] ); 281 mGeometry = CreateGeometry( MESH_FILES[mCurrentMeshId] );
282 282
283 Image texture = LoadStageFillingImage( TEXTURE_IMAGES[mCurrentTextureId] ); 283 Image texture = LoadStageFillingImage( TEXTURE_IMAGES[mCurrentTextureId] );
284 - mMaterial = Material::New( mShaderFlat );  
285 - mMaterial.AddTexture( texture, "sTexture" ); 284 + mTextureSet = TextureSet::New();
  285 + mTextureSet.SetImage( 0u, texture );
286 286
287 - mRenderer = Renderer::New( mGeometry, mMaterial ); 287 + mRenderer = Renderer::New( mGeometry, mShaderFlat );
  288 + mRenderer.SetTextures( mTextureSet );
288 289
289 mMeshActor = Actor::New(); 290 mMeshActor = Actor::New();
290 mMeshActor.AddRenderer( mRenderer ); 291 mMeshActor.AddRenderer( mRenderer );
@@ -343,7 +344,7 @@ private: @@ -343,7 +344,7 @@ private:
343 { 344 {
344 mCurrentTextureId = ( mCurrentTextureId + 1 ) % NUM_TEXTURE_IMAGES; 345 mCurrentTextureId = ( mCurrentTextureId + 1 ) % NUM_TEXTURE_IMAGES;
345 Image texture = LoadStageFillingImage( TEXTURE_IMAGES[mCurrentTextureId] ); 346 Image texture = LoadStageFillingImage( TEXTURE_IMAGES[mCurrentTextureId] );
346 - mMaterial.SetTextureImage( 0, texture ); 347 + mTextureSet.SetImage( 0u, texture );
347 return true; 348 return true;
348 } 349 }
349 350
@@ -354,7 +355,7 @@ private: @@ -354,7 +355,7 @@ private:
354 { 355 {
355 case TouchPoint::Down: 356 case TouchPoint::Down:
356 { 357 {
357 - mMaterial.SetShader( mShaderRefraction ); 358 + mRenderer.SetShader( mShaderRefraction );
358 359
359 SetLightXYOffset( point.screen ); 360 SetLightXYOffset( point.screen );
360 361
@@ -406,7 +407,7 @@ private: @@ -406,7 +407,7 @@ private:
406 407
407 void OnTouchFinished( Animation& source ) 408 void OnTouchFinished( Animation& source )
408 { 409 {
409 - mMaterial.SetShader( mShaderFlat ); 410 + mRenderer.SetShader( mShaderFlat );
410 SetLightXYOffset( Vector2::ZERO ); 411 SetLightXYOffset( Vector2::ZERO );
411 } 412 }
412 413
@@ -563,7 +564,7 @@ private: @@ -563,7 +564,7 @@ private:
563 564
564 Application& mApplication; 565 Application& mApplication;
565 Layer mContent; 566 Layer mContent;
566 - Material mMaterial; 567 + TextureSet mTextureSet;
567 Geometry mGeometry; 568 Geometry mGeometry;
568 Renderer mRenderer; 569 Renderer mRenderer;
569 Actor mMeshActor; 570 Actor mMeshActor;
examples/textured-mesh/textured-mesh-example.cpp
@@ -148,15 +148,16 @@ public: @@ -148,15 +148,16 @@ public:
148 Image image = ResourceImage::New( MATERIAL_SAMPLE2 ); 148 Image image = ResourceImage::New( MATERIAL_SAMPLE2 );
149 149
150 mShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER ); 150 mShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER );
151 - mMaterial1 = Material::New( mShader );  
152 - mMaterial1.AddTexture(mImage, "sTexture"); 151 + mTextureSet1 = TextureSet::New();
  152 + mTextureSet1.SetImage( 0u, mImage );
153 153
154 - mMaterial2 = Material::New( mShader );  
155 - mMaterial2.AddTexture(image, "sTexture"); 154 + mTextureSet2 = TextureSet::New();
  155 + mTextureSet2.SetImage( 0u, image );
156 156
157 mGeometry = CreateGeometry(); 157 mGeometry = CreateGeometry();
158 158
159 - mRenderer = Renderer::New( mGeometry, mMaterial1 ); 159 + mRenderer = Renderer::New( mGeometry, mShader );
  160 + mRenderer.SetTextures( mTextureSet1 );
160 161
161 mMeshActor = Actor::New(); 162 mMeshActor = Actor::New();
162 mMeshActor.AddRenderer( mRenderer ); 163 mMeshActor.AddRenderer( mRenderer );
@@ -169,7 +170,8 @@ public: @@ -169,7 +170,8 @@ public:
169 mMeshActor.SetAnchorPoint( AnchorPoint::TOP_CENTER ); 170 mMeshActor.SetAnchorPoint( AnchorPoint::TOP_CENTER );
170 stage.Add( mMeshActor ); 171 stage.Add( mMeshActor );
171 172
172 - mRenderer2 = Renderer::New( mGeometry, mMaterial2 ); 173 + mRenderer2 = Renderer::New( mGeometry, mShader );
  174 + mRenderer2.SetTextures( mTextureSet2 );
173 175
174 mMeshActor2 = Actor::New(); 176 mMeshActor2 = Actor::New();
175 mMeshActor2.AddRenderer( mRenderer2 ); 177 mMeshActor2.AddRenderer( mRenderer2 );
@@ -262,8 +264,8 @@ private: @@ -262,8 +264,8 @@ private:
262 264
263 Image mImage; 265 Image mImage;
264 Shader mShader; 266 Shader mShader;
265 - Material mMaterial1;  
266 - Material mMaterial2; 267 + TextureSet mTextureSet1;
  268 + TextureSet mTextureSet2;
267 Geometry mGeometry; 269 Geometry mGeometry;
268 Renderer mRenderer; 270 Renderer mRenderer;
269 Actor mMeshActor; 271 Actor mMeshActor;