X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Frendering%2Fvector-based%2Fvector-blob-atlas.cpp;h=b17400c7a911f356127fc74bca793567c12d2a83;hb=refs%2Fchanges%2F84%2F235784%2F5;hp=360cedfa7979b164768d6885d32e6e018961c424;hpb=0302e2897031cbf4ab7f15a93eb784ab85d4507d;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/text/rendering/vector-based/vector-blob-atlas.cpp b/dali-toolkit/internal/text/rendering/vector-based/vector-blob-atlas.cpp index 360cedf..b17400c 100644 --- a/dali-toolkit/internal/text/rendering/vector-based/vector-blob-atlas.cpp +++ b/dali-toolkit/internal/text/rendering/vector-based/vector-blob-atlas.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 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. @@ -75,10 +75,10 @@ VectorBlobAtlas::VectorBlobAtlas( unsigned int textureWidth, { DALI_LOG_INFO( gLogFilter, Debug::General, "Blob atlas %p size %dx%d, item width %d, height quantum %d\n", this, textureWidth, textureHeight, itemWidth, itemHeightQuantum ); - mAtlasTexture = BufferImage::New( textureWidth, textureHeight, Pixel::RGBA8888 ); + mAtlasTexture = Texture::New( TextureType::TEXTURE_2D, Pixel::RGBA8888, textureWidth, textureHeight ); mTextureSet = TextureSet::New(); - mTextureSet.SetImage( 0, mAtlasTexture ); + mTextureSet.SetTexture(0, mAtlasTexture); } bool VectorBlobAtlas::IsFull() const @@ -199,13 +199,15 @@ void VectorBlobAtlas::TexSubImage( unsigned int offsetX, unsigned int height, VectorBlob* blob ) { - PixelBuffer* pixbuf = mAtlasTexture.GetBuffer(); + const size_t size = width * height * 4; + uint8_t* pixbuf = new uint8_t[size]; + size_t pos; size_t dataIndex = 0; - for( size_t y= offsetY; y< height + offsetY; y++ ) + for( size_t y = 0; y < height; y++ ) { pos = y * mTextureWidth * 4; - for( size_t x = offsetX; x < width + offsetX; x++ ) + for( size_t x = 0; x < width; x++ ) { pixbuf[pos+x*4] = 0xFF & blob[dataIndex].r; pixbuf[pos+x*4+1] = 0xFF & blob[dataIndex].g; @@ -215,7 +217,8 @@ void VectorBlobAtlas::TexSubImage( unsigned int offsetX, } } - mAtlasTexture.Update(); + PixelData pixelData = PixelData::New(pixbuf, size, width, height, Pixel::RGBA8888, PixelData::DELETE_ARRAY); + mAtlasTexture.Upload(pixelData, 0u, 0u, offsetX, offsetY, width, height); } } // namespace Text