X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Frenderers%2Fimage%2Fimage-renderer.cpp;h=c2bec8574a9f62e24a6a29893a76b0d6f8c8f0c1;hp=17eae58a81fbb40caf54d04be02a14bf8f27e705;hb=a2de9cf491172cd5da9dc9ed60b17683dab6d7bc;hpb=a9e64686388c10743bf66a9c5d6e0aa06e198c70 diff --git a/dali-toolkit/internal/controls/renderers/image/image-renderer.cpp b/dali-toolkit/internal/controls/renderers/image/image-renderer.cpp index 17eae58..c2bec85 100644 --- a/dali-toolkit/internal/controls/renderers/image/image-renderer.cpp +++ b/dali-toolkit/internal/controls/renderers/image/image-renderer.cpp @@ -71,7 +71,6 @@ const char * const BOX_THEN_LINEAR("boxThenLinear"); const char * const NO_FILTER("noFilter"); const char * const DONT_CARE("dontCare"); -const std::string TEXTURE_UNIFORM_NAME = "sTexture"; const std::string ATLAS_RECT_UNIFORM_NAME = "uAtlasRect"; const std::string PIXEL_AREA_UNIFORM_NAME = "pixelArea"; @@ -359,8 +358,12 @@ Renderer ImageRenderer::CreateRenderer() const } } - Material material = Material::New( shader ); - return Renderer::New( geometry, material ); + TextureSet textureSet = TextureSet::New(); + + Renderer renderer = Renderer::New( geometry, shader ); + renderer.SetTextures( textureSet ); + + return renderer; } Renderer ImageRenderer::CreateNativeImageRenderer() const @@ -396,8 +399,11 @@ Renderer ImageRenderer::CreateNativeImageRenderer() const } } - Material material = Material::New( shader ); - return Renderer::New( geometry, material ); + TextureSet textureSet = TextureSet::New(); + Renderer renderer = Renderer::New( geometry, shader ); + renderer.SetTextures( textureSet ); + + return renderer; } void ImageRenderer::InitializeRenderer( const std::string& imageUrl ) @@ -418,11 +424,13 @@ void ImageRenderer::InitializeRenderer( const std::string& imageUrl ) if( !mImpl->mRenderer ) { Vector4 atlasRect; - Material material = mAtlasManager.Add(atlasRect, imageUrl, mDesiredSize, mFittingMode, mSamplingMode ); - if( material ) + TextureSet textureSet = mAtlasManager.Add(atlasRect, imageUrl, mDesiredSize, mFittingMode, mSamplingMode ); + if( textureSet ) { Geometry geometry = CreateGeometry( mFactoryCache, ImageDimensions( 1, 1 ) ); - mImpl->mRenderer = Renderer::New( geometry, material ); + Shader shader( GetImageShader(mFactoryCache) ); + mImpl->mRenderer = Renderer::New( geometry, shader ); + mImpl->mRenderer.SetTextures( textureSet ); mImpl->mRenderer.RegisterProperty( ATLAS_RECT_UNIFORM_NAME, atlasRect ); } else // big image, atlasing is not applied @@ -431,8 +439,8 @@ void ImageRenderer::InitializeRenderer( const std::string& imageUrl ) ResourceImage image = Dali::ResourceImage::New( imageUrl, mDesiredSize, mFittingMode, mSamplingMode ); image.LoadingFinishedSignal().Connect( this, &ImageRenderer::OnImageLoaded ); - Material material = mImpl->mRenderer.GetMaterial(); - material.AddTexture( image, TEXTURE_UNIFORM_NAME ); + TextureSet textureSet = mImpl->mRenderer.GetTextures(); + textureSet.SetImage( 0u, image ); } mFactoryCache.SaveRenderer( imageUrl, mImpl->mRenderer ); @@ -728,17 +736,10 @@ void ImageRenderer::ApplyImageToSampler( const Image& image ) { if( image ) { - Material material = mImpl->mRenderer.GetMaterial(); - if( material ) + TextureSet textureSet = mImpl->mRenderer.GetTextures(); + if( textureSet ) { - int index = material.GetTextureIndex( TEXTURE_UNIFORM_NAME ); - if( index != -1 ) - { - material.SetTextureImage( index, image ); - return; - } - - material.AddTexture( image, TEXTURE_UNIFORM_NAME ); + textureSet.SetImage( 0u, image ); } } } @@ -757,7 +758,7 @@ void ImageRenderer::OnImageLoaded( ResourceImage image ) void ImageRenderer::CleanCache(const std::string& url) { - Material material = mImpl->mRenderer.GetMaterial(); + TextureSet textureSet = mImpl->mRenderer.GetTextures(); Vector4 atlasRect( 0.f, 0.f, 1.f, 1.f ); Property::Index index = mImpl->mRenderer.GetPropertyIndex( ATLAS_RECT_UNIFORM_NAME ); @@ -770,7 +771,7 @@ void ImageRenderer::CleanCache(const std::string& url) mImpl->mRenderer.Reset(); if( mFactoryCache.CleanRendererCache( url ) && index != Property::INVALID_INDEX ) { - mAtlasManager.Remove( material, atlasRect ); + mAtlasManager.Remove( textureSet, atlasRect ); } }