X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Fpublic-api%2Fimages%2Fpixel-data.h;h=0fb96db6a75e7b851b16d3375a43073f0c9dbff3;hb=0b501ba800a263b97d99adf224fc42d0c2aa8b37;hp=82401e87f9997f310bf48f361009091d6305f755;hpb=b321cf7d4fe1e418f322ab5fd11709ad4767c83d;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/public-api/images/pixel-data.h b/dali/public-api/images/pixel-data.h index 82401e8..0fb96db 100644 --- a/dali/public-api/images/pixel-data.h +++ b/dali/public-api/images/pixel-data.h @@ -2,7 +2,7 @@ #define DALI_PIXEL_DATA_H /* - * Copyright (c) 2020 Samsung Electronics Co., Ltd. + * Copyright (c) 2022 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. @@ -47,15 +47,14 @@ class PixelData; class DALI_CORE_API PixelData : public BaseHandle { public: - /** * @brief Enumeration for Function to release the pixel buffer. * @SINCE_1_1.43 */ enum ReleaseFunction { - FREE, ///< Use free function to release the pixel buffer @SINCE_1_1.43 - DELETE_ARRAY, ///< Use delete[] operator to release the pixel buffer @SINCE_1_1.43 + FREE, ///< Use free function to release the pixel buffer @SINCE_1_1.43 + DELETE_ARRAY, ///< Use delete[] operator to release the pixel buffer @SINCE_1_1.43 }; /** @@ -70,14 +69,34 @@ public: * @param[in] releaseFunction The function used to release the memory * @return A handle to the PixelData */ - static PixelData New( uint8_t* buffer, - uint32_t bufferSize, - uint32_t width, - uint32_t height, - Pixel::Format pixelFormat, - ReleaseFunction releaseFunction); + static PixelData New(uint8_t* buffer, + uint32_t bufferSize, + uint32_t width, + uint32_t height, + Pixel::Format pixelFormat, + ReleaseFunction releaseFunction); /** + * @brief Creates a PixelData object. + * + * @SINCE_2_1.10 + * @param[in] buffer The raw pixel data + * @param[in] bufferSize The size of the buffer in bytes + * @param[in] width Buffer width in pixels + * @param[in] height Buffer height in pixels + * @param[in] stride Buffer stride in pixels, 0 means the buffer is tightly packed + * @param[in] pixelFormat The pixel format + * @param[in] releaseFunction The function used to release the memory + * @return A handle to the PixelData + */ + static PixelData New(uint8_t* buffer, + uint32_t bufferSize, + uint32_t width, + uint32_t height, + uint32_t stride, + Pixel::Format pixelFormat, + ReleaseFunction releaseFunction); + /** * @brief Creates an empty handle. * Use PixelData::New() to create an initialized object. * @@ -115,7 +134,7 @@ public: * @SINCE_1_9.22 * @param[in] rhs A reference to the moved handle */ - PixelData( PixelData&& rhs ); + PixelData(PixelData&& rhs) noexcept; /** * @brief Move assignment operator. @@ -124,7 +143,7 @@ public: * @param[in] rhs A reference to the moved handle * @return A reference to this handle */ - PixelData& operator=( PixelData&& rhs ); + PixelData& operator=(PixelData&& rhs) noexcept; /** * @brief Gets the width of the buffer in pixels. @@ -150,20 +169,32 @@ public: */ Pixel::Format GetPixelFormat() const; -public: + /** + * @brief Gets the stride of the buffer in pixels. + * + * @SINCE_2_1.10 + * @return The stride of the buffer in pixels. 0 means the buffer is tightly packed. + */ + uint32_t GetStride() const; /** + * Class method to get the total currently allocated size of pixel buffers + */ + static uint32_t GetTotalAllocatedSize(); + +public: + /** * @brief The constructor. * @note Not intended for application developers. * @SINCE_1_1.43 * @param[in] pointer A pointer to a newly allocated PixelData */ - explicit DALI_INTERNAL PixelData( Internal::PixelData* pointer ); + explicit DALI_INTERNAL PixelData(Internal::PixelData* pointer); }; /** * @} */ -} //namespace Dali +} // namespace Dali #endif // DALI_PIXEL_DATA_H