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_Typeface.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//==============================================================================
46class JUCE_API Typeface : public ReferenceCountedObject
47{
48public:
49 //==============================================================================
52
53 //==============================================================================
57 const String& getName() const noexcept { return name; }
58
59 //==============================================================================
63 const String& getStyle() const noexcept { return style; }
64
65 //==============================================================================
67 static Ptr createSystemTypefaceFor (const Font& font);
68
73 static Ptr createSystemTypefaceFor (const void* fontFileData, size_t fontFileDataSize);
74
75 //==============================================================================
77 ~Typeface() override;
78
83 virtual bool isSuitableForFont (const Font&) const { return true; }
84
90 virtual float getAscent() const = 0;
91
97 virtual float getDescent() const = 0;
98
102 virtual float getHeightToPointsFactor() const = 0;
103
108 virtual float getStringWidth (const String& text) = 0;
109
114 virtual void getGlyphPositions (const String& text, Array<int>& glyphs, Array<float>& xOffsets) = 0;
115
119 virtual bool getOutlineForGlyph (int glyphNumber, Path& path) = 0;
120
122 virtual EdgeTable* getEdgeTableForGlyph (int glyphNumber, const AffineTransform& transform, float fontHeight);
123
125 virtual bool isHinted() const { return false; }
126
127 //==============================================================================
129 static void setTypefaceCacheSize (int numFontsToCache);
130
132 static void clearTypefaceCache();
133
137 static void scanFolderForFonts (const File& folder);
138
143 void applyVerticalHintingTransform (float fontHeight, Path& path);
144
145protected:
146 //==============================================================================
147 String name, style;
148
149 Typeface (const String& name, const String& style) noexcept;
150
151 static Ptr getFallbackTypeface();
152
153private:
154 struct HintingParams;
155 std::unique_ptr<HintingParams> hintingParams;
156 CriticalSection hintingLock;
157
159};
160
161} // 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 table of horizontal scan-line segments - used for rasterising Paths.
Represents a local file or directory.
Definition juce_File.h:45
Represents a particular font, including its size, style, etc.
Definition juce_Font.h:42
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
A base class which provides methods for reference-counting.
The JUCE String class!
Definition juce_String.h:53
A typeface represents a size-independent font.
virtual float getStringWidth(const String &text)=0
Measures the width of a line of text.
virtual float getAscent() const =0
Returns the ascent of the font, as a proportion of its height.
const String & getStyle() const noexcept
Returns the font style of the typeface.
virtual bool isSuitableForFont(const Font &) const
Returns true if this typeface can be used to render the specified font.
virtual bool getOutlineForGlyph(int glyphNumber, Path &path)=0
Returns the outline for a glyph.
virtual bool isHinted() const
Returns true if the typeface uses hinting.
const String & getName() const noexcept
Returns the font family of the typeface.
virtual float getHeightToPointsFactor() const =0
Returns the value by which you should multiply a JUCE font-height value to convert it to the equivale...
~Typeface() override
Destructor.
virtual float getDescent() const =0
Returns the descent of the font, as a proportion of its height.
virtual void getGlyphPositions(const String &text, Array< int > &glyphs, Array< float > &xOffsets)=0
Converts a line of text into its glyph numbers and their positions.
#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.