1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

Font: Add new FontOptions type

This commit is contained in:
reuk 2024-03-19 20:29:38 +00:00
parent d406d51ad0
commit 2ed9b84070
No known key found for this signature in database
GPG key ID: FCB43929F012EE5C
40 changed files with 503 additions and 124 deletions

View file

@ -1816,6 +1816,8 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_graphics/fonts/juce_AttributedString.h"
"../../../../../modules/juce_graphics/fonts/juce_Font.cpp"
"../../../../../modules/juce_graphics/fonts/juce_Font.h"
"../../../../../modules/juce_graphics/fonts/juce_FontOptions.cpp"
"../../../../../modules/juce_graphics/fonts/juce_FontOptions.h"
"../../../../../modules/juce_graphics/fonts/juce_FunctionPointerDestructor.h"
"../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.cpp"
"../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h"
@ -4279,6 +4281,8 @@ set_source_files_properties(
"../../../../../modules/juce_graphics/fonts/juce_AttributedString.h"
"../../../../../modules/juce_graphics/fonts/juce_Font.cpp"
"../../../../../modules/juce_graphics/fonts/juce_Font.h"
"../../../../../modules/juce_graphics/fonts/juce_FontOptions.cpp"
"../../../../../modules/juce_graphics/fonts/juce_FontOptions.h"
"../../../../../modules/juce_graphics/fonts/juce_FunctionPointerDestructor.h"
"../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.cpp"
"../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h"

View file

@ -2099,6 +2099,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -4129,6 +4132,7 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\harfbuzz\hb.hh"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_LruCache.h"/>

View file

@ -2842,6 +2842,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
@ -7125,6 +7128,9 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>

View file

@ -2099,6 +2099,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -4129,6 +4132,7 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\harfbuzz\hb.hh"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_LruCache.h"/>

View file

@ -2842,6 +2842,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
@ -7125,6 +7128,9 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>

View file

@ -2099,6 +2099,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -4129,6 +4132,7 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\harfbuzz\hb.hh"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_LruCache.h"/>

View file

@ -2842,6 +2842,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
@ -7125,6 +7128,9 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>

View file

@ -1578,6 +1578,8 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_graphics/fonts/juce_AttributedString.h"
"../../../../../modules/juce_graphics/fonts/juce_Font.cpp"
"../../../../../modules/juce_graphics/fonts/juce_Font.h"
"../../../../../modules/juce_graphics/fonts/juce_FontOptions.cpp"
"../../../../../modules/juce_graphics/fonts/juce_FontOptions.h"
"../../../../../modules/juce_graphics/fonts/juce_FunctionPointerDestructor.h"
"../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.cpp"
"../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h"
@ -3723,6 +3725,8 @@ set_source_files_properties(
"../../../../../modules/juce_graphics/fonts/juce_AttributedString.h"
"../../../../../modules/juce_graphics/fonts/juce_Font.cpp"
"../../../../../modules/juce_graphics/fonts/juce_Font.h"
"../../../../../modules/juce_graphics/fonts/juce_FontOptions.cpp"
"../../../../../modules/juce_graphics/fonts/juce_FontOptions.h"
"../../../../../modules/juce_graphics/fonts/juce_FunctionPointerDestructor.h"
"../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.cpp"
"../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h"

View file

@ -1792,6 +1792,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -3600,6 +3603,7 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\harfbuzz\hb.hh"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_LruCache.h"/>

View file

@ -2386,6 +2386,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
@ -6180,6 +6183,9 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>

View file

@ -1708,6 +1708,8 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_graphics/fonts/juce_AttributedString.h"
"../../../../../modules/juce_graphics/fonts/juce_Font.cpp"
"../../../../../modules/juce_graphics/fonts/juce_Font.h"
"../../../../../modules/juce_graphics/fonts/juce_FontOptions.cpp"
"../../../../../modules/juce_graphics/fonts/juce_FontOptions.h"
"../../../../../modules/juce_graphics/fonts/juce_FunctionPointerDestructor.h"
"../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.cpp"
"../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h"
@ -4006,6 +4008,8 @@ set_source_files_properties(
"../../../../../modules/juce_graphics/fonts/juce_AttributedString.h"
"../../../../../modules/juce_graphics/fonts/juce_Font.cpp"
"../../../../../modules/juce_graphics/fonts/juce_Font.h"
"../../../../../modules/juce_graphics/fonts/juce_FontOptions.cpp"
"../../../../../modules/juce_graphics/fonts/juce_FontOptions.h"
"../../../../../modules/juce_graphics/fonts/juce_FunctionPointerDestructor.h"
"../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.cpp"
"../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h"

View file

@ -1926,6 +1926,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -3833,6 +3836,7 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\harfbuzz\hb.hh"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_LruCache.h"/>

View file

@ -2593,6 +2593,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
@ -6615,6 +6618,9 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>

View file

@ -1926,6 +1926,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -3833,6 +3836,7 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\harfbuzz\hb.hh"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_LruCache.h"/>

View file

@ -2593,6 +2593,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
@ -6615,6 +6618,9 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>

View file

@ -1926,6 +1926,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -3833,6 +3836,7 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\harfbuzz\hb.hh"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_LruCache.h"/>

View file

@ -2593,6 +2593,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
@ -6615,6 +6618,9 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>

View file

@ -1597,6 +1597,8 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_graphics/fonts/juce_AttributedString.h"
"../../../../../modules/juce_graphics/fonts/juce_Font.cpp"
"../../../../../modules/juce_graphics/fonts/juce_Font.h"
"../../../../../modules/juce_graphics/fonts/juce_FontOptions.cpp"
"../../../../../modules/juce_graphics/fonts/juce_FontOptions.h"
"../../../../../modules/juce_graphics/fonts/juce_FunctionPointerDestructor.h"
"../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.cpp"
"../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h"
@ -3822,6 +3824,8 @@ set_source_files_properties(
"../../../../../modules/juce_graphics/fonts/juce_AttributedString.h"
"../../../../../modules/juce_graphics/fonts/juce_Font.cpp"
"../../../../../modules/juce_graphics/fonts/juce_Font.h"
"../../../../../modules/juce_graphics/fonts/juce_FontOptions.cpp"
"../../../../../modules/juce_graphics/fonts/juce_FontOptions.h"
"../../../../../modules/juce_graphics/fonts/juce_FunctionPointerDestructor.h"
"../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.cpp"
"../../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h"

View file

@ -1813,6 +1813,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -3698,6 +3701,7 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\harfbuzz\hb.hh"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_LruCache.h"/>

View file

@ -2440,6 +2440,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
@ -6342,6 +6345,9 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>

View file

@ -995,6 +995,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -2515,6 +2518,7 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\harfbuzz\hb.hh"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_LruCache.h"/>

View file

@ -1384,6 +1384,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
@ -4320,6 +4323,9 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>

View file

@ -995,6 +995,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -2515,6 +2518,7 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\harfbuzz\hb.hh"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_LruCache.h"/>

View file

@ -1384,6 +1384,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
@ -4320,6 +4323,9 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>

View file

@ -995,6 +995,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -2515,6 +2518,7 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\harfbuzz\hb.hh"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_LruCache.h"/>

View file

@ -1384,6 +1384,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
@ -4320,6 +4323,9 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>

View file

@ -1934,6 +1934,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -3929,6 +3932,7 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\harfbuzz\hb.hh"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_LruCache.h"/>

View file

@ -2614,6 +2614,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
@ -6729,6 +6732,9 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>

View file

@ -1934,6 +1934,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -3929,6 +3932,7 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\harfbuzz\hb.hh"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_LruCache.h"/>

View file

@ -2614,6 +2614,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
@ -6729,6 +6732,9 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>

View file

@ -1934,6 +1934,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -3929,6 +3932,7 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\harfbuzz\hb.hh"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_LruCache.h"/>

View file

@ -2614,6 +2614,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
@ -6729,6 +6732,9 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>

View file

@ -1812,6 +1812,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
@ -3674,6 +3677,7 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\harfbuzz\hb.hh"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_AttributedString.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.h"/>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_LruCache.h"/>

View file

@ -2437,6 +2437,9 @@
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_graphics\fonts\juce_GlyphArrangement.cpp">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClCompile>
@ -6309,6 +6312,9 @@
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_Font.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FontOptions.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\modules\juce_graphics\fonts\juce_FunctionPointerDestructor.h">
<Filter>JUCE Modules\juce_graphics\fonts</Filter>
</ClInclude>

View file

@ -41,17 +41,6 @@ public:
HbFont font{};
};
namespace FontValues
{
static float limitFontHeight (const float height) noexcept
{
return jlimit (0.1f, 10000.0f, height);
}
const float defaultFontHeight = 14.0f;
float minimumHorizontalScale = 0.7f;
}
using GetTypefaceForFont = Typeface::Ptr (*)(const Font&);
GetTypefaceForFont juce_getTypefaceForFont = nullptr;
@ -201,93 +190,24 @@ void Typeface::clearTypefaceCache()
class Font::SharedFontInternal : public ReferenceCountedObject
{
public:
SharedFontInternal() noexcept
: typeface (TypefaceCache::getInstance()->getDefaultFace()),
typefaceName (Font::getDefaultSansSerifFontName()),
typefaceStyle (Font::getDefaultStyle()),
height (FontValues::defaultFontHeight)
explicit SharedFontInternal (FontOptions x)
: options (std::move (x))
{
}
SharedFontInternal (int styleFlags, float fontHeight) noexcept
: typefaceName (Font::getDefaultSansSerifFontName()),
typefaceStyle (FontStyleHelpers::getStyleName (styleFlags)),
height (fontHeight),
underline ((styleFlags & underlined) != 0)
ReferenceCountedObjectPtr<SharedFontInternal> copy() const
{
if (styleFlags == plain)
typeface = TypefaceCache::getInstance()->getDefaultFace();
const ScopedLock lock (mutex);
return new SharedFontInternal (typeface, options);
}
SharedFontInternal (const String& name, int styleFlags, float fontHeight) noexcept
: typefaceName (name),
typefaceStyle (FontStyleHelpers::getStyleName (styleFlags)),
height (fontHeight),
underline ((styleFlags & underlined) != 0)
{
if (styleFlags == plain && typefaceName.isEmpty())
typeface = TypefaceCache::getInstance()->getDefaultFace();
}
SharedFontInternal (const String& name, const String& style, float fontHeight) noexcept
: typefaceName (name), typefaceStyle (style), height (fontHeight)
{
if (typefaceName.isEmpty())
typefaceName = Font::getDefaultSansSerifFontName();
}
explicit SharedFontInternal (const Typeface::Ptr& face) noexcept
: typeface (face),
typefaceName (face->getName()),
typefaceStyle (face->getStyle()),
height (FontValues::defaultFontHeight)
{
jassert (typefaceName.isNotEmpty());
}
SharedFontInternal (const SharedFontInternal& other) noexcept
: ReferenceCountedObject(),
typeface (other.typeface),
typefaceName (other.typefaceName),
typefaceStyle (other.typefaceStyle),
height (other.height),
horizontalScale (other.horizontalScale),
kerning (other.kerning),
ascent (other.ascent),
underline (other.underline)
{
}
auto tie() const
{
return std::tie (height, underline, horizontalScale, kerning, typefaceName, typefaceStyle);
}
bool operator== (const SharedFontInternal& other) const noexcept
{
return tie() == other.tie();
}
bool operator< (const SharedFontInternal& other) const noexcept
{
return tie() < other.tie();
}
/* The typeface and ascent data members may be read/set from multiple threads
simultaneously, e.g. in the case that two Font instances reference the same
SharedFontInternal and call getTypefacePtr() simultaneously.
We lock in functions that modify the typeface or ascent in order to
ensure thread safety.
*/
Typeface::Ptr getTypefacePtr (const Font& f)
{
const ScopedLock lock (mutex);
if (typeface == nullptr)
{
typeface = TypefaceCache::getInstance()->findTypefaceFor (f);
typeface = options.getTypeface() != nullptr ? options.getTypeface() : TypefaceCache::getInstance()->findTypefaceFor (f);
jassert (typeface != nullptr);
}
@ -315,7 +235,7 @@ public:
if (approximatelyEqual (ascent, 0.0f))
ascent = getTypefacePtr (f)->getAscent();
return height * ascent;
return getHeight() * ascent;
}
/* We do not need to lock in these functions, as it's guaranteed
@ -323,14 +243,19 @@ public:
instance referencing the shared state.
*/
StringArray getFallbackFamilies() const { return fallbacks; }
String getTypefaceName() const { return typefaceName; }
String getTypefaceStyle() const { return typefaceStyle; }
float getHeight() const { return height; }
float getHorizontalScale() const { return horizontalScale; }
float getKerning() const { return kerning; }
bool getUnderline() const { return underline; }
bool getFallbackEnabled() const { return fallback; }
StringArray getFallbackFamilies() const
{
const auto fallbacks = options.getFallbacks();
return StringArray (fallbacks.data(), (int) fallbacks.size());
}
String getTypefaceName() const { return options.getName(); }
String getTypefaceStyle() const { return options.getStyle(); }
float getHeight() const { return options.getHeight(); }
float getHorizontalScale() const { return options.getHorizontalScale(); }
float getKerning() const { return options.getKerningFactor(); }
bool getUnderline() const { return options.getUnderline(); }
bool getFallbackEnabled() const { return options.getFallbackEnabled(); }
/* This shared state may be shared between two or more Font instances that are being
read/modified from multiple threads.
@ -344,41 +269,42 @@ public:
jassert (getReferenceCount() == 1);
typeface = newTypeface;
if (newTypeface != nullptr)
if (typeface != nullptr)
{
typefaceName = typeface->getName();
typefaceStyle = typeface->getStyle();
options = options.withTypeface (typeface)
.withName (typeface->getName())
.withStyle (typeface->getStyle());
}
}
void setTypefaceName (String x)
{
jassert (getReferenceCount() == 1);
typefaceName = std::move (x);
options = options.withName (x);
}
void setTypefaceStyle (String x)
{
jassert (getReferenceCount() == 1);
typefaceStyle = std::move (x);
options = options.withStyle (x);
}
void setHeight (float x)
{
jassert (getReferenceCount() == 1);
height = x;
options = options.withHeight (x);
}
void setHorizontalScale (float x)
{
jassert (getReferenceCount() == 1);
horizontalScale = x;
options = options.withHorizontalScale (x);
}
void setKerning (float x)
{
jassert (getReferenceCount() == 1);
kerning = x;
options = options.withKerningFactor (x);
}
void setAscent (float x)
@ -390,71 +316,79 @@ public:
void setUnderline (bool x)
{
jassert (getReferenceCount() == 1);
underline = x;
options = options.withUnderline (x);
}
void setFallbackFamilies (const StringArray& x)
{
jassert (getReferenceCount() == 1);
fallbacks = x;
options = options.withFallbacks ({ x.begin(), x.end() });
}
void setFallback (bool x)
{
jassert (getReferenceCount() == 1);
fallback = x;
options = options.withFallbackEnabled (x);
}
bool operator== (const SharedFontInternal& other) const
{
return options == other.options;
}
bool operator< (const SharedFontInternal& other) const
{
return options < other.options;
}
private:
static float legacyHeightToPoints (Typeface::Ptr p, float h)
SharedFontInternal (Typeface::Ptr t, FontOptions o)
: typeface (t), options (std::move (o))
{
return h * p->getNativeDetails().getLegacyMetrics().getHeightToPointsFactor();
}
Typeface::Ptr typeface;
StringArray fallbacks;
String typefaceName, typefaceStyle;
float height = 0.0f, horizontalScale = 1.0f, kerning = 0.0f, ascent = 0.0f;
bool underline = false;
bool fallback = true;
float ascent{};
FontOptions options;
CriticalSection mutex;
};
//==============================================================================
Font::Font() : font (new SharedFontInternal()) {}
Font::Font (const Typeface::Ptr& typeface) : font (new SharedFontInternal (typeface)) {}
Font::Font() : font (new SharedFontInternal (FontOptions{})) {}
Font::Font (const Typeface::Ptr& typeface) : font (new SharedFontInternal (FontOptions { typeface })) {}
Font::Font (const Font& other) noexcept : font (other.font) {}
Font::Font (float fontHeight, int styleFlags)
: font (new SharedFontInternal (styleFlags, FontValues::limitFontHeight (fontHeight)))
: font (new SharedFontInternal (FontOptions { fontHeight, styleFlags }))
{
}
Font::Font (const String& typefaceName, float fontHeight, int styleFlags)
: font (new SharedFontInternal (typefaceName, styleFlags, FontValues::limitFontHeight (fontHeight)))
: font (new SharedFontInternal (FontOptions { typefaceName, fontHeight, styleFlags }))
{
}
Font::Font (const String& typefaceName, const String& typefaceStyle, float fontHeight)
: font (new SharedFontInternal (typefaceName, typefaceStyle, FontValues::limitFontHeight (fontHeight)))
: font (new SharedFontInternal (FontOptions { typefaceName, typefaceStyle, fontHeight }))
{
}
Font& Font::operator= (const Font& other) noexcept
{
font = other.font;
Font copy { other };
std::swap (copy.font, font);
return *this;
}
Font::Font (Font&& other) noexcept
: font (std::move (other.font))
: font (std::exchange (other.font, {}))
{
}
Font& Font::operator= (Font&& other) noexcept
{
font = std::move (other.font);
Font copy { std::move (other) };
std::swap (copy.font, font);
return *this;
}
@ -479,7 +413,7 @@ bool Font::compare (const Font& a, const Font& b) noexcept
void Font::dupeInternalIfShared()
{
if (font->getReferenceCount() > 1)
font = *new SharedFontInternal (*font);
font = font->copy();
}
//==============================================================================

View file

@ -35,7 +35,6 @@
namespace juce
{
//==============================================================================
/**
Represents a particular font, including its size, style, etc.

View file

@ -0,0 +1,109 @@
/*
==============================================================================
This file is part of the JUCE framework.
Copyright (c) Raw Material Software Limited
JUCE is an open source framework subject to commercial or open source
licensing.
By downloading, installing, or using the JUCE framework, or combining the
JUCE framework with any other source code, object code, content or any other
copyrightable work, you agree to the terms of the JUCE End User Licence
Agreement, and all incorporated terms including the JUCE Privacy Policy and
the JUCE Website Terms of Service, as applicable, which will bind you. If you
do not agree to the terms of these agreements, we will not license the JUCE
framework to you, and you must discontinue the installation or download
process and cease use of the JUCE framework.
JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
JUCE Privacy Policy: https://juce.com/juce-privacy-policy
JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
Or:
You may also use this code under the terms of the AGPLv3:
https://www.gnu.org/licenses/agpl-3.0.en.html
THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
==============================================================================
*/
namespace juce
{
struct FontValues
{
static float limitFontHeight (const float height) noexcept
{
return jlimit (0.1f, 10000.0f, height);
}
inline static constexpr float defaultFontHeight = 14.0f;
static float minimumHorizontalScale;
FontValues() = delete;
};
float FontValues::minimumHorizontalScale = 0.7f;
FontOptions::FontOptions()
: FontOptions (FontValues::defaultFontHeight, Font::plain)
{
}
FontOptions::FontOptions (float fontHeight)
: FontOptions (fontHeight, Font::plain)
{
}
FontOptions::FontOptions (float fontHeight, int styleFlags)
: FontOptions ({}, fontHeight, styleFlags)
{
}
FontOptions::FontOptions (const String& typefaceName, float fontHeight, int styleFlags)
: FontOptions (typefaceName, FontStyleHelpers::getStyleName (styleFlags), fontHeight)
{
underlined = (styleFlags & Font::FontStyleFlags::underlined) != 0;
}
FontOptions::FontOptions (const String& typefaceName, const String& typefaceStyle, float fontHeight)
: name (typefaceName.isEmpty() ? Font::getDefaultSansSerifFontName() : typefaceName),
style (typefaceStyle),
height (FontValues::limitFontHeight (fontHeight))
{
}
FontOptions::FontOptions (const Typeface::Ptr& ptr)
: name (ptr->getName()),
style (ptr->getStyle()),
typeface (ptr),
height (FontValues::defaultFontHeight)
{
}
auto FontOptions::tie() const
{
return std::tuple (name,
style,
typeface.get(),
fallbacks,
height,
tracking,
horizontalScale,
fallbackEnabled,
underlined);
}
bool FontOptions::operator== (const FontOptions& other) const { return tie() == other.tie(); }
bool FontOptions::operator!= (const FontOptions& other) const { return tie() != other.tie(); }
bool FontOptions::operator< (const FontOptions& other) const { return tie() < other.tie(); }
bool FontOptions::operator<= (const FontOptions& other) const { return tie() <= other.tie(); }
bool FontOptions::operator> (const FontOptions& other) const { return tie() > other.tie(); }
bool FontOptions::operator>= (const FontOptions& other) const { return tie() >= other.tie(); }
} // namespace juce

View file

@ -0,0 +1,169 @@
/*
==============================================================================
This file is part of the JUCE framework.
Copyright (c) Raw Material Software Limited
JUCE is an open source framework subject to commercial or open source
licensing.
By downloading, installing, or using the JUCE framework, or combining the
JUCE framework with any other source code, object code, content or any other
copyrightable work, you agree to the terms of the JUCE End User Licence
Agreement, and all incorporated terms including the JUCE Privacy Policy and
the JUCE Website Terms of Service, as applicable, which will bind you. If you
do not agree to the terms of these agreements, we will not license the JUCE
framework to you, and you must discontinue the installation or download
process and cease use of the JUCE framework.
JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
JUCE Privacy Policy: https://juce.com/juce-privacy-policy
JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
Or:
You may also use this code under the terms of the AGPLv3:
https://www.gnu.org/licenses/agpl-3.0.en.html
THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
==============================================================================
*/
namespace juce
{
/**
Options that describe a particular font.
Used to construct Font instances in a fluent style.
@see Typeface, Font
@tags{Graphics}
*/
class JUCE_API FontOptions final
{
public:
/** Constructs the default set of options. */
FontOptions();
/** Constructs the default set of options with a custom height. */
explicit FontOptions (float fontHeight);
/** Constructs the default set of options with a custom height and style.
@param fontHeight the height in pixels (can be fractional)
@param styleFlags the style to use - this can be a combination of the
Font::bold, Font::italic and Font::underlined, or
just Font::plain for the normal style.
@see Font::FontStyleFlags, Font::getDefaultSansSerifFontName
*/
FontOptions (float fontHeight, int styleFlags);
/** Constructs the default set of options with a given typeface and parameters.
@param typefaceName the font family of the typeface to use
@param fontHeight the height in pixels (can be fractional)
@param styleFlags the style to use - this can be a combination of the
Font::bold, Font::italic and Font::underlined, or
just Font::plain for the normal style.
@see Font::FontStyleFlags, Font::getDefaultSansSerifFontName
*/
FontOptions (const String& typefaceName, float fontHeight, int styleFlags);
/** Constructs the default set of options with a given typeface and parameters.
@param typefaceName the font family of the typeface to use
@param typefaceStyle the font style of the typeface to use
@param fontHeight the height in pixels (can be fractional)
*/
FontOptions (const String& typefaceName, const String& typefaceStyle, float fontHeight);
/** Constructs the default set of options with a given typeface. */
FontOptions (const Typeface::Ptr& typeface);
/** Returns a copy of these options with a new typeface name.
If the options include a non-null Typeface::Ptr, this will be ignored.
Otherwise, a suitable typeface will be located based on the typeface name and style strings.
*/
[[nodiscard]] FontOptions withName (String x) const { return withMember (*this, &FontOptions::name, x); }
/** Returns a copy of these options with a new typeface style.
If the options include a non-null Typeface::Ptr, this will be ignored.
Otherwise, a suitable typeface will be located based on the typeface name and style strings.
*/
[[nodiscard]] FontOptions withStyle (String x) const { return withMember (*this, &FontOptions::style, x); }
/** Returns a copy of these options with a new typeface.
If the typeface is non-null, it takes precedence over the name and style strings.
*/
[[nodiscard]] FontOptions withTypeface (Typeface::Ptr x) const { return withMember (*this, &FontOptions::typeface, x); }
/** Returns a copy of these options with a new set of preferred fallback family names. */
[[nodiscard]] FontOptions withFallbacks (std::vector<String> x) const { return withMember (*this, &FontOptions::fallbacks, std::move (x)); }
/** Returns a copy of these options with font fallback enabled or disabled. */
[[nodiscard]] FontOptions withFallbackEnabled (bool x = true) const { return withMember (*this, &FontOptions::fallbackEnabled, x); }
/** Returns a copy of these options with the specified height in pixels (can be fractional). */
[[nodiscard]] FontOptions withHeight (float x) const { return withMember (*this, &FontOptions::height, x); }
/** Returns a copy of these options with the specified extra kerning factor (also called "tracking"). */
[[nodiscard]] FontOptions withKerningFactor (float x) const { return withMember (*this, &FontOptions::tracking, x); }
/** Returns a copy of these options with the specified horizontal scale factor, defaults to 1.0. */
[[nodiscard]] FontOptions withHorizontalScale (float x) const { return withMember (*this, &FontOptions::horizontalScale, x); }
/** Returns a copy of these options with underline enabled or disabled, defaults to disabled. */
[[nodiscard]] FontOptions withUnderline (bool x = true) const { return withMember (*this, &FontOptions::underlined, x); }
/** @see withName() */
[[nodiscard]] auto getName() const { return name; }
/** @see withStyle() */
[[nodiscard]] auto getStyle() const { return style; }
/** @see withTypeface() */
[[nodiscard]] auto getTypeface() const { return typeface; }
/** @see withFallbacks() */
[[nodiscard]] auto getFallbacks() const { return fallbacks; }
/** @see withHeight() */
[[nodiscard]] auto getHeight() const { return height; }
/** @see withKerningFactor() */
[[nodiscard]] auto getKerningFactor() const { return tracking; }
/** @see withHorizontalScale() */
[[nodiscard]] auto getHorizontalScale() const { return horizontalScale; }
/** @see withFallbackEnabled() */
[[nodiscard]] auto getFallbackEnabled() const { return fallbackEnabled; }
/** @see withUnderline() */
[[nodiscard]] auto getUnderline() const { return underlined; }
/** Equality operator. */
[[nodiscard]] bool operator== (const FontOptions& other) const;
/** Inequality operator. */
[[nodiscard]] bool operator!= (const FontOptions& other) const;
/** Less-than operator. Allows FontOptions to be used as keys in a map. */
[[nodiscard]] bool operator< (const FontOptions& other) const;
/** Less-than-or-equal operator. */
[[nodiscard]] bool operator<= (const FontOptions& other) const;
/** Greater-than operator. */
[[nodiscard]] bool operator> (const FontOptions& other) const;
/** Greater-than-or-equal operator. */
[[nodiscard]] bool operator>= (const FontOptions& other) const;
private:
auto tie() const;
String name, style;
Typeface::Ptr typeface;
std::vector<String> fallbacks;
float height{};
float tracking{};
float horizontalScale = 1.0f;
bool fallbackEnabled = true;
bool underlined{};
};
} // namespace juce

View file

@ -143,6 +143,7 @@
#include "image_formats/juce_PNGLoader.cpp"
#include "fonts/juce_AttributedString.cpp"
#include "fonts/juce_Typeface.cpp"
#include "fonts/juce_FontOptions.cpp"
#include "fonts/juce_Font.cpp"
#include "fonts/juce_GlyphArrangement.cpp"
#include "fonts/juce_TextLayout.cpp"

View file

@ -144,6 +144,7 @@ namespace juce
#include "images/juce_Image.h"
#include "colour/juce_FillType.h"
#include "fonts/juce_Typeface.h"
#include "fonts/juce_FontOptions.h"
#include "fonts/juce_Font.h"
#include "fonts/juce_AttributedString.h"
#include "fonts/juce_GlyphArrangement.h"