#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.
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
};
/**
* @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.
*
* @SINCE_1_9.22
* @param[in] rhs A reference to the moved handle
*/
- PixelData( PixelData&& rhs );
+ PixelData(PixelData&& rhs) noexcept;
/**
* @brief Move assignment operator.
* @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.
*/
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