#define DALI_PIXEL_BUFFER_H
/*
- * Copyright (c) 2017 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.
#include <dali/public-api/images/pixel-data.h>
#include <dali/public-api/object/base-handle.h>
+// INTERNAL INCLUDES
+#include <dali/public-api/dali-adaptor-common.h>
+
namespace Dali
{
*
* @SINCE_1_2.46
*/
-class DALI_IMPORT_API PixelBuffer : public BaseHandle
+class DALI_ADAPTOR_API PixelBuffer : public BaseHandle
{
public:
unsigned char* GetBuffer();
/**
+ * @brief Gets the pixel buffer. This is a pointer to the internal
+ * pixel buffer.
+ *
+ * @warning If there is no pixel buffer (e.g. this object has been
+ * converted to a PixelData), this method will return NULL.
+ *
+ * @return The pixel buffer, or NULL.
+ */
+ const unsigned char* const GetBuffer() const;
+
+ /**
* @brief Gets the width of the buffer in pixels.
*
* @SINCE_1_2.46
void Resize( uint16_t width, uint16_t height );
/**
- * Returns Exif metadata as a property map
+ * @brief Returns Exif metadata as a property map
*
* @param[out] metadata Property map object to write into
* @return True on success
bool GetMetadata( Property::Map& metadata ) const;
/**
- * Multiplies the image's color values by the alpha value. This provides better
+ * @brief Multiplies the image's color values by the alpha value. This provides better
* blending capability.
*/
void MultiplyColorByAlpha();
+ /**
+ * @brief Rotates the pixel buffer by the given angle.
+ *
+ * @note Operation valid for pixel formats: A8, L8, LA88, RGB888, RGB8888, BGR8888, RGBA8888 and BGRA8888. Fails otherwise.
+ * @note The operation does nothing for angles equivalent to 0 degrees: -360, 360, 720, etc.
+ * @note If the pixel buffer does rotate, all the pointers to the internal pixel buffer retrieved by the method GetPixelBuffer() become invalid.
+ *
+ * @param[in] angle The angle in degrees.
+ *
+ * @return @e false if the rotation fails (invalid pixel format or memory issues).
+ */
+ bool Rotate( Degree angle );
+
+ /**
+ * @brief Returns pixel-buffer is premultiplied or not.
+ * @return true if alpha is pre-multiplied.
+ */
+ bool IsAlphaPreMultiplied() const;
+
public:
/**