Learn
Download
Community
Development
Home
»
Learn
»
2.3.1 Documentation
»
Font.hpp Source File
Français
Donate
Documentation of SFML 2.3.1
Warning:
this page refers to an old version of SFML. Click here to switch to the latest version.
Main Page
Related Pages
Modules
Classes
Files
File List
SFML
include
SFML
Graphics
Font.hpp
1
//
3
// SFML - Simple and Fast Multimedia Library
4
// Copyright (C) 2007-2015 Laurent Gomila (laurent@sfml-dev.org)
5
//
6
// This software is provided 'as-is', without any express or implied warranty.
7
// In no event will the authors be held liable for any damages arising from the use of this software.
8
//
9
// Permission is granted to anyone to use this software for any purpose,
10
// including commercial applications, and to alter it and redistribute it freely,
11
// subject to the following restrictions:
12
//
13
// 1. The origin of this software must not be misrepresented;
14
// you must not claim that you wrote the original software.
15
// If you use this software in a product, an acknowledgment
16
// in the product documentation would be appreciated but is not required.
17
//
18
// 2. Altered source versions must be plainly marked as such,
19
// and must not be misrepresented as being the original software.
20
//
21
// 3. This notice may not be removed or altered from any source distribution.
22
//
24
25
#ifndef SFML_FONT_HPP
26
#define SFML_FONT_HPP
27
29
// Headers
31
#include <SFML/Graphics/Export.hpp>
32
#include <SFML/Graphics/Glyph.hpp>
33
#include <SFML/Graphics/Texture.hpp>
34
#include <SFML/Graphics/Rect.hpp>
35
#include <SFML/System/Vector2.hpp>
36
#include <SFML/System/String.hpp>
37
#include <map>
38
#include <string>
39
#include <vector>
40
41
42
namespace
sf
43
{
44
class
InputStream;
45
50
class
SFML_GRAPHICS_API
Font
51
{
52
public
:
53
58
struct
Info
59
{
60
std::string
family
;
61
};
62
63
public
:
64
71
Font
();
72
79
Font
(
const
Font
& copy);
80
87
~
Font
();
88
109
bool
loadFromFile(
const
std::string& filename);
110
130
bool
loadFromMemory(
const
void
* data, std::size_t sizeInBytes);
131
152
bool
loadFromStream(
InputStream
& stream);
153
160
const
Info
& getInfo()
const
;
161
176
const
Glyph
& getGlyph(Uint32 codePoint,
unsigned
int
characterSize,
bool
bold)
const
;
177
194
float
getKerning(Uint32 first, Uint32 second,
unsigned
int
characterSize)
const
;
195
207
float
getLineSpacing(
unsigned
int
characterSize)
const
;
208
222
float
getUnderlinePosition(
unsigned
int
characterSize)
const
;
223
236
float
getUnderlineThickness(
unsigned
int
characterSize)
const
;
237
250
const
Texture
& getTexture(
unsigned
int
characterSize)
const
;
251
260
Font
& operator =(
const
Font
& right);
261
262
private
:
263
268
struct
Row
269
{
270
Row(
unsigned
int
rowTop,
unsigned
int
rowHeight) : width(0), top(rowTop), height(rowHeight) {}
271
272
unsigned
int
width;
273
unsigned
int
top;
274
unsigned
int
height;
275
};
276
278
// Types
280
typedef
std::map<Uint32, Glyph> GlyphTable;
281
286
struct
Page
287
{
288
Page();
289
290
GlyphTable glyphs;
291
Texture texture;
292
unsigned
int
nextRow;
293
std::vector<Row> rows;
294
};
295
300
void
cleanup();
301
312
Glyph loadGlyph(Uint32 codePoint,
unsigned
int
characterSize,
bool
bold)
const
;
313
324
IntRect findGlyphRect(Page& page,
unsigned
int
width,
unsigned
int
height)
const
;
325
334
bool
setCurrentSize(
unsigned
int
characterSize)
const
;
335
337
// Types
339
typedef
std::map<unsigned int, Page> PageTable;
340
342
// Member data
344
void
* m_library;
345
void
* m_face;
346
void
* m_streamRec;
347
int
* m_refCount;
348
Info m_info;
349
mutable
PageTable m_pages;
350
mutable
std::vector<Uint8> m_pixelBuffer;
351
#ifdef SFML_SYSTEM_ANDROID
352
void
* m_stream;
353
#endif
354
};
355
356
}
// namespace sf
357
358
359
#endif // SFML_FONT_HPP
360
361
sf::Font
Class for loading and manipulating character fonts.
Definition:
Font.hpp:50
sf::Glyph
Structure describing a glyph.
Definition:
Glyph.hpp:41
sf::InputStream
Abstract class for custom file input streams.
Definition:
InputStream.hpp:41
sf
Definition:
AlResource.hpp:34
sf::Font::Info
Holds various information about a font.
Definition:
Font.hpp:58
sf::Texture
Image living on the graphics card that can be used for drawing.
Definition:
Texture.hpp:47
sf::Font::Info::family
std::string family
The font family.
Definition:
Font.hpp:60