X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Fpublic-api%2Fimages%2Fbuffer-image.h;h=c2fad520599a292925576d207de0ac9cafbf28df;hb=72a164cbdc5629c7fc137bf2986b948bd7552cc1;hp=0add3d2b421dbd57bd9a718fa23e8491aca1474d;hpb=4bd2fbea750e7dc85627868d8d276cc416b01b5a;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/public-api/images/buffer-image.h b/dali/public-api/images/buffer-image.h index 0add3d2..c2fad52 100644 --- a/dali/public-api/images/buffer-image.h +++ b/dali/public-api/images/buffer-image.h @@ -35,18 +35,20 @@ namespace Internal DALI_INTERNAL class BufferImage; } -typedef unsigned char PixelBuffer; ///< pixel data buffer -typedef Rect RectArea; ///< rectangular area (x,y,w,h) +typedef unsigned char PixelBuffer; ///< pixel data buffer @SINCE_1_0.0 +typedef Rect RectArea; ///< rectangular area (x,y,w,h) @SINCE_1_0.0 /** - * @brief BufferImage represents an image resource as a pixel data buffer + * @brief BufferImage represents an image resource as a pixel data buffer. + * * Its pixel buffer data is provided by the application developer. * * If the pixel format of the pixel buffer contains an alpha channel, * then the image is considered to be have transparent pixels without * regard for the actual content of the channel, and will be blended. * + * @SINCE_1_0.0 */ class DALI_IMPORT_API BufferImage : public Image { @@ -54,71 +56,52 @@ public: /** * @brief Constructor which creates an uninitialized BufferImage object. * - * Use BufferImage::New(...) to create an initialised object. + * Use BufferImage::New(...) to create an initialized object. + * @SINCE_1_0.0 */ BufferImage(); /** - * @brief Create a new BufferImage. + * @brief Creates a new BufferImage. * * Also a pixel buffer for image data is allocated. * Dali has ownership of the buffer. * For better performance and portability use power of two dimensions. * The maximum size of the image is limited by GL_MAX_TEXTURE_SIZE. - * @note: default resource management policies are Immediate and Never - * + * @SINCE_1_0.0 + * @param[in] width Image width in pixels + * @param[in] height Image height in pixels + * @param[in] pixelformat The pixel format (rgba 32 bit by default) + * @return A handle to a new instance of BufferImage * @pre width & height are greater than zero - * @param [in] width image width in pixels - * @param [in] height image height in pixels - * @param [in] pixelformat the pixel format (rgba 32 bit by default) - * @return a handle to a new instance of BufferImage + * @note default resource management policies are Immediate and Never + * */ static BufferImage New(unsigned int width, unsigned int height, Pixel::Format pixelformat=Pixel::RGBA8888); /** - * @brief Create a new BufferImage. - * - * @deprecated DALi 1.1.3, use New( unsigned int width, unsigned int height ) instead. - * - * Also a pixel buffer for image data is allocated. - * Dali has ownership of the buffer. - * For better performance and portability use power of two dimensions. - * The maximum size of the image is limited by GL_MAX_TEXTURE_SIZE. - * - * @pre width & height are greater than zero - * @param [in] width Image width in pixels - * @param [in] height Image height in pixels - * @param [in] pixelFormat The pixel format - * @param [in] releasePolicy Optionally release memory when image is not visible on screen. - * @return a handle to a new instance of BufferImage - */ - static BufferImage New(unsigned int width, - unsigned int height, - Pixel::Format pixelFormat, - ReleasePolicy releasePolicy); - - /** - * @brief Create a new BufferImage, which uses an external data source. + * @brief Creates a new BufferImage, which uses an external data source. * * The PixelBuffer has to be allocated by application. * * The application holds ownership of the buffer. It must not * destroy the PixelBuffer on a staged image if it has called - * Update() and hasn't received a SignalUploaded, or if it has just - * added it to the stage and has not received a SignalUploaded. + * Update() and hasn't received a Image::UploadedSignal, or if it has just + * added it to the stage and has not received a Image::UploadedSignal. * * For better performance and portability use power of two dimensions. * The maximum size of the image is limited by GL_MAX_TEXTURE_SIZE. * + * @SINCE_1_0.0 + * @param[in] pixelBuffer Pixel buffer has to be allocated by application + * @param[in] width Image width in pixels + * @param[in] height Image height in pixels + * @param[in] pixelFormat The pixel format (rgba 32 bit by default) + * @param[in] stride The internal stride of the pixelbuffer in pixels + * @return A handle to a new instance of BufferImage * @pre width & height are greater than zero - * @param [in] pixelBuffer pixel buffer. has to be allocated by application. - * @param [in] width image width in pixels - * @param [in] height image height in pixels - * @param [in] pixelFormat the pixel format (rgba 32 bit by default) - * @param [in] stride the internal stride of the pixelbuffer in pixels - * @return a handle to a new instance of BufferImage */ static BufferImage New(PixelBuffer* pixelBuffer, unsigned int width, @@ -127,68 +110,38 @@ public: unsigned int stride=0); /** - * @brief Create a new BufferImage, which uses an external data source. - * - * @deprecated DALi 1.1.3, use New( PixelBuffer* pixelBuffer, unsigned int width, unsigned int height ) instead. - * - * The PixelBuffer has to be allocated by application. - * - * The application holds ownership of the buffer. It must not - * destroy the PixelBuffer on a staged image if it has called - * Update() and hasn't received a SignalUploaded, or if it has just - * added it to the stage and has not received a SignalUploaded. - * - * For better performance and portability use power of two dimensions. - * The maximum size of the image is limited by GL_MAX_TEXTURE_SIZE. - * - * @note in case releasePolicy is "Unused", application has to call - * BufferImage::Update() whenever image is re-added to the stage - * - * @pre width & height are greater than zero - * @param [in] pixelBuffer pixel buffer. has to be allocated by application. - * @param [in] width image width in pixels - * @param [in] height image height in pixels - * @param [in] pixelFormat the pixel format - * @param [in] stride the internal stride of the pixelbuffer in pixels - * @param [in] releasePolicy optionally relase memory when image is not visible on screen. - * @return a handle to a new instance of BufferImage - */ - static BufferImage New(PixelBuffer* pixelBuffer, - unsigned int width, - unsigned int height, - Pixel::Format pixelFormat, - unsigned int stride, - ReleasePolicy releasePolicy); - - /** - * @brief Downcast an Object handle to BufferImage. + * @brief Downcasts a handle to BufferImage handle. * - * If handle points to a BufferImage the downcast produces valid - * handle. If not the returned handle is left uninitialized. + * If the handle points to a BufferImage, the downcast produces valid handle. + * If not, the returned handle is left uninitialized. * - * @param[in] handle to An object - * @return handle to a BufferImage or an uninitialized handle + * @SINCE_1_0.0 + * @param[in] handle Handle to an object + * @return Handle to a BufferImage or an uninitialized handle */ static BufferImage DownCast( BaseHandle handle ); /** - * @brief Destructor + * @brief Destructor. * * This is non-virtual since derived Handle types must not contain data or virtual methods. + * @SINCE_1_0.0 */ ~BufferImage(); /** * @brief This copy constructor is required for (smart) pointer semantics. * - * @param [in] handle A reference to the copied handle + * @SINCE_1_0.0 + * @param[in] handle A reference to the copied handle */ BufferImage(const BufferImage& handle); /** * @brief This assignment operator is required for (smart) pointer semantics. * - * @param [in] rhs A reference to the copied handle + * @SINCE_1_0.0 + * @param[in] rhs A reference to the copied handle * @return A reference to this */ BufferImage& operator=(const BufferImage& rhs); @@ -197,6 +150,7 @@ public: * @brief White pixel as image data. * * Can be used to create solid color actors. + * @SINCE_1_0.0 * @return 1 white pixel with 32 bit colordepth */ static const BufferImage WHITE(); @@ -209,54 +163,59 @@ public: * * Whilst the image is on stage, after writing to the buffer the * application should call Update() and wait for the - * SignalUploaded() method before writing again. + * Image::UploadedSignal() method before writing again. * - * @return the pixel buffer + * @SINCE_1_0.0 + * @return The pixel buffer */ PixelBuffer* GetBuffer(); /** * @brief Returns buffer size in bytes. * - * @return the buffer size in bytes + * @SINCE_1_0.0 + * @return The buffer size in bytes */ unsigned int GetBufferSize() const; /** * @brief Returns buffer stride (in bytes). * - * @return the buffer stride + * @SINCE_1_0.0 + * @return The buffer stride */ unsigned int GetBufferStride() const; /** * @brief Returns the pixel format of the contained buffer * - * @return the pixel format + * @SINCE_1_0.0 + * @return The pixel format */ Pixel::Format GetPixelFormat() const; /** * @brief Inform Dali that the contents of the buffer have changed. * - * SignalUploaded will be sent in response if the image is on stage + * Image::UploadedSignal will be sent in response if the image is on stage * and the image data has been successfully copied to graphics * memory. To avoid visual tearing, the application should wait for - * the SignalUploaded before modifying the data. + * the Image::UploadedSignal before modifying the data. * * The application must not destroy an external PixelBuffer on a staged - * image after calling this method until the SignalUploaded has been + * image after calling this method until the Image::UploadedSignal has been * successfully received. * - * @note: BufferImage::Update might not work with BGR/BGRA formats! - * @note: Some GPUs may not support Non power of two buffer updates (for + * @SINCE_1_0.0 + * @note BufferImage::Update might not work with BGR/BGRA formats! + * @note Some GPUs may not support Non power of two buffer updates (for * example C110/SGX540) */ void Update(); /** * @copydoc Update() - * @param [in] updateArea area that has changed in buffer + * @param[in] updateArea Area that has changed in buffer */ void Update( RectArea updateArea ); @@ -267,9 +226,10 @@ public: * is responsible for freeing it. * * The application must not destroy an external PixelBuffer on a staged image - * if it has called Update() and hasn't received a SignalUploaded. + * if it has called Update() and hasn't received a Image::UploadedSignal. * - * @return true if application owns data, false otherwise + * @SINCE_1_0.0 + * @return @c true if application owns data, @c false otherwise */ bool IsDataExternal() const;