LMMS
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//==============================================================================
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,
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 //==============================================================================
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 (const juce_wchar character, bool loadIfNeeded) noexcept;
161
163};
164
165} // namespace juce
Definition juce_AffineTransform.h:43
Definition juce_Array.h:56
Definition juce_CustomTypeface.cpp:30
GlyphInfo * findGlyph(const juce_wchar character, bool loadIfNeeded) noexcept
Definition juce_CustomTypeface.cpp:201
void clear()
Definition juce_CustomTypeface.cpp:152
float ascent
Definition juce_CustomTypeface.h:143
float getHeightToPointsFactor() const override
Definition juce_CustomTypeface.cpp:298
juce_wchar defaultCharacter
Definition juce_CustomTypeface.h:142
CustomTypeface()
Definition juce_CustomTypeface.cpp:101
float getAscent() const override
Definition juce_CustomTypeface.cpp:296
float getDescent() const override
Definition juce_CustomTypeface.cpp:297
virtual bool loadGlyphIfPossible(juce_wchar characterNeeded)
Definition juce_CustomTypeface.cpp:216
void addKerningPair(juce_wchar char1, juce_wchar char2, float extraAmount) noexcept
Definition juce_CustomTypeface.cpp:190
void addGlyphsFromOtherTypeface(Typeface &typefaceToCopy, juce_wchar characterStartIndex, int numCharacters) noexcept
Definition juce_CustomTypeface.cpp:221
void setCharacteristics(const String &fontFamily, float ascent, bool isBold, bool isItalic, juce_wchar defaultCharacter) noexcept
Definition juce_CustomTypeface.cpp:161
OwnedArray< GlyphInfo > glyphs
Definition juce_CustomTypeface.h:157
void getGlyphPositions(const String &, Array< int > &glyphs, Array< float > &xOffsets) override
Definition juce_CustomTypeface.cpp:323
float getStringWidth(const String &) override
Definition juce_CustomTypeface.cpp:300
bool getOutlineForGlyph(int glyphNumber, Path &) override
Definition juce_CustomTypeface.cpp:364
short lookupTable[128]
Definition juce_CustomTypeface.h:158
EdgeTable * getEdgeTableForGlyph(int glyphNumber, const AffineTransform &, float fontHeight) override
Definition juce_CustomTypeface.cpp:379
void addGlyph(juce_wchar character, const Path &path, float width) noexcept
Definition juce_CustomTypeface.cpp:179
bool writeToStream(OutputStream &outputStream)
Definition juce_CustomTypeface.cpp:258
Definition juce_EdgeTable.h:38
Definition juce_InputStream.h:37
Definition juce_OutputStream.h:38
Definition juce_OwnedArray.h:51
Definition juce_Path.h:65
Definition juce_String.h:53
Typeface(const String &name, const String &style) noexcept
Definition juce_Typeface.cpp:108
static int width
Definition pugl.h:1593
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
#define JUCE_API
Definition juce_StandardHeader.h:152
Definition carla_juce.cpp:31
wchar_t juce_wchar
Definition juce_CharacterFunctions.h:42