*/
struct Metrics
{
- uint32_t mGlyphCount; // number of glyphs being managed
- AtlasManager::Metrics mAtlasMetrics; // metrics from the Atlas Manager
+ Metrics()
+ : mGlyphCount( 0u )
+ {}
+
+ ~Metrics()
+ {}
+
+ uint32_t mGlyphCount; ///< number of glyphs being managed
+ std::string mVerboseGlyphCounts; ///< a verbose list of the glyphs + ref counts
+ AtlasManager::Metrics mAtlasMetrics; ///< metrics from the Atlas Manager
};
/**
/**
* @brief Ask Atlas Manager to add a glyph
*
- * @param[in] fontId fontId glyph comes from
* @param[in] glyph glyph to add to an atlas
* @param[in] bitmap bitmap to use for glyph addition
* @param[out] slot information returned by atlas manager for addition
*/
- void Add( Text::FontId fontId,
- const Text::GlyphInfo& glyph,
+ void Add( const Text::GlyphInfo& glyph,
const BufferImage& bitmap,
AtlasManager::AtlasSlot& slot );
*/
void GenerateMeshData( uint32_t imageId,
const Vector2& position,
- MeshData& meshData );
+ Toolkit::AtlasManager::Mesh2D& mesh );
/**
* @brief Stitch Two Meshes together
* @param[in] first first mesh
* @param[in] second second mesh
*/
- void StitchMesh( MeshData& first,
- const MeshData& second );
+ void StitchMesh( Toolkit::AtlasManager::Mesh2D& first,
+ const Toolkit::AtlasManager::Mesh2D& second );
/**
* @brief Check to see if a glyph is being cached
Pixel::Format GetPixelFormat( uint32_t atlasId );
/**
+ * @brief Get the material used by an atlas
+ *
+ * @param[in] atlasId Id of an atlas
+ *
+ * @return The material used by the atlas
+ */
+ Material GetMaterial( uint32_t atlasId ) const;
+
+ /**
+ * @brief Get the sampler used by an atlas
+ *
+ * @param[in] atlasId Id of an atlas
+ *
+ * @return The sampler used by the atlas
+ */
+ Sampler GetSampler( uint32_t atlasId ) const;
+
+ /**
* @brief Get Glyph Manager metrics
*
* @return const reference to glyph manager metrics
const Metrics& GetMetrics();
/**
- * @brief Adjust the reference count for an imageId and remove cache entry if it becomes free
+ * @brief Adjust the reference count for glyph
+ *
+ * @param[in] fontId The font this image came from
+ * @param[in] index The index of the glyph
+ * @param[in] delta The adjustment to make to the reference count
+ */
+ void AdjustReferenceCount( Text::FontId fontId, Text::GlyphIndex index, int32_t delta );
+
+ /**
+ * @brief Get Shader used for rendering glyph effect buffers
+ *
+ * @return Handle of shader needed
+ */
+ Shader GetEffectBufferShader() const;
+
+ /**
+ * @brief Get Shader used rendering Glyph Shadows
*
- * @param[in] fontId the font this image came from
- * @param[in] imageId The imageId
- * @param[in] delta adjustment to make to reference count
+ * @return Handle of shader needed
*/
- void AdjustReferenceCount( Text::FontId fontId, uint32_t imageId, int32_t delta );
+ Shader GetGlyphShadowShader() const;
private: