mirror of
https://github.com/SFML/SFML.git
synced 2024-11-25 12:51:05 +08:00
Added Font::getInfo to retrieve various information about the font (for now, only the family name) (#164)
This commit is contained in:
parent
6d4c844959
commit
7caf2e64b6
@ -49,6 +49,17 @@ class InputStream;
|
|||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
class SFML_GRAPHICS_API Font
|
class SFML_GRAPHICS_API Font
|
||||||
{
|
{
|
||||||
|
public :
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////
|
||||||
|
/// \brief Holds various information about a font
|
||||||
|
///
|
||||||
|
////////////////////////////////////////////////////////////
|
||||||
|
struct Info
|
||||||
|
{
|
||||||
|
std::string family; ///< The font family
|
||||||
|
};
|
||||||
|
|
||||||
public :
|
public :
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
@ -130,6 +141,14 @@ public :
|
|||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
bool loadFromStream(InputStream& stream);
|
bool loadFromStream(InputStream& stream);
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////
|
||||||
|
/// \brief Get the font information
|
||||||
|
///
|
||||||
|
/// \return A structure that holds the font information
|
||||||
|
///
|
||||||
|
////////////////////////////////////////////////////////////
|
||||||
|
const Info& getInfo() const;
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
/// \brief Retrieve a glyph of the font
|
/// \brief Retrieve a glyph of the font
|
||||||
///
|
///
|
||||||
@ -283,6 +302,7 @@ private :
|
|||||||
void* m_face; ///< Pointer to the internal font face (it is typeless to avoid exposing implementation details)
|
void* m_face; ///< Pointer to the internal font face (it is typeless to avoid exposing implementation details)
|
||||||
void* m_streamRec; ///< Pointer to the stream rec instance (it is typeless to avoid exposing implementation details)
|
void* m_streamRec; ///< Pointer to the stream rec instance (it is typeless to avoid exposing implementation details)
|
||||||
int* m_refCount; ///< Reference counter used by implicit sharing
|
int* m_refCount; ///< Reference counter used by implicit sharing
|
||||||
|
Info m_info; ///< Information about the font
|
||||||
mutable PageTable m_pages; ///< Table containing the glyphs pages by character size
|
mutable PageTable m_pages; ///< Table containing the glyphs pages by character size
|
||||||
mutable std::vector<Uint8> m_pixelBuffer; ///< Pixel buffer holding a glyph's pixels before being written to the texture
|
mutable std::vector<Uint8> m_pixelBuffer; ///< Pixel buffer holding a glyph's pixels before being written to the texture
|
||||||
};
|
};
|
||||||
|
@ -67,7 +67,8 @@ Font::Font() :
|
|||||||
m_library (NULL),
|
m_library (NULL),
|
||||||
m_face (NULL),
|
m_face (NULL),
|
||||||
m_streamRec(NULL),
|
m_streamRec(NULL),
|
||||||
m_refCount (NULL)
|
m_refCount (NULL),
|
||||||
|
m_info ()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -79,6 +80,7 @@ m_library (copy.m_library),
|
|||||||
m_face (copy.m_face),
|
m_face (copy.m_face),
|
||||||
m_streamRec (copy.m_streamRec),
|
m_streamRec (copy.m_streamRec),
|
||||||
m_refCount (copy.m_refCount),
|
m_refCount (copy.m_refCount),
|
||||||
|
m_info (copy.m_info),
|
||||||
m_pages (copy.m_pages),
|
m_pages (copy.m_pages),
|
||||||
m_pixelBuffer(copy.m_pixelBuffer)
|
m_pixelBuffer(copy.m_pixelBuffer)
|
||||||
{
|
{
|
||||||
@ -133,6 +135,9 @@ bool Font::loadFromFile(const std::string& filename)
|
|||||||
// Store the loaded font in our ugly void* :)
|
// Store the loaded font in our ugly void* :)
|
||||||
m_face = face;
|
m_face = face;
|
||||||
|
|
||||||
|
// Store the font information
|
||||||
|
m_info.family = face->family_name ? face->family_name : std::string();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -173,6 +178,9 @@ bool Font::loadFromMemory(const void* data, std::size_t sizeInBytes)
|
|||||||
// Store the loaded font in our ugly void* :)
|
// Store the loaded font in our ugly void* :)
|
||||||
m_face = face;
|
m_face = face;
|
||||||
|
|
||||||
|
// Store the font information
|
||||||
|
m_info.family = face->family_name ? face->family_name : std::string();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -233,10 +241,20 @@ bool Font::loadFromStream(InputStream& stream)
|
|||||||
m_face = face;
|
m_face = face;
|
||||||
m_streamRec = rec;
|
m_streamRec = rec;
|
||||||
|
|
||||||
|
// Store the font information
|
||||||
|
m_info.family = face->family_name ? face->family_name : std::string();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////
|
||||||
|
const Font::Info& Font::getInfo() const
|
||||||
|
{
|
||||||
|
return m_info;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
const Glyph& Font::getGlyph(Uint32 codePoint, unsigned int characterSize, bool bold) const
|
const Glyph& Font::getGlyph(Uint32 codePoint, unsigned int characterSize, bool bold) const
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user