JUCE-7.0.12-0-g4f43011b96 JUCE-7.0.12-0-g4f43011b96
JUCE — C++ application framework with suport for VST, VST3, LV2 audio plug-ins

« « « Anklang Documentation
Loading...
Searching...
No Matches
juce_CustomTypeface.h
Go to the documentation of this file.
1 /*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 By using JUCE, you agree to the terms of both the JUCE 7 End-User License
11 Agreement and JUCE Privacy Policy.
12
13 End User License Agreement: www.juce.com/juce-7-licence
14 Privacy Policy: www.juce.com/juce-privacy-policy
15
16 Or: You may also use this code under the terms of the GPL v3 (see
17 www.gnu.org/licenses).
18
19 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
20 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
21 DISCLAIMED.
22
23 ==============================================================================
24*/
25
26namespace juce
27{
28
29//==============================================================================
48class JUCE_API CustomTypeface : public Typeface
49{
50public:
51 //==============================================================================
54
64 explicit CustomTypeface (InputStream& serialisedTypefaceStream);
65
67 ~CustomTypeface() override;
68
69 //==============================================================================
71 void clear();
72
83 void setCharacteristics (const String& fontFamily, float ascent,
84 bool isBold, bool isItalic,
85 juce_wchar defaultCharacter) noexcept;
86
96 void setCharacteristics (const String& fontFamily, const String& fontStyle,
97 float ascent, juce_wchar defaultCharacter) noexcept;
98
107 void addGlyph (juce_wchar character, const Path& path, float width) noexcept;
108
112 void addKerningPair (juce_wchar char1, juce_wchar char2, float extraAmount) noexcept;
113
118 void addGlyphsFromOtherTypeface (Typeface& typefaceToCopy, juce_wchar characterStartIndex, int numCharacters) noexcept;
119
128 bool writeToStream (OutputStream& outputStream);
129
130 //==============================================================================
131 // The following methods implement the basic Typeface behaviour.
132 float getAscent() const override;
133 float getDescent() const override;
134 float getHeightToPointsFactor() const override;
135 float getStringWidth (const String&) override;
136 void getGlyphPositions (const String&, Array<int>& glyphs, Array<float>& xOffsets) override;
137 bool getOutlineForGlyph (int glyphNumber, Path&) override;
138 EdgeTable* getEdgeTableForGlyph (int glyphNumber, const AffineTransform&, float fontHeight) override;
139
140protected:
141 //==============================================================================
142 juce_wchar defaultCharacter;
143 float ascent;
144
145 //==============================================================================
152 virtual bool loadGlyphIfPossible (juce_wchar characterNeeded);
153
154private:
155 //==============================================================================
156 class GlyphInfo;
158 short lookupTable[128];
159
160 GlyphInfo* findGlyph (juce_wchar character, bool loadIfNeeded) noexcept;
161
163};
164
165} // namespace juce
Represents a 2D affine-transformation matrix.
Holds a resizable array of primitive or copy-by-value objects.
Definition juce_Array.h:56
A typeface that can be populated with custom glyphs.
A table of horizontal scan-line segments - used for rasterising Paths.
The base class for streams that read data.
The base class for streams that write data to some kind of destination.
An array designed for holding objects.
A path is a sequence of lines and curves that may either form a closed shape or be open-ended.
Definition juce_Path.h:65
The JUCE String class!
Definition juce_String.h:53
A typeface represents a size-independent font.
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
This is a shorthand way of writing both a JUCE_DECLARE_NON_COPYABLE and JUCE_LEAK_DETECTOR macro for ...
JUCE Namespace.
wchar_t juce_wchar
A platform-independent 32-bit unicode character type.