const char* imagePath = !gNinePatch ? IMAGE_PATH[index] : NINEPATCH_IMAGE_PATH[index];
Image image = ResourceImage::New(imagePath);
- Material material = Material::New( shader );
- material.AddTexture( image, "sTexture" );
- renderers[index] = Renderer::New( QuadMesh(), material );
+ TextureSet textureSet = TextureSet::New();
+ textureSet.SetImage( 0u, image );
+ renderers[index] = Renderer::New( QuadMesh(), shader );
+ renderers[index].SetTextures( textureSet );
renderers[index].SetProperty( Renderer::Property::BLENDING_MODE, BlendingMode::OFF );
}
return renderers[index];
}
mShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER );
- mMaterial = Material::New( mShader );
mGeometry = CreateGeometry();
- mRenderer = Renderer::New( mGeometry, mMaterial );
+ mRenderer = Renderer::New( mGeometry, mShader );
mMeshActor = Actor::New();
mMeshActor.AddRenderer( mRenderer );
Vector3 mStageSize; ///< The size of the stage
Shader mShader;
- Material mMaterial;
Geometry mGeometry;
Renderer mRenderer;
Actor mMeshActor;
application.GetWindow().ShowIndicator( Dali::Window::INVISIBLE );
mShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER );
-
- mMaterial = Material::New( mShader );
mGeometry = CreateGeometry();
-
- mRenderer = Renderer::New( mGeometry, mMaterial );
+ mRenderer = Renderer::New( mGeometry, mShader );
mMeshActor = Actor::New();
mMeshActor.AddRenderer( mRenderer );
Vector3 mStageSize; ///< The size of the stage
Shader mShader;
- Material mMaterial;
Geometry mGeometry;
Renderer mRenderer;
Actor mMeshActor;
namespace
{
-const char* MATERIAL_SAMPLES[] =
+const char* IMAGES[] =
{
DEMO_IMAGE_DIR "people-medium-1.jpg",
DEMO_IMAGE_DIR "people-medium-4.jpg",
DEMO_IMAGE_DIR "people-medium-15.jpg",
DEMO_IMAGE_DIR "people-medium-6.jpg",
};
-const unsigned int NUMBER_OF_SAMPLES(sizeof(MATERIAL_SAMPLES)/sizeof(const char*));
+const unsigned int NUMBER_OF_SAMPLES(sizeof(IMAGES)/sizeof(const char*));
#define MAKE_SHADER(A)#A
mShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER );
mGeometry = CreateGeometry();
- Material firstMat;
+ TextureSet firstTextureSet;
for( unsigned i=0; i<NUMBER_OF_SAMPLES; ++i)
{
- Image image = ResourceImage::New( MATERIAL_SAMPLES[i] );
- Material material = Material::New( mShader );
- material.AddTexture(image, "sTexture");
- if( i==0 ) { firstMat = material; }
+ Image image = ResourceImage::New( IMAGES[i] );
+ TextureSet textureSet = TextureSet::New();
+ textureSet.SetImage( 0u, image );
+ if( i==0 ) { firstTextureSet = textureSet; }
- Renderer renderer = Renderer::New( mGeometry, material );
+ Renderer renderer = Renderer::New( mGeometry, mShader );
+ renderer.SetTextures( textureSet );
Actor meshActor = Actor::New();
mActors[i] = meshActor;
meshActor.AddRenderer( renderer );
stage.Add( meshActor );
}
- mActors[NUMBER_OF_SAMPLES-2].GetRendererAt(0).SetMaterial( firstMat );
+ mActors[NUMBER_OF_SAMPLES-2].GetRendererAt(0).SetTextures( firstTextureSet );
stage.GetRootLayer().TouchedSignal().Connect(this, &ExampleController::OnStageTouched);
}
//Create the shader for the metaballs
Shader shader = Shader::New( METABALL_VERTEX_SHADER, METABALL_FRAG_SHADER );
- Material material = Material::New( shader );
Geometry metaballGeom = CreateGeometry();
-
+ Renderer renderer = Renderer::New( metaballGeom, shader );
+ renderer.SetProperty( Renderer::Property::BLENDING_MODE, BlendingMode::ON );
+ renderer.SetBlendFunc(BlendingFactor::ONE, BlendingFactor::ONE, BlendingFactor::ONE, BlendingFactor::ONE);
//Initialization of each of the metaballs
for( int i = 0; i < METABALL_NUMBER; i++ )
{
mMetaballs[i].actor.SetName("Metaball");
mMetaballs[i].actor.SetScale( 1.0f );
mMetaballs[i].actor.SetParentOrigin( ParentOrigin::CENTER );
-
- Renderer renderer = Renderer::New( metaballGeom, material );
- renderer.SetProperty( Renderer::Property::BLENDING_MODE, BlendingMode::ON );
- renderer.SetBlendFunc(BlendingFactor::ONE, BlendingFactor::ONE, BlendingFactor::ONE, BlendingFactor::ONE);
-
mMetaballs[i].actor.AddRenderer( renderer );
mMetaballs[i].positionIndex = mMetaballs[i].actor.RegisterProperty( "uPositionMetaball", mMetaballs[i].position );
//Create new shader
Shader shader = Shader::New( METABALL_VERTEX_SHADER, REFRACTION_FRAG_SHADER );
- //Create new material
- Material material = Material::New( shader );
- //Add Textures
- material.AddTexture(mBackImage, "sTexture");
- material.AddTexture(fbo, "sEffect");
+ //Create new texture set
+ TextureSet textureSet = TextureSet::New();
+ textureSet.SetImage( 0u, mBackImage );
+ textureSet.SetImage( 1u, fbo );
//Create geometry
Geometry metaballGeom = CreateGeometryComposition();
- Renderer mRenderer = Renderer::New( metaballGeom, material );
+ Renderer mRenderer = Renderer::New( metaballGeom, shader );
+ mRenderer.SetTextures( textureSet );
mCompositionActor = Actor::New( );
mCompositionActor.SetParentOrigin(ParentOrigin::CENTER);
Vector2 mGravityVar;
Renderer mRendererRefraction;
- Material mMaterialRefraction;
- Material mMaterialNormal;
+ TextureSet mTextureSetRefraction;
+ Shader mShaderRefraction;
+ TextureSet mTextureSetNormal;
+ Shader mShaderNormal;
//Animations
Animation mGravityAnimation[METABALL_NUMBER];
//With MeshData Textured
float aspect = (float)mScreenSize.y / (float)mScreenSize.x;
- //Create the shader for the metaballs
-
+ //Create the renderer for the metaballs
Shader shader = Shader::New( METABALL_VERTEX_SHADER, METABALL_FRAG_SHADER );
-
- Material material = Material::New( shader );
-
Geometry metaballGeom = CreateGeometry();
+ Renderer renderer = Renderer::New( metaballGeom, shader );
+ renderer.SetProperty( Renderer::Property::BLENDING_MODE, BlendingMode::ON );
+ renderer.SetBlendFunc(BlendingFactor::ONE, BlendingFactor::ONE, BlendingFactor::ONE, BlendingFactor::ONE);
//Each metaball has a different radius
mMetaballs[0].radius = mMetaballs[0].initRadius = 0.0145f;
mMetaballs[i].actor.SetScale( 1.0f );
mMetaballs[i].actor.SetParentOrigin( ParentOrigin::CENTER );
- Renderer renderer = Renderer::New( metaballGeom, material );
- renderer.SetProperty( Renderer::Property::BLENDING_MODE, BlendingMode::ON );
- renderer.SetBlendFunc(BlendingFactor::ONE, BlendingFactor::ONE, BlendingFactor::ONE, BlendingFactor::ONE);
+
mMetaballs[i].actor.AddRenderer( renderer );
mMetaballs[i].positionIndex = mMetaballs[i].actor.RegisterProperty( "uPositionMetaball", mMetaballs[i].position );
Geometry metaballGeom = CreateGeometryComposition();
//Create Refraction shader and renderer
- Shader shader = Shader::New( METABALL_VERTEX_SHADER, REFRACTION_FRAG_SHADER );
- //Create new material
- mMaterialRefraction = Material::New( shader );
+ mShaderRefraction = Shader::New( METABALL_VERTEX_SHADER, REFRACTION_FRAG_SHADER );
- //Add Textures
- mMaterialRefraction.AddTexture(mBackImage, "sTexture");
- mMaterialRefraction.AddTexture(mMetaballFBO, "sEffect");
+ //Create new texture set
+ mTextureSetRefraction = TextureSet::New();
+ mTextureSetRefraction.SetImage( 0u, mBackImage );
+ mTextureSetRefraction.SetImage( 1u, mMetaballFBO );
//Create normal shader
- Shader shaderNormal = Shader::New( METABALL_VERTEX_SHADER, FRAG_SHADER );
- //Create new material
- mMaterialNormal = Material::New( shaderNormal );
-
- //Add samplers
- mMaterialNormal.AddTexture(mBackImage, "sTexture");
+ mShaderNormal = Shader::New( METABALL_VERTEX_SHADER, FRAG_SHADER );
+ //Create new texture set
+ mTextureSetNormal = TextureSet::New();
+ mTextureSetNormal.SetImage( 0u, mBackImage );
//Create actor
mCompositionActor = Actor::New( );
mCompositionActor.SetPosition(Vector3(0.0f, 0.0f, 0.0f));
mCompositionActor.SetSize(mScreenSize.x, mScreenSize.y);
-
- mRendererRefraction = Renderer::New( metaballGeom, mMaterialNormal );
+ mRendererRefraction = Renderer::New( metaballGeom, mShaderNormal );
+ mRendererRefraction.SetTextures( mTextureSetNormal );
mCompositionActor.AddRenderer( mRendererRefraction );
Stage stage = Stage::GetCurrent();
*/
void MetaballRefracController::ResetMetaballsState()
{
- mRendererRefraction.SetMaterial(mMaterialNormal);
+ mRendererRefraction.SetTextures(mTextureSetNormal);
+ mRendererRefraction.SetShader( mShaderNormal );
for (int i = 0 ; i < METABALL_NUMBER ; i++)
{
mRadiusVarAnimation[3].Play();
//We draw with the refraction-composition shader
- mRendererRefraction.SetMaterial(mMaterialRefraction);
-
+ mRendererRefraction.SetTextures(mTextureSetRefraction);
+ mRendererRefraction.SetShader( mShaderRefraction );
mCurrentTouchPosition = point.screen;
//we use the click position for the metaballs
// Create a coloured mesh
Shader shaderColorMesh = Shader::New( VERTEX_COLOR_MESH, FRAGMENT_COLOR_MESH );
- Material colorMeshmaterial = Material::New( shaderColorMesh );
- Renderer colorMeshRenderer = Renderer::New( meshGeometry, colorMeshmaterial );
+ Renderer colorMeshRenderer = Renderer::New( meshGeometry, shaderColorMesh );
Actor colorMeshActor = Actor::New();
colorMeshActor.AddRenderer( colorMeshRenderer );
// Create a textured mesh
Image effectImage = ResourceImage::New(EFFECT_IMAGE);
Shader shaderTextureMesh = Shader::New( VERTEX_TEXTURE_MESH, FRAGMENT_TEXTURE_MESH );
- Material textureMeshMaterial = Material::New( shaderTextureMesh );
- textureMeshMaterial.AddTexture(effectImage, "sTexture");
- Renderer textureMeshRenderer = Renderer::New( meshGeometry, textureMeshMaterial );
+ TextureSet textureSet = TextureSet::New();
+ textureSet.SetImage( 0u, effectImage );
+ Renderer textureMeshRenderer = Renderer::New( meshGeometry, shaderTextureMesh );
+ textureMeshRenderer.SetTextures( textureSet );
Actor textureMeshActor = Actor::New();
textureMeshActor.AddRenderer( textureMeshRenderer );
blendActor.SetSize(140, 140);
parentActor.Add(blendActor);
- blendActor.GetRendererAt(0u).GetMaterial().AddTexture(fb2, "sEffect");
+ blendActor.GetRendererAt(0u).GetTextures().SetImage( 1u, fb2 );
}
void NewWindowController::AddTextLabel( Actor& parentActor )
// Hide the indicator bar
application.GetWindow().ShowIndicator( Dali::Window::INVISIBLE );
- mImage = ResourceImage::New( MATERIAL_SAMPLE );
- Image image = ResourceImage::New( MATERIAL_SAMPLE2 );
+ Image image0 = ResourceImage::New( MATERIAL_SAMPLE );
+ Image image1 = ResourceImage::New( MATERIAL_SAMPLE2 );
- mShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER );
+ Shader shader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER );
- mMaterial = Material::New( mShader );
- mMaterial.AddTexture(mImage, "sTexture1");
- mMaterial.AddTexture(image, "sTexture2");
+ TextureSet textureSet = TextureSet::New();
+ textureSet.SetImage( 0u, image0 );
+ textureSet.SetImage( 1u, image1 );
- mGeometry = CreateGeometry();
+ Geometry geometry = CreateGeometry();
- mRenderer = Renderer::New( mGeometry, mMaterial );
+ mRenderer = Renderer::New( geometry, shader );
+ mRenderer.SetTextures( textureSet );
mMeshActor = Actor::New();
mMeshActor.AddRenderer( mRenderer );
Application& mApplication; ///< Application instance
Vector3 mStageSize; ///< The size of the stage
- Image mImage;
- Shader mShader;
- Material mMaterial;
- Geometry mGeometry;
Renderer mRenderer;
Actor mMeshActor;
Renderer mRenderer2;
{
mAnim.Stop();
}
- // mLayer.Remove( mStencilActor );
- // mStencilActor.Reset();
- // mMesh.Reset();
- // mMaterial.Reset();
}
void RadialSweepViewImpl::CreateStencil( Radian initialSector )
meshGeometry.AddVertexBuffer( vertices );
meshGeometry.SetIndexBuffer( indices );
- // Create material
+ // Create shader
std::ostringstream vertexShaderStringStream;
vertexShaderStringStream<<VERTEX_SHADER_PREFIX<<VERTEX_SHADER;
Shader shader = Shader::New( vertexShaderStringStream.str(), FRAGMENT_SHADER );
- Material material = Material::New( shader );
// Create renderer
- Renderer renderer = Renderer::New( meshGeometry, material );
+ Renderer renderer = Renderer::New( meshGeometry, shader );
mStencilActor = Actor::New();
mStencilActor.AddRenderer( renderer );
mGeometry = CreateGeometry( MESH_FILES[mCurrentMeshId] );
Image texture = LoadStageFillingImage( TEXTURE_IMAGES[mCurrentTextureId] );
- mMaterial = Material::New( mShaderFlat );
- mMaterial.AddTexture( texture, "sTexture" );
+ mTextureSet = TextureSet::New();
+ mTextureSet.SetImage( 0u, texture );
- mRenderer = Renderer::New( mGeometry, mMaterial );
+ mRenderer = Renderer::New( mGeometry, mShaderFlat );
+ mRenderer.SetTextures( mTextureSet );
mMeshActor = Actor::New();
mMeshActor.AddRenderer( mRenderer );
{
mCurrentTextureId = ( mCurrentTextureId + 1 ) % NUM_TEXTURE_IMAGES;
Image texture = LoadStageFillingImage( TEXTURE_IMAGES[mCurrentTextureId] );
- mMaterial.SetTextureImage( 0, texture );
+ mTextureSet.SetImage( 0u, texture );
return true;
}
{
case TouchPoint::Down:
{
- mMaterial.SetShader( mShaderRefraction );
+ mRenderer.SetShader( mShaderRefraction );
SetLightXYOffset( point.screen );
void OnTouchFinished( Animation& source )
{
- mMaterial.SetShader( mShaderFlat );
+ mRenderer.SetShader( mShaderFlat );
SetLightXYOffset( Vector2::ZERO );
}
Application& mApplication;
Layer mContent;
- Material mMaterial;
+ TextureSet mTextureSet;
Geometry mGeometry;
Renderer mRenderer;
Actor mMeshActor;
Image image = ResourceImage::New( MATERIAL_SAMPLE2 );
mShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER );
- mMaterial1 = Material::New( mShader );
- mMaterial1.AddTexture(mImage, "sTexture");
+ mTextureSet1 = TextureSet::New();
+ mTextureSet1.SetImage( 0u, mImage );
- mMaterial2 = Material::New( mShader );
- mMaterial2.AddTexture(image, "sTexture");
+ mTextureSet2 = TextureSet::New();
+ mTextureSet2.SetImage( 0u, image );
mGeometry = CreateGeometry();
- mRenderer = Renderer::New( mGeometry, mMaterial1 );
+ mRenderer = Renderer::New( mGeometry, mShader );
+ mRenderer.SetTextures( mTextureSet1 );
mMeshActor = Actor::New();
mMeshActor.AddRenderer( mRenderer );
mMeshActor.SetAnchorPoint( AnchorPoint::TOP_CENTER );
stage.Add( mMeshActor );
- mRenderer2 = Renderer::New( mGeometry, mMaterial2 );
+ mRenderer2 = Renderer::New( mGeometry, mShader );
+ mRenderer2.SetTextures( mTextureSet2 );
mMeshActor2 = Actor::New();
mMeshActor2.AddRenderer( mRenderer2 );
Image mImage;
Shader mShader;
- Material mMaterial1;
- Material mMaterial2;
+ TextureSet mTextureSet1;
+ TextureSet mTextureSet2;
Geometry mGeometry;
Renderer mRenderer;
Actor mMeshActor;