From: Tom Robinson Date: Fri, 8 Jul 2016 14:27:38 +0000 (+0100) Subject: Updated Gradient renderer to use SetTexture X-Git-Tag: dali_1.1.43~12^2 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=36ac338ff7e9c299ce45818d77aa8f71c63a45aa Updated Gradient renderer to use SetTexture Change-Id: Idefa4088fa1d008768fb9bce30139b30d5fb8c9c --- diff --git a/dali-toolkit/internal/controls/renderers/gradient/gradient-renderer.cpp b/dali-toolkit/internal/controls/renderers/gradient/gradient-renderer.cpp index 637dd6b..f64ad61 100644 --- a/dali-toolkit/internal/controls/renderers/gradient/gradient-renderer.cpp +++ b/dali-toolkit/internal/controls/renderers/gradient/gradient-renderer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2016 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -326,8 +326,8 @@ void GradientRenderer::InitializeRenderer() //Set up the texture set TextureSet textureSet = TextureSet::New(); - Dali::BufferImage lookupTexture = mGradient->GenerateLookupTexture(); - textureSet.SetImage( 0u, lookupTexture ); + Dali::Texture lookupTexture = mGradient->GenerateLookupTexture(); + textureSet.SetTexture( 0u, lookupTexture ); Dali::WrapMode::Type wrap = GetWrapMode( mGradient->GetSpreadMethod() ); Sampler sampler = Sampler::New(); sampler.SetWrapMode( wrap, wrap ); diff --git a/dali-toolkit/internal/controls/renderers/gradient/gradient.cpp b/dali-toolkit/internal/controls/renderers/gradient/gradient.cpp index d87d132..e070754 100644 --- a/dali-toolkit/internal/controls/renderers/gradient/gradient.cpp +++ b/dali-toolkit/internal/controls/renderers/gradient/gradient.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2016 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -88,7 +88,7 @@ const Matrix3& Gradient::GetAlignmentTransform() const * If the stops have not covered the whole zero to one range, * the REPEAT spread behaves different from the two others in the lookup texture generation. */ -BufferImage Gradient::GenerateLookupTexture() +Dali::Texture Gradient::GenerateLookupTexture() { std::sort( mGradientStops.Begin(), mGradientStops.End() ); @@ -133,8 +133,11 @@ BufferImage Gradient::GenerateLookupTexture() * Generate the pixels with the color transit from one stop to next. */ unsigned int resolution = EstimateTextureResolution(); - BufferImage texture = BufferImage::New( resolution, 1 ); - PixelBuffer* pixels = texture.GetBuffer(); + + unsigned int bufferSize = resolution * 4u; + unsigned char* pixels = new unsigned char[ bufferSize ]; + PixelData pixelData = PixelData::New( pixels, bufferSize, resolution, 1u, Pixel::RGBA8888, PixelData::DELETE_ARRAY ); + int segmentStart = 0; int segmentEnd = 0; int k = 0; @@ -161,6 +164,9 @@ BufferImage Gradient::GenerateLookupTexture() segmentStart = segmentEnd; } + Texture texture = Texture::New( TextureType::TEXTURE_2D, Pixel::RGBA8888, resolution, 1u ); + texture.Upload( pixelData ); + // remove the stops added temporarily for generating the pixels, as the spread method might get changed later if( tempLastStop ) { diff --git a/dali-toolkit/internal/controls/renderers/gradient/gradient.h b/dali-toolkit/internal/controls/renderers/gradient/gradient.h index 36e6ee4..64fd6b5 100644 --- a/dali-toolkit/internal/controls/renderers/gradient/gradient.h +++ b/dali-toolkit/internal/controls/renderers/gradient/gradient.h @@ -2,7 +2,7 @@ #define __DALI_TOOLKIT_INTERNAL_GRADIENT_H__ /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2016 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,6 +23,7 @@ #include #include #include +#include namespace Dali { @@ -130,9 +131,9 @@ public: /** * Generate the lookup texture with the gradient stops. - * @return the lookup texture which transit smoothly between stops. + * @return The lookup texture which transit smoothly between stops. */ - BufferImage GenerateLookupTexture(); + Dali::Texture GenerateLookupTexture(); private: