projects
/
platform
/
core
/
uifw
/
dali-toolkit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merged with Tizen Branch ( builds )
[platform/core/uifw/dali-toolkit.git]
/
dali-toolkit
/
internal
/
atlas-manager
/
atlas-manager.h
diff --git
a/dali-toolkit/internal/atlas-manager/atlas-manager.h
b/dali-toolkit/internal/atlas-manager/atlas-manager.h
index
9263ea4
..
6f654ff
100644
(file)
--- 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 <stdint.h>
#include <dali/public-api/common/dali-vector.h>
// EXTERNAL INCLUDES
#include <stdint.h>
#include <dali/public-api/common/dali-vector.h>
-#include <dali/public-api/geometry/mesh-data.h>
#include <dali/public-api/images/atlas.h>
#include <dali/public-api/images/buffer-image.h>
#include <dali/public-api/images/atlas.h>
#include <dali/public-api/images/buffer-image.h>
+#include <dali/public-api/shader-effects/material.h>
namespace Dali
{
namespace Dali
{
@@
-160,16
+160,21
@@
public:
typedef SizeType ImageId;
static const bool MESH_OPTIMIZE = true;
typedef SizeType ImageId;
static const bool MESH_OPTIMIZE = true;
+ 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
+ };
+
/**
* Metrics structures to describe Atlas Manager state
*
*/
struct AtlasMetricsEntry
{
/**
* Metrics structures to describe Atlas Manager state
*
*/
struct AtlasMetricsEntry
{
- 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
+ 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
SizeType mBlocksUsed; // number of blocks used in the atlas
SizeType mTotalBlocks; // total blocks used by atlas
Pixel::Format mPixelFormat; // pixel format of the atlas
@@
-182,6
+187,18
@@
public:
Dali::Vector< AtlasMetricsEntry > mAtlasMetrics; // container of atlas information
};
Dali::Vector< AtlasMetricsEntry > mAtlasMetrics; // container of atlas information
};
+ struct Vertex2D
+ {
+ Vector2 mPosition;
+ Vector2 mTexCoords;
+ };
+
+ struct Mesh2D
+ {
+ Vector< Vertex2D > mVertices;
+ Vector< unsigned short> mIndices;
+ };
+
/**
* Create an AtlasManager handle; this can be initialised with AtlasManager::New()
* Calling member functions with an uninitialised handle is not allowed.
/**
* Create an AtlasManager handle; this can be initialised with AtlasManager::New()
* Calling member functions with an uninitialised handle is not allowed.
@@
-225,19
+242,12
@@
public:
/**
* @brief Create a blank atlas of specific dimensions and pixel format with a certain block size
*
/**
* @brief Create a blank atlas of specific dimensions and pixel format with a certain block size
*
- * @param[in] width desired atlas width in pixels
- * @param[in] height desired atlas height in pixels
- * @param[in] blockWidth block width to use in atlas in pixels
- * @param[in] blockHeight block height to use in atlas in pixels
+ * @param[in] size desired atlas dimensions
* @param[in] pixelformat format of a pixel in atlas
*
* @return atlas Id
*/
* @param[in] pixelformat format of a pixel in atlas
*
* @return atlas Id
*/
- AtlasId CreateAtlas( SizeType width,
- SizeType height,
- SizeType blockWidth,
- SizeType blockHeight,
- Pixel::Format pixelformat = Pixel::RGBA8888 );
+ AtlasId CreateAtlas( const AtlasSize& size, Pixel::Format pixelformat = Pixel::RGBA8888 );
/**
* @brief Set the policy on failure to add an image to an atlas
/**
* @brief Set the policy on failure to add an image to an atlas
@@
-279,7
+289,7
@@
public:
*/
void GenerateMeshData( ImageId id,
const Vector2& position,
*/
void GenerateMeshData( ImageId id,
const Vector2& position,
- Mesh
Data
& mesh );
+ Mesh
2D
& mesh );
/**
* @brief Append second mesh to the first mesh
/**
* @brief Append second mesh to the first mesh
@@
-288,8
+298,8
@@
public:
* @param[in] second Second mesh
* @param[in] optimize should we optimize vertex data
*/
* @param[in] second Second mesh
* @param[in] optimize should we optimize vertex data
*/
- void StitchMesh( Mesh
Data
& first,
- const Mesh
Data
& second,
+ void StitchMesh( Mesh
2D
& first,
+ const Mesh
2D
& second,
bool optimize = false );
/**
bool optimize = false );
/**
@@
-300,9
+310,9
@@
public:
* @param[in] optimize should we optimize vertex data
* @param[out] out resulting mesh
*/
* @param[in] optimize should we optimize vertex data
* @param[out] out resulting mesh
*/
- void StitchMesh( const Mesh
Data
& first,
- const Mesh
Data
& second,
- Mesh
Data
& out,
+ void StitchMesh( const Mesh
2D
& first,
+ const Mesh
2D
& second,
+ Mesh
2D
& out,
bool optimize = false );
/**
bool optimize = false );
/**
@@
-322,24
+332,14
@@
public:
* @return Atlas Id
*/
AtlasId GetAtlas( ImageId id );
* @return Atlas Id
*/
AtlasId GetAtlas( ImageId id );
-
- /**
- * @brief Get the size of the blocks used in an atlas
- *
- * @param[in] atlas AtlasId
- *
- * @return width and height of the blocks used
- */
- Vector2 GetBlockSize( AtlasId atlas );
-
/**
* @brief Get the current size of an atlas
*
* @param[in] atlas AtlasId
*
/**
* @brief Get the current size of an atlas
*
* @param[in] atlas AtlasId
*
- * @return
width and height of
the atlas
+ * @return
AtlasSize structure for
the atlas
*/
*/
-
Vector2
GetAtlasSize( AtlasId atlas );
+
const AtlasSize&
GetAtlasSize( AtlasId atlas );
/**
* @brief Get the number of blocks available in an atlas
/**
* @brief Get the number of blocks available in an atlas
@@
-353,12
+353,11
@@
public:
/**
* @brief Sets the pixel area of any new atlas and also the individual block size
*
/**
* @brief Sets the pixel area of any new atlas and also the individual block size
*
- * @param[in] size
pixel area of atlas
+ * @param[in] size
Atlas size structure
*
* @param blockSize pixel area in atlas for a block
*/
*
* @param blockSize pixel area in atlas for a block
*/
- void SetNewAtlasSize( const Vector2& size,
- const Vector2& blockSize );
+ void SetNewAtlasSize( const AtlasSize& size );
/**
* @brief Get the number of atlases created
/**
* @brief Get the number of atlases created
@@
-383,6
+382,15
@@
public:
*/
void GetMetrics( Metrics& metrics );
*/
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;
+
private:
explicit DALI_INTERNAL AtlasManager(Internal::AtlasManager *impl);
private:
explicit DALI_INTERNAL AtlasManager(Internal::AtlasManager *impl);