Create global settings for font fallback
This commit is contained in:
@@ -264,7 +264,7 @@ void SplashScreen::OnDraw()
|
||||
layout.HorizontalAlignment = TextAlignment::Near;
|
||||
layout.VerticalAlignment = TextAlignment::Near;
|
||||
layout.Scale = Math::Min((width - 20 * s) / titleLength.X, 1.0f);
|
||||
Render2D::DrawText(_titleFont, GetTitle(), Color::White, layout);
|
||||
Render2D::DrawTextInternal(_titleFont, GetTitle(), Color::White, layout);
|
||||
|
||||
// Subtitle
|
||||
String subtitle(_quote);
|
||||
@@ -279,14 +279,14 @@ void SplashScreen::OnDraw()
|
||||
layout.Scale = 1.0f;
|
||||
layout.HorizontalAlignment = TextAlignment::Far;
|
||||
layout.VerticalAlignment = TextAlignment::Far;
|
||||
Render2D::DrawText(_subtitleFont, subtitle, Color::FromRGB(0x8C8C8C), layout);
|
||||
Render2D::DrawTextInternal(_subtitleFont, subtitle, Color::FromRGB(0x8C8C8C), layout);
|
||||
|
||||
// Additional info
|
||||
const float infoMargin = 6 * s;
|
||||
layout.Bounds = Rectangle(infoMargin, lightBarHeight + infoMargin, width - (2 * infoMargin), height - lightBarHeight - (2 * infoMargin));
|
||||
layout.HorizontalAlignment = TextAlignment::Near;
|
||||
layout.VerticalAlignment = TextAlignment::Center;
|
||||
Render2D::DrawText(_subtitleFont, _infoText, Color::FromRGB(0xFFFFFF) * 0.9f, layout);
|
||||
Render2D::DrawTextInternal(_subtitleFont, _infoText, Color::FromRGB(0xFFFFFF) * 0.9f, layout);
|
||||
}
|
||||
|
||||
bool SplashScreen::HasLoadedFonts() const
|
||||
|
||||
@@ -119,7 +119,7 @@ namespace FlaxEditor.Content.Settings
|
||||
/// <summary>
|
||||
/// The custom settings to use with a game. Can be specified by the user to define game-specific options and be used by the external plugins (used as key-value pair).
|
||||
/// </summary>
|
||||
[EditorOrder(1100), EditorDisplay("Other Settings"), Tooltip("The custom settings to use with a game. Can be specified by the user to define game-specific options and be used by the external plugins (used as key-value pair).")]
|
||||
[EditorOrder(1500), EditorDisplay("Other Settings"), Tooltip("The custom settings to use with a game. Can be specified by the user to define game-specific options and be used by the external plugins (used as key-value pair).")]
|
||||
public Dictionary<string, JsonAsset> CustomSettings;
|
||||
|
||||
#if FLAX_EDITOR || PLATFORM_WINDOWS
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
#include "Engine/Core/Types/String.h"
|
||||
#include "Engine/Core/Collections/Dictionary.h"
|
||||
|
||||
class FontFallbackList;
|
||||
|
||||
/// <summary>
|
||||
/// The main game engine configuration service. Loads and applies game configuration.
|
||||
/// </summary>
|
||||
@@ -33,6 +35,15 @@ public:
|
||||
API_FIELD(Attributes="EditorOrder(15), EditorDisplay(\"General\")")
|
||||
String CopyrightNotice;
|
||||
|
||||
/// <summary>
|
||||
/// The copyright note used for content signing (eg. source code header).
|
||||
/// </summary>
|
||||
API_FIELD(Attributes = "EditorOrder(1200), EditorDisplay(\"Other Settings\")")
|
||||
bool EnableFontFallback;
|
||||
|
||||
API_FIELD(Attributes = "EditorOrder(1205), EditorDisplay(\"Other Settings\")")
|
||||
FontFallbackList* FontFallbacks;
|
||||
|
||||
/// <summary>
|
||||
/// The default application icon.
|
||||
/// </summary>
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
#undef CreateWindow
|
||||
#undef CreateProcess
|
||||
#undef SetWindowText
|
||||
#undef DrawText
|
||||
#undef DrawTextInternal
|
||||
#undef CreateFont
|
||||
#undef IsMinimized
|
||||
#undef IsMaximized
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#include "FontManager.h"
|
||||
#include "Engine/Core/Math/Math.h"
|
||||
|
||||
FallbackFonts::FallbackFonts(const Array<FontAsset*>& fonts)
|
||||
FontFallbackList::FontFallbackList(const Array<FontAsset*>& fonts)
|
||||
: ManagedScriptingObject(SpawnParams(Guid::New(), Font::TypeInitializer)),
|
||||
_fontAssets(fonts)
|
||||
{
|
||||
|
||||
@@ -12,9 +12,9 @@ class FontAsset;
|
||||
/// <summary>
|
||||
/// Defines a list of fonts that can be used as a fallback, ordered by priority.
|
||||
/// </summary>
|
||||
API_CLASS(Sealed, NoSpawn) class FLAXENGINE_API FallbackFonts : public ManagedScriptingObject
|
||||
API_CLASS(Sealed, NoSpawn) class FLAXENGINE_API FontFallbackList : public ManagedScriptingObject
|
||||
{
|
||||
DECLARE_SCRIPTING_TYPE_NO_SPAWN(FallbackFonts);
|
||||
DECLARE_SCRIPTING_TYPE_NO_SPAWN(FontFallbackList);
|
||||
private:
|
||||
Array<FontAsset*> _fontAssets;
|
||||
|
||||
@@ -23,18 +23,18 @@ private:
|
||||
|
||||
public:
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="FallbackFonts"/> class.
|
||||
/// Initializes a new instance of the <see cref="FontFallbackList"/> class.
|
||||
/// </summary>
|
||||
/// <param name="fonts">The fallback font assets.</param>
|
||||
FallbackFonts(const Array<FontAsset*>& fonts);
|
||||
FontFallbackList(const Array<FontAsset*>& fonts);
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="FallbackFonts"/> class, exposed for C#.
|
||||
/// Initializes a new instance of the <see cref="FontFallbackList"/> class, exposed for C#.
|
||||
/// </summary>
|
||||
/// <param name="fonts">The fallback font assets.</param>
|
||||
/// <returns>The new instance.</returns>
|
||||
API_FUNCTION() FORCE_INLINE static FallbackFonts* Create(const Array<FontAsset*>& fonts) {
|
||||
return New<FallbackFonts>(fonts);
|
||||
API_FUNCTION() FORCE_INLINE static FontFallbackList* Create(const Array<FontAsset*>& fonts) {
|
||||
return New<FontFallbackList>(fonts);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -293,7 +293,7 @@ void Font::ProcessText(const StringView& text, Array<FontLineCache>& outputLines
|
||||
}
|
||||
}
|
||||
|
||||
void Font::ProcessText(FallbackFonts* fallbacks, const StringView& text, Array<BlockedTextLineCache>& outputLines, API_PARAM(Ref) const TextLayoutOptions& layout)
|
||||
void Font::ProcessText(FontFallbackList* fallbacks, const StringView& text, Array<BlockedTextLineCache>& outputLines, API_PARAM(Ref) const TextLayoutOptions& layout)
|
||||
{
|
||||
const Array<Font*>& fallbackFonts = fallbacks->GetFontList(GetSize());
|
||||
float cursorX = 0;
|
||||
@@ -569,7 +569,7 @@ Float2 Font::MeasureText(const StringView& text, const TextLayoutOptions& layout
|
||||
return max;
|
||||
}
|
||||
|
||||
Float2 Font::MeasureText(FallbackFonts* fallbacks, const StringView& text, const TextLayoutOptions& layout)
|
||||
Float2 Font::MeasureText(FontFallbackList* fallbacks, const StringView& text, const TextLayoutOptions& layout)
|
||||
{
|
||||
// Check if there is no need to do anything
|
||||
if (text.IsEmpty())
|
||||
@@ -664,7 +664,7 @@ int32 Font::HitTestText(const StringView& text, const Float2& location, const Te
|
||||
return smallestIndex;
|
||||
}
|
||||
|
||||
int32 Font::HitTestText(FallbackFonts* fallbacks, const StringView& text, const Float2& location, const TextLayoutOptions& layout)
|
||||
int32 Font::HitTestText(FontFallbackList* fallbacks, const StringView& text, const Float2& location, const TextLayoutOptions& layout)
|
||||
{
|
||||
// Check if there is no need to do anything
|
||||
if (text.Length() <= 0)
|
||||
@@ -818,7 +818,7 @@ Float2 Font::GetCharPosition(const StringView& text, int32 index, const TextLayo
|
||||
return rootOffset + Float2(lines.Last().Location.X + lines.Last().Size.X, static_cast<float>((lines.Count() - 1) * baseLinesDistance));
|
||||
}
|
||||
|
||||
Float2 Font::GetCharPosition(FallbackFonts* fallbacks, const StringView& text, int32 index, const TextLayoutOptions& layout)
|
||||
Float2 Font::GetCharPosition(FontFallbackList* fallbacks, const StringView& text, int32 index, const TextLayoutOptions& layout)
|
||||
{
|
||||
// Check if there is no need to do anything
|
||||
if (text.IsEmpty())
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
#include "TextLayoutOptions.h"
|
||||
|
||||
class FontAsset;
|
||||
class FallbackFonts;
|
||||
class FontFallbackList;
|
||||
struct FontTextureAtlasSlot;
|
||||
struct BlockedTextLineCache;
|
||||
|
||||
@@ -463,7 +463,7 @@ public:
|
||||
/// <param name="text">The input text.</param>
|
||||
/// <param name="layout">The layout properties.</param>
|
||||
/// <param name="outputLines">The output lines list.</param>
|
||||
void ProcessText(FallbackFonts* fallbacks, const StringView& text, Array<BlockedTextLineCache>& outputLines, API_PARAM(Ref) const TextLayoutOptions& layout);
|
||||
void ProcessText(FontFallbackList* fallbacks, const StringView& text, Array<BlockedTextLineCache>& outputLines, API_PARAM(Ref) const TextLayoutOptions& layout);
|
||||
|
||||
/// <summary>
|
||||
/// Processes text to get cached lines for rendering.
|
||||
@@ -471,7 +471,7 @@ public:
|
||||
/// <param name="text">The input text.</param>
|
||||
/// <param name="layout">The layout properties.</param>
|
||||
/// <returns>The output lines list.</returns>
|
||||
API_FUNCTION() Array<BlockedTextLineCache> ProcessText(FallbackFonts* fallbacks, const StringView& text, API_PARAM(Ref) const TextLayoutOptions& layout)
|
||||
API_FUNCTION() Array<BlockedTextLineCache> ProcessText(FontFallbackList* fallbacks, const StringView& text, API_PARAM(Ref) const TextLayoutOptions& layout)
|
||||
{
|
||||
Array<BlockedTextLineCache> lines;
|
||||
ProcessText(fallbacks, text, lines, layout);
|
||||
@@ -485,7 +485,7 @@ public:
|
||||
/// <param name="textRange">The input text range (substring range of the input text parameter).</param>
|
||||
/// <param name="layout">The layout properties.</param>
|
||||
/// <returns>The output lines list.</returns>
|
||||
API_FUNCTION() Array<BlockedTextLineCache> ProcessText(FallbackFonts* fallbacks, const StringView& text, API_PARAM(Ref) const TextRange& textRange, API_PARAM(Ref) const TextLayoutOptions& layout)
|
||||
API_FUNCTION() Array<BlockedTextLineCache> ProcessText(FontFallbackList* fallbacks, const StringView& text, API_PARAM(Ref) const TextRange& textRange, API_PARAM(Ref) const TextLayoutOptions& layout)
|
||||
{
|
||||
Array<BlockedTextLineCache> lines;
|
||||
ProcessText(fallbacks, textRange.Substring(text), lines, layout);
|
||||
@@ -497,7 +497,7 @@ public:
|
||||
/// </summary>
|
||||
/// <param name="text">The input text.</param>
|
||||
/// <returns>The output lines list.</returns>
|
||||
API_FUNCTION() FORCE_INLINE Array<BlockedTextLineCache> ProcessText(FallbackFonts* fallbacks, const StringView& text)
|
||||
API_FUNCTION() FORCE_INLINE Array<BlockedTextLineCache> ProcessText(FontFallbackList* fallbacks, const StringView& text)
|
||||
{
|
||||
return ProcessText(fallbacks, text, TextLayoutOptions());
|
||||
}
|
||||
@@ -508,7 +508,7 @@ public:
|
||||
/// <param name="text">The input text.</param>
|
||||
/// <param name="textRange">The input text range (substring range of the input text parameter).</param>
|
||||
/// <returns>The output lines list.</returns>
|
||||
API_FUNCTION() FORCE_INLINE Array<BlockedTextLineCache> ProcessText(FallbackFonts* fallbacks, const StringView& text, API_PARAM(Ref) const TextRange& textRange)
|
||||
API_FUNCTION() FORCE_INLINE Array<BlockedTextLineCache> ProcessText(FontFallbackList* fallbacks, const StringView& text, API_PARAM(Ref) const TextRange& textRange)
|
||||
{
|
||||
return ProcessText(fallbacks, textRange.Substring(text), TextLayoutOptions());
|
||||
}
|
||||
@@ -560,7 +560,7 @@ public:
|
||||
/// <param name="text">The input text to test.</param>
|
||||
/// <param name="layout">The layout properties.</param>
|
||||
/// <returns>The minimum size for that text and fot to render properly.</returns>
|
||||
API_FUNCTION() Float2 MeasureText(FallbackFonts* fallbacks, const StringView& text, API_PARAM(Ref) const TextLayoutOptions& layout);
|
||||
API_FUNCTION() Float2 MeasureText(FontFallbackList* fallbacks, const StringView& text, API_PARAM(Ref) const TextLayoutOptions& layout);
|
||||
|
||||
/// <summary>
|
||||
/// Measures minimum size of the rectangle that will be needed to draw given text.
|
||||
@@ -569,7 +569,7 @@ public:
|
||||
/// <param name="textRange">The input text range (substring range of the input text parameter).</param>
|
||||
/// <param name="layout">The layout properties.</param>
|
||||
/// <returns>The minimum size for that text and fot to render properly.</returns>
|
||||
API_FUNCTION() Float2 MeasureText(FallbackFonts* fallbacks, const StringView& text, API_PARAM(Ref) const TextRange& textRange, API_PARAM(Ref) const TextLayoutOptions& layout)
|
||||
API_FUNCTION() Float2 MeasureText(FontFallbackList* fallbacks, const StringView& text, API_PARAM(Ref) const TextRange& textRange, API_PARAM(Ref) const TextLayoutOptions& layout)
|
||||
{
|
||||
return MeasureText(fallbacks, textRange.Substring(text), layout);
|
||||
}
|
||||
@@ -579,7 +579,7 @@ public:
|
||||
/// </summary>.
|
||||
/// <param name="text">The input text to test.</param>
|
||||
/// <returns>The minimum size for that text and fot to render properly.</returns>
|
||||
API_FUNCTION() FORCE_INLINE Float2 MeasureText(FallbackFonts* fallbacks, const StringView& text)
|
||||
API_FUNCTION() FORCE_INLINE Float2 MeasureText(FontFallbackList* fallbacks, const StringView& text)
|
||||
{
|
||||
return MeasureText(fallbacks, text, TextLayoutOptions());
|
||||
}
|
||||
@@ -590,7 +590,7 @@ public:
|
||||
/// <param name="text">The input text to test.</param>
|
||||
/// <param name="textRange">The input text range (substring range of the input text parameter).</param>
|
||||
/// <returns>The minimum size for that text and fot to render properly.</returns>
|
||||
API_FUNCTION() FORCE_INLINE Float2 MeasureText(FallbackFonts* fallbacks, const StringView& text, API_PARAM(Ref) const TextRange& textRange)
|
||||
API_FUNCTION() FORCE_INLINE Float2 MeasureText(FontFallbackList* fallbacks, const StringView& text, API_PARAM(Ref) const TextRange& textRange)
|
||||
{
|
||||
return MeasureText(fallbacks, textRange.Substring(text), TextLayoutOptions());
|
||||
}
|
||||
@@ -647,7 +647,7 @@ public:
|
||||
/// <param name="location">The input location to test.</param>
|
||||
/// <param name="layout">The text layout properties.</param>
|
||||
/// <returns>The selected character position index (can be equal to text length if location is outside of the layout rectangle).</returns>
|
||||
API_FUNCTION() int32 HitTestText(FallbackFonts* fallbacks, const StringView& text, const Float2& location, API_PARAM(Ref) const TextLayoutOptions& layout);
|
||||
API_FUNCTION() int32 HitTestText(FontFallbackList* fallbacks, const StringView& text, const Float2& location, API_PARAM(Ref) const TextLayoutOptions& layout);
|
||||
|
||||
/// <summary>
|
||||
/// Calculates hit character index at given location.
|
||||
@@ -657,7 +657,7 @@ public:
|
||||
/// <param name="location">The input location to test.</param>
|
||||
/// <param name="layout">The text layout properties.</param>
|
||||
/// <returns>The selected character position index (can be equal to text length if location is outside of the layout rectangle).</returns>
|
||||
API_FUNCTION() int32 HitTestText(FallbackFonts* fallbacks, const StringView& text, API_PARAM(Ref) const TextRange& textRange, const Float2& location, API_PARAM(Ref) const TextLayoutOptions& layout)
|
||||
API_FUNCTION() int32 HitTestText(FontFallbackList* fallbacks, const StringView& text, API_PARAM(Ref) const TextRange& textRange, const Float2& location, API_PARAM(Ref) const TextLayoutOptions& layout)
|
||||
{
|
||||
return HitTestText(fallbacks, textRange.Substring(text), location, layout);
|
||||
}
|
||||
@@ -668,7 +668,7 @@ public:
|
||||
/// <param name="text">The input text to test.</param>
|
||||
/// <param name="location">The input location to test.</param>
|
||||
/// <returns>The selected character position index (can be equal to text length if location is outside of the layout rectangle).</returns>
|
||||
API_FUNCTION() FORCE_INLINE int32 HitTestText(FallbackFonts* fallbacks, const StringView& text, const Float2& location)
|
||||
API_FUNCTION() FORCE_INLINE int32 HitTestText(FontFallbackList* fallbacks, const StringView& text, const Float2& location)
|
||||
{
|
||||
return HitTestText(fallbacks, text, location, TextLayoutOptions());
|
||||
}
|
||||
@@ -680,7 +680,7 @@ public:
|
||||
/// <param name="textRange">The input text range (substring range of the input text parameter).</param>
|
||||
/// <param name="location">The input location to test.</param>
|
||||
/// <returns>The selected character position index (can be equal to text length if location is outside of the layout rectangle).</returns>
|
||||
API_FUNCTION() FORCE_INLINE int32 HitTestText(FallbackFonts* fallbacks, const StringView& text, API_PARAM(Ref) const TextRange& textRange, const Float2& location)
|
||||
API_FUNCTION() FORCE_INLINE int32 HitTestText(FontFallbackList* fallbacks, const StringView& text, API_PARAM(Ref) const TextRange& textRange, const Float2& location)
|
||||
{
|
||||
return HitTestText(fallbacks, textRange.Substring(text), location, TextLayoutOptions());
|
||||
}
|
||||
@@ -737,7 +737,7 @@ public:
|
||||
/// <param name="index">The text position to get coordinates of.</param>
|
||||
/// <param name="layout">The text layout properties.</param>
|
||||
/// <returns>The character position (upper left corner which can be used for a caret position).</returns>
|
||||
API_FUNCTION() Float2 GetCharPosition(FallbackFonts* fallbacks, const StringView& text, int32 index, API_PARAM(Ref) const TextLayoutOptions& layout);
|
||||
API_FUNCTION() Float2 GetCharPosition(FontFallbackList* fallbacks, const StringView& text, int32 index, API_PARAM(Ref) const TextLayoutOptions& layout);
|
||||
|
||||
/// <summary>
|
||||
/// Calculates character position for given text and character index.
|
||||
@@ -747,7 +747,7 @@ public:
|
||||
/// <param name="index">The text position to get coordinates of.</param>
|
||||
/// <param name="layout">The text layout properties.</param>
|
||||
/// <returns>The character position (upper left corner which can be used for a caret position).</returns>
|
||||
API_FUNCTION() Float2 GetCharPosition(FallbackFonts* fallbacks, const StringView& text, API_PARAM(Ref) const TextRange& textRange, int32 index, API_PARAM(Ref) const TextLayoutOptions& layout)
|
||||
API_FUNCTION() Float2 GetCharPosition(FontFallbackList* fallbacks, const StringView& text, API_PARAM(Ref) const TextRange& textRange, int32 index, API_PARAM(Ref) const TextLayoutOptions& layout)
|
||||
{
|
||||
return GetCharPosition(fallbacks, textRange.Substring(text), index, layout);
|
||||
}
|
||||
@@ -758,7 +758,7 @@ public:
|
||||
/// <param name="text">The input text to test.</param>
|
||||
/// <param name="index">The text position to get coordinates of.</param>
|
||||
/// <returns>The character position (upper left corner which can be used for a caret position).</returns>
|
||||
API_FUNCTION() FORCE_INLINE Float2 GetCharPosition(FallbackFonts* fallbacks, const StringView& text, int32 index)
|
||||
API_FUNCTION() FORCE_INLINE Float2 GetCharPosition(FontFallbackList* fallbacks, const StringView& text, int32 index)
|
||||
{
|
||||
return GetCharPosition(fallbacks, text, index, TextLayoutOptions());
|
||||
}
|
||||
@@ -770,7 +770,7 @@ public:
|
||||
/// <param name="textRange">The input text range (substring range of the input text parameter).</param>
|
||||
/// <param name="index">The text position to get coordinates of.</param>
|
||||
/// <returns>The character position (upper left corner which can be used for a caret position).</returns>
|
||||
API_FUNCTION() FORCE_INLINE Float2 GetCharPosition(FallbackFonts* fallbacks, const StringView& text, API_PARAM(Ref) const TextRange& textRange, int32 index)
|
||||
API_FUNCTION() FORCE_INLINE Float2 GetCharPosition(FontFallbackList* fallbacks, const StringView& text, API_PARAM(Ref) const TextRange& textRange, int32 index)
|
||||
{
|
||||
return GetCharPosition(fallbacks, textRange.Substring(text), index, TextLayoutOptions());
|
||||
}
|
||||
|
||||
@@ -1144,7 +1144,7 @@ void DrawBatch(int32 startIndex, int32 count)
|
||||
Context->DrawIndexed(countIb, 0, d.StartIB);
|
||||
}
|
||||
|
||||
void Render2D::DrawText(Font* font, const StringView& text, const Color& color, const Float2& location, MaterialBase* customMaterial)
|
||||
void Render2D::DrawTextInternal(Font* font, const StringView& text, const Color& color, const Float2& location, MaterialBase* customMaterial)
|
||||
{
|
||||
RENDER2D_CHECK_RENDERING_STATE;
|
||||
|
||||
@@ -1252,12 +1252,12 @@ void Render2D::DrawText(Font* font, const StringView& text, const Color& color,
|
||||
}
|
||||
}
|
||||
|
||||
void Render2D::DrawText(Font* font, const StringView& text, const TextRange& textRange, const Color& color, const Float2& location, MaterialBase* customMaterial)
|
||||
void Render2D::DrawTextInternal(Font* font, const StringView& text, const TextRange& textRange, const Color& color, const Float2& location, MaterialBase* customMaterial)
|
||||
{
|
||||
DrawText(font, textRange.Substring(text), color, location, customMaterial);
|
||||
DrawTextInternal(font, textRange.Substring(text), color, location, customMaterial);
|
||||
}
|
||||
|
||||
void Render2D::DrawText(Font* font, const StringView& text, const Color& color, const TextLayoutOptions& layout, MaterialBase* customMaterial)
|
||||
void Render2D::DrawTextInternal(Font* font, const StringView& text, const Color& color, const TextLayoutOptions& layout, MaterialBase* customMaterial)
|
||||
{
|
||||
RENDER2D_CHECK_RENDERING_STATE;
|
||||
|
||||
@@ -1365,12 +1365,12 @@ void Render2D::DrawText(Font* font, const StringView& text, const Color& color,
|
||||
}
|
||||
}
|
||||
|
||||
void Render2D::DrawText(Font* font, const StringView& text, const TextRange& textRange, const Color& color, const TextLayoutOptions& layout, MaterialBase* customMaterial)
|
||||
void Render2D::DrawTextInternal(Font* font, const StringView& text, const TextRange& textRange, const Color& color, const TextLayoutOptions& layout, MaterialBase* customMaterial)
|
||||
{
|
||||
DrawText(font, textRange.Substring(text), color, layout, customMaterial);
|
||||
DrawTextInternal(font, textRange.Substring(text), color, layout, customMaterial);
|
||||
}
|
||||
|
||||
void Render2D::DrawText(Font* font, FallbackFonts* fallbacks, const StringView& text, const Color& color, const Float2& location, MaterialBase* customMaterial)
|
||||
void Render2D::DrawTextInternal(Font* font, FontFallbackList* fallbacks, const StringView& text, const Color& color, const Float2& location, MaterialBase* customMaterial)
|
||||
{
|
||||
RENDER2D_CHECK_RENDERING_STATE;
|
||||
|
||||
@@ -1549,12 +1549,12 @@ void Render2D::DrawText(Font* font, FallbackFonts* fallbacks, const StringView&
|
||||
}
|
||||
}
|
||||
|
||||
void Render2D::DrawText(Font* font, FallbackFonts* fallbacks, const StringView& text, const TextRange& textRange, const Color& color, const Float2& location, MaterialBase* customMaterial)
|
||||
void Render2D::DrawTextInternal(Font* font, FontFallbackList* fallbacks, const StringView& text, const TextRange& textRange, const Color& color, const Float2& location, MaterialBase* customMaterial)
|
||||
{
|
||||
DrawText(font, fallbacks, textRange.Substring(text), color, location, customMaterial);
|
||||
DrawTextInternal(font, fallbacks, textRange.Substring(text), color, location, customMaterial);
|
||||
}
|
||||
|
||||
void Render2D::DrawText(Font* font, FallbackFonts* fallbacks, const StringView& text, const Color& color, const TextLayoutOptions& layout, MaterialBase* customMaterial)
|
||||
void Render2D::DrawTextInternal(Font* font, FontFallbackList* fallbacks, const StringView& text, const Color& color, const TextLayoutOptions& layout, MaterialBase* customMaterial)
|
||||
{
|
||||
RENDER2D_CHECK_RENDERING_STATE;
|
||||
|
||||
@@ -1673,9 +1673,9 @@ void Render2D::DrawText(Font* font, FallbackFonts* fallbacks, const StringView&
|
||||
}
|
||||
}
|
||||
|
||||
void Render2D::DrawText(Font* font, FallbackFonts* fallbacks, const StringView& text, const TextRange& textRange, const Color& color, const TextLayoutOptions& layout, MaterialBase* customMaterial)
|
||||
void Render2D::DrawTextInternal(Font* font, FontFallbackList* fallbacks, const StringView& text, const TextRange& textRange, const Color& color, const TextLayoutOptions& layout, MaterialBase* customMaterial)
|
||||
{
|
||||
DrawText(font, fallbacks, textRange.Substring(text), color, layout, customMaterial);
|
||||
DrawTextInternal(font, fallbacks, textRange.Substring(text), color, layout, customMaterial);
|
||||
}
|
||||
|
||||
FORCE_INLINE bool NeedAlphaWithTint(const Color& color)
|
||||
|
||||
@@ -15,7 +15,7 @@ struct Matrix3x3;
|
||||
struct Viewport;
|
||||
struct TextRange;
|
||||
class Font;
|
||||
class FallbackFonts;
|
||||
class FontFallbackList;
|
||||
class GPUPipelineState;
|
||||
class GPUTexture;
|
||||
class GPUTextureView;
|
||||
@@ -54,6 +54,9 @@ API_CLASS(Static) class FLAXENGINE_API Render2D
|
||||
};
|
||||
|
||||
public:
|
||||
API_FIELD() static bool EnableFontFallback;
|
||||
API_FIELD() static FontFallbackList* FallbackFonts;
|
||||
|
||||
/// <summary>
|
||||
/// Checks if interface is during rendering phrase (Draw calls may be performed without failing).
|
||||
/// </summary>
|
||||
@@ -175,17 +178,17 @@ public:
|
||||
|
||||
public:
|
||||
/// <summary>
|
||||
/// Draws a text.
|
||||
/// Draws a text, with font fallbacking disabled.
|
||||
/// </summary>
|
||||
/// <param name="font">The font to use.</param>
|
||||
/// <param name="text">The text to render.</param>
|
||||
/// <param name="color">The text color.</param>
|
||||
/// <param name="location">The text location.</param>
|
||||
/// <param name="customMaterial">The custom material for font characters rendering. It must contain texture parameter named Font used to sample font texture.</param>
|
||||
API_FUNCTION() static void DrawText(Font* font, const StringView& text, const Color& color, const Float2& location, MaterialBase* customMaterial = nullptr);
|
||||
API_FUNCTION() static void DrawTextInternal(Font* font, const StringView& text, const Color& color, const Float2& location, MaterialBase* customMaterial = nullptr);
|
||||
|
||||
/// <summary>
|
||||
/// Draws a text.
|
||||
/// Draws a text, with font fallbacking disabled.
|
||||
/// </summary>
|
||||
/// <param name="font">The font to use.</param>
|
||||
/// <param name="text">The text to render.</param>
|
||||
@@ -193,20 +196,20 @@ public:
|
||||
/// <param name="color">The text color.</param>
|
||||
/// <param name="location">The text location.</param>
|
||||
/// <param name="customMaterial">The custom material for font characters rendering. It must contain texture parameter named Font used to sample font texture.</param>
|
||||
API_FUNCTION() static void DrawText(Font* font, const StringView& text, API_PARAM(Ref) const TextRange& textRange, const Color& color, const Float2& location, MaterialBase* customMaterial = nullptr);
|
||||
API_FUNCTION() static void DrawTextInternal(Font* font, const StringView& text, API_PARAM(Ref) const TextRange& textRange, const Color& color, const Float2& location, MaterialBase* customMaterial = nullptr);
|
||||
|
||||
/// <summary>
|
||||
/// Draws a text with formatting.
|
||||
/// Draws a text with formatting, with font fallbacking disabled.
|
||||
/// </summary>
|
||||
/// <param name="font">The font to use.</param>
|
||||
/// <param name="text">The text to render.</param>
|
||||
/// <param name="color">The text color.</param>
|
||||
/// <param name="layout">The text layout properties.</param>
|
||||
/// <param name="customMaterial">The custom material for font characters rendering. It must contain texture parameter named Font used to sample font texture.</param>
|
||||
API_FUNCTION() static void DrawText(Font* font, const StringView& text, const Color& color, API_PARAM(Ref) const TextLayoutOptions& layout, MaterialBase* customMaterial = nullptr);
|
||||
API_FUNCTION() static void DrawTextInternal(Font* font, const StringView& text, const Color& color, API_PARAM(Ref) const TextLayoutOptions& layout, MaterialBase* customMaterial = nullptr);
|
||||
|
||||
/// <summary>
|
||||
/// Draws a text with formatting.
|
||||
/// Draws a text with formatting, with font fallbacking disabled.
|
||||
/// </summary>
|
||||
/// <param name="font">The font to use.</param>
|
||||
/// <param name="text">The text to render.</param>
|
||||
@@ -214,10 +217,10 @@ public:
|
||||
/// <param name="color">The text color.</param>
|
||||
/// <param name="layout">The text layout properties.</param>
|
||||
/// <param name="customMaterial">The custom material for font characters rendering. It must contain texture parameter named Font used to sample font texture.</param>
|
||||
API_FUNCTION() static void DrawText(Font* font, const StringView& text, API_PARAM(Ref) const TextRange& textRange, const Color& color, API_PARAM(Ref) const TextLayoutOptions& layout, MaterialBase* customMaterial = nullptr);
|
||||
API_FUNCTION() static void DrawTextInternal(Font* font, const StringView& text, API_PARAM(Ref) const TextRange& textRange, const Color& color, API_PARAM(Ref) const TextLayoutOptions& layout, MaterialBase* customMaterial = nullptr);
|
||||
|
||||
/// <summary>
|
||||
/// Draws a text.
|
||||
/// Draws a text, using custom fallback options.
|
||||
/// </summary>
|
||||
/// <param name="fonts">The fonts to use, ordered by priority.</param>
|
||||
/// <param name="text">The text to render.</param>
|
||||
@@ -225,20 +228,20 @@ public:
|
||||
/// <param name="color">The text color.</param>
|
||||
/// <param name="location">The text location.</param>
|
||||
/// <param name="customMaterial">The custom material for font characters rendering. It must contain texture parameter named Font used to sample font texture.</param>
|
||||
API_FUNCTION() static void DrawText(Font* font, FallbackFonts* fallbacks, const StringView& text, const Color& color, const Float2& location, MaterialBase* customMaterial = nullptr);
|
||||
API_FUNCTION() static void DrawTextInternal(Font* font, FontFallbackList* fallbacks, const StringView& text, const Color& color, const Float2& location, MaterialBase* customMaterial = nullptr);
|
||||
|
||||
/// <summary>
|
||||
/// Draws a text with formatting.
|
||||
/// Draws a text with formatting, using custom fallback options.
|
||||
/// </summary>
|
||||
/// <param name="fonts">The fonts to use, ordered by priority.</param>
|
||||
/// <param name="text">The text to render.</param>
|
||||
/// <param name="color">The text color.</param>
|
||||
/// <param name="layout">The text layout properties.</param>
|
||||
/// <param name="customMaterial">The custom material for font characters rendering. It must contain texture parameter named Font used to sample font texture.</param>
|
||||
API_FUNCTION() static void DrawText(Font* font, FallbackFonts* fallbacks, const StringView& text, API_PARAM(Ref) const TextRange& textRange, const Color& color, const Float2& location, MaterialBase* customMaterial = nullptr);
|
||||
API_FUNCTION() static void DrawTextInternal(Font* font, FontFallbackList* fallbacks, const StringView& text, API_PARAM(Ref) const TextRange& textRange, const Color& color, const Float2& location, MaterialBase* customMaterial = nullptr);
|
||||
|
||||
/// <summary>
|
||||
/// Draws a text with formatting.
|
||||
/// Draws a text with formatting, using custom fallback options.
|
||||
/// </summary>
|
||||
/// <param name="fonts">The fonts to use, ordered by priority.</param>
|
||||
/// <param name="text">The text to render.</param>
|
||||
@@ -246,10 +249,10 @@ public:
|
||||
/// <param name="color">The text color.</param>
|
||||
/// <param name="layout">The text layout properties.</param>
|
||||
/// <param name="customMaterial">The custom material for font characters rendering. It must contain texture parameter named Font used to sample font texture.</param>
|
||||
API_FUNCTION() static void DrawText(Font* font, FallbackFonts* fallbacks, const StringView& text, const Color& color, API_PARAM(Ref) const TextLayoutOptions& layout, MaterialBase* customMaterial = nullptr);
|
||||
API_FUNCTION() static void DrawTextInternal(Font* font, FontFallbackList* fallbacks, const StringView& text, const Color& color, API_PARAM(Ref) const TextLayoutOptions& layout, MaterialBase* customMaterial = nullptr);
|
||||
|
||||
/// <summary>
|
||||
/// Draws a text with formatting.
|
||||
/// Draws a text with formatting, using custom fallback options.
|
||||
/// </summary>
|
||||
/// <param name="fonts">The fonts to use, ordered by priority.</param>
|
||||
/// <param name="text">The text to render.</param>
|
||||
@@ -257,7 +260,51 @@ public:
|
||||
/// <param name="color">The text color.</param>
|
||||
/// <param name="layout">The text layout properties.</param>
|
||||
/// <param name="customMaterial">The custom material for font characters rendering. It must contain texture parameter named Font used to sample font texture.</param>
|
||||
API_FUNCTION() static void DrawText(Font* font, FallbackFonts* fallbacks, const StringView& text, API_PARAM(Ref) const TextRange& textRange, const Color& color, API_PARAM(Ref) const TextLayoutOptions& layout, MaterialBase* customMaterial = nullptr);
|
||||
API_FUNCTION() static void DrawTextInternal(Font* font, FontFallbackList* fallbacks, const StringView& text, API_PARAM(Ref) const TextRange& textRange, const Color& color, API_PARAM(Ref) const TextLayoutOptions& layout, MaterialBase* customMaterial = nullptr);
|
||||
|
||||
/// <summary>
|
||||
/// Draws a text, follows the fallback settings defined in <see cref="Render2D" />.
|
||||
/// </summary>
|
||||
/// <param name="font">The font to use.</param>
|
||||
/// <param name="text">The text to render.</param>
|
||||
/// <param name="color">The text color.</param>
|
||||
/// <param name="location">The text location.</param>
|
||||
/// <param name="customMaterial">The custom material for font characters rendering. It must contain texture parameter named Font used to sample font texture.</param>
|
||||
API_FUNCTION() FORCE_INLINE static void DrawText(Font* font, const StringView& text, const Color& color, const Float2& location, MaterialBase* customMaterial = nullptr) {
|
||||
if (EnableFontFallback && FallbackFonts) {
|
||||
DrawTextInternal(font, FallbackFonts, text, color, location, customMaterial);
|
||||
}
|
||||
else {
|
||||
DrawTextInternal(font, text, color, location, customMaterial);
|
||||
}
|
||||
}
|
||||
|
||||
API_FUNCTION() FORCE_INLINE static void DrawText(Font* font, const StringView& text, API_PARAM(Ref) const TextRange& textRange, const Color& color, const Float2& location, MaterialBase* customMaterial = nullptr) {
|
||||
if (EnableFontFallback && FallbackFonts) {
|
||||
DrawTextInternal(font, FallbackFonts, text, textRange, color, location, customMaterial);
|
||||
}
|
||||
else {
|
||||
DrawTextInternal(font, text, textRange, color, location, customMaterial);
|
||||
}
|
||||
}
|
||||
|
||||
API_FUNCTION() FORCE_INLINE static void DrawText(Font* font, const StringView& text, const Color& color, API_PARAM(Ref) const TextLayoutOptions& layout, MaterialBase* customMaterial = nullptr) {
|
||||
if (EnableFontFallback && FallbackFonts) {
|
||||
DrawTextInternal(font, FallbackFonts, text, color, layout, customMaterial);
|
||||
}
|
||||
else {
|
||||
DrawTextInternal(font, text, color, layout, customMaterial);
|
||||
}
|
||||
}
|
||||
|
||||
API_FUNCTION() FORCE_INLINE static void DrawText(Font* font, const StringView& text, API_PARAM(Ref) const TextRange& textRange, const Color& color, API_PARAM(Ref) const TextLayoutOptions& layout, MaterialBase* customMaterial = nullptr) {
|
||||
if (EnableFontFallback && FallbackFonts) {
|
||||
DrawTextInternal(font, FallbackFonts, text, textRange, color, layout, customMaterial);
|
||||
}
|
||||
else {
|
||||
DrawTextInternal(font, text, textRange, color, layout, customMaterial);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Fills a rectangle area.
|
||||
|
||||
Reference in New Issue
Block a user