Register Transform uniforms in SVG Visual & only register shader properties upon... 86/96986/2
authorAdeel Kazmi <adeel.kazmi@samsung.com>
Thu, 10 Nov 2016 17:41:07 +0000 (17:41 +0000)
committerAdeel Kazmi <adeel.kazmi@samsung.com>
Thu, 10 Nov 2016 18:04:53 +0000 (10:04 -0800)
Fixes bug where SVG visuals are not being displayed. We are using the same shaders as in ImageVisual
so need to register the same uniforms.

Additionally, Image Shader properties only need to be registered upon creation rather than every time
we get the Shader.

Change-Id: Id74630ddb8e3beb34d582336172afae82fdf6db0

dali-toolkit/internal/visuals/image/image-visual.cpp
dali-toolkit/internal/visuals/svg/svg-visual.cpp

index d4d7e19..54527de 100644 (file)
@@ -728,6 +728,7 @@ Shader ImageVisual::GetImageShader( VisualFactoryCache& factoryCache, bool atlas
       if( !shader )
       {
         shader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER_ATLAS_CLAMP );
+        shader.RegisterProperty( PIXEL_AREA_UNIFORM_NAME, FULL_TEXTURE_RECT );
         factoryCache.SaveShader( VisualFactoryCache::IMAGE_SHADER_ATLAS_DEFAULT_WRAP, shader );
       }
     }
@@ -737,6 +738,7 @@ Shader ImageVisual::GetImageShader( VisualFactoryCache& factoryCache, bool atlas
       if( !shader )
       {
         shader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER_ATLAS_VARIOUS_WRAP );
+        shader.RegisterProperty( PIXEL_AREA_UNIFORM_NAME, FULL_TEXTURE_RECT );
         factoryCache.SaveShader( VisualFactoryCache::IMAGE_SHADER_ATLAS_CUSTOM_WRAP, shader );
       }
     }
@@ -747,10 +749,11 @@ Shader ImageVisual::GetImageShader( VisualFactoryCache& factoryCache, bool atlas
     if( !shader )
     {
       shader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER_NO_ATLAS );
+      shader.RegisterProperty( PIXEL_AREA_UNIFORM_NAME, FULL_TEXTURE_RECT );
       factoryCache.SaveShader( VisualFactoryCache::IMAGE_SHADER, shader );
     }
   }
-  shader.RegisterProperty( PIXEL_AREA_UNIFORM_NAME, FULL_TEXTURE_RECT );
+
   return shader;
 }
 
index e7c7aa8..8a390d4 100644 (file)
@@ -98,6 +98,9 @@ void SvgVisual::DoSetOnStage( Actor& actor )
   mImpl->mRenderer = Renderer::New( geometry, shader );
   mImpl->mRenderer.SetTextures( textureSet );
 
+  // Register transform properties
+  mImpl->mTransform.RegisterUniforms( mImpl->mRenderer, Direction::LEFT_TO_RIGHT );
+
   if( mImpl->mSize != Vector2::ZERO && mParsedImage )
   {
     AddRasterizationTask( mImpl->mSize );
@@ -180,7 +183,6 @@ void SvgVisual::AddRasterizationTask( const Vector2& size )
   {
     unsigned int width = static_cast<unsigned int>(size.width);
     unsigned int height = static_cast<unsigned int>( size.height );
-    BufferImage image = BufferImage::New( width, height, Pixel::RGBA8888);
 
     RasterizingTaskPtr newTask = new RasterizingTask( this, mParsedImage, width, height );
     mFactoryCache.GetSVGRasterizationThread()->AddTask( newTask );