From: Richard Underhill Date: Tue, 23 Jun 2015 12:16:03 +0000 (+0100) Subject: Eliminate shader creation per Atlas. X-Git-Tag: dali_1.0.47~13^2~7 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=c8ed20c22ca545146be5fbde4c36b35c76daac9b Eliminate shader creation per Atlas. Change-Id: I13f2f215aa841be3b548f34d8172e4ba0e740626 Signed-off-by: Richard Underhill --- diff --git a/dali-toolkit/internal/atlas-manager/atlas-manager-impl.cpp b/dali-toolkit/internal/atlas-manager/atlas-manager-impl.cpp index 9ef43a9..15baf37 100644 --- a/dali-toolkit/internal/atlas-manager/atlas-manager-impl.cpp +++ b/dali-toolkit/internal/atlas-manager/atlas-manager-impl.cpp @@ -74,7 +74,7 @@ namespace } ); - const char* FRAGMENT_SHADER_BGRA = MAKE_SHADER( + const char* FRAGMENT_SHADER_RGBA = MAKE_SHADER( uniform sampler2D sTexture; varying mediump vec2 vTexCoord; @@ -94,6 +94,8 @@ AtlasManager::AtlasManager() mNewAtlasSize.mHeight = DEFAULT_ATLAS_HEIGHT; mNewAtlasSize.mBlockWidth = DEFAULT_BLOCK_WIDTH; mNewAtlasSize.mBlockHeight = DEFAULT_BLOCK_HEIGHT; + mShaderL8 = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER_L8 ); + mShaderRgba = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER_RGBA ); } AtlasManagerPtr AtlasManager::New() @@ -173,16 +175,7 @@ Toolkit::AtlasManager::AtlasId AtlasManager::CreateAtlas( const Toolkit::AtlasMa Sampler sampler = Sampler::New( atlas, "sTexture" ); sampler.SetProperty( Sampler::Property::AFFECTS_TRANSPARENCY, true ); - Shader shader; - if ( pixelformat == Pixel::BGRA8888 ) - { - shader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER_BGRA ); - } - else - { - shader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER_L8 ); - } - atlasDescriptor.mMaterial = Material::New( shader ); + atlasDescriptor.mMaterial = Material::New( pixelformat == Pixel::L8 ? mShaderL8 : mShaderRgba ); atlasDescriptor.mMaterial.AddSampler( sampler ); atlasDescriptor.mSampler = sampler; atlasDescriptor.mMaterial.SetBlendMode( BlendingMode::ON ); diff --git a/dali-toolkit/internal/atlas-manager/atlas-manager-impl.h b/dali-toolkit/internal/atlas-manager/atlas-manager-impl.h index a24bba0..5336e1b 100644 --- a/dali-toolkit/internal/atlas-manager/atlas-manager-impl.h +++ b/dali-toolkit/internal/atlas-manager/atlas-manager-impl.h @@ -224,6 +224,9 @@ private: void OnUpload( Image image ); + Shader mShaderL8; + Shader mShaderRgba; + }; } // namespace Internal