Merge "Disabled Atlasing for ImageVisuals to prevent bluring" into devel/master
authorAdeel Kazmi <adeel.kazmi@samsung.com>
Fri, 24 Mar 2017 18:05:30 +0000 (11:05 -0700)
committerGerrit Code Review <gerrit@review.vlan103.tizen.org>
Fri, 24 Mar 2017 18:05:30 +0000 (11:05 -0700)
1  2 
dali-toolkit/internal/visuals/image/image-visual.cpp

@@@ -31,6 -31,7 +31,7 @@@
  
  // INTERNAL HEADERS
  #include <dali-toolkit/public-api/visuals/image-visual-properties.h>
+ #include <dali-toolkit/devel-api/visuals/image-visual-properties-devel.h>
  #include <dali-toolkit/devel-api/visuals/visual-properties-devel.h>
  #include <dali-toolkit/internal/visuals/visual-string-constants.h>
  #include <dali-toolkit/internal/visuals/visual-factory-impl.h>
@@@ -58,6 -59,7 +59,7 @@@ const char * const IMAGE_SAMPLING_MODE
  const char * const IMAGE_DESIRED_WIDTH( "desiredWidth" );
  const char * const IMAGE_DESIRED_HEIGHT( "desiredHeight" );
  const char * const SYNCHRONOUS_LOADING( "synchronousLoading" );
+ const char * const IMAGE_ATLASING("atlasing");
  
  // fitting modes
  DALI_ENUM_TO_STRING_TABLE_BEGIN( FITTING_MODE )
@@@ -93,9 -95,7 +95,9 @@@ const char* DEFAULT_SAMPLER_TYPENAME = 
  
  const char* VERTEX_SHADER = DALI_COMPOSE_SHADER(
    attribute mediump vec2 aPosition;\n
 -  uniform mediump mat4 uMvpMatrix;\n
 +  uniform mediump mat4 uModelMatrix;\n
 +  uniform mediump mat4 uViewMatrix;\n
 +  uniform mediump mat4 uProjection;\n
    uniform mediump vec3 uSize;\n
    uniform mediump vec4 pixelArea;
    varying mediump vec2 vTexCoord;\n
  
    void main()\n
    {\n
 -    mediump vec4 vertexPosition = uMvpMatrix * ComputeVertexPosition();\n
 +    mediump vec4 vertexPosition = uViewMatrix * uModelMatrix * ComputeVertexPosition();\n
 +    vertexPosition.xy = floor ( vertexPosition.xy );\n // Pixel alignment
 +    vertexPosition = uProjection *  vertexPosition;\n
      vTexCoord = pixelArea.xy+pixelArea.zw*(aPosition + vec2(0.5) );\n
      gl_Position = vertexPosition;\n
    }\n
@@@ -257,7 -255,8 +259,8 @@@ ImageVisual::ImageVisual( VisualFactory
    mFittingMode( fittingMode ),
    mSamplingMode( samplingMode ),
    mWrapModeU( WrapMode::DEFAULT ),
-   mWrapModeV( WrapMode::DEFAULT )
+   mWrapModeV( WrapMode::DEFAULT ),
+   mAttemptAtlasing( false )
  {
  }
  
@@@ -272,7 -271,8 +275,8 @@@ ImageVisual::ImageVisual( VisualFactory
    mFittingMode( FittingMode::DEFAULT ),
    mSamplingMode( SamplingMode::DEFAULT ),
    mWrapModeU( WrapMode::DEFAULT ),
-   mWrapModeV( WrapMode::DEFAULT )
+   mWrapModeV( WrapMode::DEFAULT ),
+   mAttemptAtlasing( false )
  {
  }
  
@@@ -324,10 -324,14 +328,14 @@@ void ImageVisual::DoSetProperties( cons
        {
          DoSetProperty( Toolkit::ImageVisual::Property::SYNCHRONOUS_LOADING, keyValue.second );
        }
+       else if ( keyValue.first == IMAGE_ATLASING )
+       {
+         DoSetProperty( Toolkit::DevelImageVisual::Property::ATLASING, keyValue.second );
+       }
      }
    }
  
-   if( mImpl->mFlags & Impl::IS_SYNCHRONOUS_RESOURCE_LOADING && mImageUrl.IsValid() )
+   if( ( mImpl->mFlags & Impl::IS_SYNCHRONOUS_RESOURCE_LOADING ) && mImageUrl.IsValid() )
    {
      // if sync loading is required, the loading should start
      // immediately when new image url is set or the actor is off stage
@@@ -427,6 -431,12 +435,12 @@@ void ImageVisual::DoSetProperty( Proper
        mWrapModeV = Dali::WrapMode::Type( wrapMode );
        break;
      }
+     case Toolkit::DevelImageVisual::Property::ATLASING:
+     {
+       bool atlasing = false;
+       mAttemptAtlasing = value.Get( atlasing );
+     }
    }
  }
  
@@@ -632,7 -642,7 +646,7 @@@ void ImageVisual::InitializeRenderer(
      Vector4 atlasRect;
      // texture set has to be created first as we need to know if atlasing succeeded or not
      // when selecting the shader
-     TextureSet textures = CreateTextureSet( atlasRect, IsSynchronousResourceLoading(), true );
+     TextureSet textures = CreateTextureSet( atlasRect, IsSynchronousResourceLoading(), mAttemptAtlasing );
      CreateRenderer( textures );
  
      if( mImpl->mFlags & Impl::IS_ATLASING_APPLIED ) // the texture is packed inside atlas
@@@ -765,6 -775,8 +779,8 @@@ void ImageVisual::DoCreatePropertyMap( 
    map.Insert( Toolkit::ImageVisual::Property::PIXEL_AREA, mPixelArea );
    map.Insert( Toolkit::ImageVisual::Property::WRAP_MODE_U, mWrapModeU );
    map.Insert( Toolkit::ImageVisual::Property::WRAP_MODE_V, mWrapModeV );
+   map.Insert( Toolkit::DevelImageVisual::Property::ATLASING, mAttemptAtlasing );
  }
  
  void ImageVisual::DoCreateInstancePropertyMap( Property::Map& map ) const