// EXTERNAL INCLUDES
#include <stdint.h>
#include <dali/public-api/common/dali-vector.h>
-#include <dali/devel-api/images/atlas.h>
#include <dali/public-api/images/buffer-image.h>
-#include <dali/public-api/shader-effects/material.h>
+#include <dali/devel-api/images/atlas.h>
+#include <dali/devel-api/rendering/material.h>
namespace Dali
{
struct AtlasSize
{
- SizeType mWidth; // width of the atlas in pixels
- SizeType mHeight; // height of the atlas in pixels
- SizeType mBlockWidth; // width of a block in pixels
- SizeType mBlockHeight; // height of a block in pixels
+ SizeType mWidth; ///< width of the atlas in pixels
+ SizeType mHeight; ///< height of the atlas in pixels
+ SizeType mBlockWidth; ///< width of a block in pixels
+ SizeType mBlockHeight; ///< height of a block in pixels
};
/**
*/
struct AtlasMetricsEntry
{
- AtlasSize mSize; // size of atlas and blocks
- SizeType mBlocksUsed; // number of blocks used in the atlas
- SizeType mTotalBlocks; // total blocks used by atlas
- Pixel::Format mPixelFormat; // pixel format of the atlas
+ AtlasSize mSize; ///< size of atlas and blocks
+ SizeType mBlocksUsed; ///< number of blocks used in the atlas
+ SizeType mTotalBlocks; ///< total blocks used by atlas
+ Pixel::Format mPixelFormat; ///< pixel format of the atlas
};
struct Metrics
{
- SizeType mAtlasCount; // number of atlases
- SizeType mTextureMemoryUsed; // texture memory used by atlases
- Dali::Vector< AtlasMetricsEntry > mAtlasMetrics; // container of atlas information
+ Metrics()
+ : mAtlasCount( 0u ),
+ mTextureMemoryUsed( 0u )
+ {}
+
+ ~Metrics()
+ {}
+
+ SizeType mAtlasCount; ///< number of atlases
+ SizeType mTextureMemoryUsed; ///< texture memory used by atlases
+ Dali::Vector< AtlasMetricsEntry > mAtlasMetrics; ///< container of atlas information
};
struct Vertex2D
*/
struct AtlasSlot
{
- ImageId mImageId; // Id of stored Image
- AtlasId mAtlasId; // Id of Atlas containing this slot
+ ImageId mImageId; ///< Id of stored Image
+ AtlasId mAtlasId; ///< Id of Atlas containing this slot
};
typedef Dali::Vector< AtlasManager::AtlasSlot > slotContainer;
* @param[in] id Image Id returned in the AtlasSlot from the add operation
* @param[in] position position of the resulting mesh in model space
* @param[out] mesh Mesh Data Object to populate with mesh data
+ * @param[in] addReference Whether to increase the internal reference count for image or not
*/
void GenerateMeshData( ImageId id,
const Vector2& position,
- Mesh2D& mesh );
+ Mesh2D& mesh,
+ bool addReference = true );
/**
* @brief Append second mesh to the first mesh