X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fevent%2Fimages%2Fnine-patch-image-impl.cpp;h=7662edc19cd1ed95618c24f769d75e2e1d6ffb00;hb=8d71875559bace2efc28776da87812c618f0b26d;hp=e165330931c75ff63a19f075ae6350d38c8a17af;hpb=23d6d49ecdd9a6202aa0188cc98894d89a234116;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/event/images/nine-patch-image-impl.cpp b/dali/internal/event/images/nine-patch-image-impl.cpp index e165330..7662edc 100644 --- a/dali/internal/event/images/nine-patch-image-impl.cpp +++ b/dali/internal/event/images/nine-patch-image-impl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. + * Copyright (c) 2018 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. @@ -25,12 +25,9 @@ #include #include #include -#include #include -#include #include #include -#include namespace @@ -150,6 +147,15 @@ void GetRedOffsetAndMask(Dali::Pixel::Format pixelFormat, int& byteOffset, int& bitMask=0; break; } + + case Dali::Pixel::RGB16F: + case Dali::Pixel::RGB32F: + { + DALI_LOG_ERROR("Pixel format not compatible.\n"); + byteOffset=0; + bitMask=0; + break; + } } } @@ -179,18 +185,25 @@ NinePatchImage::NinePatchImage( const std::string& filename ) { mUrl = filename; ThreadLocalStorage& tls = ThreadLocalStorage::Get(); - mResourceClient = &tls.GetResourceClient(); Integration::PlatformAbstraction& platformAbstraction = tls.GetPlatformAbstraction(); Integration::BitmapResourceType resourceType; // Note, bitmap is only destroyed when the image is destroyed. - Integration::ResourcePointer resource = platformAbstraction.LoadResourceSynchronously( resourceType, filename ); + Integration::ResourcePointer resource = platformAbstraction.LoadImageSynchronously( resourceType, filename ); if( resource ) { mBitmap = static_cast( resource.Get()); + mWidth = mBitmap->GetImageWidth(); mHeight = mBitmap->GetImageHeight(); + mTexture = Texture::New( Dali::TextureType::TEXTURE_2D, mBitmap->GetPixelFormat(), mWidth, mHeight ); + + uint32_t bufferSize = mBitmap->GetBufferSize(); + uint8_t* buffer = new uint8_t[bufferSize]; + memcpy( buffer, mBitmap->GetBuffer(), bufferSize ); + PixelDataPtr pixelData = PixelData::New( buffer, bufferSize, mWidth, mHeight, mBitmap->GetPixelFormat(), Dali::PixelData::DELETE_ARRAY ); + mTexture->Upload( pixelData ); } else { @@ -256,13 +269,13 @@ Internal::BufferImagePtr NinePatchImage::CreateCroppedBufferImage() if( srcProfile ) { PixelBuffer* destPixels = cropped->GetBuffer(); - unsigned int destStride = cropped->GetBufferStride(); - unsigned int pixelWidth = GetBytesPerPixel(pixelFormat); + uint32_t destStride = cropped->GetBufferStride(); + uint32_t pixelWidth = GetBytesPerPixel(pixelFormat); PixelBuffer* srcPixels = mBitmap->GetBuffer(); - unsigned int srcStride = srcProfile->GetBufferStride(); + uint32_t srcStride = srcProfile->GetBufferStride(); - for( unsigned int row=1; row < mHeight-1; ++row ) + for( uint32_t row=1; row < mHeight-1; ++row ) { PixelBuffer* src = srcPixels + row*srcStride + pixelWidth; PixelBuffer* dest = destPixels + (row-1)*destStride; @@ -281,30 +294,6 @@ const std::string& NinePatchImage::GetUrl() const return mUrl; } -void NinePatchImage::Connect() -{ - if( !mTicket ) - { - if( mBitmap ) - { - const ImageTicketPtr& t = mResourceClient->AddBitmapImage(mBitmap.Get()); - mTicket = t.Get(); - mTicket->AddObserver(*this); - } - } - - ++mConnectionCount; -} - -void NinePatchImage::Disconnect() -{ - if( mConnectionCount > 0 ) - { - --mConnectionCount; - } -} - - void NinePatchImage::ParseBorders() { if( !mBitmap ) @@ -336,15 +325,15 @@ void NinePatchImage::ParseBorders() testValue = 0; // Black == stretch } - unsigned int pixelWidth = GetBytesPerPixel( pixelFormat ); + uint32_t pixelWidth = GetBytesPerPixel( pixelFormat ); const PixelBuffer* srcPixels = mBitmap->GetBuffer(); - unsigned int srcStride = srcProfile->GetBufferStride(); + uint32_t srcStride = srcProfile->GetBufferStride(); //TOP const PixelBuffer* top = srcPixels + pixelWidth; - unsigned int index = 0; - unsigned int width = mBitmap->GetImageWidth(); - unsigned int height = mBitmap->GetImageHeight(); + uint32_t index = 0; + uint32_t width = mBitmap->GetImageWidth(); + uint32_t height = mBitmap->GetImageHeight(); for(; index < width - 2; ) { @@ -405,9 +394,9 @@ void NinePatchImage::ParseBorders() } } -Uint16Pair NinePatchImage::ParseRange( unsigned int& index, unsigned int width, const PixelBuffer* & pixel, unsigned int pixelStride, int testByte, int testBits, int testValue ) +Uint16Pair NinePatchImage::ParseRange( uint32_t& index, uint32_t width, const PixelBuffer* & pixel, uint32_t pixelStride, int testByte, int testBits, int testValue ) { - unsigned int start = 0xFFFF; + uint32_t start = 0xFFFF; for( ; index < width; ++index, pixel += pixelStride ) { if( ( pixel[ testByte ] & testBits ) == testValue ) @@ -419,7 +408,7 @@ Uint16Pair NinePatchImage::ParseRange( unsigned int& index, unsigned int width, } } - unsigned int end = width; + uint32_t end = width; for( ; index < width; ++index, pixel += pixelStride ) { if( ( pixel[ testByte ] & testBits ) != testValue )