32 const bool italic)
noexcept
34 if (bold && italic)
return "Bold Italic";
35 if (bold)
return "Bold";
36 if (italic)
return "Italic";
48 return style.containsWholeWordIgnoreCase (
"Bold");
53 return style.containsWholeWordIgnoreCase (
"Italic")
54 ||
style.containsWholeWordIgnoreCase (
"Oblique");
95 return names.
lookUp (placeholder);
118 return fallbackFont.getTypefacePtr();
164 switch (
i.elementType)
178 result.swapWithPath (path);
188 const float newT = std::floor (fontSize *
t + 0.5f) / fontSize;
189 const float newB = std::floor (fontSize *
b + 0.5f) / fontSize;
190 const float newM = std::floor (fontSize *
m + 0.3f) / fontSize;
218 for (
auto& glyph : ga)
221 glyph.createPath (
p);
222 auto bounds =
p.getBounds();
225 yValues.
add (getTop ? bounds.getY() : bounds.getBottom());
228 std::sort (yValues.
begin(), yValues.
end());
230 auto median = yValues[yValues.
size() / 2];
234 for (
auto y : yValues)
243 return num < 4 ? 0.0f : total / ((float) num * (float)
standardHeight);
252 if (fontSize > 3.0f && fontSize < 25.0f)
259 return hintingParams->applyVerticalHintingTransform (fontSize, path);
#define noexcept
Definition DistrhoDefines.h:72
Definition juce_Array.h:56
int size() const noexcept
Definition juce_Array.h:215
ElementType * begin() noexcept
Definition juce_Array.h:328
ElementType * end() noexcept
Definition juce_Array.h:344
void add(const ElementType &newElement)
Definition juce_Array.h:418
Definition juce_EdgeTable.h:38
Definition juce_Font.h:42
static const String & getFallbackFontStyle()
Definition juce_Font.cpp:534
JUCE_NODISCARD Font withHeight(float height) const
Definition juce_Font.cpp:549
static const String & getDefaultStyle()
Definition juce_Font.cpp:468
static const String & getFallbackFontName()
Definition juce_Font.cpp:520
static Typeface::Ptr getDefaultTypefaceForFont(const Font &font)
Definition juce_linux_Fonts.cpp:215
static const String & getDefaultSansSerifFontName()
Definition juce_Font.cpp:465
String getTypefaceName() const noexcept
Definition juce_Font.cpp:470
static const String & getDefaultMonospacedFontName()
Definition juce_Font.cpp:467
@ bold
Definition juce_Font.h:51
@ italic
Definition juce_Font.h:52
static const String & getDefaultSerifFontName()
Definition juce_Font.cpp:466
Definition juce_GlyphArrangement.h:117
void addLineOfText(const Font &font, const String &text, float x, float y)
Definition juce_GlyphArrangement.cpp:144
Definition juce_Path.h:725
@ quadraticTo
Definition juce_Path.h:745
@ closePath
Definition juce_Path.h:747
@ lineTo
Definition juce_Path.h:744
@ cubicTo
Definition juce_Path.h:746
@ startNewSubPath
Definition juce_Path.h:743
Definition juce_Path.h:65
Rectangle< float > getBoundsTransformed(const AffineTransform &transform) const noexcept
Definition juce_Path.cpp:205
bool isEmpty() const noexcept
Definition juce_Path.cpp:179
Rectangle< int > getSmallestIntegerContainer() const noexcept
Definition juce_Rectangle.h:840
Rectangle expanded(ValueType deltaX, ValueType deltaY) const noexcept
Definition juce_Rectangle.h:451
Definition juce_String.h:53
static Ptr getFallbackTypeface()
Definition juce_Typeface.cpp:115
void applyVerticalHintingTransform(float fontHeight, Path &path)
Definition juce_Typeface.cpp:250
std::unique_ptr< HintingParams > hintingParams
Definition juce_Typeface.h:155
virtual bool getOutlineForGlyph(int glyphNumber, Path &path)=0
virtual EdgeTable * getEdgeTableForGlyph(int glyphNumber, const AffineTransform &transform, float fontHeight)
Definition juce_Typeface.cpp:121
Typeface(const String &name, const String &style) noexcept
Definition juce_Typeface.cpp:108
ReferenceCountedObjectPtr< Typeface > Ptr
Definition juce_Typeface.h:51
CriticalSection hintingLock
Definition juce_Typeface.h:156
unsigned * m
Definition inflate.c:1559
struct huft * t
Definition inflate.c:943
int y
Definition inflate.c:1588
register unsigned i
Definition inflate.c:1575
unsigned f
Definition inflate.c:1572
static const char * name
Definition pugl.h:1582
Definition carla_juce.cpp:31
CriticalSection::ScopedLockType ScopedLock
Definition juce_CriticalSection.h:186
Type jlimit(Type lowerLimit, Type upperLimit, Type valueToConstrain) noexcept
Definition juce_MathsFunctions.h:262
Definition juce_Typeface.cpp:65
ConcreteFamilyNames()
Definition juce_Typeface.cpp:66
String sans
Definition juce_Typeface.cpp:89
String mono
Definition juce_Typeface.cpp:89
String serif
Definition juce_Typeface.cpp:89
String lookUp(const String &placeholder)
Definition juce_Typeface.cpp:73
static String findName(const String &placeholder)
Definition juce_Typeface.cpp:83
Definition juce_Typeface.cpp:30
static String getConcreteFamilyNameFromPlaceholder(const String &placeholder)
Definition juce_Typeface.cpp:92
static bool isItalic(const String &style) noexcept
Definition juce_Typeface.cpp:51
static bool isBold(const String &style) noexcept
Definition juce_Typeface.cpp:46
static const char * getStyleName(const int styleFlags) noexcept
Definition juce_Typeface.cpp:40
static bool isPlaceholderFamilyName(const String &family)
Definition juce_Typeface.cpp:57
static const char * getStyleName(const bool bold, const bool italic) noexcept
Definition juce_Typeface.cpp:31
static String getConcreteFamilyName(const Font &font)
Definition juce_Typeface.cpp:98
Definition juce_Typeface.cpp:183
float lowerOffset
Definition juce_Typeface.cpp:205
float middle
Definition juce_Typeface.cpp:205
float apply(float y) const noexcept
Definition juce_Typeface.cpp:199
float upperOffset
Definition juce_Typeface.cpp:205
float lowerScale
Definition juce_Typeface.cpp:205
float upperScale
Definition juce_Typeface.cpp:205
Scaling(float t, float m, float b, float fontSize) noexcept
Definition juce_Typeface.cpp:186
Scaling() noexcept
Definition juce_Typeface.cpp:184
Definition juce_Typeface.cpp:138
float cachedSize
Definition juce_Typeface.cpp:208
float top
Definition juce_Typeface.cpp:247
float middle
Definition juce_Typeface.cpp:247
float bottom
Definition juce_Typeface.cpp:247
void applyVerticalHintingTransform(float fontSize, Path &path)
Definition juce_Typeface.cpp:149
HintingParams(Typeface &t)
Definition juce_Typeface.cpp:139
static float getAverageY(const Font &font, const char *chars, bool getTop)
Definition juce_Typeface.cpp:211
Scaling cachedScale
Definition juce_Typeface.cpp:209
@ standardHeight
Definition juce_Typeface.cpp:246
uch * p
Definition crypt.c:594
int result
Definition process.c:1455