Merge "Ensure BaseHandle class move noexcept (core public-api)" into devel/master
[platform/core/uifw/dali-core.git] / dali / public-api / images / pixel-data.h
index 03fefc6..0fb96db 100644 (file)
@@ -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.
@@ -77,6 +77,26 @@ public:
                        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.
    *
@@ -114,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.
@@ -123,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.
@@ -149,6 +169,19 @@ public:
    */
   Pixel::Format GetPixelFormat() const;
 
+  /**
+   * @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.
@@ -162,6 +195,6 @@ public:
 /**
  * @}
  */
-} //namespace Dali
+} // namespace Dali
 
 #endif // DALI_PIXEL_DATA_H