X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fatlas-manager%2Fatlas-manager.h;h=6d4141977edb9aeeb71d188139431f795f565cd2;hp=5fc10d015b2b9a206c33cc14ed7f64665ce278dd;hb=6861f629112d44d4de1a8a7c70591e2279b951b2;hpb=7e85bd91f75df91102fa1cb39d7e4d5f4b3df61a diff --git a/dali-toolkit/internal/atlas-manager/atlas-manager.h b/dali-toolkit/internal/atlas-manager/atlas-manager.h index 5fc10d0..6d41419 100644 --- a/dali-toolkit/internal/atlas-manager/atlas-manager.h +++ b/dali-toolkit/internal/atlas-manager/atlas-manager.h @@ -20,9 +20,9 @@ // EXTERNAL INCLUDES #include #include -#include -#include #include +#include +#include namespace Dali { @@ -162,10 +162,10 @@ public: 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 }; /** @@ -174,17 +174,37 @@ public: */ 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 + { + Vector2 mPosition; + Vector2 mTexCoords; + }; + + struct Mesh2D + { + Vector< Vertex2D > mVertices; + Vector< unsigned int> mIndices; }; /** @@ -221,8 +241,8 @@ public: */ 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; @@ -274,10 +294,12 @@ public: * @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, - MeshData& mesh ); + Mesh2D& mesh, + bool addReference = true ); /** * @brief Append second mesh to the first mesh @@ -286,21 +308,8 @@ public: * @param[in] second Second mesh * @param[in] optimize should we optimize vertex data */ - void StitchMesh( MeshData& first, - const MeshData& second, - bool optimize = false ); - - /** - * @brief Combine two meshes, outputting the result into a new mesh - * - * @param[in] first First mesh - * @param[in] second Second mesh - * @param[in] optimize should we optimize vertex data - * @param[out] out resulting mesh - */ - void StitchMesh( const MeshData& first, - const MeshData& second, - MeshData& out, + void StitchMesh( Mesh2D& first, + const Mesh2D& second, bool optimize = false ); /** @@ -370,6 +379,23 @@ public: */ void GetMetrics( Metrics& metrics ); + /** + * @brief Get Material used by atlas + * + * @param atlas[in] atlas AtlasId + * + * @return Material used by atlas + */ + Material GetMaterial( AtlasId atlas ) const; + + /** + * @brief Get Image used by atlas + * + * @param atlas[in] atlas AtlasId + * + * @return Sampler used by atlas + */ + Image GetImage( AtlasId atlas ) const; private: explicit DALI_INTERNAL AtlasManager(Internal::AtlasManager *impl); @@ -380,4 +406,4 @@ private: } // namespace Dali -#endif // __DALI_TOOLKIT_ATLAS_MANAGER_H__ \ No newline at end of file +#endif // __DALI_TOOLKIT_ATLAS_MANAGER_H__