X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Fpublic-api%2Fimages%2Fpixel-data.h;h=70e80dada4c14d5d771cf203e5cba49c52d9cc86;hb=5de727a5d6b9ef995c93eff4d4e47a086784a332;hp=f1f49212b91913e0e8fb3f9dcf86597022bc424c;hpb=b371d834b097c58b8202b08baaf15ca9dc8d6324;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 f1f4921..70e80da 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) 2016 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. @@ -18,11 +18,19 @@ * */ +// EXTERNAL INCLUDES +#include // uint8_t, uint32_t + +// INTERNAL INCLUDES #include #include namespace Dali { +/** + * @addtogroup dali_core_images + * @{ + */ namespace Internal { @@ -36,18 +44,17 @@ class PixelData; * * @SINCE_1_1.43 */ -class DALI_IMPORT_API PixelData : public BaseHandle +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 }; /** @@ -62,14 +69,34 @@ public: * @param[in] releaseFunction The function used to release the memory * @return A handle to the PixelData */ - static PixelData New( unsigned char* buffer, - unsigned int bufferSize, - unsigned int width, - unsigned int 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. * @@ -102,12 +129,29 @@ public: PixelData& operator=(const PixelData& rhs); /** + * @brief Move constructor. + * + * @SINCE_1_9.22 + * @param[in] rhs A reference to the moved handle + */ + PixelData(PixelData&& rhs); + + /** + * @brief Move assignment operator. + * + * @SINCE_1_9.22 + * @param[in] rhs A reference to the moved handle + * @return A reference to this handle + */ + PixelData& operator=(PixelData&& rhs); + + /** * @brief Gets the width of the buffer in pixels. * * @SINCE_1_1.43 * @return The width of the buffer in pixels */ - unsigned int GetWidth() const; + uint32_t GetWidth() const; /** * @brief Gets the height of the buffer in pixels. @@ -115,7 +159,7 @@ public: * @SINCE_1_1.43 * @return The height of the buffer in pixels */ - unsigned int GetHeight() const; + uint32_t GetHeight() const; /** * @brief Gets the pixel format. @@ -125,18 +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