#pragma once
#include "Engine/Core/Collections/Array.h"
#include "Engine/Core/Collections/Dictionary.h"
#include "Font.h"
///
/// The font segment info generated during text processing.
///
API_STRUCT(NoDefault) struct MultiFontSegmentCache
{
DECLARE_SCRIPTING_TYPE_MINIMAL(MultiFontSegmentCache);
///
/// The root position of the segment (upper left corner), relative to line.
///
API_FIELD() Float2 Location;
///
/// The height of the current segment
///
API_FIELD() float Height;
///
/// The first character index (from the input text).
///
API_FIELD() int32 FirstCharIndex;
///
/// The last character index (from the input text), inclusive.
///
API_FIELD() int32 LastCharIndex;
///
/// The index of the font to render with
///
API_FIELD() int32 FontIndex;
};
template<>
struct TIsPODType
{
enum { Value = true };
};
///
/// Line of font segments info generated during text processing.
///
API_STRUCT(NoDefault) struct MultiFontLineCache
{
DECLARE_SCRIPTING_TYPE_MINIMAL(MultiFontLineCache);
///
/// The root position of the line (upper left corner).
///
API_FIELD() Float2 Location;
///
/// The line bounds (width and height).
///
API_FIELD() Float2 Size;
///
/// The maximum ascendent of the line.
///
API_FIELD() float MaxAscender;
///
/// The index of the font to render with
///
API_FIELD() Array Segments;
};
API_CLASS(Sealed, NoSpawn) class FLAXENGINE_API MultiFont : public ManagedScriptingObject
{
DECLARE_SCRIPTING_TYPE_NO_SPAWN(MultiFont);
};