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