From 51e0e6f7134a8530f824435d88cdd49ce50aff9f Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sat, 26 Oct 2024 13:42:33 +0200 Subject: [PATCH 01/96] Initial structures for FontAsset and Text rendering --- swCommonLib/Common/TypesDefinitions.h | 12 ++ swGUI/GUI.sln | 14 ++ .../GeometricsCore/Types/Math/Types.h | 46 +++++ .../GeometricsCore/GeometricsCore.vcxproj | 7 +- .../GeometricsCore.vcxproj.filters | 6 + .../GeometricsCore.vcxproj.user | 4 +- swGraphicAPI/Assets/TextAsset/FontAsset.cpp | 21 +++ swGraphicAPI/Assets/TextAsset/FontAsset.h | 60 +++++++ .../Assets/TextAsset/FontAssetCreator.cpp | 84 +++++++++ .../Assets/TextAsset/FontAssetCreator.h | 50 ++++++ .../Assets/TextAsset/FontAssetInitData.cpp | 20 +++ .../Assets/TextAsset/FontAssetInitData.h | 77 +++++++++ .../Assets/TextAsset/FontAssetLoader.cpp | 2 + .../Assets/TextAsset/FontAssetLoader.h | 0 swGraphicAPI/Assets/TextAsset/Glyph.h | 30 ++++ swGraphicAPI/Assets/TextAsset/Text.cpp | 2 + swGraphicAPI/Assets/TextAsset/Text.h | 81 +++++++++ swGraphicAPI/Assets/TextAsset/stdafx.cpp | 9 + swGraphicAPI/Assets/TextAsset/stdafx.h | 44 +++++ .../Visual2015/LibraryTemplate.vcxproj | 16 +- .../Visual2015/LibraryTemplateConfig.props | 21 --- .../MaterialAsset/MaterialAsset.vcxproj | 2 +- .../Visual2015/TextAsset/TextAsset.vcxproj | 161 ++++++++++++++++++ 23 files changed, 732 insertions(+), 37 deletions(-) create mode 100644 swGeometrics/GeometricsCore/Types/Math/Types.h create mode 100644 swGraphicAPI/Assets/TextAsset/FontAsset.cpp create mode 100644 swGraphicAPI/Assets/TextAsset/FontAsset.h create mode 100644 swGraphicAPI/Assets/TextAsset/FontAssetCreator.cpp create mode 100644 swGraphicAPI/Assets/TextAsset/FontAssetCreator.h create mode 100644 swGraphicAPI/Assets/TextAsset/FontAssetInitData.cpp create mode 100644 swGraphicAPI/Assets/TextAsset/FontAssetInitData.h create mode 100644 swGraphicAPI/Assets/TextAsset/FontAssetLoader.cpp create mode 100644 swGraphicAPI/Assets/TextAsset/FontAssetLoader.h create mode 100644 swGraphicAPI/Assets/TextAsset/Glyph.h create mode 100644 swGraphicAPI/Assets/TextAsset/Text.cpp create mode 100644 swGraphicAPI/Assets/TextAsset/Text.h create mode 100644 swGraphicAPI/Assets/TextAsset/stdafx.cpp create mode 100644 swGraphicAPI/Assets/TextAsset/stdafx.h delete mode 100644 swGraphicAPI/ProjectsDir/Templates/Visual2015/LibraryTemplateConfig.props create mode 100644 swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj diff --git a/swCommonLib/Common/TypesDefinitions.h b/swCommonLib/Common/TypesDefinitions.h index ca4ea760..10b60265 100644 --- a/swCommonLib/Common/TypesDefinitions.h +++ b/swCommonLib/Common/TypesDefinitions.h @@ -34,6 +34,18 @@ typedef uint64_t uint64; typedef size_t Size; +// Rust types naming convention +typedef int8_t i8; +typedef uint8_t u8; +typedef int16_t i16; +typedef uint16_t u16; +typedef int32_t i32; +typedef uint32_t u32; +typedef int64_t i64; +typedef uint64_t u64; +typedef float f32; +typedef double f64; + typedef ptrdiff_t PtrOffset; typedef double TimeType; diff --git a/swGUI/GUI.sln b/swGUI/GUI.sln index 349189d3..96b15ef8 100644 --- a/swGUI/GUI.sln +++ b/swGUI/GUI.sln @@ -159,6 +159,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSerialization.Xml", ".. EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SerializationInterfaces", "..\swSerialization\Projects\Visual2015\Serialization\SerializationInterfaces.vcxproj", "{279D5FBE-D687-4D72-8A39-122B6EF72A69}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TextAsset", "..\swGraphicAPI\ProjectsDir\Visual2015\TextAsset\TextAsset.vcxproj", "{1D15DC68-41B7-4C76-8250-411582E5ACBF}" + ProjectSection(ProjectDependencies) = postProject + {5476CBF5-F7F9-488F-B55C-B6331B82C54A} = {5476CBF5-F7F9-488F-B55C-B6331B82C54A} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 @@ -615,6 +620,14 @@ Global {279D5FBE-D687-4D72-8A39-122B6EF72A69}.Release|x64.Build.0 = Release|x64 {279D5FBE-D687-4D72-8A39-122B6EF72A69}.Release|x86.ActiveCfg = Release|Win32 {279D5FBE-D687-4D72-8A39-122B6EF72A69}.Release|x86.Build.0 = Release|Win32 + {1D15DC68-41B7-4C76-8250-411582E5ACBF}.Debug|x64.ActiveCfg = Debug|x64 + {1D15DC68-41B7-4C76-8250-411582E5ACBF}.Debug|x64.Build.0 = Debug|x64 + {1D15DC68-41B7-4C76-8250-411582E5ACBF}.Debug|x86.ActiveCfg = Debug|Win32 + {1D15DC68-41B7-4C76-8250-411582E5ACBF}.Debug|x86.Build.0 = Debug|Win32 + {1D15DC68-41B7-4C76-8250-411582E5ACBF}.Release|x64.ActiveCfg = Release|x64 + {1D15DC68-41B7-4C76-8250-411582E5ACBF}.Release|x64.Build.0 = Release|x64 + {1D15DC68-41B7-4C76-8250-411582E5ACBF}.Release|x86.ActiveCfg = Release|Win32 + {1D15DC68-41B7-4C76-8250-411582E5ACBF}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -697,6 +710,7 @@ Global {A880DC71-64F3-42F1-BCDC-DD7EAEC430EE} = {DE666E4F-976E-47D7-8F9E-607F801EDD0C} {36978EBD-9F8D-4A5D-98B7-4664EF50F807} = {DE666E4F-976E-47D7-8F9E-607F801EDD0C} {279D5FBE-D687-4D72-8A39-122B6EF72A69} = {33EAE5FD-B685-4FC7-B96D-B3EA53A4C985} + {1D15DC68-41B7-4C76-8250-411582E5ACBF} = {2D8B624F-F50D-4177-9433-DFCC6460E402} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {A341301D-630D-4C6A-B843-1A50FC78565A} diff --git a/swGeometrics/GeometricsCore/Types/Math/Types.h b/swGeometrics/GeometricsCore/Types/Math/Types.h new file mode 100644 index 00000000..5bb02b80 --- /dev/null +++ b/swGeometrics/GeometricsCore/Types/Math/Types.h @@ -0,0 +1,46 @@ +#pragma once +/** +@file Types.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include + + +namespace sw +{ + +typedef DirectX::XMFLOAT2 Position2d; +typedef DirectX::XMFLOAT2 Size2d; +typedef DirectX::XMFLOAT2 Point2d; + + +/**@brief Rectangle structure.*/ +struct Rect2d +{ + float Left; + float Right; + float Top; + float Bottom; + +public: + float GetWidth () { return Right - Left; } + float GetHeight () { return Top - Bottom; } + + bool Intersects ( const Position2d& pos ) + { + if( pos.x < Left ) + return false; + if( pos.x > Right ) + return false; + if( pos.y < Bottom ) + return false; + if( pos.y > Top ) + return false; + return true; + } +}; + +} + diff --git a/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj b/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj index 021ffae1..609dca16 100644 --- a/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj +++ b/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj @@ -33,6 +33,7 @@ + @@ -54,7 +55,6 @@ Geometric 10.0 - StaticLibrary true @@ -81,7 +81,6 @@ true Unicode - @@ -100,21 +99,17 @@ - - Use swGeometrics/GeometricsCore/stdafx.h - - Level3 diff --git a/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj.filters b/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj.filters index 71c45741..087362d8 100644 --- a/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj.filters +++ b/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj.filters @@ -28,6 +28,9 @@ {e0aa2870-9ed2-4cf6-bcc6-899b942a78d6} + + {b2d4b061-0840-4231-8c30-e20b29100d42} + @@ -74,5 +77,8 @@ Geometric\Processors\Transform + + Geometric\Types\Math + \ No newline at end of file diff --git a/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj.user b/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj.user index 88a55094..5df420f5 100644 --- a/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj.user +++ b/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj.user @@ -1,4 +1,6 @@  - + + false + \ No newline at end of file diff --git a/swGraphicAPI/Assets/TextAsset/FontAsset.cpp b/swGraphicAPI/Assets/TextAsset/FontAsset.cpp new file mode 100644 index 00000000..c8fff0d7 --- /dev/null +++ b/swGraphicAPI/Assets/TextAsset/FontAsset.cpp @@ -0,0 +1,21 @@ +#include "swGraphicAPI/Assets/TextAsset/stdafx.h" + +#include "FontAsset.h" + +namespace sw +{ + +FontAsset::FontAsset( AssetPath filePath, FontInitData&& initData ) + : Resource( filePath ) + , m_fontSize( initData.FontSize ) + , m_fontAtlas( initData.FontAtlas ) + , m_glyphs( std::move( initData.Glyphs ) ) + , m_kerning( std::move( initData.Kerning ) ) +{} + +FontAsset::~FontAsset() +{} + +} // sw + + diff --git a/swGraphicAPI/Assets/TextAsset/FontAsset.h b/swGraphicAPI/Assets/TextAsset/FontAsset.h new file mode 100644 index 00000000..27c82a00 --- /dev/null +++ b/swGraphicAPI/Assets/TextAsset/FontAsset.h @@ -0,0 +1,60 @@ +#pragma once +/** +@file FontAsset.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include "swGraphicAPI/Resources/Textures/Texture.h" + +#include "swGraphicAPI/Assets/TextAsset/FontAssetInitData.h" +#include "swGraphicAPI/Assets/TextAsset/Glyph.h" + + +namespace sw +{ + +/**@defgroup Text Text + +@brief Classes describing text and fonts. + +@ingroup Assets +*/ + + + +/**@brief Class describes Font. + +@ingroup Assets +@ingroup Text +*/ +class FontAsset : public Resource +{ + RTTR_ENABLE( Resource ); + RTTR_REGISTRATION_FRIEND; +protected: + + TexturePtr m_fontAtlas; + + uint32 m_fontSize; + + /**Stores information how to render and layout each character*/ + std::map< wchar_t, Glyph > m_glyphs; + + /**Each character pair can be shifted indiidually to give text better look in terms of spacing. */ + std::map< std::pair< wchar_t, wchar_t >, float > m_kerning; + + +public: + explicit FontAsset ( AssetPath filePath, FontInitData&& initData ); + + std::string FontName () const { return GetAssetPath().GetFile().GetFileName(); } + uint32 FontSize () const { return m_fontSize; } + +private: + ~FontAsset(); +}; + +DEFINE_RESOURCE_PTR_TYPE( FontAsset ); + +} // sw diff --git a/swGraphicAPI/Assets/TextAsset/FontAssetCreator.cpp b/swGraphicAPI/Assets/TextAsset/FontAssetCreator.cpp new file mode 100644 index 00000000..6e29f7b5 --- /dev/null +++ b/swGraphicAPI/Assets/TextAsset/FontAssetCreator.cpp @@ -0,0 +1,84 @@ +/** +@file FontCreator.cpp +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include "swGraphicAPI/Assets/TextAsset/stdafx.h" + +#include "FontAssetCreator.h" + +#include "swGraphicAPI/Resources/MeshResources.h" + + + +namespace sw +{ + +// ================================ // +// +Nullable< Resource* > FontCreator::Create ( const AssetPath& assetName, IAssetCreateInfo&& createInfo ) +{ + TypeID type = createInfo.get_type(); + if( type == TypeID::get< FontInitData >() ) + { + return new FontAsset( assetName, std::move( static_cast< FontInitData&& >( createInfo ) ) ); + } + + return "[FontCreator] IAssetCreateInfo of type [" + TypeID::get( createInfo ).get_name().to_string() + "] not supported."; +} + +// ================================ // +// +Nullable< Resource* > FontCreator::LoadFromRaw ( const AssetPath& assetName, const BufferRaw& rawData ) +{ + assert( !"Buffer is not cacheable" ); + return nullptr; +} + +// ================================ // +// +BufferRaw FontCreator::SaveToRaw ( const IAssetCreateInfo& createInfo ) +{ + assert( !"Buffer is not cacheable" ); + return BufferTyped< uint8 >::CreateEmpty(); +} + +// ================================ // +// +BufferRaw FontCreator::SaveToRaw ( ResourcePtr< Resource > resource ) +{ + assert( !"Buffer is not cacheable" ); + return BufferTyped< uint8 >::CreateEmpty(); +} + +// ================================ // +// +bool FontCreator::IsCacheable () const +{ + return false; +} + +// ================================ // +// +bool FontCreator::SupportsResourceToRaw () const +{ + return false; +} + +// ================================ // +// +TypeID FontCreator::GetAssetType () const +{ + return TypeID::get< FontAsset >(); +} + +// ================================ // +// +FontCreatorPtr FontCreator::CreateCreator () +{ + return std::make_shared< FontCreator >(); +} + + +} // sw diff --git a/swGraphicAPI/Assets/TextAsset/FontAssetCreator.h b/swGraphicAPI/Assets/TextAsset/FontAssetCreator.h new file mode 100644 index 00000000..cb89ceeb --- /dev/null +++ b/swGraphicAPI/Assets/TextAsset/FontAssetCreator.h @@ -0,0 +1,50 @@ +#pragma once +/** +@file FontCreator.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include "swGraphicAPI/ResourceManager/AssetCreators/IAssetCreator.h" + +#include "FontAsset.h" + + +namespace sw +{ + +class FontCreator; +DEFINE_PTR_TYPE( FontCreator ); + + + +/**@brief Creates @ref FontAsset. +@ingroup AssetsCreators*/ +class FontCreator : public IAssetCreator +{ +private: +protected: +public: + explicit FontCreator() = default; + virtual ~FontCreator() = default; + + +public: + + virtual Nullable< Resource* > Create ( const AssetPath& assetName, IAssetCreateInfo&& createInfo ) override; + + virtual Nullable< Resource* > LoadFromRaw ( const AssetPath& assetName, const BufferRaw& rawData ) override; + virtual BufferRaw SaveToRaw ( const IAssetCreateInfo& createInfo ) override; + virtual BufferRaw SaveToRaw ( ResourcePtr< Resource > resource ) override; + + virtual bool IsCacheable () const override; + virtual bool SupportsResourceToRaw () const override; + virtual TypeID GetAssetType () const override; + +public: + + static FontCreatorPtr CreateCreator(); +}; + +} // sw + diff --git a/swGraphicAPI/Assets/TextAsset/FontAssetInitData.cpp b/swGraphicAPI/Assets/TextAsset/FontAssetInitData.cpp new file mode 100644 index 00000000..f2172ac8 --- /dev/null +++ b/swGraphicAPI/Assets/TextAsset/FontAssetInitData.cpp @@ -0,0 +1,20 @@ +/** +@file FontAssetInitData.cpp +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ +#include "swGraphicAPI/Assets/TextAsset/stdafx.h" + + +#include "swGraphicAPI/ResourceManager/ResourceManager.h" +#include "swGraphicAPI/ResourceManager/ResourceManagerAPI.h" + + + +namespace sw +{ + + + +} // sw + diff --git a/swGraphicAPI/Assets/TextAsset/FontAssetInitData.h b/swGraphicAPI/Assets/TextAsset/FontAssetInitData.h new file mode 100644 index 00000000..ddb0ba81 --- /dev/null +++ b/swGraphicAPI/Assets/TextAsset/FontAssetInitData.h @@ -0,0 +1,77 @@ +#pragma once +/** +@file FontAssetInitData.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + + +#include "swCommonLib/Common/TypesDefinitions.h" + +#include "swGraphicAPI/Resources/MeshResources.h" +#include "swGraphicAPI/ResourceManager/AssetCreators/IAssetCreateInfo.h" +#include "swGraphicAPI/ResourceManager/Loaders/IAssetLoadInfo.h" + +#include "swGraphicAPI/Assets/TextAsset/Glyph.h" + +namespace sw +{ + +class FontAsset; +class ResourceManager; + +/**@brief Struct contains data needed to initialize font. +@ingroup Text*/ +struct FontInitData : public IAssetCreateInfo +{ + RTTR_ENABLE( IAssetCreateInfo ); +public: + + TexturePtr FontAtlas; + uint32 FontSize; + + /**Stores information how to render and layout each character*/ + std::map< wchar_t, Glyph > Glyphs; + + /**Each character pair can be shifted indiidually to give text better look in terms of spacing. */ + std::map< std::pair< wchar_t, wchar_t >, float > Kerning; + +public: + explicit FontInitData () {} + +public: + /**Returns type of asset that can be created using this structure.*/ + virtual TypeID GetAssetType () const override { return TypeID::get< FontAsset >(); } +}; + + + +/**@brief Struct describing font to load. +@ingroup Text*/ +struct FontLoaderData : public IAssetLoadInfo +{ + RTTR_ENABLE( IAssetLoadInfo ); +public: + + AssetPath FontPath; + /**Characters that will be rendered to texture atlas.*/ + std::wstring CharacterSet; + uint32 FontSize; + bool GenerateMipmaps; + +public: + explicit FontLoaderData () {} + +public: + + +public: + /**Returns type of asset that can be created using this structure.*/ + virtual TypeID GetAssetType () const override { return TypeID::get< FontAsset >(); } +}; + + + + +} // sw + diff --git a/swGraphicAPI/Assets/TextAsset/FontAssetLoader.cpp b/swGraphicAPI/Assets/TextAsset/FontAssetLoader.cpp new file mode 100644 index 00000000..d3043a20 --- /dev/null +++ b/swGraphicAPI/Assets/TextAsset/FontAssetLoader.cpp @@ -0,0 +1,2 @@ +#include "swGraphicAPI/Assets/TextAsset/stdafx.h" + diff --git a/swGraphicAPI/Assets/TextAsset/FontAssetLoader.h b/swGraphicAPI/Assets/TextAsset/FontAssetLoader.h new file mode 100644 index 00000000..e69de29b diff --git a/swGraphicAPI/Assets/TextAsset/Glyph.h b/swGraphicAPI/Assets/TextAsset/Glyph.h new file mode 100644 index 00000000..303528b6 --- /dev/null +++ b/swGraphicAPI/Assets/TextAsset/Glyph.h @@ -0,0 +1,30 @@ +#pragma once + +#include "swCommonLib/Common/TypesDefinitions.h" + +namespace sw +{ + +/**@brief Describes single glyph. +http://freetype.org/freetype2/docs/tutorial/step2.html#section-2 +@ingroup Text*/ +struct Glyph +{ + uint16 CharCode; + uint16 GlyphIdx; // Index of glyph in freetype font + + uint32 Width; + uint32 Height; + + int32 AdvanceX; // The horizontal distance to increment the pen position when the glyph is drawn as part of a string of text. + int32 AdvanceY; // The vertical distance used to increment the pen position when the glyph is drawn as part of a string of text. + int32 BearingX; // The horizontal distance from the current cursor position to the leftmost border of the glyph image's bounding box. + int32 BearingY; // The vertical distance from the current cursor position (on the baseline) to the topmost border of the glyph image's bounding box. + + uint32 TextureX; // x pixel coord of the bitmap's bottom-left corner + uint32 TextureY; // y pixel coord of the bitmap's bottom-left corner + + Size Padding; +}; + +} // sw diff --git a/swGraphicAPI/Assets/TextAsset/Text.cpp b/swGraphicAPI/Assets/TextAsset/Text.cpp new file mode 100644 index 00000000..d3043a20 --- /dev/null +++ b/swGraphicAPI/Assets/TextAsset/Text.cpp @@ -0,0 +1,2 @@ +#include "swGraphicAPI/Assets/TextAsset/stdafx.h" + diff --git a/swGraphicAPI/Assets/TextAsset/Text.h b/swGraphicAPI/Assets/TextAsset/Text.h new file mode 100644 index 00000000..65f64402 --- /dev/null +++ b/swGraphicAPI/Assets/TextAsset/Text.h @@ -0,0 +1,81 @@ +#pragma once +/** +@file Text.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include "swGraphicAPI/Assets/TextAsset/FontAsset.h" +#include "swGeometrics/GeometricsCore/Types/Math/Types.h" + +namespace sw +{ + +/**@brief Decides how text should be aligned. +@ingroup Text*/ +enum class TextAlignmentType +{ + Left, + Center, + Right, + Justification, + // Allign text to specific character. For example floating point numbers + // `1.0023` and `25611.5` could be aligned to `.` like this: + // 1.0023 + // 25611.5 + Character, +}; + + +/**@brief Arranges text. +@ingroup Text*/ +class TextArrange +{ +public: + float Interspace; + float NewLineSize; + float SpaceSize; + TextAlignmentType TextAlign; + wchar_t AlignCharacter; + bool UseKerning; + /**Wrap text according to Bounds. If set to false, text won't have any limit. + Depending on TextAlignment, Bounds will be used to determine left, right or center of the text.*/ + bool WrapText; + Rect2d Bounds; + + float AspectRatio; + +public: + +}; + + + +/**@brief Class for displaying Text on screen. + +Layouts and formats text according to rules and parameters provided. +Generates vertex buffer for displaying text on screen. + +This class can be used to display simple texts that use only one font without special formatting. +For more complicated cases where some parts of the text have different formatting, new class should be created. + +@ingroup Text*/ +class Text +{ +private: +protected: + FontAssetPtr m_font; + VertexShaderPtr m_vertexShader; + PixelShaderPtr m_pixelShader; + + TextArrange m_arrange; + + std::string m_text; // Text to display. + +public: + explicit Text() = default; + ~Text() = default; + +}; + +} // sw diff --git a/swGraphicAPI/Assets/TextAsset/stdafx.cpp b/swGraphicAPI/Assets/TextAsset/stdafx.cpp new file mode 100644 index 00000000..a68c8da4 --- /dev/null +++ b/swGraphicAPI/Assets/TextAsset/stdafx.cpp @@ -0,0 +1,9 @@ +// stdafx.cpp : source file that includes just the standard includes +// stdafx.obj will contain the pre-compiled type information + +#include "swGraphicAPI/Assets/TextAsset/stdafx.h" + + + +// TODO: reference any additional headers you need in STDAFX.H +// and not in this file diff --git a/swGraphicAPI/Assets/TextAsset/stdafx.h b/swGraphicAPI/Assets/TextAsset/stdafx.h new file mode 100644 index 00000000..755a57b0 --- /dev/null +++ b/swGraphicAPI/Assets/TextAsset/stdafx.h @@ -0,0 +1,44 @@ +#pragma once +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + + +/// @note You can disable all headers in precompiled header with one macro. +/// All cpp files should be precompiled header independet and explicitly include needed headers. +#ifndef DISABLE_PRECOMPILED_HEADER + + +#include + +#include +#include +#include + +#include + +#include "swCommonLib/Common/RTTR.h" + +#include "swGraphicAPI/Resources/MeshResources.h" +#include "swGraphicAPI/Resources/PipelineStates/BlendingState.h" +#include "swGraphicAPI/Resources/PipelineStates/DepthStencilState.h" +#include "swGraphicAPI/Resources/PipelineStates/RasterizerState.h" +#include "swGraphicAPI/Rendering/GraphicAPIConstants.h" +#include "swGraphicAPI/ResourceManager/ResourceManager.h" +#include "swGraphicAPI/Resources/ResourcesFactory.h" +#include "swGraphicAPI/Resources/SwapChain.h" + +#include "swCommonLib/System/File.h" +#include "swCommonLib/Common/Buffers/BufferTyped.h" + + + +#undef min +#undef max +#undef RegisterClass + + +#endif // !DISABLE_PRECOMPILED_HEADER + + diff --git a/swGraphicAPI/ProjectsDir/Templates/Visual2015/LibraryTemplate.vcxproj b/swGraphicAPI/ProjectsDir/Templates/Visual2015/LibraryTemplate.vcxproj index 1d143bcd..5d0446ec 100644 --- a/swGraphicAPI/ProjectsDir/Templates/Visual2015/LibraryTemplate.vcxproj +++ b/swGraphicAPI/ProjectsDir/Templates/Visual2015/LibraryTemplate.vcxproj @@ -42,48 +42,48 @@ StaticLibrary true - v140 + v143 Unicode StaticLibrary true - v140 + v143 Unicode StaticLibrary false - v140 + v143 true Unicode StaticLibrary false - v140 + v143 true Unicode + + + + - - - - diff --git a/swGraphicAPI/ProjectsDir/Templates/Visual2015/LibraryTemplateConfig.props b/swGraphicAPI/ProjectsDir/Templates/Visual2015/LibraryTemplateConfig.props deleted file mode 100644 index bb5e7a75..00000000 --- a/swGraphicAPI/ProjectsDir/Templates/Visual2015/LibraryTemplateConfig.props +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - $(ProjectName) - $(LibDir)$(LibraryName)\ - $(SourceDir)$(LibraryName)\ - $(LibraryName)_$(Configuration)_$(PlatformShortName)_$(PlatformToolset) - $(BuildDir)$(LibraryName)_$(Configuration)_$(PlatformShortName)_$(PlatformToolset)\ - - - - $(LibraryNameBuildDir) - $(LibraryNameFileName) - $(LibraryNameLibDir) - - - - \ No newline at end of file diff --git a/swGraphicAPI/ProjectsDir/Visual2015/MaterialAsset/MaterialAsset.vcxproj b/swGraphicAPI/ProjectsDir/Visual2015/MaterialAsset/MaterialAsset.vcxproj index f284641e..f3bfcffb 100644 --- a/swGraphicAPI/ProjectsDir/Visual2015/MaterialAsset/MaterialAsset.vcxproj +++ b/swGraphicAPI/ProjectsDir/Visual2015/MaterialAsset/MaterialAsset.vcxproj @@ -81,10 +81,10 @@ Unicode + - diff --git a/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj b/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj new file mode 100644 index 00000000..91082124 --- /dev/null +++ b/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj @@ -0,0 +1,161 @@ + + + + TextAsset + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + Win32Proj + $(ProjectName) + {1D15DC68-41B7-4C76-8250-411582E5ACBF} + + + + Create + Create + Create + Create + + + + + + + + + + + + + + + + + + + StaticLibrary + true + v143 + Unicode + + + StaticLibrary + true + v143 + Unicode + + + StaticLibrary + false + v143 + true + Unicode + + + StaticLibrary + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + + + Use + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + swGraphicAPI/Assets/$(ProjectName)/stdafx.h + + + Windows + true + + + + + Use + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + swGraphicAPI/Assets/$(ProjectName)/stdafx.h + + + Windows + true + + + + + Level3 + Use + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + swGraphicAPI/Assets/$(ProjectName)/stdafx.h + + + Windows + true + true + true + + + + + Level3 + Use + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + swGraphicAPI/Assets/$(ProjectName)/stdafx.h + + + Windows + true + true + true + + + + + + \ No newline at end of file From e7de1f567ba7d3bf3e05217429b4094a2daa777e Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sat, 26 Oct 2024 14:12:49 +0200 Subject: [PATCH 02/96] Add FreeType dependency --- .../External/freetype-2.13.3/CHANGES.txt | 5726 +++++++++++++++++ swGraphicAPI/External/freetype-2.13.3/FTL.TXT | 169 + .../External/freetype-2.13.3/GPLv2.TXT | 340 + .../External/freetype-2.13.3/LICENSE.TXT | 46 + .../External/freetype-2.13.3/README.md | 22 + .../include/freetype/config/ftconfig.h | 51 + .../include/freetype/config/ftheader.h | 836 +++ .../include/freetype/config/ftmodule.h | 33 + .../include/freetype/config/ftoption.h | 1030 +++ .../include/freetype/config/ftstdlib.h | 185 + .../include/freetype/config/integer-types.h | 250 + .../include/freetype/config/mac-support.h | 49 + .../include/freetype/config/public-macros.h | 138 + .../include/freetype/freetype.h | 5289 +++++++++++++++ .../include/freetype/ftadvanc.h | 188 + .../freetype-2.13.3/include/freetype/ftbbox.h | 101 + .../freetype-2.13.3/include/freetype/ftbdf.h | 212 + .../include/freetype/ftbitmap.h | 329 + .../include/freetype/ftbzip2.h | 102 + .../include/freetype/ftcache.h | 1087 ++++ .../include/freetype/ftchapters.h | 168 + .../freetype-2.13.3/include/freetype/ftcid.h | 167 + .../include/freetype/ftcolor.h | 1667 +++++ .../include/freetype/ftdriver.h | 1320 ++++ .../include/freetype/fterrdef.h | 283 + .../include/freetype/fterrors.h | 296 + .../include/freetype/ftfntfmt.h | 93 + .../freetype-2.13.3/include/freetype/ftgasp.h | 143 + .../include/freetype/ftglyph.h | 750 +++ .../include/freetype/ftgxval.h | 354 + .../freetype-2.13.3/include/freetype/ftgzip.h | 151 + .../include/freetype/ftimage.h | 1289 ++++ .../include/freetype/ftincrem.h | 348 + .../include/freetype/ftlcdfil.h | 323 + .../freetype-2.13.3/include/freetype/ftlist.h | 296 + .../include/freetype/ftlogging.h | 184 + .../freetype-2.13.3/include/freetype/ftlzw.h | 100 + .../freetype-2.13.3/include/freetype/ftmac.h | 289 + .../freetype-2.13.3/include/freetype/ftmm.h | 834 +++ .../include/freetype/ftmodapi.h | 807 +++ .../include/freetype/ftmoderr.h | 204 + .../include/freetype/ftotval.h | 206 + .../include/freetype/ftoutln.h | 588 ++ .../include/freetype/ftparams.h | 218 + .../freetype-2.13.3/include/freetype/ftpfr.h | 179 + .../include/freetype/ftrender.h | 244 + .../include/freetype/ftsizes.h | 159 + .../include/freetype/ftsnames.h | 272 + .../include/freetype/ftstroke.h | 773 +++ .../include/freetype/ftsynth.h | 104 + .../include/freetype/ftsystem.h | 350 + .../include/freetype/fttrigon.h | 350 + .../include/freetype/fttypes.h | 617 ++ .../include/freetype/ftwinfnt.h | 276 + .../freetype-2.13.3/include/freetype/otsvg.h | 336 + .../include/freetype/t1tables.h | 735 +++ .../include/freetype/ttnameid.h | 1235 ++++ .../include/freetype/tttables.h | 856 +++ .../freetype-2.13.3/include/freetype/tttags.h | 124 + .../freetype-2.13.3/include/ft2build.h | 42 + .../release-dll/win32/freetype.dll | Bin 0 -> 566272 bytes .../release-dll/win32/freetype.lib | Bin 0 -> 50502 bytes .../release-dll/win64/freetype.dll | Bin 0 -> 684544 bytes .../release-dll/win64/freetype.lib | Bin 0 -> 49398 bytes .../freetype-2.13.3/release-static/README.TXT | 1 + .../vs2015-2022/win32/freetype.lib | Bin 0 -> 4140810 bytes .../vs2015-2022/win64/freetype.lib | Bin 0 -> 4591050 bytes .../Visual2015/ImportFreeType.props | 37 + .../Visual2015/TextAsset/TextAsset.vcxproj | 3 + 69 files changed, 33954 insertions(+) create mode 100644 swGraphicAPI/External/freetype-2.13.3/CHANGES.txt create mode 100644 swGraphicAPI/External/freetype-2.13.3/FTL.TXT create mode 100644 swGraphicAPI/External/freetype-2.13.3/GPLv2.TXT create mode 100644 swGraphicAPI/External/freetype-2.13.3/LICENSE.TXT create mode 100644 swGraphicAPI/External/freetype-2.13.3/README.md create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/config/ftconfig.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/config/ftheader.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/config/ftmodule.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/config/ftoption.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/config/ftstdlib.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/config/integer-types.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/config/mac-support.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/config/public-macros.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/freetype.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftadvanc.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftbbox.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftbdf.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftbitmap.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftbzip2.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftcache.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftchapters.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftcid.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftcolor.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftdriver.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/fterrdef.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/fterrors.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftfntfmt.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftgasp.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftglyph.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftgxval.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftgzip.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftimage.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftincrem.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftlcdfil.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftlist.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftlogging.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftlzw.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftmac.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftmm.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftmodapi.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftmoderr.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftotval.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftoutln.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftparams.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftpfr.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftrender.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftsizes.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftsnames.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftstroke.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftsynth.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftsystem.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/fttrigon.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/fttypes.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ftwinfnt.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/otsvg.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/t1tables.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/ttnameid.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/tttables.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/freetype/tttags.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/include/ft2build.h create mode 100644 swGraphicAPI/External/freetype-2.13.3/release-dll/win32/freetype.dll create mode 100644 swGraphicAPI/External/freetype-2.13.3/release-dll/win32/freetype.lib create mode 100644 swGraphicAPI/External/freetype-2.13.3/release-dll/win64/freetype.dll create mode 100644 swGraphicAPI/External/freetype-2.13.3/release-dll/win64/freetype.lib create mode 100644 swGraphicAPI/External/freetype-2.13.3/release-static/README.TXT create mode 100644 swGraphicAPI/External/freetype-2.13.3/release-static/vs2015-2022/win32/freetype.lib create mode 100644 swGraphicAPI/External/freetype-2.13.3/release-static/vs2015-2022/win64/freetype.lib create mode 100644 swGraphicAPI/ProjectsDir/Visual2015/ImportFreeType.props diff --git a/swGraphicAPI/External/freetype-2.13.3/CHANGES.txt b/swGraphicAPI/External/freetype-2.13.3/CHANGES.txt new file mode 100644 index 00000000..bd7b12a8 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/CHANGES.txt @@ -0,0 +1,5726 @@ +CHANGES BETWEEN 2.13.2 and 2.13.3 (2024-Aug-11) + + I. IMPORTANT CHANGES + + - Some fields in the `FT_Outline` structure have been changed + from signed to unsigned type, which better reflects the actual + usage. It is also an additional means to protect against + malformed input. + + + II. IMPORTANT BUG FIXES + + - Rare double-free crashes in the cache subsystem have been fixed. + + - Excessive stack allocation in the autohinter has been fixed. + + + III. MISCELLANEOUS + + - The B/W rasterizer has received a major upkeep that results in + large performance improvements. The rendering speed has increased + and even doubled for very complex glyphs. + + - If the new configuration option `TT_CONFIG_OPTION_GPOS_KERNING` is + defined, `FT_Get_Kerning` understands rudimentary GPOS kerning + (for TrueType fonts only). This is not enabled by default since + its usage is very limited, mainly for legacy applications that + have to support TrueType fonts automatically converted from 'kern' + tables to GPOS kerning. If you need proper (GPOS) kerning support + please use a higher-level library like HarfBuzz. + + Code contributed by David Saltzman . + + - The internal structures `PS_DesignMap` and `PS_Blend` related to + parsing of old Multiple Masters fonts have been removed from the + public header file `t1tables.h`. + + +====================================================================== + +CHANGES BETWEEN 2.13.1 and 2.13.2 (2023-Aug-25) + + I. MISCELLANEOUS + + - Better support for CFF2 variation fonts. + + - TrueType interpreter version 38 (also known as 'Infinality') has + been removed. + + - Improved OpenVMS support. + + +====================================================================== + +CHANGES BETWEEN 2.13.0 and 2.13.1 (2023-Jun-24) + + I. MISCELLANEOUS + + - New function `FT_Get_Default_Named_Instance` to get the index of + the default named instance of an OpenType Variation Font. + + - A new load flag `FT_LOAD_NO_SVG` to make FreeType ignore glyphs in + an 'SVG ' table. + + - New function `FT_GlyphSlot_AdjustWeight` to adjust the glyph + weight either horizontally or vertically. This is part of the + `ftsynth.h` header file, which is still considered to be in alpha + stage. + + - TrueType interpreter version 38 (also known as 'Infinality') has + been deactivated; the value of `TT_INTERPRETER_VERSION_38` is now + the same as `TT_INTERPRETER_VERSION_40`. + + - Updated OpenVMS support. + + - The base API documentation has been modularized for easier + handling. + + - Switching named instances on and off in Variation Fonts was buggy + if the design coordinates didn't change. + + - `ftbench` has a new command-line option `-a` to apply design + coordinates. + + - `ftview` can now flip SVG rendering on and off using the 'Z' key. + + - In `ftmulti` it is now possible to toggle the fill rule and + overlap flag used for rendering glyphs using the 'F3' and 'F4' + keys, respectively. Toggling the anti-aliased mode has been + changed to the 'TAB' key. + + +====================================================================== + +CHANGES BETWEEN 2.12.1 and 2.13.0 (2023-Feb-09) + + I. IMPORTANT CHANGES + + - The demo program `ftinspect` has been completely updated and much + enhanced. It now combines the functionality of almost all other + graphical FreeType demo programs into a single application based + on the Qt framework. This was Charlie Jiang's GSoC 2022 project. + + - The 'COLR' v1 API is now considered as stable. + + https://learn.microsoft.com/en-us/typography/opentype/spec/colr + + + II. MISCELLANEOUS + + - For OpenType Variable Fonts, `avar` table format 2.0 is now + supported. The code was contributed by Behdad Esfahbod. + + Note that this is an extension supported on recent Apple platforms + and by HarfBuzz, but not yet in the OpenType standard! See + + https://github.com/harfbuzz/boring-expansion-spec/blob/main/avar2.md + + for the specification. To deactivate it, define the configuration + macro 'TT_CONFIG_OPTION_NO_BORING_EXPANSION'. + + - A new API `FT_GlyphSlot_Slant` to slant a glyph by a given angle + has been added. Note that this function is part of `ftsynth.h`, + which is still considered to be in alpha stage. + + - TrueType interpreter version 38 (also known as 'Infinality') that + was first introduced about 10 years ago in FreeType 2.4.11 is now + deprecated and slated to be removed in the next version. TrueType + interpreter version 40 has been FreeType's default version for six + years now and provides an excellent alternative. This is the last + FreeType version with TT_INTERPRETER_VERSION_38 and + TT_INTERPRETER_VERSION_40 treated differently. + + - The only referenced but never documented configuration macro + `FT_CONFIG_OPTION_NO_GLYPH_NAMES` has been removed. + + - The `ftbench` demo program got a new command line option `-e` to + set a charmap index. + + - Specifying a point size is now optional for the demo programs + `ftgrid`, `ftmulti`, `ftstring`, and `ftview`. If not given, a + default size is used. + + - For `ftgrid`, `ftstring`, and `ftview`, option `-e` now also + accepts a numeric value to set a charmap index. + + - In `ftstring`, it is now possible to set the displayed text + interactively by pressing the 'Enter' key. + + - `ftmulti` can now handle up to 16 design axes. + + - To avoid reserved identifiers that are globally defined, the + auto-hinter debugging macros (which are only available if + `FT_DEBUG_AUTOFIT` is defined) + + ``` + _af_debug_disable_horz_hints + _af_debug_disable_vert_hints + _af_debug_disable_blue_hints + _af_debug_hints + ``` + + have been renamed to + + ``` + af_debug_disable_horz_hints_ + af_debug_disable_vert_hints_ + af_debug_disable_blue_hints_ + af_debug_hints_ + ``` + + - The internal zlib library was updated to version 1.2.13. Note, + however, that FreeType is *not* affected by CVE-2022-37434 since + it doesn't use the `inflateGetHeader` function. + + +====================================================================== + +CHANGES BETWEEN 2.12.0 and 2.12.1 (2022-May-01) + + I. IMPORTANT BUG FIXES + + - Loading CFF fonts sometimes made FreeType crash (bug introduced in + version 2.12.0) + + - Loading a fully hinted TrueType glyph a second time (without + caching) sometimes yielded different rendering results if TrueType + hinting was active (bug introduced in version 2.12.0). + + - The generation of the pkg-config file `freetype2.pc` was broken if + the build was done with cmake (bug introduced in version 2.12.0). + + + II. MISCELLANEOUS + + - New option `--with-librsvg` for the `configure` script for better + FreeType demo support. + + - The meson build no longer enforces both static and dynamic + versions of the library by default. + + - The internal zlib library was updated to version 1.2.12. Note, + however, that FreeType is *not* affected by CVE-2018-25032 since + it only does decompression. + + +====================================================================== + +CHANGES BETWEEN 2.11.1 and 2.12.0 (2022-Mar-30) + + I. IMPORTANT CHANGES + + - FreeType now handles OT-SVG fonts, to be controlled with + `FT_CONFIG_OPTION_SVG` configuration macro. By default, it can + only load the 'SVG ' table of an OpenType font. However, by using + the `svg-hooks` property of the new 'ot-svg' module it is possible + to register an external SVG rendering engine. The FreeType demo + programs have been set up to use 'librsvg' as the rendering + library. + + This work was Moazin Khatti's GSoC 2019 project. + + + II. MISCELLANEOUS + + - The handling of fonts with an 'sbix' table has been improved. + + - Corrected bitmap offsets. + + - A new tag `FT_PARAM_TAG_IGNORE_SBIX` for `FT_Open_Face` makes + FreeType ignore an 'sbix' table in a font, allowing applications + to access the font's outline glyphs. + + - `FT_FACE_FLAG_SBIX` and `FT_FACE_FLAG_SBIX_OVERLAY` together + with their corresponding preprocessor macros `FT_HAS_SBIX` and + `FT_HAS_SBIX_OVERLAY` enable applications to treat 'sbix' tables + as described in the OpenType specification. + + - The internal 'zlib' code has been updated to be in sync with the + current 'zlib' version (1.2.11). + + - The previously internal load flag `FT_LOAD_SBITS_ONLY` is now + public. + + - Some minor improvements of the building systems, in particular + handling of the 'zlib' library (internal vs. external). + + - Support for non-desktop Universal Windows Platform. + + - Various other minor bug and documentation fixes. + + - The `ftdump` demo program shows more information for Type1 fonts + if option `-n` is given. + + - `ftgrid` can now display embedded bitmap strikes. + + +====================================================================== + +CHANGES BETWEEN 2.11.0 and 2.11.1 (2021-Dec-01) + + I. IMPORTANT CHANGES + + - Some fields in the `CID_FaceDictRec`, `CID_FaceInfoRec`, and + `FT_Data` structures have been changed from signed to unsigned + type, which better reflects the actual usage. It is also an + additional means to protect against malformed input. + + + II. MISCELLANEOUS + + - Cmake support has been further improved. To do that various + backward-incompatible changes were necessary; please see file + `CMakeLists.txt` for more details. + + - Since version 2.11.0, a C99 compiler is necessary to compile + FreeType. + + - The experimental 'COLR' v1 API has been updated to the latest + OpenType standard 1.9. + + - The `apinames` tool got a new option `-wV` to output an OpenVMS + Linker Option File. + + - VMS support was updated. + + - MS Visual Studio support was added to build the demo programs. + + +====================================================================== + +CHANGES BETWEEN 2.10.4 and 2.11.0 (2021-Jul-18) + + I. IMPORTANT CHANGES + + - A new rendering module has been added to create 8-bit Signed + Distance Field (SDF) bitmaps for both outline and bitmap glyphs. + The new rendering mode is called `FT_RENDER_MODE_SDF`, the pixel + mode is `FT_PIXEL_MODE_GRAY8`, and the corresponding raster flag + is `FT_RASTER_FLAG_SDF`. + + This work was Anuj Verma's GSoC 2020 project. + + - A new, experimental API is now available for surfacing properties + of 'COLR' v1 color fonts (as the name says, this is an extension + to the 'COLR' table for outline color fonts using the SFNT + container format). 'COLR' v1 fonts are a recently proposed + addition to OFF and OpenType; specification work currently happens + in + + https://github.com/googlefonts/colr-gradients-spec/ + + 'COLR' v1 is expected to be merged to OpenType; the ISO + standardisation process for adding 'COLR' v1 as an amendment to + OFF is underway. + + Functions similar to the already existing 'COLR' API have been + added to access the corresponding data. + + FT_Get_Color_Glyph_Paint + Retrieve the root paint for a given glyph ID. + + FT_Get_Paint_Layers + Access the layers of a `PaintColrLayers` table. + + FT_Get_Colorline_Stops + Retrieve the 'color stops' on a color line. As an input, a + color stop iterator gets used, which in turn is retrieved from + a paint. + + FT_Get_Paint + Dereference an `FT_OpaquePaint` object and retrieve the + corresponding `FT_COLR_Paint` object, which contains details + on how to draw the respective 'COLR' v1 `Paint` table. + + + II. MISCELLANEOUS + + - FreeType has moved its infrastructure to + + https://gitlab.freedesktop.org/freetype + + A side effect is that the git repositories are now called + `freetype.git` and `freetype-demos.git`, which by default expand + to the directories `freetype` and `freetype-demos`, respectively. + The documentation has been updated accordingly. + + FreeType's Savannah repositories will stay; they are now mirrors + of the 'freedesktop.org' repositories. + + - A new function `FT_Get_Transform` returns the values set by + `FT_Set_Transform`. + + - A new configuration macro `FT_DEBUG_LOGGING` is available. It + provides extended debugging capabilities for FreeType, for example + showing a time stamp or displaying the component a tracing message + comes from. See file `docs/DEBUG` for more information. + + This work was Priyesh Kumar's GSoC 2020 project. + + - The legacy Type 1 and CFF engines are further demoted due to lack + of CFF2 charstring support. You now need to use `FT_Property_Set` + to enable them besides the `T1_CONFIG_OPTION_OLD_ENGINE` and + `CFF_CONFIG_OPTION_OLD_ENGINE` options, respectively. + + - The experimental 'warp' mode (AF_CONFIG_OPTION_USE_WARPER) for the + auto-hinter has been removed. + + - The smooth rasterizer performance has been improved by >10%. Note + that due to necessary code changes there might be very subtle + differences in rendering. They are not visible by the eye, + however. + + - PCF bitmap fonts compressed with LZW (these are usually files with + the extension `.pcf.Z`) are now handled correctly. + + - Improved Meson build files, including support to build the + FreeType demo programs. + + - A new demo program `ftsdf` is available to display Signed Distance + Fields of glyphs. + + - The `ftlint` demo program has been extended to do more testing of + its input. In particular, it can display horizontal and vertical + acutances for quality assessment, together with computing MD5 + checksums of rendered glyphs. + + [The acutance measures how sharply the pixel coverage changes at + glyph edges. For monochrome bitmaps, it is always 2.0 in either + X or Y direction. For anti-aliased bitmaps, it depends on the + hinting and the shape of a glyph and might approach or even reach + value 2.0 for glyphs like 'I', 'L', '+', '-', or '=', while it + might be lower for glyphs like 'O', 'S', or 'W'.] + + - The `ttdebug` demo program didn't show changed point coordinates + (bug introduced in version 2.10.3). + + - It is now possible to adjust the axis increment for variable fonts + in the `ftmulti` demo program. + + - It is now possible to change the hinting engine in the `ftstring` + demo program. + + - The graphical demo programs work better now in native color depth + on win32 and x11. + + +====================================================================== + +CHANGES BETWEEN 2.10.3 and 2.10.4 (2020-Oct-20) + + I. IMPORTANT BUG FIXES + + - A heap buffer overflow has been found in the handling of embedded + PNG bitmaps, introduced in FreeType version 2.6. + + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15999 + + If you use option FT_CONFIG_OPTION_USE_PNG you should upgrade + immediately. + + +====================================================================== + +CHANGES BETWEEN 2.10.2 and 2.10.3 (2020-Oct-10) + + I. IMPORTANT CHANGES + + - New flag `FT_OUTLINE_OVERLAP'. If set, make the smooth rasterizer + do 4x4 oversampling to mitigate artifacts in pixels partially + covered by overlapping contours. Note that this at least + quadruples the rendering time. + + If a glyph in a TrueType font has the `OVERLAP_SIMPLE' or + `OVERLAP_COMPOUND' bit set, FreeType automatically selects this + rendering mode. + + + II. MISCELLANEOUS + + - Using the arcane method of including FreeType header files with + macros like `FT_FREETYPE_H' is no longer mandatory (but retained + as an optional feature for backward compatibility). + + - Support for building the library with Meson. Building the demo + programs with Meson will follow in a forthcoming release. + + - Minor improvements to the B/W rasterizer. + + - Auto-hinter support for Medefaidrin script. + + - Fix various memory leaks (mainly for CFF) and other issues that + might cause crashes in rare circumstances. + + - Jam support has been removed. + + - In `ftview', custom LCD filter values are now normalized and + balanced. Unorthodox filters are still available through the `-L' + command line option. + + - The GUI demo programs can now be resized. + + - Demo programs that accept command line option `-k' can now handle + function keys, too. The corresponding character codes start with + 0xF1. As an example, the POSIX shell syntax (accepted by bash, + ksh, and zsh) + + -k $'\xF3q' + + emulates the pressing of function key `F3' followed by key `q'. + + +====================================================================== + +CHANGES BETWEEN 2.10.1 and 2.10.2 (2020-May-09) + + I. IMPORTANT CHANGES + + - Support of WOFF2 fonts. This code contribution was Nikhil + Ramakrishnan's GSoC 2019 project. + + + II. MISCELLANEOUS + + - Function `FT_Get_Var_Axis_Flags' returned random data for Type 1 + MM fonts. + + - Type 1 fonts with non-integer metrics are now supported by the new + (CFF) engine introduced in FreeType 2.9. + + - Drop support for Python 2 in Freetype's API reference generator + `docwriter' (Python >= 3.5 is required for targets `make refdoc' + and `make refdoc-venv'). + + - Auto-hinter support for Hanifi Rohingya. + + - Document the `FT2_KEEP_ALIVE' debugging environment variable. + + - The Visual C++ (and Visual C) project files for Windows builds no + longer generate libraries that contain the FreeType version in its + filenames. Instead, a resource file gets used to make the + libraries contain the corresponding information. + + - The next release will remove Jam build support. + + - The `ftbench' demo program has a new test for testing the + `FT_Glyph_Stroke' functionality. + + +====================================================================== + +CHANGES BETWEEN 2.10.0 and 2.10.1 (2019-Jul-01) + + I. IMPORTANT BUG FIXES + + - The bytecode hinting of OpenType variation fonts was flawed, since + the data in the `CVAR' table wasn't correctly applied. + + + II. MISCELLANEOUS + + - Auto-hinter support for Mongolian. + + - For distribution, `.tar.bz2' packages are replaced with `.tar.xz' + bundles. + + - The handling of the default character in PCF fonts as introduced + in version 2.10.0 was partially broken, causing premature abortion + of charmap iteration for many fonts. + + - If `FT_Set_Named_Instance' was called with the same arguments + twice in a row, the function returned an incorrect error code the + second time. + + - Direct rendering using FT_RASTER_FLAG_DIRECT crashed (bug + introduced in version 2.10.0). + + - Increased precision while computing OpenType font variation + instances. + + - The flattening algorithm of cubic Bezier curves was slightly + changed to make it faster. This can cause very subtle rendering + changes, which aren't noticeable by the eye, however. + + - The auto-hinter now disables hinting if there are blue zones + defined for a `style' (i.e., a certain combination of a script and + its related typographic features) but the font doesn't contain any + characters needed to set up at least one blue zone. + + - The `ftmulti' demo program now supports multiple hidden axes with + the same name tag. + + - `ftview', `ftstring', and `ftgrid' got a `-k' command line option + to emulate a sequence of keystrokes at start-up. + + - `ftview', `ftstring', and `ftgrid' now support screen dumping to a + PNG file. + + - The bytecode debugger, `ttdebug', now supports variation TrueType + fonts; a variation font instance can be selected with the new `-d' + command line option. + + +====================================================================== + +CHANGES BETWEEN 2.9.1 and 2.10.0 (2019-Mar-15) + + I. IMPORTANT CHANGES + + - A bunch of new functions has been added to access and process + COLR/CPAL data of OpenType fonts with color-layered glyphs. + + FT_Palette_Data_Get + Retrieve color palette data. + FT_Palette_Select + Select and activate a color palette for color-layered + glyphs. + FT_Palette_Set_Foreground_Color + Set text foreground color for palette index 0xFFFF. + + FT_Get_Color_Glyph_Layer + Get color layers for a given glyph (using an interator + object). + + FT_Bitmap_Blend + Blend one bitmap onto another with a given color. + + - An experimental feature is the new behaviour of the + `FT_LOAD_COLOR' load flag for color-layered glyphs: Internally + it sets a flag so that if `FT_Render_Glyph' is called with + `FT_RENDER_MODE_NORMAL' (or `FT_Load_Glyph' with + `FT_LOAD_RENDER'), a default blending of the color glyph layers + will happen automatically for convenience. + + - As a GSoC 2018 project, Nikhil Ramakrishnan completely + overhauled and modernized the API reference. + + + II. MISCELLANEOUS + + - The logic for computing the global ascender, descender, and + height of OpenType fonts has been slightly adjusted for + consistency. + + . If the `useTypoMetrics' flag (i.e., bit 7 in the `fsSelection' + field) in the `OS/2' table is set, use the `sTypo' fields in + `OS/2' unconditionally. + . Otherwise use the metrics data from the `hhea' table (if not + zero). + . Otherwise use the `sTypo' fields from the `OS/2' table (if not + zero). + . Otherwise use the `usWin' data from the `OS/2' table as a last + resort. + + Variable fonts will apply the `MVAR' deltas to whichever metrics + were picked. + + - `TT_Set_MM_Blend' could fail if call repeatedly with the same + arguments. + + - The precision of handling deltas in Variation Fonts has been + increased. The problem did only show up with multidimensional + designspaces. + + - New function `FT_Library_SetLcdGeometry' to set up the geometry + of LCD subpixels. + + - FreeType now uses the `defaultChar' property of PCF fonts to set + the glyph for the undefined character at glyph index 0 (as + FreeType already does for all other supported font formats). As + a consequence, the order of glyphs of a PCF font if accessed + with FreeType can be different now compared to previous + versions. + + This change doesn't affect PCF font access with cmaps. + + - `FT_Select_Charmap' has been changed to allow parameter value + `FT_ENCODING_NONE', which is valid for BDF, PCF, and Windows FNT + formats to access built-in cmaps that don't have a predefined + `FT_Encoding' value. + + - A previously reserved field in the `FT_GlyphSlotRec' structure + now holds the glyph index. + + - On Win32 platforms, the use of `_DLL' to build the library has + been replaced with `DLL_EXPORT' and `DLL_IMPORT'. + + - The usual round of fuzzer bug fixes to better reject malformed + fonts. + + - `FT_Outline_New_Internal' and `FT_Outline_Done_Internal' have + been removed. These two functions were public by oversight only + and were never documented. + + - A new function `FT_Error_String' returns descriptions of error + codes if configuration macro FT_CONFIG_OPTION_ERROR_STRINGS is + defined. + + - `FT_Set_MM_WeightVector' and `FT_Get_MM_WeightVector' are new + functions limited to Adobe MultiMaster fonts to directly set and + get the weight vector. + + - Support for Position Independent Code as needed by systems that + prohibit automatic address fixups, such as BREW, has been + removed. [Compilation with modern compilers that use flags like + `-fPIC' or `-fPIE' is not affected.] + + - The `ftdump' demo program has new options `-c' and `-C' to + display charmaps in compact and detailed format, respectively. + Option `-V' has been removed. + + - The `ftview', `ftstring', and `ftgrid' demo programs use a new + command line option `-d' to specify the program window's width, + height, and color depth. + + - The `ftview' demo program now displays red boxes for zero-width + glyphs. + + - `ftglyph' has limited support to display fonts with + color-layered glyphs. This will be improved later on. + + - `ftgrid' can now display bitmap fonts also. + + - The `ttdebug' demo program has a new option `-f' to select a + member of a TrueType collection (TTC). + + - Other various improvements to the demo programs. + + +====================================================================== + +CHANGES BETWEEN 2.9 and 2.9.1 (2019-May-01) + + I. IMPORTANT BUG FIXES + + - Type 1 fonts containing flex features were not rendered + correctly (bug introduced in version 2.9). + + - CVE-2018-6942: Older FreeType versions can crash with certain + malformed variation fonts. + + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6942 + + + II. MISCELLANEOUS + + - Bug fix: Multiple calls to `FT_Get_MM_Var' returned garbage. + + - The base extensions `ftlcdfil' and `ftfntfmt' are now part of + the base module (and thus no longer configurable in file + `modules.cfg'). + + - Emboldening of bitmaps didn't work correctly sometimes, showing + various artifacts (bug introduced in version 2.8.1). + + - Use of the `freetype-config' script to get compilation and + linking options is deprecated since it doesn't support + cross-compiling, among other deficiencies. Instead, you should + use the `pkg-config' interface. + + The `configure' script no longer installs `freetype-config' by + default. For backward compatibility, a new configure option + `--enable-freetype-config' is provided that reverts this + decision. + + - The auto-hinter script ranges have been updated for Unicode 11. + No support for new scripts have been added, however, with the + exception of Georgian Mtavruli. + + - Support for cmake has been improved. + + - The next release will remove support for Position Independent + Code as needed by systems that prohibit automatic address + fixups, such as BREW. [Compilation with modern compilers that + use flags like `-fPIC' or `-fPIE' is not affected.] + + +====================================================================== + +CHANGES BETWEEN 2.8.1 and 2.9 (2018-Jan-08) + + I. IMPORTANT BUG FIXES + + - Advance width values of variation fonts were often wrong. + + - More fixes for variation font support; you should update to this + version if you want to support them. + + + II. IMPORTANT CHANGES + + - As a GSoC project, Ewald Hew extended the new (Adobe) CFF engine + to handle Type 1 fonts also, thus greatly improving the + rendering of this format. This is the new default. The old + engine is still available if the configuration macro + `T1_CONFIG_OPTION_OLD_ENGINE' gets defined; using the + `hinting-engine' property of the `type1' driver module you can + then switch between the two engines. + + - A new function, `FT_Set_Named_Instance', can be used to set or + change the current named instance. + + - Starting with this FreeType version, resetting variation + coordinates will return to the currently selected named + instance. Previously, FreeType returned to the base font (i.e., + no instance set). + + + III. MISCELLANEOUS + + - The `face_flags' field of the `FT_Face' structure has a new bit, + `FT_FACE_FLAG_VARIATION', which is set if a variation font has + been altered with `FT_Set_MM_Design_Coordinates', + `FT_Set_Var_Design_Coordinates', or + `FT_Set_Var_Blend_Coordinates'. + + - If the current face is a named instance, the new macro + `FT_IS_NAMED_INSTANCE' returns true. + + - `FT_IS_VARIATION' is a new macro that returns true whenever a + face object has been altered by `FT_Set_MM_Design_Coordinates', + `FT_Set_Var_Design_Coordinates', or + `FT_Set_Var_Blend_Coordinates'. + + - Changing the design coordinates of a variation font with + `FT_Set_Var_Design_Coordinates' or + `FT_Set_Var_Blend_Coordinates' does not influence the named + instance index value (only `FT_Set_Named_Instance' does that). + + - Special PostScript names for named instances are only returned + if the named instance is set with `FT_Set_Named_Instance' (and + the font has corresponding entries in its `fvar' table). If + `FT_IS_VARIATION' returns true, the algorithmically derived + PostScript name is provided, not looking up special entries for + named instances. + + - A new function `FT_Done_MM_Var' is provided to free the memory + returned in a call to `FT_Get_MM_Var'. + + - On platforms using the `configure' script, the installed + `ftoption.h' file now correctly reflects configuration options + like `--with-harfbuzz'. + + - Better support to build FreeType as a DLL on Windows using + Visual C. + + - All data specific to driver modules is now collected in a single + file, `FT_DRIVER_H'. Consequently, the macros + `FT_AUTOHINTER_H', `FT_CFF_DRIVER_H', `FT_TRUETYPE_DRIVER_H', + and `FT_PCF_DRIVER_H' still work but are deprecated. + + - Some fuzzer fixes to better reject malformed fonts. + + - The `ftbench' demo program has a new test for opening a new face + and loading some glyphs. + + - The `ftbench' demo program has a new option `-j' to specify the + last glyph index to be used in the tests. + + - The `ftgrid' demo program has a new option `-n' to suppress + display of named instances of variation fonts. + + - The `ttdebug' demo program can now show a stack trace (key `K') + and switch between hexadecimal and decimal display of integers + (key `I'). + + +====================================================================== + +CHANGES BETWEEN 2.8 and 2.8.1 (2017-Sep-16) + + I. IMPORTANT BUG FIXES + + - B/W hinting of TrueType fonts didn't work properly if + interpreter version 38 or 40 was selected. + + - Some severe problems within the handling of TrueType Variation + Fonts were found and fixed. + + - Function `FT_Set_Var_Design_Coordinates' didn't correctly handle + the case with less input coordinates than axes. + + + II. IMPORTANT CHANGES + + - By default, FreeType now offers high quality LCD-optimized + output without resorting to ClearType techniques of resolution + tripling and filtering. In this method, called Harmony, each + color channel is generated separately after shifting the glyph + outline, capitalizing on the fact that the color grids on LCD + panels are shifted by a third of a pixel. This output is + indistinguishable from ClearType with a light 3-tap filter. + + + III. MISCELLANEOUS + + - Using the new function `FT_Get_Var_Axis_Flags', an application + can access the `flags' field of a variation axis (introduced in + OpenType version 1.8.2) + + - More sanity checks. + + - The internal representation of buffers for LCD rendering has + changed (to be more precise, the amount of padding gets computed + differently). Applications that use the FreeType API are not + affected. + + - To reset all design axis values of a variation font to its + default values you can now say + + error = FT_Set_Var_Design_Coordinates( face, 0, NULL ); + + This also works with functions `FT_Set_MM_Design_Coordinates' + and `FT_Set_MM_Blend_Coordinates'. + + - FreeType now synthesizes a missing Unicode cmap for (older) + TrueType fonts also if glyph names are available. + + - FreeType has improved handling of BDF fonts without the + `POINT_SIZE', `RESOLUTION_X', or `RESOLUTION_Y' properties; the + library now uses the values of the `SIZE' keyword if they are + missing. Previously, `SIZE' was completely ignored, and + FreeType used heuristic values instead. + + - Multiple calls to `FT_Bitmap_Convert' do work now as advertised. + Previously, they failed with an assertion error if there was an + empty bitmap between non-empty ones. + + - The warping option has moved from `light' to `normal' hinting + where it replaces the original hinting algorithm. The `light' + mode is now always void of any hinting in x-direction. + + - 16bit compiler support is now officially ended. We didn't + provide any maintenance since many years, and given that there + were no error or problem reports either it seems that it is no + longer needed. + + - The `ftgrid' demo program can now toggle the display of grid + lines with the `G' key. + + - The `ftgrid' demo program can toggle a different set of colors + (suitable to color-blind people) with the `C' key. + + - The `ftgrid' demo program now supports the `-e' command line + option to select a cmap. + + - The `ftdump' demo program has a new command line option `-t' to + output the SFNT table list. + + +====================================================================== + +CHANGES BETWEEN 2.7.1 and 2.8 (2017-May-13) + + I. IMPORTANT CHANGES + + - Support for OpenType Variation Fonts is now complete. The last + missing part was handling the `VVAR' and `MVAR' tables, which is + available with this release. + + - A new function `FT_Face_Properties' allows the control of some + module and library properties per font. Currently, the + following properties can be handled: stem darkening, LCD filter + weights, and the random seed for the `random' CFF operator. + + - The PCF change to show more `colorful' family names (introduced + in version 2.7.1) was too radical; it can now be configured with + PCF_CONFIG_OPTION_LONG_FAMILY_NAMES at compile time. If + activated, it can be switched off at run time with the new pcf + property `no-long-family-names'. If the `FREETYPE_PROPERTIES' + environment variable is available, you can say + + FREETYPE_PROPERTIES=pcf:no-long-family-names=1 + + - Support for the following scripts has been added to the + auto-hinter. + + Adlam, Avestan, Bamum, Buhid, Carian, Chakma, Coptic, Cypriot, + Deseret, Glagolitic, Gothic, Kayah, Lisu, N'Ko, Ol Chiki, Old + Turkic, Osage, Osmanya, Saurashtra, Shavian, Sundanese, Tai + Viet, Tifinagh, Unified Canadian Syllabics, Vai + + + II. IMPORTANT BUG FIXES + + - `Light' auto-hinting mode no longer uses TrueType metrics for + TrueType fonts. This bug was introduced in version 2.4.6, + causing horizontal scaling also. Almost all GNU/Linux + distributions (with Fedora as a notable exception) disabled the + corresponding patch for good reasons; chances are thus high that + you won't notice a difference. + + If optical backward compatibility for legacy applications is + necessary, you might enable the AF_CONFIG_OPTION_TT_SIZE_METRICS + configuration option. However, it is strongly recommended to + avoid that, adjusting font sizes instead. + + - Global size metrics values in the `FT_Size_Metrics' structure + can be different for TrueType fonts. Reason is that in older + FreeType versions the metrics were rounded differently to + integer pixels compared to all other font formats, yielding an + inconsistent behaviour if you used non-native hinting. Starting + with this version, global size metrics for TrueType fonts are + handled the same as other font formats: `ascender' gets rounded + up, `descender' gets rounded down, `height' gets normally + rounded, and `max_advance' gets normally rounded, too. + + If you need more precise values of (global) ascender, descender, + height, or `max_advance', please take the corresponding values + from the `FT_Face' structure and scale them manually. + + - If a TrueType font gets loaded with FT_LOAD_NO_HINTING, FreeType + now scales the font linearly again (bug introduced in version + 2.4.6). + + - CVE-2017-8105, CVE-2017-8287: Older FreeType versions have + out-of-bounds writes caused by heap-based buffer overflows + related to Type 1 fonts. + + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8105 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8287 + + + III. MISCELLANEOUS + + - A new function `FT_Set_Default_Properties' has been added to + parse the `FREETYPE_PROPERTIES' environment variable + (previously, it was internal only). `FT_Init_FreeType' always + call this function, but `FT_New_Library' does not (similar to + `FT_Add_Default_Modules'). + + - To be in sync with OpenType version 1.7 and newer, macros + + FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY, + FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY, + TT_NAME_ID_PREFERRED_FAMILY + TT_NAME_ID_PREFERRED_SUBFAMILY + + are renamed to + + FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY, + FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY, + TT_NAME_ID_TYPOGRAPHIC_FAMILY + TT_NAME_ID_TYPOGRAPHIC_SUBFAMILY + + The old macro names are deprecated (but still available). + + - Support for SFNT `name' tables has been improved. + + . Format 1 `name' tables are now supported. Use new function + `FT_Get_Sfnt_LangTag' to access associated language tags. + + . Language, encoding, and name IDs have been updated to OpenType + version 1.8.1. + + - The new CFF engine now handles the `random' operator. All CFF + opcodes are now supported. + + - The CFF module has a new property `random-seed' to control the + pseudo-random number generation for the `random' operator. + + - The `freetype-config' script is now a wrapper of `pkg-config' if + this program is available in the path. + + - FT_LOAD_TARGET_LCD is now a variant of FT_LOAD_TARGET_LIGHT; + this should provide better rendering results. + + - A mode to display light auto-hinting with subpixel positioning + has been added to `ftdiff'. + + +====================================================================== + +CHANGES BETWEEN 2.7 and 2.7.1 (2016-Dec-30) + + I. IMPORTANT CHANGES + + - Support for the new CFF2 font format as introduced with OpenType + 1.8 has been contributed by Dave Arnolds from Adobe. + + - Preliminary support for variation fonts as specified in OpenType + 1.8 (in addition to the already existing support for Adobe's MM + and Apple's GX formats). Dave Arnolds contributed handling of + advance width change variation; more will come in the next + version. + + + II. IMPORTANT BUG FIXES + + - Handling of raw CID fonts was partially broken (bug introduced + in 2.6.4). + + - CVE-2016-10328: Older FreeType versions had an out-of-bounds + write caused by a heap-based buffer overflow related to the CFF + fonts. + + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10328 + + + III. MISCELLANEOUS + + - Some limits for TrueType bytecode execution have been tightened + to speed up FreeType's handling of malformed fonts, in + particular to quickly abort endless loops. + + - The number of twilight points can no longer be set to an + arbitrarily large value. + + - The total number of jump opcode instructions (like JMPR) with + negative arguments is dynamically restricted; the same holds + for the total number of iterations in LOOPCALL opcodes. + + The dynamic limits are based on the number of points in a glyph + and the number of CVT entries. Please report if you encounter a + font where the selected values are not adequate. + + - PCF family names are made more `colorful'; they now include the + foundry and information whether they contain wide characters. + For example, you no longer get `Fixed' but rather `Sony Fixed' + or `Misc Fixed Wide'. + + - A new function `FT_Get_Var_Blend_Coordinates' (with its alias + name `FT_Get_MM_Blend_Coordinates') to retrieve the normalized + blend coordinates of the currently selected variation instance + has been added to the Multiple Masters interface. + + - A new function `FT_Get_Var_Design_Coordinates' to retrieve the + design coordinates of the currently selected variation instance + has been added to the Multiple Masters interface. + + - A new load flag `FT_LOAD_BITMAP_METRICS_ONLY' to retrieve bitmap + information without loading the (embedded) bitmap itself. + + - Retrieving advance widths from bitmap strikes (using + `FT_Get_Advance' and `FT_Get_Advances') have been sped up. + + - The usual round of fuzzer fixes to better reject malformed + fonts. + + - The `ftmulti' demo program can now switch engines with key `H'. + + - The `ftstring' demo program can now show some built-in, + non-latin sample strings (to be selected with the TAB key). + + - The `ftview' demo program can now switch between a font's + charmaps using the TAB key. + + +====================================================================== + +CHANGES BETWEEN 2.6.5 and 2.7 (2016-Sep-08) + + I. IMPORTANT CHANGES + + - As announced earlier, the 2.7.x series now uses the new subpixel + hinting mode as the default, emulating a modern version of + ClearType. + + This change inevitably leads to different rendering results, and + you might change the `TT_CONFIG_OPTION_SUBPIXEL_HINTING' + configuration option to adapt it to your taste (or use the new + `FREETYPE_PROPERTIES' environment variable). See the + corresponding entry below for version 2.6.4, which gives more + information. + + - A new option `FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES' has been + introduced. If set (which is the default), an environment + variable `FREETYPE_PROPERTIES' can be used to control driver + properties. Example: + + FREETYPE_PROPERTIES=truetype:interpreter-version=35 \ + cff:no-stem-darkening=1 \ + autofitter:warping=1 + + This allows to select, say, the subpixel hinting mode at runtime + for a given application. See file `ftoption.h' for more. + + + II. IMPORTANT BUG FIXES + + - After loading a named instance of a GX variation font, the + `face_index' value in the returned `FT_Face' structure now + correctly holds the named instance index in the upper 16bits as + documented. + + + III. MISCELLANEOUS + + - A new macro `FT_IS_NAMED_INSTANCE' to test whether a given face + is a named instance. + + - More fixes to GX font handling. + + - Apple's `GETVARIATION' bytecode operator (needed for GX + variation font support) has been implemented. + + - Another round of fuzzer fixes, mainly to reject invalid fonts + faster. + + - Handling of raw CID fonts was broken (bug introduced in version + 2.6.4). + + - The smooth rasterizer has been streamlined to make it faster by + approx. 20%. + + - The `ftgrid' demo program now understands command line option + `-d' to give start-up design coordinates. + + - The `ftdump' demo program has a new command line option `-p' to + dump TrueType bytecode instructions. + + +====================================================================== + +CHANGES BETWEEN 2.6.4 and 2.6.5 (2016-Jul-12) + + I. IMPORTANT BUG FIXES + + - Compilation works again on Mac OS X (bug introduced in version + 2.6.4). + + + II. IMPORTANT CHANGES + + - The new subpixel hinting mode is now disabled by default; it + will be enabled by default in the forthcoming 2.7.x series. + Main reason for reverting this feature is the principle of least + surprise: a sudden change in appearance of all fonts (even if + the rendering improves for almost all recent fonts) should not + be expected in a new micro version of a series. + + +====================================================================== + +CHANGES BETWEEN 2.6.3 and 2.6.4 (2016-Jul-05) + + I. IMPORTANT CHANGES + + - A new subpixel hinting mode has been contributed by Nikolaus + Waxweiler, which is now the default rendering mode for TrueType + fonts. It implements (almost everything of) version 40 of the + bytecode engine. + + The existing code base in FreeType (the `Infinality code') was + stripped to the bare minimum and all configurability removed in + the name of speed and simplicity. The configurability was + mainly aimed at legacy fonts like Arial, Times New Roman, or + Courier. [Legacy fonts are fonts that modify vertical stems to + achieve clean black-and-white bitmaps.] The new mode focuses on + applying a minimal set of rules to all fonts indiscriminately so + that modern and web fonts render well while legacy fonts render + okay. + + Activation of the subpixel hinting support can be controlled + with the `TT_CONFIG_OPTION_SUBPIXEL_HINTING' configuration + option at compile time: If set to value 1, you get the old + Infinality mode (which was never the default due to its + slowness). Value 2 activates the new subpixel hinting mode, and + value 3 activates both. The default is value 2. + + At run time, you can select the subpixel hinting mode with the + `interpreter-version' property (provided you have compiled in + the corresponding hinting mode); see `ftttdrv.h' for more. + + - Support for the following scripts has been added to the + auto-hinter. + + Armenian, Cherokee, Ethiopic, Georgian, Gujarati, Gurmukhi, + Malayalam, Sinhala, Tamil + + + II. MISCELLANEOUS + + - Type 42 fonts as created by LilyPond are now supported. + + - Minor rendering improvements in the auto-hinter. + + - For experimental reasons, the old CFF engine now supports all + CFF operators except `random', including the deprecated Multiple + Masters instructions. This allows the display of fonts like + `ITCGaramondMM-It.otf' (without font variations, though). + + - Another round of fixes to improve handling of invalid fonts. + + - The `ftgrid' demo program now displays the rendered pixels also; + this can be switched off with the `b' key. Selection of various + LCD filtering modes can be done with the `L' key. + + - The demo programs have been extended to allow selection of all + available TrueType bytecode engines. + + - A very early beta version of a new, Qt based demo program called + `ftinspect' is part of the source code bundle; it will + eventually supersede the other demo programs. Currently, you + have to compile it manually with `qmake; make'; note that many + features are still missing. + + +====================================================================== + +CHANGES BETWEEN 2.6.2 and 2.6.3 (2016-Feb-08) + + I. IMPORTANT CHANGES + + - Khmer, Myanmar, Bengali, and Kannada script support has been + added to the auto-hinter. + + + II. MISCELLANEOUS + + - Better support of Indic scripts like Devanagari by using a + top-to-bottom hinting flow. + + - All FreeType macros starting with two underscores have been + renamed to avoid a violation of both the C and C++ standards. + Example: Header macros of the form `__FOO_H__' are now called + `FOO_H_'. In most cases, this should be completely transparent + to the user. The exception to this is `__FTERRORS_H__', which + must be sometimes undefined by the user to get FreeType error + strings: Both this form and the new `FTERRORS_H_' macro are + accepted for backward compatibility. + + - Minor improvements mainly to the Type 1 driver. + + - The new CFF engine now supports all Type 2 operators except + `random'. + + - The macro `_STANDALONE_', used for compiling the B/W and smooth + rasterizers as stand-alone modules, has been renamed to + `STANDALONE_', since macro names starting with an underscore and + followed by an uppercase letter are reserved in both C and C++. + + - Function `FT_Library_SetLcdFilterWeights' now also activates + custom LCD filter weights (instead of just adjusting them). + + - Support for `unpatented hinting' has been completely removed: + Consequently, the two functions `FT_Face_CheckTrueTypePatents' + and `FT_Face_SetUnpatentedHinting' now return always false, + doing nothing. + + - The `ftgamma' demo program has been modernized; the gamma grid + display has been moved from `ftview' to this program. + + - In `ftview', it is now possible to cycle through the available + LCD filtering modes. + + +====================================================================== + +CHANGES BETWEEN 2.6.1 and 2.6.2 (2015-Nov-28) + + I. IMPORTANT CHANGES + + - The auto-hinter now supports stem darkening, to be controlled by + the new `no-stem-darkening' and `darkening-parameters' + properties. This is an experimental feature contributed by + Nikolaus Waxweiler, and the interface might change in a future + release. + + - By default, stem darkening is now switched off (for both the CFF + engine and the auto-hinter). The main reason is that you need + linear alpha blending and gamma correction to get correct + rendering results, and the latter is not yet available in most + freely available rendering stacks like X11. Applying stem + darkening without proper gamma correction leads to far too dark + rendering results. + + - The meaning of `FT_RENDER_MODE_LIGHT' has been slightly + modified. It now essentially means `no hinting along the + horizontal axis'; in particular, no change of glyph advance + widths. Consequently, the auto-hinter is used for all scalable + font formats except for CFF. It is planned that other + font-specific rendering engines (TrueType, Type 1) will follow. + + + II. MISCELLANEOUS + + - The default LCD filter has been changed to be normalized and + color-balanced. + + - For better compatibility with FontConfig, function + `FT_Library_SetLcdFilter' accepts a new enumeration value + `FT_LCD_FILTER_LEGACY1' (which has the same meaning as + `FT_LCD_FILTER_LEGACY'). + + - A large number of bugs have been detected by using the libFuzzer + framework, which should further improve handling of invalid + fonts. Thanks again to Kostya Serebryany and Bungeman! + + - `TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES', a new configuration + option, controls the maximum number of executed opcodes within a + bytecode program. You don't want to change this except for very + special situations (e.g., making a library fuzzer spend less + time to handle broken fonts). + + - The smooth renderer has been made faster. + + - The `ftstring' demo program now supports subpixel rendering; use + key `l' to cycle through the LCD modes. + + - The `ftstring' demo program now supports color rendering; use + the `space' key to cycle through various color combinations. + + - The graphical demo programs now use a default gamma value of 1.8 + (instead of 1.2). + + +====================================================================== + +CHANGES BETWEEN 2.6 and 2.6.1 (2015-Oct-04) + + I. IMPORTANT BUG FIXES + + - It turned out that for CFFs only the advance widths should be + taken from the `htmx' table, not the side bearings. This bug, + introduced in version 2.6.0, makes it necessary to upgrade if + you are using CFFs; otherwise, you get cropped glyphs with GUI + interfaces like GTK or Qt. + + - Accessing Type 42 fonts returned incorrect results if the glyph + order of the embedded TrueType font differs from the glyph order + of the Type 42 charstrings table. + + + II. IMPORTANT CHANGES + + - The header file layout has been changed (again), moving all + header files except `ft2build.h' into a subdirectory tree. + + Doing so reduces the possibility of header file name clashes + (e.g., FTGL's `FTGlyph.h' with FreeType's `ftglyph.h') on case + insensitive file systems like Mac OS X or Windows. + + Applications that use (a) the `freetype-config' script or + FreeType's `freetype2.pc' file for pkg-config to get the include + directory for the compiler, and (b) the documented way for + header inclusion like + + #include + #include FT_FREETYPE_H + ... + + don't need any change to the source code. + + - Simple access to named instances in GX variation fonts is now + available (in addition to the previous method via FreeType's MM + interface). In the `FT_Face' structure, bits 16-30 of the + `face_index' field hold the current named instance index for the + given face index, and bits 16-30 of `style_flags' contain the + number of instances for the given face index. `FT_Open_Face' + and friends also understand the extended bits of the face index + parameter. + + You need to enable TT_CONFIG_OPTION_GX_VAR_SUPPORT for this new + feature. Otherwise, bits 16-30 of the two fields are zero (or + are ignored). + + - Lao script support has been added to the auto-hinter. + + + III. MISCELLANEOUS + + - The auto-hinter's Arabic script support has been enhanced. + + - Superscript-like and subscript-like glyphs as used by various + phonetic alphabets like the IPA are now better supported by the + auto-hinter. + + - The TrueType bytecode interpreter now runs slightly faster. + + - Improved support for builds with cmake. + + - The function `FT_CeilFix' now always rounds towards plus + infinity. + + - The function `FT_FloorFix' now always rounds towards minus + infinity. + + - A new load flag `FT_LOAD_COMPUTE_METRICS' has been added; it + makes FreeType ignore pre-computed metrics, as needed by font + validating or font editing programs. Right now, only the + TrueType module supports it to ignore data from the `hdmx' + table. + + - Another round of bug fixes to better handle broken fonts, found + by Kostya Serebryany . + + +====================================================================== + +CHANGES BETWEEN 2.5.5 and 2.6 (2015-Jun-07) + + I. IMPORTANT CHANGES + + - Behdad Esfahbod contributed code for improved thread-safety, + which results in the following model. + + * An `FT_Face' object can only be safely used from one thread at + a time. + + * An `FT_Library' object can now be used without modification + from multiple threads at the same time. + + * `FT_Face' creation and destruction with the same `FT_Library' + object can only be done from one thread at a time. + + One can use a single `FT_Library' object across threads as long + as a mutex lock is used around `FT_New_Face' and `FT_Done_Face'. + Any calls to `FT_Load_Glyph' and similar API are safe and do not + need the lock to be held as long as the same `FT_Face' is not + used from multiple threads at the same time. + + - Thai script support has been added to the auto-hinter. + + - Arabic script support has been added to the auto-hinter. + + - Following OpenType version 1.7, advance widths and side bearing + values in CFFs (wrapped in an SFNT structure) are now always + taken from the `hmtx' table. + + - Following OpenType version 1.7, the PostScript font name of a + CFF font (wrapped in an SFNT structure) is now always taken from + the `name' table. This is also true for OpenType Collections + (i.e., TTCs using CFFs subfonts instead of TTFs), where it may + have a significant difference. + + - Fonts natively hinted for ClearType are now supported, properly + handling selector index 3 of the INSTCTRL bytecode instruction. + + - Major improvements to the GX TrueType variation font handling. + + + II. MISCELLANEOUS + + - A new auto-hinter property `warping' can switch on and off the + warping code if this experimental feature is compiled in (by + defining the AF_CONFIG_OPTION_USE_WARPER configuration option; + by default this option is now enabled but warping is switched + off). + + The AF_CONFIG_OPTION_USE_WARPER option itself is an old feature, + available since 2006. Warping only works in `light' + auto-hinting mode. The idea of the code is to slightly scale + and shift a glyph along the non-hinted dimension (which is + usually the horizontal axis) so that as much of its segments are + aligned (more or less) to the grid. To find out a glyph's + optimal scaling and shifting value, various parameter + combinations are tried and scored. + + See file `ftautoh.h' for more; the demo programs `ftdiff', + `ftview', and `ftgrid' can toggle warping with key `w'. + + - Some fields in the `FTC_ImageTypeRec' structure have been + changed from signed to unsigned type, which better reflects the + actual usage. It is also an additional means to protect against + malformed input. + + This change doesn't break the ABI; however, it might cause + compiler warnings. + + - Function `FT_Bitmap_New' has been renamed to `FT_Bitmap_Init', + since this name better reflects its function. For backward + compatibility, the old function name is still available. + + - Function `FT_Get_X11_Font_Format' has been renamed to + `FT_Get_Font_Format', since this name better reflects its + function. For backward compatibility, the old function name is + still available. + + Additionally, the header file macro for this function has been + renamed to `FT_FONT_FORMATS_H' (the old name `FT_XFREE86_H' is + retained for backward compatibility). + + - Various improvements to the `ftgrid' demo program. + + . It can now display GX and MM fonts while interactively + manipulating the axes (with keys F2, F3, and F4). + + . Anti-aliasing rendering modes can now be selected (with keys + F5 and F6). + + . The display of point numbers can be toggled with key `D'. + + - Various improvements to the `ftdump' demo program. + + . It now displays information on MM and GX variation axes. + + . New command line option `-u' makes it output data in utf-8 + encoding. + + - The `ftmulti' demo program can now handle up to six MM or GX + axes. + + +====================================================================== + +CHANGES BETWEEN 2.5.4 and 2.5.5 (2014-Dec-30) + + I. IMPORTANT BUG FIXES + + - Handling of uncompressed PCF files works again (bug introduced + in version 2.5.4). + + +====================================================================== + +CHANGES BETWEEN 2.5.3 and 2.5.4 (2014-Dec-06) + + I. IMPORTANT BUG FIXES + + - A variant of vulnerability CVE-2014-2240 was identified + (cf. https://savannah.nongnu.org/bugs/?43661) and fixed in the + new CFF driver. All users should upgrade. + + - The new auto-hinter code using HarfBuzz crashed for some invalid + fonts. + + - Many fixes to better protect against malformed input. + + + II. IMPORTANT CHANGES + + - Full auto-hinter support of the Devanagari script. + + - Experimental auto-hinter support of the Telugu script. + + - CFF stem darkening behaviour can now be controlled at build time + using the eight macros + + CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4} . + + - Some fields in the `FT_Bitmap' structure have been changed from + signed to unsigned type, which better reflects the actual usage. + It is also an additional means to protect against malformed + input. + + This change doesn't break the ABI; however, it might cause + compiler warnings. + + + III. MISCELLANEOUS + + - Improvements to the auto-hinter's algorithm to recognize stems + and local extrema. + + - Function `FT_Get_SubGlyph_Info' always returned an error even in + case of success. + + - Version 2.5.1 introduced major bugs in the cjk part of the + auto-hinter, which are now fixed. + + - The `FT_Sfnt_Tag' enumeration values have been changed to + uppercase, e.g. `FT_SFNT_HEAD'. The lowercase variants are + deprecated. This is for orthogonality with all other + enumeration (and enumeration-like) values in FreeType. + + - `cmake' now supports builds of FreeType as an OS X framework and + for iOS. + + - Improved project files for vc2010, introducing a property file. + + - The documentation generator for the API reference has been + updated to produce better HTML code (with proper CSS). At the + same time, the documentation got a better structure. + + - The FT_LOAD_BITMAP_CROP flag is obsolete; it is not used by any + driver. + + - The TrueType DELTAP[123] bytecode instructions now work in + subpixel hinting mode as described in the ClearType whitepaper + (i.e., for touched points in the non-subpixel direction). + + - Many small improvements to the internal arithmetic routines. + + +====================================================================== + +CHANGES BETWEEN 2.5.2 and 2.5.3 (2014-Mar-06) + + I. IMPORTANT BUG FIXES + + - A vulnerability (CVE-2014-2240) was identified and fixed in the + new CFF driver (cf. https://savannah.nongnu.org/bugs/?41697). + All users should upgrade. + + - More bug fixes related to correct positioning of composite + glyphs. + + - Many fixes to better protect against malformed input. + + + II. IMPORTANT CHANGES + + - FreeType can now use the HarfBuzz library to greatly improve the + auto-hinting of fonts that use OpenType features: Many glyphs + that are part of such features but don't have cmap entries are + now handled properly, for example small caps or superscripts. + Define the configuration macro FT_CONFIG_OPTION_USE_HARFBUZZ to + activate HarfBuzz support. + + You need HarfBuzz version 0.9.19 or newer. + + Note that HarfBuzz depends on FreeType; this currently causes a + chicken-and-egg problem that can be solved as follows in case + HarfBuzz is not yet installed on your system. + + 1. Compile and install FreeType without the configuration + macro FT_CONFIG_OPTION_USE_HARFBUZZ. + + 2. Compile and install HarfBuzz. + + 3. Define macro FT_CONFIG_OPTION_USE_HARFBUZZ, then compile + and install FreeType again. + + With FreeType's `configure' script the procedure boils down to + configure, build, and install FreeType, then configure, compile, + and install HarfBuzz, then configure, compile, and install + FreeType again (after executing `make distclean'). + + - All libraries FreeType depends on are now checked using the + `pkg-config' configuration files first, followed by alternative + methods. + + - The new value `auto' for the various `--with-XXX' library + options (for example `--with-harfbuzz=auto') makes the + `configure' script automatically link to the libraries it finds. + This is now the default. + + - In case FreeType's `configure' script can't find a library, you + can pass environment variables to circumvent pkg-config, and + those variables have been harmonized as a consequence of the + changes mentioned above: + + LIBZ -> removed; use LIBZ_CFLAGS and LIBZ_LIBS + LIBBZ2 -> removed; use BZIP2_CFLAGS and BZIP2_LIBS + LIBPNG_LDFLAGS -> LIBPNG_LIBS + + `./configure --help' shows all available environment variables. + + - The `freetype-config' script now understands option `--static' + to emit static linking information. + + +====================================================================== + +CHANGES BETWEEN 2.5.1 and 2.5.2 (2013-Dec-08) + + I. IMPORTANT BUG FIXES + + - Improving the display of some broken TrueType fonts introduced a + bug that made FreeType crash on some popular (but not fully + conformant) fonts like `ahronbd.ttf'. + + - Another round of improvements to correct positioning and hinting + of composite glyphs in TrueType fonts. + + + II. MISCELLANEOUS + + - Version 2.5.1 introduced a bug in handling embedded bitmap + strikes of TrueType fonts, causing garbage display under some + circumstances. + + - The `ftgrid' demo program couldn't be compiled in + non-development builds. + + +====================================================================== + +CHANGES BETWEEN 2.5 and 2.5.1 (2013-Nov-25) + + I. IMPORTANT BUG FIXES + + - For some WinFNT files, the last glyph wasn't displayed but + incorrectly marked as invalid. + + - The vertical size of glyphs was incorrectly set after a call to + `FT_GlyphSlot_Embolden', resulting in clipped glyphs. + + - Many fields of the `PCLT' table in SFNT based fonts (if accessed + with `FT_Get_Sfnt_Table') were computed incorrectly. + + - In TrueType fonts, hinting of composite glyphs could sometimes + deliver incorrect positions of components or even distorted + shapes. + + + II. IMPORTANT CHANGES + + - WOFF font format support has been added. + + - The auto-hinter now supports Hebrew. Greek and Cyrillic support + has been improved. + + - Support for the forthcoming `OS/2' SFNT table version 5, as can + be found e.g. in the `Sitka' font family for Windows 8.1. + + - The header file layout has been changed. After installation, + all files are now located in `/include/freetype2'. + + Applications that use (a) `freetype-config' or FreeType's + `pkg-config' file to get the include directory for the compiler, + and (b) the documented way for header inclusion like + + #include + #include FT_FREETYPE_H + ... + + don't need any change to the source code. + + + III. MISCELLANEOUS + + - The stem darkening feature of the new CFF engine can now be + fine-tuned with the new `darkening-parameters' property. + + - `ftgrid' has been updated to toggle various engines with the `H' + key, similar to `ftview' and `ftdiff'. + + - The functionality of `ttdebug' has been greatly enhanced. + + . It now displays twilight, storage, and control value data; key + `T' shows the twilight point table, key `S' the storage data, + and key `C' the control value table. + + . Some keys have been reassigned from lowercase to their + uppercase equivalents; for example `q' to quit the program is + now `Q'. + + . Key `f' finishes the current function. + + . Key `R' restarts the debugger. + + . Keys `b' and `p' set a breakpoint. + + . Key `B' provides a function call backtrace. + + - Better support of ARMv7 and x86_64 processors. + + - Apple's `sbix' color bitmap format is now supported. + + - Improved auto-hinter rendering for many TrueType fonts, + especially in the range 20-40ppem. + + - A new face flag `FT_FACE_FLAG_COLOR' has been added (to be + accessed with the macro `FT_HAS_COLOR'). + + - `FT_Gzip_Uncompress' (modeled after zlib's `uncompress' + function) has been added; this is a by-product of the newly + added WOFF support. + + - Support for a build with `cmake' has been contributed by John + Cary . + + - Support for x64 builds with Visual C++ has been contributed by + Kenneth Miller + + - Manual pages for most demo programs have been added. + + - The GETINFO bytecode instruction for TrueType fonts was buggy if + used to retrieve subpixel hinting information. It was necessary + to set selector bit 6 to get results for selector bits 7-10, + which is wrong. + + - Improved computation of emulated vertical metrics for TrueType + fonts. + + - Fixed horizontal start-up position of vertical phantom points in + TrueType bytecode. + + +====================================================================== + +CHANGES BETWEEN 2.4.12 and 2.5 (2013-Jun-19) + + I. IMPORTANT BUG FIXES + + - The cache manager function `FTC_Manager_Reset' didn't flush the + cache. + + + II. IMPORTANT CHANGES + + - Behdad Esfahbod (on behalf of Google) contributed support for + color embedded bitmaps (eg. color emoji). + + A new load flag, FT_LOAD_COLOR, makes FreeType load color + embedded-bitmaps, following this draft specification + + https://color-emoji.googlecode.com/git/specification/v1.html + + which defines two new SFNT tables, `CBDT' and `CBLC' (named and + modeled after `EBDT' and `EBLC', respectively). The color + bitmaps are stored in the new FT_PIXEL_MODE_BGRA format to + represent BGRA pre-multiplied sRGB images. If PNG support is + available, PNG color images as defined in the same proposed + specification are supported also. + + Note that color bitmaps are converted to grayscale if client + didn't ask for color. + + - As announced in the previous release, the old FreeType CFF + engine is now disabled by default. It can be conditionally + compiled by defining the configuration macro + CFF_CONFIG_OPTION_OLD_ENGINE. + + - As announced in the previous release, all code related to macro + FT_CONFIG_OPTION_OLD_INTERNALS has been removed, thus becoming + obsolete. + + + III. MISCELLANEOUS + + - The property API (`FT_Property_Get' and `FT_Property_Set') is + now declared as stable. + + The exception, however, are the experimental auto-hinter + properties `glyph-to-script-map' and `fallback-script' which are + subject to change in a forthcoming release. + + - `ftview' has been updated to support color embedded bitmaps; it + can be toggled on and off with key `c'. The small cache toggle + is now key `K'. + + - It is now possible to control the version of the TrueType + hinting engine using the new `interpreter-version' property of + the `truetype' module: Versions 35 and 38 (the default) are + supported, which roughly corresponds to disable and enable + subpixel hinting support, respectively. + + In both `ftview' and `ftdiff', switching between the two + versions can be done with key `H'. In the `ftbench' demo + program, command line option `-H' has been extended to activate + the non-default interpreter version. + + - The `ttdebug' program has been further improved. In particular, + it accepts a new command line option `-H' to select the hinting + engine. + + - `ftdump's verbose option has been renamed to `-V'. For all demo + programs, `-v' now shows version information. + + - Another round of TrueType subpixel hinting fixes. + + - The `apinames' tool can now create an import file for NetWare. + + - 64bit compilation of the new CFF engine was buggy. + + - Some fixes to improve robustness in memory-tight situations. + + +====================================================================== + +CHANGES BETWEEN 2.4.11 and 2.4.12 (2013-May-08) + + - We have another CFF parsing and hinting engine! Written by Dave + Arnold , this work has been contributed by + Adobe in collaboration with Google. It is vastly superior to + the old CFF engine, and it will replace it in the next release. + Right now, it is still off by default, and you have to + explicitly select it using the new `hinting-engine' property of + the cff driver: + + ... + #include FT_MODULE_H + #include FT_CFF_DRIVER_H + + FT_Library library; + int engine = FT_CFF_HINTING_ADOBE; + + + ... + FT_Property_Set( library, "cff", "hinting-engine", &engine ); + + The code has a (mature) beta status; we encourage all users to + test it and report any problems. + + In case you want to activate the new CFF engine unconditionally, + apply this patch: + +--- snip --- +diff --git a/src/cff/cffobjs.c b/src/cff/cffobjs.c +index ebcf189..3f2ce6b 100644 +--- a/src/cff/cffobjs.c ++++ b/src/cff/cffobjs.c +@@ -1056,7 +1056,7 @@ + + + /* set default property values */ +- driver->hinting_engine = FT_CFF_HINTING_FREETYPE; ++ driver->hinting_engine = FT_CFF_HINTING_ADOBE; + driver->no_stem_darkening = FALSE; + + return FT_Err_Ok; +--- snip --- + + - The macro FT_CONFIG_OPTION_OLD_INTERNALS is no longer set by + default. In the next release, we will completely remove the + associated code. Please update your programs in case you are + still using this macro. + + + II. MISCELLANEOUS + + - The (top-level) `configure' script now respects the MAKE + environment variable to specify a `make' binary. For backward + compatibility, GNUMAKE still overrides MAKE, though. + + - The `ftview' and `ftdiff' demo programs have been redesigned, + showing more options permanently on the screen, among other + minor improvements. + + - Using the `H' key, it is now possible to select the CFF engine + in both `ftview' and `ftdiff'. + + - The new command line option `-H' for `ftbench' selects the Adobe + CFF engine. + + - It is now possible to directly select the LCD rendering mode + with the keys `A'-`F' in `ftview'. The key mapping for cycling + through LCD modes has been changed from `K' and `L' to `k' and + `l', and toggling custom LCD filtering is no longer mapped to + key `F' but to key `L'. + + - In `ftdiff', key `x' toggles between layout modes: Either use + the advance width (this is new and now the default) or the + bounding box information to determine line breaks. + + - For all demo tools, the new command line option `-v' shows the + version. + + - For the demo tools with a GUI, the new command line options `-w' + and `-h' select the width and the height of the output window, + respectively. + + - The `ttdebug' program was broken and has been reactivated. Note + that this program is not compiled by default. + + +====================================================================== + +CHANGES BETWEEN 2.4.10 and 2.4.11 (2012-Dec-20) + + I. IMPORTANT BUG FIXES + + - Some vulnerabilities in the BDF implementation have been fixed. + Users of this font format should upgrade. + + + II. IMPORTANT CHANGES + + - Subpixel hinting support has been contributed by Infinality, + based on Greg Hitchcock's whitepaper at + + https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx + + Originally, it was a separate patch available from + + https://web.archive.org/web/20150710073951/http://www.infinality.net:80/blog/ + + and which has been integrated. + + Note that ClearType support is not completely implemented! In + particular, full support for the options `compatible_widths', + `symmetrical_smoothing, and `bgr' (via the GETINFO bytecode + instruction) is missing. + + Activation of subpixel hinting support can be controlled with + the `TT_CONFIG_OPTION_SUBPIXEL_HINTING' configuration option; it + is switched off by default. This feature is still experimental; + we welcome test reports! + + - Support for OpenType collections (OTC) has been added. + + - Pure CFF fonts within an SFNT wrapper are now supported. + + + III. MISCELLANEOUS + + - Minor rendering improvements to the auto-hinter. + + - `FT_GlyphSlot_Oblique' now uses a shear angle of 12°. + + - Experimental support to handle `property modules', for example + to control the behaviour of the auto-hinter. The API consists + of two new functions, `FT_Property_Set' and `FT_Property_Get'. + + The code is still subject to change and should not be used for + production. + + - The `ftdiff' demo program now supports UTF-8 encoded input files + for option `-f'. + + - Using keys `r' and `R', you can now adjust the stroker radius in + the `ftview' demo program. + + - Other, minor fixes and improvements. + + +====================================================================== + +CHANGES BETWEEN 2.4.9 and 2.4.10 (2012-Jun-15) + + I. IMPORTANT BUG FIXES + + - Incremental glyph loading as needed by ghostscript was broken. + + + II. MISCELLANEOUS + + - A new function `FT_Outline_EmboldenXY', contributed by Alexei + Podtelezhnikov. + + - In the `ftview' demo program, key `e' has been replaced with `x' + and `y' to embolden in the horizontal and vertical direction, + respectively. + + - The glyph spacing computation in `FT_GlyphSlot_Embolden' (and + similar code in `ftview') has been improved. + + - Minor improvements to the TrueType bytecode interpreter and + glyph loader, the auto-hinter, and the B/W rasterizer. + + +====================================================================== + +CHANGES BETWEEN 2.4.8 and 2.4.9 (2012-Mar-08) + + I. IMPORTANT BUG FIXES + + - Another round of fixes to better handle invalid fonts. Many of + them are vulnerabilities (see CVE-2012-1126 up to CVE-2012-1144 + and SA48320) so all users should upgrade. + + + II. MISCELLANEOUS + + - The `ENCODING -1 ' format of BDF fonts is now supported. + + - For BDF fonts, support for the whole Unicode encoding range has + been added. + + - Better TTF support for x_ppem != y_ppem. + + - `FT_Get_Advances' sometimes returned bogus values. + + - The demo programs no longer recognize and handle default + suffixes; you now have to always specify the complete font name. + + - Better rendering and LCD mode cycling added to `ftview'. + + +====================================================================== + +CHANGES BETWEEN 2.4.7 and 2.4.8 (2011-Nov-14) + + I. IMPORTANT BUG FIXES + + - Some vulnerabilities in handling CID-keyed PostScript fonts have + been fixed; see CVE-2011-3439. + + + II. MISCELLANEOUS + + - Chris Liddell contributed a new API, `FT_Get_PS_Font_Value', to + retrieve most of the dictionary keys in Type 1 fonts. + + +====================================================================== + +CHANGES BETWEEN 2.4.6 and 2.4.7 (2011-Oct-18) + + I. IMPORTANT BUG FIXES + + - Some vulnerabilities in handling Type 1 fonts have been fixed; + see CVE-2011-3256. + + + II. MISCELLANEOUS + + - FreeType now properly handles ZapfDingbats glyph names while + constructing a Unicode character map (for fonts which don't have + one). + + +====================================================================== + +CHANGES BETWEEN 2.4.5 and 2.4.6 (2011-Jul-29) + + I. IMPORTANT BUG FIXES + + - For TrueType based fonts, the ascender and descender values were + incorrect sometimes (off by a pixel if the ppem value was not a + multiple of 5). Depending on the use you might now experience + a different layout; the change should result in better, more + consistent line spacing. + + - Fix CVE-2011-0226 which causes a vulnerability while handling + Type 1 fonts. + + - BDF fonts containing glyphs with negative values for ENCODING + were incorrectly rejected. This bug has been introduced in + FreeType version 2.2.0. + + - David Bevan contributed a major revision of the FreeType stroker + code: + + . The behaviour of FT_STROKER_LINEJOIN_BEVEL has been corrected. + + . A new line join style, FT_STROKER_LINEJOIN_MITER_FIXED, has + been introduced to support PostScript and PDF miter joins. + + . FT_STROKER_LINEJOIN_MITER_VARIABLE has been introduced as an + alias for FT_STROKER_LINEJOIN_MITER. + + . Various stroking glitches has been fixed. + + + II. MISCELLANEOUS + + - SFNT bitmap fonts which contain an outline glyph for `.notdef' + only no longer set the FT_FACE_FLAG_SCALABLE flag. + + +====================================================================== + +CHANGES BETWEEN 2.4.4 and 2.4.5 (2011-Jun-25) + + I. IMPORTANT BUG FIXES + + - A rendering regression for second-order Bézier curves has been + fixed, introduced in 2.4.3. + + + II. IMPORTANT CHANGES + + - If autohinting is not explicitly disabled, FreeType now uses + the autohinter if a TrueType based font doesn't contain native + hints. + + - The load flag FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH has been made + redundant and is simply ignored; this means that FreeType now + ignores the global advance width value in TrueType fonts. + + + III. MISCELLANEOUS + + - `FT_Sfnt_Table_Info' can now return the number of SFNT tables of + a font. + + - Support for PCF files compressed with bzip2 has been contributed + by Joel Klinghed. To make this work, the OS must provide a + bzip2 library. + + - Bradley Grainger contributed project and solution files in + Visual Studio 2010 format. + + - Again some fixes to better handle broken fonts. + + - Some improvements to the B/W rasterizer. + + - Fixes to the cache module to improve robustness. + + - Just Fill Bugs contributed (experimental) code to compute blue + zones for CJK Ideographs, improving the alignment of horizontal + stems at the top or bottom edges. + + - The `ftgrid' demo program can now display autohinter segments, + to be toggled on and off with key `s'. + + +====================================================================== + +CHANGES BETWEEN 2.4.3 and 2.4.4 (2010-Nov-28) + + I. IMPORTANT BUG FIXES + + - UVS support (TrueType/OpenType cmap format 14) support is fixed. + This regression has been introduced in version 2.4.0. + + + II. MISCELLANEOUS + + - Detect tricky fonts (e.g. MingLiU) by the lengths and checksums + of Type42-persistent subtables (`cvt ', `fpgm', and `prep') when + a TrueType font without family name is given. The previous fix, + introduced in 2.4.3, was too rigorous, causing many subsetted + fonts (mainly from PDF files) displayed badly because FreeType + forced rendering with the TrueType bytecode engine instead of + the autohinter. + + - Better support for 64bit platforms. + + - More fixes to improve handling of broken fonts. + + +====================================================================== + +CHANGES BETWEEN 2.4.2 and 2.4.3 (2010-Oct-03) + + I. IMPORTANT BUG FIXES + + - Fix rendering of certain cubic, S-shaped arcs. This regression + has been introduced in version 2.4.0. + + + II. MISCELLANEOUS + + - To fix the above mentioned rendering issue, a new spline + flattening algorithm has been introduced which speeds up both + conic and cubic arcs. + + - Handling of broken fonts has been further improved. + + +====================================================================== + +CHANGES BETWEEN 2.4.1 and 2.4.2 (2010-Aug-06) + + I. IMPORTANT BUG FIXES + + - A stack overflow in CFF Type2 CharStrings interpreter is fixed. + + - Handling Type 42 font deallocation was broken; additionally, the + library is now more robust against malformed Type 42 fonts. + + + II. MISCELLANEOUS + + - Two new functions, `FT_Reference_Library' (in FT_MODULE_H) and + `FT_Reference_Face' (in FT_FREETYPE_H), have been added to + simplify life-cycle management. A counter gets initialized to 1 + at the time an FT_Library (or FT_Face) structure is created. + The two new functions increment the respective counter. + `FT_Done_Library' and `FT_Done_Face' then only destroy a library + or face if the counter is 1, otherwise they simply decrement the + counter. + + +====================================================================== + +CHANGES BETWEEN 2.4.0 and 2.4.1 (2010-Jul-18) + + I. IMPORTANT CHANGES + + - A serious bug in the CFF font module prevented display of many + glyphs in CFF fonts like `MinionPro-Regular.otf'. + + +====================================================================== + +CHANGES BETWEEN 2.3.12 and 2.4.0 (2010-Jul-12) + + I. IMPORTANT CHANGES + + - Since May 2010, all patents regarding the TrueType bytecode + interpreter have expired worldwide. Consequently, we now define + TT_CONFIG_OPTION_BYTECODE_INTERPRETER by default (and undefine + TT_CONFIG_OPTION_UNPATENTED_HINTING). + + - A new function `FT_Library_SetLcdFilterWeights' is available to + adjust the filter weights set by `FT_Library_SetLcdFilter'. + + + II. MISCELLANEOUS + + - Thanks to many reports from Robert Święcki, FreeType's stability + in handling broken or damaged fonts is much improved. + + - Support for LCD filter control has been added to the demo + programs `ftdiff' and `ftview'. + + +====================================================================== + +CHANGES BETWEEN 2.3.11 and 2.3.12 + + I. IMPORTANT CHANGES + + - For `FT_Open_Face', new parameters are available to ignore + preferred family names: FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY and + FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY. + + + II. MISCELLANEOUS + + - Support for incremental font loading (controlled with the + FT_CONFIG_OPTION_INCREMENTAL macro) is now active by default. + + - Better support for vertical metrics. + + - Various minor bug fixes. + + +====================================================================== + +CHANGES BETWEEN 2.3.10 and 2.3.11 + + I. IMPORTANT BUG FIXES + + - Version 2.3.10 broke PCF support. + + +====================================================================== + +CHANGES BETWEEN 2.3.10 and 2.3.9 + + I. IMPORTANT BUG FIXES + + - If all ASCII digits in a font have the same (unscaled) width, + the autohinter respects this and won't change it. + + - TrueType fonts are now rasterized correctly if the horizontal + and vertical resolution differ. + + - Type 1 fonts are now handled with increased precision internally + to avoid serious rounding issues if non-integral coordinates are + encountered. + + - Horizontally condensed CFF fonts (using the font matrix) were + rendered incorrectly. This bug has been introduced after + release 2.3.5. + + + II. IMPORTANT CHANGES + + - Support for the SFNT cmap 13 table format (as defined by the new + OpenType 1.6 specification) has been added. + + - B/W rasterization of well-hinted TrueType fonts at small sizes + has been greatly improved. + + - Calculation of vertical metrics in OpenType fonts has been + improved. + + + III. MISCELLANEOUS + + - It is now possible to change the emboldening factor in the + `ftview' demo program with keys `e' and `E'. + + - It is now possible to change the slant value in the `ftview' + demo program with keys `s' and `S'. + + - The 5-levels grayscale mode of the `ftraster' module (which + FreeType doesn't use by default) was broken since version 2.3.0. + + - Compilation of the `ftgrays' and `ftraster' modules was broken + in stand-alone mode. + + - Various fixes for compilation on 64bit and 16bit architectures. + + +====================================================================== + +CHANGES BETWEEN 2.3.9 and 2.3.8 + + I. IMPORTANT BUG FIXES + + - Very unfortunately, FreeType 2.3.8 contained a change that broke + its official ABI. The end result is that programs compiled + against previous versions of the library, but dynamically linked + to 2.3.8 can experience memory corruption if they call the + `FT_Get_PS_Font_Info' function. + + We recommend all users to upgrade to 2.3.9 as soon as possible, + or to downgrade to a previous release of the library if this is + not an option. + + The origin of the bug is that a new field was added to the + publicly defined `PS_FontInfoRec' structure. Unfortunately, + objects of this type can be stack or heap allocated by callers + of `FT_Get_PS_Font_Info', resulting in a memory buffer + overwrite with its implementation in 2.3.8. + + If you want to know whether your code is vulnerable to this + issue, simply search for the substrings `PS_FontInfo' and + `PS_Font_Info' in your source code. If none is found, your code + is safe and is not affected. + + The FreeType team apologizes for the problem. + + - The POSIX support of MacOS resource-fork fonts (Suitcase fonts + and LaserWriter Type1 PostScript fonts) was broken in 2.3.8. If + FreeType2 is built without Carbon framework, these fonts are not + handled correctly. Version 2.3.7 didn't have this bug. + + - `FT_Get_Advance' (and `FT_Get_Advances') returned bad values for + almost all font formats except TrueType fonts. + + - Fix a bug in the SFNT kerning table loader/parser which could + crash the engine if certain malformed tables were encountered. + + - Composite SFNT bitmaps are now handled correctly. + + + II. IMPORTANT CHANGES + + - The new functions `FT_Get_CID_Is_Internally_CID_keyed' and + `FT_Get_CID_From_Glyph_Index' can be used to access CID-keyed + CFF fonts via CID values. This code has been contributed by + Michael Toftdal. + + + III. MISCELLANEOUS + + - `FT_Outline_Get_InsideBorder' returns FT_STROKER_BORDER_RIGHT + for empty outlines. This was incorrectly documented. + + - The `ftview' demo program now supports UTF-8 encoded strings. + + +====================================================================== + +CHANGES BETWEEN 2.3.8 and 2.3.7 + + I. IMPORTANT BUG FIXES + + - CID-keyed fonts in an SFNT wrapper were not handled correctly. + + - The smooth renderer produced truncated images (on the right) for + outline parts with negative horizontal values. Most fonts don't + contain outlines left to the y coordinate axis, but the effect + was very noticeable for outlines processed with FT_Glyph_Stroke, + using thick strokes. + + - `FT_Get_TrueType_Engine_Type' returned a wrong value if both + configuration macros TT_CONFIG_OPTION_BYTECODE_INTERPRETER and + TT_CONFIG_OPTION_UNPATENTED_HINTING were defined. + + - The `face_index' field in the `FT_Face' structure wasn't + initialized properly after calling FT_Open_Face and friends with + a positive face index for CFFs, WinFNTs, and, most importantly, + for TrueType Collections (TTCs). + + + II. IMPORTANT CHANGES + + - Rudimentary support for Type 1 fonts and CID-keyed Type 1 fonts + in an SFNT wrapper has been added -- such fonts are used on the + Mac. The core SFNT tables `TYP1' and `CID ' are passed to the + PS Type 1 and CID-keyed PS font drivers; other tables (`ALMX', + `BBOX', etc.) are not supported yet. + + - A new interface to extract advance values of glyphs without + loading their outlines has been added. The functions are called + `FT_Get_Advance' and `FT_Get_Advances'; they are defined in file + `ftadvanc.h' (to be accessed as FT_ADVANCES_H). + + - A new function `FT_Get_FSType_Flags' (in FT_FREETYPE_H) has been + contributed by David Bevan to access the embedding and + subsetting restriction information of fonts. + + + III. MISCELLANEOUS + + - FT_MulFix is now an inlined function; by default, assembler code + is provided for x86 and ARM. See FT_CONFIG_OPTION_INLINE_MULFIX + and FT_CONFIG_OPTION_NO_ASSEMBLER (in ftoption.h) for more. + + - The handling of `tricky' fonts (that is, fonts which don't work + with the autohinter, needing the font format's hinting engine) + has been generalized and changed slightly: + + . A new face flag FT_FACE_FLAG_TRICKY indicates that the font + format's hinting engine is necessary for correct rendering. + The macro FT_IS_TRICKY can be used to check this flag. + + . FT_LOAD_NO_HINTING is now ignored for tricky fonts. To really + force raw loading of such fonts (without hinting), both + FT_LOAD_NO_HINTING and FT_LOAD_NO_AUTOHINT must be used -- + this is something which you probably never want to do. + + . Tricky TrueType fonts always use the bytecode interpreter, + either the patented or unpatented version. + + - The function `FT_GlyphSlot_Own_Bitmap' has been moved from + FT_SYNTHESIS_H to FT_BITMAP_H; it is now part of the `official' + API. (The functions in FT_SYNTHESIS_H are still subject to + change, however.) + + - In the `ftdiff' demo program you can now toggle the use of + FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH with key `a'. + + +====================================================================== + +CHANGES BETWEEN 2.3.7 and 2.3.6 + + I. IMPORTANT BUG FIXES + + - If the library was compiled on an i386 platform using gcc, and + compiler option -O3 was given, `FT_MulFix' sometimes returned + incorrect results which could have caused problems with + `FT_Request_Metrics' and `FT_Select_Metrics', returning an + incorrect descender size. + + - Pure CFFs without subfonts were scaled incorrectly if the font + matrix was non-standard. This bug has been introduced in + version 2.3.6. + + - The `style_name' field in the `FT_FaceRec' structure often + contained a wrong value for Type 1 fonts. This misbehaviour + has been introduced in version 2.3.6 while trying to fix + another problem. [Note, however, that this value is + informative only since the used algorithm to extract it is + very simplistic.] + + + II. IMPORTANT CHANGES + + - Two new macros, FT_OUTLINE_SMART_DROPOUTS and + FT_OUTLINE_EXCLUDE_STUBS, have been introduced. Together with + FT_OUTLINE_IGNORE_DROPOUTS (which was ignored previously) it is + now possible to control the dropout mode of the `raster' module + (for B&W rasterization), using the `flags' field in the + `FT_Outline' structure. + + - The TrueType bytecode interpreter now passes the dropout mode to + the B&W rasterizer. This greatly increases the output for small + ppem values of many fonts like `pala.ttf'. + + +====================================================================== + +CHANGES BETWEEN 2.3.6 and 2.3.5 + + I. IMPORTANT BUG FIXES + + - A bunch of potential security problems have been found. All + users should update. + + - Microsoft Unicode cmaps in TrueType fonts are now always + preferred over Apple cmaps. This is not a bug per se, but there + exist some buggy fonts created for MS which have broken Apple + cmaps. This affects only the automatic selection of FreeType; + it's always possible to manually select an Apple Unicode cmap if + desired. + + - Many bug fixes to the TrueType bytecode interpreter. + + - Improved Mac support. + + - Subsetted CID-keyed CFFs are now supported correctly. + + - CID-keyed CFFs with subfonts which are scaled in a non-standard + way are now handled correctly. + + - A call to FT_Open_Face with `face_index' < 0 crashed FreeType if + the font was a Windows (bitmap) FNT/FON. + + + II. IMPORTANT CHANGES + + - The new function `FT_Get_CID_Registry_Ordering_Supplement' gives + access to those fields in a CID-keyed font. The code has been + contributed by Derek Clegg. + + - George Williams contributed code to validate the new `MATH' + OpenType table (within the `otvalid' module). The `ftvalid' + demo program has been extended accordingly. + + - An API for cmap 14 support (for Unicode Variant Selectors, UVS) + has been contributed by George Williams. + + - A new face flag FT_FACE_FLAG_CID_KEYED has been added, together + with a macro FT_IS_CID_KEYED which evaluates to 1 if the font is + CID-keyed. + + + III. MISCELLANEOUS + + - Build support for symbian has been contributed. + + - Better WGL4 glyph name support, contributed by Sergey Tolstov. + + - Debugging output of the various FT_TRACEX macros is now sent to + stderr. + + - The `ftview' demo program now provides artificial slanting too. + + - The `ftvalid' demo program has a new option `-f' to select the + font index. + + +====================================================================== + +CHANGES BETWEEN 2.3.5 and 2.3.4 + + I. IMPORTANT BUG FIXES + + - Some subglyphs in TrueType fonts were handled incorrectly due to + a missing graphics state reinitialization. + + - Large .Z files (as distributed with some X11 packages) weren't + handled correctly, making FreeType increase the heap stack in an + endless loop. + + - A large number of bugs have been fixed to avoid crashes and + endless loops with invalid fonts. + + + II. IMPORTANT CHANGES + + - The two new cache functions `FTC_ImageCache_LookupScaler' and + `FTC_SBit_Cache_LookupScaler' have been added to allow lookup of + glyphs using an `FTC_Scaler' object; this makes it possible to + use fractional pixel sizes in the cache. The demo programs have + been updated accordingly to use this feature. + + - A new API `FT_Get_CMap_Format' has been added to get the cmap + format of a TrueType font. This is useful in handling PDF + files. The code has been contributed by Derek Clegg. + + - The auto-hinter now produces better output by default for + non-Latin scripts like Indic. This was done by using the CJK + hinting module as the default instead of the Latin one. Thanks + to Rahul Bhalerao for this suggestion. + + - A new API `FT_Face_CheckTrueTypePatents' has been added to find + out whether a given TrueType font uses patented bytecode + instructions. The `ft2demos' bundle contains a new program + called `ftpatchk' which demonstrates its usage. + + - A new API `FT_Face_SetUnpatentedHinting' has been added to + enable or disable the unpatented hinter. + + - Support for Windows FON files in PE format has been contributed + by Dmitry Timoshkov. + + + III. MISCELLANEOUS + + - Vincent Richomme contributed Visual C++ project files for Pocket + PCs. + + +====================================================================== + +CHANGES BETWEEN 2.3.4 and 2.3.3 + + I. IMPORTANT BUG FIXES + + - A serious bug in the handling of bitmap fonts (and bitmap + strikes of outline fonts) has been introduced in 2.3.3. + + +====================================================================== + +CHANGES BETWEEN 2.3.3 and 2.3.2 + + I. IMPORTANT BUG FIXES + + - Remove a serious regression in the TrueType bytecode interpreter + that was introduced in version 2.3.2. Note that this does not + disable the improvements introduced to the interpreter in + version 2.3.2, only some ill cases that occurred with certain + fonts (though a few popular ones). + + - The auto-hinter now ignores single-point contours for computing + blue zones. This bug created `wavy' baselines when rendering + text with various fonts that use these contours to model + mark-attach points (these are points that are never rasterized + and are placed outside of the glyph's real outline). + + - The `rsb_delta' and `lsb_delta' glyph slot fields are now set to + zero for mono-spaced fonts. Otherwise code that uses them would + essentially ruin the fixed-advance property. + + - Fix CVE-2007-1351 which can cause an integer overflow while + parsing BDF fonts, leading to a potentially exploitable heap + overflow condition. + + + II. MISCELLANEOUS + + - Fixed compilation issues on some 64-bit platforms (see ChangeLog + for details). + + - A new demo program `ftdiff' has been added to compare TrueType + hinting, FreeType's auto hinting, and rendering without hinting + in three columns. + + +====================================================================== + +CHANGES BETWEEN 2.3.2 and 2.3.1 + + I. IMPORTANT BUG FIXES + + - FreeType returned incorrect kerning information from TrueType + fonts when the bytecode interpreter was enabled. This happened + due to a typo introduced in version 2.3.0. + + - Negative kerning values from PFM files are now reported + correctly (they were read as 16-bit unsigned values from the + file). + + - Fixed a small memory leak when `FT_Init_FreeType' failed for + some reason. + + - The Postscript hinter placed and sized very thin and ghost stems + incorrectly. + + - The TrueType bytecode interpreter has been fixed to get rid of + most of the rare differences seen in comparison to the Windows + font loader. + + + II. IMPORTANT CHANGES + + - The auto-hinter now better deals with serifs and corner cases + (e.g., glyph '9' in Arial at 9pt, 96dpi). It also improves + spacing adjustments and doesn't change widths for non-spacing + glyphs. + + - Many Mac-specific functions are deprecated (but still + available); modern replacements have been provided for them. + See the documentation in file `ftmac.h'. + + +====================================================================== + +CHANGES BETWEEN 2.3.1 and 2.3.0 + + I. IMPORTANT BUG FIXES + + - The TrueType interpreter sometimes returned incorrect horizontal + metrics due to a bug in the handling of the SHZ instruction. + + - A typo in a security check introduced after version 2.2.1 + prevented FreeType to render some glyphs in CFF fonts. + + +====================================================================== + +CHANGES BETWEEN 2.3.0 and 2.2.1 + + I. IMPORTANT BUG FIXES + + - The PCF font loader is now much more robust while loading + malformed font files. + + - Various memory leaks have been found and fixed. + + - The TrueType name loader now deals properly with some fonts that + encode their names in UTF-16 (the specification was vague, and + the code incorrectly assumed UCS-4). + + - Fixed the TrueType bytecode loader to deal properly with subtle + monochrome/gray issues when scaling the CVT. Some fonts + exhibited bad rendering artifacts otherwise. + + - `FT_GlyphSlot_Embolden' now supports vertical layouts correctly + (it mangled the vertical advance height). + + - Fixed byte endian issues of `ftmac.c' to support Mac OS X on + i386. + + - The PFR font loader no longer erroneously tags font files + without any outlines as FT_FACE_FLAG_SCALABLE. + + + II. NEW API FUNCTIONS + + - `FT_Library_SetLcdFilter' allows you to select a special filter + to be applied to the bitmaps generated by `FT_Render_Glyph' if + one of the FT_RENDER_MODE_LCD and FT_RENDER_MODE_LCD_V modes has + been selected. This filter is used to reduce color fringes; + several settings are available through the FT_LCD_FILTER_XXX + enumeration. + + Its declaration and documentation can be found in file + `include/freetype/ftlcdfil.h' (to be accessed with macro + FT_LCD_FILTER_H). + + *IMPORTANT*: This function returns an error + (FT_Err_Unimplemented_Feature) in default builds of the library + for patent reasons. See below. + + - `FT_Get_Gasp' allows you to query the flags of the TrueType + `gasp' table for a given character pixel size. This is useful + to duplicate the text rendering of MS Windows when the native + bytecode interpreter is enabled (which isn't the default for + other patent reasons). + + Its declaration and documentation can be found in file + `include/freetype/ftgasp.h' (to be accessed with macro + FT_GASP_H). + + + III. IMPORTANT CHANGES + + - The auto-hinter has been tuned a lot to improve its results with + serif fonts, resulting in much better font rendering of many web + pages. + + - The unpatented hinter is now part of the default build of the + library; we have added code to automatically support `tricky' + fonts that need it. + + This means that FreeType should `just work' with certain Asian + fonts, like MingLiU, which cannot properly be loaded without a + bytecode interpreter, but which fortunately do not use any of + the patented bytecode opcodes. We detect these fonts by name, + so please report any font file that doesn't seem to work with + FreeType, and we shall do what we can to support it in a next + release. + + Note that the API hasn't changed, so you can still force + unpatented hinting with a special parameter to `FT_Open_Face' as + well. This might be useful in same cases; for example, a PDF + reader might present a user option to activate it to deal with + certain `tricky' embedded fonts which cannot be clearly + identified. + + If you are a developer for embedded systems, you might want to + *disable* the feature to save code space by undefining + TT_CONFIG_OPTION_UNPATENTED_HINTING in file `ftoption.h'. + + - LCD-optimized rendering is now *disabled* in all default builds + of the library, mainly due to patent issues. For more + information see: + + https://lists.gnu.org/archive/html/freetype/2006-09/msg00064.html + + A new configuration macro FT_CONFIG_OPTION_SUBPIXEL_RENDERING + has been introduced in `ftoption.h'; manually define it in this + file if you want to re-enable the feature. + + The change only affects the implementation, not the FreeType + API. This means that clients don't need to be modified, because + the library still generates LCD decimated bitmaps, but with the + added constraint that R=G=B on each triplet. + + The displayed result should be equal to normal anti-aliased + rendering. + + Additionally, if FT_CONFIG_OPTION_SUBPIXEL_RENDERING is not + defined, the new `FT_Library_SetLcdFilter' function returns the + FT_Err_Unimplemented_Feature error code. + + - Some computation bugs in the TrueType bytecode interpreter were + found, which allow us to get rid of very subtle and rare + differences we had experienced with the Windows renderer. + + - It is now possible to cross-compile the library easily. See the + file `docs/INSTALL.CROSS' for details. + + - The file `src/base/ftmac.c' now contains code for Mac OS X only; + its deprecated function `FT_GetFile_From_Mac_Font_Name' always + returns an error even if the QuickDraw framework is available. + The previous version has been moved to `builds/mac/ftmac.c'. + + Selecting configure option `--with-quickdraw-carbon' makes the + build process use the original `ftmac.c' file instead of the Mac + OS X-only version. + + + IV. MISCELLANEOUS + + - Various performance and memory footprint optimizations have been + performed on the TrueType and CFF font loaders, sometimes with + very drastic benefits (e.g., the TrueType loader is now about + 25% faster; FreeType should use less heap memory under nearly + all conditions). + + - The anti-aliased rasterizer has been optimized and is now 15% to + 25% percent faster than in previous versions, depending on + content. + + - The Type 1 loader has been improved; as an example, it now skips + top-level dictionaries properly. + + - Better support for Mac fonts on POSIX systems, plus compilation + fixes for Mac OS X on ppc64 where `ftmac.c' cannot be built. + + - Configuration without `--with-old-mac-fonts' does not include + `ftmac.c' (this was the behaviour in FreeType version 2.1.10). + + - The TrueTypeGX validator (gxvalid) checks the order of glyph IDs + in the kern table. + + +====================================================================== + +CHANGES BETWEEN 2.2.1 and 2.2 + + I. IMPORTANT BUG FIXES + + - Various integer overflows have been fixed. + + - PFB fonts with MacOS resource fork weren't handled correctly on + non-MacOS platforms. + + +====================================================================== + +CHANGES BETWEEN 2.2 and 2.1.10 + +(not released officially) + + I. IMPORTANT BUG FIXES + + - Vertical metrics for SFNT fonts were incorrect sometimes. + + - The FT_HAS_KERNING macro always returned 0. + + - CFF OpenType fonts didn't return correct vertical metrics for + glyphs with outlines. + + - If FreeType was compiled without hinters, all font formats based + on PS outlines weren't scaled correctly. + + + II. IMPORTANT CHANGES + + - Version 2.2 no longer exposes its internals, that is, the header + files located in the `include/freetype/internal' directory of + the source package are not copied anymore by the `make install' + command. Consequently, a number of rogue clients which directly + access FreeType's internal functions and structures won't + compile without modification. + + We provide patches for most of those rogue clients. See the + following page for more information: + + https://www.freetype.org/freetype2/patches/rogue-patches.html + + Note that, as a convenience to our Unix desktop users, version + 2.2 is *binary* compatible with FreeType 2.1.7, which means that + installing this release on an existing distribution shall not + break any working desktop. + + - FreeType's build mechanism has been redesigned. With GNU make + it is now sufficient in most cases to edit two files: + `modules.cfg', to select the library components, and the + configuration file `include/freetype/config/ftoption.h' (which + can be copied to the objects directory). Removing unused module + directories to prevent its compilation and editing + `include/freetype/config/ftmodule.h' is no longer necessary. + + - The LIGHT hinting algorithm produces more pleasant results. + Also, using the FT_LOAD_TARGET_LIGHT flags within FT_Load_Glyph + always forces auto-hinting, as a special exception. This allows + you to experiment with it even if you have enabled the TrueType + bytecode interpreter in your build. + + - The auto hinter now employs a new algorithm for CJK fonts, based + on Akito Hirai's patch. Note that this only works for fonts + with a Unicode charmap at the moment. + + - The following callback function types have changed slightly (by + adding the `const' keyword where appropriate): + + FT_Outline_MoveToFunc + FT_Outline_LineToFunc + FT_Outline_ConicToFunc + FT_Outline_CubicToFunc + FT_SpanFunc + FT_Raster_RenderFunc + + FT_Glyph_TransformFunc + FT_Renderer_RenderFunc + FT_Renderer_TransformFunc + + Note that this doesn't affect binary backward compatibility. + + - On MacOS, new APIs have been added as replacements for legacy + APIs: `FT_New_Face_From_FSRef' for `FT_New_Face_From_FSSpec', + and `FT_GetFile_From_Mac_ATS_Name' for + `FT_GetFile_From_Mac_Name'. Legacy APIs are still available, if + FreeType is built without disabling them. + + - A new API `FT_Select_Size' has been added to select a bitmap + strike by its index. Code using other functions to select + bitmap strikes should be updated to use this function. + + - A new API `FT_Get_SubGlyph_Info' has been added to retrieve + subglyph data. This can be used by rogue clients which used to + access the internal headers to get the corresponding data. + + - In 2.1.10, the behaviour of `FT_Set_Pixel_Sizes' was changed for + BDF/PCF fonts, and only for them. This causes inconsistency. + In this release, we undo the change. The intent of the change + in 2.1.10 is to allow size selection through real dimensions, + which can now be done through `FT_Request_Size'. + + - Some security issues were discovered and fixed in the CFF and + Type 1 loader, causing crashes of FreeType by malformed font + files. + + + III. MISCELLANEOUS + + - The documentation for FT_LOAD_TARGET_XXX and FT_RENDER_MODE_XXX + values now better reflects its usage and differences: One set is + used to specify the hinting algorithm, the other to specify the + pixel rendering mode. + + - `FT_New_Face' and `FT_New_Face_From_FSSpec' in ftmac.c have been + changed to count supported scalable faces (sfnt, LWFN) only, and + to return the number of available faces via face->num_faces. + Unsupported bitmap faces (fbit, NFNT) are ignored. + + - builds/unix/configure has been improved for MacOS X. It now + automatically checks available functions in Carbon library, and + prepare to use newest functions by default. Options to specify + the dependencies of each Carbon APIs (FSSpec, FSRef, old/new + QuickDraw, ATS) are available too. By manual disabling of all + QuickDraw functionality, FreeType can be built without + `deprecated function' warnings on MacOS 10.4.x, but + FT_GetFile_Mac_Name in ftmac.c then is changed to a dummy + function, and returns an `unimplemented' error. For details see + builds/mac/README. + + - SFNT cmap handling has been improved, mainly to run much faster + with CJK fonts. + + - A new function `FT_Get_TrueType_Engine_Type (declared in + `FT_MODULE_H') is provided to determine the status of the + TrueType bytecode interpreter compiled into the library + (patented, unpatented, unimplemented). + + - Vertical metrics of glyphs are synthesized if the font does not + provide such information. You can tell whether the metrics are + synthesized or not by checking the FT_FACE_FLAG_VERTICAL flag of + the face. + + - The demo programs `ftview' and `ftstring' have been rewritten + for better readability. `ftview' has a new switch `-p' to test + FT_New_Memory_Face (instead of FT_New_Face). + + - FreeType now honours bit 1 in the `head' table of TrueType fonts + (meaning `left sidebearing point at x=0'). This helps with some + buggy fonts. + + - Rudimentary support for Adobe's new `SING Glyphlet' format. See + + https://www.adobe.com/content/dam/acom/en/devnet/font/pdfs/5148.SING_Tutorial.pdf + + for more information. + + - The `ftdump' program from the `ft2demos' bundle now shows some + information about charmaps. It also supports a new switch `-v' + to increase verbosity. + + - Better AFM support. This includes track kerning support. + + +====================================================================== + +CHANGES BETWEEN 2.1.10 and 2.1.9 + + I. IMPORTANT BUG FIXES + + - The size comparison for BDF and PCF files could fail sometimes. + + - Some CFF files were still not loaded correctly. Patch from + Derek Noonburg. + + - The stroker still had some serious bugs. + + - Boris Letocha fixed a bug in the TrueType interpreter: The + NPUSHW instruction wasn't skipped correctly in IF clauses. Some + fonts like `Helvetica 75 Bold' failed. + + - Another serious bug in handling TrueType hints caused many + distortions. It has been introduced in version 2.1.8, and it is + highly recommended to upgrade. + + - FreeType didn't properly parse empty Type 1 glyphs. + + - An unbound dynamic buffer growth was fixed in the PFR loader. + + - Several bugs have been fixed in the cache sub-system. + + - FreeType behaved incorrectly when resizing two distinct but very + close character pixel sizes through `FT_Set_Char_Size' (Savannah + bug #12263). + + - The auto-hinter didn't work properly for fonts without a Unicode + charmap -- it even refused to load the glyphs. + + + II. IMPORTANT CHANGES + + - Many fixes have been applied to drastically reduce the amount of + heap memory used by FreeType, especially when using + memory-mapped font files (which is the default on Unix systems + which support them). + + - The auto-hinter has been replaced with a new module, called the + `auto-fitter'. It consumes less memory than its predecessor, + and it is prepared to support non-latin scripts better in next + releases. + + - George Williams contributed code to read kerning data from PFM + files. + + - FreeType now uses the TT_NAME_ID_PREFERRED_FAMILY and + TT_NAME_ID_PREFERRED_SUBFAMILY strings (if available) for + setting family and style in SFNT fonts (patch from Kornfeld + Eliyahu Peter). + + - A new API `FT_Sfnt_Table_Info' (in FT_TRUETYPE_TABLES_H) has + been added to retrieve name and size information of SFNT tables. + + - A new API `FT_OpenType_Validate' (in FT_OPENTYPE_VALIDATE_H) has + been added to validate OpenType tables (BASE, GDEF, GPOS, GSUB, + JSTF). After validation it is no longer necessary to check + for errors in those tables while accessing them. + + Note that this module might be moved to another library in the + future to avoid a tight dependency between FreeType and the + OpenType specification. + + - A new API in FT_BITMAP_H (`FT_Bitmap_New', `FT_Bitmap_Convert', + `FT_Bitmap_Copy', `FT_Bitmap_Embolden', `FT_Bitmap_Done') has + been added. Its use is to convert an FT_Bitmap structure in + 1bpp, 2bpp, 4bpp, or 8bpp format into another 8bpp FT_Bitmap, + probably using a different pitch, and to further manipulate it. + + - A new API `FT_Outline_Embolden' (in FT_OUTLINE_H) gives finer + control how outlines are emboldened. + + - `FT_GlyphSlot_Embolden' (in FT_SYNTHESIS_H) now handles bitmaps + also (code contributed by Chia I Wu). Note that this function + is still experimental and may be replaced with a better API. + + - The method how BDF and PCF bitmap fonts are accessed has been + refined. Formerly, FT_Set_Pixel_Sizes and FT_Set_Char_Size + were synonyms in FreeType's BDF and PCF interface. This has + changed now. FT_Set_Pixel_Sizes should be used to select the + actual font dimensions (the `strike', which is the sum of the + `FONT_ASCENT' and `FONT_DESCENT' properties), while + FT_Set_Char_Size selects the `nominal' size (the `PIXELSIZE' + property). In both functions, the width parameter is ignored. + + + III. MISCELLANEOUS + + - The BDF driver no longer converts all returned bitmaps with a + depth of 2bpp or 4bpp to a depth of 8bpp. The documentation has + not mentioned this explicitly, but implementors might have + relied on this after looking into the source files. + + - A new option `--ftversion' has been added to freetype-config to + return the FreeType version. + + - The memory debugger has been updated to dump allocation + statistics on all allocation sources in the library. This is + useful to spot greedy allocations when loading and processing + fonts. + + - We removed a huge array of constant pointers to constant strings + in the `psnames' module. The problem was that compilations in + PIC mode (i.e., when generating a Unix shared object/dll) put + the array into the non-shared writable section of the library + since absolute pointers are not relocatable by nature. + + This reduces the memory consumption by approximately 16KByte per + process linked to FreeType. We now also store the array in a + compressed form (as a trie) which saves about 20KByte of code as + well. + + - Kirill Smelkov provided patches to make src/raster/ftraster.c + compile stand-alone again. + + +====================================================================== + +CHANGES BETWEEN 2.1.9 and 2.1.8 + + I. IMPORTANT BUG FIXES + + - The function `FT_Get_CharMap_Index' was only declared, without + any real code. For consistency, it has been renamed to + `FT_Get_Charmap_Index'. (This function is needed to implement + cmap caches.) + + - `FT_Outline_Get_BBox' sometimes returned incorrect values for + conic outlines (e.g., for TrueType fonts). + + - Handling of `bhed' table has been fixed. + + - The TrueType driver with enabled byte code interpreter sometimes + returned artifacts due to incorrect rounding. This bug has been + introduced after version 2.1.4. + + - The BDF driver dropped the last glyph in the font. + + - The BDF driver now uses the DEFAULT_CHAR property (if available) + to select a glyph shape for the undefined glyph. + + - The stroker failed for closed outlines and single points. + + + II. IMPORTANT CHANGES + + - George Williams contributed code to handle Apple's font + distortion technology found in GX fonts (`avar', `cvar', `fvar', + and `gvar' tables; the Multiple Masters API has been slightly + extended to cope with the new functionality). + + - The `FT_GlyphSlotRec' structure has been extended: The elements + `lsb_delta' and `rsb_delta' give the difference between hinted + and unhinted left and right side bearings if autohinting is + active. Using those values can improve the inter-letter spacing + considerably. See the documentation of `FT_GlyphSlotRec' and + the `ftstring' demo program how to use it. + + - Loading TrueType and Type 1 fonts has been made much faster. + + - The stroker is no longer experimental (but the cache subsystem + still is). + + + III. MISCELLANEOUS + + - A new documentation file `formats.txt' describes various font + formats supported (and not supported) by FreeType. + + +====================================================================== + +CHANGES BETWEEN 2.1.8 and 2.1.7 + + I. IMPORTANT BUG FIXES + + - The native TrueType hinter contained some bugs which prevented + some fonts to be rendered correctly, most notably Legendum.otf. + + - The PostScript hinter now produces improved results. + + - The linear advance width and height values were incorrectly + rounded, making them virtually unusable if not loaded with + FT_LOAD_LINEAR_DESIGN. + + - Indexing CID-keyed CFF fonts is now working: The glyph index is + correctly treated as a CID, similar to FreeType's CID driver + module. Note that CID CMap support is still missing. + + - The FT_FACE_FLAG_GLYPH_NAMES flag is now set correctly for all + font formats. + + - Some subsetted Type 1 fonts weren't parsed correctly. This bug + has been introduced in 2.1.7. In summary, the Type 1 parser has + become more robust. + + - Non-decimal numbers weren't parsed correctly in PS fonts. + + - The WinFNT driver now correctly reports FT_ENCODING_NONE for all + but one encoding. Use the new FT_WinFNT_ID_XXX values together + with `FT_Get_WinFNT_Header' to get the WinFNT charset ID. + + - The descender metrics (face->size->metrics.descender) for WinFNT + bitmap fonts had the wrong sign. + + - The (emulated) `seac' support for CFF fonts was broken. + + - The `flex' operator didn't work for CFF fonts. + + - PS glyphs which use the `hintmask' operator haven't been + rendered correctly in some cases. + + - Metrics for BDF and PCF bitmap font formats have been fixed. + + - Autohinting is now disabled for glyphs which are vertically + distorted or mirrored (using a transformation matrix). This + fixes a bug which produced zero-height glyphs. + + - The `freetype-config' script now handles --prefix and + --exec-prefix correctly; it also returns the proper --rpath (or + -R) value if FreeType has been built as a shared library. + + + II. IMPORTANT CHANGES + + - Both PCF and BDF drivers now handle the SETWIDTH_NAME and + ADD_STYLE_NAME properties. Values are appended to + face->style_name; example: `Bold SemiCondensed'. + + - The PCF driver now handles bitmap fonts compressed with the LZW + algorithm (extension .pcf.Z, compressed with `compress'). + + - A new API function `FT_Get_CMap_Language_ID' (declared in + `tttables.h') is available to get the language ID of a + TrueType/SFNT cmap. + + - The hexadecimal format of data after the `StartData' command in + CID-keyed Type 1 fonts is now supported. While this can't occur + in file-based fonts, it can happen in document-embedded + resources of PostScript documents. + + - Embedded bitmaps in SFNT-based CFF fonts are now supported. + + - A simple API is now available to control FreeType's tracing + mechanism if compiled with FT_DEBUG_LEVEL_TRACE. See the file + `ftdebug.h' for more details. + + - YAMATO Masatake contributed improved handling of MacOS resource + forks on non-MacOS platforms (for example, Linux can mount MacOS + file systems). + + - Support for MacOS has been improved; there is now a new function + `FT_New_Face_From_FSSpec' similar to `FT_New_Face' except that + it accepts an FSSpec instead of a path. + + - The cache sub-system has been rewritten. + + - There is now support for deinstallation of faces. + + - A new API function `FTC_Manager_RemoveFaceID' has been added + to delete all `idle' nodes that correspond to a given + FTC_FaceID. All `locked' nodes (i.e., those with a reference + count > 0), will be modified to prevent them from appearing in + further lookups (they will be cleaned normally when their + reference count reaches 0). + + - There is now support for point scaling (i.e., providing + character sizes in points + dpis, instead of pixels). + + - Three abstract cache classes are now available: + + FTC_GCache: Used to store one glyph item per cache node, + with the ability to group common attributes into + `families'. This replaces the old + FTC_GlyphCache class. + + FTC_ICache: Used to store one FT_Glyph per cache node. This + extends FTC_GCache. Family definition, family + comparison, and glyph loading are however left + to sub-classes. + + FTC_SCache: Used to store up to 16 small bitmaps per cache + node. This extends FTC_GCache. Family + definition, family comparison and glyph loading + are however left to sub-classes. + + - The file `src/cache/ftcbasic.c' implements: + + FTC_ImageCache: Extends FTC_ICache; implements family + definitions and glyph loading similar to the + old API. + + FTC_SBitCache: Extends FTC_SCache, implements family + definitions and glyph loading similar to the + old API + + Client applications should be able to extend FTC_GCache, + FTC_ICache, or FTC_SCache much more easily (i.e., less code to + write, and less callbacks). For example, one could envision + caches that are capable of storing transformed (obliqued), + stroked, emboldened, or colored glyph images. Use + `ftcbasic.c' as an example. + + - All public APIs are now in `include/freetype/ftcache.h', (to + be accessed as `FT_CACHE_H'). The contents of + `include/freetype/cache/' is only needed by applications that + wish to implement their own caches. + + - There were some major performance improvements through the use + of various programming tricks. Cache hits are up to 70% + faster than in the old code. + + - The FTC_CMapCache has been simplified. Charmaps can only be + accessed by index right now. There is also a new API named + `FT_Charmap_GetIndex' for this purpose. + + - The demo programs have been updated to the new code. The + previous versions will not work with the current one. + + - Using an invalid face index in FT_Open_Face and friends now + causes an error even if the font contains a single face only. + + + III. MISCELLANEOUS + + - Wolfgang Domröse contributed support files for building FreeType + on the Atari using the PureC compiler. Note that the Atari is a + 16bit platform. + + - Vitaliy Pasternak contributed project files for VS.NET 2003. + + +====================================================================== + +CHANGES BETWEEN 2.1.7 and 2.1.6 + + I. IMPORTANT BUG FIXES + + - Updated to newest libtool version, fixing build problems on + various platforms. + + - On Unix platforms, `make install' didn't copy the correct + `ftconfig.h' file. + + Note that version 2.1.7 contains the same library C source code as + version 2.1.6. + + +====================================================================== + +CHANGES BETWEEN 2.1.6 and 2.1.5 + + I. IMPORTANT BUG FIXES + + - The PFR font driver didn't load kerning tables correctly, and + the functions in FT_PFR_H didn't work at all. + + - Type 1 font files in binary format (PFB) with an end-of-file + indicator weren't accepted by the FreeType engine. + + - Fonts which contain /PaintType and /StrokeWidth no longer cause + a segfault. This bug has been introduced in version 2.1.5. + + - Fonts loaded with FT_LOAD_RENDER no longer cause strange + results. This bug has been introduced in version 2.1.5. + + - Some Windows (bitmap) FNT/FON files couldn't be handled + correctly. + + + II. IMPORTANT CHANGES + + - The internal module API has been heavily changed in favor of + massive simplifications within the font engine. This also means + that authors of third-party modules must adapt their code to the + new scheme. + + NOTE: THE NEW SCHEME IS NOT COMPLETED YET. PLEASE WAIT UNTIL A + FINAL ANNOUNCEMENT! + + - The PostScript parser has been enhanced to handle comments and + strings correctly. Additionally, more syntax forms are + recognized. + + - Added the optional unpatented hinting system for TrueType. It + allows typefaces which need hinting to produce correct glyph + forms (e.g., Chinese typefaces from Dynalab) to work acceptably + without infringing Apple patents. This system is compiled only + if TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING is defined in + ftoption.h (activated by default). + + + III. MISCELLANEOUS + + - There is now a guard in the public header files to protect + against inclusion of freetype.h from FreeType 1. + + - Direct inclusion of freetype.h and other public header files no + longer works. You have to use the documented scheme + + #include + #include FT_FREETYPE_H + + to load freetype.h with a symbolic name. This protects against + renaming of public header files (which shouldn't happen but + actually has, avoiding two public header files with the same + name). + + +====================================================================== + +CHANGES BETWEEN 2.1.5 and 2.1.4 + + I. IMPORTANT BUG FIXES + + - Parsing the /CIDFontName field now removes the leading slash to + be in sync with other font drivers. + + - gzip support was buggy. Some fonts could not be read. + + - Fonts which have nested subglyphs more than one level deep no + longer cause a segfault. + + - Creation of synthetic cmaps for fonts in CFF format was broken + partially. + + - Numeric font dictionary entries for synthetic fonts are no + longer overwritten. + + - The font matrix wasn't applied to the advance width for Type1, + CID, and CFF fonts. This caused problems when loading certain + synthetic Type 1 fonts like `Helvetica Narrow'. + + - The test for the charset registry in BDF and PCF fonts is now + case-insensitive. + + - FT_Vector_Rotate sometimes returned strange values due to + rounding errors. + + - The PCF driver now returns the correct number of glyphs + (including an artificial `notdef' glyph at index 0). + + - FreeType now supports buggy CMaps which are contained in many + CJK fonts from Dynalab. + + - Opening an invalid font on a Mac caused a segfault due to + double-freeing memory. + + - BDF fonts with more than 32768 glyphs weren't supported + properly. + + + II. IMPORTANT CHANGES + + - Accessing bitmap font formats has been synchronized. To do that + the FT_Bitmap_Size structure has been extended to contain new + fields `size', `x_ppem', and `y_ppem'. + + - The FNT driver now returns multiple faces, not multiple strikes. + + - The `psnames' module has been updated to the Adobe Glyph List + version 2.0. + + - The `psnames' module now understands `uXXXX[X[X]]' glyph names. + + - The algorithm for guessing the font style has been improved. + + - For fonts in SFNT format, root->height is no longer increased if + the line gap is zero. There exist fonts (containing e.g. form + drawing characters) which intentionally have a zero line gap + value. + + - ft_glyph_bbox_xxx flags are now deprecated in favour of + FT_GLYPH_BBOX_XXX. + + - ft_module_xxx flags are now deprecated in favour of + FT_MODULE_XXX. + + - FT_ENCODING_MS_{SJIS,GB2312,BIG5,WANSUNG,JOHAB} are now + deprecated in favour of + FT_ENCODING_{SJIS,GB2312,BIG5,WANSUNG,JOHAB} -- those encodings + are not specific to Microsoft. + + + III. MISCELLANEOUS + + - The autohinter has been further improved; for example, `m' + glyphs now retain its vertical symmetry. + + - Partial support of Mac fonts on non-Mac platforms. + + - `make refdoc' (after first `make') builds the HTML + documentation. You need Python for this. + + - The make build system should now work more reliably on DOS-like + platforms. + + - Support for EMX gcc and Watson C/C++ compilers on MS-DOS has + been added. + + - Better VMS build support. + + - Support for the pkg-config package by providing a `freetype.pc' + file. + + - New configure option --with-old-mac-fonts for Darwin. + + - Some source files have been renamed (mainly to fit into the 8.3 + naming scheme). + + +====================================================================== + +CHANGES BETWEEN 2.1.4 and 2.1.3 + + I. IMPORTANT BUG FIXES + + - Updated to newest libtool version, fixing build problems on + various platforms. + + - A fix in the Gzip stream reader: It couldn't read certain .gz + files properly due to a small typo. In certain cases, FreeType + could also loop endlessly when trying to load tiny gzipped + files. + + - The configure script now tries to use the system-wide zlib when + it finds one (instead of the copy found in src/gzip). And + `freetype-config' has been updated to return relevant flags in + this case when invoked with `--libs' (e.g. `-lzlib'). + + - Certain fonts couldn't be loaded by 2.1.3 because they lacked a + Unicode charmap (e.g. SYMBOL.TTF). FreeType erroneously + rejected them. + + - The CFF loader was modified to accept fonts which only contain a + subset of their reference charset. This prevented the correct + use of PDF-embedded fonts. + + - The logic to detect Unicode charmaps has been modified. This is + required to support fonts which include both 16-bit and 32-bit + charmaps (like very recent asian ones) using the new 10 and 12 + SFNT formats. + + - The TrueType loader now limits the depth of composite glyphs. + This is necessary to prevent broken fonts to break the engine by + blowing the stack with recursive glyph definitions. + + - The CMap cache is now capable of managing UCS-4 character codes + that are mapped through extended charmaps in recent + TrueType/OpenType fonts. + + - The cache sub-system now properly manages out-of-memory + conditions instead of blindly reporting them to the caller. + This means that it will try to empty the cache before restarting + its allocations to see if that can help. + + - The PFR driver didn't return the list of available embedded + bitmaps properly. + + - There was a nasty memory leak when using embedded bitmaps in + certain font formats. + + + II. IMPORTANT CHANGES + + - David Chester contributed some enhancements to the auto-hinter + that significantly increase the quality of its output. The + Postscript hinter was also improved in several ways. + + - The FT_RENDER_MODE_LIGHT render mode was implemented. + + - A new API function called `FT_Get_BDF_Property' has been added + to FT_BDF_H to retrieve BDF properties from BDF _and_ PCF font + files. THIS IS STILL EXPERIMENTAL, since it hasn't been + properly tested yet. + + - A Windows FNT specific API has been added, mostly to access font + headers. This is used by Wine. + + - TrueType tables without an `hmtx' table are now tolerated when + an incremental interface is used. This happens for certain + Type42 fonts passed from Ghostscript to FreeType. + + - The PFR font driver is now capable of returning the font family + and style names when they are available (instead of the sole + `FontID'). This is performed by parsing an *undocumented* + portion of the font file! + + + III. MISCELLANEOUS + + - The path stroker in FT_STROKER_H has entered beta stage. It now + works very well, but its interface might change a bit in the + future. More on this in later releases. + + - The documentation for FT_Size_Metrics didn't appear properly in + the API reference. + + - The file docs/VERSION.DLL has been updated to explain versioning + with FreeType (i.e., comparing release/libtool/so numbers, and + how to use them in autoconf scripts). + + - The installation documentation has been seriously revamped. + Everything is now in the `docs' directory. + + +====================================================================== + +CHANGES BETWEEN 2.1.3 and 2.1.2 + + I. IMPORTANT BUG FIXES + + - FT_Vector_Transform had been incorrectly modified in 2.1.2, + resulting in incorrect transformations being applied (for + example, rotations were processed in opposite angles). + + - The format 8 and 12 TrueType charmap enumeration routines have + been fixed (FT_Get_Next_Char returned invalid values). + + - The PFR font driver returned incorrect advance widths if the + outline and metrics resolution defined in the font file were + different. + + - FT_Glyph_To_Bitmap now returns successfully when called with an + FT_BitmapGlyph argument (it previously returned an error). + + - A bug in the Type 1 loader that prevented valid font bounding + boxes to be loaded from multiple master fonts. + + - The SFNT validation code has been rewritten. FreeType can now + load `broken' fonts that were usable on Windows, but not with + previous versions of the library. + + - The computation of bearings in the BDF driver has been fixed. + + - The Postscript hinter crashed when trying to hint certain glyphs + (more precisely, when trying to apply hints to an empty glyph + outline). + + - The TrueType glyph loader now supports composites in `Apple + format' (they differ slightly from Microsoft/OpenType ones in + the way transformation offsets are computed). + + - FreeType was very slow at opening certain asian CID/CFF fonts, + due to fixed increment in dynamic array re-allocations. This + has been changed to exponential behaviour to get acceptable + performance. + + + + II. IMPORTANT CHANGES + + - The PCF driver now supports gzip-compressed font files natively. + This means that you will be able to use all these bitmap fonts + that come with XFree86 with FreeType (and libXft/libXft2, by + extension). + + - The automatic and postscript hinters have both been updated. + This results in a relatively important increase of rendering + quality since many nasty defaults have been suppressed. Please + visit the web page: + + https://www.freetype.org/hinting/smooth-hinting.html + + for additional details on this topic. + + - The `load_flags' parameter of `FT_Load_Glyph' is now an FT_Int32 + (instead of just being an FT_Int). This breaks source and + binary compatibility for 16bit systems only, while retaining + both of them for 32 and 64 bit ones. + + Some new flags have been added consequently: + + FT_LOAD_NO_AUTOHINT :: Disable the use of the auto-hinter + (but not native format hinters). + + FT_LOAD_TARGET_NORMAL :: Hint and render for normal + anti-aliased displays. + + FT_LOAD_TARGET_MONO :: Hint and render for 1-bit displays. + + FT_LOAD_TARGET_LCD :: Hint and render for horizontal RGB or + BGR subpixel displays (like LCD + screens). THIS IS STILL + EXPERIMENTAL! + + FT_LOAD_TARGET_LCD_V :: Same as FT_LOAD_TARGET_LCD, for + vertical subpixel displays (like + rotated LCD screens). THIS IS STILL + EXPERIMENTAL! + + FT_LOAD_MONOCHROME is still supported, but only affects + rendering, not the hinting. + + Note that the `ftview' demo program available in the `ft2demos' + package has been updated to support LCD-optimized display on + non-paletted displays (under Win32 and X11). + + - The PFR driver now supports embedded bitmaps (all formats + supported), and returns correct kerning metrics for all glyphs. + + - The TrueType charmap loader now supports certain `broken' fonts + that load under Windows without problems. + + - The cache API has been slightly modified (it's still a beta!): + + - The type FTC_ImageDesc has been removed; it is now replaced + by FTC_ImageTypeRec. Note that one of its fields is a + `load_flag' parameter for FT_Load_Glyph. + + - The field `num_grays' of FT_SBitRec has been changed to + `max_grays' in order to fit within a single byte. Its + maximum value is thus 255 (instead of 256 as previously). + + + III. MISCELLANEOUS + + - Added support for the DESTDIR variable during `make install'. + This simplifies packaging of FreeType. + + - Included modified copies of the ZLib sources in `src/gzip' in + order to support gzip-compressed PCF fonts. We do not use the + system-provided zlib for now, though this is a probable + enhancement for future releases. + + - The DocMaker tool used to generate the on-line API reference has + been completely rewritten. It is now located in + `src/tools/docmaker/docmaker.py'. Features: + + - better cross-referenced output + - more polished output + - uses Python regular expressions (though it didn't speed the + program) + - much more modular structure, which allows for different + `backends' in order to generate HTML, XML, or whatever + format. + + One can regenerate the API reference by calling: + + python src/tools/docmaker/docmaker.py \ + --prefix=ft2 \ + --title=FreeType-2.1.3 \ + --output= + include/freetype/*.h \ + include/freetype/config/*.h \ + include/freetype/cache/*.h + + - A new, experimental, support for incremental font loading (i.e., + loading of fonts where the glyphs are not in the font file + itself, but provided by an external component, like a Postscript + interpreter) has been added by Graham Asher. This is still work + in progress, however. + + - A new, EXPERIMENTAL, path stroker has been added. It doesn't + suffer from severe rounding errors and treat bezier arcs + directly. Still work in progress (i.e. not part of the official + API). See the file for some of the + details. + + - The massive re-formatting of sources and internal re-design is + still under-way. Many internal functions, constants, and types + have been renamed. + + +====================================================================== + +CHANGES BETWEEN 2.1.2 and 2.1.1 + + I. IMPORTANT BUG FIXES + + - Many font drivers didn't select a Unicode charmap by default + when a new face was opened (with the FT_CONFIG_OPTION_USE_CMAPS + options enabled), causing many applications to not be able to + display text correctly with the 2.1.x releases. + + - The PFR driver had a bug in its composite loading code that + produces incorrectly placed accents with many fonts. + + - The Type42 driver crashed sometimes due to a nasty bug. + + - The Type 1 custom encoding charmap didn't handle the case where + the first glyph index wasn't 0. + + - A serious typo in the TrueType composite loader produced + incorrectly placed glyphs in fonts like `Wingdings' and a few + others. + + + II. MISCELLANEOUS + + - The Win32 Visual C++ project file has been updated to include + the PFR driver as well. + + - `freetype.m4' is now installed by default by `make install' on + Unix systems. + + - The function FT_Get_PS_Font_Info now works with CID and Type42 + fonts as well. + + +====================================================================== + +CHANGES BETWEEN 2.1.1 and 2.1.0 + + I. IMPORTANT BUG FIXES + + - The `version_info' returned by `freetype-config' in 2.1.0 + returned an invalid value. It now returns 9:1:3 (2.0.9 returned + 9:0:3). + + - Version 2.1.0 couldn't be linked against applications on Win32 + and Amiga systems due to a new debug function that wasn't + properly propagated to the system-specific directory in + `builds'. + + - Various MacOS and Mac OS X specific fixes. + + - Fixed a bug in the TrueType charmap validation routines that + made version 2.1.0 too restrictive -- many popular fonts have + been rejected. + + - There was still a very small difference between the monochrome + glyph bitmaps produced by FreeType 1.x and FreeType 2.x with the + bytecode interpreter enabled. This was caused by an invalid + flag setting in the TrueType glyph loader, making the rasterizer + change its drop-out control mode. Now the results should + _really_ be completely identical. + + - The TrueType name table loader has been improved to support many + popular though buggy Asian fonts. It now ignores empty name + entries, invalid pointer offsets and a few other incorrect + subtleties. Moreover, name strings are now loaded on demand, + which reduces the memory load of many faces (e.g. the ARIAL.TTF + font file contains a 10kByte name table with 70 names). + + - Fixed a bug in the Postscript hinter that prevented family blues + substitution to happen correctly. + + + II. NEW FEATURES + + - Three new font drivers in this release: + + * A BDF font driver, contributed by Franco Zappa Nardelli, + heavily modified by Werner Lemberg. It also supports + anti-aliased bitmaps (using a slightly extended BDF format). + + * A Type42 font driver, contributed by Roberto Alameda. It is + still experimental but seems to work relatively well. + + * A PFR font driver, contributed by David Turner himself. It + doesn't support PFR hinting -- note that BitStream has at + least two patents on this format! + + + III. MISCELLANEOUS + + - The cache sub-system has been optimized in important ways. + Cache hits are now significantly faster. For example, using the + CMap cache is about twice faster than calling FT_Get_Char_Index + on most platforms. Similarly, using an SBit cache is about five + times faster than loading the bitmaps from a bitmap file, and + 300 to 500 times faster than generating them from a scalable + format. + + Note that you should recompile your sources if you designed a + custom cache class for the FT2 Cache subsystem, since the + changes performed are source, but not binary, compatible. + + +====================================================================== + +CHANGES BETWEEN 2.1.0 and 2.0.9 + + I. IMPORTANT BUG FIXES + + - The TrueType bytecode interpreter has been fixed to produce + _exactly_ the same output as FreeType 1.x. Previous differences + were due to slightly distinct fixed-point computation routines + used to perform dot products and vector length measurements. + + It seems that native TrueType hinting is _extremely_ sensitive + to rounding errors. The required vector computation routines + have been optimized and placed within the `ttinterp.c' file. + + - Fixed the parsing of accelerator tables in the PCF font driver. + + - Fixed the Type1 glyph loader routine used to compute the font's + maximum advance width. + + + II. NEW FEATURES + + - The `configure' script used on Unix systems has been modified to + check that GNU Make is being used to build the library. + Otherwise, it will display a message proposing to use the + GNUMAKE environment variable to name it. + + The Unix-specific file README.UNX has been modified accordingly. + + + III. MISCELLANEOUS + + - The FreeType License in `docs/FTL.TXT' has been updated to + include a proposed preferred disclaimer. If you are using + FreeType in your products, you are encouraged (but not mandated) + to use the following text in your documentation: + + """ + Portions of this software are copyright © 1996-2002 The + FreeType Project (www.freetype.org). All rights reserved. + """ + + - The default size of the render pool has been reduced to 16kByte. + This shouldn't result in any noticeable performance penalty, + unless you are using the engine as-is to render very large and + complex glyphs. + + - The FreeType 2 redesign has begun. More information can be + found at this URL: + + https://www.freetype.org/freetype2/redesign.html + + The following internal changes have been performed within the + sources of this release: + + - Many internal types have been renamed to increase + consistency. The following should be true, except for + public types: + + * All structure types have a name ending in `Rec' (short + for `record'). + + * A pointer-to-structure type has the same name as the + structure, _without_ the `Rec' suffix. + + Example: + + typedef struct FooRec_ + { + ... + + } FooRec, *Foo; + + - Many internal macros have been renamed to increase + consistency. The following should be true: + + * All macros have a name beginning with `FT_'. This + required a few changes like + + ALLOC => FT_ALLOC + FREE => FT_FREE + REALLOC => FT_REALLOC + + * All macros are completely UPPERCASE. This required a + few changes like: + + READ_Short => FT_READ_SHORT + NEXT_Short => FT_NEXT_SHORT + GET_ULongLE => FT_GET_ULONG_LE + MEM_Set => FT_MEM_SET + MEM_Copy => FT_MEM_COPY + etc. + + * Whenever possible, all macro names follow the + FT__ pattern. For example + + ACCESS_Frame => FT_FRAME_ENTER + FORGET_Frame => FT_FRAME_EXIT + EXTRACT_Frame => FT_FRAME_EXTRACT + RELEASE_Frame => FT_FRAME_RELEASE + + FILE_Pos => FT_STREAM_POS + FILE_Seek => FT_STREAM_SEEK + FILE_Read => FT_STREAM_READ + FILE_ReadAt => FT_STREAM_READ_AT + READ_Fields => FT_STREAM_READ_FIELDS + + - Many internal functions have been renamed to follow the + FT__ pattern. For example: + + FT_Seek_Stream => FT_Stream_Seek + FT_Read_Stream_At => FT_Stream_ReadAt + FT_Done_Stream => FT_Stream_Close + FT_New_Stream => FT_Stream_Open + FT_New_Memory_Stream => FT_Stream_OpenMemory + FT_Extract_Frame => FT_Stream_ExtractFrame + + Note that method names do not contain `_'. + + - The FT_ALLOC_ARRAY and FT_REALLOC_ARRAY have been replaced + with FT_NEW_ARRAY and FT_RENEW_ARRAY which do not take a + type as the fourth argument. Instead, the array element + type size is computed automatically from the type of the + target pointer used. + + - A new object class, FT_CMap, has been introduced. These + internal objects are used to model character maps. This + eases the support of additional charmap types within the + engine. + + - A new configuration file named `ftstdlib.h' has been added + to `include/freetype/config'. It is used to define aliases + for _every_ routine of the ISO C library that the font + engine uses. Each aliases has a `ft_' prefix + (e.g. `ft_strlen' is an alias for `strlen'). + + This is used to ease the porting of FreeType 2 to exotic + runtime environments where the ISO C Library isn't available + (e.g. XFree86 extension modules). + + More details are available in the `ChangeLog' file. + + +====================================================================== + +CHANGES BETWEEN 2.0.9 and 2.0.8 + + I. IMPORTANT BUG FIXES + + - Certain fonts like `foxjump.ttf' contain broken name tables with + invalid entries and wild offsets. This caused FreeType to crash + when trying to load them. + + The SFNT `name' table loader has been fixed to be able to + support these strange fonts. + + Moreover, the code in charge of processing this table has been + changed to always favour Windows-formatted entries over other + ones. Hence, a font that works on Windows but not on the Mac + will load cleanly in FreeType and report accurate values for + Family & PostScript names. + + - The CID font driver has been fixed. It unfortunately returned a + Postscript Font name with a leading slash, as in + `/MunhwaGothic-Regular'. + + - FreeType 2 should now compile fine on AIX 4.3.3 as a shared + library. + + - A bug in the Postscript hinter has been found and fixed, + removing un-even stem widths at small pixel sizes (like 14-17). + + This improves the quality of a certain number of Postscript + fonts. + + + II. NEW FEATURES + + - A new function named `FT_Library_Version' has been added to + return the current library's major, minor, and patch version + numbers. This is important since the macros FREETYPE_MAJOR, + FREETYPE_MINOR, and FREETYPE_PATCH cannot be used when the + library is dynamically linked by a program. + + - Two new APIs have been added: `FT_Get_First_Char' and + `FT_Get_Next_Char'. + + Together, these can be used to iterate efficiently over the + currently selected charmap of a given face. Read the API + reference for more details. + + + III. MISCELLANEOUS + + - The FreeType sources are under heavy internal re-factoring. As + a consequence, we have created a branch named `STABLE' on the + CVS to hold all future releases/fixes in the 2.0.x family. + + The HEAD branch now contains the re-factored sources and + shouldn't be used for testing or packaging new releases. In + case you would like to access the 2.0.9 sources from our CVS + repository, use the tag `VER-2-0-9'. + + +====================================================================== + +CHANGES BETWEEN 2.0.8 and 2.0.7 + + I. IMPORTANT BUG FIXES + + - There was a small but nasty bug in `freetype-config.in' which + caused the `freetype-config' script to fail on Unix. + + This didn't prevent the installation of the library or even its + execution, but caused problems when trying to compile many Unix + packages that depend on it. + + - Some TrueType or OpenType fonts embedded in PDF documents do not + have a 'cmap', 'post' and 'name' as is required by the + specification. FreeType no longer refuses to load such fonts. + + - Various fixes to the PCF font driver. + + +====================================================================== + +CHANGES BETWEEN 2.0.7 and 2.0.6 + + I. IMPORTANT BUG FIXES + + - Fixed two bugs in the Type 1 font driver. The first one + resulted in a memory leak in subtle cases. The other one caused + FreeType to crash when trying to load `.gsf' files (Ghostscript + so-called Postscript fonts). + + (This made _many_ KDE applications crash on certain systems. + FreeType _is_ becoming a critical system component on Linux :-) + + - Fixed a memory leak in the CFF font driver. + + - Fixed a memory leak in the PCF font driver. + + - Fixed the Visual C++ project file + `builds/win32/visualc/freetype.dsp' since it didn't include the + Postscript hinter component, causing errors at build time. + + - Fixed a small rendering bug in the anti-aliased renderer that + only occurred when trying to draw thin (less than 1 pixel) + strokes. + + - Fixed `builds/unix/freetype2.a4' which is used to generate a + valid `freetype2.m4' for use with autoconf. + + - Fixed the OpenVMS Makefiles. + + + II. MISCELLANEOUS + + - Added `configure' and `install' scripts to the top-level + directory. A GNU-style installation is thus now easily possible + with + + ./configure + make + make install + + +====================================================================== + +CHANGES BETWEEN 2.0.6 and 2.0.5 + + I. IMPORTANT BUG FIXES + + - It wasn't possible to load embedded bitmaps when the auto-hinter + was used. This is now fixed. + + - The TrueType font driver didn't load some composites properly + (the sub-glyphs were slightly shifted, and this was only + noticeable when using monochrome rendering). + + - Various fixes to the auto-hinter. They merely improve the + output of sans-serif fonts. Note that there are still problems + with serifed fonts and composites (accented characters). + + - All scalable font drivers erroneously returned un-fitted glyph + advances when hinting was requested. This created problems for + a number of layout applications. This is a very old bug that + got undetected mainly because most test/demo program perform + rounding explicitly or implicitly (through the cache). + + - `FT_Glyph_To_Bitmap' did erroneously modify the source glyph in + certain cases. + + - `glnames.py' still contained a bug that made FreeType return + invalid names for certain glyphs. + + - The library crashed when loading certain Type 1 fonts like + `sadn.pfb' (`Stalingrad Normal'), which appear to contain + pathetic font info dictionaries. + + - The TrueType glyph loader is now much more paranoid and checks + everything when loading a given glyph image. This was necessary + to avoid problems (crashes and/or memory overwrites) with broken + fonts that came from a really buggy automatic font converter. + + + II. IMPORTANT UPDATES AND NEW FEATURES + + - Important updates to the Mac-specific parts of the library. + + - The caching sub-system has been completely re-designed, and its + API has evolved (the old one is still supported for backward + compatibility). + + The documentation for it is not yet completed, sorry. For now, + you are encouraged to continue using the old API. However, the + ftview demo program in the ft2demos package has already been + updated to use the new caching functions. + + - A new charmap cache is provided too. See `FTC_CMapCache'. This + is useful to perform character code -> glyph index translations + quickly, without the need for an opened FT_Face. + + - A NEW POSTSCRIPT HINTER module has been added to support native + hints in the following formats: PostScript Type 1, PostScript + CID, and CFF/CEF. + + Please test! Note that the auto-hinter produces better results + for a number of badly-hinted fonts (mostly auto-generated ones) + though. + + - A memory debugger is now part of the standard FreeType sources. + To enable it, define FT_DEBUG_MEMORY in + , and recompile the library. + + Additionally, define the _environment_ variable FT_DEBUG_MEMORY + and run any program using FreeType. When the library is exited, + a summary of memory footprints and possible leaks will be + displayed. + + This works transparently with _any_ program that uses FreeType. + However, you will need a lot of memory to use this (allocated + blocks are never released to the heap to detect double deletes + easily). + + + III. MISCELLANEOUS + + - We are aware of subtle differences between the output of + FreeType versions 1 and 2 when it comes to monochrome + TrueType-hinted glyphs. These are most probably due to small + differences in the monochrome rasterizers and will be worked out + in an upcoming release. + + - We have decided to fork the sources in a `stable' branch, and an + `unstable' one, since FreeType is becoming a critical component + of many Unix systems. + + The next bug-fix releases of the library will be named 2.0.7, + 2.0.8, etc., while the `2.1' branch will contain a version of + the sources where we will start major reworking of the library's + internals, in order to produce FreeType 2.2.0 (or even 3.0) in a + more distant future. + + We also hope that this scheme will allow much more frequent + releases than in the past. + + +====================================================================== + +CHANGES BETWEEN 2.0.5 and 2.0.4 + + NOTE THAT 2.0.5 DOES NOT CONTAIN THE POSTSCRIPT HINTER. THIS MODULE + WILL BE PART OF THE NEXT RELEASE (EITHER 2.0.6 or 2.1) + + - Fixed a bug that made certain glyphs, like `Cacute', `cacute' and + `lslash' unavailable from Unicode charmaps of Postscript fonts. + This prevented the correct display of Polish text, for example. + + - The kerning table of Type 1 fonts was loaded by FreeType, when its + AFM file was attached to its face, but the + FT_FACE_FLAG_HAS_KERNING bit flags was not set correctly, + preventing FT_Get_Kerning to return meaningful values. + + - Improved SFNT (TrueType & OpenType) charmap support. Slightly + better performance, as well as support for the new formats defined + by the OpenType 1.3 specification (8, 10, and 12) + + - Fixed a serious typo in `src/base/ftcalc.c' which caused invalid + computations in certain rare cases, producing ugly artefacts. + + - The size of the EM square is computed with a more accurate + algorithm for Postscript fonts. The old one caused slight errors + with embedded fonts found in PDF documents. + + - Fixed a bug in the cache manager that prevented normal LRU + behaviour within the cache manager, causing unnecessary reloads + (for FT_Face and FT_Size objects only). + + - Added a new function named `FT_Get_Name_Index' to retrieve the + glyph index of a given glyph name, when found in a face. + + - Added a new function named `FT_Get_Postscript_Name' to retrieve + the `unique' Postscript font name of a given face. + + - Added a new public header size named FT_SIZES_H (or + ) providing new FT_Size-management functions: + FT_New_Size, FT_Activate_Size, FT_Done_Size. + + - Fixed a reallocation bug that generated a dangling pointer (and + possibly memory leaks) with Postscript fonts (in + src/psaux/psobjs.c). + + - Many fixes for 16-bit correctness. + + - Removed many pedantic compiler warnings from the sources. + + - Added an Amiga build directory in `builds/amiga'. + + +====================================================================== + +CHANGES BETWEEN 2.0.4 and 2.0.3 + + - Fixed a rather annoying bug that was introduced in 2.0.3. Namely, + the font transformation set through FT_Set_Transform was applied + twice to auto-hinted glyphs, resulting in incorrectly rotated text + output. + + - Fixed _many_ compiler warnings. FT2 should now compile cleanly + with Visual C++'s most pedantic warning level (/W4). It already + compiled fine with GCC and a few other compilers. + + - Fixed a bug that prevented the linear advance width of composite + TrueType glyphs to be correctly returned. + + - Fixed the Visual C++ project files located in + `builds/win32/visualc' (previous versions used older names of the + library). + + - Many 32-bit constants have an `L' appended to their value, in + order to improve the 16-bitness of the code. Someone is actually + trying to use FT2 on an Atari ST machine! + + - Updated the `builds/detect.mk' file in order to automatically + build FT2 on AIX systems. AIX uses `/usr/sbin/init' instead of + `/sbin/init' and wasn't previously detected as a Unix platform by + the FreeType build system. + + - Updated the Unix-specific portions of the build system (new + libtool version, etc.). + + - The SFNT kerning loader now ensures that the table is sorted + (since some problem fonts do not meet this requirement). + + +======================================================================= + +CHANGES BETWEEN 2.0.3 and 2.0.2 + + I. CHANGES TO THE MODULES / FONT DRIVERS + + - THE AUTO-HINTER HAS BEEN SLIGHTLY IMPROVED, in order to fix + several annoying artefacts, mainly: + + - Blue zone alignment of horizontal stems wasn't performed + correctly, resulting in artefacts like the `d' being placed + one pixel below the `b' in some fonts like Time New Roman. + + - Overshoot thresholding wasn't performed correctly, creating + unpleasant artefacts at large character pixel sizes. + + - Composite glyph loading has been simplified. This gets rid + of various artefacts where the components of a composite + glyphs were not correctly spaced. + + These are the last changes to the current auto-hinting module. + A new hinting sub-system is currently in the work in order to + support native hints in Type 1 / CFF / OpenType fonts, as well + as globally improve rendering. + + - The PCF driver has been fixed. It reported invalid glyph + dimensions for the fonts available on Solaris. + + - The Type 1, CID and CFF drivers have been modified to fix the + computation of the EM size. + + - The Type 1 driver has been fixed to avoid a dangerous bug that + crashed the library with non-conforming fonts (i.e. ones that do + not place the .notdef glyph at position 0). + + - The TrueType driver had a rather subtle bug (dangling pointer + when loading composite glyphs) that could crash the library in + rare occasions! + + + II. HIGH-LEVEL API CHANGES + + - The error code enumeration values have been changed. An error + value is decomposed in a generic error code, and a module + number. see for details. + + - A new public header file has been introduced, named + FT_TRIGONOMETRY_H (include/freetype/fttrigon.h), providing + trigonometric functions to compute sines, cosines, arctangents, + etc. with 16.16 fixed precision. The implementation is based on + the CORDIC algorithm and is very fast while being sufficiently + accurate. + + + III. INTERNALS + + - Added BeOS-specific files in the old build sub-system. Note + that no changes were required to compile the library with Jam. + + - The configuration is now capable of automatically detecting + 64-bit integers on a set of predefined compilers (GCC, Visual + C++, Borland C++) and will use them by default. This provides a + small performance boost. + + - A small memory leak that happened when opening 0-sized files + (duh!) have been fixed. + + - Fixed bezier stack depth bug in the routines provided by the + FT_BBOX_H header file. Also fixed similar bugs in the + rasterizers. + + - The outline bounding box code has been rewritten to use direct + computations, instead of bezier sub-division, to compute the + exact bounding box of glyphs. This is slightly slower but more + accurate. + + - The build system has been improved and fixed, mainly to support + `make' on Windows 2000 correctly, avoid problems with `make + distclean' on non Unix systems, etc. + + - Hexadecimal constants have been suffixed with `U' to avoid + problems with certain compilers on 64-bit platforms. + + - A new directory named `src/tools' has been created. It contains + Python scripts and simple unit test programs used to develop the + library. + + - The DocMaker tool has been moved from `docs' to `src/tools' and + has been updated with the following: + + - Now accepts the `--title=XXXX' or `-t XXXX' option from the + command line to set the project's name in the generated API + reference. + + - Now accepts the `--output=DIR' or `-o DIR' option from the + command line to set the output directory for all generated + HTML files. + + - Now accepts the `--prefix=XXXX' or `-p XXX' option from the + command line to set the file prefix to use for all + generated HTML files. + + - Now generates the current time/data on each generated page + in order to distinguish between versions. + + DocMaker can be used with other projects now, not only FT2 + (e.g. MLib, FTLayout, etc.). + + +====================================================================== + +CHANGES BETWEEN 2.0.2 and 2.0.1 + + I. CHANGES TO THE MODULES / FONT DRIVERS + + - THE TRUETYPE BYTECODE INTERPRETER IS NOW TURNED OFF, in order to + avoid legal problems with the Apple patents. It seems that we + mistakenly turned this option on in previous releases of the + build. + + Note that if you want to use the bytecode interpreter in order + to get high-quality TrueType rendering, you will need to toggle + by hand the definition of the + TT_CONFIG_OPTION_BYTECODE_INTERPRETER macro in the file + `include/freetype/config/ftoption.h'. + + - The CFF driver has been improved by Tom Kacvinsky and Sander van + der Wal: + + * Support for `seac' emulation. + * Support for `dotsection'. + * Support for retrieving glyph names through + `FT_Get_Glyph_Name'. + + The first two items are necessary to correctly a large number of + Type 1 fonts converted to the CFF formats by Adobe Acrobat. + + - The Type 1 driver was also improved by Tom & others: + + * Better EM size computation. + * Better support for synthetic (transformed) fonts. + * The Type 1 driver returns the charstrings corresponding to + each glyph in the `glyph->control_data' field after a call to + `FT_Load_Glyph' (thanks Ha Shao). + + - Various other bugfixes, including the following: + + * Fixed a nasty memory leak in the Type 1 driver. + * The autohinter and the pcf driver used static writable data + when they shouldn't. + * Many casts were added to make the code more 64-bits safe. It + also now compiles on Windows XP 64-bits without warnings. + * Some incorrect writable statics were removed in the `autohint' + and `pcf' drivers. FreeType 2 now compiles on Epoc again. + + + II. CHANGES TO THE HIGH-LEVEL API + + - The library header files inclusion scheme has been changed. The + old scheme looked like: + + #include + #include + #include + #include + + Now you should use: + + #include + #include FT_FREETYPE_H + #include FT_GLYPH_H + #include FT_CACHE_H + #include FT_CACHE_IMAGE_H + + NOTE THAT THE OLD INCLUSION SCHEME WILL STILL WORK WITH THIS + RELEASE. HOWEVER, WE DO NOT GUARANTEE THAT THIS WILL STILL BE + TRUE IN THE NEXT ONE (A.K.A. FREETYPE 2.1). + + The file is used to define the header filename + macros. The complete and commented list of macros is available + in the API reference under the section name `Header File Macros' + in Chapter I. + + For more information, see section I of the following document: + + https://www.freetype.org/freetype2/docs/tutorial/step1.html + + - Many, many comments have been added to the public source file in + order to automatically generate the API Reference through the + `docmaker.py' Python script. + + The latter has been updated to support the grouping of sections + in chapters and better index sort. See: + + https://www.freetype.org/freetype2/docs/reference/ft2-toc.html + + + III. CHANGES TO THE BUILD PROCESS + + - If you are not building FreeType 2 with its own build system + (but with your own Makefiles or project files), you will need to + be aware that the build process has changed a little bit. + + You don't need to put the `src' directory in the include path + when compiling any FT2 component. Instead, simply put the + component's directory in the current include path. + + So, if you were doing something like: + + cc -c -Iinclude -Isrc src/base/ftbase.c + + change the line to: + + cc -c -Iinclude -Isrc/base src/base/ftbase.c + + If you were doing something like: + + cd src/base + cc -c -I../../include -I.. ftbase.c + + change it to: + + cd src/base + cc -c -I../../include ftbase.c + + +====================================================================== + +CHANGES BETWEEN 2.0.1 and 2.0 + + 2.0.1 introduces a few changes: + + - Fixed many bugs related to the support of CFF / OpenType fonts. + These formats are now much better supported though there is + still work planned to deal with charset tables and PDF-embedded + CFF files that use the old `seac' command. + + - The library could not be compiled in debug mode with a very + small number of C compilers whose pre-processors didn't + implement the `##' directive correctly (i.e. per se the ANSI C + specification!) An elegant fix was found. + + - Added support for the free Borland command-line C++ Builder + compiler. Use `make setup bcc32'. Also fixed a few source + lines that generated new warnings with BCC32. + + - Fixed a bug in FT_Outline_Get_BBox when computing the extrema of + a conic Bezier arc. + + - Updated the INSTALL file to add IDE compilation. + + - Other minor bug fixes, from invalid Type 1 style flags to + correct support of synthetic (obliqued) fonts in the + auto-hinter, better support for embedded bitmaps in a SFNT font. + + - Fixed some problems with `freetype-config'. + + Finally, the `standard' scheme for including FreeType headers is now + gradually changing, but this will be explained in a later release + (probably 2.0.2). + + And very special thanks to Tom Kacvinsky and YAMANO-UCHI Hidetoshi + for their contributions! + + +====================================================================== + +CHANGES BETWEEN beta8 and 2.0 + + - Changed the default installation path for public headers from + `include/freetype' to `include/freetype2'. + + Also added a new `freetype-config' that is automatically generated + and installed on Unix and Cygwin systems. The script itself is + used to retrieve the current install path, C compilation flags as + well as linker flags. + + - Fixed several small bugs: + + * Incorrect max advance width for fixed-pitch Type 1 fonts. + * Incorrect glyph names for certain TrueType fonts. + * The glyph advance was not copied when FT_Glyph_To_Bitmap was + called. + * The linearHoriAdvance and linearVertAdvance fields were not + correctly returned for glyphs processed by the auto-hinter. + * `type1z' renamed back to `type1'; the old `type1' module has + been removed. + + - Revamped the build system to make it a lot more generic. This + will allow us to re-use nearly un-modified in lots of other + projects (including FreeType Layout). + + - Changed `cid' to use `psaux' too. + + - Added the cache sub-system. See as well as + the sources in `src/cache'. Note that it compiles but is still + untested for now. + + - Updated `docs/docmaker.py', a draft API reference is available at + https://web.archive.org/web/20001215173400/http://www.freetype.org:80/ft2api.html. + + - Changed `type1' to use `psaux'. + + - Created a new module named `psaux' to hold the Type 1 & Type 2 + parsing routines. It should be used by `type1', `cid', and `cff' + in the future. + + - Fixed an important bug in `FT_Glyph_Get_CBox'. + + - Fixed some compiler warnings that happened since the TrueType + bytecode decoder was deactivated by default. + + - Fixed two memory leaks: + + * The memory manager (16 bytes) isn't released in + FT_Done_FreeType! + * Using custom input streams, the copy of the original stream was + never released. + + - Fixed the auto-hinter by performing automatic computation of the + `filling direction' of each glyph. This is done through a simple + and fast approximation, and seems to work (problems spotted by + Werner though). The Arphic fonts are a lot nicer though there are + still a lot of things to do to handle Asian fonts correctly. + + +====================================================================== + +BETA-8 (RELEASE CANDIDATE) CHANGES + + - Deactivated the TrueType bytecode interpreter by default. + + - Deactivated the `src/type1' font driver. Now `src/type1z' is used + by default. + + - Updates to the build system. We now compile the library correctly + under Unix system through `configure' which is automatically + called on the first `make' invocation. + + - Added the auto-hinting module! Fixing some bugs here and there. + + - Found some bugs in the composite loader (seac) of the Type1-based + font drivers. + + - Renamed the directory `freetype2/config' to `freetype2/builds' and + updated all relevant files. + + - Found a memory leak in the `type1' driver. + + - Incorporated Tom's patches to support flex operators correctly in + OpenType/CFF fonts. Now all I need is to support pure CFF and CEF + fonts to be done with this driver :-) + + - Added the Windows FNT/FON driver in `src/winfonts'. For now, it + always `simulates' a Unicode charmap, so it shouldn't be + considered completed right now. + + It is there to be more a proof of concept than anything else + anyway. The driver is a single C source file, that compiles to 3 + Kb of code. + + I'm still working on the PCF/BDF drivers, but I'm too lazy to + finish them now. + + - CHANGES TO THE HIGH-LEVEL API + + * FT_Get_Kerning has a new parameter that allows you to select the + coordinates of the kerning vector (font units, scaled, scaled + + grid-fitted). + * The outline functions are now in and not + part of anymore. + * now contains declarations for + FT_New_Library, FT_Done_Library, FT_Add_Default_Modules. + * The so-called convenience functions have moved from `ftoutln.c' + to `ftglyph.c', and are thus available with this optional + component of the library. They are declared in + now. + * Anti-aliased rendering is now the default for FT_Render_Glyph + (i.e. corresponds to render_mode == 0 == ft_render_mode_normal). + To generate a monochrome bitmap, use ft_render_mode_mono, or the + FT_LOAD_MONOCHROME flag in FT_Load_Glyph/FT_Load_Char. + FT_LOAD_ANTI_ALIAS is still defined, but values to 0. + * now include , + solving a few headaches :-) + * The type FT_GlyphSlotRec has now a `library' field. + + - CHANGES TO THE `ftglyph.h' API + + This API has been severely modified in order to make it simpler, + clearer, and more efficient. It certainly now looks like a real + `glyph factory' object, and allows client applications to manage + (i.e. transform, bbox and render) glyph images without ever + knowing their original format. + + - Added support for CID-keyed fonts to the CFF driver. Maybe + support for pure CFF + CEF fonts should come in? + + - Cleaned up source code in order to avoid two functions with the + same name. Also changed the names of the files in `type1z' from + `t1XXXX' to `z1XXXX' in order to avoid any conflicts. + + `make multi' now works well :-) + + Also removed the use of `cidafm' for now, even if the source files + are still there. This functionality will certainly go into a + specific module. + + - ADDED SUPPORT FOR THE AUTO-HINTER + + It works :-) I have a demo program which simply is a copy of + `ftview' that does a `FT_Add_Module(library, + &autohinter_module_class)' after library initialization, and Type + 1 & OpenType/CFF fonts are now hinted. + + CID fonts are not hinted, as they include no charmap and the + auto-hinter doesn't include `generic' global metrics computations + yet. + + Now, I need to release this thing to the FreeType 2 source. + + - CHANGES TO THE RENDERER MODULES + + The monochrome and smooth renderers are now in two distinct + directories, namely `src/raster1' and `src/smooth'. Note that the + old `src/renderer' is now gone. + + I ditched the 5-gray-levels renderers. Basically, it involved a + simple #define toggle in 'src/raster1/ftraster.c'. + + FT_Render_Glyph, FT_Outline_Render & FT_Outline_Get_Bitmap now + select the best renderer available, depending on render mode. If + the current renderer for a given glyph image format isn't capable + of supporting the render mode, another one will be found in the + library's list. This means that client applications do not need + to switch or set the renderers themselves (as in the latest + change), they'll get what they want automatically. At last. + + Changed the demo programs accordingly. + + - MAJOR INTERNAL REDESIGN: + + A lot of internal modifications have been performed lately on the + source in order to provide the following enhancements: + + * More generic module support: + + The FT_Module type is now defined to represent a handle to a + given module. The file contains the + FT_Module_Class definition, as well as the module-loading public + API. + + The FT_Driver type is still defined, and still represents a + pointer to a font driver. Note that FT_Add_Driver is replaced + by FT_Add_Module, FT_Get_Driver by FT_Get_Module, etc. + + * Support for generic glyph image types: + + The FT_Renderer type is a pointer to a module used to perform + various operations on glyph image. + + Each renderer is capable of handling images in a single format + (e.g. ft_glyph_format_outline). Its functions are used to: + + - transform an glyph image + - render a glyph image into a bitmap + - return the control box (dimensions) of a given glyph image + + The scan converters `ftraster.c' and `ftgrays.c' have been moved + to the new directory `src/renderer', and are used to provide two + default renderer modules. + + One corresponds to the `standard' scan-converter, the other to + the `smooth' one. + + he current renderer can be set through the new function + FT_Set_Renderer. + + The old raster-related function FT_Set_Raster, FT_Get_Raster and + FT_Set_Raster_Mode have now disappeared, in favor of the new: + + FT_Get_Renderer + FT_Set_Renderer + + See the file for more details. + + These changes were necessary to properly support different + scalable formats in the future, like bi-color glyphs, etc. + + * Glyph loader object: + + A new internal object, called a 'glyph loader' has been + introduced in the base layer. It is used by all scalable format + font drivers to load glyphs and composites. + + This object has been created to reduce the code size of each + driver, as each one of them basically re-implemented its + functionality. + + See and the FT_GlyphLoader type for + more information. + + * FT_GlyphSlot has new fields: + + In order to support extended features (see below), the + FT_GlyphSlot structure has a few new fields: + + linearHoriAdvance: + + This field gives the linearly scaled (i.e. scaled but + unhinted) advance width for the glyph, expressed as a 16.16 + fixed pixel value. This is useful to perform WYSIWYG text. + + linearVertAdvance: + This field gives the linearly scaled advance height for the + glyph (relevant in vertical glyph layouts only). This is + useful to perform WYSIWYG text. + + Note that the two above field replace the removed `metrics2' + field in the glyph slot. + + advance: + This field is a vector that gives the transformed advance for + the glyph. By default, it corresponds to the advance width, + unless FT_LOAD_VERTICAL_LAYOUT was specified when calling + FT_Load_Glyph or FT_Load_Char. + + bitmap_left: + This field gives the distance in integer pixels from the + current pen position to the left-most pixel of a glyph image + IF IT IS A BITMAP. It is only valid when the `format' field + is set to `ft_glyph_format_bitmap', for example, after calling + the new function FT_Render_Glyph. + + bitmap_top: + This field gives the distance in integer pixels from the + current pen position (located on the baseline) to the top-most + pixel of the glyph image IF IT IS A BITMAP. Positive values + correspond to upwards Y. + + loader: + This is a new private field for the glyph slot. Client + applications should not touch it. + + + * Support for transforms and direct rendering in FT_Load_Glyph: + + Most of the functionality found in has been + moved to the core library. Hence, the following: + + - A transform can be specified for a face through + FT_Set_Transform. this transform is applied by FT_Load_Glyph + to scalable glyph images (i.e. NOT TO BITMAPS) before the + function returns, unless the bit flag FT_LOAD_IGNORE_TRANSFORM + was set in the load flags. + + - Once a glyph image has been loaded, it can be directly + converted to a bitmap by using the new FT_Render_Glyph + function. Note that this function takes the glyph image from + the glyph slot, and converts it to a bitmap whose properties + are returned in `face.glyph.bitmap', `face.glyph.bitmap_left' + and `face.glyph.bitmap_top'. The original native image might + be lost after the conversion. + + - When using the new bit flag FT_LOAD_RENDER, the FT_Load_Glyph + and FT_Load_Char functions will call FT_Render_Glyph + automatically when needed. + + - Reformatted all modules source code in order to get rid of the + basic data types redefinitions (i.e. `TT_Int' instead of `FT_Int', + `T1_Fixed' instead of `FT_Fixed'). Hence the format-specific + prefixes like `TT_', `T1_', `T2_' and `CID_' are only used for + relevant structures. + + +====================================================================== + +OLD CHANGES FOR BETA 7 + + - bug-fixed the OpenType/CFF parser. It now loads and displays my + two fonts nicely, but I'm pretty certain that more testing is + needed :-) + + - fixed the crummy Type 1 hinter, it now handles accented characters + correctly (well, the accent is not always well placed, but that's + another problem..) + + - added the CID-keyed Type 1 driver in `src/cid'. Works pretty well + for only 13 Kb of code ;-) Doesn't read AFM files though, nor the + really useful CMAP files.. + + - fixed two bugs in the smooth renderer (src/base/ftgrays.c). + Thanks to Boris Letocha for spotting them and providing a fix. + + - fixed potential `divide by zero' bugs in ftcalc.c. + + - added source code for the OpenType/CFF driver (still incomplete + though..) + + - modified the SFNT driver slightly to perform more robust header + checks in TT_Load_SFNT_Header. This prevents certain font files + (e.g. some Type 1 Multiple Masters) from being incorrectly + `recognized' as TrueType font files.. + + - moved a lot of stuff from the TrueType driver to the SFNT module, + this allows greater code re-use between font drivers + (e.g. TrueType, OpenType, Compact-TrueType, etc..) + + - added a tiny segment cache to the SFNT Charmap 4 decoder, in order + to minimally speed it up.. + + - added support for Multiple Master fonts in `type1z'. There is + also a new file named which defines functions to + manage them from client applications. + + The new file `src/base/ftmm.c' is also optional to the engine.. + + - various formatting changes (e.g. EXPORT_DEF -> FT_EXPORT_DEF) + + small bug fixes in FT_Load_Glyph, the `type1' driver, etc.. + + - a minor fix to the Type 1 driver to let them apply the font matrix + correctly (used for many oblique fonts..) + + - some fixes for 64-bit systems (mainly changing some FT_TRACE calls + to use %p instead of %lx). Thanks to Karl Robillard. + + - fixed some bugs in the sbit loader (src/base/sfnt/ttsbit.c) + + added a new flag, FT_LOAD_CROP_BITMAP to query that bitmaps be + cropped when loaded from a file (maybe I should move the bitmap + cropper to the base layer ??). + + - changed the default number of gray levels of the smooth renderer + to 256 (instead of the previous 128). Of course, the human eye + can't see any difference ;-) + + - removed TT_MAX_SUBGLYPHS, there is no static limit on the number + of subglyphs in a TrueType font now.. + + +====================================================================== + +OLD CHANGES 16 May 2000 + + - tagged `BETA-6' in the CVS tree. This one is a serious release + candidate even though it doesn't incorporate the auto-hinter yet.. + + - various obsolete files were removed, and copyright header updated + + - finally updated the standard raster to fix the monochrome + rendering bug + re-enable support for 5-gray levels anti-aliasing + (suck, suck..) + + - created new header files, and modified sources accordingly: + + + - simple FreeType types, without the API + + - definition of memory-management macros + + - added the `DSIG' (OpenType Digital Signature) tag to + + + - light update/cleaning of the build system + changes to the sources + in order to get rid of _all_ compiler warnings with three + compilers, i.e: + + gcc with `-ansi -pedantic -Wall -W', Visual C++ with `/W3 /WX' and + LCC + + IMPORTANT NOTE FOR WIN32-LCC USERS: + | + | It seems the C pre-processor that comes with LCC is broken, it + | doesn't recognize the ANSI standard directives # and ## + | correctly when one of the argument is a macro. Also, + | something like: + | + | #define F(x) print##x + | + | F(("hello")) + | + | will get incorrectly translated to: + | + | print "hello") + | + | by its pre-processor. For this reason, you simply cannot build + | FreeType 2 in debug mode with this compiler.. + + - yet another massive grunt work. I've changed the definition of + the EXPORT_DEF, EXPORT_FUNC, BASE_DEF & BASE_FUNC macros. These + now take an argument, which is the function's return value type. + + This is necessary to compile FreeType as a DLL on Windows and + OS/2. Depending on the compiler used, a compiler-specific keyword + like __export or __system must be placed before (VisualC++) or + after (BorlandC++) the type.. + + Of course, this needed a lot of changes throughout the source code + to make it compile again... All cleaned up now, apparently.. + + Note also that there is a new EXPORT_VAR macro defined to allow + the _declaration_ of an exportable public (constant) + variable. This is the case of the raster interfaces (see + ftraster.h and ftgrays.h), as well as each module's interface (see + sfdriver.h, psdriver.h, etc..) + + - new feature: it is now possible to pass extra parameters to font + drivers when creating a new face object. For now, + this capability is unused. It could however prove to + be useful in a near future.. + + the FT_Open_Args structure was changes, as well as the internal + driver interface (the specific `init_face' module function has + now a different signature). + + - updated the tutorial (not finished though). + + - updated the top-level BUILD document + + - fixed a potential memory leak that could occur when loading + embedded bitmaps. + + - added the declaration of FT_New_Memory_Face in + , as it was missing from the public header + (the implementation was already in `ftobjs.c'). + + - the file has been seriously updated in order + to allow the automatic generation of error message tables. See + the comments within it for more information. + + - major directory hierarchy re-organisation. This was done for two + things: + + * first, to ease the `manual' compilation of the library by + requiring at lot less include paths :-) + + * second, to allow external programs to effectively access + internal data fields. For example, this can be extremely + useful if someone wants to write a font producer or a font + manager on top of FreeType. + + Basically, you should now use the 'freetype/' prefix for header + inclusion, as in: + + #include + #include + + Some new include sub-directories are available: + + a. the `freetype/config' directory, contains two files used to + configure the build of the library. Client applications + should not need to look at these normally, but they can if + they want. + + #include + #include + + b. the `freetype/internal' directory, contains header files that + describes library internals. These are the header files that + were previously found in the `src/base' and `src/shared' + directories. + + + As usual, the build system and the demos have been updated to + reflect the change.. + + Here's a layout of the new directory hierarchy: + + TOP_DIR + include/ + freetype/ + freetype.h + ... + config/ + ftoption.h + ftconfig.h + ftmodule.h + + internal/ + ftobjs.h + ftstream.h + ftcalc.h + ... + + src/ + base/ + ... + + sfnt/ + psnames/ + truetype/ + type1/ + type1z/ + + + Compiling a module is now much easier, for example, the following + should work when in the TOP_DIR directory on an ANSI build: + + gcc -c -I./include -I./src/base src/base/ftbase.c + gcc -c -I./include -I./src/sfnt src/sfnt/sfnt.c + etc.. + + (of course, using -Iconfig/ if you provide system-specific + configuration files). + + - updated the structure of FT_Outline_Funcs in order to allow direct + coordinate scaling within the outline decomposition routine (this + is important for virtual `on' points with TrueType outlines) + + updates to the rasters to support this.. + + - updated the OS/2 table loading code in `src/sfnt/ttload.c' in + order to support version 2 of the table (see OpenType 1.2 spec) + + - created `include/tttables.h' and `include/t1tables.h' to allow + client applications to access some of the SFNT and T1 tables of a + face with a procedural interface (see `FT_Get_Sfnt_Table') + + updates to internal source files to reflect the change.. + + - some cleanups in the source code to get rid of warnings when + compiling with the `-Wall -W -ansi -pedantic' options in gcc. + + - debugged and moved the smooth renderer to `src/base/ftgrays.c' and + its header to `include/ftgrays.h' + + - updated TT_MAX_SUBGLYPHS to 96 as some CJK fonts have composites + with up to 80 sub-glyphs !! Thanks to Werner + + +====================================================================== + +OLD CHANGES - 14-apr-2000 + + - fixed a bug in the TrueType glyph loader that prevented the + correct loading of some CJK glyphs in mingli.ttf + + - improved the standard Type 1 hinter in `src/type1' + + - fixed two bugs in the experimental Type 1 driver in `src/type1z' + to handle the new XFree86 4.0 fonts (and a few other ones..) + + - the smooth renderer is now complete and supports sub-banding to + render large glyphs at high speed. However, it is still located + in `demos/src/ftgrays.c' and should move to the library itself in + the next beta. NOTE: The smooth renderer doesn't compile in + stand-alone mode anymore, but this should be fixed RSN.. + + - introduced convenience functions to more easily deal with glyph + images, see `include/ftglyph.h' for more details, as well as the + new demo program named `demos/src/ftstring.c' that demonstrates + its use + + - implemented FT_LOAD_NO_RECURSE in both the TrueType and Type 1 + drivers (this is required by the auto-hinter to improve its + results). + + - changed the raster interface, in order to allow client + applications to provide their own span-drawing callbacks. + However, only the smooth renderer supports this. See + `FT_Raster_Params' in the file `include/ftimage.h'. + + - fixed a small bug in FT_MulFix that caused incorrect transform + computation! + + - Note: The tutorial is out-of-date. + + +====================================================================== + +OLD CHANGES - 12-mar-2000 + + - changed the layout of configuration files : now, all ANSI + configuration files are located in + `freetype2/config'. System-specific over-rides can be placed in + `freetype2/config/'. + + - moved all configuration macros to `config/ftoption.h' + + - improvements in the Type 1 driver with AFM support + + - changed the fields in the FT_Outline structure : the old `flags' + array is re-named `tags', while all ancient flags are encoded into + a single unsigned int named `flags'. + + - introduced new flags in FT_Outline.flags (see + ft_outline_.... enums in `ftimage.h'). + + - changed outline functions to `FT_Outline_' syntax + + - added a smooth anti-alias renderer to the demonstration programs + + - added Mac graphics driver (thanks Just) + + - FT_Open_Face changed in order to received a pointer to a + FT_Open_Args descriptor.. + + - various cleanups, a few more API functions implemented (see + FT_Attach_File) + + - updated some docs + + +====================================================================== + +OLD CHANGES - 22-feb-2000 + + - introduced the `psnames' module. It is used to: + + o convert a Postscript glyph name into the equivalent Unicode + character code (used by the Type 1 driver(s) to synthesize on + the fly a Unicode charmap). + + o provide an interface to retrieve the Postscript names of the + Macintosh, Adobe Standard & Adobe Expert character codes. + (the Macintosh names are used by the SFNT-module postscript + names support routines, while the other two tables are used by + the Type 1 driver(s)). + + - introduced the `type1z' alternate Type 1 driver. This is a (still + experimental) driver for the Type 1 format that will ultimately + replace the one in `src/type1'. It uses pattern matching to load + data from the font, instead of a finite state analyzer. It works + much better than the `old' driver with `broken' fonts. It is also + much smaller (under 15 Kb). + + - the Type 1 drivers (both in `src/type1' and `src/type1z') are + nearly complete. They both provide automatic Unicode charmap + synthesis through the `psnames' module. No re-encoding vector is + needed. (note that they still leak memory due to some code + missing, and I'm getting lazy). + + Trivial AFM support has been added to read kerning information but + wasn't exactly tested as it should ;-) + + - The TrueType glyph loader has been seriously rewritten (see the + file `src/truetype/ttgload.c'. It is now much, much simpler as + well as easier to read, maintain and understand :-) Preliminary + versions introduced a memory leak that has been reported by Jack + Davis, and is now fixed.. + + - introduced the new `ft_glyph_format_plotter', used to represent + stroked outlines like Windows `Vector' fonts, and certain Type 1 + fonts like `Hershey'. The corresponding raster will be written + soon. + + - FT_New_Memory_Face is gone. Likewise, FT_Open_Face has a new + interface that uses a structure to describe the input stream, the + driver (if required), etc.. + + +TODO + + - Write FT_Get_Glyph_Bitmap and FT_Load_Glyph_Bitmap + + - Add a function like FT_Load_Character(face, char_code, load_flags) + that would really embed a call to FT_Get_Char_Index then + FT_Load_Glyph to ease developer's work. + + - Update the tutorial! + + - consider adding support for Multiple Master fonts in the Type 1 + drivers. + + - Test the AFM routines of the Type 1 drivers to check that kerning + information is returned correctly. + + - write a decent auto-gridding component !! We need this to release + FreeType 2.0 gold ! + + +less urgent needs: + + - add a CFF/Type2 driver + - add a BDF driver + - add a FNT/PCF/HBF driver + - add a Speedo driver from the X11 sources + + +====================================================================== + +OLDER CHANGES - 27-jan-2000 + + - updated the `sfnt' module interface to allow several SFNT-based + drivers to co-exist peacefully + + - updated the `T1_Face' type to better separate Postscript font + content from the rest of the FT_Face structure. Might be used + later by the CFF/Type2 driver.. + + - added an experimental replacement Type 1 driver featuring advanced + (and speedy) pattern matching to retrieve the data from postscript + fonts. + + - very minor changes in the implementation of FT_Set_Char_Size and + FT_Set_Pixel_Sizes (they now implement default to lighten the font + driver's code). + + +====================================================================== + +OLD MESSAGE + +This file summarizes the changes that occurred since the last `beta' +of FreeType 2. Because the list is important, it has been divided into +separate sections: + +Table Of Contents: + + I High-Level Interface (easier !) + II Directory Structure + III Glyph Image Formats + IV Build System + V Portability + VI Font Drivers + + +---------------------------------------------------------------------- + +High-Level Interface: + + The high-level API has been considerably simplified. Here is how: + + - resource objects have disappeared. this means that face objects + can now be created with a single function call (see FT_New_Face + and FT_Open_Face) + + - when calling either FT_New_Face & FT_Open_Face, a size object + and a glyph slot object are automatically created for the face, + and can be accessed through `face->glyph' and `face->size' if + one really needs to. In most cases, there's no need to call + FT_New_Size or FT_New_Glyph. + + - similarly, FT_Load_Glyph now only takes a `face' argument + (instead of a glyph slot and a size). Also, its `result' + parameter is gone, as the glyph image type is returned in the + field `face->glyph.format' + + - the list of available charmaps is directly accessible through + `face->charmaps', counting `face->num_charmaps' elements. Each + charmap has an 'encoding' field which specifies which known + encoding it deals with. Valid values are, for example: + + ft_encoding_unicode (for ASCII, Latin-1 and Unicode) + ft_encoding_apple_roman + ft_encoding_sjis + ft_encoding_adobe_standard + ft_encoding_adobe_expert + + other values may be added in the future. Each charmap still + holds its `platform_id' and `encoding_id' values in case the + encoding is too exotic for the current library + + +---------------------------------------------------------------------- + +Directory Structure: + + Should seem obvious to most of you: + + freetype/ + config/ -- configuration sub-makefiles + ansi/ + unix/ -- platform-specific configuration files + win32/ + os2/ + msdos/ + + include/ -- public header files, those to be included + directly by client apps + + src/ -- sources of the library + base/ -- the base layer + sfnt/ -- the sfnt `driver' (see the drivers section + below) + truetype/ -- the truetype driver + type1/ -- the type1 driver + shared/ -- some header files shared between drivers + + demos/ -- demos/tools + + docs/ -- documentation (a bit empty for now) + + +---------------------------------------------------------------------- + +Glyph Image Formats: + + Drivers are now able to register new glyph image formats within the + library. For now, the base layer supports of course bitmaps and + vector outlines, but one could imagine something different like + colored bitmaps, bi-color vectors or whatever else (Metafonts anyone + ??). + + See the file `include/ftimage.h'. Note also that the type + FT_Raster_Map is gone, and is now replaced by FT_Bitmap, which + should encompass all known bitmap types. + + Each new image format must provide at least one `raster', i.e. a + module capable of transforming the glyph image into a bitmap. It's + also possible to change the default raster used for a given glyph + image format. + + The default outline scan-converter now uses 128 levels of grays by + default, which tends to smooth many things. Note that the demo + programs have been updated significantly in order to display these.. + + +---------------------------------------------------------------------- + +Build system: + + You still need GNU Make to build the library. The build system has + been very seriously re-vamped in order to provide things like : + + - automatic host platform detection (reverting to 'config/ansi' if + it is not detected, with pseudo-standard compilation flags) + + - the ability to compile from the Makefiles with very different and + exotic compilers. Note that linking the library can be difficult + for some platforms. + + For example, the file `config/win32/lcclib.bat' is invoked by the + build system to create the `.lib' file with LCC-Win32 because its + librarian has too many flaws to be invoked directly from the + Makefile. + + Here's how it works: + + - the first time you type `make', the build system runs a series of + sub-makefiles in order to detect your host platform. It then + dumps what it found, and creates a file called `config.mk' in the + current directory. This is a sub-Makefile used to define many + important Make variables used to build the library. + + - the second time, the build system detects the `config.mk' then use + it to build the library. All object files go into 'obj' by + default, as well as the library file, but this can easily be + changed. + + Note that you can run `make setup' to force another host platform + detection even if a `config.mk' is present in the current + directory. Another solution is simply to delete the file, then + re-run make. + + Finally, the default compiler for all platforms is gcc (for now, + this will hopefully changed in the future). You can however specify + a different compiler by specifying it after the 'setup' target as + in: + + gnumake setup lcc on Win32 to use the LCC compiler + gnumake setup visualc on Win32 to use Visual C++ + + See the file `config//detect.mk' for a list of supported + compilers for your platforms. + + It should be relatively easy to write new detection rules files and + config.mk.. + + Finally, to build the demo programs, go to `demos' and launch GNU + Make, it will use the `config.mk' in the top directory to build the + test programs.. + + +---------------------------------------------------------------------- + +Portability: + + In the previous beta, a single FT_System object was used to + encompass all low-level operations like thread synchronisation, + memory management and i/o access. This has been greatly simplified: + + - thread synchronisation has been dropped, for the simple reason + that the library is already re-entrant, and that if you really + need two threads accessing the same FT_Library, you should + really synchronize access to it yourself with a simple mutex. + + - memory management is performed through a very simple object + called `FT_Memory', which really is a table containing a table + of pointers to functions like malloc, realloc and free as well + as some user data (closure). + + - resources have disappeared (they created more problems than they + solved), and i/o management have been simplified greatly as a + result. Streams are defined through FT_Stream objects, which + can be either memory-based or disk-based. + + Note that each face has its own stream, which is closed only + when the face object is destroyed. Hence, a function like + TT_Flush_Face in 1.x cannot be directly supported. However, if + you really need something like this, you can easily tailor your + own streams to achieve the same feature at a lower level (and + use FT_Open_Face instead of FT_New_Face to create the face). + + See the file `include/ftsystem.h' for more details, as well as the + implementations found in `config/unix' and `config/ansi'. + + +---------------------------------------------------------------------- + +Font Drivers: + + The Font Driver interface has been modified in order to support + extensions & versioning. + + + The list of the font drivers that are statically linked to the + library at compile time is managed through a new configuration file + called `config//ftmodule.h'. + + This file is autogenerated when invoking `make modules'. This + target will parse all sub-directories of 'src', looking for a + `module.mk' rules file, used to describe the driver to the build + system. + + Hence, one should call `make modules' each time a font driver is + added or removed from the `src' directory. + + Finally, this version provides a `pseudo-driver' in `src/sfnt'. + This driver doesn't support font files directly, but provides + services used by all TrueType-like font drivers. Hence, its code is + shared between the TrueType & OpenType font formats, and possibly + more formats to come if we're lucky.. + + +---------------------------------------------------------------------- + +Extensions support: + + The extensions support is inspired by the one found in 1.x. + + Now, each font driver has its own `extension registry', which lists + which extensions are available for the font faces managed by the + driver. + + Extension ids are now strings, rather than 4-byte tags, as this is + usually more readable. + + Each extension has: + - some data, associated to each face object + - an interface (table of function pointers) + + An extension that is format-specific should simply register itself + to the correct font driver. Here is some example code: + + // Registering an extensions + // + FT_Error FT_Init_XXXX_Extension( FT_Library library ) + { + FT_DriverInterface* tt_driver; + + driver = FT_Get_Driver( library, "truetype" ); + if (!driver) return FT_Err_Unimplemented_Feature; + + return FT_Register_Extension( driver, &extension_class ); + } + + + // Implementing the extensions + // + FT_Error FT_Proceed_Extension_XXX( FT_Face face ) + { + FT_XXX_Extension ext; + FT_XXX_Extension_Interface ext_interface; + + ext = FT_Get_Extension( face, "extensionid", &ext_interface ); + if (!ext) return error; + + return ext_interface->do_it(ext); + } + +------------------------------------------------------------------------ + +Copyright (C) 2000-2024 by +David Turner, Robert Wilhelm, and Werner Lemberg. + +This file is part of the FreeType project, and may only be used, +modified, and distributed under the terms of the FreeType project +license, LICENSE.TXT. By continuing to use, modify, or distribute this +file you indicate that you have read the license and understand and +accept it fully. + + +Local Variables: +version-control: never +coding: utf-8 +End: + +--- end of CHANGES --- diff --git a/swGraphicAPI/External/freetype-2.13.3/FTL.TXT b/swGraphicAPI/External/freetype-2.13.3/FTL.TXT new file mode 100644 index 00000000..c406d150 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/FTL.TXT @@ -0,0 +1,169 @@ + The FreeType Project LICENSE + ---------------------------- + + 2006-Jan-27 + + Copyright 1996-2002, 2006 by + David Turner, Robert Wilhelm, and Werner Lemberg + + + +Introduction +============ + + The FreeType Project is distributed in several archive packages; + some of them may contain, in addition to the FreeType font engine, + various tools and contributions which rely on, or relate to, the + FreeType Project. + + This license applies to all files found in such packages, and + which do not fall under their own explicit license. The license + affects thus the FreeType font engine, the test programs, + documentation and makefiles, at the very least. + + This license was inspired by the BSD, Artistic, and IJG + (Independent JPEG Group) licenses, which all encourage inclusion + and use of free software in commercial and freeware products + alike. As a consequence, its main points are that: + + o We don't promise that this software works. However, we will be + interested in any kind of bug reports. (`as is' distribution) + + o You can use this software for whatever you want, in parts or + full form, without having to pay us. (`royalty-free' usage) + + o You may not pretend that you wrote this software. If you use + it, or only parts of it, in a program, you must acknowledge + somewhere in your documentation that you have used the + FreeType code. (`credits') + + We specifically permit and encourage the inclusion of this + software, with or without modifications, in commercial products. + We disclaim all warranties covering The FreeType Project and + assume no liability related to The FreeType Project. + + + Finally, many people asked us for a preferred form for a + credit/disclaimer to use in compliance with this license. We thus + encourage you to use the following text: + + """ + Portions of this software are copyright © The FreeType + Project (www.freetype.org). All rights reserved. + """ + + Please replace with the value from the FreeType version you + actually use. + + +Legal Terms +=========== + +0. Definitions +-------------- + + Throughout this license, the terms `package', `FreeType Project', + and `FreeType archive' refer to the set of files originally + distributed by the authors (David Turner, Robert Wilhelm, and + Werner Lemberg) as the `FreeType Project', be they named as alpha, + beta or final release. + + `You' refers to the licensee, or person using the project, where + `using' is a generic term including compiling the project's source + code as well as linking it to form a `program' or `executable'. + This program is referred to as `a program using the FreeType + engine'. + + This license applies to all files distributed in the original + FreeType Project, including all source code, binaries and + documentation, unless otherwise stated in the file in its + original, unmodified form as distributed in the original archive. + If you are unsure whether or not a particular file is covered by + this license, you must contact us to verify this. + + The FreeType Project is copyright (C) 1996-2000 by David Turner, + Robert Wilhelm, and Werner Lemberg. All rights reserved except as + specified below. + +1. No Warranty +-------------- + + THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO + USE, OF THE FREETYPE PROJECT. + +2. Redistribution +----------------- + + This license grants a worldwide, royalty-free, perpetual and + irrevocable right and license to use, execute, perform, compile, + display, copy, create derivative works of, distribute and + sublicense the FreeType Project (in both source and object code + forms) and derivative works thereof for any purpose; and to + authorize others to exercise some or all of the rights granted + herein, subject to the following conditions: + + o Redistribution of source code must retain this license file + (`FTL.TXT') unaltered; any additions, deletions or changes to + the original files must be clearly indicated in accompanying + documentation. The copyright notices of the unaltered, + original files must be preserved in all copies of source + files. + + o Redistribution in binary form must provide a disclaimer that + states that the software is based in part of the work of the + FreeType Team, in the distribution documentation. We also + encourage you to put an URL to the FreeType web page in your + documentation, though this isn't mandatory. + + These conditions apply to any software derived from or based on + the FreeType Project, not just the unmodified files. If you use + our work, you must acknowledge us. However, no fee need be paid + to us. + +3. Advertising +-------------- + + Neither the FreeType authors and contributors nor you shall use + the name of the other for commercial, advertising, or promotional + purposes without specific prior written permission. + + We suggest, but do not require, that you use one or more of the + following phrases to refer to this software in your documentation + or advertising materials: `FreeType Project', `FreeType Engine', + `FreeType library', or `FreeType Distribution'. + + As you have not signed this license, you are not required to + accept it. However, as the FreeType Project is copyrighted + material, only this license, or another one contracted with the + authors, grants you the right to use, distribute, and modify it. + Therefore, by using, distributing, or modifying the FreeType + Project, you indicate that you understand and accept all the terms + of this license. + +4. Contacts +----------- + + There are two mailing lists related to FreeType: + + o freetype@nongnu.org + + Discusses general use and applications of FreeType, as well as + future and wanted additions to the library and distribution. + If you are looking for support, start in this list if you + haven't found anything to help you in the documentation. + + o freetype-devel@nongnu.org + + Discusses bugs, as well as engine internals, design issues, + specific licenses, porting, etc. + + Our home page can be found at + + https://www.freetype.org + + +--- end of FTL.TXT --- diff --git a/swGraphicAPI/External/freetype-2.13.3/GPLv2.TXT b/swGraphicAPI/External/freetype-2.13.3/GPLv2.TXT new file mode 100644 index 00000000..b2fe7b6a --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/GPLv2.TXT @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/swGraphicAPI/External/freetype-2.13.3/LICENSE.TXT b/swGraphicAPI/External/freetype-2.13.3/LICENSE.TXT new file mode 100644 index 00000000..8b9ce9e2 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/LICENSE.TXT @@ -0,0 +1,46 @@ +FREETYPE LICENSES +----------------- + +The FreeType 2 font engine is copyrighted work and cannot be used +legally without a software license. In order to make this project +usable to a vast majority of developers, we distribute it under two +mutually exclusive open-source licenses. + +This means that *you* must choose *one* of the two licenses described +below, then obey all its terms and conditions when using FreeType 2 in +any of your projects or products. + + - The FreeType License, found in the file `docs/FTL.TXT`, which is + similar to the original BSD license *with* an advertising clause + that forces you to explicitly cite the FreeType project in your + product's documentation. All details are in the license file. + This license is suited to products which don't use the GNU General + Public License. + + Note that this license is compatible to the GNU General Public + License version 3, but not version 2. + + - The GNU General Public License version 2, found in + `docs/GPLv2.TXT` (any later version can be used also), for + programs which already use the GPL. Note that the FTL is + incompatible with GPLv2 due to its advertisement clause. + +The contributed BDF and PCF drivers come with a license similar to +that of the X Window System. It is compatible to the above two +licenses (see files `src/bdf/README` and `src/pcf/README`). The same +holds for the source code files `src/base/fthash.c` and +`include/freetype/internal/fthash.h`; they were part of the BDF driver +in earlier FreeType versions. + +The gzip module uses the zlib license (see `src/gzip/zlib.h`) which +too is compatible to the above two licenses. + +The files `src/autofit/ft-hb.c` and `src/autofit/ft-hb.h` contain code +taken almost verbatim from the HarfBuzz file `hb-ft.cc`, which uses +the 'Old MIT' license, compatible to the above two licenses. + +The MD5 checksum support (only used for debugging in development +builds) is in the public domain. + + +--- end of LICENSE.TXT --- diff --git a/swGraphicAPI/External/freetype-2.13.3/README.md b/swGraphicAPI/External/freetype-2.13.3/README.md new file mode 100644 index 00000000..9901f71d --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/README.md @@ -0,0 +1,22 @@ +FreeType 2.13.3 +========================= +###### FreeType Windows libraries (win32/win64) +Compiled with VS 2022 (SDK 10.0.26100) +> The *freetype* libraries use the *Universal CRT* and therefore **_requires_** Visual C++ 2015-2022 Redistributable to be present on system. +###### Supported operating systems +- Windows 10 version 1507 or higher +- Windows Server 2022, Windows Server 2019, Windows Server 2016 and Windows Server 2012 R2 +- Windows 8.1 +- Windows 7 SP1 +###### Hash values for DLL files +| filename | sha256 | +| :-- | :-- | +| release dll\\win32\\**freetype.dll** | `F8F398B7E4F0D45348520FF4A7CC05FB81B6E241A3067B9D85D5D381E1FB1E7A` | +| release dll\\win32\\**freetype.lib** | `0B69476D66A32F22C1FF3DFBEFE1984DE6292159D36BD2ECC8144A26C76B2FAE` | +| release dll\\win64\\**freetype.dll** | `48267DF7F4619AB4B12A8EE75D513C4C378A30BFEC5C48CBABCB678B72F8F697` | +| release dll\\win64\\**freetype.lib** | `869E821E5072B507F06B36640336E08B9F8FCD65A3A63C6C27A55B0F33599AB1` | +###### Hash values for static library files +| filename | sha256 | +| :-- | :-- | +| release static\\vs2015-2022\\win32\\**freetype.lib** | `58391E31438D7182A62596C48CCB5E0C6B76B8F37B7EE6565BADF3564D1465F8` | +| release static\\vs2015-2022\\win64\\**freetype.lib** | `74856E22714BF99F2F04E59CFE77D7C85729E5AA3570030B939048115EF528AD` | diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/ftconfig.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/ftconfig.h new file mode 100644 index 00000000..0667493f --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/ftconfig.h @@ -0,0 +1,51 @@ +/**************************************************************************** + * + * ftconfig.h + * + * ANSI-specific configuration file (specification only). + * + * Copyright (C) 1996-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + + /************************************************************************** + * + * This header file contains a number of macro definitions that are used by + * the rest of the engine. Most of the macros here are automatically + * determined at compile time, and you should not need to change it to port + * FreeType, except to compile the library with a non-ANSI compiler. + * + * Note however that if some specific modifications are needed, we advise + * you to place a modified copy in your build directory. + * + * The build directory is usually `builds/`, and contains + * system-specific files that are always included first when building the + * library. + * + * This ANSI version should stay in `include/config/`. + * + */ + +#ifndef FTCONFIG_H_ +#define FTCONFIG_H_ + +#include +#include FT_CONFIG_OPTIONS_H +#include FT_CONFIG_STANDARD_LIBRARY_H + +#include +#include +#include + +#endif /* FTCONFIG_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/ftheader.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/ftheader.h new file mode 100644 index 00000000..f6ef2618 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/ftheader.h @@ -0,0 +1,836 @@ +/**************************************************************************** + * + * ftheader.h + * + * Build macros of the FreeType 2 library. + * + * Copyright (C) 1996-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + +#ifndef FTHEADER_H_ +#define FTHEADER_H_ + + + /*@***********************************************************************/ + /* */ + /* */ + /* FT_BEGIN_HEADER */ + /* */ + /* */ + /* This macro is used in association with @FT_END_HEADER in header */ + /* files to ensure that the declarations within are properly */ + /* encapsulated in an `extern "C" { .. }` block when included from a */ + /* C++ compiler. */ + /* */ +#ifndef FT_BEGIN_HEADER +# ifdef __cplusplus +# define FT_BEGIN_HEADER extern "C" { +# else +# define FT_BEGIN_HEADER /* nothing */ +# endif +#endif + + + /*@***********************************************************************/ + /* */ + /* */ + /* FT_END_HEADER */ + /* */ + /* */ + /* This macro is used in association with @FT_BEGIN_HEADER in header */ + /* files to ensure that the declarations within are properly */ + /* encapsulated in an `extern "C" { .. }` block when included from a */ + /* C++ compiler. */ + /* */ +#ifndef FT_END_HEADER +# ifdef __cplusplus +# define FT_END_HEADER } +# else +# define FT_END_HEADER /* nothing */ +# endif +#endif + + + /************************************************************************** + * + * Aliases for the FreeType 2 public and configuration files. + * + */ + + /************************************************************************** + * + * @section: + * header_file_macros + * + * @title: + * Header File Macros + * + * @abstract: + * Macro definitions used to `#include` specific header files. + * + * @description: + * In addition to the normal scheme of including header files like + * + * ``` + * #include + * #include + * #include + * ``` + * + * it is possible to used named macros instead. They can be used + * directly in `#include` statements as in + * + * ``` + * #include FT_FREETYPE_H + * #include FT_MULTIPLE_MASTERS_H + * #include FT_GLYPH_H + * ``` + * + * These macros were introduced to overcome the infamous 8.3~naming rule + * required by DOS (and `FT_MULTIPLE_MASTERS_H` is a lot more meaningful + * than `ftmm.h`). + * + */ + + + /* configuration files */ + + /************************************************************************** + * + * @macro: + * FT_CONFIG_CONFIG_H + * + * @description: + * A macro used in `#include` statements to name the file containing + * FreeType~2 configuration data. + * + */ +#ifndef FT_CONFIG_CONFIG_H +#define FT_CONFIG_CONFIG_H +#endif + + + /************************************************************************** + * + * @macro: + * FT_CONFIG_STANDARD_LIBRARY_H + * + * @description: + * A macro used in `#include` statements to name the file containing + * FreeType~2 interface to the standard C library functions. + * + */ +#ifndef FT_CONFIG_STANDARD_LIBRARY_H +#define FT_CONFIG_STANDARD_LIBRARY_H +#endif + + + /************************************************************************** + * + * @macro: + * FT_CONFIG_OPTIONS_H + * + * @description: + * A macro used in `#include` statements to name the file containing + * FreeType~2 project-specific configuration options. + * + */ +#ifndef FT_CONFIG_OPTIONS_H +#define FT_CONFIG_OPTIONS_H +#endif + + + /************************************************************************** + * + * @macro: + * FT_CONFIG_MODULES_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * list of FreeType~2 modules that are statically linked to new library + * instances in @FT_Init_FreeType. + * + */ +#ifndef FT_CONFIG_MODULES_H +#define FT_CONFIG_MODULES_H +#endif + + /* */ + + /* public headers */ + + /************************************************************************** + * + * @macro: + * FT_FREETYPE_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * base FreeType~2 API. + * + */ +#define FT_FREETYPE_H + + + /************************************************************************** + * + * @macro: + * FT_ERRORS_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * list of FreeType~2 error codes (and messages). + * + * It is included by @FT_FREETYPE_H. + * + */ +#define FT_ERRORS_H + + + /************************************************************************** + * + * @macro: + * FT_MODULE_ERRORS_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * list of FreeType~2 module error offsets (and messages). + * + */ +#define FT_MODULE_ERRORS_H + + + /************************************************************************** + * + * @macro: + * FT_SYSTEM_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * FreeType~2 interface to low-level operations (i.e., memory management + * and stream i/o). + * + * It is included by @FT_FREETYPE_H. + * + */ +#define FT_SYSTEM_H + + + /************************************************************************** + * + * @macro: + * FT_IMAGE_H + * + * @description: + * A macro used in `#include` statements to name the file containing type + * definitions related to glyph images (i.e., bitmaps, outlines, + * scan-converter parameters). + * + * It is included by @FT_FREETYPE_H. + * + */ +#define FT_IMAGE_H + + + /************************************************************************** + * + * @macro: + * FT_TYPES_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * basic data types defined by FreeType~2. + * + * It is included by @FT_FREETYPE_H. + * + */ +#define FT_TYPES_H + + + /************************************************************************** + * + * @macro: + * FT_LIST_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * list management API of FreeType~2. + * + * (Most applications will never need to include this file.) + * + */ +#define FT_LIST_H + + + /************************************************************************** + * + * @macro: + * FT_OUTLINE_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * scalable outline management API of FreeType~2. + * + */ +#define FT_OUTLINE_H + + + /************************************************************************** + * + * @macro: + * FT_SIZES_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * API which manages multiple @FT_Size objects per face. + * + */ +#define FT_SIZES_H + + + /************************************************************************** + * + * @macro: + * FT_MODULE_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * module management API of FreeType~2. + * + */ +#define FT_MODULE_H + + + /************************************************************************** + * + * @macro: + * FT_RENDER_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * renderer module management API of FreeType~2. + * + */ +#define FT_RENDER_H + + + /************************************************************************** + * + * @macro: + * FT_DRIVER_H + * + * @description: + * A macro used in `#include` statements to name the file containing + * structures and macros related to the driver modules. + * + */ +#define FT_DRIVER_H + + + /************************************************************************** + * + * @macro: + * FT_AUTOHINTER_H + * + * @description: + * A macro used in `#include` statements to name the file containing + * structures and macros related to the auto-hinting module. + * + * Deprecated since version~2.9; use @FT_DRIVER_H instead. + * + */ +#define FT_AUTOHINTER_H FT_DRIVER_H + + + /************************************************************************** + * + * @macro: + * FT_CFF_DRIVER_H + * + * @description: + * A macro used in `#include` statements to name the file containing + * structures and macros related to the CFF driver module. + * + * Deprecated since version~2.9; use @FT_DRIVER_H instead. + * + */ +#define FT_CFF_DRIVER_H FT_DRIVER_H + + + /************************************************************************** + * + * @macro: + * FT_TRUETYPE_DRIVER_H + * + * @description: + * A macro used in `#include` statements to name the file containing + * structures and macros related to the TrueType driver module. + * + * Deprecated since version~2.9; use @FT_DRIVER_H instead. + * + */ +#define FT_TRUETYPE_DRIVER_H FT_DRIVER_H + + + /************************************************************************** + * + * @macro: + * FT_PCF_DRIVER_H + * + * @description: + * A macro used in `#include` statements to name the file containing + * structures and macros related to the PCF driver module. + * + * Deprecated since version~2.9; use @FT_DRIVER_H instead. + * + */ +#define FT_PCF_DRIVER_H FT_DRIVER_H + + + /************************************************************************** + * + * @macro: + * FT_TYPE1_TABLES_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * types and API specific to the Type~1 format. + * + */ +#define FT_TYPE1_TABLES_H + + + /************************************************************************** + * + * @macro: + * FT_TRUETYPE_IDS_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * enumeration values which identify name strings, languages, encodings, + * etc. This file really contains a _large_ set of constant macro + * definitions, taken from the TrueType and OpenType specifications. + * + */ +#define FT_TRUETYPE_IDS_H + + + /************************************************************************** + * + * @macro: + * FT_TRUETYPE_TABLES_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * types and API specific to the TrueType (as well as OpenType) format. + * + */ +#define FT_TRUETYPE_TABLES_H + + + /************************************************************************** + * + * @macro: + * FT_TRUETYPE_TAGS_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * definitions of TrueType four-byte 'tags' which identify blocks in + * SFNT-based font formats (i.e., TrueType and OpenType). + * + */ +#define FT_TRUETYPE_TAGS_H + + + /************************************************************************** + * + * @macro: + * FT_BDF_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * definitions of an API which accesses BDF-specific strings from a face. + * + */ +#define FT_BDF_H + + + /************************************************************************** + * + * @macro: + * FT_CID_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * definitions of an API which access CID font information from a face. + * + */ +#define FT_CID_H + + + /************************************************************************** + * + * @macro: + * FT_GZIP_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * definitions of an API which supports gzip-compressed files. + * + */ +#define FT_GZIP_H + + + /************************************************************************** + * + * @macro: + * FT_LZW_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * definitions of an API which supports LZW-compressed files. + * + */ +#define FT_LZW_H + + + /************************************************************************** + * + * @macro: + * FT_BZIP2_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * definitions of an API which supports bzip2-compressed files. + * + */ +#define FT_BZIP2_H + + + /************************************************************************** + * + * @macro: + * FT_WINFONTS_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * definitions of an API which supports Windows FNT files. + * + */ +#define FT_WINFONTS_H + + + /************************************************************************** + * + * @macro: + * FT_GLYPH_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * API of the optional glyph management component. + * + */ +#define FT_GLYPH_H + + + /************************************************************************** + * + * @macro: + * FT_BITMAP_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * API of the optional bitmap conversion component. + * + */ +#define FT_BITMAP_H + + + /************************************************************************** + * + * @macro: + * FT_BBOX_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * API of the optional exact bounding box computation routines. + * + */ +#define FT_BBOX_H + + + /************************************************************************** + * + * @macro: + * FT_CACHE_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * API of the optional FreeType~2 cache sub-system. + * + */ +#define FT_CACHE_H + + + /************************************************************************** + * + * @macro: + * FT_MAC_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * Macintosh-specific FreeType~2 API. The latter is used to access fonts + * embedded in resource forks. + * + * This header file must be explicitly included by client applications + * compiled on the Mac (note that the base API still works though). + * + */ +#define FT_MAC_H + + + /************************************************************************** + * + * @macro: + * FT_MULTIPLE_MASTERS_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * optional multiple-masters management API of FreeType~2. + * + */ +#define FT_MULTIPLE_MASTERS_H + + + /************************************************************************** + * + * @macro: + * FT_SFNT_NAMES_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * optional FreeType~2 API which accesses embedded 'name' strings in + * SFNT-based font formats (i.e., TrueType and OpenType). + * + */ +#define FT_SFNT_NAMES_H + + + /************************************************************************** + * + * @macro: + * FT_OPENTYPE_VALIDATE_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * optional FreeType~2 API which validates OpenType tables ('BASE', + * 'GDEF', 'GPOS', 'GSUB', 'JSTF'). + * + */ +#define FT_OPENTYPE_VALIDATE_H + + + /************************************************************************** + * + * @macro: + * FT_GX_VALIDATE_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * optional FreeType~2 API which validates TrueTypeGX/AAT tables ('feat', + * 'mort', 'morx', 'bsln', 'just', 'kern', 'opbd', 'trak', 'prop'). + * + */ +#define FT_GX_VALIDATE_H + + + /************************************************************************** + * + * @macro: + * FT_PFR_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * FreeType~2 API which accesses PFR-specific data. + * + */ +#define FT_PFR_H + + + /************************************************************************** + * + * @macro: + * FT_STROKER_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * FreeType~2 API which provides functions to stroke outline paths. + */ +#define FT_STROKER_H + + + /************************************************************************** + * + * @macro: + * FT_SYNTHESIS_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * FreeType~2 API which performs artificial obliquing and emboldening. + */ +#define FT_SYNTHESIS_H + + + /************************************************************************** + * + * @macro: + * FT_FONT_FORMATS_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * FreeType~2 API which provides functions specific to font formats. + */ +#define FT_FONT_FORMATS_H + + /* deprecated */ +#define FT_XFREE86_H FT_FONT_FORMATS_H + + + /************************************************************************** + * + * @macro: + * FT_TRIGONOMETRY_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * FreeType~2 API which performs trigonometric computations (e.g., + * cosines and arc tangents). + */ +#define FT_TRIGONOMETRY_H + + + /************************************************************************** + * + * @macro: + * FT_LCD_FILTER_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * FreeType~2 API which performs color filtering for subpixel rendering. + */ +#define FT_LCD_FILTER_H + + + /************************************************************************** + * + * @macro: + * FT_INCREMENTAL_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * FreeType~2 API which performs incremental glyph loading. + */ +#define FT_INCREMENTAL_H + + + /************************************************************************** + * + * @macro: + * FT_GASP_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * FreeType~2 API which returns entries from the TrueType GASP table. + */ +#define FT_GASP_H + + + /************************************************************************** + * + * @macro: + * FT_ADVANCES_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * FreeType~2 API which returns individual and ranged glyph advances. + */ +#define FT_ADVANCES_H + + + /************************************************************************** + * + * @macro: + * FT_COLOR_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * FreeType~2 API which handles the OpenType 'CPAL' table. + */ +#define FT_COLOR_H + + + /************************************************************************** + * + * @macro: + * FT_OTSVG_H + * + * @description: + * A macro used in `#include` statements to name the file containing the + * FreeType~2 API which handles the OpenType 'SVG~' glyphs. + */ +#define FT_OTSVG_H + + + /* */ + + /* These header files don't need to be included by the user. */ +#define FT_ERROR_DEFINITIONS_H +#define FT_PARAMETER_TAGS_H + + /* Deprecated macros. */ +#define FT_UNPATENTED_HINTING_H +#define FT_TRUETYPE_UNPATENTED_H + + /* `FT_CACHE_H` is the only header file needed for the cache subsystem. */ +#define FT_CACHE_IMAGE_H FT_CACHE_H +#define FT_CACHE_SMALL_BITMAPS_H FT_CACHE_H +#define FT_CACHE_CHARMAP_H FT_CACHE_H + + /* The internals of the cache sub-system are no longer exposed. We */ + /* default to `FT_CACHE_H` at the moment just in case, but we know */ + /* of no rogue client that uses them. */ + /* */ +#define FT_CACHE_MANAGER_H FT_CACHE_H +#define FT_CACHE_INTERNAL_MRU_H FT_CACHE_H +#define FT_CACHE_INTERNAL_MANAGER_H FT_CACHE_H +#define FT_CACHE_INTERNAL_CACHE_H FT_CACHE_H +#define FT_CACHE_INTERNAL_GLYPH_H FT_CACHE_H +#define FT_CACHE_INTERNAL_IMAGE_H FT_CACHE_H +#define FT_CACHE_INTERNAL_SBITS_H FT_CACHE_H + +/* TODO(david): Move this section below to a different header */ +#ifdef FT2_BUILD_LIBRARY +#if defined( _MSC_VER ) /* Visual C++ (and Intel C++) */ + + /* We disable the warning `conditional expression is constant' here */ + /* in order to compile cleanly with the maximum level of warnings. */ + /* In particular, the warning complains about stuff like `while(0)' */ + /* which is very useful in macro definitions. There is no benefit */ + /* in having it enabled. */ +#pragma warning( disable : 4127 ) + +#endif /* _MSC_VER */ +#endif /* FT2_BUILD_LIBRARY */ + +#endif /* FTHEADER_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/ftmodule.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/ftmodule.h new file mode 100644 index 00000000..b315baba --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/ftmodule.h @@ -0,0 +1,33 @@ +/* + * This file registers the FreeType modules compiled into the library. + * + * If you use GNU make, this file IS NOT USED! Instead, it is created in + * the objects directory (normally `/objs/`) based on information + * from `/modules.cfg`. + * + * Please read `docs/INSTALL.ANY` and `docs/CUSTOMIZE` how to compile + * FreeType without GNU make. + * + */ + +FT_USE_MODULE( FT_Module_Class, autofit_module_class ) +FT_USE_MODULE( FT_Driver_ClassRec, tt_driver_class ) +FT_USE_MODULE( FT_Driver_ClassRec, t1_driver_class ) +FT_USE_MODULE( FT_Driver_ClassRec, cff_driver_class ) +FT_USE_MODULE( FT_Driver_ClassRec, t1cid_driver_class ) +FT_USE_MODULE( FT_Driver_ClassRec, pfr_driver_class ) +FT_USE_MODULE( FT_Driver_ClassRec, t42_driver_class ) +FT_USE_MODULE( FT_Driver_ClassRec, winfnt_driver_class ) +FT_USE_MODULE( FT_Driver_ClassRec, pcf_driver_class ) +FT_USE_MODULE( FT_Driver_ClassRec, bdf_driver_class ) +FT_USE_MODULE( FT_Module_Class, psaux_module_class ) +FT_USE_MODULE( FT_Module_Class, psnames_module_class ) +FT_USE_MODULE( FT_Module_Class, pshinter_module_class ) +FT_USE_MODULE( FT_Module_Class, sfnt_module_class ) +FT_USE_MODULE( FT_Renderer_Class, ft_smooth_renderer_class ) +FT_USE_MODULE( FT_Renderer_Class, ft_raster1_renderer_class ) +FT_USE_MODULE( FT_Renderer_Class, ft_sdf_renderer_class ) +FT_USE_MODULE( FT_Renderer_Class, ft_bitmap_sdf_renderer_class ) +FT_USE_MODULE( FT_Renderer_Class, ft_svg_renderer_class ) + +/* EOF */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/ftoption.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/ftoption.h new file mode 100644 index 00000000..eb4e32d8 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/ftoption.h @@ -0,0 +1,1030 @@ +/**************************************************************************** + * + * ftoption.h + * + * User-selectable configuration macros (specification only). + * + * Copyright (C) 1996-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTOPTION_H_ +#define FTOPTION_H_ + + +#include + + +FT_BEGIN_HEADER + + /************************************************************************** + * + * USER-SELECTABLE CONFIGURATION MACROS + * + * This file contains the default configuration macro definitions for a + * standard build of the FreeType library. There are three ways to use + * this file to build project-specific versions of the library: + * + * - You can modify this file by hand, but this is not recommended in + * cases where you would like to build several versions of the library + * from a single source directory. + * + * - You can put a copy of this file in your build directory, more + * precisely in `$BUILD/freetype/config/ftoption.h`, where `$BUILD` is + * the name of a directory that is included _before_ the FreeType include + * path during compilation. + * + * The default FreeType Makefiles use the build directory + * `builds/` by default, but you can easily change that for your + * own projects. + * + * - Copy the file to `$BUILD/ft2build.h` and modify it + * slightly to pre-define the macro `FT_CONFIG_OPTIONS_H` used to locate + * this file during the build. For example, + * + * ``` + * #define FT_CONFIG_OPTIONS_H + * #include + * ``` + * + * will use `$BUILD/myftoptions.h` instead of this file for macro + * definitions. + * + * Note also that you can similarly pre-define the macro + * `FT_CONFIG_MODULES_H` used to locate the file listing of the modules + * that are statically linked to the library at compile time. By + * default, this file is ``. + * + * We highly recommend using the third method whenever possible. + * + */ + + + /*************************************************************************/ + /*************************************************************************/ + /**** ****/ + /**** G E N E R A L F R E E T Y P E 2 C O N F I G U R A T I O N ****/ + /**** ****/ + /*************************************************************************/ + /*************************************************************************/ + + + /*#************************************************************************ + * + * If you enable this configuration option, FreeType recognizes an + * environment variable called `FREETYPE_PROPERTIES`, which can be used to + * control the various font drivers and modules. The controllable + * properties are listed in the section @properties. + * + * You have to undefine this configuration option on platforms that lack + * the concept of environment variables (and thus don't have the `getenv` + * function), for example Windows CE. + * + * `FREETYPE_PROPERTIES` has the following syntax form (broken here into + * multiple lines for better readability). + * + * ``` + * + * ':' + * '=' + * + * ':' + * '=' + * ... + * ``` + * + * Example: + * + * ``` + * FREETYPE_PROPERTIES=truetype:interpreter-version=35 \ + * cff:no-stem-darkening=1 + * ``` + * + */ +#define FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES + + + /************************************************************************** + * + * Uncomment the line below if you want to activate LCD rendering + * technology similar to ClearType in this build of the library. This + * technology triples the resolution in the direction color subpixels. To + * mitigate color fringes inherent to this technology, you also need to + * explicitly set up LCD filtering. + * + * When this macro is not defined, FreeType offers alternative LCD + * rendering technology that produces excellent output. + */ +/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */ + + + /************************************************************************** + * + * Many compilers provide a non-ANSI 64-bit data type that can be used by + * FreeType to speed up some computations. However, this will create some + * problems when compiling the library in strict ANSI mode. + * + * For this reason, the use of 64-bit integers is normally disabled when + * the `__STDC__` macro is defined. You can however disable this by + * defining the macro `FT_CONFIG_OPTION_FORCE_INT64` here. + * + * For most compilers, this will only create compilation warnings when + * building the library. + * + * ObNote: The compiler-specific 64-bit integers are detected in the + * file `ftconfig.h` either statically or through the `configure` + * script on supported platforms. + */ +#undef FT_CONFIG_OPTION_FORCE_INT64 + + + /************************************************************************** + * + * If this macro is defined, do not try to use an assembler version of + * performance-critical functions (e.g., @FT_MulFix). You should only do + * that to verify that the assembler function works properly, or to execute + * benchmark tests of the various implementations. + */ +/* #define FT_CONFIG_OPTION_NO_ASSEMBLER */ + + + /************************************************************************** + * + * If this macro is defined, try to use an inlined assembler version of the + * @FT_MulFix function, which is a 'hotspot' when loading and hinting + * glyphs, and which should be executed as fast as possible. + * + * Note that if your compiler or CPU is not supported, this will default to + * the standard and portable implementation found in `ftcalc.c`. + */ +#define FT_CONFIG_OPTION_INLINE_MULFIX + + + /************************************************************************** + * + * LZW-compressed file support. + * + * FreeType now handles font files that have been compressed with the + * `compress` program. This is mostly used to parse many of the PCF + * files that come with various X11 distributions. The implementation + * uses NetBSD's `zopen` to partially uncompress the file on the fly (see + * `src/lzw/ftgzip.c`). + * + * Define this macro if you want to enable this 'feature'. + */ +#define FT_CONFIG_OPTION_USE_LZW + + + /************************************************************************** + * + * Gzip-compressed file support. + * + * FreeType now handles font files that have been compressed with the + * `gzip` program. This is mostly used to parse many of the PCF files + * that come with XFree86. The implementation uses 'zlib' to partially + * uncompress the file on the fly (see `src/gzip/ftgzip.c`). + * + * Define this macro if you want to enable this 'feature'. See also the + * macro `FT_CONFIG_OPTION_SYSTEM_ZLIB` below. + */ +#define FT_CONFIG_OPTION_USE_ZLIB + + + /************************************************************************** + * + * ZLib library selection + * + * This macro is only used when `FT_CONFIG_OPTION_USE_ZLIB` is defined. + * It allows FreeType's 'ftgzip' component to link to the system's + * installation of the ZLib library. This is useful on systems like + * Unix or VMS where it generally is already available. + * + * If you let it undefined, the component will use its own copy of the + * zlib sources instead. These have been modified to be included + * directly within the component and **not** export external function + * names. This allows you to link any program with FreeType _and_ ZLib + * without linking conflicts. + * + * Do not `#undef` this macro here since the build system might define + * it for certain configurations only. + * + * If you use a build system like cmake or the `configure` script, + * options set by those programs have precedence, overwriting the value + * here with the configured one. + * + * If you use the GNU make build system directly (that is, without the + * `configure` script) and you define this macro, you also have to pass + * `SYSTEM_ZLIB=yes` as an argument to make. + */ +/* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */ + + + /************************************************************************** + * + * Bzip2-compressed file support. + * + * FreeType now handles font files that have been compressed with the + * `bzip2` program. This is mostly used to parse many of the PCF files + * that come with XFree86. The implementation uses `libbz2` to partially + * uncompress the file on the fly (see `src/bzip2/ftbzip2.c`). Contrary + * to gzip, bzip2 currently is not included and need to use the system + * available bzip2 implementation. + * + * Define this macro if you want to enable this 'feature'. + * + * If you use a build system like cmake or the `configure` script, + * options set by those programs have precedence, overwriting the value + * here with the configured one. + */ +/* #define FT_CONFIG_OPTION_USE_BZIP2 */ + + + /************************************************************************** + * + * Define to disable the use of file stream functions and types, `FILE`, + * `fopen`, etc. Enables the use of smaller system libraries on embedded + * systems that have multiple system libraries, some with or without file + * stream support, in the cases where file stream support is not necessary + * such as memory loading of font files. + */ +/* #define FT_CONFIG_OPTION_DISABLE_STREAM_SUPPORT */ + + + /************************************************************************** + * + * PNG bitmap support. + * + * FreeType now handles loading color bitmap glyphs in the PNG format. + * This requires help from the external libpng library. Uncompressed + * color bitmaps do not need any external libraries and will be supported + * regardless of this configuration. + * + * Define this macro if you want to enable this 'feature'. + * + * If you use a build system like cmake or the `configure` script, + * options set by those programs have precedence, overwriting the value + * here with the configured one. + */ +/* #define FT_CONFIG_OPTION_USE_PNG */ + + + /************************************************************************** + * + * HarfBuzz support. + * + * FreeType uses the HarfBuzz library to improve auto-hinting of OpenType + * fonts. If available, many glyphs not directly addressable by a font's + * character map will be hinted also. + * + * Define this macro if you want to enable this 'feature'. + * + * If you use a build system like cmake or the `configure` script, + * options set by those programs have precedence, overwriting the value + * here with the configured one. + */ +/* #define FT_CONFIG_OPTION_USE_HARFBUZZ */ + + + /************************************************************************** + * + * Brotli support. + * + * FreeType uses the Brotli library to provide support for decompressing + * WOFF2 streams. + * + * Define this macro if you want to enable this 'feature'. + * + * If you use a build system like cmake or the `configure` script, + * options set by those programs have precedence, overwriting the value + * here with the configured one. + */ +/* #define FT_CONFIG_OPTION_USE_BROTLI */ + + + /************************************************************************** + * + * Glyph Postscript Names handling + * + * By default, FreeType 2 is compiled with the 'psnames' module. This + * module is in charge of converting a glyph name string into a Unicode + * value, or return a Macintosh standard glyph name for the use with the + * TrueType 'post' table. + * + * Undefine this macro if you do not want 'psnames' compiled in your + * build of FreeType. This has the following effects: + * + * - The TrueType driver will provide its own set of glyph names, if you + * build it to support postscript names in the TrueType 'post' table, + * but will not synthesize a missing Unicode charmap. + * + * - The Type~1 driver will not be able to synthesize a Unicode charmap + * out of the glyphs found in the fonts. + * + * You would normally undefine this configuration macro when building a + * version of FreeType that doesn't contain a Type~1 or CFF driver. + */ +#define FT_CONFIG_OPTION_POSTSCRIPT_NAMES + + + /************************************************************************** + * + * Postscript Names to Unicode Values support + * + * By default, FreeType~2 is built with the 'psnames' module compiled in. + * Among other things, the module is used to convert a glyph name into a + * Unicode value. This is especially useful in order to synthesize on + * the fly a Unicode charmap from the CFF/Type~1 driver through a big + * table named the 'Adobe Glyph List' (AGL). + * + * Undefine this macro if you do not want the Adobe Glyph List compiled + * in your 'psnames' module. The Type~1 driver will not be able to + * synthesize a Unicode charmap out of the glyphs found in the fonts. + */ +#define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST + + + /************************************************************************** + * + * Support for Mac fonts + * + * Define this macro if you want support for outline fonts in Mac format + * (mac dfont, mac resource, macbinary containing a mac resource) on + * non-Mac platforms. + * + * Note that the 'FOND' resource isn't checked. + */ +#define FT_CONFIG_OPTION_MAC_FONTS + + + /************************************************************************** + * + * Guessing methods to access embedded resource forks + * + * Enable extra Mac fonts support on non-Mac platforms (e.g., GNU/Linux). + * + * Resource forks which include fonts data are stored sometimes in + * locations which users or developers don't expected. In some cases, + * resource forks start with some offset from the head of a file. In + * other cases, the actual resource fork is stored in file different from + * what the user specifies. If this option is activated, FreeType tries + * to guess whether such offsets or different file names must be used. + * + * Note that normal, direct access of resource forks is controlled via + * the `FT_CONFIG_OPTION_MAC_FONTS` option. + */ +#ifdef FT_CONFIG_OPTION_MAC_FONTS +#define FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK +#endif + + + /************************************************************************** + * + * Allow the use of `FT_Incremental_Interface` to load typefaces that + * contain no glyph data, but supply it via a callback function. This is + * required by clients supporting document formats which supply font data + * incrementally as the document is parsed, such as the Ghostscript + * interpreter for the PostScript language. + */ +#define FT_CONFIG_OPTION_INCREMENTAL + + + /************************************************************************** + * + * The size in bytes of the render pool used by the scan-line converter to + * do all of its work. + */ +#define FT_RENDER_POOL_SIZE 16384L + + + /************************************************************************** + * + * FT_MAX_MODULES + * + * The maximum number of modules that can be registered in a single + * FreeType library object. 32~is the default. + */ +#define FT_MAX_MODULES 32 + + + /************************************************************************** + * + * Debug level + * + * FreeType can be compiled in debug or trace mode. In debug mode, + * errors are reported through the 'ftdebug' component. In trace mode, + * additional messages are sent to the standard output during execution. + * + * Define `FT_DEBUG_LEVEL_ERROR` to build the library in debug mode. + * Define `FT_DEBUG_LEVEL_TRACE` to build it in trace mode. + * + * Don't define any of these macros to compile in 'release' mode! + * + * Do not `#undef` these macros here since the build system might define + * them for certain configurations only. + */ +/* #define FT_DEBUG_LEVEL_ERROR */ +/* #define FT_DEBUG_LEVEL_TRACE */ + + + /************************************************************************** + * + * Logging + * + * Compiling FreeType in debug or trace mode makes FreeType write error + * and trace log messages to `stderr`. Enabling this macro + * automatically forces the `FT_DEBUG_LEVEL_ERROR` and + * `FT_DEBUG_LEVEL_TRACE` macros and allows FreeType to write error and + * trace log messages to a file instead of `stderr`. For writing logs + * to a file, FreeType uses an the external `dlg` library (the source + * code is in `src/dlg`). + * + * This option needs a C99 compiler. + */ +/* #define FT_DEBUG_LOGGING */ + + + /************************************************************************** + * + * Autofitter debugging + * + * If `FT_DEBUG_AUTOFIT` is defined, FreeType provides some means to + * control the autofitter behaviour for debugging purposes with global + * boolean variables (consequently, you should **never** enable this + * while compiling in 'release' mode): + * + * ``` + * af_debug_disable_horz_hints_ + * af_debug_disable_vert_hints_ + * af_debug_disable_blue_hints_ + * ``` + * + * Additionally, the following functions provide dumps of various + * internal autofit structures to stdout (using `printf`): + * + * ``` + * af_glyph_hints_dump_points + * af_glyph_hints_dump_segments + * af_glyph_hints_dump_edges + * af_glyph_hints_get_num_segments + * af_glyph_hints_get_segment_offset + * ``` + * + * As an argument, they use another global variable: + * + * ``` + * af_debug_hints_ + * ``` + * + * Please have a look at the `ftgrid` demo program to see how those + * variables and macros should be used. + * + * Do not `#undef` these macros here since the build system might define + * them for certain configurations only. + */ +/* #define FT_DEBUG_AUTOFIT */ + + + /************************************************************************** + * + * Memory Debugging + * + * FreeType now comes with an integrated memory debugger that is capable + * of detecting simple errors like memory leaks or double deletes. To + * compile it within your build of the library, you should define + * `FT_DEBUG_MEMORY` here. + * + * Note that the memory debugger is only activated at runtime when when + * the _environment_ variable `FT2_DEBUG_MEMORY` is defined also! + * + * Do not `#undef` this macro here since the build system might define it + * for certain configurations only. + */ +/* #define FT_DEBUG_MEMORY */ + + + /************************************************************************** + * + * Module errors + * + * If this macro is set (which is _not_ the default), the higher byte of + * an error code gives the module in which the error has occurred, while + * the lower byte is the real error code. + * + * Setting this macro makes sense for debugging purposes only, since it + * would break source compatibility of certain programs that use + * FreeType~2. + * + * More details can be found in the files `ftmoderr.h` and `fterrors.h`. + */ +#undef FT_CONFIG_OPTION_USE_MODULE_ERRORS + + + /************************************************************************** + * + * OpenType SVG Glyph Support + * + * Setting this macro enables support for OpenType SVG glyphs. By + * default, FreeType can only fetch SVG documents. However, it can also + * render them if external rendering hook functions are plugged in at + * runtime. + * + * More details on the hooks can be found in file `otsvg.h`. + */ +#define FT_CONFIG_OPTION_SVG + + + /************************************************************************** + * + * Error Strings + * + * If this macro is set, `FT_Error_String` will return meaningful + * descriptions. This is not enabled by default to reduce the overall + * size of FreeType. + * + * More details can be found in the file `fterrors.h`. + */ +/* #define FT_CONFIG_OPTION_ERROR_STRINGS */ + + + /*************************************************************************/ + /*************************************************************************/ + /**** ****/ + /**** S F N T D R I V E R C O N F I G U R A T I O N ****/ + /**** ****/ + /*************************************************************************/ + /*************************************************************************/ + + + /************************************************************************** + * + * Define `TT_CONFIG_OPTION_EMBEDDED_BITMAPS` if you want to support + * embedded bitmaps in all formats using the 'sfnt' module (namely + * TrueType~& OpenType). + */ +#define TT_CONFIG_OPTION_EMBEDDED_BITMAPS + + + /************************************************************************** + * + * Define `TT_CONFIG_OPTION_COLOR_LAYERS` if you want to support colored + * outlines (from the 'COLR'/'CPAL' tables) in all formats using the 'sfnt' + * module (namely TrueType~& OpenType). + */ +#define TT_CONFIG_OPTION_COLOR_LAYERS + + + /************************************************************************** + * + * Define `TT_CONFIG_OPTION_POSTSCRIPT_NAMES` if you want to be able to + * load and enumerate Postscript names of glyphs in a TrueType or OpenType + * file. + * + * Note that if you do not compile the 'psnames' module by undefining the + * above `FT_CONFIG_OPTION_POSTSCRIPT_NAMES` macro, the 'sfnt' module will + * contain additional code to read the PostScript name table from a font. + * + * (By default, the module uses 'psnames' to extract glyph names.) + */ +#define TT_CONFIG_OPTION_POSTSCRIPT_NAMES + + + /************************************************************************** + * + * Define `TT_CONFIG_OPTION_SFNT_NAMES` if your applications need to access + * the internal name table in a SFNT-based format like TrueType or + * OpenType. The name table contains various strings used to describe the + * font, like family name, copyright, version, etc. It does not contain + * any glyph name though. + * + * Accessing SFNT names is done through the functions declared in + * `ftsnames.h`. + */ +#define TT_CONFIG_OPTION_SFNT_NAMES + + + /************************************************************************** + * + * TrueType CMap support + * + * Here you can fine-tune which TrueType CMap table format shall be + * supported. + */ +#define TT_CONFIG_CMAP_FORMAT_0 +#define TT_CONFIG_CMAP_FORMAT_2 +#define TT_CONFIG_CMAP_FORMAT_4 +#define TT_CONFIG_CMAP_FORMAT_6 +#define TT_CONFIG_CMAP_FORMAT_8 +#define TT_CONFIG_CMAP_FORMAT_10 +#define TT_CONFIG_CMAP_FORMAT_12 +#define TT_CONFIG_CMAP_FORMAT_13 +#define TT_CONFIG_CMAP_FORMAT_14 + + + /*************************************************************************/ + /*************************************************************************/ + /**** ****/ + /**** T R U E T Y P E D R I V E R C O N F I G U R A T I O N ****/ + /**** ****/ + /*************************************************************************/ + /*************************************************************************/ + + /************************************************************************** + * + * Define `TT_CONFIG_OPTION_BYTECODE_INTERPRETER` if you want to compile a + * bytecode interpreter in the TrueType driver. + * + * By undefining this, you will only compile the code necessary to load + * TrueType glyphs without hinting. + * + * Do not `#undef` this macro here, since the build system might define it + * for certain configurations only. + */ +#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER + + + /************************************************************************** + * + * Define `TT_CONFIG_OPTION_SUBPIXEL_HINTING` if you want to compile + * subpixel hinting support into the TrueType driver. This modifies the + * TrueType hinting mechanism when anything but `FT_RENDER_MODE_MONO` is + * requested. + * + * In particular, it modifies the bytecode interpreter to interpret (or + * not) instructions in a certain way so that all TrueType fonts look like + * they do in a Windows ClearType (DirectWrite) environment. See [1] for a + * technical overview on what this means. See `ttinterp.h` for more + * details on this option. + * + * The new default mode focuses on applying a minimal set of rules to all + * fonts indiscriminately so that modern and web fonts render well while + * legacy fonts render okay. The corresponding interpreter version is v40. + * The so-called Infinality mode (v38) is no longer available in FreeType. + * + * By undefining these, you get rendering behavior like on Windows without + * ClearType, i.e., Windows XP without ClearType enabled and Win9x + * (interpreter version v35). Or not, depending on how much hinting blood + * and testing tears the font designer put into a given font. If you + * define one or both subpixel hinting options, you can switch between + * between v35 and the ones you define (using `FT_Property_Set`). + * + * This option requires `TT_CONFIG_OPTION_BYTECODE_INTERPRETER` to be + * defined. + * + * [1] + * https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx + */ +#define TT_CONFIG_OPTION_SUBPIXEL_HINTING + + + /************************************************************************** + * + * Define `TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED` to compile the + * TrueType glyph loader to use Apple's definition of how to handle + * component offsets in composite glyphs. + * + * Apple and MS disagree on the default behavior of component offsets in + * composites. Apple says that they should be scaled by the scaling + * factors in the transformation matrix (roughly, it's more complex) while + * MS says they should not. OpenType defines two bits in the composite + * flags array which can be used to disambiguate, but old fonts will not + * have them. + * + * https://www.microsoft.com/typography/otspec/glyf.htm + * https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6glyf.html + */ +#undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED + + + /************************************************************************** + * + * Define `TT_CONFIG_OPTION_GX_VAR_SUPPORT` if you want to include support + * for Apple's distortable font technology ('fvar', 'gvar', 'cvar', and + * 'avar' tables). Tagged 'Font Variations', this is now part of OpenType + * also. This has many similarities to Type~1 Multiple Masters support. + */ +#define TT_CONFIG_OPTION_GX_VAR_SUPPORT + + + /************************************************************************** + * + * Define `TT_CONFIG_OPTION_NO_BORING_EXPANSION` if you want to exclude + * support for 'boring' OpenType specification expansions. + * + * https://github.com/harfbuzz/boring-expansion-spec + * + * Right now, the following features are covered: + * + * - 'avar' version 2.0 + * + * Most likely, this is a temporary configuration option to be removed in + * the near future, since it is assumed that eventually those features are + * added to the OpenType standard. + */ +/* #define TT_CONFIG_OPTION_NO_BORING_EXPANSION */ + + + /************************************************************************** + * + * Define `TT_CONFIG_OPTION_BDF` if you want to include support for an + * embedded 'BDF~' table within SFNT-based bitmap formats. + */ +#define TT_CONFIG_OPTION_BDF + + + /************************************************************************** + * + * Option `TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES` controls the maximum + * number of bytecode instructions executed for a single run of the + * bytecode interpreter, needed to prevent infinite loops. You don't want + * to change this except for very special situations (e.g., making a + * library fuzzer spend less time to handle broken fonts). + * + * It is not expected that this value is ever modified by a configuring + * script; instead, it gets surrounded with `#ifndef ... #endif` so that + * the value can be set as a preprocessor option on the compiler's command + * line. + */ +#ifndef TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES +#define TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES 1000000L +#endif + + + /************************************************************************** + * + * Option `TT_CONFIG_OPTION_GPOS_KERNING` enables a basic GPOS kerning + * implementation (for TrueType fonts only). With this defined, FreeType + * is able to get kerning pair data from the GPOS 'kern' feature as well as + * legacy 'kern' tables; without this defined, FreeType will only be able + * to use legacy 'kern' tables. + * + * Note that FreeType does not support more advanced GPOS layout features; + * even the 'kern' feature implemented here doesn't handle more + * sophisticated kerning variants. Use a higher-level library like + * HarfBuzz instead for that. + */ +/* #define TT_CONFIG_OPTION_GPOS_KERNING */ + + + /*************************************************************************/ + /*************************************************************************/ + /**** ****/ + /**** T Y P E 1 D R I V E R C O N F I G U R A T I O N ****/ + /**** ****/ + /*************************************************************************/ + /*************************************************************************/ + + + /************************************************************************** + * + * `T1_MAX_DICT_DEPTH` is the maximum depth of nest dictionaries and arrays + * in the Type~1 stream (see `t1load.c`). A minimum of~4 is required. + */ +#define T1_MAX_DICT_DEPTH 5 + + + /************************************************************************** + * + * `T1_MAX_SUBRS_CALLS` details the maximum number of nested sub-routine + * calls during glyph loading. + */ +#define T1_MAX_SUBRS_CALLS 16 + + + /************************************************************************** + * + * `T1_MAX_CHARSTRING_OPERANDS` is the charstring stack's capacity. A + * minimum of~16 is required. + * + * The Chinese font 'MingTiEG-Medium' (covering the CNS 11643 character + * set) needs 256. + */ +#define T1_MAX_CHARSTRINGS_OPERANDS 256 + + + /************************************************************************** + * + * Define this configuration macro if you want to prevent the compilation + * of the 't1afm' module, which is in charge of reading Type~1 AFM files + * into an existing face. Note that if set, the Type~1 driver will be + * unable to produce kerning distances. + */ +#undef T1_CONFIG_OPTION_NO_AFM + + + /************************************************************************** + * + * Define this configuration macro if you want to prevent the compilation + * of the Multiple Masters font support in the Type~1 driver. + */ +#undef T1_CONFIG_OPTION_NO_MM_SUPPORT + + + /************************************************************************** + * + * `T1_CONFIG_OPTION_OLD_ENGINE` controls whether the pre-Adobe Type~1 + * engine gets compiled into FreeType. If defined, it is possible to + * switch between the two engines using the `hinting-engine` property of + * the 'type1' driver module. + */ +/* #define T1_CONFIG_OPTION_OLD_ENGINE */ + + + /*************************************************************************/ + /*************************************************************************/ + /**** ****/ + /**** C F F D R I V E R C O N F I G U R A T I O N ****/ + /**** ****/ + /*************************************************************************/ + /*************************************************************************/ + + + /************************************************************************** + * + * Using `CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4}` it is + * possible to set up the default values of the four control points that + * define the stem darkening behaviour of the (new) CFF engine. For more + * details please read the documentation of the `darkening-parameters` + * property (file `ftdriver.h`), which allows the control at run-time. + * + * Do **not** undefine these macros! + */ +#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 500 +#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 400 + +#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 1000 +#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 275 + +#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 1667 +#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 275 + +#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4 2333 +#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 0 + + + /************************************************************************** + * + * `CFF_CONFIG_OPTION_OLD_ENGINE` controls whether the pre-Adobe CFF engine + * gets compiled into FreeType. If defined, it is possible to switch + * between the two engines using the `hinting-engine` property of the 'cff' + * driver module. + */ +/* #define CFF_CONFIG_OPTION_OLD_ENGINE */ + + + /*************************************************************************/ + /*************************************************************************/ + /**** ****/ + /**** P C F D R I V E R C O N F I G U R A T I O N ****/ + /**** ****/ + /*************************************************************************/ + /*************************************************************************/ + + + /************************************************************************** + * + * There are many PCF fonts just called 'Fixed' which look completely + * different, and which have nothing to do with each other. When selecting + * 'Fixed' in KDE or Gnome one gets results that appear rather random, the + * style changes often if one changes the size and one cannot select some + * fonts at all. This option makes the 'pcf' module prepend the foundry + * name (plus a space) to the family name. + * + * We also check whether we have 'wide' characters; all put together, we + * get family names like 'Sony Fixed' or 'Misc Fixed Wide'. + * + * If this option is activated, it can be controlled with the + * `no-long-family-names` property of the 'pcf' driver module. + */ +/* #define PCF_CONFIG_OPTION_LONG_FAMILY_NAMES */ + + + /*************************************************************************/ + /*************************************************************************/ + /**** ****/ + /**** A U T O F I T M O D U L E C O N F I G U R A T I O N ****/ + /**** ****/ + /*************************************************************************/ + /*************************************************************************/ + + + /************************************************************************** + * + * Compile 'autofit' module with CJK (Chinese, Japanese, Korean) script + * support. + */ +#define AF_CONFIG_OPTION_CJK + + + /************************************************************************** + * + * Compile 'autofit' module with fallback Indic script support, covering + * some scripts that the 'latin' submodule of the 'autofit' module doesn't + * (yet) handle. Currently, this needs option `AF_CONFIG_OPTION_CJK`. + */ +#ifdef AF_CONFIG_OPTION_CJK +#define AF_CONFIG_OPTION_INDIC +#endif + + + /************************************************************************** + * + * Use TrueType-like size metrics for 'light' auto-hinting. + * + * It is strongly recommended to avoid this option, which exists only to + * help some legacy applications retain its appearance and behaviour with + * respect to auto-hinted TrueType fonts. + * + * The very reason this option exists at all are GNU/Linux distributions + * like Fedora that did not un-patch the following change (which was + * present in FreeType between versions 2.4.6 and 2.7.1, inclusive). + * + * ``` + * 2011-07-16 Steven Chu + * + * [truetype] Fix metrics on size request for scalable fonts. + * ``` + * + * This problematic commit is now reverted (more or less). + */ +/* #define AF_CONFIG_OPTION_TT_SIZE_METRICS */ + + /* */ + + + /* + * This macro is obsolete. Support has been removed in FreeType version + * 2.5. + */ +/* #define FT_CONFIG_OPTION_OLD_INTERNALS */ + + + /* + * The next two macros are defined if native TrueType hinting is + * requested by the definitions above. Don't change this. + */ +#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER +#define TT_USE_BYTECODE_INTERPRETER +#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING +#define TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL +#endif +#endif + + + /* + * The TT_SUPPORT_COLRV1 macro is defined to indicate to clients that this + * version of FreeType has support for 'COLR' v1 API. This definition is + * useful to FreeType clients that want to build in support for 'COLR' v1 + * depending on a tip-of-tree checkout before it is officially released in + * FreeType, and while the feature cannot yet be tested against using + * version macros. Don't change this macro. This may be removed once the + * feature is in a FreeType release version and version macros can be used + * to test for availability. + */ +#ifdef TT_CONFIG_OPTION_COLOR_LAYERS +#define TT_SUPPORT_COLRV1 +#endif + + + /* + * Check CFF darkening parameters. The checks are the same as in function + * `cff_property_set` in file `cffdrivr.c`. + */ +#if CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 < 0 || \ + CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 < 0 || \ + CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 < 0 || \ + CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4 < 0 || \ + \ + CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 < 0 || \ + CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 < 0 || \ + CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 < 0 || \ + CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 < 0 || \ + \ + CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 > \ + CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 || \ + CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 > \ + CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 || \ + CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 > \ + CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4 || \ + \ + CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 > 500 || \ + CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 > 500 || \ + CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 > 500 || \ + CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 > 500 +#error "Invalid CFF darkening parameters!" +#endif + + +FT_END_HEADER + +#endif /* FTOPTION_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/ftstdlib.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/ftstdlib.h new file mode 100644 index 00000000..e17aa7b8 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/ftstdlib.h @@ -0,0 +1,185 @@ +/**************************************************************************** + * + * ftstdlib.h + * + * ANSI-specific library and header configuration file (specification + * only). + * + * Copyright (C) 2002-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + + /************************************************************************** + * + * This file is used to group all `#includes` to the ANSI~C library that + * FreeType normally requires. It also defines macros to rename the + * standard functions within the FreeType source code. + * + * Load a file which defines `FTSTDLIB_H_` before this one to override it. + * + */ + + +#ifndef FTSTDLIB_H_ +#define FTSTDLIB_H_ + + +#include + +#define ft_ptrdiff_t ptrdiff_t + + + /************************************************************************** + * + * integer limits + * + * `UINT_MAX` and `ULONG_MAX` are used to automatically compute the size of + * `int` and `long` in bytes at compile-time. So far, this works for all + * platforms the library has been tested on. We also check `ULLONG_MAX` + * to see whether we can use 64-bit `long long` later on. + * + * Note that on the extremely rare platforms that do not provide integer + * types that are _exactly_ 16 and 32~bits wide (e.g., some old Crays where + * `int` is 36~bits), we do not make any guarantee about the correct + * behaviour of FreeType~2 with all fonts. + * + * In these cases, `ftconfig.h` will refuse to compile anyway with a + * message like 'couldn't find 32-bit type' or something similar. + * + */ + + +#include + +#define FT_CHAR_BIT CHAR_BIT +#define FT_USHORT_MAX USHRT_MAX +#define FT_INT_MAX INT_MAX +#define FT_INT_MIN INT_MIN +#define FT_UINT_MAX UINT_MAX +#define FT_LONG_MIN LONG_MIN +#define FT_LONG_MAX LONG_MAX +#define FT_ULONG_MAX ULONG_MAX +#ifdef LLONG_MAX +#define FT_LLONG_MAX LLONG_MAX +#endif +#ifdef LLONG_MIN +#define FT_LLONG_MIN LLONG_MIN +#endif +#ifdef ULLONG_MAX +#define FT_ULLONG_MAX ULLONG_MAX +#endif + + + /************************************************************************** + * + * character and string processing + * + */ + + +#include + +#define ft_memchr memchr +#define ft_memcmp memcmp +#define ft_memcpy memcpy +#define ft_memmove memmove +#define ft_memset memset +#define ft_strcat strcat +#define ft_strcmp strcmp +#define ft_strcpy strcpy +#define ft_strlen strlen +#define ft_strncmp strncmp +#define ft_strncpy strncpy +#define ft_strrchr strrchr +#define ft_strstr strstr + + + /************************************************************************** + * + * file handling + * + */ + + +#include + +#define FT_FILE FILE +#define ft_fclose fclose +#define ft_fopen fopen +#define ft_fread fread +#define ft_fseek fseek +#define ft_ftell ftell +#define ft_snprintf snprintf + + + /************************************************************************** + * + * sorting + * + */ + + +#include + +#define ft_qsort qsort + + + /************************************************************************** + * + * memory allocation + * + */ + + +#define ft_scalloc calloc +#define ft_sfree free +#define ft_smalloc malloc +#define ft_srealloc realloc + + + /************************************************************************** + * + * miscellaneous + * + */ + + +#define ft_strtol strtol +#define ft_getenv getenv + + + /************************************************************************** + * + * execution control + * + */ + + +#include + +#define ft_jmp_buf jmp_buf /* note: this cannot be a typedef since */ + /* `jmp_buf` is defined as a macro */ + /* on certain platforms */ + +#define ft_longjmp longjmp +#define ft_setjmp( b ) setjmp( *(ft_jmp_buf*) &(b) ) /* same thing here */ + + + /* The following is only used for debugging purposes, i.e., if */ + /* `FT_DEBUG_LEVEL_ERROR` or `FT_DEBUG_LEVEL_TRACE` are defined. */ + +#include + + +#endif /* FTSTDLIB_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/integer-types.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/integer-types.h new file mode 100644 index 00000000..c27505ff --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/integer-types.h @@ -0,0 +1,250 @@ +/**************************************************************************** + * + * config/integer-types.h + * + * FreeType integer types definitions. + * + * Copyright (C) 1996-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ +#ifndef FREETYPE_CONFIG_INTEGER_TYPES_H_ +#define FREETYPE_CONFIG_INTEGER_TYPES_H_ + + /* There are systems (like the Texas Instruments 'C54x) where a `char` */ + /* has 16~bits. ANSI~C says that `sizeof(char)` is always~1. Since an */ + /* `int` has 16~bits also for this system, `sizeof(int)` gives~1 which */ + /* is probably unexpected. */ + /* */ + /* `CHAR_BIT` (defined in `limits.h`) gives the number of bits in a */ + /* `char` type. */ + +#ifndef FT_CHAR_BIT +#define FT_CHAR_BIT CHAR_BIT +#endif + +#ifndef FT_SIZEOF_INT + + /* The size of an `int` type. */ +#if FT_UINT_MAX == 0xFFFFUL +#define FT_SIZEOF_INT ( 16 / FT_CHAR_BIT ) +#elif FT_UINT_MAX == 0xFFFFFFFFUL +#define FT_SIZEOF_INT ( 32 / FT_CHAR_BIT ) +#elif FT_UINT_MAX > 0xFFFFFFFFUL && FT_UINT_MAX == 0xFFFFFFFFFFFFFFFFUL +#define FT_SIZEOF_INT ( 64 / FT_CHAR_BIT ) +#else +#error "Unsupported size of `int' type!" +#endif + +#endif /* !defined(FT_SIZEOF_INT) */ + +#ifndef FT_SIZEOF_LONG + + /* The size of a `long` type. A five-byte `long` (as used e.g. on the */ + /* DM642) is recognized but avoided. */ +#if FT_ULONG_MAX == 0xFFFFFFFFUL +#define FT_SIZEOF_LONG ( 32 / FT_CHAR_BIT ) +#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFUL +#define FT_SIZEOF_LONG ( 32 / FT_CHAR_BIT ) +#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFFFFFFFUL +#define FT_SIZEOF_LONG ( 64 / FT_CHAR_BIT ) +#else +#error "Unsupported size of `long' type!" +#endif + +#endif /* !defined(FT_SIZEOF_LONG) */ + +#ifndef FT_SIZEOF_LONG_LONG + + /* The size of a `long long` type if available */ +#if defined( FT_ULLONG_MAX ) && FT_ULLONG_MAX >= 0xFFFFFFFFFFFFFFFFULL +#define FT_SIZEOF_LONG_LONG ( 64 / FT_CHAR_BIT ) +#else +#define FT_SIZEOF_LONG_LONG 0 +#endif + +#endif /* !defined(FT_SIZEOF_LONG_LONG) */ + + + /************************************************************************** + * + * @section: + * basic_types + * + */ + + + /************************************************************************** + * + * @type: + * FT_Int16 + * + * @description: + * A typedef for a 16bit signed integer type. + */ + typedef signed short FT_Int16; + + + /************************************************************************** + * + * @type: + * FT_UInt16 + * + * @description: + * A typedef for a 16bit unsigned integer type. + */ + typedef unsigned short FT_UInt16; + + /* */ + + + /* this #if 0 ... #endif clause is for documentation purposes */ +#if 0 + + /************************************************************************** + * + * @type: + * FT_Int32 + * + * @description: + * A typedef for a 32bit signed integer type. The size depends on the + * configuration. + */ + typedef signed XXX FT_Int32; + + + /************************************************************************** + * + * @type: + * FT_UInt32 + * + * A typedef for a 32bit unsigned integer type. The size depends on the + * configuration. + */ + typedef unsigned XXX FT_UInt32; + + + /************************************************************************** + * + * @type: + * FT_Int64 + * + * A typedef for a 64bit signed integer type. The size depends on the + * configuration. Only defined if there is real 64bit support; + * otherwise, it gets emulated with a structure (if necessary). + */ + typedef signed XXX FT_Int64; + + + /************************************************************************** + * + * @type: + * FT_UInt64 + * + * A typedef for a 64bit unsigned integer type. The size depends on the + * configuration. Only defined if there is real 64bit support; + * otherwise, it gets emulated with a structure (if necessary). + */ + typedef unsigned XXX FT_UInt64; + + /* */ + +#endif + +#if FT_SIZEOF_INT == ( 32 / FT_CHAR_BIT ) + + typedef signed int FT_Int32; + typedef unsigned int FT_UInt32; + +#elif FT_SIZEOF_LONG == ( 32 / FT_CHAR_BIT ) + + typedef signed long FT_Int32; + typedef unsigned long FT_UInt32; + +#else +#error "no 32bit type found -- please check your configuration files" +#endif + + + /* look up an integer type that is at least 32~bits */ +#if FT_SIZEOF_INT >= ( 32 / FT_CHAR_BIT ) + + typedef int FT_Fast; + typedef unsigned int FT_UFast; + +#elif FT_SIZEOF_LONG >= ( 32 / FT_CHAR_BIT ) + + typedef long FT_Fast; + typedef unsigned long FT_UFast; + +#endif + + + /* determine whether we have a 64-bit integer type */ +#if FT_SIZEOF_LONG == ( 64 / FT_CHAR_BIT ) + +#define FT_INT64 long +#define FT_UINT64 unsigned long + +#elif FT_SIZEOF_LONG_LONG >= ( 64 / FT_CHAR_BIT ) + +#define FT_INT64 long long int +#define FT_UINT64 unsigned long long int + + /************************************************************************** + * + * A 64-bit data type may create compilation problems if you compile in + * strict ANSI mode. To avoid them, we disable other 64-bit data types if + * `__STDC__` is defined. You can however ignore this rule by defining the + * `FT_CONFIG_OPTION_FORCE_INT64` configuration macro. + */ +#elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 ) + +#if defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */ + + /* this compiler provides the `__int64` type */ +#define FT_INT64 __int64 +#define FT_UINT64 unsigned __int64 + +#elif defined( __BORLANDC__ ) /* Borland C++ */ + + /* XXXX: We should probably check the value of `__BORLANDC__` in order */ + /* to test the compiler version. */ + + /* this compiler provides the `__int64` type */ +#define FT_INT64 __int64 +#define FT_UINT64 unsigned __int64 + +#elif defined( __WATCOMC__ ) && __WATCOMC__ >= 1100 /* Watcom C++ */ + +#define FT_INT64 long long int +#define FT_UINT64 unsigned long long int + +#elif defined( __MWERKS__ ) /* Metrowerks CodeWarrior */ + +#define FT_INT64 long long int +#define FT_UINT64 unsigned long long int + +#elif defined( __GNUC__ ) + + /* GCC provides the `long long` type */ +#define FT_INT64 long long int +#define FT_UINT64 unsigned long long int + +#endif /* !__STDC__ */ + +#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */ + +#ifdef FT_INT64 + typedef FT_INT64 FT_Int64; + typedef FT_UINT64 FT_UInt64; +#endif + + +#endif /* FREETYPE_CONFIG_INTEGER_TYPES_H_ */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/mac-support.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/mac-support.h new file mode 100644 index 00000000..07b6f915 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/mac-support.h @@ -0,0 +1,49 @@ +/**************************************************************************** + * + * config/mac-support.h + * + * Mac/OS X support configuration header. + * + * Copyright (C) 1996-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ +#ifndef FREETYPE_CONFIG_MAC_SUPPORT_H_ +#define FREETYPE_CONFIG_MAC_SUPPORT_H_ + + /************************************************************************** + * + * Mac support + * + * This is the only necessary change, so it is defined here instead + * providing a new configuration file. + */ +#if defined( __APPLE__ ) || ( defined( __MWERKS__ ) && defined( macintosh ) ) + /* No Carbon frameworks for 64bit 10.4.x. */ + /* `AvailabilityMacros.h` is available since Mac OS X 10.2, */ + /* so guess the system version by maximum errno before inclusion. */ +#include +#ifdef ECANCELED /* defined since 10.2 */ +#include "AvailabilityMacros.h" +#endif +#if defined( __LP64__ ) && \ + ( MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4 ) +#undef FT_MACINTOSH +#endif + +#elif defined( __SC__ ) || defined( __MRC__ ) + /* Classic MacOS compilers */ +#include "ConditionalMacros.h" +#if TARGET_OS_MAC +#define FT_MACINTOSH 1 +#endif + +#endif /* Mac support */ + +#endif /* FREETYPE_CONFIG_MAC_SUPPORT_H_ */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/public-macros.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/public-macros.h new file mode 100644 index 00000000..f56581a6 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/public-macros.h @@ -0,0 +1,138 @@ +/**************************************************************************** + * + * config/public-macros.h + * + * Define a set of compiler macros used in public FreeType headers. + * + * Copyright (C) 2020-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + /* + * The definitions in this file are used by the public FreeType headers + * and thus should be considered part of the public API. + * + * Other compiler-specific macro definitions that are not exposed by the + * FreeType API should go into + * `include/freetype/internal/compiler-macros.h` instead. + */ +#ifndef FREETYPE_CONFIG_PUBLIC_MACROS_H_ +#define FREETYPE_CONFIG_PUBLIC_MACROS_H_ + + /* + * `FT_BEGIN_HEADER` and `FT_END_HEADER` might have already been defined + * by `freetype/config/ftheader.h`, but we don't want to include this + * header here, so redefine the macros here only when needed. Their + * definition is very stable, so keeping them in sync with the ones in the + * header should not be a maintenance issue. + */ +#ifndef FT_BEGIN_HEADER +#ifdef __cplusplus +#define FT_BEGIN_HEADER extern "C" { +#else +#define FT_BEGIN_HEADER /* empty */ +#endif +#endif /* FT_BEGIN_HEADER */ + +#ifndef FT_END_HEADER +#ifdef __cplusplus +#define FT_END_HEADER } +#else +#define FT_END_HEADER /* empty */ +#endif +#endif /* FT_END_HEADER */ + + +FT_BEGIN_HEADER + + /* + * Mark a function declaration as public. This ensures it will be + * properly exported to client code. Place this before a function + * declaration. + * + * NOTE: This macro should be considered an internal implementation + * detail, and not part of the FreeType API. It is only defined here + * because it is needed by `FT_EXPORT`. + */ + + /* Visual C, mingw */ +#if defined( _WIN32 ) + +#if defined( FT2_BUILD_LIBRARY ) && defined( DLL_EXPORT ) +#define FT_PUBLIC_FUNCTION_ATTRIBUTE __declspec( dllexport ) +#elif defined( DLL_IMPORT ) +#define FT_PUBLIC_FUNCTION_ATTRIBUTE __declspec( dllimport ) +#endif + + /* gcc, clang */ +#elif ( defined( __GNUC__ ) && __GNUC__ >= 4 ) || defined( __clang__ ) +#define FT_PUBLIC_FUNCTION_ATTRIBUTE \ + __attribute__(( visibility( "default" ) )) + + /* Sun */ +#elif defined( __SUNPRO_C ) && __SUNPRO_C >= 0x550 +#define FT_PUBLIC_FUNCTION_ATTRIBUTE __global +#endif + + +#ifndef FT_PUBLIC_FUNCTION_ATTRIBUTE +#define FT_PUBLIC_FUNCTION_ATTRIBUTE /* empty */ +#endif + + + /* + * Define a public FreeType API function. This ensures it is properly + * exported or imported at build time. The macro parameter is the + * function's return type as in: + * + * FT_EXPORT( FT_Bool ) + * FT_Object_Method( FT_Object obj, + * ... ); + * + * NOTE: This requires that all `FT_EXPORT` uses are inside + * `FT_BEGIN_HEADER ... FT_END_HEADER` blocks. This guarantees that the + * functions are exported with C linkage, even when the header is included + * by a C++ source file. + */ +#define FT_EXPORT( x ) FT_PUBLIC_FUNCTION_ATTRIBUTE extern x + + + /* + * `FT_UNUSED` indicates that a given parameter is not used -- this is + * only used to get rid of unpleasant compiler warnings. + * + * Technically, this was not meant to be part of the public API, but some + * third-party code depends on it. + */ +#ifndef FT_UNUSED +#define FT_UNUSED( arg ) ( (arg) = (arg) ) +#endif + + + /* + * Support for casts in both C and C++. + */ +#ifdef __cplusplus +#define FT_STATIC_CAST( type, var ) static_cast(var) +#define FT_REINTERPRET_CAST( type, var ) reinterpret_cast(var) + +#define FT_STATIC_BYTE_CAST( type, var ) \ + static_cast( static_cast( var ) ) +#else +#define FT_STATIC_CAST( type, var ) (type)(var) +#define FT_REINTERPRET_CAST( type, var ) (type)(var) + +#define FT_STATIC_BYTE_CAST( type, var ) (type)(unsigned char)(var) +#endif + + +FT_END_HEADER + +#endif /* FREETYPE_CONFIG_PUBLIC_MACROS_H_ */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/freetype.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/freetype.h new file mode 100644 index 00000000..58fc33df --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/freetype.h @@ -0,0 +1,5289 @@ +/**************************************************************************** + * + * freetype.h + * + * FreeType high-level API and common types (specification only). + * + * Copyright (C) 1996-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FREETYPE_H_ +#define FREETYPE_H_ + + +#include +#include FT_CONFIG_CONFIG_H +#include +#include + + +FT_BEGIN_HEADER + + + + /************************************************************************** + * + * @section: + * preamble + * + * @title: + * Preamble + * + * @abstract: + * What FreeType is and isn't + * + * @description: + * FreeType is a library that provides access to glyphs in font files. It + * scales the glyph images and their metrics to a requested size, and it + * rasterizes the glyph images to produce pixel or subpixel alpha coverage + * bitmaps. + * + * Note that FreeType is _not_ a text layout engine. You have to use + * higher-level libraries like HarfBuzz, Pango, or ICU for that. + * + * Note also that FreeType does _not_ perform alpha blending or + * compositing the resulting bitmaps or pixmaps by itself. Use your + * favourite graphics library (for example, Cairo or Skia) to further + * process FreeType's output. + * + */ + + + /************************************************************************** + * + * @section: + * header_inclusion + * + * @title: + * FreeType's header inclusion scheme + * + * @abstract: + * How client applications should include FreeType header files. + * + * @description: + * To be as flexible as possible (and for historical reasons), you must + * load file `ft2build.h` first before other header files, for example + * + * ``` + * #include + * + * #include + * #include + * ``` + */ + + + /************************************************************************** + * + * @section: + * user_allocation + * + * @title: + * User allocation + * + * @abstract: + * How client applications should allocate FreeType data structures. + * + * @description: + * FreeType assumes that structures allocated by the user and passed as + * arguments are zeroed out except for the actual data. In other words, + * it is recommended to use `calloc` (or variants of it) instead of + * `malloc` for allocation. + * + */ + + + /************************************************************************** + * + * @section: + * font_testing_macros + * + * @title: + * Font Testing Macros + * + * @abstract: + * Macros to test various properties of fonts. + * + * @description: + * Macros to test the most important font properties. + * + * It is recommended to use these high-level macros instead of directly + * testing the corresponding flags, which are scattered over various + * structures. + * + * @order: + * FT_HAS_HORIZONTAL + * FT_HAS_VERTICAL + * FT_HAS_KERNING + * FT_HAS_FIXED_SIZES + * FT_HAS_GLYPH_NAMES + * FT_HAS_COLOR + * FT_HAS_MULTIPLE_MASTERS + * FT_HAS_SVG + * FT_HAS_SBIX + * FT_HAS_SBIX_OVERLAY + * + * FT_IS_SFNT + * FT_IS_SCALABLE + * FT_IS_FIXED_WIDTH + * FT_IS_CID_KEYED + * FT_IS_TRICKY + * FT_IS_NAMED_INSTANCE + * FT_IS_VARIATION + * + */ + + + /************************************************************************** + * + * @section: + * library_setup + * + * @title: + * Library Setup + * + * @abstract: + * Functions to start and end the usage of the FreeType library. + * + * @description: + * Functions to start and end the usage of the FreeType library. + * + * Note that @FT_Library_Version and @FREETYPE_XXX are of limited use + * because even a new release of FreeType with only documentation + * changes increases the version number. + * + * @order: + * FT_Library + * FT_Init_FreeType + * FT_Done_FreeType + * + * FT_Library_Version + * FREETYPE_XXX + * + */ + + + /************************************************************************** + * + * @section: + * face_creation + * + * @title: + * Face Creation + * + * @abstract: + * Functions to manage fonts. + * + * @description: + * The functions and structures collected in this section operate on + * fonts globally. + * + * @order: + * FT_Face + * FT_FaceRec + * FT_FACE_FLAG_XXX + * FT_STYLE_FLAG_XXX + * + * FT_New_Face + * FT_Done_Face + * FT_Reference_Face + * FT_New_Memory_Face + * FT_Face_Properties + * FT_Open_Face + * FT_Open_Args + * FT_OPEN_XXX + * FT_Parameter + * FT_Attach_File + * FT_Attach_Stream + * + */ + + + /************************************************************************** + * + * @section: + * sizing_and_scaling + * + * @title: + * Sizing and Scaling + * + * @abstract: + * Functions to manage font sizes. + * + * @description: + * The functions and structures collected in this section are related to + * selecting and manipulating the size of a font globally. + * + * @order: + * FT_Size + * FT_SizeRec + * FT_Size_Metrics + * + * FT_Bitmap_Size + * + * FT_Set_Char_Size + * FT_Set_Pixel_Sizes + * FT_Request_Size + * FT_Select_Size + * FT_Size_Request_Type + * FT_Size_RequestRec + * FT_Size_Request + * + * FT_Set_Transform + * FT_Get_Transform + * + */ + + + /************************************************************************** + * + * @section: + * glyph_retrieval + * + * @title: + * Glyph Retrieval + * + * @abstract: + * Functions to manage glyphs. + * + * @description: + * The functions and structures collected in this section operate on + * single glyphs, of which @FT_Load_Glyph is most important. + * + * @order: + * FT_GlyphSlot + * FT_GlyphSlotRec + * FT_Glyph_Metrics + * + * FT_Load_Glyph + * FT_LOAD_XXX + * FT_LOAD_TARGET_MODE + * FT_LOAD_TARGET_XXX + * + * FT_Render_Glyph + * FT_Render_Mode + * FT_Get_Kerning + * FT_Kerning_Mode + * FT_Get_Track_Kerning + * + */ + + + /************************************************************************** + * + * @section: + * character_mapping + * + * @title: + * Character Mapping + * + * @abstract: + * Functions to manage character-to-glyph maps. + * + * @description: + * This section holds functions and structures that are related to + * mapping character input codes to glyph indices. + * + * Note that for many scripts the simplistic approach used by FreeType + * of mapping a single character to a single glyph is not valid or + * possible! In general, a higher-level library like HarfBuzz or ICU + * should be used for handling text strings. + * + * @order: + * FT_CharMap + * FT_CharMapRec + * FT_Encoding + * FT_ENC_TAG + * + * FT_Select_Charmap + * FT_Set_Charmap + * FT_Get_Charmap_Index + * + * FT_Get_Char_Index + * FT_Get_First_Char + * FT_Get_Next_Char + * FT_Load_Char + * + */ + + + /************************************************************************** + * + * @section: + * information_retrieval + * + * @title: + * Information Retrieval + * + * @abstract: + * Functions to retrieve font and glyph information. + * + * @description: + * Functions to retrieve font and glyph information. Only some very + * basic data is covered; see also the chapter on the format-specific + * API for more. + * + * + * @order: + * FT_Get_Name_Index + * FT_Get_Glyph_Name + * FT_Get_Postscript_Name + * FT_Get_FSType_Flags + * FT_FSTYPE_XXX + * FT_Get_SubGlyph_Info + * FT_SUBGLYPH_FLAG_XXX + * + */ + + + /************************************************************************** + * + * @section: + * other_api_data + * + * @title: + * Other API Data + * + * @abstract: + * Other structures, enumerations, and macros. + * + * @description: + * Other structures, enumerations, and macros. Deprecated functions are + * also listed here. + * + * @order: + * FT_Face_Internal + * FT_Size_Internal + * FT_Slot_Internal + * + * FT_SubGlyph + * + * FT_HAS_FAST_GLYPHS + * FT_Face_CheckTrueTypePatents + * FT_Face_SetUnpatentedHinting + * + */ + + + /*************************************************************************/ + /*************************************************************************/ + /* */ + /* B A S I C T Y P E S */ + /* */ + /*************************************************************************/ + /*************************************************************************/ + + + /************************************************************************** + * + * @section: + * glyph_retrieval + * + */ + + /************************************************************************** + * + * @struct: + * FT_Glyph_Metrics + * + * @description: + * A structure to model the metrics of a single glyph. The values are + * expressed in 26.6 fractional pixel format; if the flag + * @FT_LOAD_NO_SCALE has been used while loading the glyph, values are + * expressed in font units instead. + * + * @fields: + * width :: + * The glyph's width. + * + * height :: + * The glyph's height. + * + * horiBearingX :: + * Left side bearing for horizontal layout. + * + * horiBearingY :: + * Top side bearing for horizontal layout. + * + * horiAdvance :: + * Advance width for horizontal layout. + * + * vertBearingX :: + * Left side bearing for vertical layout. + * + * vertBearingY :: + * Top side bearing for vertical layout. Larger positive values mean + * further below the vertical glyph origin. + * + * vertAdvance :: + * Advance height for vertical layout. Positive values mean the glyph + * has a positive advance downward. + * + * @note: + * If not disabled with @FT_LOAD_NO_HINTING, the values represent + * dimensions of the hinted glyph (in case hinting is applicable). + * + * Stroking a glyph with an outside border does not increase + * `horiAdvance` or `vertAdvance`; you have to manually adjust these + * values to account for the added width and height. + * + * FreeType doesn't use the 'VORG' table data for CFF fonts because it + * doesn't have an interface to quickly retrieve the glyph height. The + * y~coordinate of the vertical origin can be simply computed as + * `vertBearingY + height` after loading a glyph. + */ + typedef struct FT_Glyph_Metrics_ + { + FT_Pos width; + FT_Pos height; + + FT_Pos horiBearingX; + FT_Pos horiBearingY; + FT_Pos horiAdvance; + + FT_Pos vertBearingX; + FT_Pos vertBearingY; + FT_Pos vertAdvance; + + } FT_Glyph_Metrics; + + + /************************************************************************** + * + * @section: + * sizing_and_scaling + * + */ + + /************************************************************************** + * + * @struct: + * FT_Bitmap_Size + * + * @description: + * This structure models the metrics of a bitmap strike (i.e., a set of + * glyphs for a given point size and resolution) in a bitmap font. It is + * used for the `available_sizes` field of @FT_Face. + * + * @fields: + * height :: + * The vertical distance, in pixels, between two consecutive baselines. + * It is always positive. + * + * width :: + * The average width, in pixels, of all glyphs in the strike. + * + * size :: + * The nominal size of the strike in 26.6 fractional points. This + * field is not very useful. + * + * x_ppem :: + * The horizontal ppem (nominal width) in 26.6 fractional pixels. + * + * y_ppem :: + * The vertical ppem (nominal height) in 26.6 fractional pixels. + * + * @note: + * Windows FNT: + * The nominal size given in a FNT font is not reliable. If the driver + * finds it incorrect, it sets `size` to some calculated values, and + * `x_ppem` and `y_ppem` to the pixel width and height given in the + * font, respectively. + * + * TrueType embedded bitmaps: + * `size`, `width`, and `height` values are not contained in the bitmap + * strike itself. They are computed from the global font parameters. + */ + typedef struct FT_Bitmap_Size_ + { + FT_Short height; + FT_Short width; + + FT_Pos size; + + FT_Pos x_ppem; + FT_Pos y_ppem; + + } FT_Bitmap_Size; + + + /*************************************************************************/ + /*************************************************************************/ + /* */ + /* O B J E C T C L A S S E S */ + /* */ + /*************************************************************************/ + /*************************************************************************/ + + /************************************************************************** + * + * @section: + * library_setup + * + */ + + /************************************************************************** + * + * @type: + * FT_Library + * + * @description: + * A handle to a FreeType library instance. Each 'library' is completely + * independent from the others; it is the 'root' of a set of objects like + * fonts, faces, sizes, etc. + * + * It also embeds a memory manager (see @FT_Memory), as well as a + * scan-line converter object (see @FT_Raster). + * + * [Since 2.5.6] In multi-threaded applications it is easiest to use one + * `FT_Library` object per thread. In case this is too cumbersome, a + * single `FT_Library` object across threads is possible also, as long as + * a mutex lock is used around @FT_New_Face and @FT_Done_Face. + * + * @note: + * Library objects are normally created by @FT_Init_FreeType, and + * destroyed with @FT_Done_FreeType. If you need reference-counting + * (cf. @FT_Reference_Library), use @FT_New_Library and @FT_Done_Library. + */ + typedef struct FT_LibraryRec_ *FT_Library; + + + /************************************************************************** + * + * @section: + * module_management + * + */ + + /************************************************************************** + * + * @type: + * FT_Module + * + * @description: + * A handle to a given FreeType module object. A module can be a font + * driver, a renderer, or anything else that provides services to the + * former. + */ + typedef struct FT_ModuleRec_* FT_Module; + + + /************************************************************************** + * + * @type: + * FT_Driver + * + * @description: + * A handle to a given FreeType font driver object. A font driver is a + * module capable of creating faces from font files. + */ + typedef struct FT_DriverRec_* FT_Driver; + + + /************************************************************************** + * + * @type: + * FT_Renderer + * + * @description: + * A handle to a given FreeType renderer. A renderer is a module in + * charge of converting a glyph's outline image to a bitmap. It supports + * a single glyph image format, and one or more target surface depths. + */ + typedef struct FT_RendererRec_* FT_Renderer; + + + /************************************************************************** + * + * @section: + * face_creation + * + */ + + /************************************************************************** + * + * @type: + * FT_Face + * + * @description: + * A handle to a typographic face object. A face object models a given + * typeface, in a given style. + * + * @note: + * A face object also owns a single @FT_GlyphSlot object, as well as one + * or more @FT_Size objects. + * + * Use @FT_New_Face or @FT_Open_Face to create a new face object from a + * given filepath or a custom input stream. + * + * Use @FT_Done_Face to destroy it (along with its slot and sizes). + * + * An `FT_Face` object can only be safely used from one thread at a time. + * Similarly, creation and destruction of `FT_Face` with the same + * @FT_Library object can only be done from one thread at a time. On the + * other hand, functions like @FT_Load_Glyph and its siblings are + * thread-safe and do not need the lock to be held as long as the same + * `FT_Face` object is not used from multiple threads at the same time. + * + * @also: + * See @FT_FaceRec for the publicly accessible fields of a given face + * object. + */ + typedef struct FT_FaceRec_* FT_Face; + + + /************************************************************************** + * + * @section: + * sizing_and_scaling + * + */ + + /************************************************************************** + * + * @type: + * FT_Size + * + * @description: + * A handle to an object that models a face scaled to a given character + * size. + * + * @note: + * An @FT_Face has one _active_ `FT_Size` object that is used by + * functions like @FT_Load_Glyph to determine the scaling transformation + * that in turn is used to load and hint glyphs and metrics. + * + * A newly created `FT_Size` object contains only meaningless zero values. + * You must use @FT_Set_Char_Size, @FT_Set_Pixel_Sizes, @FT_Request_Size + * or even @FT_Select_Size to change the content (i.e., the scaling + * values) of the active `FT_Size`. Otherwise, the scaling and hinting + * will not be performed. + * + * You can use @FT_New_Size to create additional size objects for a given + * @FT_Face, but they won't be used by other functions until you activate + * it through @FT_Activate_Size. Only one size can be activated at any + * given time per face. + * + * @also: + * See @FT_SizeRec for the publicly accessible fields of a given size + * object. + */ + typedef struct FT_SizeRec_* FT_Size; + + + /************************************************************************** + * + * @section: + * glyph_retrieval + * + */ + + /************************************************************************** + * + * @type: + * FT_GlyphSlot + * + * @description: + * A handle to a given 'glyph slot'. A slot is a container that can hold + * any of the glyphs contained in its parent face. + * + * In other words, each time you call @FT_Load_Glyph or @FT_Load_Char, + * the slot's content is erased by the new glyph data, i.e., the glyph's + * metrics, its image (bitmap or outline), and other control information. + * + * @also: + * See @FT_GlyphSlotRec for the publicly accessible glyph fields. + */ + typedef struct FT_GlyphSlotRec_* FT_GlyphSlot; + + + /************************************************************************** + * + * @section: + * character_mapping + * + */ + + /************************************************************************** + * + * @type: + * FT_CharMap + * + * @description: + * A handle to a character map (usually abbreviated to 'charmap'). A + * charmap is used to translate character codes in a given encoding into + * glyph indexes for its parent's face. Some font formats may provide + * several charmaps per font. + * + * Each face object owns zero or more charmaps, but only one of them can + * be 'active', providing the data used by @FT_Get_Char_Index or + * @FT_Load_Char. + * + * The list of available charmaps in a face is available through the + * `face->num_charmaps` and `face->charmaps` fields of @FT_FaceRec. + * + * The currently active charmap is available as `face->charmap`. You + * should call @FT_Set_Charmap to change it. + * + * @note: + * When a new face is created (either through @FT_New_Face or + * @FT_Open_Face), the library looks for a Unicode charmap within the + * list and automatically activates it. If there is no Unicode charmap, + * FreeType doesn't set an 'active' charmap. + * + * @also: + * See @FT_CharMapRec for the publicly accessible fields of a given + * character map. + */ + typedef struct FT_CharMapRec_* FT_CharMap; + + + /************************************************************************** + * + * @macro: + * FT_ENC_TAG + * + * @description: + * This macro converts four-letter tags into an unsigned long. It is + * used to define 'encoding' identifiers (see @FT_Encoding). + * + * @note: + * Since many 16-bit compilers don't like 32-bit enumerations, you should + * redefine this macro in case of problems to something like this: + * + * ``` + * #define FT_ENC_TAG( value, a, b, c, d ) value + * ``` + * + * to get a simple enumeration without assigning special numbers. + */ + +#ifndef FT_ENC_TAG + +#define FT_ENC_TAG( value, a, b, c, d ) \ + value = ( ( FT_STATIC_BYTE_CAST( FT_UInt32, a ) << 24 ) | \ + ( FT_STATIC_BYTE_CAST( FT_UInt32, b ) << 16 ) | \ + ( FT_STATIC_BYTE_CAST( FT_UInt32, c ) << 8 ) | \ + FT_STATIC_BYTE_CAST( FT_UInt32, d ) ) + +#endif /* FT_ENC_TAG */ + + + /************************************************************************** + * + * @enum: + * FT_Encoding + * + * @description: + * An enumeration to specify character sets supported by charmaps. Used + * in the @FT_Select_Charmap API function. + * + * @note: + * Despite the name, this enumeration lists specific character + * repertoires (i.e., charsets), and not text encoding methods (e.g., + * UTF-8, UTF-16, etc.). + * + * Other encodings might be defined in the future. + * + * @values: + * FT_ENCODING_NONE :: + * The encoding value~0 is reserved for all formats except BDF, PCF, + * and Windows FNT; see below for more information. + * + * FT_ENCODING_UNICODE :: + * The Unicode character set. This value covers all versions of the + * Unicode repertoire, including ASCII and Latin-1. Most fonts include + * a Unicode charmap, but not all of them. + * + * For example, if you want to access Unicode value U+1F028 (and the + * font contains it), use value 0x1F028 as the input value for + * @FT_Get_Char_Index. + * + * FT_ENCODING_MS_SYMBOL :: + * Microsoft Symbol encoding, used to encode mathematical symbols and + * wingdings. For more information, see + * 'https://www.microsoft.com/typography/otspec/recom.htm#non-standard-symbol-fonts', + * 'http://www.kostis.net/charsets/symbol.htm', and + * 'http://www.kostis.net/charsets/wingding.htm'. + * + * This encoding uses character codes from the PUA (Private Unicode + * Area) in the range U+F020-U+F0FF. + * + * FT_ENCODING_SJIS :: + * Shift JIS encoding for Japanese. More info at + * 'https://en.wikipedia.org/wiki/Shift_JIS'. See note on multi-byte + * encodings below. + * + * FT_ENCODING_PRC :: + * Corresponds to encoding systems mainly for Simplified Chinese as + * used in People's Republic of China (PRC). The encoding layout is + * based on GB~2312 and its supersets GBK and GB~18030. + * + * FT_ENCODING_BIG5 :: + * Corresponds to an encoding system for Traditional Chinese as used in + * Taiwan and Hong Kong. + * + * FT_ENCODING_WANSUNG :: + * Corresponds to the Korean encoding system known as Extended Wansung + * (MS Windows code page 949). For more information see + * 'https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit949.txt'. + * + * FT_ENCODING_JOHAB :: + * The Korean standard character set (KS~C 5601-1992), which + * corresponds to MS Windows code page 1361. This character set + * includes all possible Hangul character combinations. + * + * FT_ENCODING_ADOBE_LATIN_1 :: + * Corresponds to a Latin-1 encoding as defined in a Type~1 PostScript + * font. It is limited to 256 character codes. + * + * FT_ENCODING_ADOBE_STANDARD :: + * Adobe Standard encoding, as found in Type~1, CFF, and OpenType/CFF + * fonts. It is limited to 256 character codes. + * + * FT_ENCODING_ADOBE_EXPERT :: + * Adobe Expert encoding, as found in Type~1, CFF, and OpenType/CFF + * fonts. It is limited to 256 character codes. + * + * FT_ENCODING_ADOBE_CUSTOM :: + * Corresponds to a custom encoding, as found in Type~1, CFF, and + * OpenType/CFF fonts. It is limited to 256 character codes. + * + * FT_ENCODING_APPLE_ROMAN :: + * Apple roman encoding. Many TrueType and OpenType fonts contain a + * charmap for this 8-bit encoding, since older versions of Mac OS are + * able to use it. + * + * FT_ENCODING_OLD_LATIN_2 :: + * This value is deprecated and was neither used nor reported by + * FreeType. Don't use or test for it. + * + * FT_ENCODING_MS_SJIS :: + * Same as FT_ENCODING_SJIS. Deprecated. + * + * FT_ENCODING_MS_GB2312 :: + * Same as FT_ENCODING_PRC. Deprecated. + * + * FT_ENCODING_MS_BIG5 :: + * Same as FT_ENCODING_BIG5. Deprecated. + * + * FT_ENCODING_MS_WANSUNG :: + * Same as FT_ENCODING_WANSUNG. Deprecated. + * + * FT_ENCODING_MS_JOHAB :: + * Same as FT_ENCODING_JOHAB. Deprecated. + * + * @note: + * When loading a font, FreeType makes a Unicode charmap active if + * possible (either if the font provides such a charmap, or if FreeType + * can synthesize one from PostScript glyph name dictionaries; in either + * case, the charmap is tagged with `FT_ENCODING_UNICODE`). If such a + * charmap is synthesized, it is placed at the first position of the + * charmap array. + * + * All other encodings are considered legacy and tagged only if + * explicitly defined in the font file. Otherwise, `FT_ENCODING_NONE` is + * used. + * + * `FT_ENCODING_NONE` is set by the BDF and PCF drivers if the charmap is + * neither Unicode nor ISO-8859-1 (otherwise it is set to + * `FT_ENCODING_UNICODE`). Use @FT_Get_BDF_Charset_ID to find out which + * encoding is really present. If, for example, the `cs_registry` field + * is 'KOI8' and the `cs_encoding` field is 'R', the font is encoded in + * KOI8-R. + * + * `FT_ENCODING_NONE` is always set (with a single exception) by the + * winfonts driver. Use @FT_Get_WinFNT_Header and examine the `charset` + * field of the @FT_WinFNT_HeaderRec structure to find out which encoding + * is really present. For example, @FT_WinFNT_ID_CP1251 (204) means + * Windows code page 1251 (for Russian). + * + * `FT_ENCODING_NONE` is set if `platform_id` is @TT_PLATFORM_MACINTOSH + * and `encoding_id` is not `TT_MAC_ID_ROMAN` (otherwise it is set to + * `FT_ENCODING_APPLE_ROMAN`). + * + * If `platform_id` is @TT_PLATFORM_MACINTOSH, use the function + * @FT_Get_CMap_Language_ID to query the Mac language ID that may be + * needed to be able to distinguish Apple encoding variants. See + * + * https://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/Readme.txt + * + * to get an idea how to do that. Basically, if the language ID is~0, + * don't use it, otherwise subtract 1 from the language ID. Then examine + * `encoding_id`. If, for example, `encoding_id` is `TT_MAC_ID_ROMAN` + * and the language ID (minus~1) is `TT_MAC_LANGID_GREEK`, it is the + * Greek encoding, not Roman. `TT_MAC_ID_ARABIC` with + * `TT_MAC_LANGID_FARSI` means the Farsi variant of the Arabic encoding. + */ + typedef enum FT_Encoding_ + { + FT_ENC_TAG( FT_ENCODING_NONE, 0, 0, 0, 0 ), + + FT_ENC_TAG( FT_ENCODING_MS_SYMBOL, 's', 'y', 'm', 'b' ), + FT_ENC_TAG( FT_ENCODING_UNICODE, 'u', 'n', 'i', 'c' ), + + FT_ENC_TAG( FT_ENCODING_SJIS, 's', 'j', 'i', 's' ), + FT_ENC_TAG( FT_ENCODING_PRC, 'g', 'b', ' ', ' ' ), + FT_ENC_TAG( FT_ENCODING_BIG5, 'b', 'i', 'g', '5' ), + FT_ENC_TAG( FT_ENCODING_WANSUNG, 'w', 'a', 'n', 's' ), + FT_ENC_TAG( FT_ENCODING_JOHAB, 'j', 'o', 'h', 'a' ), + + /* for backward compatibility */ + FT_ENCODING_GB2312 = FT_ENCODING_PRC, + FT_ENCODING_MS_SJIS = FT_ENCODING_SJIS, + FT_ENCODING_MS_GB2312 = FT_ENCODING_PRC, + FT_ENCODING_MS_BIG5 = FT_ENCODING_BIG5, + FT_ENCODING_MS_WANSUNG = FT_ENCODING_WANSUNG, + FT_ENCODING_MS_JOHAB = FT_ENCODING_JOHAB, + + FT_ENC_TAG( FT_ENCODING_ADOBE_STANDARD, 'A', 'D', 'O', 'B' ), + FT_ENC_TAG( FT_ENCODING_ADOBE_EXPERT, 'A', 'D', 'B', 'E' ), + FT_ENC_TAG( FT_ENCODING_ADOBE_CUSTOM, 'A', 'D', 'B', 'C' ), + FT_ENC_TAG( FT_ENCODING_ADOBE_LATIN_1, 'l', 'a', 't', '1' ), + + FT_ENC_TAG( FT_ENCODING_OLD_LATIN_2, 'l', 'a', 't', '2' ), + + FT_ENC_TAG( FT_ENCODING_APPLE_ROMAN, 'a', 'r', 'm', 'n' ) + + } FT_Encoding; + + + /* these constants are deprecated; use the corresponding `FT_Encoding` */ + /* values instead */ +#define ft_encoding_none FT_ENCODING_NONE +#define ft_encoding_unicode FT_ENCODING_UNICODE +#define ft_encoding_symbol FT_ENCODING_MS_SYMBOL +#define ft_encoding_latin_1 FT_ENCODING_ADOBE_LATIN_1 +#define ft_encoding_latin_2 FT_ENCODING_OLD_LATIN_2 +#define ft_encoding_sjis FT_ENCODING_SJIS +#define ft_encoding_gb2312 FT_ENCODING_PRC +#define ft_encoding_big5 FT_ENCODING_BIG5 +#define ft_encoding_wansung FT_ENCODING_WANSUNG +#define ft_encoding_johab FT_ENCODING_JOHAB + +#define ft_encoding_adobe_standard FT_ENCODING_ADOBE_STANDARD +#define ft_encoding_adobe_expert FT_ENCODING_ADOBE_EXPERT +#define ft_encoding_adobe_custom FT_ENCODING_ADOBE_CUSTOM +#define ft_encoding_apple_roman FT_ENCODING_APPLE_ROMAN + + + /************************************************************************** + * + * @struct: + * FT_CharMapRec + * + * @description: + * The base charmap structure. + * + * @fields: + * face :: + * A handle to the parent face object. + * + * encoding :: + * An @FT_Encoding tag identifying the charmap. Use this with + * @FT_Select_Charmap. + * + * platform_id :: + * An ID number describing the platform for the following encoding ID. + * This comes directly from the TrueType specification and gets + * emulated for other formats. + * + * encoding_id :: + * A platform-specific encoding number. This also comes from the + * TrueType specification and gets emulated similarly. + */ + typedef struct FT_CharMapRec_ + { + FT_Face face; + FT_Encoding encoding; + FT_UShort platform_id; + FT_UShort encoding_id; + + } FT_CharMapRec; + + + /*************************************************************************/ + /*************************************************************************/ + /* */ + /* B A S E O B J E C T C L A S S E S */ + /* */ + /*************************************************************************/ + /*************************************************************************/ + + + /************************************************************************** + * + * @section: + * other_api_data + * + */ + + /************************************************************************** + * + * @type: + * FT_Face_Internal + * + * @description: + * An opaque handle to an `FT_Face_InternalRec` structure that models the + * private data of a given @FT_Face object. + * + * This structure might change between releases of FreeType~2 and is not + * generally available to client applications. + */ + typedef struct FT_Face_InternalRec_* FT_Face_Internal; + + + /************************************************************************** + * + * @section: + * face_creation + * + */ + + /************************************************************************** + * + * @struct: + * FT_FaceRec + * + * @description: + * FreeType root face class structure. A face object models a typeface + * in a font file. + * + * @fields: + * num_faces :: + * The number of faces in the font file. Some font formats can have + * multiple faces in a single font file. + * + * face_index :: + * This field holds two different values. Bits 0-15 are the index of + * the face in the font file (starting with value~0). They are set + * to~0 if there is only one face in the font file. + * + * [Since 2.6.1] Bits 16-30 are relevant to GX and OpenType variation + * fonts only, holding the named instance index for the current face + * index (starting with value~1; value~0 indicates font access without + * a named instance). For non-variation fonts, bits 16-30 are ignored. + * If we have the third named instance of face~4, say, `face_index` is + * set to 0x00030004. + * + * Bit 31 is always zero (that is, `face_index` is always a positive + * value). + * + * [Since 2.9] Changing the design coordinates with + * @FT_Set_Var_Design_Coordinates or @FT_Set_Var_Blend_Coordinates does + * not influence the named instance index value (only + * @FT_Set_Named_Instance does that). + * + * face_flags :: + * A set of bit flags that give important information about the face; + * see @FT_FACE_FLAG_XXX for the details. + * + * style_flags :: + * The lower 16~bits contain a set of bit flags indicating the style of + * the face; see @FT_STYLE_FLAG_XXX for the details. + * + * [Since 2.6.1] Bits 16-30 hold the number of named instances + * available for the current face if we have a GX or OpenType variation + * (sub)font. Bit 31 is always zero (that is, `style_flags` is always + * a positive value). Note that a variation font has always at least + * one named instance, namely the default instance. + * + * num_glyphs :: + * The number of glyphs in the face. If the face is scalable and has + * sbits (see `num_fixed_sizes`), it is set to the number of outline + * glyphs. + * + * For CID-keyed fonts (not in an SFNT wrapper) this value gives the + * highest CID used in the font. + * + * family_name :: + * The face's family name. This is an ASCII string, usually in + * English, that describes the typeface's family (like 'Times New + * Roman', 'Bodoni', 'Garamond', etc). This is a least common + * denominator used to list fonts. Some formats (TrueType & OpenType) + * provide localized and Unicode versions of this string. Applications + * should use the format-specific interface to access them. Can be + * `NULL` (e.g., in fonts embedded in a PDF file). + * + * In case the font doesn't provide a specific family name entry, + * FreeType tries to synthesize one, deriving it from other name + * entries. + * + * style_name :: + * The face's style name. This is an ASCII string, usually in English, + * that describes the typeface's style (like 'Italic', 'Bold', + * 'Condensed', etc). Not all font formats provide a style name, so + * this field is optional, and can be set to `NULL`. As for + * `family_name`, some formats provide localized and Unicode versions + * of this string. Applications should use the format-specific + * interface to access them. + * + * num_fixed_sizes :: + * The number of bitmap strikes in the face. Even if the face is + * scalable, there might still be bitmap strikes, which are called + * 'sbits' in that case. + * + * available_sizes :: + * An array of @FT_Bitmap_Size for all bitmap strikes in the face. It + * is set to `NULL` if there is no bitmap strike. + * + * Note that FreeType tries to sanitize the strike data since they are + * sometimes sloppy or incorrect, but this can easily fail. + * + * num_charmaps :: + * The number of charmaps in the face. + * + * charmaps :: + * An array of the charmaps of the face. + * + * generic :: + * A field reserved for client uses. See the @FT_Generic type + * description. + * + * bbox :: + * The font bounding box. Coordinates are expressed in font units (see + * `units_per_EM`). The box is large enough to contain any glyph from + * the font. Thus, `bbox.yMax` can be seen as the 'maximum ascender', + * and `bbox.yMin` as the 'minimum descender'. Only relevant for + * scalable formats. + * + * Note that the bounding box might be off by (at least) one pixel for + * hinted fonts. See @FT_Size_Metrics for further discussion. + * + * Note that the bounding box does not vary in OpenType variation fonts + * and should only be used in relation to the default instance. + * + * units_per_EM :: + * The number of font units per EM square for this face. This is + * typically 2048 for TrueType fonts, and 1000 for Type~1 fonts. Only + * relevant for scalable formats. + * + * ascender :: + * The typographic ascender of the face, expressed in font units. For + * font formats not having this information, it is set to `bbox.yMax`. + * Only relevant for scalable formats. + * + * descender :: + * The typographic descender of the face, expressed in font units. For + * font formats not having this information, it is set to `bbox.yMin`. + * Note that this field is negative for values below the baseline. + * Only relevant for scalable formats. + * + * height :: + * This value is the vertical distance between two consecutive + * baselines, expressed in font units. It is always positive. Only + * relevant for scalable formats. + * + * If you want the global glyph height, use `ascender - descender`. + * + * max_advance_width :: + * The maximum advance width, in font units, for all glyphs in this + * face. This can be used to make word wrapping computations faster. + * Only relevant for scalable formats. + * + * max_advance_height :: + * The maximum advance height, in font units, for all glyphs in this + * face. This is only relevant for vertical layouts, and is set to + * `height` for fonts that do not provide vertical metrics. Only + * relevant for scalable formats. + * + * underline_position :: + * The position, in font units, of the underline line for this face. + * It is the center of the underlining stem. Only relevant for + * scalable formats. + * + * underline_thickness :: + * The thickness, in font units, of the underline for this face. Only + * relevant for scalable formats. + * + * glyph :: + * The face's associated glyph slot(s). + * + * size :: + * The current active size for this face. + * + * charmap :: + * The current active charmap for this face. + * + * @note: + * Fields may be changed after a call to @FT_Attach_File or + * @FT_Attach_Stream. + * + * For an OpenType variation font, the values of the following fields can + * change after a call to @FT_Set_Var_Design_Coordinates (and friends) if + * the font contains an 'MVAR' table: `ascender`, `descender`, `height`, + * `underline_position`, and `underline_thickness`. + * + * Especially for TrueType fonts see also the documentation for + * @FT_Size_Metrics. + */ + typedef struct FT_FaceRec_ + { + FT_Long num_faces; + FT_Long face_index; + + FT_Long face_flags; + FT_Long style_flags; + + FT_Long num_glyphs; + + FT_String* family_name; + FT_String* style_name; + + FT_Int num_fixed_sizes; + FT_Bitmap_Size* available_sizes; + + FT_Int num_charmaps; + FT_CharMap* charmaps; + + FT_Generic generic; + + /* The following member variables (down to `underline_thickness`) */ + /* are only relevant to scalable outlines; cf. @FT_Bitmap_Size */ + /* for bitmap fonts. */ + FT_BBox bbox; + + FT_UShort units_per_EM; + FT_Short ascender; + FT_Short descender; + FT_Short height; + + FT_Short max_advance_width; + FT_Short max_advance_height; + + FT_Short underline_position; + FT_Short underline_thickness; + + FT_GlyphSlot glyph; + FT_Size size; + FT_CharMap charmap; + + /* private fields, internal to FreeType */ + + FT_Driver driver; + FT_Memory memory; + FT_Stream stream; + + FT_ListRec sizes_list; + + FT_Generic autohint; /* face-specific auto-hinter data */ + void* extensions; /* unused */ + + FT_Face_Internal internal; + + } FT_FaceRec; + + + /************************************************************************** + * + * @enum: + * FT_FACE_FLAG_XXX + * + * @description: + * A list of bit flags used in the `face_flags` field of the @FT_FaceRec + * structure. They inform client applications of properties of the + * corresponding face. + * + * @values: + * FT_FACE_FLAG_SCALABLE :: + * The face contains outline glyphs. Note that a face can contain + * bitmap strikes also, i.e., a face can have both this flag and + * @FT_FACE_FLAG_FIXED_SIZES set. + * + * FT_FACE_FLAG_FIXED_SIZES :: + * The face contains bitmap strikes. See also the `num_fixed_sizes` + * and `available_sizes` fields of @FT_FaceRec. + * + * FT_FACE_FLAG_FIXED_WIDTH :: + * The face contains fixed-width characters (like Courier, Lucida, + * MonoType, etc.). + * + * FT_FACE_FLAG_SFNT :: + * The face uses the SFNT storage scheme. For now, this means TrueType + * and OpenType. + * + * FT_FACE_FLAG_HORIZONTAL :: + * The face contains horizontal glyph metrics. This should be set for + * all common formats. + * + * FT_FACE_FLAG_VERTICAL :: + * The face contains vertical glyph metrics. This is only available in + * some formats, not all of them. + * + * FT_FACE_FLAG_KERNING :: + * The face contains kerning information. If set, the kerning distance + * can be retrieved using the function @FT_Get_Kerning. Otherwise the + * function always returns the vector (0,0). + * + * Note that for TrueType fonts only, FreeType supports both the 'kern' + * table and the basic, pair-wise kerning feature from the 'GPOS' table + * (with `TT_CONFIG_OPTION_GPOS_KERNING` enabled), though FreeType does + * not support the more advanced GPOS layout features; use a library + * like HarfBuzz for those instead. + * + * FT_FACE_FLAG_FAST_GLYPHS :: + * THIS FLAG IS DEPRECATED. DO NOT USE OR TEST IT. + * + * FT_FACE_FLAG_MULTIPLE_MASTERS :: + * The face contains multiple masters and is capable of interpolating + * between them. Supported formats are Adobe MM, TrueType GX, and + * OpenType variation fonts. + * + * See section @multiple_masters for API details. + * + * FT_FACE_FLAG_GLYPH_NAMES :: + * The face contains glyph names, which can be retrieved using + * @FT_Get_Glyph_Name. Note that some TrueType fonts contain broken + * glyph name tables. Use the function @FT_Has_PS_Glyph_Names when + * needed. + * + * FT_FACE_FLAG_EXTERNAL_STREAM :: + * Used internally by FreeType to indicate that a face's stream was + * provided by the client application and should not be destroyed when + * @FT_Done_Face is called. Don't read or test this flag. + * + * FT_FACE_FLAG_HINTER :: + * The font driver has a hinting machine of its own. For example, with + * TrueType fonts, it makes sense to use data from the SFNT 'gasp' + * table only if the native TrueType hinting engine (with the bytecode + * interpreter) is available and active. + * + * FT_FACE_FLAG_CID_KEYED :: + * The face is CID-keyed. In that case, the face is not accessed by + * glyph indices but by CID values. For subsetted CID-keyed fonts this + * has the consequence that not all index values are a valid argument + * to @FT_Load_Glyph. Only the CID values for which corresponding + * glyphs in the subsetted font exist make `FT_Load_Glyph` return + * successfully; in all other cases you get an + * `FT_Err_Invalid_Argument` error. + * + * Note that CID-keyed fonts that are in an SFNT wrapper (that is, all + * OpenType/CFF fonts) don't have this flag set since the glyphs are + * accessed in the normal way (using contiguous indices); the + * 'CID-ness' isn't visible to the application. + * + * FT_FACE_FLAG_TRICKY :: + * The face is 'tricky', that is, it always needs the font format's + * native hinting engine to get a reasonable result. A typical example + * is the old Chinese font `mingli.ttf` (but not `mingliu.ttc`) that + * uses TrueType bytecode instructions to move and scale all of its + * subglyphs. + * + * It is not possible to auto-hint such fonts using + * @FT_LOAD_FORCE_AUTOHINT; it will also ignore @FT_LOAD_NO_HINTING. + * You have to set both @FT_LOAD_NO_HINTING and @FT_LOAD_NO_AUTOHINT to + * really disable hinting; however, you probably never want this except + * for demonstration purposes. + * + * Currently, there are about a dozen TrueType fonts in the list of + * tricky fonts; they are hard-coded in file `ttobjs.c`. + * + * FT_FACE_FLAG_COLOR :: + * [Since 2.5.1] The face has color glyph tables. See @FT_LOAD_COLOR + * for more information. + * + * FT_FACE_FLAG_VARIATION :: + * [Since 2.9] Set if the current face (or named instance) has been + * altered with @FT_Set_MM_Design_Coordinates, + * @FT_Set_Var_Design_Coordinates, @FT_Set_Var_Blend_Coordinates, or + * @FT_Set_MM_WeightVector to select a non-default instance. + * + * FT_FACE_FLAG_SVG :: + * [Since 2.12] The face has an 'SVG~' OpenType table. + * + * FT_FACE_FLAG_SBIX :: + * [Since 2.12] The face has an 'sbix' OpenType table *and* outlines. + * For such fonts, @FT_FACE_FLAG_SCALABLE is not set by default to + * retain backward compatibility. + * + * FT_FACE_FLAG_SBIX_OVERLAY :: + * [Since 2.12] The face has an 'sbix' OpenType table where outlines + * should be drawn on top of bitmap strikes. + * + */ +#define FT_FACE_FLAG_SCALABLE ( 1L << 0 ) +#define FT_FACE_FLAG_FIXED_SIZES ( 1L << 1 ) +#define FT_FACE_FLAG_FIXED_WIDTH ( 1L << 2 ) +#define FT_FACE_FLAG_SFNT ( 1L << 3 ) +#define FT_FACE_FLAG_HORIZONTAL ( 1L << 4 ) +#define FT_FACE_FLAG_VERTICAL ( 1L << 5 ) +#define FT_FACE_FLAG_KERNING ( 1L << 6 ) +#define FT_FACE_FLAG_FAST_GLYPHS ( 1L << 7 ) +#define FT_FACE_FLAG_MULTIPLE_MASTERS ( 1L << 8 ) +#define FT_FACE_FLAG_GLYPH_NAMES ( 1L << 9 ) +#define FT_FACE_FLAG_EXTERNAL_STREAM ( 1L << 10 ) +#define FT_FACE_FLAG_HINTER ( 1L << 11 ) +#define FT_FACE_FLAG_CID_KEYED ( 1L << 12 ) +#define FT_FACE_FLAG_TRICKY ( 1L << 13 ) +#define FT_FACE_FLAG_COLOR ( 1L << 14 ) +#define FT_FACE_FLAG_VARIATION ( 1L << 15 ) +#define FT_FACE_FLAG_SVG ( 1L << 16 ) +#define FT_FACE_FLAG_SBIX ( 1L << 17 ) +#define FT_FACE_FLAG_SBIX_OVERLAY ( 1L << 18 ) + + + /************************************************************************** + * + * @section: + * font_testing_macros + * + */ + + /************************************************************************** + * + * @macro: + * FT_HAS_HORIZONTAL + * + * @description: + * A macro that returns true whenever a face object contains horizontal + * metrics (this is true for all font formats though). + * + * @also: + * @FT_HAS_VERTICAL can be used to check for vertical metrics. + * + */ +#define FT_HAS_HORIZONTAL( face ) \ + ( !!( (face)->face_flags & FT_FACE_FLAG_HORIZONTAL ) ) + + + /************************************************************************** + * + * @macro: + * FT_HAS_VERTICAL + * + * @description: + * A macro that returns true whenever a face object contains real + * vertical metrics (and not only synthesized ones). + * + */ +#define FT_HAS_VERTICAL( face ) \ + ( !!( (face)->face_flags & FT_FACE_FLAG_VERTICAL ) ) + + + /************************************************************************** + * + * @macro: + * FT_HAS_KERNING + * + * @description: + * A macro that returns true whenever a face object contains kerning data + * that can be accessed with @FT_Get_Kerning. + * + */ +#define FT_HAS_KERNING( face ) \ + ( !!( (face)->face_flags & FT_FACE_FLAG_KERNING ) ) + + + /************************************************************************** + * + * @macro: + * FT_IS_SCALABLE + * + * @description: + * A macro that returns true whenever a face object contains a scalable + * font face (true for TrueType, Type~1, Type~42, CID, OpenType/CFF, and + * PFR font formats). + * + */ +#define FT_IS_SCALABLE( face ) \ + ( !!( (face)->face_flags & FT_FACE_FLAG_SCALABLE ) ) + + + /************************************************************************** + * + * @macro: + * FT_IS_SFNT + * + * @description: + * A macro that returns true whenever a face object contains a font whose + * format is based on the SFNT storage scheme. This usually means: + * TrueType fonts, OpenType fonts, as well as SFNT-based embedded bitmap + * fonts. + * + * If this macro is true, all functions defined in @FT_SFNT_NAMES_H and + * @FT_TRUETYPE_TABLES_H are available. + * + */ +#define FT_IS_SFNT( face ) \ + ( !!( (face)->face_flags & FT_FACE_FLAG_SFNT ) ) + + + /************************************************************************** + * + * @macro: + * FT_IS_FIXED_WIDTH + * + * @description: + * A macro that returns true whenever a face object contains a font face + * that contains fixed-width (or 'monospace', 'fixed-pitch', etc.) + * glyphs. + * + */ +#define FT_IS_FIXED_WIDTH( face ) \ + ( !!( (face)->face_flags & FT_FACE_FLAG_FIXED_WIDTH ) ) + + + /************************************************************************** + * + * @macro: + * FT_HAS_FIXED_SIZES + * + * @description: + * A macro that returns true whenever a face object contains some + * embedded bitmaps. See the `available_sizes` field of the @FT_FaceRec + * structure. + * + */ +#define FT_HAS_FIXED_SIZES( face ) \ + ( !!( (face)->face_flags & FT_FACE_FLAG_FIXED_SIZES ) ) + + + /************************************************************************** + * + * @section: + * other_api_data + * + */ + + /************************************************************************** + * + * @macro: + * FT_HAS_FAST_GLYPHS + * + * @description: + * Deprecated. + * + */ +#define FT_HAS_FAST_GLYPHS( face ) 0 + + + /************************************************************************** + * + * @section: + * font_testing_macros + * + */ + + /************************************************************************** + * + * @macro: + * FT_HAS_GLYPH_NAMES + * + * @description: + * A macro that returns true whenever a face object contains some glyph + * names that can be accessed through @FT_Get_Glyph_Name. + * + */ +#define FT_HAS_GLYPH_NAMES( face ) \ + ( !!( (face)->face_flags & FT_FACE_FLAG_GLYPH_NAMES ) ) + + + /************************************************************************** + * + * @macro: + * FT_HAS_MULTIPLE_MASTERS + * + * @description: + * A macro that returns true whenever a face object contains some + * multiple masters. The functions provided by @FT_MULTIPLE_MASTERS_H + * are then available to choose the exact design you want. + * + */ +#define FT_HAS_MULTIPLE_MASTERS( face ) \ + ( !!( (face)->face_flags & FT_FACE_FLAG_MULTIPLE_MASTERS ) ) + + + /************************************************************************** + * + * @macro: + * FT_IS_NAMED_INSTANCE + * + * @description: + * A macro that returns true whenever a face object is a named instance + * of a GX or OpenType variation font. + * + * [Since 2.9] Changing the design coordinates with + * @FT_Set_Var_Design_Coordinates or @FT_Set_Var_Blend_Coordinates does + * not influence the return value of this macro (only + * @FT_Set_Named_Instance does that). + * + * @since: + * 2.7 + * + */ +#define FT_IS_NAMED_INSTANCE( face ) \ + ( !!( (face)->face_index & 0x7FFF0000L ) ) + + + /************************************************************************** + * + * @macro: + * FT_IS_VARIATION + * + * @description: + * A macro that returns true whenever a face object has been altered by + * @FT_Set_MM_Design_Coordinates, @FT_Set_Var_Design_Coordinates, + * @FT_Set_Var_Blend_Coordinates, or @FT_Set_MM_WeightVector. + * + * @since: + * 2.9 + * + */ +#define FT_IS_VARIATION( face ) \ + ( !!( (face)->face_flags & FT_FACE_FLAG_VARIATION ) ) + + + /************************************************************************** + * + * @macro: + * FT_IS_CID_KEYED + * + * @description: + * A macro that returns true whenever a face object contains a CID-keyed + * font. See the discussion of @FT_FACE_FLAG_CID_KEYED for more details. + * + * If this macro is true, all functions defined in @FT_CID_H are + * available. + * + */ +#define FT_IS_CID_KEYED( face ) \ + ( !!( (face)->face_flags & FT_FACE_FLAG_CID_KEYED ) ) + + + /************************************************************************** + * + * @macro: + * FT_IS_TRICKY + * + * @description: + * A macro that returns true whenever a face represents a 'tricky' font. + * See the discussion of @FT_FACE_FLAG_TRICKY for more details. + * + */ +#define FT_IS_TRICKY( face ) \ + ( !!( (face)->face_flags & FT_FACE_FLAG_TRICKY ) ) + + + /************************************************************************** + * + * @macro: + * FT_HAS_COLOR + * + * @description: + * A macro that returns true whenever a face object contains tables for + * color glyphs. + * + * @since: + * 2.5.1 + * + */ +#define FT_HAS_COLOR( face ) \ + ( !!( (face)->face_flags & FT_FACE_FLAG_COLOR ) ) + + + /************************************************************************** + * + * @macro: + * FT_HAS_SVG + * + * @description: + * A macro that returns true whenever a face object contains an 'SVG~' + * OpenType table. + * + * @since: + * 2.12 + */ +#define FT_HAS_SVG( face ) \ + ( !!( (face)->face_flags & FT_FACE_FLAG_SVG ) ) + + + /************************************************************************** + * + * @macro: + * FT_HAS_SBIX + * + * @description: + * A macro that returns true whenever a face object contains an 'sbix' + * OpenType table *and* outline glyphs. + * + * Currently, FreeType only supports bitmap glyphs in PNG format for this + * table (i.e., JPEG and TIFF formats are unsupported, as are + * Apple-specific formats not part of the OpenType specification). + * + * @note: + * For backward compatibility, a font with an 'sbix' table is treated as + * a bitmap-only face. Using @FT_Open_Face with + * @FT_PARAM_TAG_IGNORE_SBIX, an application can switch off 'sbix' + * handling so that the face is treated as an ordinary outline font with + * scalable outlines. + * + * Here is some pseudo code that roughly illustrates how to implement + * 'sbix' handling according to the OpenType specification. + * + * ``` + * if ( FT_HAS_SBIX( face ) ) + * { + * // open font as a scalable one without sbix handling + * FT_Face face2; + * FT_Parameter param = { FT_PARAM_TAG_IGNORE_SBIX, NULL }; + * FT_Open_Args args = { FT_OPEN_PARAMS | ..., + * ..., + * 1, ¶m }; + * + * + * FT_Open_Face( library, &args, 0, &face2 ); + * + * available_size` as necessary into + * `preferred_sizes`[*]> + * + * for ( i = 0; i < face->num_fixed_sizes; i++ ) + * { + * size = preferred_sizes[i].size; + * + * error = FT_Set_Pixel_Sizes( face, size, size ); + * + * + * // check whether we have a glyph in a bitmap strike + * error = FT_Load_Glyph( face, + * glyph_index, + * FT_LOAD_SBITS_ONLY | + * FT_LOAD_BITMAP_METRICS_ONLY ); + * if ( error == FT_Err_Invalid_Argument ) + * continue; + * else if ( error ) + * + * else + * break; + * } + * + * if ( i != face->num_fixed_sizes ) + * + * + * if ( i == face->num_fixed_sizes || + * FT_HAS_SBIX_OVERLAY( face ) ) + * + * } + * ``` + * + * [*] Assuming a target value of 400dpi and available strike sizes 100, + * 200, 300, and 400dpi, a possible order might be [400, 200, 300, 100]: + * scaling 200dpi to 400dpi usually gives better results than scaling + * 300dpi to 400dpi; it is also much faster. However, scaling 100dpi to + * 400dpi can yield a too pixelated result, thus the preference might be + * 300dpi over 100dpi. + * + * @since: + * 2.12 + */ +#define FT_HAS_SBIX( face ) \ + ( !!( (face)->face_flags & FT_FACE_FLAG_SBIX ) ) + + + /************************************************************************** + * + * @macro: + * FT_HAS_SBIX_OVERLAY + * + * @description: + * A macro that returns true whenever a face object contains an 'sbix' + * OpenType table with bit~1 in its `flags` field set, instructing the + * application to overlay the bitmap strike with the corresponding + * outline glyph. See @FT_HAS_SBIX for pseudo code how to use it. + * + * @since: + * 2.12 + */ +#define FT_HAS_SBIX_OVERLAY( face ) \ + ( !!( (face)->face_flags & FT_FACE_FLAG_SBIX_OVERLAY ) ) + + + /************************************************************************** + * + * @section: + * face_creation + * + */ + + /************************************************************************** + * + * @enum: + * FT_STYLE_FLAG_XXX + * + * @description: + * A list of bit flags to indicate the style of a given face. These are + * used in the `style_flags` field of @FT_FaceRec. + * + * @values: + * FT_STYLE_FLAG_ITALIC :: + * The face style is italic or oblique. + * + * FT_STYLE_FLAG_BOLD :: + * The face is bold. + * + * @note: + * The style information as provided by FreeType is very basic. More + * details are beyond the scope and should be done on a higher level (for + * example, by analyzing various fields of the 'OS/2' table in SFNT based + * fonts). + */ +#define FT_STYLE_FLAG_ITALIC ( 1 << 0 ) +#define FT_STYLE_FLAG_BOLD ( 1 << 1 ) + + + /************************************************************************** + * + * @section: + * other_api_data + * + */ + + /************************************************************************** + * + * @type: + * FT_Size_Internal + * + * @description: + * An opaque handle to an `FT_Size_InternalRec` structure, used to model + * private data of a given @FT_Size object. + */ + typedef struct FT_Size_InternalRec_* FT_Size_Internal; + + + /************************************************************************** + * + * @section: + * sizing_and_scaling + * + */ + + /************************************************************************** + * + * @struct: + * FT_Size_Metrics + * + * @description: + * The size metrics structure gives the metrics of a size object. + * + * @fields: + * x_ppem :: + * The width of the scaled EM square in pixels, hence the term 'ppem' + * (pixels per EM). It is also referred to as 'nominal width'. + * + * y_ppem :: + * The height of the scaled EM square in pixels, hence the term 'ppem' + * (pixels per EM). It is also referred to as 'nominal height'. + * + * x_scale :: + * A 16.16 fractional scaling value to convert horizontal metrics from + * font units to 26.6 fractional pixels. Only relevant for scalable + * font formats. + * + * y_scale :: + * A 16.16 fractional scaling value to convert vertical metrics from + * font units to 26.6 fractional pixels. Only relevant for scalable + * font formats. + * + * ascender :: + * The ascender in 26.6 fractional pixels, rounded up to an integer + * value. See @FT_FaceRec for the details. + * + * descender :: + * The descender in 26.6 fractional pixels, rounded down to an integer + * value. See @FT_FaceRec for the details. + * + * height :: + * The height in 26.6 fractional pixels, rounded to an integer value. + * See @FT_FaceRec for the details. + * + * max_advance :: + * The maximum advance width in 26.6 fractional pixels, rounded to an + * integer value. See @FT_FaceRec for the details. + * + * @note: + * The scaling values, if relevant, are determined first during a size + * changing operation. The remaining fields are then set by the driver. + * For scalable formats, they are usually set to scaled values of the + * corresponding fields in @FT_FaceRec. Some values like ascender or + * descender are rounded for historical reasons; more precise values (for + * outline fonts) can be derived by scaling the corresponding @FT_FaceRec + * values manually, with code similar to the following. + * + * ``` + * scaled_ascender = FT_MulFix( face->ascender, + * size_metrics->y_scale ); + * ``` + * + * Note that due to glyph hinting and the selected rendering mode these + * values are usually not exact; consequently, they must be treated as + * unreliable with an error margin of at least one pixel! + * + * Indeed, the only way to get the exact metrics is to render _all_ + * glyphs. As this would be a definite performance hit, it is up to + * client applications to perform such computations. + * + * The `FT_Size_Metrics` structure is valid for bitmap fonts also. + * + * + * **TrueType fonts with native bytecode hinting** + * + * All applications that handle TrueType fonts with native hinting must + * be aware that TTFs expect different rounding of vertical font + * dimensions. The application has to cater for this, especially if it + * wants to rely on a TTF's vertical data (for example, to properly align + * box characters vertically). + * + * Only the application knows _in advance_ that it is going to use native + * hinting for TTFs! FreeType, on the other hand, selects the hinting + * mode not at the time of creating an @FT_Size object but much later, + * namely while calling @FT_Load_Glyph. + * + * Here is some pseudo code that illustrates a possible solution. + * + * ``` + * font_format = FT_Get_Font_Format( face ); + * + * if ( !strcmp( font_format, "TrueType" ) && + * do_native_bytecode_hinting ) + * { + * ascender = ROUND( FT_MulFix( face->ascender, + * size_metrics->y_scale ) ); + * descender = ROUND( FT_MulFix( face->descender, + * size_metrics->y_scale ) ); + * } + * else + * { + * ascender = size_metrics->ascender; + * descender = size_metrics->descender; + * } + * + * height = size_metrics->height; + * max_advance = size_metrics->max_advance; + * ``` + */ + typedef struct FT_Size_Metrics_ + { + FT_UShort x_ppem; /* horizontal pixels per EM */ + FT_UShort y_ppem; /* vertical pixels per EM */ + + FT_Fixed x_scale; /* scaling values used to convert font */ + FT_Fixed y_scale; /* units to 26.6 fractional pixels */ + + FT_Pos ascender; /* ascender in 26.6 frac. pixels */ + FT_Pos descender; /* descender in 26.6 frac. pixels */ + FT_Pos height; /* text height in 26.6 frac. pixels */ + FT_Pos max_advance; /* max horizontal advance, in 26.6 pixels */ + + } FT_Size_Metrics; + + + /************************************************************************** + * + * @struct: + * FT_SizeRec + * + * @description: + * FreeType root size class structure. A size object models a face + * object at a given size. + * + * @fields: + * face :: + * Handle to the parent face object. + * + * generic :: + * A typeless pointer, unused by the FreeType library or any of its + * drivers. It can be used by client applications to link their own + * data to each size object. + * + * metrics :: + * Metrics for this size object. This field is read-only. + */ + typedef struct FT_SizeRec_ + { + FT_Face face; /* parent face object */ + FT_Generic generic; /* generic pointer for client uses */ + FT_Size_Metrics metrics; /* size metrics */ + FT_Size_Internal internal; + + } FT_SizeRec; + + + /************************************************************************** + * + * @section: + * other_api_data + * + */ + + /************************************************************************** + * + * @struct: + * FT_SubGlyph + * + * @description: + * The subglyph structure is an internal object used to describe + * subglyphs (for example, in the case of composites). + * + * @note: + * The subglyph implementation is not part of the high-level API, hence + * the forward structure declaration. + * + * You can however retrieve subglyph information with + * @FT_Get_SubGlyph_Info. + */ + typedef struct FT_SubGlyphRec_* FT_SubGlyph; + + + /************************************************************************** + * + * @type: + * FT_Slot_Internal + * + * @description: + * An opaque handle to an `FT_Slot_InternalRec` structure, used to model + * private data of a given @FT_GlyphSlot object. + */ + typedef struct FT_Slot_InternalRec_* FT_Slot_Internal; + + + /************************************************************************** + * + * @section: + * glyph_retrieval + * + */ + + /************************************************************************** + * + * @struct: + * FT_GlyphSlotRec + * + * @description: + * FreeType root glyph slot class structure. A glyph slot is a container + * where individual glyphs can be loaded, be they in outline or bitmap + * format. + * + * @fields: + * library :: + * A handle to the FreeType library instance this slot belongs to. + * + * face :: + * A handle to the parent face object. + * + * next :: + * In some cases (like some font tools), several glyph slots per face + * object can be a good thing. As this is rare, the glyph slots are + * listed through a direct, single-linked list using its `next` field. + * + * glyph_index :: + * [Since 2.10] The glyph index passed as an argument to @FT_Load_Glyph + * while initializing the glyph slot. + * + * generic :: + * A typeless pointer unused by the FreeType library or any of its + * drivers. It can be used by client applications to link their own + * data to each glyph slot object. + * + * metrics :: + * The metrics of the last loaded glyph in the slot. The returned + * values depend on the last load flags (see the @FT_Load_Glyph API + * function) and can be expressed either in 26.6 fractional pixels or + * font units. + * + * Note that even when the glyph image is transformed, the metrics are + * not. + * + * linearHoriAdvance :: + * The advance width of the unhinted glyph. Its value is expressed in + * 16.16 fractional pixels, unless @FT_LOAD_LINEAR_DESIGN is set when + * loading the glyph. This field can be important to perform correct + * WYSIWYG layout. Only relevant for scalable glyphs. + * + * linearVertAdvance :: + * The advance height of the unhinted glyph. Its value is expressed in + * 16.16 fractional pixels, unless @FT_LOAD_LINEAR_DESIGN is set when + * loading the glyph. This field can be important to perform correct + * WYSIWYG layout. Only relevant for scalable glyphs. + * + * advance :: + * This shorthand is, depending on @FT_LOAD_IGNORE_TRANSFORM, the + * transformed (hinted) advance width for the glyph, in 26.6 fractional + * pixel format. As specified with @FT_LOAD_VERTICAL_LAYOUT, it uses + * either the `horiAdvance` or the `vertAdvance` value of `metrics` + * field. + * + * format :: + * This field indicates the format of the image contained in the glyph + * slot. Typically @FT_GLYPH_FORMAT_BITMAP, @FT_GLYPH_FORMAT_OUTLINE, + * or @FT_GLYPH_FORMAT_COMPOSITE, but other values are possible. + * + * bitmap :: + * This field is used as a bitmap descriptor. Note that the address + * and content of the bitmap buffer can change between calls of + * @FT_Load_Glyph and a few other functions. + * + * bitmap_left :: + * The bitmap's left bearing expressed in integer pixels. + * + * bitmap_top :: + * The bitmap's top bearing expressed in integer pixels. This is the + * distance from the baseline to the top-most glyph scanline, upwards + * y~coordinates being **positive**. + * + * outline :: + * The outline descriptor for the current glyph image if its format is + * @FT_GLYPH_FORMAT_OUTLINE. Once a glyph is loaded, `outline` can be + * transformed, distorted, emboldened, etc. However, it must not be + * freed. + * + * [Since 2.10.1] If @FT_LOAD_NO_SCALE is set, outline coordinates of + * OpenType variation fonts for a selected instance are internally + * handled as 26.6 fractional font units but returned as (rounded) + * integers, as expected. To get unrounded font units, don't use + * @FT_LOAD_NO_SCALE but load the glyph with @FT_LOAD_NO_HINTING and + * scale it, using the font's `units_per_EM` value as the ppem. + * + * num_subglyphs :: + * The number of subglyphs in a composite glyph. This field is only + * valid for the composite glyph format that should normally only be + * loaded with the @FT_LOAD_NO_RECURSE flag. + * + * subglyphs :: + * An array of subglyph descriptors for composite glyphs. There are + * `num_subglyphs` elements in there. Currently internal to FreeType. + * + * control_data :: + * Certain font drivers can also return the control data for a given + * glyph image (e.g. TrueType bytecode, Type~1 charstrings, etc.). + * This field is a pointer to such data; it is currently internal to + * FreeType. + * + * control_len :: + * This is the length in bytes of the control data. Currently internal + * to FreeType. + * + * other :: + * Reserved. + * + * lsb_delta :: + * The difference between hinted and unhinted left side bearing while + * auto-hinting is active. Zero otherwise. + * + * rsb_delta :: + * The difference between hinted and unhinted right side bearing while + * auto-hinting is active. Zero otherwise. + * + * @note: + * If @FT_Load_Glyph is called with default flags (see @FT_LOAD_DEFAULT) + * the glyph image is loaded in the glyph slot in its native format + * (e.g., an outline glyph for TrueType and Type~1 formats). [Since 2.9] + * The prospective bitmap metrics are calculated according to + * @FT_LOAD_TARGET_XXX and other flags even for the outline glyph, even + * if @FT_LOAD_RENDER is not set. + * + * This image can later be converted into a bitmap by calling + * @FT_Render_Glyph. This function searches the current renderer for the + * native image's format, then invokes it. + * + * The renderer is in charge of transforming the native image through the + * slot's face transformation fields, then converting it into a bitmap + * that is returned in `slot->bitmap`. + * + * Note that `slot->bitmap_left` and `slot->bitmap_top` are also used to + * specify the position of the bitmap relative to the current pen + * position (e.g., coordinates (0,0) on the baseline). Of course, + * `slot->format` is also changed to @FT_GLYPH_FORMAT_BITMAP. + * + * Here is a small pseudo code fragment that shows how to use `lsb_delta` + * and `rsb_delta` to do fractional positioning of glyphs: + * + * ``` + * FT_GlyphSlot slot = face->glyph; + * FT_Pos origin_x = 0; + * + * + * for all glyphs do + * + * + * FT_Outline_Translate( slot->outline, origin_x & 63, 0 ); + * + * + * + * + * + * origin_x += slot->advance.x; + * origin_x += slot->lsb_delta - slot->rsb_delta; + * endfor + * ``` + * + * Here is another small pseudo code fragment that shows how to use + * `lsb_delta` and `rsb_delta` to improve integer positioning of glyphs: + * + * ``` + * FT_GlyphSlot slot = face->glyph; + * FT_Pos origin_x = 0; + * FT_Pos prev_rsb_delta = 0; + * + * + * for all glyphs do + * + * + * + * + * if ( prev_rsb_delta - slot->lsb_delta > 32 ) + * origin_x -= 64; + * else if ( prev_rsb_delta - slot->lsb_delta < -31 ) + * origin_x += 64; + * + * prev_rsb_delta = slot->rsb_delta; + * + * + * + * origin_x += slot->advance.x; + * endfor + * ``` + * + * If you use strong auto-hinting, you **must** apply these delta values! + * Otherwise you will experience far too large inter-glyph spacing at + * small rendering sizes in most cases. Note that it doesn't harm to use + * the above code for other hinting modes also, since the delta values + * are zero then. + */ + typedef struct FT_GlyphSlotRec_ + { + FT_Library library; + FT_Face face; + FT_GlyphSlot next; + FT_UInt glyph_index; /* new in 2.10; was reserved previously */ + FT_Generic generic; + + FT_Glyph_Metrics metrics; + FT_Fixed linearHoriAdvance; + FT_Fixed linearVertAdvance; + FT_Vector advance; + + FT_Glyph_Format format; + + FT_Bitmap bitmap; + FT_Int bitmap_left; + FT_Int bitmap_top; + + FT_Outline outline; + + FT_UInt num_subglyphs; + FT_SubGlyph subglyphs; + + void* control_data; + long control_len; + + FT_Pos lsb_delta; + FT_Pos rsb_delta; + + void* other; + + FT_Slot_Internal internal; + + } FT_GlyphSlotRec; + + + /*************************************************************************/ + /*************************************************************************/ + /* */ + /* F U N C T I O N S */ + /* */ + /*************************************************************************/ + /*************************************************************************/ + + + /************************************************************************** + * + * @section: + * library_setup + * + */ + + /************************************************************************** + * + * @function: + * FT_Init_FreeType + * + * @description: + * Initialize a new FreeType library object. The set of modules that are + * registered by this function is determined at build time. + * + * @output: + * alibrary :: + * A handle to a new library object. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * In case you want to provide your own memory allocating routines, use + * @FT_New_Library instead, followed by a call to @FT_Add_Default_Modules + * (or a series of calls to @FT_Add_Module) and + * @FT_Set_Default_Properties. + * + * See the documentation of @FT_Library and @FT_Face for multi-threading + * issues. + * + * If you need reference-counting (cf. @FT_Reference_Library), use + * @FT_New_Library and @FT_Done_Library. + * + * If compilation option `FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES` is + * set, this function reads the `FREETYPE_PROPERTIES` environment + * variable to control driver properties. See section @properties for + * more. + */ + FT_EXPORT( FT_Error ) + FT_Init_FreeType( FT_Library *alibrary ); + + + /************************************************************************** + * + * @function: + * FT_Done_FreeType + * + * @description: + * Destroy a given FreeType library object and all of its children, + * including resources, drivers, faces, sizes, etc. + * + * @input: + * library :: + * A handle to the target library object. + * + * @return: + * FreeType error code. 0~means success. + */ + FT_EXPORT( FT_Error ) + FT_Done_FreeType( FT_Library library ); + + + /************************************************************************** + * + * @section: + * face_creation + * + */ + + /************************************************************************** + * + * @enum: + * FT_OPEN_XXX + * + * @description: + * A list of bit field constants used within the `flags` field of the + * @FT_Open_Args structure. + * + * @values: + * FT_OPEN_MEMORY :: + * This is a memory-based stream. + * + * FT_OPEN_STREAM :: + * Copy the stream from the `stream` field. + * + * FT_OPEN_PATHNAME :: + * Create a new input stream from a C~path name. + * + * FT_OPEN_DRIVER :: + * Use the `driver` field. + * + * FT_OPEN_PARAMS :: + * Use the `num_params` and `params` fields. + * + * @note: + * The `FT_OPEN_MEMORY`, `FT_OPEN_STREAM`, and `FT_OPEN_PATHNAME` flags + * are mutually exclusive. + */ +#define FT_OPEN_MEMORY 0x1 +#define FT_OPEN_STREAM 0x2 +#define FT_OPEN_PATHNAME 0x4 +#define FT_OPEN_DRIVER 0x8 +#define FT_OPEN_PARAMS 0x10 + + + /* these constants are deprecated; use the corresponding `FT_OPEN_XXX` */ + /* values instead */ +#define ft_open_memory FT_OPEN_MEMORY +#define ft_open_stream FT_OPEN_STREAM +#define ft_open_pathname FT_OPEN_PATHNAME +#define ft_open_driver FT_OPEN_DRIVER +#define ft_open_params FT_OPEN_PARAMS + + + /************************************************************************** + * + * @struct: + * FT_Parameter + * + * @description: + * A simple structure to pass more or less generic parameters to + * @FT_Open_Face and @FT_Face_Properties. + * + * @fields: + * tag :: + * A four-byte identification tag. + * + * data :: + * A pointer to the parameter data. + * + * @note: + * The ID and function of parameters are driver-specific. See section + * @parameter_tags for more information. + */ + typedef struct FT_Parameter_ + { + FT_ULong tag; + FT_Pointer data; + + } FT_Parameter; + + + /************************************************************************** + * + * @struct: + * FT_Open_Args + * + * @description: + * A structure to indicate how to open a new font file or stream. A + * pointer to such a structure can be used as a parameter for the + * functions @FT_Open_Face and @FT_Attach_Stream. + * + * @fields: + * flags :: + * A set of bit flags indicating how to use the structure. + * + * memory_base :: + * The first byte of the file in memory. + * + * memory_size :: + * The size in bytes of the file in memory. + * + * pathname :: + * A pointer to an 8-bit file pathname, which must be a C~string (i.e., + * no null bytes except at the very end). The pointer is not owned by + * FreeType. + * + * stream :: + * A handle to a source stream object. + * + * driver :: + * This field is exclusively used by @FT_Open_Face; it simply specifies + * the font driver to use for opening the face. If set to `NULL`, + * FreeType tries to load the face with each one of the drivers in its + * list. + * + * num_params :: + * The number of extra parameters. + * + * params :: + * Extra parameters passed to the font driver when opening a new face. + * + * @note: + * The stream type is determined by the contents of `flags`: + * + * If the @FT_OPEN_MEMORY bit is set, assume that this is a memory file + * of `memory_size` bytes, located at `memory_address`. The data are not + * copied, and the client is responsible for releasing and destroying + * them _after_ the corresponding call to @FT_Done_Face. + * + * Otherwise, if the @FT_OPEN_STREAM bit is set, assume that a custom + * input stream `stream` is used. + * + * Otherwise, if the @FT_OPEN_PATHNAME bit is set, assume that this is a + * normal file and use `pathname` to open it. + * + * If none of the above bits are set or if multiple are set at the same + * time, the flags are invalid and @FT_Open_Face fails. + * + * If the @FT_OPEN_DRIVER bit is set, @FT_Open_Face only tries to open + * the file with the driver whose handler is in `driver`. + * + * If the @FT_OPEN_PARAMS bit is set, the parameters given by + * `num_params` and `params` is used. They are ignored otherwise. + * + * Ideally, both the `pathname` and `params` fields should be tagged as + * 'const'; this is missing for API backward compatibility. In other + * words, applications should treat them as read-only. + */ + typedef struct FT_Open_Args_ + { + FT_UInt flags; + const FT_Byte* memory_base; + FT_Long memory_size; + FT_String* pathname; + FT_Stream stream; + FT_Module driver; + FT_Int num_params; + FT_Parameter* params; + + } FT_Open_Args; + + + /************************************************************************** + * + * @function: + * FT_New_Face + * + * @description: + * Call @FT_Open_Face to open a font by its pathname. + * + * @inout: + * library :: + * A handle to the library resource. + * + * @input: + * pathname :: + * A path to the font file. + * + * face_index :: + * See @FT_Open_Face for a detailed description of this parameter. + * + * @output: + * aface :: + * A handle to a new face object. If `face_index` is greater than or + * equal to zero, it must be non-`NULL`. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The `pathname` string should be recognizable as such by a standard + * `fopen` call on your system; in particular, this means that `pathname` + * must not contain null bytes. If that is not sufficient to address all + * file name possibilities (for example, to handle wide character file + * names on Windows in UTF-16 encoding) you might use @FT_Open_Face to + * pass a memory array or a stream object instead. + * + * Use @FT_Done_Face to destroy the created @FT_Face object (along with + * its slot and sizes). + */ + FT_EXPORT( FT_Error ) + FT_New_Face( FT_Library library, + const char* filepathname, + FT_Long face_index, + FT_Face *aface ); + + + /************************************************************************** + * + * @function: + * FT_New_Memory_Face + * + * @description: + * Call @FT_Open_Face to open a font that has been loaded into memory. + * + * @inout: + * library :: + * A handle to the library resource. + * + * @input: + * file_base :: + * A pointer to the beginning of the font data. + * + * file_size :: + * The size of the memory chunk used by the font data. + * + * face_index :: + * See @FT_Open_Face for a detailed description of this parameter. + * + * @output: + * aface :: + * A handle to a new face object. If `face_index` is greater than or + * equal to zero, it must be non-`NULL`. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * You must not deallocate the memory before calling @FT_Done_Face. + */ + FT_EXPORT( FT_Error ) + FT_New_Memory_Face( FT_Library library, + const FT_Byte* file_base, + FT_Long file_size, + FT_Long face_index, + FT_Face *aface ); + + + /************************************************************************** + * + * @function: + * FT_Open_Face + * + * @description: + * Create a face object from a given resource described by @FT_Open_Args. + * + * @inout: + * library :: + * A handle to the library resource. + * + * @input: + * args :: + * A pointer to an `FT_Open_Args` structure that must be filled by the + * caller. + * + * face_index :: + * This field holds two different values. Bits 0-15 are the index of + * the face in the font file (starting with value~0). Set it to~0 if + * there is only one face in the font file. + * + * [Since 2.6.1] Bits 16-30 are relevant to GX and OpenType variation + * fonts only, specifying the named instance index for the current face + * index (starting with value~1; value~0 makes FreeType ignore named + * instances). For non-variation fonts, bits 16-30 are ignored. + * Assuming that you want to access the third named instance in face~4, + * `face_index` should be set to 0x00030004. If you want to access + * face~4 without variation handling, simply set `face_index` to + * value~4. + * + * `FT_Open_Face` and its siblings can be used to quickly check whether + * the font format of a given font resource is supported by FreeType. + * In general, if the `face_index` argument is negative, the function's + * return value is~0 if the font format is recognized, or non-zero + * otherwise. The function allocates a more or less empty face handle + * in `*aface` (if `aface` isn't `NULL`); the only two useful fields in + * this special case are `face->num_faces` and `face->style_flags`. + * For any negative value of `face_index`, `face->num_faces` gives the + * number of faces within the font file. For the negative value + * '-(N+1)' (with 'N' a non-negative 16-bit value), bits 16-30 in + * `face->style_flags` give the number of named instances in face 'N' + * if we have a variation font (or zero otherwise). After examination, + * the returned @FT_Face structure should be deallocated with a call to + * @FT_Done_Face. + * + * @output: + * aface :: + * A handle to a new face object. If `face_index` is greater than or + * equal to zero, it must be non-`NULL`. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * Unlike FreeType 1.x, this function automatically creates a glyph slot + * for the face object that can be accessed directly through + * `face->glyph`. + * + * Each new face object created with this function also owns a default + * @FT_Size object, accessible as `face->size`. + * + * One @FT_Library instance can have multiple face objects, that is, + * @FT_Open_Face and its siblings can be called multiple times using the + * same `library` argument. + * + * See the discussion of reference counters in the description of + * @FT_Reference_Face. + * + * If `FT_OPEN_STREAM` is set in `args->flags`, the stream in + * `args->stream` is automatically closed before this function returns + * any error (including `FT_Err_Invalid_Argument`). + * + * @example: + * To loop over all faces, use code similar to the following snippet + * (omitting the error handling). + * + * ``` + * ... + * FT_Face face; + * FT_Long i, num_faces; + * + * + * error = FT_Open_Face( library, args, -1, &face ); + * if ( error ) { ... } + * + * num_faces = face->num_faces; + * FT_Done_Face( face ); + * + * for ( i = 0; i < num_faces; i++ ) + * { + * ... + * error = FT_Open_Face( library, args, i, &face ); + * ... + * FT_Done_Face( face ); + * ... + * } + * ``` + * + * To loop over all valid values for `face_index`, use something similar + * to the following snippet, again without error handling. The code + * accesses all faces immediately (thus only a single call of + * `FT_Open_Face` within the do-loop), with and without named instances. + * + * ``` + * ... + * FT_Face face; + * + * FT_Long num_faces = 0; + * FT_Long num_instances = 0; + * + * FT_Long face_idx = 0; + * FT_Long instance_idx = 0; + * + * + * do + * { + * FT_Long id = ( instance_idx << 16 ) + face_idx; + * + * + * error = FT_Open_Face( library, args, id, &face ); + * if ( error ) { ... } + * + * num_faces = face->num_faces; + * num_instances = face->style_flags >> 16; + * + * ... + * + * FT_Done_Face( face ); + * + * if ( instance_idx < num_instances ) + * instance_idx++; + * else + * { + * face_idx++; + * instance_idx = 0; + * } + * + * } while ( face_idx < num_faces ) + * ``` + */ + FT_EXPORT( FT_Error ) + FT_Open_Face( FT_Library library, + const FT_Open_Args* args, + FT_Long face_index, + FT_Face *aface ); + + + /************************************************************************** + * + * @function: + * FT_Attach_File + * + * @description: + * Call @FT_Attach_Stream to attach a file. + * + * @inout: + * face :: + * The target face object. + * + * @input: + * filepathname :: + * The pathname. + * + * @return: + * FreeType error code. 0~means success. + */ + FT_EXPORT( FT_Error ) + FT_Attach_File( FT_Face face, + const char* filepathname ); + + + /************************************************************************** + * + * @function: + * FT_Attach_Stream + * + * @description: + * 'Attach' data to a face object. Normally, this is used to read + * additional information for the face object. For example, you can + * attach an AFM file that comes with a Type~1 font to get the kerning + * values and other metrics. + * + * @inout: + * face :: + * The target face object. + * + * @input: + * parameters :: + * A pointer to @FT_Open_Args that must be filled by the caller. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The meaning of the 'attach' (i.e., what really happens when the new + * file is read) is not fixed by FreeType itself. It really depends on + * the font format (and thus the font driver). + * + * Client applications are expected to know what they are doing when + * invoking this function. Most drivers simply do not implement file or + * stream attachments. + */ + FT_EXPORT( FT_Error ) + FT_Attach_Stream( FT_Face face, + const FT_Open_Args* parameters ); + + + /************************************************************************** + * + * @function: + * FT_Reference_Face + * + * @description: + * A counter gets initialized to~1 at the time an @FT_Face structure is + * created. This function increments the counter. @FT_Done_Face then + * only destroys a face if the counter is~1, otherwise it simply + * decrements the counter. + * + * This function helps in managing life-cycles of structures that + * reference @FT_Face objects. + * + * @input: + * face :: + * A handle to a target face object. + * + * @return: + * FreeType error code. 0~means success. + * + * @since: + * 2.4.2 + * + */ + FT_EXPORT( FT_Error ) + FT_Reference_Face( FT_Face face ); + + + /************************************************************************** + * + * @function: + * FT_Done_Face + * + * @description: + * Discard a given face object, as well as all of its child slots and + * sizes. + * + * @input: + * face :: + * A handle to a target face object. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * See the discussion of reference counters in the description of + * @FT_Reference_Face. + */ + FT_EXPORT( FT_Error ) + FT_Done_Face( FT_Face face ); + + + /************************************************************************** + * + * @section: + * sizing_and_scaling + * + */ + + /************************************************************************** + * + * @function: + * FT_Select_Size + * + * @description: + * Select a bitmap strike. To be more precise, this function sets the + * scaling factors of the active @FT_Size object in a face so that + * bitmaps from this particular strike are taken by @FT_Load_Glyph and + * friends. + * + * @inout: + * face :: + * A handle to a target face object. + * + * @input: + * strike_index :: + * The index of the bitmap strike in the `available_sizes` field of + * @FT_FaceRec structure. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * For bitmaps embedded in outline fonts it is common that only a subset + * of the available glyphs at a given ppem value is available. FreeType + * silently uses outlines if there is no bitmap for a given glyph index. + * + * For GX and OpenType variation fonts, a bitmap strike makes sense only + * if the default instance is active (that is, no glyph variation takes + * place); otherwise, FreeType simply ignores bitmap strikes. The same + * is true for all named instances that are different from the default + * instance. + * + * Don't use this function if you are using the FreeType cache API. + */ + FT_EXPORT( FT_Error ) + FT_Select_Size( FT_Face face, + FT_Int strike_index ); + + + /************************************************************************** + * + * @enum: + * FT_Size_Request_Type + * + * @description: + * An enumeration type that lists the supported size request types, i.e., + * what input size (in font units) maps to the requested output size (in + * pixels, as computed from the arguments of @FT_Size_Request). + * + * @values: + * FT_SIZE_REQUEST_TYPE_NOMINAL :: + * The nominal size. The `units_per_EM` field of @FT_FaceRec is used + * to determine both scaling values. + * + * This is the standard scaling found in most applications. In + * particular, use this size request type for TrueType fonts if they + * provide optical scaling or something similar. Note, however, that + * `units_per_EM` is a rather abstract value which bears no relation to + * the actual size of the glyphs in a font. + * + * FT_SIZE_REQUEST_TYPE_REAL_DIM :: + * The real dimension. The sum of the `ascender` and (minus of) the + * `descender` fields of @FT_FaceRec is used to determine both scaling + * values. + * + * FT_SIZE_REQUEST_TYPE_BBOX :: + * The font bounding box. The width and height of the `bbox` field of + * @FT_FaceRec are used to determine the horizontal and vertical + * scaling value, respectively. + * + * FT_SIZE_REQUEST_TYPE_CELL :: + * The `max_advance_width` field of @FT_FaceRec is used to determine + * the horizontal scaling value; the vertical scaling value is + * determined the same way as @FT_SIZE_REQUEST_TYPE_REAL_DIM does. + * Finally, both scaling values are set to the smaller one. This type + * is useful if you want to specify the font size for, say, a window of + * a given dimension and 80x24 cells. + * + * FT_SIZE_REQUEST_TYPE_SCALES :: + * Specify the scaling values directly. + * + * @note: + * The above descriptions only apply to scalable formats. For bitmap + * formats, the behaviour is up to the driver. + * + * See the note section of @FT_Size_Metrics if you wonder how size + * requesting relates to scaling values. + */ + typedef enum FT_Size_Request_Type_ + { + FT_SIZE_REQUEST_TYPE_NOMINAL, + FT_SIZE_REQUEST_TYPE_REAL_DIM, + FT_SIZE_REQUEST_TYPE_BBOX, + FT_SIZE_REQUEST_TYPE_CELL, + FT_SIZE_REQUEST_TYPE_SCALES, + + FT_SIZE_REQUEST_TYPE_MAX + + } FT_Size_Request_Type; + + + /************************************************************************** + * + * @struct: + * FT_Size_RequestRec + * + * @description: + * A structure to model a size request. + * + * @fields: + * type :: + * See @FT_Size_Request_Type. + * + * width :: + * The desired width, given as a 26.6 fractional point value (with 72pt + * = 1in). + * + * height :: + * The desired height, given as a 26.6 fractional point value (with + * 72pt = 1in). + * + * horiResolution :: + * The horizontal resolution (dpi, i.e., pixels per inch). If set to + * zero, `width` is treated as a 26.6 fractional **pixel** value, which + * gets internally rounded to an integer. + * + * vertResolution :: + * The vertical resolution (dpi, i.e., pixels per inch). If set to + * zero, `height` is treated as a 26.6 fractional **pixel** value, + * which gets internally rounded to an integer. + * + * @note: + * If `width` is zero, the horizontal scaling value is set equal to the + * vertical scaling value, and vice versa. + * + * If `type` is `FT_SIZE_REQUEST_TYPE_SCALES`, `width` and `height` are + * interpreted directly as 16.16 fractional scaling values, without any + * further modification, and both `horiResolution` and `vertResolution` + * are ignored. + */ + typedef struct FT_Size_RequestRec_ + { + FT_Size_Request_Type type; + FT_Long width; + FT_Long height; + FT_UInt horiResolution; + FT_UInt vertResolution; + + } FT_Size_RequestRec; + + + /************************************************************************** + * + * @struct: + * FT_Size_Request + * + * @description: + * A handle to a size request structure. + */ + typedef struct FT_Size_RequestRec_ *FT_Size_Request; + + + /************************************************************************** + * + * @function: + * FT_Request_Size + * + * @description: + * Resize the scale of the active @FT_Size object in a face. + * + * @inout: + * face :: + * A handle to a target face object. + * + * @input: + * req :: + * A pointer to a @FT_Size_RequestRec. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * Although drivers may select the bitmap strike matching the request, + * you should not rely on this if you intend to select a particular + * bitmap strike. Use @FT_Select_Size instead in that case. + * + * The relation between the requested size and the resulting glyph size + * is dependent entirely on how the size is defined in the source face. + * The font designer chooses the final size of each glyph relative to + * this size. For more information refer to + * 'https://www.freetype.org/freetype2/docs/glyphs/glyphs-2.html'. + * + * Contrary to @FT_Set_Char_Size, this function doesn't have special code + * to normalize zero-valued widths, heights, or resolutions, which are + * treated as @FT_LOAD_NO_SCALE. + * + * Don't use this function if you are using the FreeType cache API. + */ + FT_EXPORT( FT_Error ) + FT_Request_Size( FT_Face face, + FT_Size_Request req ); + + + /************************************************************************** + * + * @function: + * FT_Set_Char_Size + * + * @description: + * Call @FT_Request_Size to request the nominal size (in points). + * + * @inout: + * face :: + * A handle to a target face object. + * + * @input: + * char_width :: + * The nominal width, in 26.6 fractional points. + * + * char_height :: + * The nominal height, in 26.6 fractional points. + * + * horz_resolution :: + * The horizontal resolution in dpi. + * + * vert_resolution :: + * The vertical resolution in dpi. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * While this function allows fractional points as input values, the + * resulting ppem value for the given resolution is always rounded to the + * nearest integer. + * + * If either the character width or height is zero, it is set equal to + * the other value. + * + * If either the horizontal or vertical resolution is zero, it is set + * equal to the other value. + * + * A character width or height smaller than 1pt is set to 1pt; if both + * resolution values are zero, they are set to 72dpi. + * + * Don't use this function if you are using the FreeType cache API. + */ + FT_EXPORT( FT_Error ) + FT_Set_Char_Size( FT_Face face, + FT_F26Dot6 char_width, + FT_F26Dot6 char_height, + FT_UInt horz_resolution, + FT_UInt vert_resolution ); + + + /************************************************************************** + * + * @function: + * FT_Set_Pixel_Sizes + * + * @description: + * Call @FT_Request_Size to request the nominal size (in pixels). + * + * @inout: + * face :: + * A handle to the target face object. + * + * @input: + * pixel_width :: + * The nominal width, in pixels. + * + * pixel_height :: + * The nominal height, in pixels. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * You should not rely on the resulting glyphs matching or being + * constrained to this pixel size. Refer to @FT_Request_Size to + * understand how requested sizes relate to actual sizes. + * + * Don't use this function if you are using the FreeType cache API. + */ + FT_EXPORT( FT_Error ) + FT_Set_Pixel_Sizes( FT_Face face, + FT_UInt pixel_width, + FT_UInt pixel_height ); + + + /************************************************************************** + * + * @section: + * glyph_retrieval + * + */ + + /************************************************************************** + * + * @function: + * FT_Load_Glyph + * + * @description: + * Load a glyph into the glyph slot of a face object. + * + * @inout: + * face :: + * A handle to the target face object where the glyph is loaded. + * + * @input: + * glyph_index :: + * The index of the glyph in the font file. For CID-keyed fonts + * (either in PS or in CFF format) this argument specifies the CID + * value. + * + * load_flags :: + * A flag indicating what to load for this glyph. The @FT_LOAD_XXX + * flags can be used to control the glyph loading process (e.g., + * whether the outline should be scaled, whether to load bitmaps or + * not, whether to hint the outline, etc). + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * For proper scaling and hinting, the active @FT_Size object owned by + * the face has to be meaningfully initialized by calling + * @FT_Set_Char_Size before this function, for example. The loaded + * glyph may be transformed. See @FT_Set_Transform for the details. + * + * For subsetted CID-keyed fonts, `FT_Err_Invalid_Argument` is returned + * for invalid CID values (that is, for CID values that don't have a + * corresponding glyph in the font). See the discussion of the + * @FT_FACE_FLAG_CID_KEYED flag for more details. + * + * If you receive `FT_Err_Glyph_Too_Big`, try getting the glyph outline + * at EM size, then scale it manually and fill it as a graphics + * operation. + */ + FT_EXPORT( FT_Error ) + FT_Load_Glyph( FT_Face face, + FT_UInt glyph_index, + FT_Int32 load_flags ); + + + /************************************************************************** + * + * @section: + * character_mapping + * + */ + + /************************************************************************** + * + * @function: + * FT_Load_Char + * + * @description: + * Load a glyph into the glyph slot of a face object, accessed by its + * character code. + * + * @inout: + * face :: + * A handle to a target face object where the glyph is loaded. + * + * @input: + * char_code :: + * The glyph's character code, according to the current charmap used in + * the face. + * + * load_flags :: + * A flag indicating what to load for this glyph. The @FT_LOAD_XXX + * constants can be used to control the glyph loading process (e.g., + * whether the outline should be scaled, whether to load bitmaps or + * not, whether to hint the outline, etc). + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function simply calls @FT_Get_Char_Index and @FT_Load_Glyph. + * + * Many fonts contain glyphs that can't be loaded by this function since + * its glyph indices are not listed in any of the font's charmaps. + * + * If no active cmap is set up (i.e., `face->charmap` is zero), the call + * to @FT_Get_Char_Index is omitted, and the function behaves identically + * to @FT_Load_Glyph. + */ + FT_EXPORT( FT_Error ) + FT_Load_Char( FT_Face face, + FT_ULong char_code, + FT_Int32 load_flags ); + + + /************************************************************************** + * + * @section: + * glyph_retrieval + * + */ + + /************************************************************************** + * + * @enum: + * FT_LOAD_XXX + * + * @description: + * A list of bit field constants for @FT_Load_Glyph to indicate what kind + * of operations to perform during glyph loading. + * + * @values: + * FT_LOAD_DEFAULT :: + * Corresponding to~0, this value is used as the default glyph load + * operation. In this case, the following happens: + * + * 1. FreeType looks for a bitmap for the glyph corresponding to the + * face's current size. If one is found, the function returns. The + * bitmap data can be accessed from the glyph slot (see note below). + * + * 2. If no embedded bitmap is searched for or found, FreeType looks + * for a scalable outline. If one is found, it is loaded from the font + * file, scaled to device pixels, then 'hinted' to the pixel grid in + * order to optimize it. The outline data can be accessed from the + * glyph slot (see note below). + * + * Note that by default the glyph loader doesn't render outlines into + * bitmaps. The following flags are used to modify this default + * behaviour to more specific and useful cases. + * + * FT_LOAD_NO_SCALE :: + * Don't scale the loaded outline glyph but keep it in font units. + * This flag is also assumed if @FT_Size owned by the face was not + * properly initialized. + * + * This flag implies @FT_LOAD_NO_HINTING and @FT_LOAD_NO_BITMAP, and + * unsets @FT_LOAD_RENDER. + * + * If the font is 'tricky' (see @FT_FACE_FLAG_TRICKY for more), using + * `FT_LOAD_NO_SCALE` usually yields meaningless outlines because the + * subglyphs must be scaled and positioned with hinting instructions. + * This can be solved by loading the font without `FT_LOAD_NO_SCALE` + * and setting the character size to `font->units_per_EM`. + * + * FT_LOAD_NO_HINTING :: + * Disable hinting. This generally generates 'blurrier' bitmap glyphs + * when the glyphs are rendered in any of the anti-aliased modes. See + * also the note below. + * + * This flag is implied by @FT_LOAD_NO_SCALE. + * + * FT_LOAD_RENDER :: + * Call @FT_Render_Glyph after the glyph is loaded. By default, the + * glyph is rendered in @FT_RENDER_MODE_NORMAL mode. This can be + * overridden by @FT_LOAD_TARGET_XXX or @FT_LOAD_MONOCHROME. + * + * This flag is unset by @FT_LOAD_NO_SCALE. + * + * FT_LOAD_NO_BITMAP :: + * Ignore bitmap strikes when loading. Bitmap-only fonts ignore this + * flag. + * + * @FT_LOAD_NO_SCALE always sets this flag. + * + * FT_LOAD_SBITS_ONLY :: + * [Since 2.12] This is the opposite of @FT_LOAD_NO_BITMAP, more or + * less: @FT_Load_Glyph returns `FT_Err_Invalid_Argument` if the face + * contains a bitmap strike for the given size (or the strike selected + * by @FT_Select_Size) but there is no glyph in the strike. + * + * Note that this load flag was part of FreeType since version 2.0.6 + * but previously tagged as internal. + * + * FT_LOAD_VERTICAL_LAYOUT :: + * Load the glyph for vertical text layout. In particular, the + * `advance` value in the @FT_GlyphSlotRec structure is set to the + * `vertAdvance` value of the `metrics` field. + * + * In case @FT_HAS_VERTICAL doesn't return true, you shouldn't use this + * flag currently. Reason is that in this case vertical metrics get + * synthesized, and those values are not always consistent across + * various font formats. + * + * FT_LOAD_FORCE_AUTOHINT :: + * Prefer the auto-hinter over the font's native hinter. See also the + * note below. + * + * FT_LOAD_PEDANTIC :: + * Make the font driver perform pedantic verifications during glyph + * loading and hinting. This is mostly used to detect broken glyphs in + * fonts. By default, FreeType tries to handle broken fonts also. + * + * In particular, errors from the TrueType bytecode engine are not + * passed to the application if this flag is not set; this might result + * in partially hinted or distorted glyphs in case a glyph's bytecode + * is buggy. + * + * FT_LOAD_NO_RECURSE :: + * Don't load composite glyphs recursively. Instead, the font driver + * fills the `num_subglyph` and `subglyphs` values of the glyph slot; + * it also sets `glyph->format` to @FT_GLYPH_FORMAT_COMPOSITE. The + * description of subglyphs can then be accessed with + * @FT_Get_SubGlyph_Info. + * + * Don't use this flag for retrieving metrics information since some + * font drivers only return rudimentary data. + * + * This flag implies @FT_LOAD_NO_SCALE and @FT_LOAD_IGNORE_TRANSFORM. + * + * FT_LOAD_IGNORE_TRANSFORM :: + * Ignore the transform matrix set by @FT_Set_Transform. + * + * FT_LOAD_MONOCHROME :: + * This flag is used with @FT_LOAD_RENDER to indicate that you want to + * render an outline glyph to a 1-bit monochrome bitmap glyph, with + * 8~pixels packed into each byte of the bitmap data. + * + * Note that this has no effect on the hinting algorithm used. You + * should rather use @FT_LOAD_TARGET_MONO so that the + * monochrome-optimized hinting algorithm is used. + * + * FT_LOAD_LINEAR_DESIGN :: + * Keep `linearHoriAdvance` and `linearVertAdvance` fields of + * @FT_GlyphSlotRec in font units. See @FT_GlyphSlotRec for details. + * + * FT_LOAD_NO_AUTOHINT :: + * Disable the auto-hinter. See also the note below. + * + * FT_LOAD_COLOR :: + * Load colored glyphs. FreeType searches in the following order; + * there are slight differences depending on the font format. + * + * [Since 2.5] Load embedded color bitmap images (provided + * @FT_LOAD_NO_BITMAP is not set). The resulting color bitmaps, if + * available, have the @FT_PIXEL_MODE_BGRA format, with pre-multiplied + * color channels. If the flag is not set and color bitmaps are found, + * they are converted to 256-level gray bitmaps, using the + * @FT_PIXEL_MODE_GRAY format. + * + * [Since 2.12] If the glyph index maps to an entry in the face's + * 'SVG~' table, load the associated SVG document from this table and + * set the `format` field of @FT_GlyphSlotRec to @FT_GLYPH_FORMAT_SVG + * ([since 2.13.1] provided @FT_LOAD_NO_SVG is not set). Note that + * FreeType itself can't render SVG documents; however, the library + * provides hooks to seamlessly integrate an external renderer. See + * sections @ot_svg_driver and @svg_fonts for more. + * + * [Since 2.10, experimental] If the glyph index maps to an entry in + * the face's 'COLR' table with a 'CPAL' palette table (as defined in + * the OpenType specification), make @FT_Render_Glyph provide a default + * blending of the color glyph layers associated with the glyph index, + * using the same bitmap format as embedded color bitmap images. This + * is mainly for convenience and works only for glyphs in 'COLR' v0 + * tables (or glyphs in 'COLR' v1 tables that exclusively use v0 + * features). For full control of color layers use + * @FT_Get_Color_Glyph_Layer and FreeType's color functions like + * @FT_Palette_Select instead of setting @FT_LOAD_COLOR for rendering + * so that the client application can handle blending by itself. + * + * FT_LOAD_NO_SVG :: + * [Since 2.13.1] Ignore SVG glyph data when loading. + * + * FT_LOAD_COMPUTE_METRICS :: + * [Since 2.6.1] Compute glyph metrics from the glyph data, without the + * use of bundled metrics tables (for example, the 'hdmx' table in + * TrueType fonts). This flag is mainly used by font validating or + * font editing applications, which need to ignore, verify, or edit + * those tables. + * + * Currently, this flag is only implemented for TrueType fonts. + * + * FT_LOAD_BITMAP_METRICS_ONLY :: + * [Since 2.7.1] Request loading of the metrics and bitmap image + * information of a (possibly embedded) bitmap glyph without allocating + * or copying the bitmap image data itself. No effect if the target + * glyph is not a bitmap image. + * + * This flag unsets @FT_LOAD_RENDER. + * + * FT_LOAD_CROP_BITMAP :: + * Ignored. Deprecated. + * + * FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH :: + * Ignored. Deprecated. + * + * @note: + * By default, hinting is enabled and the font's native hinter (see + * @FT_FACE_FLAG_HINTER) is preferred over the auto-hinter. You can + * disable hinting by setting @FT_LOAD_NO_HINTING or change the + * precedence by setting @FT_LOAD_FORCE_AUTOHINT. You can also set + * @FT_LOAD_NO_AUTOHINT in case you don't want the auto-hinter to be used + * at all. + * + * See the description of @FT_FACE_FLAG_TRICKY for a special exception + * (affecting only a handful of Asian fonts). + * + * Besides deciding which hinter to use, you can also decide which + * hinting algorithm to use. See @FT_LOAD_TARGET_XXX for details. + * + * Note that the auto-hinter needs a valid Unicode cmap (either a native + * one or synthesized by FreeType) for producing correct results. If a + * font provides an incorrect mapping (for example, assigning the + * character code U+005A, LATIN CAPITAL LETTER~Z, to a glyph depicting a + * mathematical integral sign), the auto-hinter might produce useless + * results. + * + */ +#define FT_LOAD_DEFAULT 0x0 +#define FT_LOAD_NO_SCALE ( 1L << 0 ) +#define FT_LOAD_NO_HINTING ( 1L << 1 ) +#define FT_LOAD_RENDER ( 1L << 2 ) +#define FT_LOAD_NO_BITMAP ( 1L << 3 ) +#define FT_LOAD_VERTICAL_LAYOUT ( 1L << 4 ) +#define FT_LOAD_FORCE_AUTOHINT ( 1L << 5 ) +#define FT_LOAD_CROP_BITMAP ( 1L << 6 ) +#define FT_LOAD_PEDANTIC ( 1L << 7 ) +#define FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH ( 1L << 9 ) +#define FT_LOAD_NO_RECURSE ( 1L << 10 ) +#define FT_LOAD_IGNORE_TRANSFORM ( 1L << 11 ) +#define FT_LOAD_MONOCHROME ( 1L << 12 ) +#define FT_LOAD_LINEAR_DESIGN ( 1L << 13 ) +#define FT_LOAD_SBITS_ONLY ( 1L << 14 ) +#define FT_LOAD_NO_AUTOHINT ( 1L << 15 ) + /* Bits 16-19 are used by `FT_LOAD_TARGET_` */ +#define FT_LOAD_COLOR ( 1L << 20 ) +#define FT_LOAD_COMPUTE_METRICS ( 1L << 21 ) +#define FT_LOAD_BITMAP_METRICS_ONLY ( 1L << 22 ) +#define FT_LOAD_NO_SVG ( 1L << 24 ) + + /* */ + + /* used internally only by certain font drivers */ +#define FT_LOAD_ADVANCE_ONLY ( 1L << 8 ) +#define FT_LOAD_SVG_ONLY ( 1L << 23 ) + + + /************************************************************************** + * + * @enum: + * FT_LOAD_TARGET_XXX + * + * @description: + * A list of values to select a specific hinting algorithm for the + * hinter. You should OR one of these values to your `load_flags` when + * calling @FT_Load_Glyph. + * + * Note that a font's native hinters may ignore the hinting algorithm you + * have specified (e.g., the TrueType bytecode interpreter). You can set + * @FT_LOAD_FORCE_AUTOHINT to ensure that the auto-hinter is used. + * + * @values: + * FT_LOAD_TARGET_NORMAL :: + * The default hinting algorithm, optimized for standard gray-level + * rendering. For monochrome output, use @FT_LOAD_TARGET_MONO instead. + * + * FT_LOAD_TARGET_LIGHT :: + * A lighter hinting algorithm for gray-level modes. Many generated + * glyphs are fuzzier but better resemble their original shape. This + * is achieved by snapping glyphs to the pixel grid only vertically + * (Y-axis), as is done by FreeType's new CFF engine or Microsoft's + * ClearType font renderer. This preserves inter-glyph spacing in + * horizontal text. The snapping is done either by the native font + * driver, if the driver itself and the font support it, or by the + * auto-hinter. + * + * Advance widths are rounded to integer values; however, using the + * `lsb_delta` and `rsb_delta` fields of @FT_GlyphSlotRec, it is + * possible to get fractional advance widths for subpixel positioning + * (which is recommended to use). + * + * If configuration option `AF_CONFIG_OPTION_TT_SIZE_METRICS` is + * active, TrueType-like metrics are used to make this mode behave + * similarly as in unpatched FreeType versions between 2.4.6 and 2.7.1 + * (inclusive). + * + * FT_LOAD_TARGET_MONO :: + * Strong hinting algorithm that should only be used for monochrome + * output. The result is probably unpleasant if the glyph is rendered + * in non-monochrome modes. + * + * Note that for outline fonts only the TrueType font driver has proper + * monochrome hinting support, provided the TTFs contain hints for B/W + * rendering (which most fonts no longer provide). If these conditions + * are not met it is very likely that you get ugly results at smaller + * sizes. + * + * FT_LOAD_TARGET_LCD :: + * A variant of @FT_LOAD_TARGET_LIGHT optimized for horizontally + * decimated LCD displays. + * + * FT_LOAD_TARGET_LCD_V :: + * A variant of @FT_LOAD_TARGET_NORMAL optimized for vertically + * decimated LCD displays. + * + * @note: + * You should use only _one_ of the `FT_LOAD_TARGET_XXX` values in your + * `load_flags`. They can't be ORed. + * + * If @FT_LOAD_RENDER is also set, the glyph is rendered in the + * corresponding mode (i.e., the mode that matches the used algorithm + * best). An exception is `FT_LOAD_TARGET_MONO` since it implies + * @FT_LOAD_MONOCHROME. + * + * You can use a hinting algorithm that doesn't correspond to the same + * rendering mode. As an example, it is possible to use the 'light' + * hinting algorithm and have the results rendered in horizontal LCD + * pixel mode, with code like + * + * ``` + * FT_Load_Glyph( face, glyph_index, + * load_flags | FT_LOAD_TARGET_LIGHT ); + * + * FT_Render_Glyph( face->glyph, FT_RENDER_MODE_LCD ); + * ``` + * + * In general, you should stick with one rendering mode. For example, + * switching between @FT_LOAD_TARGET_NORMAL and @FT_LOAD_TARGET_MONO + * enforces a lot of recomputation for TrueType fonts, which is slow. + * Another reason is caching: Selecting a different mode usually causes + * changes in both the outlines and the rasterized bitmaps; it is thus + * necessary to empty the cache after a mode switch to avoid false hits. + * + */ +#define FT_LOAD_TARGET_( x ) ( FT_STATIC_CAST( FT_Int32, (x) & 15 ) << 16 ) + +#define FT_LOAD_TARGET_NORMAL FT_LOAD_TARGET_( FT_RENDER_MODE_NORMAL ) +#define FT_LOAD_TARGET_LIGHT FT_LOAD_TARGET_( FT_RENDER_MODE_LIGHT ) +#define FT_LOAD_TARGET_MONO FT_LOAD_TARGET_( FT_RENDER_MODE_MONO ) +#define FT_LOAD_TARGET_LCD FT_LOAD_TARGET_( FT_RENDER_MODE_LCD ) +#define FT_LOAD_TARGET_LCD_V FT_LOAD_TARGET_( FT_RENDER_MODE_LCD_V ) + + + /************************************************************************** + * + * @macro: + * FT_LOAD_TARGET_MODE + * + * @description: + * Return the @FT_Render_Mode corresponding to a given + * @FT_LOAD_TARGET_XXX value. + * + */ +#define FT_LOAD_TARGET_MODE( x ) \ + FT_STATIC_CAST( FT_Render_Mode, ( (x) >> 16 ) & 15 ) + + + /************************************************************************** + * + * @section: + * sizing_and_scaling + * + */ + + /************************************************************************** + * + * @function: + * FT_Set_Transform + * + * @description: + * Set the transformation that is applied to glyph images when they are + * loaded into a glyph slot through @FT_Load_Glyph. + * + * @inout: + * face :: + * A handle to the source face object. + * + * @input: + * matrix :: + * A pointer to the transformation's 2x2 matrix. Use `NULL` for the + * identity matrix. + * delta :: + * A pointer to the translation vector. Use `NULL` for the null + * vector. + * + * @note: + * This function is provided as a convenience, but keep in mind that + * @FT_Matrix coefficients are only 16.16 fixed-point values, which can + * limit the accuracy of the results. Using floating-point computations + * to perform the transform directly in client code instead will always + * yield better numbers. + * + * The transformation is only applied to scalable image formats after the + * glyph has been loaded. It means that hinting is unaltered by the + * transformation and is performed on the character size given in the + * last call to @FT_Set_Char_Size or @FT_Set_Pixel_Sizes. + * + * Note that this also transforms the `face.glyph.advance` field, but + * **not** the values in `face.glyph.metrics`. + */ + FT_EXPORT( void ) + FT_Set_Transform( FT_Face face, + FT_Matrix* matrix, + FT_Vector* delta ); + + + /************************************************************************** + * + * @function: + * FT_Get_Transform + * + * @description: + * Return the transformation that is applied to glyph images when they + * are loaded into a glyph slot through @FT_Load_Glyph. See + * @FT_Set_Transform for more details. + * + * @input: + * face :: + * A handle to the source face object. + * + * @output: + * matrix :: + * A pointer to a transformation's 2x2 matrix. Set this to NULL if you + * are not interested in the value. + * + * delta :: + * A pointer to a translation vector. Set this to NULL if you are not + * interested in the value. + * + * @since: + * 2.11 + * + */ + FT_EXPORT( void ) + FT_Get_Transform( FT_Face face, + FT_Matrix* matrix, + FT_Vector* delta ); + + + /************************************************************************** + * + * @section: + * glyph_retrieval + * + */ + + /************************************************************************** + * + * @enum: + * FT_Render_Mode + * + * @description: + * Render modes supported by FreeType~2. Each mode corresponds to a + * specific type of scanline conversion performed on the outline. + * + * For bitmap fonts and embedded bitmaps the `bitmap->pixel_mode` field + * in the @FT_GlyphSlotRec structure gives the format of the returned + * bitmap. + * + * All modes except @FT_RENDER_MODE_MONO use 256 levels of opacity, + * indicating pixel coverage. Use linear alpha blending and gamma + * correction to correctly render non-monochrome glyph bitmaps onto a + * surface; see @FT_Render_Glyph. + * + * The @FT_RENDER_MODE_SDF is a special render mode that uses up to 256 + * distance values, indicating the signed distance from the grid position + * to the nearest outline. + * + * @values: + * FT_RENDER_MODE_NORMAL :: + * Default render mode; it corresponds to 8-bit anti-aliased bitmaps. + * + * FT_RENDER_MODE_LIGHT :: + * This is equivalent to @FT_RENDER_MODE_NORMAL. It is only defined as + * a separate value because render modes are also used indirectly to + * define hinting algorithm selectors. See @FT_LOAD_TARGET_XXX for + * details. + * + * FT_RENDER_MODE_MONO :: + * This mode corresponds to 1-bit bitmaps (with 2~levels of opacity). + * + * FT_RENDER_MODE_LCD :: + * This mode corresponds to horizontal RGB and BGR subpixel displays + * like LCD screens. It produces 8-bit bitmaps that are 3~times the + * width of the original glyph outline in pixels, and which use the + * @FT_PIXEL_MODE_LCD mode. + * + * FT_RENDER_MODE_LCD_V :: + * This mode corresponds to vertical RGB and BGR subpixel displays + * (like PDA screens, rotated LCD displays, etc.). It produces 8-bit + * bitmaps that are 3~times the height of the original glyph outline in + * pixels and use the @FT_PIXEL_MODE_LCD_V mode. + * + * FT_RENDER_MODE_SDF :: + * The positive (unsigned) 8-bit bitmap values can be converted to the + * single-channel signed distance field (SDF) by subtracting 128, with + * the positive and negative results corresponding to the inside and + * the outside of a glyph contour, respectively. The distance units are + * arbitrarily determined by an adjustable @spread property. + * + * @note: + * The selected render mode only affects scalable vector glyphs of a font. + * Embedded bitmaps often have a different pixel mode like + * @FT_PIXEL_MODE_MONO. You can use @FT_Bitmap_Convert to transform them + * into 8-bit pixmaps. + * + */ + typedef enum FT_Render_Mode_ + { + FT_RENDER_MODE_NORMAL = 0, + FT_RENDER_MODE_LIGHT, + FT_RENDER_MODE_MONO, + FT_RENDER_MODE_LCD, + FT_RENDER_MODE_LCD_V, + FT_RENDER_MODE_SDF, + + FT_RENDER_MODE_MAX + + } FT_Render_Mode; + + + /* these constants are deprecated; use the corresponding */ + /* `FT_Render_Mode` values instead */ +#define ft_render_mode_normal FT_RENDER_MODE_NORMAL +#define ft_render_mode_mono FT_RENDER_MODE_MONO + + + /************************************************************************** + * + * @function: + * FT_Render_Glyph + * + * @description: + * Convert a given glyph image to a bitmap. It does so by inspecting the + * glyph image format, finding the relevant renderer, and invoking it. + * + * @inout: + * slot :: + * A handle to the glyph slot containing the image to convert. + * + * @input: + * render_mode :: + * The render mode used to render the glyph image into a bitmap. See + * @FT_Render_Mode for a list of possible values. + * + * If @FT_RENDER_MODE_NORMAL is used, a previous call of @FT_Load_Glyph + * with flag @FT_LOAD_COLOR makes `FT_Render_Glyph` provide a default + * blending of colored glyph layers associated with the current glyph + * slot (provided the font contains such layers) instead of rendering + * the glyph slot's outline. This is an experimental feature; see + * @FT_LOAD_COLOR for more information. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * When FreeType outputs a bitmap of a glyph, it really outputs an alpha + * coverage map. If a pixel is completely covered by a filled-in + * outline, the bitmap contains 0xFF at that pixel, meaning that + * 0xFF/0xFF fraction of that pixel is covered, meaning the pixel is 100% + * black (or 0% bright). If a pixel is only 50% covered (value 0x80), + * the pixel is made 50% black (50% bright or a middle shade of grey). + * 0% covered means 0% black (100% bright or white). + * + * On high-DPI screens like on smartphones and tablets, the pixels are so + * small that their chance of being completely covered and therefore + * completely black are fairly good. On the low-DPI screens, however, + * the situation is different. The pixels are too large for most of the + * details of a glyph and shades of gray are the norm rather than the + * exception. + * + * This is relevant because all our screens have a second problem: they + * are not linear. 1~+~1 is not~2. Twice the value does not result in + * twice the brightness. When a pixel is only 50% covered, the coverage + * map says 50% black, and this translates to a pixel value of 128 when + * you use 8~bits per channel (0-255). However, this does not translate + * to 50% brightness for that pixel on our sRGB and gamma~2.2 screens. + * Due to their non-linearity, they dwell longer in the darks and only a + * pixel value of about 186 results in 50% brightness -- 128 ends up too + * dark on both bright and dark backgrounds. The net result is that dark + * text looks burnt-out, pixely and blotchy on bright background, bright + * text too frail on dark backgrounds, and colored text on colored + * background (for example, red on green) seems to have dark halos or + * 'dirt' around it. The situation is especially ugly for diagonal stems + * like in 'w' glyph shapes where the quality of FreeType's anti-aliasing + * depends on the correct display of grays. On high-DPI screens where + * smaller, fully black pixels reign supreme, this doesn't matter, but on + * our low-DPI screens with all the gray shades, it does. 0% and 100% + * brightness are the same things in linear and non-linear space, just + * all the shades in-between aren't. + * + * The blending function for placing text over a background is + * + * ``` + * dst = alpha * src + (1 - alpha) * dst , + * ``` + * + * which is known as the OVER operator. + * + * To correctly composite an anti-aliased pixel of a glyph onto a + * surface, + * + * 1. take the foreground and background colors (e.g., in sRGB space) + * and apply gamma to get them in a linear space, + * + * 2. use OVER to blend the two linear colors using the glyph pixel + * as the alpha value (remember, the glyph bitmap is an alpha coverage + * bitmap), and + * + * 3. apply inverse gamma to the blended pixel and write it back to + * the image. + * + * Internal testing at Adobe found that a target inverse gamma of~1.8 for + * step~3 gives good results across a wide range of displays with an sRGB + * gamma curve or a similar one. + * + * This process can cost performance. There is an approximation that + * does not need to know about the background color; see + * https://bel.fi/alankila/lcd/ and + * https://bel.fi/alankila/lcd/alpcor.html for details. + * + * **ATTENTION**: Linear blending is even more important when dealing + * with subpixel-rendered glyphs to prevent color-fringing! A + * subpixel-rendered glyph must first be filtered with a filter that + * gives equal weight to the three color primaries and does not exceed a + * sum of 0x100, see section @lcd_rendering. Then the only difference to + * gray linear blending is that subpixel-rendered linear blending is done + * 3~times per pixel: red foreground subpixel to red background subpixel + * and so on for green and blue. + */ + FT_EXPORT( FT_Error ) + FT_Render_Glyph( FT_GlyphSlot slot, + FT_Render_Mode render_mode ); + + + /************************************************************************** + * + * @enum: + * FT_Kerning_Mode + * + * @description: + * An enumeration to specify the format of kerning values returned by + * @FT_Get_Kerning. + * + * @values: + * FT_KERNING_DEFAULT :: + * Return grid-fitted kerning distances in 26.6 fractional pixels. + * + * FT_KERNING_UNFITTED :: + * Return un-grid-fitted kerning distances in 26.6 fractional pixels. + * + * FT_KERNING_UNSCALED :: + * Return the kerning vector in original font units. + * + * @note: + * `FT_KERNING_DEFAULT` returns full pixel values; it also makes FreeType + * heuristically scale down kerning distances at small ppem values so + * that they don't become too big. + * + * Both `FT_KERNING_DEFAULT` and `FT_KERNING_UNFITTED` use the current + * horizontal scaling factor (as set e.g. with @FT_Set_Char_Size) to + * convert font units to pixels. + */ + typedef enum FT_Kerning_Mode_ + { + FT_KERNING_DEFAULT = 0, + FT_KERNING_UNFITTED, + FT_KERNING_UNSCALED + + } FT_Kerning_Mode; + + + /* these constants are deprecated; use the corresponding */ + /* `FT_Kerning_Mode` values instead */ +#define ft_kerning_default FT_KERNING_DEFAULT +#define ft_kerning_unfitted FT_KERNING_UNFITTED +#define ft_kerning_unscaled FT_KERNING_UNSCALED + + + /************************************************************************** + * + * @function: + * FT_Get_Kerning + * + * @description: + * Return the kerning vector between two glyphs of the same face. + * + * @input: + * face :: + * A handle to a source face object. + * + * left_glyph :: + * The index of the left glyph in the kern pair. + * + * right_glyph :: + * The index of the right glyph in the kern pair. + * + * kern_mode :: + * See @FT_Kerning_Mode for more information. Determines the scale and + * dimension of the returned kerning vector. + * + * @output: + * akerning :: + * The kerning vector. This is either in font units, fractional pixels + * (26.6 format), or pixels for scalable formats, and in pixels for + * fixed-sizes formats. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * Only horizontal layouts (left-to-right & right-to-left) are supported + * by this method. Other layouts, or more sophisticated kernings, are + * out of the scope of this API function -- they can be implemented + * through format-specific interfaces. + * + * Note that, for TrueType fonts only, this can extract data from both + * the 'kern' table and the basic, pair-wise kerning feature from the + * GPOS table (with `TT_CONFIG_OPTION_GPOS_KERNING` enabled), though + * FreeType does not support the more advanced GPOS layout features; use + * a library like HarfBuzz for those instead. If a font has both a + * 'kern' table and kern features of a GPOS table, the 'kern' table will + * be used. + * + * Also note for right-to-left scripts, the functionality may differ for + * fonts with GPOS tables vs. 'kern' tables. For GPOS, right-to-left + * fonts typically use both a placement offset and an advance for pair + * positioning, which this API does not support, so it would output + * kerning values of zero; though if the right-to-left font used only + * advances in GPOS pair positioning, then this API could output kerning + * values for it, but it would use `left_glyph` to mean the first glyph + * for that case. Whereas 'kern' tables are always advance-only and + * always store the left glyph first. + * + * Use @FT_HAS_KERNING to find out whether a font has data that can be + * extracted with `FT_Get_Kerning`. + */ + FT_EXPORT( FT_Error ) + FT_Get_Kerning( FT_Face face, + FT_UInt left_glyph, + FT_UInt right_glyph, + FT_UInt kern_mode, + FT_Vector *akerning ); + + + /************************************************************************** + * + * @function: + * FT_Get_Track_Kerning + * + * @description: + * Return the track kerning for a given face object at a given size. + * + * @input: + * face :: + * A handle to a source face object. + * + * point_size :: + * The point size in 16.16 fractional points. + * + * degree :: + * The degree of tightness. Increasingly negative values represent + * tighter track kerning, while increasingly positive values represent + * looser track kerning. Value zero means no track kerning. + * + * @output: + * akerning :: + * The kerning in 16.16 fractional points, to be uniformly applied + * between all glyphs. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * Currently, only the Type~1 font driver supports track kerning, using + * data from AFM files (if attached with @FT_Attach_File or + * @FT_Attach_Stream). + * + * Only very few AFM files come with track kerning data; please refer to + * Adobe's AFM specification for more details. + */ + FT_EXPORT( FT_Error ) + FT_Get_Track_Kerning( FT_Face face, + FT_Fixed point_size, + FT_Int degree, + FT_Fixed* akerning ); + + + /************************************************************************** + * + * @section: + * character_mapping + * + */ + + /************************************************************************** + * + * @function: + * FT_Select_Charmap + * + * @description: + * Select a given charmap by its encoding tag (as listed in + * `freetype.h`). + * + * @inout: + * face :: + * A handle to the source face object. + * + * @input: + * encoding :: + * A handle to the selected encoding. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function returns an error if no charmap in the face corresponds + * to the encoding queried here. + * + * Because many fonts contain more than a single cmap for Unicode + * encoding, this function has some special code to select the one that + * covers Unicode best ('best' in the sense that a UCS-4 cmap is + * preferred to a UCS-2 cmap). It is thus preferable to @FT_Set_Charmap + * in this case. + */ + FT_EXPORT( FT_Error ) + FT_Select_Charmap( FT_Face face, + FT_Encoding encoding ); + + + /************************************************************************** + * + * @function: + * FT_Set_Charmap + * + * @description: + * Select a given charmap for character code to glyph index mapping. + * + * @inout: + * face :: + * A handle to the source face object. + * + * @input: + * charmap :: + * A handle to the selected charmap. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function returns an error if the charmap is not part of the face + * (i.e., if it is not listed in the `face->charmaps` table). + * + * It also fails if an OpenType type~14 charmap is selected (which + * doesn't map character codes to glyph indices at all). + */ + FT_EXPORT( FT_Error ) + FT_Set_Charmap( FT_Face face, + FT_CharMap charmap ); + + + /************************************************************************** + * + * @function: + * FT_Get_Charmap_Index + * + * @description: + * Retrieve index of a given charmap. + * + * @input: + * charmap :: + * A handle to a charmap. + * + * @return: + * The index into the array of character maps within the face to which + * `charmap` belongs. If an error occurs, -1 is returned. + * + */ + FT_EXPORT( FT_Int ) + FT_Get_Charmap_Index( FT_CharMap charmap ); + + + /************************************************************************** + * + * @function: + * FT_Get_Char_Index + * + * @description: + * Return the glyph index of a given character code. This function uses + * the currently selected charmap to do the mapping. + * + * @input: + * face :: + * A handle to the source face object. + * + * charcode :: + * The character code. + * + * @return: + * The glyph index. 0~means 'undefined character code'. + * + * @note: + * If you use FreeType to manipulate the contents of font files directly, + * be aware that the glyph index returned by this function doesn't always + * correspond to the internal indices used within the file. This is done + * to ensure that value~0 always corresponds to the 'missing glyph'. If + * the first glyph is not named '.notdef', then for Type~1 and Type~42 + * fonts, '.notdef' will be moved into the glyph ID~0 position, and + * whatever was there will be moved to the position '.notdef' had. For + * Type~1 fonts, if there is no '.notdef' glyph at all, then one will be + * created at index~0 and whatever was there will be moved to the last + * index -- Type~42 fonts are considered invalid under this condition. + */ + FT_EXPORT( FT_UInt ) + FT_Get_Char_Index( FT_Face face, + FT_ULong charcode ); + + + /************************************************************************** + * + * @function: + * FT_Get_First_Char + * + * @description: + * Return the first character code in the current charmap of a given + * face, together with its corresponding glyph index. + * + * @input: + * face :: + * A handle to the source face object. + * + * @output: + * agindex :: + * Glyph index of first character code. 0~if charmap is empty. + * + * @return: + * The charmap's first character code. + * + * @note: + * You should use this function together with @FT_Get_Next_Char to parse + * all character codes available in a given charmap. The code should + * look like this: + * + * ``` + * FT_ULong charcode; + * FT_UInt gindex; + * + * + * charcode = FT_Get_First_Char( face, &gindex ); + * while ( gindex != 0 ) + * { + * ... do something with (charcode,gindex) pair ... + * + * charcode = FT_Get_Next_Char( face, charcode, &gindex ); + * } + * ``` + * + * Be aware that character codes can have values up to 0xFFFFFFFF; this + * might happen for non-Unicode or malformed cmaps. However, even with + * regular Unicode encoding, so-called 'last resort fonts' (using SFNT + * cmap format 13, see function @FT_Get_CMap_Format) normally have + * entries for all Unicode characters up to 0x1FFFFF, which can cause *a + * lot* of iterations. + * + * Note that `*agindex` is set to~0 if the charmap is empty. The result + * itself can be~0 in two cases: if the charmap is empty or if the + * value~0 is the first valid character code. + */ + FT_EXPORT( FT_ULong ) + FT_Get_First_Char( FT_Face face, + FT_UInt *agindex ); + + + /************************************************************************** + * + * @function: + * FT_Get_Next_Char + * + * @description: + * Return the next character code in the current charmap of a given face + * following the value `char_code`, as well as the corresponding glyph + * index. + * + * @input: + * face :: + * A handle to the source face object. + * + * char_code :: + * The starting character code. + * + * @output: + * agindex :: + * Glyph index of next character code. 0~if charmap is empty. + * + * @return: + * The charmap's next character code. + * + * @note: + * You should use this function with @FT_Get_First_Char to walk over all + * character codes available in a given charmap. See the note for that + * function for a simple code example. + * + * Note that `*agindex` is set to~0 when there are no more codes in the + * charmap. + */ + FT_EXPORT( FT_ULong ) + FT_Get_Next_Char( FT_Face face, + FT_ULong char_code, + FT_UInt *agindex ); + + + /************************************************************************** + * + * @section: + * face_creation + * + */ + + /************************************************************************** + * + * @function: + * FT_Face_Properties + * + * @description: + * Set or override certain (library or module-wide) properties on a + * face-by-face basis. Useful for finer-grained control and avoiding + * locks on shared structures (threads can modify their own faces as they + * see fit). + * + * Contrary to @FT_Property_Set, this function uses @FT_Parameter so that + * you can pass multiple properties to the target face in one call. Note + * that only a subset of the available properties can be controlled. + * + * * @FT_PARAM_TAG_STEM_DARKENING (stem darkening, corresponding to the + * property `no-stem-darkening` provided by the 'autofit', 'cff', + * 'type1', and 't1cid' modules; see @no-stem-darkening). + * + * * @FT_PARAM_TAG_LCD_FILTER_WEIGHTS (LCD filter weights, corresponding + * to function @FT_Library_SetLcdFilterWeights). + * + * * @FT_PARAM_TAG_RANDOM_SEED (seed value for the CFF, Type~1, and CID + * 'random' operator, corresponding to the `random-seed` property + * provided by the 'cff', 'type1', and 't1cid' modules; see + * @random-seed). + * + * Pass `NULL` as `data` in @FT_Parameter for a given tag to reset the + * option and use the library or module default again. + * + * @input: + * face :: + * A handle to the source face object. + * + * num_properties :: + * The number of properties that follow. + * + * properties :: + * A handle to an @FT_Parameter array with `num_properties` elements. + * + * @return: + * FreeType error code. 0~means success. + * + * @example: + * Here is an example that sets three properties. You must define + * `FT_CONFIG_OPTION_SUBPIXEL_RENDERING` to make the LCD filter examples + * work. + * + * ``` + * FT_Parameter property1; + * FT_Bool darken_stems = 1; + * + * FT_Parameter property2; + * FT_LcdFiveTapFilter custom_weight = + * { 0x11, 0x44, 0x56, 0x44, 0x11 }; + * + * FT_Parameter property3; + * FT_Int32 random_seed = 314159265; + * + * FT_Parameter properties[3] = { property1, + * property2, + * property3 }; + * + * + * property1.tag = FT_PARAM_TAG_STEM_DARKENING; + * property1.data = &darken_stems; + * + * property2.tag = FT_PARAM_TAG_LCD_FILTER_WEIGHTS; + * property2.data = custom_weight; + * + * property3.tag = FT_PARAM_TAG_RANDOM_SEED; + * property3.data = &random_seed; + * + * FT_Face_Properties( face, 3, properties ); + * ``` + * + * The next example resets a single property to its default value. + * + * ``` + * FT_Parameter property; + * + * + * property.tag = FT_PARAM_TAG_LCD_FILTER_WEIGHTS; + * property.data = NULL; + * + * FT_Face_Properties( face, 1, &property ); + * ``` + * + * @since: + * 2.8 + * + */ + FT_EXPORT( FT_Error ) + FT_Face_Properties( FT_Face face, + FT_UInt num_properties, + FT_Parameter* properties ); + + + /************************************************************************** + * + * @section: + * information_retrieval + * + */ + + /************************************************************************** + * + * @function: + * FT_Get_Name_Index + * + * @description: + * Return the glyph index of a given glyph name. This only works + * for those faces where @FT_HAS_GLYPH_NAMES returns true. + * + * @input: + * face :: + * A handle to the source face object. + * + * glyph_name :: + * The glyph name. + * + * @return: + * The glyph index. 0~means 'undefined character code'. + * + * @note: + * Acceptable glyph names might come from the [Adobe Glyph + * List](https://github.com/adobe-type-tools/agl-aglfn). See + * @FT_Get_Glyph_Name for the inverse functionality. + * + * This function has limited capabilities if the config macro + * `FT_CONFIG_OPTION_POSTSCRIPT_NAMES` is not defined in `ftoption.h`: + * It then works only for fonts that actually embed glyph names (which + * many recent OpenType fonts do not). + */ + FT_EXPORT( FT_UInt ) + FT_Get_Name_Index( FT_Face face, + const FT_String* glyph_name ); + + + /************************************************************************** + * + * @function: + * FT_Get_Glyph_Name + * + * @description: + * Retrieve the ASCII name of a given glyph in a face. This only works + * for those faces where @FT_HAS_GLYPH_NAMES returns true. + * + * @input: + * face :: + * A handle to a source face object. + * + * glyph_index :: + * The glyph index. + * + * buffer_max :: + * The maximum number of bytes available in the buffer. + * + * @output: + * buffer :: + * A pointer to a target buffer where the name is copied to. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * An error is returned if the face doesn't provide glyph names or if the + * glyph index is invalid. In all cases of failure, the first byte of + * `buffer` is set to~0 to indicate an empty name. + * + * The glyph name is truncated to fit within the buffer if it is too + * long. The returned string is always zero-terminated. + * + * Be aware that FreeType reorders glyph indices internally so that glyph + * index~0 always corresponds to the 'missing glyph' (called '.notdef'). + * + * This function has limited capabilities if the config macro + * `FT_CONFIG_OPTION_POSTSCRIPT_NAMES` is not defined in `ftoption.h`: + * It then works only for fonts that actually embed glyph names (which + * many recent OpenType fonts do not). + */ + FT_EXPORT( FT_Error ) + FT_Get_Glyph_Name( FT_Face face, + FT_UInt glyph_index, + FT_Pointer buffer, + FT_UInt buffer_max ); + + + /************************************************************************** + * + * @function: + * FT_Get_Postscript_Name + * + * @description: + * Retrieve the ASCII PostScript name of a given face, if available. + * This only works with PostScript, TrueType, and OpenType fonts. + * + * @input: + * face :: + * A handle to the source face object. + * + * @return: + * A pointer to the face's PostScript name. `NULL` if unavailable. + * + * @note: + * The returned pointer is owned by the face and is destroyed with it. + * + * For variation fonts, this string changes if you select a different + * instance, and you have to call `FT_Get_PostScript_Name` again to + * retrieve it. FreeType follows Adobe TechNote #5902, 'Generating + * PostScript Names for Fonts Using OpenType Font Variations'. + * + * https://download.macromedia.com/pub/developer/opentype/tech-notes/5902.AdobePSNameGeneration.html + * + * [Since 2.9] Special PostScript names for named instances are only + * returned if the named instance is set with @FT_Set_Named_Instance (and + * the font has corresponding entries in its 'fvar' table or is the + * default named instance). If @FT_IS_VARIATION returns true, the + * algorithmically derived PostScript name is provided, not looking up + * special entries for named instances. + */ + FT_EXPORT( const char* ) + FT_Get_Postscript_Name( FT_Face face ); + + + /************************************************************************** + * + * @enum: + * FT_SUBGLYPH_FLAG_XXX + * + * @description: + * A list of constants describing subglyphs. Please refer to the 'glyf' + * table description in the OpenType specification for the meaning of the + * various flags (which get synthesized for non-OpenType subglyphs). + * + * https://docs.microsoft.com/en-us/typography/opentype/spec/glyf#composite-glyph-description + * + * @values: + * FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS :: + * FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES :: + * FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID :: + * FT_SUBGLYPH_FLAG_SCALE :: + * FT_SUBGLYPH_FLAG_XY_SCALE :: + * FT_SUBGLYPH_FLAG_2X2 :: + * FT_SUBGLYPH_FLAG_USE_MY_METRICS :: + * + */ +#define FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS 1 +#define FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES 2 +#define FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID 4 +#define FT_SUBGLYPH_FLAG_SCALE 8 +#define FT_SUBGLYPH_FLAG_XY_SCALE 0x40 +#define FT_SUBGLYPH_FLAG_2X2 0x80 +#define FT_SUBGLYPH_FLAG_USE_MY_METRICS 0x200 + + + /************************************************************************** + * + * @function: + * FT_Get_SubGlyph_Info + * + * @description: + * Retrieve a description of a given subglyph. Only use it if + * `glyph->format` is @FT_GLYPH_FORMAT_COMPOSITE; an error is returned + * otherwise. + * + * @input: + * glyph :: + * The source glyph slot. + * + * sub_index :: + * The index of the subglyph. Must be less than + * `glyph->num_subglyphs`. + * + * @output: + * p_index :: + * The glyph index of the subglyph. + * + * p_flags :: + * The subglyph flags, see @FT_SUBGLYPH_FLAG_XXX. + * + * p_arg1 :: + * The subglyph's first argument (if any). + * + * p_arg2 :: + * The subglyph's second argument (if any). + * + * p_transform :: + * The subglyph transformation (if any). + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The values of `*p_arg1`, `*p_arg2`, and `*p_transform` must be + * interpreted depending on the flags returned in `*p_flags`. See the + * OpenType specification for details. + * + * https://docs.microsoft.com/en-us/typography/opentype/spec/glyf#composite-glyph-description + * + */ + FT_EXPORT( FT_Error ) + FT_Get_SubGlyph_Info( FT_GlyphSlot glyph, + FT_UInt sub_index, + FT_Int *p_index, + FT_UInt *p_flags, + FT_Int *p_arg1, + FT_Int *p_arg2, + FT_Matrix *p_transform ); + + + /************************************************************************** + * + * @enum: + * FT_FSTYPE_XXX + * + * @description: + * A list of bit flags used in the `fsType` field of the OS/2 table in a + * TrueType or OpenType font and the `FSType` entry in a PostScript font. + * These bit flags are returned by @FT_Get_FSType_Flags; they inform + * client applications of embedding and subsetting restrictions + * associated with a font. + * + * See + * https://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/FontPolicies.pdf + * for more details. + * + * @values: + * FT_FSTYPE_INSTALLABLE_EMBEDDING :: + * Fonts with no fsType bit set may be embedded and permanently + * installed on the remote system by an application. + * + * FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING :: + * Fonts that have only this bit set must not be modified, embedded or + * exchanged in any manner without first obtaining permission of the + * font software copyright owner. + * + * FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING :: + * The font may be embedded and temporarily loaded on the remote + * system. Documents containing Preview & Print fonts must be opened + * 'read-only'; no edits can be applied to the document. + * + * FT_FSTYPE_EDITABLE_EMBEDDING :: + * The font may be embedded but must only be installed temporarily on + * other systems. In contrast to Preview & Print fonts, documents + * containing editable fonts may be opened for reading, editing is + * permitted, and changes may be saved. + * + * FT_FSTYPE_NO_SUBSETTING :: + * The font may not be subsetted prior to embedding. + * + * FT_FSTYPE_BITMAP_EMBEDDING_ONLY :: + * Only bitmaps contained in the font may be embedded; no outline data + * may be embedded. If there are no bitmaps available in the font, + * then the font is unembeddable. + * + * @note: + * The flags are ORed together, thus more than a single value can be + * returned. + * + * While the `fsType` flags can indicate that a font may be embedded, a + * license with the font vendor may be separately required to use the + * font in this way. + */ +#define FT_FSTYPE_INSTALLABLE_EMBEDDING 0x0000 +#define FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING 0x0002 +#define FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING 0x0004 +#define FT_FSTYPE_EDITABLE_EMBEDDING 0x0008 +#define FT_FSTYPE_NO_SUBSETTING 0x0100 +#define FT_FSTYPE_BITMAP_EMBEDDING_ONLY 0x0200 + + + /************************************************************************** + * + * @function: + * FT_Get_FSType_Flags + * + * @description: + * Return the `fsType` flags for a font. + * + * @input: + * face :: + * A handle to the source face object. + * + * @return: + * The `fsType` flags, see @FT_FSTYPE_XXX. + * + * @note: + * Use this function rather than directly reading the `fs_type` field in + * the @PS_FontInfoRec structure, which is only guaranteed to return the + * correct results for Type~1 fonts. + * + * @since: + * 2.3.8 + * + */ + FT_EXPORT( FT_UShort ) + FT_Get_FSType_Flags( FT_Face face ); + + + /************************************************************************** + * + * @section: + * glyph_variants + * + * @title: + * Unicode Variation Sequences + * + * @abstract: + * The FreeType~2 interface to Unicode Variation Sequences (UVS), using + * the SFNT cmap format~14. + * + * @description: + * Many characters, especially for CJK scripts, have variant forms. They + * are a sort of grey area somewhere between being totally irrelevant and + * semantically distinct; for this reason, the Unicode consortium decided + * to introduce Variation Sequences (VS), consisting of a Unicode base + * character and a variation selector instead of further extending the + * already huge number of characters. + * + * Unicode maintains two different sets, namely 'Standardized Variation + * Sequences' and registered 'Ideographic Variation Sequences' (IVS), + * collected in the 'Ideographic Variation Database' (IVD). + * + * https://unicode.org/Public/UCD/latest/ucd/StandardizedVariants.txt + * https://unicode.org/reports/tr37/ https://unicode.org/ivd/ + * + * To date (January 2017), the character with the most ideographic + * variations is U+9089, having 32 such IVS. + * + * Three Mongolian Variation Selectors have the values U+180B-U+180D; 256 + * generic Variation Selectors are encoded in the ranges U+FE00-U+FE0F + * and U+E0100-U+E01EF. IVS currently use Variation Selectors from the + * range U+E0100-U+E01EF only. + * + * A VS consists of the base character value followed by a single + * Variation Selector. For example, to get the first variation of + * U+9089, you have to write the character sequence `U+9089 U+E0100`. + * + * Adobe and MS decided to support both standardized and ideographic VS + * with a new cmap subtable (format~14). It is an odd subtable because + * it is not a mapping of input code points to glyphs, but contains lists + * of all variations supported by the font. + * + * A variation may be either 'default' or 'non-default' for a given font. + * A default variation is the one you will get for that code point if you + * look it up in the standard Unicode cmap. A non-default variation is a + * different glyph. + * + */ + + + /************************************************************************** + * + * @function: + * FT_Face_GetCharVariantIndex + * + * @description: + * Return the glyph index of a given character code as modified by the + * variation selector. + * + * @input: + * face :: + * A handle to the source face object. + * + * charcode :: + * The character code point in Unicode. + * + * variantSelector :: + * The Unicode code point of the variation selector. + * + * @return: + * The glyph index. 0~means either 'undefined character code', or + * 'undefined selector code', or 'no variation selector cmap subtable', + * or 'current CharMap is not Unicode'. + * + * @note: + * If you use FreeType to manipulate the contents of font files directly, + * be aware that the glyph index returned by this function doesn't always + * correspond to the internal indices used within the file. This is done + * to ensure that value~0 always corresponds to the 'missing glyph'. + * + * This function is only meaningful if + * a) the font has a variation selector cmap sub table, and + * b) the current charmap has a Unicode encoding. + * + * @since: + * 2.3.6 + * + */ + FT_EXPORT( FT_UInt ) + FT_Face_GetCharVariantIndex( FT_Face face, + FT_ULong charcode, + FT_ULong variantSelector ); + + + /************************************************************************** + * + * @function: + * FT_Face_GetCharVariantIsDefault + * + * @description: + * Check whether this variation of this Unicode character is the one to + * be found in the charmap. + * + * @input: + * face :: + * A handle to the source face object. + * + * charcode :: + * The character codepoint in Unicode. + * + * variantSelector :: + * The Unicode codepoint of the variation selector. + * + * @return: + * 1~if found in the standard (Unicode) cmap, 0~if found in the variation + * selector cmap, or -1 if it is not a variation. + * + * @note: + * This function is only meaningful if the font has a variation selector + * cmap subtable. + * + * @since: + * 2.3.6 + * + */ + FT_EXPORT( FT_Int ) + FT_Face_GetCharVariantIsDefault( FT_Face face, + FT_ULong charcode, + FT_ULong variantSelector ); + + + /************************************************************************** + * + * @function: + * FT_Face_GetVariantSelectors + * + * @description: + * Return a zero-terminated list of Unicode variation selectors found in + * the font. + * + * @input: + * face :: + * A handle to the source face object. + * + * @return: + * A pointer to an array of selector code points, or `NULL` if there is + * no valid variation selector cmap subtable. + * + * @note: + * The last item in the array is~0; the array is owned by the @FT_Face + * object but can be overwritten or released on the next call to a + * FreeType function. + * + * @since: + * 2.3.6 + * + */ + FT_EXPORT( FT_UInt32* ) + FT_Face_GetVariantSelectors( FT_Face face ); + + + /************************************************************************** + * + * @function: + * FT_Face_GetVariantsOfChar + * + * @description: + * Return a zero-terminated list of Unicode variation selectors found for + * the specified character code. + * + * @input: + * face :: + * A handle to the source face object. + * + * charcode :: + * The character codepoint in Unicode. + * + * @return: + * A pointer to an array of variation selector code points that are + * active for the given character, or `NULL` if the corresponding list is + * empty. + * + * @note: + * The last item in the array is~0; the array is owned by the @FT_Face + * object but can be overwritten or released on the next call to a + * FreeType function. + * + * @since: + * 2.3.6 + * + */ + FT_EXPORT( FT_UInt32* ) + FT_Face_GetVariantsOfChar( FT_Face face, + FT_ULong charcode ); + + + /************************************************************************** + * + * @function: + * FT_Face_GetCharsOfVariant + * + * @description: + * Return a zero-terminated list of Unicode character codes found for the + * specified variation selector. + * + * @input: + * face :: + * A handle to the source face object. + * + * variantSelector :: + * The variation selector code point in Unicode. + * + * @return: + * A list of all the code points that are specified by this selector + * (both default and non-default codes are returned) or `NULL` if there + * is no valid cmap or the variation selector is invalid. + * + * @note: + * The last item in the array is~0; the array is owned by the @FT_Face + * object but can be overwritten or released on the next call to a + * FreeType function. + * + * @since: + * 2.3.6 + * + */ + FT_EXPORT( FT_UInt32* ) + FT_Face_GetCharsOfVariant( FT_Face face, + FT_ULong variantSelector ); + + + /************************************************************************** + * + * @section: + * computations + * + * @title: + * Computations + * + * @abstract: + * Crunching fixed numbers and vectors. + * + * @description: + * This section contains various functions used to perform computations + * on 16.16 fixed-point numbers or 2D vectors. FreeType does not use + * floating-point data types. + * + * **Attention**: Most arithmetic functions take `FT_Long` as arguments. + * For historical reasons, FreeType was designed under the assumption + * that `FT_Long` is a 32-bit integer; results can thus be undefined if + * the arguments don't fit into 32 bits. + * + * @order: + * FT_MulDiv + * FT_MulFix + * FT_DivFix + * FT_RoundFix + * FT_CeilFix + * FT_FloorFix + * FT_Vector_Transform + * FT_Matrix_Multiply + * FT_Matrix_Invert + * + */ + + + /************************************************************************** + * + * @function: + * FT_MulDiv + * + * @description: + * Compute `(a*b)/c` with maximum accuracy, using a 64-bit intermediate + * integer whenever necessary. + * + * This function isn't necessarily as fast as some processor-specific + * operations, but is at least completely portable. + * + * @input: + * a :: + * The first multiplier. + * + * b :: + * The second multiplier. + * + * c :: + * The divisor. + * + * @return: + * The result of `(a*b)/c`. This function never traps when trying to + * divide by zero; it simply returns 'MaxInt' or 'MinInt' depending on + * the signs of `a` and `b`. + */ + FT_EXPORT( FT_Long ) + FT_MulDiv( FT_Long a, + FT_Long b, + FT_Long c ); + + + /************************************************************************** + * + * @function: + * FT_MulFix + * + * @description: + * Compute `(a*b)/0x10000` with maximum accuracy. Its main use is to + * multiply a given value by a 16.16 fixed-point factor. + * + * @input: + * a :: + * The first multiplier. + * + * b :: + * The second multiplier. Use a 16.16 factor here whenever possible + * (see note below). + * + * @return: + * The result of `(a*b)/0x10000`. + * + * @note: + * This function has been optimized for the case where the absolute value + * of `a` is less than 2048, and `b` is a 16.16 scaling factor. As this + * happens mainly when scaling from notional units to fractional pixels + * in FreeType, it resulted in noticeable speed improvements between + * versions 2.x and 1.x. + * + * As a conclusion, always try to place a 16.16 factor as the _second_ + * argument of this function; this can make a great difference. + */ + FT_EXPORT( FT_Long ) + FT_MulFix( FT_Long a, + FT_Long b ); + + + /************************************************************************** + * + * @function: + * FT_DivFix + * + * @description: + * Compute `(a*0x10000)/b` with maximum accuracy. Its main use is to + * divide a given value by a 16.16 fixed-point factor. + * + * @input: + * a :: + * The numerator. + * + * b :: + * The denominator. Use a 16.16 factor here. + * + * @return: + * The result of `(a*0x10000)/b`. + */ + FT_EXPORT( FT_Long ) + FT_DivFix( FT_Long a, + FT_Long b ); + + + /************************************************************************** + * + * @function: + * FT_RoundFix + * + * @description: + * Round a 16.16 fixed number. + * + * @input: + * a :: + * The number to be rounded. + * + * @return: + * `a` rounded to the nearest 16.16 fixed integer, halfway cases away + * from zero. + * + * @note: + * The function uses wrap-around arithmetic. + */ + FT_EXPORT( FT_Fixed ) + FT_RoundFix( FT_Fixed a ); + + + /************************************************************************** + * + * @function: + * FT_CeilFix + * + * @description: + * Compute the smallest following integer of a 16.16 fixed number. + * + * @input: + * a :: + * The number for which the ceiling function is to be computed. + * + * @return: + * `a` rounded towards plus infinity. + * + * @note: + * The function uses wrap-around arithmetic. + */ + FT_EXPORT( FT_Fixed ) + FT_CeilFix( FT_Fixed a ); + + + /************************************************************************** + * + * @function: + * FT_FloorFix + * + * @description: + * Compute the largest previous integer of a 16.16 fixed number. + * + * @input: + * a :: + * The number for which the floor function is to be computed. + * + * @return: + * `a` rounded towards minus infinity. + */ + FT_EXPORT( FT_Fixed ) + FT_FloorFix( FT_Fixed a ); + + + /************************************************************************** + * + * @function: + * FT_Vector_Transform + * + * @description: + * Transform a single vector through a 2x2 matrix. + * + * @inout: + * vector :: + * The target vector to transform. + * + * @input: + * matrix :: + * A pointer to the source 2x2 matrix. + * + * @note: + * The result is undefined if either `vector` or `matrix` is invalid. + */ + FT_EXPORT( void ) + FT_Vector_Transform( FT_Vector* vector, + const FT_Matrix* matrix ); + + + /************************************************************************** + * + * @section: + * library_setup + * + */ + + /************************************************************************** + * + * @enum: + * FREETYPE_XXX + * + * @description: + * These three macros identify the FreeType source code version. Use + * @FT_Library_Version to access them at runtime. + * + * @values: + * FREETYPE_MAJOR :: + * The major version number. + * FREETYPE_MINOR :: + * The minor version number. + * FREETYPE_PATCH :: + * The patch level. + * + * @note: + * The version number of FreeType if built as a dynamic link library with + * the 'libtool' package is _not_ controlled by these three macros. + * + */ +#define FREETYPE_MAJOR 2 +#define FREETYPE_MINOR 13 +#define FREETYPE_PATCH 3 + + + /************************************************************************** + * + * @function: + * FT_Library_Version + * + * @description: + * Return the version of the FreeType library being used. This is useful + * when dynamically linking to the library, since one cannot use the + * macros @FREETYPE_MAJOR, @FREETYPE_MINOR, and @FREETYPE_PATCH. + * + * @input: + * library :: + * A source library handle. + * + * @output: + * amajor :: + * The major version number. + * + * aminor :: + * The minor version number. + * + * apatch :: + * The patch version number. + * + * @note: + * The reason why this function takes a `library` argument is because + * certain programs implement library initialization in a custom way that + * doesn't use @FT_Init_FreeType. + * + * In such cases, the library version might not be available before the + * library object has been created. + */ + FT_EXPORT( void ) + FT_Library_Version( FT_Library library, + FT_Int *amajor, + FT_Int *aminor, + FT_Int *apatch ); + + + /************************************************************************** + * + * @section: + * other_api_data + * + */ + + /************************************************************************** + * + * @function: + * FT_Face_CheckTrueTypePatents + * + * @description: + * Deprecated, does nothing. + * + * @input: + * face :: + * A face handle. + * + * @return: + * Always returns false. + * + * @note: + * Since May 2010, TrueType hinting is no longer patented. + * + * @since: + * 2.3.5 + * + */ + FT_EXPORT( FT_Bool ) + FT_Face_CheckTrueTypePatents( FT_Face face ); + + + /************************************************************************** + * + * @function: + * FT_Face_SetUnpatentedHinting + * + * @description: + * Deprecated, does nothing. + * + * @input: + * face :: + * A face handle. + * + * value :: + * New boolean setting. + * + * @return: + * Always returns false. + * + * @note: + * Since May 2010, TrueType hinting is no longer patented. + * + * @since: + * 2.3.5 + * + */ + FT_EXPORT( FT_Bool ) + FT_Face_SetUnpatentedHinting( FT_Face face, + FT_Bool value ); + + /* */ + + +FT_END_HEADER + +#endif /* FREETYPE_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftadvanc.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftadvanc.h new file mode 100644 index 00000000..85b8ba25 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftadvanc.h @@ -0,0 +1,188 @@ +/**************************************************************************** + * + * ftadvanc.h + * + * Quick computation of advance widths (specification only). + * + * Copyright (C) 2008-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTADVANC_H_ +#define FTADVANC_H_ + + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * quick_advance + * + * @title: + * Quick retrieval of advance values + * + * @abstract: + * Retrieve horizontal and vertical advance values without processing + * glyph outlines, if possible. + * + * @description: + * This section contains functions to quickly extract advance values + * without handling glyph outlines, if possible. + * + * @order: + * FT_Get_Advance + * FT_Get_Advances + * + */ + + + /************************************************************************** + * + * @enum: + * FT_ADVANCE_FLAG_FAST_ONLY + * + * @description: + * A bit-flag to be OR-ed with the `flags` parameter of the + * @FT_Get_Advance and @FT_Get_Advances functions. + * + * If set, it indicates that you want these functions to fail if the + * corresponding hinting mode or font driver doesn't allow for very quick + * advance computation. + * + * Typically, glyphs that are either unscaled, unhinted, bitmapped, or + * light-hinted can have their advance width computed very quickly. + * + * Normal and bytecode hinted modes that require loading, scaling, and + * hinting of the glyph outline, are extremely slow by comparison. + */ +#define FT_ADVANCE_FLAG_FAST_ONLY 0x20000000L + + + /************************************************************************** + * + * @function: + * FT_Get_Advance + * + * @description: + * Retrieve the advance value of a given glyph outline in an @FT_Face. + * + * @input: + * face :: + * The source @FT_Face handle. + * + * gindex :: + * The glyph index. + * + * load_flags :: + * A set of bit flags similar to those used when calling + * @FT_Load_Glyph, used to determine what kind of advances you need. + * + * @output: + * padvance :: + * The advance value. If scaling is performed (based on the value of + * `load_flags`), the advance value is in 16.16 format. Otherwise, it + * is in font units. + * + * If @FT_LOAD_VERTICAL_LAYOUT is set, this is the vertical advance + * corresponding to a vertical layout. Otherwise, it is the horizontal + * advance in a horizontal layout. + * + * @return: + * FreeType error code. 0 means success. + * + * @note: + * This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and if + * the corresponding font backend doesn't have a quick way to retrieve + * the advances. + * + * A scaled advance is returned in 16.16 format but isn't transformed by + * the affine transformation specified by @FT_Set_Transform. + */ + FT_EXPORT( FT_Error ) + FT_Get_Advance( FT_Face face, + FT_UInt gindex, + FT_Int32 load_flags, + FT_Fixed *padvance ); + + + /************************************************************************** + * + * @function: + * FT_Get_Advances + * + * @description: + * Retrieve the advance values of several glyph outlines in an @FT_Face. + * + * @input: + * face :: + * The source @FT_Face handle. + * + * start :: + * The first glyph index. + * + * count :: + * The number of advance values you want to retrieve. + * + * load_flags :: + * A set of bit flags similar to those used when calling + * @FT_Load_Glyph. + * + * @output: + * padvance :: + * The advance values. This array, to be provided by the caller, must + * contain at least `count` elements. + * + * If scaling is performed (based on the value of `load_flags`), the + * advance values are in 16.16 format. Otherwise, they are in font + * units. + * + * If @FT_LOAD_VERTICAL_LAYOUT is set, these are the vertical advances + * corresponding to a vertical layout. Otherwise, they are the + * horizontal advances in a horizontal layout. + * + * @return: + * FreeType error code. 0 means success. + * + * @note: + * This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and if + * the corresponding font backend doesn't have a quick way to retrieve + * the advances. + * + * Scaled advances are returned in 16.16 format but aren't transformed by + * the affine transformation specified by @FT_Set_Transform. + */ + FT_EXPORT( FT_Error ) + FT_Get_Advances( FT_Face face, + FT_UInt start, + FT_UInt count, + FT_Int32 load_flags, + FT_Fixed *padvances ); + + /* */ + + +FT_END_HEADER + +#endif /* FTADVANC_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftbbox.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftbbox.h new file mode 100644 index 00000000..12bbfa63 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftbbox.h @@ -0,0 +1,101 @@ +/**************************************************************************** + * + * ftbbox.h + * + * FreeType exact bbox computation (specification). + * + * Copyright (C) 1996-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + + /************************************************************************** + * + * This component has a _single_ role: to compute exact outline bounding + * boxes. + * + * It is separated from the rest of the engine for various technical + * reasons. It may well be integrated in 'ftoutln' later. + * + */ + + +#ifndef FTBBOX_H_ +#define FTBBOX_H_ + + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * outline_processing + * + */ + + + /************************************************************************** + * + * @function: + * FT_Outline_Get_BBox + * + * @description: + * Compute the exact bounding box of an outline. This is slower than + * computing the control box. However, it uses an advanced algorithm + * that returns _very_ quickly when the two boxes coincide. Otherwise, + * the outline Bezier arcs are traversed to extract their extrema. + * + * @input: + * outline :: + * A pointer to the source outline. + * + * @output: + * abbox :: + * The outline's exact bounding box. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * If the font is tricky and the glyph has been loaded with + * @FT_LOAD_NO_SCALE, the resulting BBox is meaningless. To get + * reasonable values for the BBox it is necessary to load the glyph at a + * large ppem value (so that the hinting instructions can properly shift + * and scale the subglyphs), then extracting the BBox, which can be + * eventually converted back to font units. + */ + FT_EXPORT( FT_Error ) + FT_Outline_Get_BBox( FT_Outline* outline, + FT_BBox *abbox ); + + /* */ + + +FT_END_HEADER + +#endif /* FTBBOX_H_ */ + + +/* END */ + + +/* Local Variables: */ +/* coding: utf-8 */ +/* End: */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftbdf.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftbdf.h new file mode 100644 index 00000000..6f63b0b1 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftbdf.h @@ -0,0 +1,212 @@ +/**************************************************************************** + * + * ftbdf.h + * + * FreeType API for accessing BDF-specific strings (specification). + * + * Copyright (C) 2002-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTBDF_H_ +#define FTBDF_H_ + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * bdf_fonts + * + * @title: + * BDF and PCF Files + * + * @abstract: + * BDF and PCF specific API. + * + * @description: + * This section contains the declaration of functions specific to BDF and + * PCF fonts. + * + */ + + + /************************************************************************** + * + * @enum: + * BDF_PropertyType + * + * @description: + * A list of BDF property types. + * + * @values: + * BDF_PROPERTY_TYPE_NONE :: + * Value~0 is used to indicate a missing property. + * + * BDF_PROPERTY_TYPE_ATOM :: + * Property is a string atom. + * + * BDF_PROPERTY_TYPE_INTEGER :: + * Property is a 32-bit signed integer. + * + * BDF_PROPERTY_TYPE_CARDINAL :: + * Property is a 32-bit unsigned integer. + */ + typedef enum BDF_PropertyType_ + { + BDF_PROPERTY_TYPE_NONE = 0, + BDF_PROPERTY_TYPE_ATOM = 1, + BDF_PROPERTY_TYPE_INTEGER = 2, + BDF_PROPERTY_TYPE_CARDINAL = 3 + + } BDF_PropertyType; + + + /************************************************************************** + * + * @type: + * BDF_Property + * + * @description: + * A handle to a @BDF_PropertyRec structure to model a given BDF/PCF + * property. + */ + typedef struct BDF_PropertyRec_* BDF_Property; + + + /************************************************************************** + * + * @struct: + * BDF_PropertyRec + * + * @description: + * This structure models a given BDF/PCF property. + * + * @fields: + * type :: + * The property type. + * + * u.atom :: + * The atom string, if type is @BDF_PROPERTY_TYPE_ATOM. May be + * `NULL`, indicating an empty string. + * + * u.integer :: + * A signed integer, if type is @BDF_PROPERTY_TYPE_INTEGER. + * + * u.cardinal :: + * An unsigned integer, if type is @BDF_PROPERTY_TYPE_CARDINAL. + */ + typedef struct BDF_PropertyRec_ + { + BDF_PropertyType type; + union { + const char* atom; + FT_Int32 integer; + FT_UInt32 cardinal; + + } u; + + } BDF_PropertyRec; + + + /************************************************************************** + * + * @function: + * FT_Get_BDF_Charset_ID + * + * @description: + * Retrieve a BDF font character set identity, according to the BDF + * specification. + * + * @input: + * face :: + * A handle to the input face. + * + * @output: + * acharset_encoding :: + * Charset encoding, as a C~string, owned by the face. + * + * acharset_registry :: + * Charset registry, as a C~string, owned by the face. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function only works with BDF faces, returning an error otherwise. + */ + FT_EXPORT( FT_Error ) + FT_Get_BDF_Charset_ID( FT_Face face, + const char* *acharset_encoding, + const char* *acharset_registry ); + + + /************************************************************************** + * + * @function: + * FT_Get_BDF_Property + * + * @description: + * Retrieve a BDF property from a BDF or PCF font file. + * + * @input: + * face :: + * A handle to the input face. + * + * name :: + * The property name. + * + * @output: + * aproperty :: + * The property. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function works with BDF _and_ PCF fonts. It returns an error + * otherwise. It also returns an error if the property is not in the + * font. + * + * A 'property' is a either key-value pair within the STARTPROPERTIES + * ... ENDPROPERTIES block of a BDF font or a key-value pair from the + * `info->props` array within a `FontRec` structure of a PCF font. + * + * Integer properties are always stored as 'signed' within PCF fonts; + * consequently, @BDF_PROPERTY_TYPE_CARDINAL is a possible return value + * for BDF fonts only. + * + * In case of error, `aproperty->type` is always set to + * @BDF_PROPERTY_TYPE_NONE. + */ + FT_EXPORT( FT_Error ) + FT_Get_BDF_Property( FT_Face face, + const char* prop_name, + BDF_PropertyRec *aproperty ); + + /* */ + +FT_END_HEADER + +#endif /* FTBDF_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftbitmap.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftbitmap.h new file mode 100644 index 00000000..df9d4626 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftbitmap.h @@ -0,0 +1,329 @@ +/**************************************************************************** + * + * ftbitmap.h + * + * FreeType utility functions for bitmaps (specification). + * + * Copyright (C) 2004-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTBITMAP_H_ +#define FTBITMAP_H_ + + +#include +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * bitmap_handling + * + * @title: + * Bitmap Handling + * + * @abstract: + * Handling FT_Bitmap objects. + * + * @description: + * This section contains functions for handling @FT_Bitmap objects, + * automatically adjusting the target's bitmap buffer size as needed. + * + * Note that none of the functions changes the bitmap's 'flow' (as + * indicated by the sign of the `pitch` field in @FT_Bitmap). + * + * To set the flow, assign an appropriate positive or negative value to + * the `pitch` field of the target @FT_Bitmap object after calling + * @FT_Bitmap_Init but before calling any of the other functions + * described here. + */ + + + /************************************************************************** + * + * @function: + * FT_Bitmap_Init + * + * @description: + * Initialize a pointer to an @FT_Bitmap structure. + * + * @inout: + * abitmap :: + * A pointer to the bitmap structure. + * + * @note: + * A deprecated name for the same function is `FT_Bitmap_New`. + */ + FT_EXPORT( void ) + FT_Bitmap_Init( FT_Bitmap *abitmap ); + + + /* deprecated */ + FT_EXPORT( void ) + FT_Bitmap_New( FT_Bitmap *abitmap ); + + + /************************************************************************** + * + * @function: + * FT_Bitmap_Copy + * + * @description: + * Copy a bitmap into another one. + * + * @input: + * library :: + * A handle to a library object. + * + * source :: + * A handle to the source bitmap. + * + * @output: + * target :: + * A handle to the target bitmap. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * `source->buffer` and `target->buffer` must neither be equal nor + * overlap. + */ + FT_EXPORT( FT_Error ) + FT_Bitmap_Copy( FT_Library library, + const FT_Bitmap *source, + FT_Bitmap *target ); + + + /************************************************************************** + * + * @function: + * FT_Bitmap_Embolden + * + * @description: + * Embolden a bitmap. The new bitmap will be about `xStrength` pixels + * wider and `yStrength` pixels higher. The left and bottom borders are + * kept unchanged. + * + * @input: + * library :: + * A handle to a library object. + * + * xStrength :: + * How strong the glyph is emboldened horizontally. Expressed in 26.6 + * pixel format. + * + * yStrength :: + * How strong the glyph is emboldened vertically. Expressed in 26.6 + * pixel format. + * + * @inout: + * bitmap :: + * A handle to the target bitmap. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The current implementation restricts `xStrength` to be less than or + * equal to~8 if bitmap is of pixel_mode @FT_PIXEL_MODE_MONO. + * + * If you want to embolden the bitmap owned by a @FT_GlyphSlotRec, you + * should call @FT_GlyphSlot_Own_Bitmap on the slot first. + * + * Bitmaps in @FT_PIXEL_MODE_GRAY2 and @FT_PIXEL_MODE_GRAY@ format are + * converted to @FT_PIXEL_MODE_GRAY format (i.e., 8bpp). + */ + FT_EXPORT( FT_Error ) + FT_Bitmap_Embolden( FT_Library library, + FT_Bitmap* bitmap, + FT_Pos xStrength, + FT_Pos yStrength ); + + + /************************************************************************** + * + * @function: + * FT_Bitmap_Convert + * + * @description: + * Convert a bitmap object with depth 1bpp, 2bpp, 4bpp, 8bpp or 32bpp to + * a bitmap object with depth 8bpp, making the number of used bytes per + * line (a.k.a. the 'pitch') a multiple of `alignment`. + * + * @input: + * library :: + * A handle to a library object. + * + * source :: + * The source bitmap. + * + * alignment :: + * The pitch of the bitmap is a multiple of this argument. Common + * values are 1, 2, or 4. + * + * @output: + * target :: + * The target bitmap. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * It is possible to call @FT_Bitmap_Convert multiple times without + * calling @FT_Bitmap_Done (the memory is simply reallocated). + * + * Use @FT_Bitmap_Done to finally remove the bitmap object. + * + * The `library` argument is taken to have access to FreeType's memory + * handling functions. + * + * `source->buffer` and `target->buffer` must neither be equal nor + * overlap. + */ + FT_EXPORT( FT_Error ) + FT_Bitmap_Convert( FT_Library library, + const FT_Bitmap *source, + FT_Bitmap *target, + FT_Int alignment ); + + + /************************************************************************** + * + * @function: + * FT_Bitmap_Blend + * + * @description: + * Blend a bitmap onto another bitmap, using a given color. + * + * @input: + * library :: + * A handle to a library object. + * + * source :: + * The source bitmap, which can have any @FT_Pixel_Mode format. + * + * source_offset :: + * The offset vector to the upper left corner of the source bitmap in + * 26.6 pixel format. It should represent an integer offset; the + * function will set the lowest six bits to zero to enforce that. + * + * color :: + * The color used to draw `source` onto `target`. + * + * @inout: + * target :: + * A handle to an `FT_Bitmap` object. It should be either initialized + * as empty with a call to @FT_Bitmap_Init, or it should be of type + * @FT_PIXEL_MODE_BGRA. + * + * atarget_offset :: + * The offset vector to the upper left corner of the target bitmap in + * 26.6 pixel format. It should represent an integer offset; the + * function will set the lowest six bits to zero to enforce that. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function doesn't perform clipping. + * + * The bitmap in `target` gets allocated or reallocated as needed; the + * vector `atarget_offset` is updated accordingly. + * + * In case of allocation or reallocation, the bitmap's pitch is set to + * `4 * width`. Both `source` and `target` must have the same bitmap + * flow (as indicated by the sign of the `pitch` field). + * + * `source->buffer` and `target->buffer` must neither be equal nor + * overlap. + * + * @since: + * 2.10 + */ + FT_EXPORT( FT_Error ) + FT_Bitmap_Blend( FT_Library library, + const FT_Bitmap* source, + const FT_Vector source_offset, + FT_Bitmap* target, + FT_Vector *atarget_offset, + FT_Color color ); + + + /************************************************************************** + * + * @function: + * FT_GlyphSlot_Own_Bitmap + * + * @description: + * Make sure that a glyph slot owns `slot->bitmap`. + * + * @input: + * slot :: + * The glyph slot. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function is to be used in combination with @FT_Bitmap_Embolden. + */ + FT_EXPORT( FT_Error ) + FT_GlyphSlot_Own_Bitmap( FT_GlyphSlot slot ); + + + /************************************************************************** + * + * @function: + * FT_Bitmap_Done + * + * @description: + * Destroy a bitmap object initialized with @FT_Bitmap_Init. + * + * @input: + * library :: + * A handle to a library object. + * + * bitmap :: + * The bitmap object to be freed. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The `library` argument is taken to have access to FreeType's memory + * handling functions. + */ + FT_EXPORT( FT_Error ) + FT_Bitmap_Done( FT_Library library, + FT_Bitmap *bitmap ); + + + /* */ + + +FT_END_HEADER + +#endif /* FTBITMAP_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftbzip2.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftbzip2.h new file mode 100644 index 00000000..c5baea85 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftbzip2.h @@ -0,0 +1,102 @@ +/**************************************************************************** + * + * ftbzip2.h + * + * Bzip2-compressed stream support. + * + * Copyright (C) 2010-2024 by + * Joel Klinghed. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTBZIP2_H_ +#define FTBZIP2_H_ + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + /************************************************************************** + * + * @section: + * bzip2 + * + * @title: + * BZIP2 Streams + * + * @abstract: + * Using bzip2-compressed font files. + * + * @description: + * In certain builds of the library, bzip2 compression recognition is + * automatically handled when calling @FT_New_Face or @FT_Open_Face. + * This means that if no font driver is capable of handling the raw + * compressed file, the library will try to open a bzip2 compressed + * stream from it and re-open the face with it. + * + * The stream implementation is very basic and resets the decompression + * process each time seeking backwards is needed within the stream, + * which significantly undermines the performance. + * + * This section contains the declaration of Bzip2-specific functions. + * + */ + + + /************************************************************************** + * + * @function: + * FT_Stream_OpenBzip2 + * + * @description: + * Open a new stream to parse bzip2-compressed font files. This is + * mainly used to support the compressed `*.pcf.bz2` fonts that come with + * XFree86. + * + * @input: + * stream :: + * The target embedding stream. + * + * source :: + * The source stream. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The source stream must be opened _before_ calling this function. + * + * Calling the internal function `FT_Stream_Close` on the new stream will + * **not** call `FT_Stream_Close` on the source stream. None of the + * stream objects will be released to the heap. + * + * This function may return `FT_Err_Unimplemented_Feature` if your build + * of FreeType was not compiled with bzip2 support. + */ + FT_EXPORT( FT_Error ) + FT_Stream_OpenBzip2( FT_Stream stream, + FT_Stream source ); + + /* */ + + +FT_END_HEADER + +#endif /* FTBZIP2_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftcache.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftcache.h new file mode 100644 index 00000000..140df4c9 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftcache.h @@ -0,0 +1,1087 @@ +/**************************************************************************** + * + * ftcache.h + * + * FreeType Cache subsystem (specification). + * + * Copyright (C) 1996-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTCACHE_H_ +#define FTCACHE_H_ + + +#include + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * cache_subsystem + * + * @title: + * Cache Sub-System + * + * @abstract: + * How to cache face, size, and glyph data with FreeType~2. + * + * @description: + * This section describes the FreeType~2 cache sub-system, which is used + * to limit the number of concurrently opened @FT_Face and @FT_Size + * objects, as well as caching information like character maps and glyph + * images while limiting their maximum memory usage. + * + * Note that all types and functions begin with the `FTC_` prefix rather + * than the usual `FT_` prefix in the rest of FreeType. + * + * The cache is highly portable and, thus, doesn't know anything about + * the fonts installed on your system, or how to access them. Therefore, + * it requires the following. + * + * * @FTC_FaceID, an arbitrary non-zero value that uniquely identifies + * available or installed font faces, has to be provided to the + * cache by the client. Note that the cache only stores and compares + * these values and doesn't try to interpret them in any way, but they + * have to be persistent on the client side. + * + * * @FTC_Face_Requester, a method to convert an @FTC_FaceID into a new + * @FT_Face object when necessary, has to be provided to the cache by + * the client. The @FT_Face object is completely managed by the cache, + * including its termination through @FT_Done_Face. To monitor + * termination of face objects, the finalizer callback in the `generic` + * field of the @FT_Face object can be used, which might also be used + * to store the @FTC_FaceID of the face. + * + * Clients are free to map face IDs to anything useful. The most simple + * usage is, for example, to associate them to a `{pathname,face_index}` + * pair that is then used by @FTC_Face_Requester to call @FT_New_Face. + * However, more complex schemes are also possible. + * + * Note that for the cache to work correctly, the face ID values must be + * **persistent**, which means that the contents they point to should not + * change at runtime, or that their value should not become invalid. + * If this is unavoidable (e.g., when a font is uninstalled at runtime), + * you should call @FTC_Manager_RemoveFaceID as soon as possible to let + * the cache get rid of any references to the old @FTC_FaceID it may keep + * internally. Failure to do so will lead to incorrect behaviour or even + * crashes in @FTC_Face_Requester. + * + * To use the cache, start with calling @FTC_Manager_New to create a new + * @FTC_Manager object, which models a single cache instance. You can + * then look up @FT_Face and @FT_Size objects with + * @FTC_Manager_LookupFace and @FTC_Manager_LookupSize, respectively, and + * use them in any FreeType work stream. You can also cache other + * FreeType objects as follows. + * + * * If you want to use the charmap caching, call @FTC_CMapCache_New, + * then later use @FTC_CMapCache_Lookup to perform the equivalent of + * @FT_Get_Char_Index, only much faster. + * + * * If you want to use the @FT_Glyph caching, call @FTC_ImageCache_New, + * then later use @FTC_ImageCache_Lookup to retrieve the corresponding + * @FT_Glyph objects from the cache. + * + * * If you need lots of small bitmaps, it is much more memory-efficient + * to call @FTC_SBitCache_New followed by @FTC_SBitCache_Lookup. This + * returns @FTC_SBitRec structures, which are used to store small + * bitmaps directly. (A small bitmap is one whose metrics and + * dimensions all fit into 8-bit integers). + * + * @order: + * FTC_Manager + * FTC_FaceID + * FTC_Face_Requester + * + * FTC_Manager_New + * FTC_Manager_Reset + * FTC_Manager_Done + * FTC_Manager_LookupFace + * FTC_Manager_LookupSize + * FTC_Manager_RemoveFaceID + * + * FTC_Node + * FTC_Node_Unref + * + * FTC_ImageCache + * FTC_ImageCache_New + * FTC_ImageCache_Lookup + * + * FTC_SBit + * FTC_SBitCache + * FTC_SBitCache_New + * FTC_SBitCache_Lookup + * + * FTC_CMapCache + * FTC_CMapCache_New + * FTC_CMapCache_Lookup + * + *************************************************************************/ + + + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /***** *****/ + /***** BASIC TYPE DEFINITIONS *****/ + /***** *****/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + + + /************************************************************************** + * + * @type: + * FTC_FaceID + * + * @description: + * An opaque pointer type that is used to identity face objects. The + * contents of such objects is application-dependent. + * + * These pointers are typically used to point to a user-defined structure + * containing a font file path, and face index. + * + * @note: + * Never use `NULL` as a valid @FTC_FaceID. + * + * Face IDs are passed by the client to the cache manager that calls, + * when needed, the @FTC_Face_Requester to translate them into new + * @FT_Face objects. + * + * If the content of a given face ID changes at runtime, or if the value + * becomes invalid (e.g., when uninstalling a font), you should + * immediately call @FTC_Manager_RemoveFaceID before any other cache + * function. + * + * Failure to do so will result in incorrect behaviour or even memory + * leaks and crashes. + */ + typedef FT_Pointer FTC_FaceID; + + + /************************************************************************** + * + * @functype: + * FTC_Face_Requester + * + * @description: + * A callback function provided by client applications. It is used by + * the cache manager to translate a given @FTC_FaceID into a new valid + * @FT_Face object, on demand. + * + * @input: + * face_id :: + * The face ID to resolve. + * + * library :: + * A handle to a FreeType library object. + * + * req_data :: + * Application-provided request data (see note below). + * + * @output: + * aface :: + * A new @FT_Face handle. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The third parameter `req_data` is the same as the one passed by the + * client when @FTC_Manager_New is called. + * + * The face requester should not perform funny things on the returned + * face object, like creating a new @FT_Size for it, or setting a + * transformation through @FT_Set_Transform! + */ + typedef FT_Error + (*FTC_Face_Requester)( FTC_FaceID face_id, + FT_Library library, + FT_Pointer req_data, + FT_Face* aface ); + + /* */ + + + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /***** *****/ + /***** CACHE MANAGER OBJECT *****/ + /***** *****/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + + + /************************************************************************** + * + * @type: + * FTC_Manager + * + * @description: + * This object corresponds to one instance of the cache-subsystem. It is + * used to cache one or more @FT_Face objects, along with corresponding + * @FT_Size objects. + * + * The manager intentionally limits the total number of opened @FT_Face + * and @FT_Size objects to control memory usage. See the `max_faces` and + * `max_sizes` parameters of @FTC_Manager_New. + * + * The manager is also used to cache 'nodes' of various types while + * limiting their total memory usage. + * + * All limitations are enforced by keeping lists of managed objects in + * most-recently-used order, and flushing old nodes to make room for new + * ones. + */ + typedef struct FTC_ManagerRec_* FTC_Manager; + + + /************************************************************************** + * + * @type: + * FTC_Node + * + * @description: + * An opaque handle to a cache node object. Each cache node is + * reference-counted. A node with a count of~0 might be flushed out of a + * full cache whenever a lookup request is performed. + * + * If you look up nodes, you have the ability to 'acquire' them, i.e., to + * increment their reference count. This will prevent the node from + * being flushed out of the cache until you explicitly 'release' it (see + * @FTC_Node_Unref). + * + * See also @FTC_SBitCache_Lookup and @FTC_ImageCache_Lookup. + */ + typedef struct FTC_NodeRec_* FTC_Node; + + + /************************************************************************** + * + * @function: + * FTC_Manager_New + * + * @description: + * Create a new cache manager. + * + * @input: + * library :: + * The parent FreeType library handle to use. + * + * max_faces :: + * Maximum number of opened @FT_Face objects managed by this cache + * instance. Use~0 for defaults. + * + * max_sizes :: + * Maximum number of opened @FT_Size objects managed by this cache + * instance. Use~0 for defaults. + * + * max_bytes :: + * Maximum number of bytes to use for cached data nodes. Use~0 for + * defaults. Note that this value does not account for managed + * @FT_Face and @FT_Size objects. + * + * requester :: + * An application-provided callback used to translate face IDs into + * real @FT_Face objects. + * + * req_data :: + * A generic pointer that is passed to the requester each time it is + * called (see @FTC_Face_Requester). + * + * @output: + * amanager :: + * A handle to a new manager object. 0~in case of failure. + * + * @return: + * FreeType error code. 0~means success. + */ + FT_EXPORT( FT_Error ) + FTC_Manager_New( FT_Library library, + FT_UInt max_faces, + FT_UInt max_sizes, + FT_ULong max_bytes, + FTC_Face_Requester requester, + FT_Pointer req_data, + FTC_Manager *amanager ); + + + /************************************************************************** + * + * @function: + * FTC_Manager_Reset + * + * @description: + * Empty a given cache manager. This simply gets rid of all the + * currently cached @FT_Face and @FT_Size objects within the manager. + * + * @inout: + * manager :: + * A handle to the manager. + */ + FT_EXPORT( void ) + FTC_Manager_Reset( FTC_Manager manager ); + + + /************************************************************************** + * + * @function: + * FTC_Manager_Done + * + * @description: + * Destroy a given manager after emptying it. + * + * @input: + * manager :: + * A handle to the target cache manager object. + */ + FT_EXPORT( void ) + FTC_Manager_Done( FTC_Manager manager ); + + + /************************************************************************** + * + * @function: + * FTC_Manager_LookupFace + * + * @description: + * Retrieve the @FT_Face object that corresponds to a given face ID + * through a cache manager. + * + * @input: + * manager :: + * A handle to the cache manager. + * + * face_id :: + * The ID of the face object. + * + * @output: + * aface :: + * A handle to the face object. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The returned @FT_Face object is always owned by the manager. You + * should never try to discard it yourself. + * + * The @FT_Face object doesn't necessarily have a current size object + * (i.e., face->size can be~0). If you need a specific 'font size', use + * @FTC_Manager_LookupSize instead. + * + * Never change the face's transformation matrix (i.e., never call the + * @FT_Set_Transform function) on a returned face! If you need to + * transform glyphs, do it yourself after glyph loading. + * + * When you perform a lookup, out-of-memory errors are detected _within_ + * the lookup and force incremental flushes of the cache until enough + * memory is released for the lookup to succeed. + * + * If a lookup fails with `FT_Err_Out_Of_Memory` the cache has already + * been completely flushed, and still no memory was available for the + * operation. + */ + FT_EXPORT( FT_Error ) + FTC_Manager_LookupFace( FTC_Manager manager, + FTC_FaceID face_id, + FT_Face *aface ); + + + /************************************************************************** + * + * @struct: + * FTC_ScalerRec + * + * @description: + * A structure used to describe a given character size in either pixels + * or points to the cache manager. See @FTC_Manager_LookupSize. + * + * @fields: + * face_id :: + * The source face ID. + * + * width :: + * The character width. + * + * height :: + * The character height. + * + * pixel :: + * A Boolean. If 1, the `width` and `height` fields are interpreted as + * integer pixel character sizes. Otherwise, they are expressed as + * 1/64 of points. + * + * x_res :: + * Only used when `pixel` is value~0 to indicate the horizontal + * resolution in dpi. + * + * y_res :: + * Only used when `pixel` is value~0 to indicate the vertical + * resolution in dpi. + * + * @note: + * This type is mainly used to retrieve @FT_Size objects through the + * cache manager. + */ + typedef struct FTC_ScalerRec_ + { + FTC_FaceID face_id; + FT_UInt width; + FT_UInt height; + FT_Int pixel; + FT_UInt x_res; + FT_UInt y_res; + + } FTC_ScalerRec; + + + /************************************************************************** + * + * @struct: + * FTC_Scaler + * + * @description: + * A handle to an @FTC_ScalerRec structure. + */ + typedef struct FTC_ScalerRec_* FTC_Scaler; + + + /************************************************************************** + * + * @function: + * FTC_Manager_LookupSize + * + * @description: + * Retrieve the @FT_Size object that corresponds to a given + * @FTC_ScalerRec pointer through a cache manager. + * + * @input: + * manager :: + * A handle to the cache manager. + * + * scaler :: + * A scaler handle. + * + * @output: + * asize :: + * A handle to the size object. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The returned @FT_Size object is always owned by the manager. You + * should never try to discard it by yourself. + * + * You can access the parent @FT_Face object simply as `size->face` if + * you need it. Note that this object is also owned by the manager. + * + * @note: + * When you perform a lookup, out-of-memory errors are detected _within_ + * the lookup and force incremental flushes of the cache until enough + * memory is released for the lookup to succeed. + * + * If a lookup fails with `FT_Err_Out_Of_Memory` the cache has already + * been completely flushed, and still no memory is available for the + * operation. + */ + FT_EXPORT( FT_Error ) + FTC_Manager_LookupSize( FTC_Manager manager, + FTC_Scaler scaler, + FT_Size *asize ); + + + /************************************************************************** + * + * @function: + * FTC_Node_Unref + * + * @description: + * Decrement a cache node's internal reference count. When the count + * reaches 0, it is not destroyed but becomes eligible for subsequent + * cache flushes. + * + * @input: + * node :: + * The cache node handle. + * + * manager :: + * The cache manager handle. + */ + FT_EXPORT( void ) + FTC_Node_Unref( FTC_Node node, + FTC_Manager manager ); + + + /************************************************************************** + * + * @function: + * FTC_Manager_RemoveFaceID + * + * @description: + * A special function used to indicate to the cache manager that a given + * @FTC_FaceID is no longer valid, either because its content changed, or + * because it was deallocated or uninstalled. + * + * @input: + * manager :: + * The cache manager handle. + * + * face_id :: + * The @FTC_FaceID to be removed. + * + * @note: + * This function flushes all nodes from the cache corresponding to this + * `face_id`, with the exception of nodes with a non-null reference + * count. + * + * Such nodes are however modified internally so as to never appear in + * later lookups with the same `face_id` value, and to be immediately + * destroyed when released by all their users. + * + */ + FT_EXPORT( void ) + FTC_Manager_RemoveFaceID( FTC_Manager manager, + FTC_FaceID face_id ); + + + /************************************************************************** + * + * @type: + * FTC_CMapCache + * + * @description: + * An opaque handle used to model a charmap cache. This cache is to hold + * character codes -> glyph indices mappings. + * + */ + typedef struct FTC_CMapCacheRec_* FTC_CMapCache; + + + /************************************************************************** + * + * @function: + * FTC_CMapCache_New + * + * @description: + * Create a new charmap cache. + * + * @input: + * manager :: + * A handle to the cache manager. + * + * @output: + * acache :: + * A new cache handle. `NULL` in case of error. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * Like all other caches, this one will be destroyed with the cache + * manager. + * + */ + FT_EXPORT( FT_Error ) + FTC_CMapCache_New( FTC_Manager manager, + FTC_CMapCache *acache ); + + + /************************************************************************** + * + * @function: + * FTC_CMapCache_Lookup + * + * @description: + * Translate a character code into a glyph index, using the charmap + * cache. + * + * @input: + * cache :: + * A charmap cache handle. + * + * face_id :: + * The source face ID. + * + * cmap_index :: + * The index of the charmap in the source face. Any negative value + * means to use the cache @FT_Face's default charmap. + * + * char_code :: + * The character code (in the corresponding charmap). + * + * @return: + * Glyph index. 0~means 'no glyph'. + * + */ + FT_EXPORT( FT_UInt ) + FTC_CMapCache_Lookup( FTC_CMapCache cache, + FTC_FaceID face_id, + FT_Int cmap_index, + FT_UInt32 char_code ); + + + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /***** *****/ + /***** IMAGE CACHE OBJECT *****/ + /***** *****/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + + + /************************************************************************** + * + * @struct: + * FTC_ImageTypeRec + * + * @description: + * A structure used to model the type of images in a glyph cache. + * + * @fields: + * face_id :: + * The face ID. + * + * width :: + * The width in pixels. + * + * height :: + * The height in pixels. + * + * flags :: + * The load flags, as in @FT_Load_Glyph. + * + */ + typedef struct FTC_ImageTypeRec_ + { + FTC_FaceID face_id; + FT_UInt width; + FT_UInt height; + FT_Int32 flags; + + } FTC_ImageTypeRec; + + + /************************************************************************** + * + * @type: + * FTC_ImageType + * + * @description: + * A handle to an @FTC_ImageTypeRec structure. + * + */ + typedef struct FTC_ImageTypeRec_* FTC_ImageType; + + + /* */ + + +#define FTC_IMAGE_TYPE_COMPARE( d1, d2 ) \ + ( (d1)->face_id == (d2)->face_id && \ + (d1)->width == (d2)->width && \ + (d1)->flags == (d2)->flags ) + + + /************************************************************************** + * + * @type: + * FTC_ImageCache + * + * @description: + * A handle to a glyph image cache object. They are designed to hold + * many distinct glyph images while not exceeding a certain memory + * threshold. + */ + typedef struct FTC_ImageCacheRec_* FTC_ImageCache; + + + /************************************************************************** + * + * @function: + * FTC_ImageCache_New + * + * @description: + * Create a new glyph image cache. + * + * @input: + * manager :: + * The parent manager for the image cache. + * + * @output: + * acache :: + * A handle to the new glyph image cache object. + * + * @return: + * FreeType error code. 0~means success. + */ + FT_EXPORT( FT_Error ) + FTC_ImageCache_New( FTC_Manager manager, + FTC_ImageCache *acache ); + + + /************************************************************************** + * + * @function: + * FTC_ImageCache_Lookup + * + * @description: + * Retrieve a given glyph image from a glyph image cache. + * + * @input: + * cache :: + * A handle to the source glyph image cache. + * + * type :: + * A pointer to a glyph image type descriptor. + * + * gindex :: + * The glyph index to retrieve. + * + * @output: + * aglyph :: + * The corresponding @FT_Glyph object. 0~in case of failure. + * + * anode :: + * Used to return the address of the corresponding cache node after + * incrementing its reference count (see note below). + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The returned glyph is owned and managed by the glyph image cache. + * Never try to transform or discard it manually! You can however create + * a copy with @FT_Glyph_Copy and modify the new one. + * + * If `anode` is _not_ `NULL`, it receives the address of the cache node + * containing the glyph image, after increasing its reference count. + * This ensures that the node (as well as the @FT_Glyph) will always be + * kept in the cache until you call @FTC_Node_Unref to 'release' it. + * + * If `anode` is `NULL`, the cache node is left unchanged, which means + * that the @FT_Glyph could be flushed out of the cache on the next call + * to one of the caching sub-system APIs. Don't assume that it is + * persistent! + */ + FT_EXPORT( FT_Error ) + FTC_ImageCache_Lookup( FTC_ImageCache cache, + FTC_ImageType type, + FT_UInt gindex, + FT_Glyph *aglyph, + FTC_Node *anode ); + + + /************************************************************************** + * + * @function: + * FTC_ImageCache_LookupScaler + * + * @description: + * A variant of @FTC_ImageCache_Lookup that uses an @FTC_ScalerRec to + * specify the face ID and its size. + * + * @input: + * cache :: + * A handle to the source glyph image cache. + * + * scaler :: + * A pointer to a scaler descriptor. + * + * load_flags :: + * The corresponding load flags. + * + * gindex :: + * The glyph index to retrieve. + * + * @output: + * aglyph :: + * The corresponding @FT_Glyph object. 0~in case of failure. + * + * anode :: + * Used to return the address of the corresponding cache node after + * incrementing its reference count (see note below). + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The returned glyph is owned and managed by the glyph image cache. + * Never try to transform or discard it manually! You can however create + * a copy with @FT_Glyph_Copy and modify the new one. + * + * If `anode` is _not_ `NULL`, it receives the address of the cache node + * containing the glyph image, after increasing its reference count. + * This ensures that the node (as well as the @FT_Glyph) will always be + * kept in the cache until you call @FTC_Node_Unref to 'release' it. + * + * If `anode` is `NULL`, the cache node is left unchanged, which means + * that the @FT_Glyph could be flushed out of the cache on the next call + * to one of the caching sub-system APIs. Don't assume that it is + * persistent! + * + * Calls to @FT_Set_Char_Size and friends have no effect on cached + * glyphs; you should always use the FreeType cache API instead. + */ + FT_EXPORT( FT_Error ) + FTC_ImageCache_LookupScaler( FTC_ImageCache cache, + FTC_Scaler scaler, + FT_ULong load_flags, + FT_UInt gindex, + FT_Glyph *aglyph, + FTC_Node *anode ); + + + /************************************************************************** + * + * @type: + * FTC_SBit + * + * @description: + * A handle to a small bitmap descriptor. See the @FTC_SBitRec structure + * for details. + */ + typedef struct FTC_SBitRec_* FTC_SBit; + + + /************************************************************************** + * + * @struct: + * FTC_SBitRec + * + * @description: + * A very compact structure used to describe a small glyph bitmap. + * + * @fields: + * width :: + * The bitmap width in pixels. + * + * height :: + * The bitmap height in pixels. + * + * left :: + * The horizontal distance from the pen position to the left bitmap + * border (a.k.a. 'left side bearing', or 'lsb'). + * + * top :: + * The vertical distance from the pen position (on the baseline) to the + * upper bitmap border (a.k.a. 'top side bearing'). The distance is + * positive for upwards y~coordinates. + * + * format :: + * The format of the glyph bitmap (monochrome or gray). + * + * max_grays :: + * Maximum gray level value (in the range 1 to~255). + * + * pitch :: + * The number of bytes per bitmap line. May be positive or negative. + * + * xadvance :: + * The horizontal advance width in pixels. + * + * yadvance :: + * The vertical advance height in pixels. + * + * buffer :: + * A pointer to the bitmap pixels. + */ + typedef struct FTC_SBitRec_ + { + FT_Byte width; + FT_Byte height; + FT_Char left; + FT_Char top; + + FT_Byte format; + FT_Byte max_grays; + FT_Short pitch; + FT_Char xadvance; + FT_Char yadvance; + + FT_Byte* buffer; + + } FTC_SBitRec; + + + /************************************************************************** + * + * @type: + * FTC_SBitCache + * + * @description: + * A handle to a small bitmap cache. These are special cache objects + * used to store small glyph bitmaps (and anti-aliased pixmaps) in a much + * more efficient way than the traditional glyph image cache implemented + * by @FTC_ImageCache. + */ + typedef struct FTC_SBitCacheRec_* FTC_SBitCache; + + + /************************************************************************** + * + * @function: + * FTC_SBitCache_New + * + * @description: + * Create a new cache to store small glyph bitmaps. + * + * @input: + * manager :: + * A handle to the source cache manager. + * + * @output: + * acache :: + * A handle to the new sbit cache. `NULL` in case of error. + * + * @return: + * FreeType error code. 0~means success. + */ + FT_EXPORT( FT_Error ) + FTC_SBitCache_New( FTC_Manager manager, + FTC_SBitCache *acache ); + + + /************************************************************************** + * + * @function: + * FTC_SBitCache_Lookup + * + * @description: + * Look up a given small glyph bitmap in a given sbit cache and 'lock' it + * to prevent its flushing from the cache until needed. + * + * @input: + * cache :: + * A handle to the source sbit cache. + * + * type :: + * A pointer to the glyph image type descriptor. + * + * gindex :: + * The glyph index. + * + * @output: + * sbit :: + * A handle to a small bitmap descriptor. + * + * anode :: + * Used to return the address of the corresponding cache node after + * incrementing its reference count (see note below). + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The small bitmap descriptor and its bit buffer are owned by the cache + * and should never be freed by the application. They might as well + * disappear from memory on the next cache lookup, so don't treat them as + * persistent data. + * + * The descriptor's `buffer` field is set to~0 to indicate a missing + * glyph bitmap. + * + * If `anode` is _not_ `NULL`, it receives the address of the cache node + * containing the bitmap, after increasing its reference count. This + * ensures that the node (as well as the image) will always be kept in + * the cache until you call @FTC_Node_Unref to 'release' it. + * + * If `anode` is `NULL`, the cache node is left unchanged, which means + * that the bitmap could be flushed out of the cache on the next call to + * one of the caching sub-system APIs. Don't assume that it is + * persistent! + */ + FT_EXPORT( FT_Error ) + FTC_SBitCache_Lookup( FTC_SBitCache cache, + FTC_ImageType type, + FT_UInt gindex, + FTC_SBit *sbit, + FTC_Node *anode ); + + + /************************************************************************** + * + * @function: + * FTC_SBitCache_LookupScaler + * + * @description: + * A variant of @FTC_SBitCache_Lookup that uses an @FTC_ScalerRec to + * specify the face ID and its size. + * + * @input: + * cache :: + * A handle to the source sbit cache. + * + * scaler :: + * A pointer to the scaler descriptor. + * + * load_flags :: + * The corresponding load flags. + * + * gindex :: + * The glyph index. + * + * @output: + * sbit :: + * A handle to a small bitmap descriptor. + * + * anode :: + * Used to return the address of the corresponding cache node after + * incrementing its reference count (see note below). + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The small bitmap descriptor and its bit buffer are owned by the cache + * and should never be freed by the application. They might as well + * disappear from memory on the next cache lookup, so don't treat them as + * persistent data. + * + * The descriptor's `buffer` field is set to~0 to indicate a missing + * glyph bitmap. + * + * If `anode` is _not_ `NULL`, it receives the address of the cache node + * containing the bitmap, after increasing its reference count. This + * ensures that the node (as well as the image) will always be kept in + * the cache until you call @FTC_Node_Unref to 'release' it. + * + * If `anode` is `NULL`, the cache node is left unchanged, which means + * that the bitmap could be flushed out of the cache on the next call to + * one of the caching sub-system APIs. Don't assume that it is + * persistent! + */ + FT_EXPORT( FT_Error ) + FTC_SBitCache_LookupScaler( FTC_SBitCache cache, + FTC_Scaler scaler, + FT_ULong load_flags, + FT_UInt gindex, + FTC_SBit *sbit, + FTC_Node *anode ); + + /* */ + + +FT_END_HEADER + +#endif /* FTCACHE_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftchapters.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftchapters.h new file mode 100644 index 00000000..7566fbd1 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftchapters.h @@ -0,0 +1,168 @@ +/**************************************************************************** + * + * This file defines the structure of the FreeType reference. + * It is used by the python script that generates the HTML files. + * + */ + + + /************************************************************************** + * + * @chapter: + * general_remarks + * + * @title: + * General Remarks + * + * @sections: + * preamble + * header_inclusion + * user_allocation + * + */ + + + /************************************************************************** + * + * @chapter: + * core_api + * + * @title: + * Core API + * + * @sections: + * basic_types + * library_setup + * face_creation + * font_testing_macros + * sizing_and_scaling + * glyph_retrieval + * character_mapping + * information_retrieval + * other_api_data + * + */ + + + /************************************************************************** + * + * @chapter: + * extended_api + * + * @title: + * Extended API + * + * @sections: + * glyph_variants + * color_management + * layer_management + * glyph_management + * mac_specific + * sizes_management + * header_file_macros + * + */ + + + /************************************************************************** + * + * @chapter: + * format_specific + * + * @title: + * Format-Specific API + * + * @sections: + * multiple_masters + * truetype_tables + * type1_tables + * sfnt_names + * bdf_fonts + * cid_fonts + * pfr_fonts + * winfnt_fonts + * svg_fonts + * font_formats + * gasp_table + * + */ + + + /************************************************************************** + * + * @chapter: + * module_specific + * + * @title: + * Controlling FreeType Modules + * + * @sections: + * auto_hinter + * cff_driver + * t1_cid_driver + * tt_driver + * pcf_driver + * ot_svg_driver + * properties + * parameter_tags + * lcd_rendering + * + */ + + + /************************************************************************** + * + * @chapter: + * cache_subsystem + * + * @title: + * Cache Sub-System + * + * @sections: + * cache_subsystem + * + */ + + + /************************************************************************** + * + * @chapter: + * support_api + * + * @title: + * Support API + * + * @sections: + * computations + * list_processing + * outline_processing + * quick_advance + * bitmap_handling + * raster + * glyph_stroker + * system_interface + * module_management + * gzip + * lzw + * bzip2 + * debugging_apis + * + */ + + + /************************************************************************** + * + * @chapter: + * error_codes + * + * @title: + * Error Codes + * + * @sections: + * error_enumerations + * error_code_values + * + */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftcid.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftcid.h new file mode 100644 index 00000000..96b2a90f --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftcid.h @@ -0,0 +1,167 @@ +/**************************************************************************** + * + * ftcid.h + * + * FreeType API for accessing CID font information (specification). + * + * Copyright (C) 2007-2024 by + * Dereg Clegg and Michael Toftdal. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTCID_H_ +#define FTCID_H_ + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * cid_fonts + * + * @title: + * CID Fonts + * + * @abstract: + * CID-keyed font-specific API. + * + * @description: + * This section contains the declaration of CID-keyed font-specific + * functions. + * + */ + + + /************************************************************************** + * + * @function: + * FT_Get_CID_Registry_Ordering_Supplement + * + * @description: + * Retrieve the Registry/Ordering/Supplement triple (also known as the + * "R/O/S") from a CID-keyed font. + * + * @input: + * face :: + * A handle to the input face. + * + * @output: + * registry :: + * The registry, as a C~string, owned by the face. + * + * ordering :: + * The ordering, as a C~string, owned by the face. + * + * supplement :: + * The supplement. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function only works with CID faces, returning an error + * otherwise. + * + * @since: + * 2.3.6 + */ + FT_EXPORT( FT_Error ) + FT_Get_CID_Registry_Ordering_Supplement( FT_Face face, + const char* *registry, + const char* *ordering, + FT_Int *supplement ); + + + /************************************************************************** + * + * @function: + * FT_Get_CID_Is_Internally_CID_Keyed + * + * @description: + * Retrieve the type of the input face, CID keyed or not. In contrast + * to the @FT_IS_CID_KEYED macro this function returns successfully also + * for CID-keyed fonts in an SFNT wrapper. + * + * @input: + * face :: + * A handle to the input face. + * + * @output: + * is_cid :: + * The type of the face as an @FT_Bool. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function only works with CID faces and OpenType fonts, returning + * an error otherwise. + * + * @since: + * 2.3.9 + */ + FT_EXPORT( FT_Error ) + FT_Get_CID_Is_Internally_CID_Keyed( FT_Face face, + FT_Bool *is_cid ); + + + /************************************************************************** + * + * @function: + * FT_Get_CID_From_Glyph_Index + * + * @description: + * Retrieve the CID of the input glyph index. + * + * @input: + * face :: + * A handle to the input face. + * + * glyph_index :: + * The input glyph index. + * + * @output: + * cid :: + * The CID as an @FT_UInt. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function only works with CID faces and OpenType fonts, returning + * an error otherwise. + * + * @since: + * 2.3.9 + */ + FT_EXPORT( FT_Error ) + FT_Get_CID_From_Glyph_Index( FT_Face face, + FT_UInt glyph_index, + FT_UInt *cid ); + + /* */ + + +FT_END_HEADER + +#endif /* FTCID_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftcolor.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftcolor.h new file mode 100644 index 00000000..420720dd --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftcolor.h @@ -0,0 +1,1667 @@ +/**************************************************************************** + * + * ftcolor.h + * + * FreeType's glyph color management (specification). + * + * Copyright (C) 2018-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTCOLOR_H_ +#define FTCOLOR_H_ + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * color_management + * + * @title: + * Glyph Color Management + * + * @abstract: + * Retrieving and manipulating OpenType's 'CPAL' table data. + * + * @description: + * The functions described here allow access and manipulation of color + * palette entries in OpenType's 'CPAL' tables. + */ + + + /************************************************************************** + * + * @struct: + * FT_Color + * + * @description: + * This structure models a BGRA color value of a 'CPAL' palette entry. + * + * The used color space is sRGB; the colors are not pre-multiplied, and + * alpha values must be explicitly set. + * + * @fields: + * blue :: + * Blue value. + * + * green :: + * Green value. + * + * red :: + * Red value. + * + * alpha :: + * Alpha value, giving the red, green, and blue color's opacity. + * + * @since: + * 2.10 + */ + typedef struct FT_Color_ + { + FT_Byte blue; + FT_Byte green; + FT_Byte red; + FT_Byte alpha; + + } FT_Color; + + + /************************************************************************** + * + * @enum: + * FT_PALETTE_XXX + * + * @description: + * A list of bit field constants used in the `palette_flags` array of the + * @FT_Palette_Data structure to indicate for which background a palette + * with a given index is usable. + * + * @values: + * FT_PALETTE_FOR_LIGHT_BACKGROUND :: + * The palette is appropriate to use when displaying the font on a + * light background such as white. + * + * FT_PALETTE_FOR_DARK_BACKGROUND :: + * The palette is appropriate to use when displaying the font on a dark + * background such as black. + * + * @since: + * 2.10 + */ +#define FT_PALETTE_FOR_LIGHT_BACKGROUND 0x01 +#define FT_PALETTE_FOR_DARK_BACKGROUND 0x02 + + + /************************************************************************** + * + * @struct: + * FT_Palette_Data + * + * @description: + * This structure holds the data of the 'CPAL' table. + * + * @fields: + * num_palettes :: + * The number of palettes. + * + * palette_name_ids :: + * An optional read-only array of palette name IDs with `num_palettes` + * elements, corresponding to entries like 'dark' or 'light' in the + * font's 'name' table. + * + * An empty name ID in the 'CPAL' table gets represented as value + * 0xFFFF. + * + * `NULL` if the font's 'CPAL' table doesn't contain appropriate data. + * + * palette_flags :: + * An optional read-only array of palette flags with `num_palettes` + * elements. Possible values are an ORed combination of + * @FT_PALETTE_FOR_LIGHT_BACKGROUND and + * @FT_PALETTE_FOR_DARK_BACKGROUND. + * + * `NULL` if the font's 'CPAL' table doesn't contain appropriate data. + * + * num_palette_entries :: + * The number of entries in a single palette. All palettes have the + * same size. + * + * palette_entry_name_ids :: + * An optional read-only array of palette entry name IDs with + * `num_palette_entries`. In each palette, entries with the same index + * have the same function. For example, index~0 might correspond to + * string 'outline' in the font's 'name' table to indicate that this + * palette entry is used for outlines, index~1 might correspond to + * 'fill' to indicate the filling color palette entry, etc. + * + * An empty entry name ID in the 'CPAL' table gets represented as value + * 0xFFFF. + * + * `NULL` if the font's 'CPAL' table doesn't contain appropriate data. + * + * @note: + * Use function @FT_Get_Sfnt_Name to map name IDs and entry name IDs to + * name strings. + * + * Use function @FT_Palette_Select to get the colors associated with a + * palette entry. + * + * @since: + * 2.10 + */ + typedef struct FT_Palette_Data_ { + FT_UShort num_palettes; + const FT_UShort* palette_name_ids; + const FT_UShort* palette_flags; + + FT_UShort num_palette_entries; + const FT_UShort* palette_entry_name_ids; + + } FT_Palette_Data; + + + /************************************************************************** + * + * @function: + * FT_Palette_Data_Get + * + * @description: + * Retrieve the face's color palette data. + * + * @input: + * face :: + * The source face handle. + * + * @output: + * apalette :: + * A pointer to an @FT_Palette_Data structure. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * All arrays in the returned @FT_Palette_Data structure are read-only. + * + * This function always returns an error if the config macro + * `TT_CONFIG_OPTION_COLOR_LAYERS` is not defined in `ftoption.h`. + * + * @since: + * 2.10 + */ + FT_EXPORT( FT_Error ) + FT_Palette_Data_Get( FT_Face face, + FT_Palette_Data *apalette ); + + + /************************************************************************** + * + * @function: + * FT_Palette_Select + * + * @description: + * This function has two purposes. + * + * (1) It activates a palette for rendering color glyphs, and + * + * (2) it retrieves all (unmodified) color entries of this palette. This + * function returns a read-write array, which means that a calling + * application can modify the palette entries on demand. + * + * A corollary of (2) is that calling the function, then modifying some + * values, then calling the function again with the same arguments resets + * all color entries to the original 'CPAL' values; all user modifications + * are lost. + * + * @input: + * face :: + * The source face handle. + * + * palette_index :: + * The palette index. + * + * @output: + * apalette :: + * An array of color entries for a palette with index `palette_index`, + * having `num_palette_entries` elements (as found in the + * `FT_Palette_Data` structure). If `apalette` is set to `NULL`, no + * array gets returned (and no color entries can be modified). + * + * In case the font doesn't support color palettes, `NULL` is returned. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The array pointed to by `apalette_entries` is owned and managed by + * FreeType. + * + * This function always returns an error if the config macro + * `TT_CONFIG_OPTION_COLOR_LAYERS` is not defined in `ftoption.h`. + * + * @since: + * 2.10 + */ + FT_EXPORT( FT_Error ) + FT_Palette_Select( FT_Face face, + FT_UShort palette_index, + FT_Color* *apalette ); + + + /************************************************************************** + * + * @function: + * FT_Palette_Set_Foreground_Color + * + * @description: + * 'COLR' uses palette index 0xFFFF to indicate a 'text foreground + * color'. This function sets this value. + * + * @input: + * face :: + * The source face handle. + * + * foreground_color :: + * An `FT_Color` structure to define the text foreground color. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * If this function isn't called, the text foreground color is set to + * white opaque (BGRA value 0xFFFFFFFF) if + * @FT_PALETTE_FOR_DARK_BACKGROUND is present for the current palette, + * and black opaque (BGRA value 0x000000FF) otherwise, including the case + * that no palette types are available in the 'CPAL' table. + * + * This function always returns an error if the config macro + * `TT_CONFIG_OPTION_COLOR_LAYERS` is not defined in `ftoption.h`. + * + * @since: + * 2.10 + */ + FT_EXPORT( FT_Error ) + FT_Palette_Set_Foreground_Color( FT_Face face, + FT_Color foreground_color ); + + + /************************************************************************** + * + * @section: + * layer_management + * + * @title: + * Glyph Layer Management + * + * @abstract: + * Retrieving and manipulating OpenType's 'COLR' table data. + * + * @description: + * The functions described here allow access of colored glyph layer data + * in OpenType's 'COLR' tables. + */ + + + /************************************************************************** + * + * @struct: + * FT_LayerIterator + * + * @description: + * This iterator object is needed for @FT_Get_Color_Glyph_Layer. + * + * @fields: + * num_layers :: + * The number of glyph layers for the requested glyph index. Will be + * set by @FT_Get_Color_Glyph_Layer. + * + * layer :: + * The current layer. Will be set by @FT_Get_Color_Glyph_Layer. + * + * p :: + * An opaque pointer into 'COLR' table data. The caller must set this + * to `NULL` before the first call of @FT_Get_Color_Glyph_Layer. + */ + typedef struct FT_LayerIterator_ + { + FT_UInt num_layers; + FT_UInt layer; + FT_Byte* p; + + } FT_LayerIterator; + + + /************************************************************************** + * + * @function: + * FT_Get_Color_Glyph_Layer + * + * @description: + * This is an interface to the 'COLR' table in OpenType fonts to + * iteratively retrieve the colored glyph layers associated with the + * current glyph slot. + * + * https://docs.microsoft.com/en-us/typography/opentype/spec/colr + * + * The glyph layer data for a given glyph index, if present, provides an + * alternative, multi-color glyph representation: Instead of rendering + * the outline or bitmap with the given glyph index, glyphs with the + * indices and colors returned by this function are rendered layer by + * layer. + * + * The returned elements are ordered in the z~direction from bottom to + * top; the 'n'th element should be rendered with the associated palette + * color and blended on top of the already rendered layers (elements 0, + * 1, ..., n-1). + * + * @input: + * face :: + * A handle to the parent face object. + * + * base_glyph :: + * The glyph index the colored glyph layers are associated with. + * + * @inout: + * iterator :: + * An @FT_LayerIterator object. For the first call you should set + * `iterator->p` to `NULL`. For all following calls, simply use the + * same object again. + * + * @output: + * aglyph_index :: + * The glyph index of the current layer. + * + * acolor_index :: + * The color index into the font face's color palette of the current + * layer. The value 0xFFFF is special; it doesn't reference a palette + * entry but indicates that the text foreground color should be used + * instead (to be set up by the application outside of FreeType). + * + * The color palette can be retrieved with @FT_Palette_Select. + * + * @return: + * Value~1 if everything is OK. If there are no more layers (or if there + * are no layers at all), value~0 gets returned. In case of an error, + * value~0 is returned also. + * + * @note: + * This function is necessary if you want to handle glyph layers by + * yourself. In particular, functions that operate with @FT_GlyphRec + * objects (like @FT_Get_Glyph or @FT_Glyph_To_Bitmap) don't have access + * to this information. + * + * Note that @FT_Render_Glyph is able to handle colored glyph layers + * automatically if the @FT_LOAD_COLOR flag is passed to a previous call + * to @FT_Load_Glyph. [This is an experimental feature.] + * + * @example: + * ``` + * FT_Color* palette; + * FT_LayerIterator iterator; + * + * FT_Bool have_layers; + * FT_UInt layer_glyph_index; + * FT_UInt layer_color_index; + * + * + * error = FT_Palette_Select( face, palette_index, &palette ); + * if ( error ) + * palette = NULL; + * + * iterator.p = NULL; + * have_layers = FT_Get_Color_Glyph_Layer( face, + * glyph_index, + * &layer_glyph_index, + * &layer_color_index, + * &iterator ); + * + * if ( palette && have_layers ) + * { + * do + * { + * FT_Color layer_color; + * + * + * if ( layer_color_index == 0xFFFF ) + * layer_color = text_foreground_color; + * else + * layer_color = palette[layer_color_index]; + * + * // Load and render glyph `layer_glyph_index', then + * // blend resulting pixmap (using color `layer_color') + * // with previously created pixmaps. + * + * } while ( FT_Get_Color_Glyph_Layer( face, + * glyph_index, + * &layer_glyph_index, + * &layer_color_index, + * &iterator ) ); + * } + * ``` + * + * @since: + * 2.10 + */ + FT_EXPORT( FT_Bool ) + FT_Get_Color_Glyph_Layer( FT_Face face, + FT_UInt base_glyph, + FT_UInt *aglyph_index, + FT_UInt *acolor_index, + FT_LayerIterator* iterator ); + + + /************************************************************************** + * + * @enum: + * FT_PaintFormat + * + * @description: + * Enumeration describing the different paint format types of the v1 + * extensions to the 'COLR' table, see + * 'https://github.com/googlefonts/colr-gradients-spec'. + * + * The enumeration values loosely correspond with the format numbers of + * the specification: FreeType always returns a fully specified 'Paint' + * structure for the 'Transform', 'Translate', 'Scale', 'Rotate', and + * 'Skew' table types even though the specification has different formats + * depending on whether or not a center is specified, whether the scale + * is uniform in x and y~direction or not, etc. Also, only non-variable + * format identifiers are listed in this enumeration; as soon as support + * for variable 'COLR' v1 fonts is implemented, interpolation is + * performed dependent on axis coordinates, which are configured on the + * @FT_Face through @FT_Set_Var_Design_Coordinates. This implies that + * always static, readily interpolated values are returned in the 'Paint' + * structures. + * + * @since: + * 2.13 + */ + typedef enum FT_PaintFormat_ + { + FT_COLR_PAINTFORMAT_COLR_LAYERS = 1, + FT_COLR_PAINTFORMAT_SOLID = 2, + FT_COLR_PAINTFORMAT_LINEAR_GRADIENT = 4, + FT_COLR_PAINTFORMAT_RADIAL_GRADIENT = 6, + FT_COLR_PAINTFORMAT_SWEEP_GRADIENT = 8, + FT_COLR_PAINTFORMAT_GLYPH = 10, + FT_COLR_PAINTFORMAT_COLR_GLYPH = 11, + FT_COLR_PAINTFORMAT_TRANSFORM = 12, + FT_COLR_PAINTFORMAT_TRANSLATE = 14, + FT_COLR_PAINTFORMAT_SCALE = 16, + FT_COLR_PAINTFORMAT_ROTATE = 24, + FT_COLR_PAINTFORMAT_SKEW = 28, + FT_COLR_PAINTFORMAT_COMPOSITE = 32, + FT_COLR_PAINT_FORMAT_MAX = 33, + FT_COLR_PAINTFORMAT_UNSUPPORTED = 255 + + } FT_PaintFormat; + + + /************************************************************************** + * + * @struct: + * FT_ColorStopIterator + * + * @description: + * This iterator object is needed for @FT_Get_Colorline_Stops. It keeps + * state while iterating over the stops of an @FT_ColorLine, representing + * the `ColorLine` struct of the v1 extensions to 'COLR', see + * 'https://github.com/googlefonts/colr-gradients-spec'. Do not manually + * modify fields of this iterator. + * + * @fields: + * num_color_stops :: + * The number of color stops for the requested glyph index. Set by + * @FT_Get_Paint. + * + * current_color_stop :: + * The current color stop. Set by @FT_Get_Colorline_Stops. + * + * p :: + * An opaque pointer into 'COLR' table data. Set by @FT_Get_Paint. + * Updated by @FT_Get_Colorline_Stops. + * + * read_variable :: + * A boolean keeping track of whether variable color lines are to be + * read. Set by @FT_Get_Paint. + * + * @since: + * 2.13 + */ + typedef struct FT_ColorStopIterator_ + { + FT_UInt num_color_stops; + FT_UInt current_color_stop; + + FT_Byte* p; + + FT_Bool read_variable; + + } FT_ColorStopIterator; + + + /************************************************************************** + * + * @struct: + * FT_ColorIndex + * + * @description: + * A structure representing a `ColorIndex` value of the 'COLR' v1 + * extensions, see 'https://github.com/googlefonts/colr-gradients-spec'. + * + * @fields: + * palette_index :: + * The palette index into a 'CPAL' palette. + * + * alpha :: + * Alpha transparency value multiplied with the value from 'CPAL'. + * + * @since: + * 2.13 + */ + typedef struct FT_ColorIndex_ + { + FT_UInt16 palette_index; + FT_F2Dot14 alpha; + + } FT_ColorIndex; + + + /************************************************************************** + * + * @struct: + * FT_ColorStop + * + * @description: + * A structure representing a `ColorStop` value of the 'COLR' v1 + * extensions, see 'https://github.com/googlefonts/colr-gradients-spec'. + * + * @fields: + * stop_offset :: + * The stop offset along the gradient, expressed as a 16.16 fixed-point + * coordinate. + * + * color :: + * The color information for this stop, see @FT_ColorIndex. + * + * @since: + * 2.13 + */ + typedef struct FT_ColorStop_ + { + FT_Fixed stop_offset; + FT_ColorIndex color; + + } FT_ColorStop; + + + /************************************************************************** + * + * @enum: + * FT_PaintExtend + * + * @description: + * An enumeration representing the 'Extend' mode of the 'COLR' v1 + * extensions, see 'https://github.com/googlefonts/colr-gradients-spec'. + * It describes how the gradient fill continues at the other boundaries. + * + * @since: + * 2.13 + */ + typedef enum FT_PaintExtend_ + { + FT_COLR_PAINT_EXTEND_PAD = 0, + FT_COLR_PAINT_EXTEND_REPEAT = 1, + FT_COLR_PAINT_EXTEND_REFLECT = 2 + + } FT_PaintExtend; + + + /************************************************************************** + * + * @struct: + * FT_ColorLine + * + * @description: + * A structure representing a `ColorLine` value of the 'COLR' v1 + * extensions, see 'https://github.com/googlefonts/colr-gradients-spec'. + * It describes a list of color stops along the defined gradient. + * + * @fields: + * extend :: + * The extend mode at the outer boundaries, see @FT_PaintExtend. + * + * color_stop_iterator :: + * The @FT_ColorStopIterator used to enumerate and retrieve the + * actual @FT_ColorStop's. + * + * @since: + * 2.13 + */ + typedef struct FT_ColorLine_ + { + FT_PaintExtend extend; + FT_ColorStopIterator color_stop_iterator; + + } FT_ColorLine; + + + /************************************************************************** + * + * @struct: + * FT_Affine23 + * + * @description: + * A structure used to store a 2x3 matrix. Coefficients are in + * 16.16 fixed-point format. The computation performed is + * + * ``` + * x' = x*xx + y*xy + dx + * y' = x*yx + y*yy + dy + * ``` + * + * @fields: + * xx :: + * Matrix coefficient. + * + * xy :: + * Matrix coefficient. + * + * dx :: + * x translation. + * + * yx :: + * Matrix coefficient. + * + * yy :: + * Matrix coefficient. + * + * dy :: + * y translation. + * + * @since: + * 2.13 + */ + typedef struct FT_Affine_23_ + { + FT_Fixed xx, xy, dx; + FT_Fixed yx, yy, dy; + + } FT_Affine23; + + + /************************************************************************** + * + * @enum: + * FT_Composite_Mode + * + * @description: + * An enumeration listing the 'COLR' v1 composite modes used in + * @FT_PaintComposite. For more details on each paint mode, see + * 'https://www.w3.org/TR/compositing-1/#porterduffcompositingoperators'. + * + * @since: + * 2.13 + */ + typedef enum FT_Composite_Mode_ + { + FT_COLR_COMPOSITE_CLEAR = 0, + FT_COLR_COMPOSITE_SRC = 1, + FT_COLR_COMPOSITE_DEST = 2, + FT_COLR_COMPOSITE_SRC_OVER = 3, + FT_COLR_COMPOSITE_DEST_OVER = 4, + FT_COLR_COMPOSITE_SRC_IN = 5, + FT_COLR_COMPOSITE_DEST_IN = 6, + FT_COLR_COMPOSITE_SRC_OUT = 7, + FT_COLR_COMPOSITE_DEST_OUT = 8, + FT_COLR_COMPOSITE_SRC_ATOP = 9, + FT_COLR_COMPOSITE_DEST_ATOP = 10, + FT_COLR_COMPOSITE_XOR = 11, + FT_COLR_COMPOSITE_PLUS = 12, + FT_COLR_COMPOSITE_SCREEN = 13, + FT_COLR_COMPOSITE_OVERLAY = 14, + FT_COLR_COMPOSITE_DARKEN = 15, + FT_COLR_COMPOSITE_LIGHTEN = 16, + FT_COLR_COMPOSITE_COLOR_DODGE = 17, + FT_COLR_COMPOSITE_COLOR_BURN = 18, + FT_COLR_COMPOSITE_HARD_LIGHT = 19, + FT_COLR_COMPOSITE_SOFT_LIGHT = 20, + FT_COLR_COMPOSITE_DIFFERENCE = 21, + FT_COLR_COMPOSITE_EXCLUSION = 22, + FT_COLR_COMPOSITE_MULTIPLY = 23, + FT_COLR_COMPOSITE_HSL_HUE = 24, + FT_COLR_COMPOSITE_HSL_SATURATION = 25, + FT_COLR_COMPOSITE_HSL_COLOR = 26, + FT_COLR_COMPOSITE_HSL_LUMINOSITY = 27, + FT_COLR_COMPOSITE_MAX = 28 + + } FT_Composite_Mode; + + + /************************************************************************** + * + * @struct: + * FT_OpaquePaint + * + * @description: + * A structure representing an offset to a `Paint` value stored in any + * of the paint tables of a 'COLR' v1 font. Compare Offset<24> there. + * When 'COLR' v1 paint tables represented by FreeType objects such as + * @FT_PaintColrLayers, @FT_PaintComposite, or @FT_PaintTransform + * reference downstream nested paint tables, we do not immediately + * retrieve them but encapsulate their location in this type. Use + * @FT_Get_Paint to retrieve the actual @FT_COLR_Paint object that + * describes the details of the respective paint table. + * + * @fields: + * p :: + * An internal offset to a Paint table, needs to be set to NULL before + * passing this struct as an argument to @FT_Get_Paint. + * + * insert_root_transform :: + * An internal boolean to track whether an initial root transform is + * to be provided. Do not set this value. + * + * @since: + * 2.13 + */ + typedef struct FT_Opaque_Paint_ + { + FT_Byte* p; + FT_Bool insert_root_transform; + } FT_OpaquePaint; + + + /************************************************************************** + * + * @struct: + * FT_PaintColrLayers + * + * @description: + * A structure representing a `PaintColrLayers` table of a 'COLR' v1 + * font. This table describes a set of layers that are to be composited + * with composite mode `FT_COLR_COMPOSITE_SRC_OVER`. The return value + * of this function is an @FT_LayerIterator initialized so that it can + * be used with @FT_Get_Paint_Layers to retrieve the @FT_OpaquePaint + * objects as references to each layer. + * + * @fields: + * layer_iterator :: + * The layer iterator that describes the layers of this paint. + * + * @since: + * 2.13 + */ + typedef struct FT_PaintColrLayers_ + { + FT_LayerIterator layer_iterator; + + } FT_PaintColrLayers; + + + /************************************************************************** + * + * @struct: + * FT_PaintSolid + * + * @description: + * A structure representing a `PaintSolid` value of the 'COLR' v1 + * extensions, see 'https://github.com/googlefonts/colr-gradients-spec'. + * Using a `PaintSolid` value means that the glyph layer filled with + * this paint is solid-colored and does not contain a gradient. + * + * @fields: + * color :: + * The color information for this solid paint, see @FT_ColorIndex. + * + * @since: + * 2.13 + */ + typedef struct FT_PaintSolid_ + { + FT_ColorIndex color; + + } FT_PaintSolid; + + + /************************************************************************** + * + * @struct: + * FT_PaintLinearGradient + * + * @description: + * A structure representing a `PaintLinearGradient` value of the 'COLR' + * v1 extensions, see + * 'https://github.com/googlefonts/colr-gradients-spec'. The glyph + * layer filled with this paint is drawn filled with a linear gradient. + * + * @fields: + * colorline :: + * The @FT_ColorLine information for this paint, i.e., the list of + * color stops along the gradient. + * + * p0 :: + * The starting point of the gradient definition in font units + * represented as a 16.16 fixed-point `FT_Vector`. + * + * p1 :: + * The end point of the gradient definition in font units + * represented as a 16.16 fixed-point `FT_Vector`. + * + * p2 :: + * Optional point~p2 to rotate the gradient in font units + * represented as a 16.16 fixed-point `FT_Vector`. + * Otherwise equal to~p0. + * + * @since: + * 2.13 + */ + typedef struct FT_PaintLinearGradient_ + { + FT_ColorLine colorline; + + /* TODO: Potentially expose those as x0, y0 etc. */ + FT_Vector p0; + FT_Vector p1; + FT_Vector p2; + + } FT_PaintLinearGradient; + + + /************************************************************************** + * + * @struct: + * FT_PaintRadialGradient + * + * @description: + * A structure representing a `PaintRadialGradient` value of the 'COLR' + * v1 extensions, see + * 'https://github.com/googlefonts/colr-gradients-spec'. The glyph + * layer filled with this paint is drawn filled with a radial gradient. + * + * @fields: + * colorline :: + * The @FT_ColorLine information for this paint, i.e., the list of + * color stops along the gradient. + * + * c0 :: + * The center of the starting point of the radial gradient in font + * units represented as a 16.16 fixed-point `FT_Vector`. + * + * r0 :: + * The radius of the starting circle of the radial gradient in font + * units represented as a 16.16 fixed-point value. + * + * c1 :: + * The center of the end point of the radial gradient in font units + * represented as a 16.16 fixed-point `FT_Vector`. + * + * r1 :: + * The radius of the end circle of the radial gradient in font + * units represented as a 16.16 fixed-point value. + * + * @since: + * 2.13 + */ + typedef struct FT_PaintRadialGradient_ + { + FT_ColorLine colorline; + + FT_Vector c0; + FT_Pos r0; + FT_Vector c1; + FT_Pos r1; + + } FT_PaintRadialGradient; + + + /************************************************************************** + * + * @struct: + * FT_PaintSweepGradient + * + * @description: + * A structure representing a `PaintSweepGradient` value of the 'COLR' + * v1 extensions, see + * 'https://github.com/googlefonts/colr-gradients-spec'. The glyph + * layer filled with this paint is drawn filled with a sweep gradient + * from `start_angle` to `end_angle`. + * + * @fields: + * colorline :: + * The @FT_ColorLine information for this paint, i.e., the list of + * color stops along the gradient. + * + * center :: + * The center of the sweep gradient in font units represented as a + * vector of 16.16 fixed-point values. + * + * start_angle :: + * The start angle of the sweep gradient in 16.16 fixed-point + * format specifying degrees divided by 180.0 (as in the + * spec). Multiply by 180.0f to receive degrees value. Values are + * given counter-clockwise, starting from the (positive) y~axis. + * + * end_angle :: + * The end angle of the sweep gradient in 16.16 fixed-point + * format specifying degrees divided by 180.0 (as in the + * spec). Multiply by 180.0f to receive degrees value. Values are + * given counter-clockwise, starting from the (positive) y~axis. + * + * @since: + * 2.13 + */ + typedef struct FT_PaintSweepGradient_ + { + FT_ColorLine colorline; + + FT_Vector center; + FT_Fixed start_angle; + FT_Fixed end_angle; + + } FT_PaintSweepGradient; + + + /************************************************************************** + * + * @struct: + * FT_PaintGlyph + * + * @description: + * A structure representing a 'COLR' v1 `PaintGlyph` paint table. + * + * @fields: + * paint :: + * An opaque paint object pointing to a `Paint` table that serves as + * the fill for the glyph ID. + * + * glyphID :: + * The glyph ID from the 'glyf' table, which serves as the contour + * information that is filled with paint. + * + * @since: + * 2.13 + */ + typedef struct FT_PaintGlyph_ + { + FT_OpaquePaint paint; + FT_UInt glyphID; + + } FT_PaintGlyph; + + + /************************************************************************** + * + * @struct: + * FT_PaintColrGlyph + * + * @description: + * A structure representing a 'COLR' v1 `PaintColorGlyph` paint table. + * + * @fields: + * glyphID :: + * The glyph ID from the `BaseGlyphV1List` table that is drawn for + * this paint. + * + * @since: + * 2.13 + */ + typedef struct FT_PaintColrGlyph_ + { + FT_UInt glyphID; + + } FT_PaintColrGlyph; + + + /************************************************************************** + * + * @struct: + * FT_PaintTransform + * + * @description: + * A structure representing a 'COLR' v1 `PaintTransform` paint table. + * + * @fields: + * paint :: + * An opaque paint that is subject to being transformed. + * + * affine :: + * A 2x3 transformation matrix in @FT_Affine23 format containing + * 16.16 fixed-point values. + * + * @since: + * 2.13 + */ + typedef struct FT_PaintTransform_ + { + FT_OpaquePaint paint; + FT_Affine23 affine; + + } FT_PaintTransform; + + + /************************************************************************** + * + * @struct: + * FT_PaintTranslate + * + * @description: + * A structure representing a 'COLR' v1 `PaintTranslate` paint table. + * Used for translating downstream paints by a given x and y~delta. + * + * @fields: + * paint :: + * An @FT_OpaquePaint object referencing the paint that is to be + * rotated. + * + * dx :: + * Translation in x~direction in font units represented as a + * 16.16 fixed-point value. + * + * dy :: + * Translation in y~direction in font units represented as a + * 16.16 fixed-point value. + * + * @since: + * 2.13 + */ + typedef struct FT_PaintTranslate_ + { + FT_OpaquePaint paint; + + FT_Fixed dx; + FT_Fixed dy; + + } FT_PaintTranslate; + + + /************************************************************************** + * + * @struct: + * FT_PaintScale + * + * @description: + * A structure representing all of the 'COLR' v1 'PaintScale*' paint + * tables. Used for scaling downstream paints by a given x and y~scale, + * with a given center. This structure is used for all 'PaintScale*' + * types that are part of specification; fields of this structure are + * filled accordingly. If there is a center, the center values are set, + * otherwise they are set to the zero coordinate. If the source font + * file has 'PaintScaleUniform*' set, the scale values are set + * accordingly to the same value. + * + * @fields: + * paint :: + * An @FT_OpaquePaint object referencing the paint that is to be + * scaled. + * + * scale_x :: + * Scale factor in x~direction represented as a + * 16.16 fixed-point value. + * + * scale_y :: + * Scale factor in y~direction represented as a + * 16.16 fixed-point value. + * + * center_x :: + * x~coordinate of center point to scale from represented as a + * 16.16 fixed-point value. + * + * center_y :: + * y~coordinate of center point to scale from represented as a + * 16.16 fixed-point value. + * + * @since: + * 2.13 + */ + typedef struct FT_PaintScale_ + { + FT_OpaquePaint paint; + + FT_Fixed scale_x; + FT_Fixed scale_y; + + FT_Fixed center_x; + FT_Fixed center_y; + + } FT_PaintScale; + + + /************************************************************************** + * + * @struct: + * FT_PaintRotate + * + * @description: + * A structure representing a 'COLR' v1 `PaintRotate` paint table. Used + * for rotating downstream paints with a given center and angle. + * + * @fields: + * paint :: + * An @FT_OpaquePaint object referencing the paint that is to be + * rotated. + * + * angle :: + * The rotation angle that is to be applied in degrees divided by + * 180.0 (as in the spec) represented as a 16.16 fixed-point + * value. Multiply by 180.0f to receive degrees value. + * + * center_x :: + * The x~coordinate of the pivot point of the rotation in font + * units represented as a 16.16 fixed-point value. + * + * center_y :: + * The y~coordinate of the pivot point of the rotation in font + * units represented as a 16.16 fixed-point value. + * + * @since: + * 2.13 + */ + + typedef struct FT_PaintRotate_ + { + FT_OpaquePaint paint; + + FT_Fixed angle; + + FT_Fixed center_x; + FT_Fixed center_y; + + } FT_PaintRotate; + + + /************************************************************************** + * + * @struct: + * FT_PaintSkew + * + * @description: + * A structure representing a 'COLR' v1 `PaintSkew` paint table. Used + * for skewing or shearing downstream paints by a given center and + * angle. + * + * @fields: + * paint :: + * An @FT_OpaquePaint object referencing the paint that is to be + * skewed. + * + * x_skew_angle :: + * The skewing angle in x~direction in degrees divided by 180.0 + * (as in the spec) represented as a 16.16 fixed-point + * value. Multiply by 180.0f to receive degrees. + * + * y_skew_angle :: + * The skewing angle in y~direction in degrees divided by 180.0 + * (as in the spec) represented as a 16.16 fixed-point + * value. Multiply by 180.0f to receive degrees. + * + * center_x :: + * The x~coordinate of the pivot point of the skew in font units + * represented as a 16.16 fixed-point value. + * + * center_y :: + * The y~coordinate of the pivot point of the skew in font units + * represented as a 16.16 fixed-point value. + * + * @since: + * 2.13 + */ + typedef struct FT_PaintSkew_ + { + FT_OpaquePaint paint; + + FT_Fixed x_skew_angle; + FT_Fixed y_skew_angle; + + FT_Fixed center_x; + FT_Fixed center_y; + + } FT_PaintSkew; + + + /************************************************************************** + * + * @struct: + * FT_PaintComposite + * + * @description: + * A structure representing a 'COLR' v1 `PaintComposite` paint table. + * Used for compositing two paints in a 'COLR' v1 directed acyclic graph. + * + * @fields: + * source_paint :: + * An @FT_OpaquePaint object referencing the source that is to be + * composited. + * + * composite_mode :: + * An @FT_Composite_Mode enum value determining the composition + * operation. + * + * backdrop_paint :: + * An @FT_OpaquePaint object referencing the backdrop paint that + * `source_paint` is composited onto. + * + * @since: + * 2.13 + */ + typedef struct FT_PaintComposite_ + { + FT_OpaquePaint source_paint; + FT_Composite_Mode composite_mode; + FT_OpaquePaint backdrop_paint; + + } FT_PaintComposite; + + + /************************************************************************** + * + * @union: + * FT_COLR_Paint + * + * @description: + * A union object representing format and details of a paint table of a + * 'COLR' v1 font, see + * 'https://github.com/googlefonts/colr-gradients-spec'. Use + * @FT_Get_Paint to retrieve a @FT_COLR_Paint for an @FT_OpaquePaint + * object. + * + * @fields: + * format :: + * The gradient format for this Paint structure. + * + * u :: + * Union of all paint table types: + * + * * @FT_PaintColrLayers + * * @FT_PaintGlyph + * * @FT_PaintSolid + * * @FT_PaintLinearGradient + * * @FT_PaintRadialGradient + * * @FT_PaintSweepGradient + * * @FT_PaintTransform + * * @FT_PaintTranslate + * * @FT_PaintRotate + * * @FT_PaintSkew + * * @FT_PaintComposite + * * @FT_PaintColrGlyph + * + * @since: + * 2.13 + */ + typedef struct FT_COLR_Paint_ + { + FT_PaintFormat format; + + union + { + FT_PaintColrLayers colr_layers; + FT_PaintGlyph glyph; + FT_PaintSolid solid; + FT_PaintLinearGradient linear_gradient; + FT_PaintRadialGradient radial_gradient; + FT_PaintSweepGradient sweep_gradient; + FT_PaintTransform transform; + FT_PaintTranslate translate; + FT_PaintScale scale; + FT_PaintRotate rotate; + FT_PaintSkew skew; + FT_PaintComposite composite; + FT_PaintColrGlyph colr_glyph; + + } u; + + } FT_COLR_Paint; + + + /************************************************************************** + * + * @enum: + * FT_Color_Root_Transform + * + * @description: + * An enumeration to specify whether @FT_Get_Color_Glyph_Paint is to + * return a root transform to configure the client's graphics context + * matrix. + * + * @values: + * FT_COLOR_INCLUDE_ROOT_TRANSFORM :: + * Do include the root transform as the initial @FT_COLR_Paint object. + * + * FT_COLOR_NO_ROOT_TRANSFORM :: + * Do not output an initial root transform. + * + * @since: + * 2.13 + */ + typedef enum FT_Color_Root_Transform_ + { + FT_COLOR_INCLUDE_ROOT_TRANSFORM, + FT_COLOR_NO_ROOT_TRANSFORM, + + FT_COLOR_ROOT_TRANSFORM_MAX + + } FT_Color_Root_Transform; + + + /************************************************************************** + * + * @struct: + * FT_ClipBox + * + * @description: + * A structure representing a 'COLR' v1 'ClipBox' table. 'COLR' v1 + * glyphs may optionally define a clip box for aiding allocation or + * defining a maximum drawable region. Use @FT_Get_Color_Glyph_ClipBox + * to retrieve it. + * + * @fields: + * bottom_left :: + * The bottom left corner of the clip box as an @FT_Vector with + * fixed-point coordinates in 26.6 format. + * + * top_left :: + * The top left corner of the clip box as an @FT_Vector with + * fixed-point coordinates in 26.6 format. + * + * top_right :: + * The top right corner of the clip box as an @FT_Vector with + * fixed-point coordinates in 26.6 format. + * + * bottom_right :: + * The bottom right corner of the clip box as an @FT_Vector with + * fixed-point coordinates in 26.6 format. + * + * @since: + * 2.13 + */ + typedef struct FT_ClipBox_ + { + FT_Vector bottom_left; + FT_Vector top_left; + FT_Vector top_right; + FT_Vector bottom_right; + + } FT_ClipBox; + + + /************************************************************************** + * + * @function: + * FT_Get_Color_Glyph_Paint + * + * @description: + * This is the starting point and interface to color gradient + * information in a 'COLR' v1 table in OpenType fonts to recursively + * retrieve the paint tables for the directed acyclic graph of a colored + * glyph, given a glyph ID. + * + * https://github.com/googlefonts/colr-gradients-spec + * + * In a 'COLR' v1 font, each color glyph defines a directed acyclic + * graph of nested paint tables, such as `PaintGlyph`, `PaintSolid`, + * `PaintLinearGradient`, `PaintRadialGradient`, and so on. Using this + * function and specifying a glyph ID, one retrieves the root paint + * table for this glyph ID. + * + * This function allows control whether an initial root transform is + * returned to configure scaling, transform, and translation correctly + * on the client's graphics context. The initial root transform is + * computed and returned according to the values configured for @FT_Size + * and @FT_Set_Transform on the @FT_Face object, see below for details + * of the `root_transform` parameter. This has implications for a + * client 'COLR' v1 implementation: When this function returns an + * initially computed root transform, at the time of executing the + * @FT_PaintGlyph operation, the contours should be retrieved using + * @FT_Load_Glyph at unscaled, untransformed size. This is because the + * root transform applied to the graphics context will take care of + * correct scaling. + * + * Alternatively, to allow hinting of contours, at the time of executing + * @FT_Load_Glyph, the current graphics context transformation matrix + * can be decomposed into a scaling matrix and a remainder, and + * @FT_Load_Glyph can be used to retrieve the contours at scaled size. + * Care must then be taken to blit or clip to the graphics context with + * taking this remainder transformation into account. + * + * @input: + * face :: + * A handle to the parent face object. + * + * base_glyph :: + * The glyph index for which to retrieve the root paint table. + * + * root_transform :: + * Specifies whether an initially computed root is returned by the + * @FT_PaintTransform operation to account for the activated size + * (see @FT_Activate_Size) and the configured transform and translate + * (see @FT_Set_Transform). + * + * This root transform is returned before nodes of the glyph graph of + * the font are returned. Subsequent @FT_COLR_Paint structures + * contain unscaled and untransformed values. The inserted root + * transform enables the client application to apply an initial + * transform to its graphics context. When executing subsequent + * FT_COLR_Paint operations, values from @FT_COLR_Paint operations + * will ultimately be correctly scaled because of the root transform + * applied to the graphics context. Use + * @FT_COLOR_INCLUDE_ROOT_TRANSFORM to include the root transform, use + * @FT_COLOR_NO_ROOT_TRANSFORM to not include it. The latter may be + * useful when traversing the 'COLR' v1 glyph graph and reaching a + * @FT_PaintColrGlyph. When recursing into @FT_PaintColrGlyph and + * painting that inline, no additional root transform is needed as it + * has already been applied to the graphics context at the beginning + * of drawing this glyph. + * + * @output: + * paint :: + * The @FT_OpaquePaint object that references the actual paint table. + * + * The respective actual @FT_COLR_Paint object is retrieved via + * @FT_Get_Paint. + * + * @return: + * Value~1 if everything is OK. If no color glyph is found, or the root + * paint could not be retrieved, value~0 gets returned. In case of an + * error, value~0 is returned also. + * + * @since: + * 2.13 + */ + FT_EXPORT( FT_Bool ) + FT_Get_Color_Glyph_Paint( FT_Face face, + FT_UInt base_glyph, + FT_Color_Root_Transform root_transform, + FT_OpaquePaint* paint ); + + + /************************************************************************** + * + * @function: + * FT_Get_Color_Glyph_ClipBox + * + * @description: + * Search for a 'COLR' v1 clip box for the specified `base_glyph` and + * fill the `clip_box` parameter with the 'COLR' v1 'ClipBox' information + * if one is found. + * + * @input: + * face :: + * A handle to the parent face object. + * + * base_glyph :: + * The glyph index for which to retrieve the clip box. + * + * @output: + * clip_box :: + * The clip box for the requested `base_glyph` if one is found. The + * clip box is computed taking scale and transformations configured on + * the @FT_Face into account. @FT_ClipBox contains @FT_Vector values + * in 26.6 format. + * + * @return: + * Value~1 if a clip box is found. If no clip box is found or an error + * occured, value~0 is returned. + * + * @note: + * To retrieve the clip box in font units, reset scale to units-per-em + * and remove transforms configured using @FT_Set_Transform. + * + * @since: + * 2.13 + */ + FT_EXPORT( FT_Bool ) + FT_Get_Color_Glyph_ClipBox( FT_Face face, + FT_UInt base_glyph, + FT_ClipBox* clip_box ); + + + /************************************************************************** + * + * @function: + * FT_Get_Paint_Layers + * + * @description: + * Access the layers of a `PaintColrLayers` table. + * + * If the root paint of a color glyph, or a nested paint of a 'COLR' + * glyph is a `PaintColrLayers` table, this function retrieves the + * layers of the `PaintColrLayers` table. + * + * The @FT_PaintColrLayers object contains an @FT_LayerIterator, which + * is used here to iterate over the layers. Each layer is returned as + * an @FT_OpaquePaint object, which then can be used with @FT_Get_Paint + * to retrieve the actual paint object. + * + * @input: + * face :: + * A handle to the parent face object. + * + * @inout: + * iterator :: + * The @FT_LayerIterator from an @FT_PaintColrLayers object, for which + * the layers are to be retrieved. The internal state of the iterator + * is incremented after one call to this function for retrieving one + * layer. + * + * @output: + * paint :: + * The @FT_OpaquePaint object that references the actual paint table. + * The respective actual @FT_COLR_Paint object is retrieved via + * @FT_Get_Paint. + * + * @return: + * Value~1 if everything is OK. Value~0 gets returned when the paint + * object can not be retrieved or any other error occurs. + * + * @since: + * 2.13 + */ + FT_EXPORT( FT_Bool ) + FT_Get_Paint_Layers( FT_Face face, + FT_LayerIterator* iterator, + FT_OpaquePaint* paint ); + + + /************************************************************************** + * + * @function: + * FT_Get_Colorline_Stops + * + * @description: + * This is an interface to color gradient information in a 'COLR' v1 + * table in OpenType fonts to iteratively retrieve the gradient and + * solid fill information for colored glyph layers for a specified glyph + * ID. + * + * https://github.com/googlefonts/colr-gradients-spec + * + * @input: + * face :: + * A handle to the parent face object. + * + * @inout: + * iterator :: + * The retrieved @FT_ColorStopIterator, configured on an @FT_ColorLine, + * which in turn got retrieved via paint information in + * @FT_PaintLinearGradient or @FT_PaintRadialGradient. + * + * @output: + * color_stop :: + * Color index and alpha value for the retrieved color stop. + * + * @return: + * Value~1 if everything is OK. If there are no more color stops, + * value~0 gets returned. In case of an error, value~0 is returned + * also. + * + * @since: + * 2.13 + */ + FT_EXPORT( FT_Bool ) + FT_Get_Colorline_Stops( FT_Face face, + FT_ColorStop* color_stop, + FT_ColorStopIterator* iterator ); + + + /************************************************************************** + * + * @function: + * FT_Get_Paint + * + * @description: + * Access the details of a paint using an @FT_OpaquePaint opaque paint + * object, which internally stores the offset to the respective `Paint` + * object in the 'COLR' table. + * + * @input: + * face :: + * A handle to the parent face object. + * + * opaque_paint :: + * The opaque paint object for which the underlying @FT_COLR_Paint + * data is to be retrieved. + * + * @output: + * paint :: + * The specific @FT_COLR_Paint object containing information coming + * from one of the font's `Paint*` tables. + * + * @return: + * Value~1 if everything is OK. Value~0 if no details can be found for + * this paint or any other error occured. + * + * @since: + * 2.13 + */ + FT_EXPORT( FT_Bool ) + FT_Get_Paint( FT_Face face, + FT_OpaquePaint opaque_paint, + FT_COLR_Paint* paint ); + + /* */ + + +FT_END_HEADER + +#endif /* FTCOLOR_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftdriver.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftdriver.h new file mode 100644 index 00000000..1b7f539f --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftdriver.h @@ -0,0 +1,1320 @@ +/**************************************************************************** + * + * ftdriver.h + * + * FreeType API for controlling driver modules (specification only). + * + * Copyright (C) 2017-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTDRIVER_H_ +#define FTDRIVER_H_ + +#include +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * auto_hinter + * + * @title: + * The auto-hinter + * + * @abstract: + * Controlling the auto-hinting module. + * + * @description: + * While FreeType's auto-hinter doesn't expose API functions by itself, + * it is possible to control its behaviour with @FT_Property_Set and + * @FT_Property_Get. The following lists the available properties + * together with the necessary macros and structures. + * + * Note that the auto-hinter's module name is 'autofitter' for historical + * reasons. + * + * Available properties are @increase-x-height, @no-stem-darkening + * (experimental), @darkening-parameters (experimental), + * @glyph-to-script-map (experimental), @fallback-script (experimental), + * and @default-script (experimental), as documented in the @properties + * section. + * + */ + + + /************************************************************************** + * + * @section: + * cff_driver + * + * @title: + * The CFF driver + * + * @abstract: + * Controlling the CFF driver module. + * + * @description: + * While FreeType's CFF driver doesn't expose API functions by itself, it + * is possible to control its behaviour with @FT_Property_Set and + * @FT_Property_Get. + * + * The CFF driver's module name is 'cff'. + * + * Available properties are @hinting-engine, @no-stem-darkening, + * @darkening-parameters, and @random-seed, as documented in the + * @properties section. + * + * + * **Hinting and anti-aliasing principles of the new engine** + * + * The rasterizer is positioning horizontal features (e.g., ascender + * height & x-height, or crossbars) on the pixel grid and minimizing the + * amount of anti-aliasing applied to them, while placing vertical + * features (vertical stems) on the pixel grid without hinting, thus + * representing the stem position and weight accurately. Sometimes the + * vertical stems may be only partially black. In this context, + * 'anti-aliasing' means that stems are not positioned exactly on pixel + * borders, causing a fuzzy appearance. + * + * There are two principles behind this approach. + * + * 1) No hinting in the horizontal direction: Unlike 'superhinted' + * TrueType, which changes glyph widths to accommodate regular + * inter-glyph spacing, Adobe's approach is 'faithful to the design' in + * representing both the glyph width and the inter-glyph spacing designed + * for the font. This makes the screen display as close as it can be to + * the result one would get with infinite resolution, while preserving + * what is considered the key characteristics of each glyph. Note that + * the distances between unhinted and grid-fitted positions at small + * sizes are comparable to kerning values and thus would be noticeable + * (and distracting) while reading if hinting were applied. + * + * One of the reasons to not hint horizontally is anti-aliasing for LCD + * screens: The pixel geometry of modern displays supplies three vertical + * subpixels as the eye moves horizontally across each visible pixel. On + * devices where we can be certain this characteristic is present a + * rasterizer can take advantage of the subpixels to add increments of + * weight. In Western writing systems this turns out to be the more + * critical direction anyway; the weights and spacing of vertical stems + * (see above) are central to Armenian, Cyrillic, Greek, and Latin type + * designs. Even when the rasterizer uses greyscale anti-aliasing instead + * of color (a necessary compromise when one doesn't know the screen + * characteristics), the unhinted vertical features preserve the design's + * weight and spacing much better than aliased type would. + * + * 2) Alignment in the vertical direction: Weights and spacing along the + * y~axis are less critical; what is much more important is the visual + * alignment of related features (like cap-height and x-height). The + * sense of alignment for these is enhanced by the sharpness of grid-fit + * edges, while the cruder vertical resolution (full pixels instead of + * 1/3 pixels) is less of a problem. + * + * On the technical side, horizontal alignment zones for ascender, + * x-height, and other important height values (traditionally called + * 'blue zones') as defined in the font are positioned independently, + * each being rounded to the nearest pixel edge, taking care of overshoot + * suppression at small sizes, stem darkening, and scaling. + * + * Hstems (that is, hint values defined in the font to help align + * horizontal features) that fall within a blue zone are said to be + * 'captured' and are aligned to that zone. Uncaptured stems are moved + * in one of four ways, top edge up or down, bottom edge up or down. + * Unless there are conflicting hstems, the smallest movement is taken to + * minimize distortion. + * + */ + + + /************************************************************************** + * + * @section: + * pcf_driver + * + * @title: + * The PCF driver + * + * @abstract: + * Controlling the PCF driver module. + * + * @description: + * While FreeType's PCF driver doesn't expose API functions by itself, it + * is possible to control its behaviour with @FT_Property_Set and + * @FT_Property_Get. Right now, there is a single property + * @no-long-family-names available if FreeType is compiled with + * PCF_CONFIG_OPTION_LONG_FAMILY_NAMES. + * + * The PCF driver's module name is 'pcf'. + * + */ + + + /************************************************************************** + * + * @section: + * t1_cid_driver + * + * @title: + * The Type 1 and CID drivers + * + * @abstract: + * Controlling the Type~1 and CID driver modules. + * + * @description: + * It is possible to control the behaviour of FreeType's Type~1 and + * Type~1 CID drivers with @FT_Property_Set and @FT_Property_Get. + * + * Behind the scenes, both drivers use the Adobe CFF engine for hinting; + * however, the used properties must be specified separately. + * + * The Type~1 driver's module name is 'type1'; the CID driver's module + * name is 't1cid'. + * + * Available properties are @hinting-engine, @no-stem-darkening, + * @darkening-parameters, and @random-seed, as documented in the + * @properties section. + * + * Please see the @cff_driver section for more details on the new hinting + * engine. + * + */ + + + /************************************************************************** + * + * @section: + * tt_driver + * + * @title: + * The TrueType driver + * + * @abstract: + * Controlling the TrueType driver module. + * + * @description: + * While FreeType's TrueType driver doesn't expose API functions by + * itself, it is possible to control its behaviour with @FT_Property_Set + * and @FT_Property_Get. + * + * The TrueType driver's module name is 'truetype'; a single property + * @interpreter-version is available, as documented in the @properties + * section. + * + * To help understand the differences between interpreter versions, we + * introduce a list of definitions, kindly provided by Greg Hitchcock. + * + * _Bi-Level Rendering_ + * + * Monochromatic rendering, exclusively used in the early days of + * TrueType by both Apple and Microsoft. Microsoft's GDI interface + * supported hinting of the right-side bearing point, such that the + * advance width could be non-linear. Most often this was done to + * achieve some level of glyph symmetry. To enable reasonable + * performance (e.g., not having to run hinting on all glyphs just to get + * the widths) there was a bit in the head table indicating if the side + * bearing was hinted, and additional tables, 'hdmx' and 'LTSH', to cache + * hinting widths across multiple sizes and device aspect ratios. + * + * _Font Smoothing_ + * + * Microsoft's GDI implementation of anti-aliasing. Not traditional + * anti-aliasing as the outlines were hinted before the sampling. The + * widths matched the bi-level rendering. + * + * _ClearType Rendering_ + * + * Technique that uses physical subpixels to improve rendering on LCD + * (and other) displays. Because of the higher resolution, many methods + * of improving symmetry in glyphs through hinting the right-side bearing + * were no longer necessary. This lead to what GDI calls 'natural + * widths' ClearType, see + * http://rastertragedy.com/RTRCh4.htm#Sec21. Since hinting + * has extra resolution, most non-linearity went away, but it is still + * possible for hints to change the advance widths in this mode. + * + * _ClearType Compatible Widths_ + * + * One of the earliest challenges with ClearType was allowing the + * implementation in GDI to be selected without requiring all UI and + * documents to reflow. To address this, a compatible method of + * rendering ClearType was added where the font hints are executed once + * to determine the width in bi-level rendering, and then re-run in + * ClearType, with the difference in widths being absorbed in the font + * hints for ClearType (mostly in the white space of hints); see + * http://rastertragedy.com/RTRCh4.htm#Sec20. Somewhat by + * definition, compatible width ClearType allows for non-linear widths, + * but only when the bi-level version has non-linear widths. + * + * _ClearType Subpixel Positioning_ + * + * One of the nice benefits of ClearType is the ability to more crisply + * display fractional widths; unfortunately, the GDI model of integer + * bitmaps did not support this. However, the WPF and Direct Write + * frameworks do support fractional widths. DWrite calls this 'natural + * mode', not to be confused with GDI's 'natural widths'. Subpixel + * positioning, in the current implementation of Direct Write, + * unfortunately does not support hinted advance widths, see + * http://rastertragedy.com/RTRCh4.htm#Sec22. Note that the + * TrueType interpreter fully allows the advance width to be adjusted in + * this mode, just the DWrite client will ignore those changes. + * + * _ClearType Backward Compatibility_ + * + * This is a set of exceptions made in the TrueType interpreter to + * minimize hinting techniques that were problematic with the extra + * resolution of ClearType; see + * http://rastertragedy.com/RTRCh4.htm#Sec1 and + * https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx. + * This technique is not to be confused with ClearType compatible widths. + * ClearType backward compatibility has no direct impact on changing + * advance widths, but there might be an indirect impact on disabling + * some deltas. This could be worked around in backward compatibility + * mode. + * + * _Native ClearType Mode_ + * + * (Not to be confused with 'natural widths'.) This mode removes all the + * exceptions in the TrueType interpreter when running with ClearType. + * Any issues on widths would still apply, though. + * + */ + + + /************************************************************************** + * + * @section: + * ot_svg_driver + * + * @title: + * The SVG driver + * + * @abstract: + * Controlling the external rendering of OT-SVG glyphs. + * + * @description: + * By default, FreeType can only load the 'SVG~' table of OpenType fonts + * if configuration macro `FT_CONFIG_OPTION_SVG` is defined. To make it + * render SVG glyphs, an external SVG rendering library is needed. All + * details on the interface between FreeType and the external library + * via function hooks can be found in section @svg_fonts. + * + * The OT-SVG driver's module name is 'ot-svg'; it supports a single + * property called @svg-hooks, documented below in the @properties + * section. + * + */ + + + /************************************************************************** + * + * @section: + * properties + * + * @title: + * Driver properties + * + * @abstract: + * Controlling driver modules. + * + * @description: + * Driver modules can be controlled by setting and unsetting properties, + * using the functions @FT_Property_Set and @FT_Property_Get. This + * section documents the available properties, together with auxiliary + * macros and structures. + * + */ + + + /************************************************************************** + * + * @enum: + * FT_HINTING_XXX + * + * @description: + * A list of constants used for the @hinting-engine property to select + * the hinting engine for CFF, Type~1, and CID fonts. + * + * @values: + * FT_HINTING_FREETYPE :: + * Use the old FreeType hinting engine. + * + * FT_HINTING_ADOBE :: + * Use the hinting engine contributed by Adobe. + * + * @since: + * 2.9 + * + */ +#define FT_HINTING_FREETYPE 0 +#define FT_HINTING_ADOBE 1 + + /* these constants (introduced in 2.4.12) are deprecated */ +#define FT_CFF_HINTING_FREETYPE FT_HINTING_FREETYPE +#define FT_CFF_HINTING_ADOBE FT_HINTING_ADOBE + + + /************************************************************************** + * + * @property: + * hinting-engine + * + * @description: + * Thanks to Adobe, which contributed a new hinting (and parsing) engine, + * an application can select between 'freetype' and 'adobe' if compiled + * with `CFF_CONFIG_OPTION_OLD_ENGINE`. If this configuration macro + * isn't defined, 'hinting-engine' does nothing. + * + * The same holds for the Type~1 and CID modules if compiled with + * `T1_CONFIG_OPTION_OLD_ENGINE`. + * + * For the 'cff' module, the default engine is 'adobe'. For both the + * 'type1' and 't1cid' modules, the default engine is 'adobe', too. + * + * @note: + * This property can be used with @FT_Property_Get also. + * + * This property can be set via the `FREETYPE_PROPERTIES` environment + * variable (using values 'adobe' or 'freetype'). + * + * @example: + * The following example code demonstrates how to select Adobe's hinting + * engine for the 'cff' module (omitting the error handling). + * + * ``` + * FT_Library library; + * FT_UInt hinting_engine = FT_HINTING_ADOBE; + * + * + * FT_Init_FreeType( &library ); + * + * FT_Property_Set( library, "cff", + * "hinting-engine", &hinting_engine ); + * ``` + * + * @since: + * 2.4.12 (for 'cff' module) + * + * 2.9 (for 'type1' and 't1cid' modules) + * + */ + + + /************************************************************************** + * + * @property: + * no-stem-darkening + * + * @description: + * All glyphs that pass through the auto-hinter will be emboldened unless + * this property is set to TRUE. The same is true for the CFF, Type~1, + * and CID font modules if the 'Adobe' engine is selected (which is the + * default). + * + * Stem darkening emboldens glyphs at smaller sizes to make them more + * readable on common low-DPI screens when using linear alpha blending + * and gamma correction, see @FT_Render_Glyph. When not using linear + * alpha blending and gamma correction, glyphs will appear heavy and + * fuzzy! + * + * Gamma correction essentially lightens fonts since shades of grey are + * shifted to higher pixel values (=~higher brightness) to match the + * original intention to the reality of our screens. The side-effect is + * that glyphs 'thin out'. Mac OS~X and Adobe's proprietary font + * rendering library implement a counter-measure: stem darkening at + * smaller sizes where shades of gray dominate. By emboldening a glyph + * slightly in relation to its pixel size, individual pixels get higher + * coverage of filled-in outlines and are therefore 'blacker'. This + * counteracts the 'thinning out' of glyphs, making text remain readable + * at smaller sizes. + * + * For the auto-hinter, stem-darkening is experimental currently and thus + * switched off by default (that is, `no-stem-darkening` is set to TRUE + * by default). Total consistency with the CFF driver is not achieved + * right now because the emboldening method differs and glyphs must be + * scaled down on the Y-axis to keep outline points inside their + * precomputed blue zones. The smaller the size (especially 9ppem and + * down), the higher the loss of emboldening versus the CFF driver. + * + * Note that stem darkening is never applied if @FT_LOAD_NO_SCALE is set. + * + * @note: + * This property can be used with @FT_Property_Get also. + * + * This property can be set via the `FREETYPE_PROPERTIES` environment + * variable (using values 1 and 0 for 'on' and 'off', respectively). It + * can also be set per face using @FT_Face_Properties with + * @FT_PARAM_TAG_STEM_DARKENING. + * + * @example: + * ``` + * FT_Library library; + * FT_Bool no_stem_darkening = TRUE; + * + * + * FT_Init_FreeType( &library ); + * + * FT_Property_Set( library, "cff", + * "no-stem-darkening", &no_stem_darkening ); + * ``` + * + * @since: + * 2.4.12 (for 'cff' module) + * + * 2.6.2 (for 'autofitter' module) + * + * 2.9 (for 'type1' and 't1cid' modules) + * + */ + + + /************************************************************************** + * + * @property: + * darkening-parameters + * + * @description: + * By default, the Adobe hinting engine, as used by the CFF, Type~1, and + * CID font drivers, darkens stems as follows (if the `no-stem-darkening` + * property isn't set): + * + * ``` + * stem width <= 0.5px: darkening amount = 0.4px + * stem width = 1px: darkening amount = 0.275px + * stem width = 1.667px: darkening amount = 0.275px + * stem width >= 2.333px: darkening amount = 0px + * ``` + * + * and piecewise linear in-between. At configuration time, these four + * control points can be set with the macro + * `CFF_CONFIG_OPTION_DARKENING_PARAMETERS`; the CFF, Type~1, and CID + * drivers share these values. At runtime, the control points can be + * changed using the `darkening-parameters` property (see the example + * below that demonstrates this for the Type~1 driver). + * + * The x~values give the stem width, and the y~values the darkening + * amount. The unit is 1000th of pixels. All coordinate values must be + * positive; the x~values must be monotonically increasing; the y~values + * must be monotonically decreasing and smaller than or equal to 500 + * (corresponding to half a pixel); the slope of each linear piece must + * be shallower than -1 (e.g., -.4). + * + * The auto-hinter provides this property, too, as an experimental + * feature. See @no-stem-darkening for more. + * + * @note: + * This property can be used with @FT_Property_Get also. + * + * This property can be set via the `FREETYPE_PROPERTIES` environment + * variable, using eight comma-separated integers without spaces. Here + * the above example, using `\` to break the line for readability. + * + * ``` + * FREETYPE_PROPERTIES=\ + * type1:darkening-parameters=500,300,1000,200,1500,100,2000,0 + * ``` + * + * @example: + * ``` + * FT_Library library; + * FT_Int darken_params[8] = { 500, 300, // x1, y1 + * 1000, 200, // x2, y2 + * 1500, 100, // x3, y3 + * 2000, 0 }; // x4, y4 + * + * + * FT_Init_FreeType( &library ); + * + * FT_Property_Set( library, "type1", + * "darkening-parameters", darken_params ); + * ``` + * + * @since: + * 2.5.1 (for 'cff' module) + * + * 2.6.2 (for 'autofitter' module) + * + * 2.9 (for 'type1' and 't1cid' modules) + * + */ + + + /************************************************************************** + * + * @property: + * random-seed + * + * @description: + * By default, the seed value for the CFF 'random' operator and the + * similar '0 28 callothersubr pop' command for the Type~1 and CID + * drivers is set to a random value. However, mainly for debugging + * purposes, it is often necessary to use a known value as a seed so that + * the pseudo-random number sequences generated by 'random' are + * repeatable. + * + * The `random-seed` property does that. Its argument is a signed 32bit + * integer; if the value is zero or negative, the seed given by the + * `intitialRandomSeed` private DICT operator in a CFF file gets used (or + * a default value if there is no such operator). If the value is + * positive, use it instead of `initialRandomSeed`, which is consequently + * ignored. + * + * @note: + * This property can be set via the `FREETYPE_PROPERTIES` environment + * variable. It can also be set per face using @FT_Face_Properties with + * @FT_PARAM_TAG_RANDOM_SEED. + * + * @since: + * 2.8 (for 'cff' module) + * + * 2.9 (for 'type1' and 't1cid' modules) + * + */ + + + /************************************************************************** + * + * @property: + * no-long-family-names + * + * @description: + * If `PCF_CONFIG_OPTION_LONG_FAMILY_NAMES` is active while compiling + * FreeType, the PCF driver constructs long family names. + * + * There are many PCF fonts just called 'Fixed' which look completely + * different, and which have nothing to do with each other. When + * selecting 'Fixed' in KDE or Gnome one gets results that appear rather + * random, the style changes often if one changes the size and one cannot + * select some fonts at all. The improve this situation, the PCF module + * prepends the foundry name (plus a space) to the family name. It also + * checks whether there are 'wide' characters; all put together, family + * names like 'Sony Fixed' or 'Misc Fixed Wide' are constructed. + * + * If `no-long-family-names` is set, this feature gets switched off. + * + * @note: + * This property can be used with @FT_Property_Get also. + * + * This property can be set via the `FREETYPE_PROPERTIES` environment + * variable (using values 1 and 0 for 'on' and 'off', respectively). + * + * @example: + * ``` + * FT_Library library; + * FT_Bool no_long_family_names = TRUE; + * + * + * FT_Init_FreeType( &library ); + * + * FT_Property_Set( library, "pcf", + * "no-long-family-names", + * &no_long_family_names ); + * ``` + * + * @since: + * 2.8 + */ + + + /************************************************************************** + * + * @enum: + * TT_INTERPRETER_VERSION_XXX + * + * @description: + * A list of constants used for the @interpreter-version property to + * select the hinting engine for Truetype fonts. + * + * The numeric value in the constant names represents the version number + * as returned by the 'GETINFO' bytecode instruction. + * + * @values: + * TT_INTERPRETER_VERSION_35 :: + * Version~35 corresponds to MS rasterizer v.1.7 as used e.g. in + * Windows~98; only grayscale and B/W rasterizing is supported. + * + * TT_INTERPRETER_VERSION_38 :: + * Version~38 is the same Version~40. The original 'Infinality' code is + * no longer available. + * + * TT_INTERPRETER_VERSION_40 :: + * Version~40 corresponds to MS rasterizer v.2.1; it is roughly + * equivalent to the hinting provided by DirectWrite ClearType (as can + * be found, for example, in Microsoft's Edge Browser on Windows~10). + * It is used in FreeType to select the 'minimal' subpixel hinting + * code, a stripped-down and higher performance version of the + * 'Infinality' code. + * + * @note: + * This property controls the behaviour of the bytecode interpreter and + * thus how outlines get hinted. It does **not** control how glyph get + * rasterized! In particular, it does not control subpixel color + * filtering. + * + * If FreeType has not been compiled with the configuration option + * `TT_CONFIG_OPTION_SUBPIXEL_HINTING`, selecting version~38 or~40 causes + * an `FT_Err_Unimplemented_Feature` error. + * + * Depending on the graphics framework, Microsoft uses different bytecode + * and rendering engines. As a consequence, the version numbers returned + * by a call to the 'GETINFO' bytecode instruction are more convoluted + * than desired. + * + * Here are two tables that try to shed some light on the possible values + * for the MS rasterizer engine, together with the additional features + * introduced by it. + * + * ``` + * GETINFO framework version feature + * ------------------------------------------------------------------- + * 3 GDI (Win 3.1), v1.0 16-bit, first version + * TrueImage + * 33 GDI (Win NT 3.1), v1.5 32-bit + * HP Laserjet + * 34 GDI (Win 95) v1.6 font smoothing, + * new SCANTYPE opcode + * 35 GDI (Win 98/2000) v1.7 (UN)SCALED_COMPONENT_OFFSET + * bits in composite glyphs + * 36 MGDI (Win CE 2) v1.6+ classic ClearType + * 37 GDI (XP and later), v1.8 ClearType + * GDI+ old (before Vista) + * 38 GDI+ old (Vista, Win 7), v1.9 subpixel ClearType, + * WPF Y-direction ClearType, + * additional error checking + * 39 DWrite (before Win 8) v2.0 subpixel ClearType flags + * in GETINFO opcode, + * bug fixes + * 40 GDI+ (after Win 7), v2.1 Y-direction ClearType flag + * DWrite (Win 8) in GETINFO opcode, + * Gray ClearType + * ``` + * + * The 'version' field gives a rough orientation only, since some + * applications provided certain features much earlier (as an example, + * Microsoft Reader used subpixel and Y-direction ClearType already in + * Windows 2000). Similarly, updates to a given framework might include + * improved hinting support. + * + * ``` + * version sampling rendering comment + * x y x y + * -------------------------------------------------------------- + * v1.0 normal normal B/W B/W bi-level + * v1.6 high high gray gray grayscale + * v1.8 high normal color-filter B/W (GDI) ClearType + * v1.9 high high color-filter gray Color ClearType + * v2.1 high normal gray B/W Gray ClearType + * v2.1 high high gray gray Gray ClearType + * ``` + * + * Color and Gray ClearType are the two available variants of + * 'Y-direction ClearType', meaning grayscale rasterization along the + * Y-direction; the name used in the TrueType specification for this + * feature is 'symmetric smoothing'. 'Classic ClearType' is the original + * algorithm used before introducing a modified version in Win~XP. + * Another name for v1.6's grayscale rendering is 'font smoothing', and + * 'Color ClearType' is sometimes also called 'DWrite ClearType'. To + * differentiate between today's Color ClearType and the earlier + * ClearType variant with B/W rendering along the vertical axis, the + * latter is sometimes called 'GDI ClearType'. + * + * 'Normal' and 'high' sampling describe the (virtual) resolution to + * access the rasterized outline after the hinting process. 'Normal' + * means 1 sample per grid line (i.e., B/W). In the current Microsoft + * implementation, 'high' means an extra virtual resolution of 16x16 (or + * 16x1) grid lines per pixel for bytecode instructions like 'MIRP'. + * After hinting, these 16 grid lines are mapped to 6x5 (or 6x1) grid + * lines for color filtering if Color ClearType is activated. + * + * Note that 'Gray ClearType' is essentially the same as v1.6's grayscale + * rendering. However, the GETINFO instruction handles it differently: + * v1.6 returns bit~12 (hinting for grayscale), while v2.1 returns + * bits~13 (hinting for ClearType), 18 (symmetrical smoothing), and~19 + * (Gray ClearType). Also, this mode respects bits 2 and~3 for the + * version~1 gasp table exclusively (like Color ClearType), while v1.6 + * only respects the values of version~0 (bits 0 and~1). + * + * Keep in mind that the features of the above interpreter versions might + * not map exactly to FreeType features or behavior because it is a + * fundamentally different library with different internals. + * + */ +#define TT_INTERPRETER_VERSION_35 35 +#define TT_INTERPRETER_VERSION_38 38 +#define TT_INTERPRETER_VERSION_40 40 + + + /************************************************************************** + * + * @property: + * interpreter-version + * + * @description: + * Currently, three versions are available, two representing the bytecode + * interpreter with subpixel hinting support (old 'Infinality' code and + * new stripped-down and higher performance 'minimal' code) and one + * without, respectively. The default is subpixel support if + * `TT_CONFIG_OPTION_SUBPIXEL_HINTING` is defined, and no subpixel + * support otherwise (since it isn't available then). + * + * If subpixel hinting is on, many TrueType bytecode instructions behave + * differently compared to B/W or grayscale rendering (except if 'native + * ClearType' is selected by the font). Microsoft's main idea is to + * render at a much increased horizontal resolution, then sampling down + * the created output to subpixel precision. However, many older fonts + * are not suited to this and must be specially taken care of by applying + * (hardcoded) tweaks in Microsoft's interpreter. + * + * Details on subpixel hinting and some of the necessary tweaks can be + * found in Greg Hitchcock's whitepaper at + * 'https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx'. + * Note that FreeType currently doesn't really 'subpixel hint' (6x1, 6x2, + * or 6x5 supersampling) like discussed in the paper. Depending on the + * chosen interpreter, it simply ignores instructions on vertical stems + * to arrive at very similar results. + * + * @note: + * This property can be used with @FT_Property_Get also. + * + * This property can be set via the `FREETYPE_PROPERTIES` environment + * variable (using values '35', '38', or '40'). + * + * @example: + * The following example code demonstrates how to deactivate subpixel + * hinting (omitting the error handling). + * + * ``` + * FT_Library library; + * FT_Face face; + * FT_UInt interpreter_version = TT_INTERPRETER_VERSION_35; + * + * + * FT_Init_FreeType( &library ); + * + * FT_Property_Set( library, "truetype", + * "interpreter-version", + * &interpreter_version ); + * ``` + * + * @since: + * 2.5 + */ + + + /************************************************************************** + * + * @property: + * spread + * + * @description: + * This property of the 'sdf' and 'bsdf' renderers defines how the signed + * distance field (SDF) is represented in the output bitmap. The output + * values are calculated as follows, '128 * ( SDF / spread + 1 )', with + * the result clamped to the 8-bit range [0..255]. Therefore, 'spread' + * is also the maximum euclidean distance from the edge after which the + * values are clamped. The spread is specified in pixels with the + * default value of 8. For accurate SDF texture mapping (interpolation), + * the spread should be large enough to accommodate the target grid unit. + * + * @example: + * The following example code demonstrates how to set the SDF spread + * (omitting the error handling). + * + * ``` + * FT_Library library; + * FT_Int spread = 2; + * + * + * FT_Init_FreeType( &library ); + * + * FT_Property_Set( library, "sdf", "spread", &spread ); + * ``` + * + * @note: + * FreeType has two rasterizers for generating SDF, namely: + * + * 1. `sdf` for generating SDF directly from glyph's outline, and + * + * 2. `bsdf` for generating SDF from rasterized bitmaps. + * + * Depending on the glyph type (i.e., outline or bitmap), one of the two + * rasterizers is chosen at runtime and used for generating SDFs. To + * force the use of `bsdf` you should render the glyph with any of the + * FreeType's other rendering modes (e.g., `FT_RENDER_MODE_NORMAL`) and + * then re-render with `FT_RENDER_MODE_SDF`. + * + * There are some issues with stability and possible failures of the SDF + * renderers (specifically `sdf`). + * + * 1. The `sdf` rasterizer is sensitive to really small features (e.g., + * sharp turns that are less than 1~pixel) and imperfections in the + * glyph's outline, causing artifacts in the final output. + * + * 2. The `sdf` rasterizer has limited support for handling intersecting + * contours and *cannot* handle self-intersecting contours whatsoever. + * Self-intersection happens when a single connected contour + * intersects itself at some point; having these in your font + * definitely poses a problem to the rasterizer and cause artifacts, + * too. + * + * 3. Generating SDF for really small glyphs may result in undesirable + * output; the pixel grid (which stores distance information) becomes + * too coarse. + * + * 4. Since the output buffer is normalized, precision at smaller spreads + * is greater than precision at larger spread values because the + * output range of [0..255] gets mapped to a smaller SDF range. A + * spread of~2 should be sufficient in most cases. + * + * Points (1) and (2) can be avoided by using the `bsdf` rasterizer, + * which is more stable than the `sdf` rasterizer in general. + * + * @since: + * 2.11 + */ + + + /************************************************************************** + * + * @property: + * svg-hooks + * + * @description: + * Set up the interface between FreeType and an extern SVG rendering + * library like 'librsvg'. All details on the function hooks can be + * found in section @svg_fonts. + * + * @example: + * The following example code expects that the four hook functions + * `svg_*` are defined elsewhere. Error handling is omitted, too. + * + * ``` + * FT_Library library; + * SVG_RendererHooks hooks = { + * (SVG_Lib_Init_Func)svg_init, + * (SVG_Lib_Free_Func)svg_free, + * (SVG_Lib_Render_Func)svg_render, + * (SVG_Lib_Preset_Slot_Func)svg_preset_slot }; + * + * + * FT_Init_FreeType( &library ); + * + * FT_Property_Set( library, "ot-svg", + * "svg-hooks", &hooks ); + * ``` + * + * @since: + * 2.12 + */ + + + /************************************************************************** + * + * @property: + * glyph-to-script-map + * + * @description: + * **Experimental only** + * + * The auto-hinter provides various script modules to hint glyphs. + * Examples of supported scripts are Latin or CJK. Before a glyph is + * auto-hinted, the Unicode character map of the font gets examined, and + * the script is then determined based on Unicode character ranges, see + * below. + * + * OpenType fonts, however, often provide much more glyphs than character + * codes (small caps, superscripts, ligatures, swashes, etc.), to be + * controlled by so-called 'features'. Handling OpenType features can be + * quite complicated and thus needs a separate library on top of + * FreeType. + * + * The mapping between glyph indices and scripts (in the auto-hinter + * sense, see the @FT_AUTOHINTER_SCRIPT_XXX values) is stored as an array + * with `num_glyphs` elements, as found in the font's @FT_Face structure. + * The `glyph-to-script-map` property returns a pointer to this array, + * which can be modified as needed. Note that the modification should + * happen before the first glyph gets processed by the auto-hinter so + * that the global analysis of the font shapes actually uses the modified + * mapping. + * + * @example: + * The following example code demonstrates how to access it (omitting the + * error handling). + * + * ``` + * FT_Library library; + * FT_Face face; + * FT_Prop_GlyphToScriptMap prop; + * + * + * FT_Init_FreeType( &library ); + * FT_New_Face( library, "foo.ttf", 0, &face ); + * + * prop.face = face; + * + * FT_Property_Get( library, "autofitter", + * "glyph-to-script-map", &prop ); + * + * // adjust `prop.map' as needed right here + * + * FT_Load_Glyph( face, ..., FT_LOAD_FORCE_AUTOHINT ); + * ``` + * + * @since: + * 2.4.11 + * + */ + + + /************************************************************************** + * + * @enum: + * FT_AUTOHINTER_SCRIPT_XXX + * + * @description: + * **Experimental only** + * + * A list of constants used for the @glyph-to-script-map property to + * specify the script submodule the auto-hinter should use for hinting a + * particular glyph. + * + * @values: + * FT_AUTOHINTER_SCRIPT_NONE :: + * Don't auto-hint this glyph. + * + * FT_AUTOHINTER_SCRIPT_LATIN :: + * Apply the latin auto-hinter. For the auto-hinter, 'latin' is a very + * broad term, including Cyrillic and Greek also since characters from + * those scripts share the same design constraints. + * + * By default, characters from the following Unicode ranges are + * assigned to this submodule. + * + * ``` + * U+0020 - U+007F // Basic Latin (no control characters) + * U+00A0 - U+00FF // Latin-1 Supplement (no control characters) + * U+0100 - U+017F // Latin Extended-A + * U+0180 - U+024F // Latin Extended-B + * U+0250 - U+02AF // IPA Extensions + * U+02B0 - U+02FF // Spacing Modifier Letters + * U+0300 - U+036F // Combining Diacritical Marks + * U+0370 - U+03FF // Greek and Coptic + * U+0400 - U+04FF // Cyrillic + * U+0500 - U+052F // Cyrillic Supplement + * U+1D00 - U+1D7F // Phonetic Extensions + * U+1D80 - U+1DBF // Phonetic Extensions Supplement + * U+1DC0 - U+1DFF // Combining Diacritical Marks Supplement + * U+1E00 - U+1EFF // Latin Extended Additional + * U+1F00 - U+1FFF // Greek Extended + * U+2000 - U+206F // General Punctuation + * U+2070 - U+209F // Superscripts and Subscripts + * U+20A0 - U+20CF // Currency Symbols + * U+2150 - U+218F // Number Forms + * U+2460 - U+24FF // Enclosed Alphanumerics + * U+2C60 - U+2C7F // Latin Extended-C + * U+2DE0 - U+2DFF // Cyrillic Extended-A + * U+2E00 - U+2E7F // Supplemental Punctuation + * U+A640 - U+A69F // Cyrillic Extended-B + * U+A720 - U+A7FF // Latin Extended-D + * U+FB00 - U+FB06 // Alphab. Present. Forms (Latin Ligatures) + * U+1D400 - U+1D7FF // Mathematical Alphanumeric Symbols + * U+1F100 - U+1F1FF // Enclosed Alphanumeric Supplement + * ``` + * + * FT_AUTOHINTER_SCRIPT_CJK :: + * Apply the CJK auto-hinter, covering Chinese, Japanese, Korean, old + * Vietnamese, and some other scripts. + * + * By default, characters from the following Unicode ranges are + * assigned to this submodule. + * + * ``` + * U+1100 - U+11FF // Hangul Jamo + * U+2E80 - U+2EFF // CJK Radicals Supplement + * U+2F00 - U+2FDF // Kangxi Radicals + * U+2FF0 - U+2FFF // Ideographic Description Characters + * U+3000 - U+303F // CJK Symbols and Punctuation + * U+3040 - U+309F // Hiragana + * U+30A0 - U+30FF // Katakana + * U+3100 - U+312F // Bopomofo + * U+3130 - U+318F // Hangul Compatibility Jamo + * U+3190 - U+319F // Kanbun + * U+31A0 - U+31BF // Bopomofo Extended + * U+31C0 - U+31EF // CJK Strokes + * U+31F0 - U+31FF // Katakana Phonetic Extensions + * U+3200 - U+32FF // Enclosed CJK Letters and Months + * U+3300 - U+33FF // CJK Compatibility + * U+3400 - U+4DBF // CJK Unified Ideographs Extension A + * U+4DC0 - U+4DFF // Yijing Hexagram Symbols + * U+4E00 - U+9FFF // CJK Unified Ideographs + * U+A960 - U+A97F // Hangul Jamo Extended-A + * U+AC00 - U+D7AF // Hangul Syllables + * U+D7B0 - U+D7FF // Hangul Jamo Extended-B + * U+F900 - U+FAFF // CJK Compatibility Ideographs + * U+FE10 - U+FE1F // Vertical forms + * U+FE30 - U+FE4F // CJK Compatibility Forms + * U+FF00 - U+FFEF // Halfwidth and Fullwidth Forms + * U+1B000 - U+1B0FF // Kana Supplement + * U+1D300 - U+1D35F // Tai Xuan Hing Symbols + * U+1F200 - U+1F2FF // Enclosed Ideographic Supplement + * U+20000 - U+2A6DF // CJK Unified Ideographs Extension B + * U+2A700 - U+2B73F // CJK Unified Ideographs Extension C + * U+2B740 - U+2B81F // CJK Unified Ideographs Extension D + * U+2F800 - U+2FA1F // CJK Compatibility Ideographs Supplement + * ``` + * + * FT_AUTOHINTER_SCRIPT_INDIC :: + * Apply the indic auto-hinter, covering all major scripts from the + * Indian sub-continent and some other related scripts like Thai, Lao, + * or Tibetan. + * + * By default, characters from the following Unicode ranges are + * assigned to this submodule. + * + * ``` + * U+0900 - U+0DFF // Indic Range + * U+0F00 - U+0FFF // Tibetan + * U+1900 - U+194F // Limbu + * U+1B80 - U+1BBF // Sundanese + * U+A800 - U+A82F // Syloti Nagri + * U+ABC0 - U+ABFF // Meetei Mayek + * U+11800 - U+118DF // Sharada + * ``` + * + * Note that currently Indic support is rudimentary only, missing blue + * zone support. + * + * @since: + * 2.4.11 + * + */ +#define FT_AUTOHINTER_SCRIPT_NONE 0 +#define FT_AUTOHINTER_SCRIPT_LATIN 1 +#define FT_AUTOHINTER_SCRIPT_CJK 2 +#define FT_AUTOHINTER_SCRIPT_INDIC 3 + + + /************************************************************************** + * + * @struct: + * FT_Prop_GlyphToScriptMap + * + * @description: + * **Experimental only** + * + * The data exchange structure for the @glyph-to-script-map property. + * + * @since: + * 2.4.11 + * + */ + typedef struct FT_Prop_GlyphToScriptMap_ + { + FT_Face face; + FT_UShort* map; + + } FT_Prop_GlyphToScriptMap; + + + /************************************************************************** + * + * @property: + * fallback-script + * + * @description: + * **Experimental only** + * + * If no auto-hinter script module can be assigned to a glyph, a fallback + * script gets assigned to it (see also the @glyph-to-script-map + * property). By default, this is @FT_AUTOHINTER_SCRIPT_CJK. Using the + * `fallback-script` property, this fallback value can be changed. + * + * @note: + * This property can be used with @FT_Property_Get also. + * + * It's important to use the right timing for changing this value: The + * creation of the glyph-to-script map that eventually uses the fallback + * script value gets triggered either by setting or reading a + * face-specific property like @glyph-to-script-map, or by auto-hinting + * any glyph from that face. In particular, if you have already created + * an @FT_Face structure but not loaded any glyph (using the + * auto-hinter), a change of the fallback script will affect this face. + * + * @example: + * ``` + * FT_Library library; + * FT_UInt fallback_script = FT_AUTOHINTER_SCRIPT_NONE; + * + * + * FT_Init_FreeType( &library ); + * + * FT_Property_Set( library, "autofitter", + * "fallback-script", &fallback_script ); + * ``` + * + * @since: + * 2.4.11 + * + */ + + + /************************************************************************** + * + * @property: + * default-script + * + * @description: + * **Experimental only** + * + * If FreeType gets compiled with `FT_CONFIG_OPTION_USE_HARFBUZZ` to make + * the HarfBuzz library access OpenType features for getting better glyph + * coverages, this property sets the (auto-fitter) script to be used for + * the default (OpenType) script data of a font's GSUB table. Features + * for the default script are intended for all scripts not explicitly + * handled in GSUB; an example is a 'dlig' feature, containing the + * combination of the characters 'T', 'E', and 'L' to form a 'TEL' + * ligature. + * + * By default, this is @FT_AUTOHINTER_SCRIPT_LATIN. Using the + * `default-script` property, this default value can be changed. + * + * @note: + * This property can be used with @FT_Property_Get also. + * + * It's important to use the right timing for changing this value: The + * creation of the glyph-to-script map that eventually uses the default + * script value gets triggered either by setting or reading a + * face-specific property like @glyph-to-script-map, or by auto-hinting + * any glyph from that face. In particular, if you have already created + * an @FT_Face structure but not loaded any glyph (using the + * auto-hinter), a change of the default script will affect this face. + * + * @example: + * ``` + * FT_Library library; + * FT_UInt default_script = FT_AUTOHINTER_SCRIPT_NONE; + * + * + * FT_Init_FreeType( &library ); + * + * FT_Property_Set( library, "autofitter", + * "default-script", &default_script ); + * ``` + * + * @since: + * 2.5.3 + * + */ + + + /************************************************************************** + * + * @property: + * increase-x-height + * + * @description: + * For ppem values in the range 6~<= ppem <= `increase-x-height`, round + * up the font's x~height much more often than normally. If the value is + * set to~0, which is the default, this feature is switched off. Use + * this property to improve the legibility of small font sizes if + * necessary. + * + * @note: + * This property can be used with @FT_Property_Get also. + * + * Set this value right after calling @FT_Set_Char_Size, but before + * loading any glyph (using the auto-hinter). + * + * @example: + * ``` + * FT_Library library; + * FT_Face face; + * FT_Prop_IncreaseXHeight prop; + * + * + * FT_Init_FreeType( &library ); + * FT_New_Face( library, "foo.ttf", 0, &face ); + * FT_Set_Char_Size( face, 10 * 64, 0, 72, 0 ); + * + * prop.face = face; + * prop.limit = 14; + * + * FT_Property_Set( library, "autofitter", + * "increase-x-height", &prop ); + * ``` + * + * @since: + * 2.4.11 + * + */ + + + /************************************************************************** + * + * @struct: + * FT_Prop_IncreaseXHeight + * + * @description: + * The data exchange structure for the @increase-x-height property. + * + */ + typedef struct FT_Prop_IncreaseXHeight_ + { + FT_Face face; + FT_UInt limit; + + } FT_Prop_IncreaseXHeight; + + + /************************************************************************** + * + * @property: + * warping + * + * @description: + * **Obsolete** + * + * This property was always experimental and probably never worked + * correctly. It was entirely removed from the FreeType~2 sources. This + * entry is only here for historical reference. + * + * Warping only worked in 'normal' auto-hinting mode replacing it. The + * idea of the code was to slightly scale and shift a glyph along the + * non-hinted dimension (which is usually the horizontal axis) so that as + * much of its segments were aligned (more or less) to the grid. To find + * out a glyph's optimal scaling and shifting value, various parameter + * combinations were tried and scored. + * + * @since: + * 2.6 + * + */ + + + /* */ + + +FT_END_HEADER + + +#endif /* FTDRIVER_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/fterrdef.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/fterrdef.h new file mode 100644 index 00000000..710ca91b --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/fterrdef.h @@ -0,0 +1,283 @@ +/**************************************************************************** + * + * fterrdef.h + * + * FreeType error codes (specification). + * + * Copyright (C) 2002-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + + /************************************************************************** + * + * @section: + * error_code_values + * + * @title: + * Error Code Values + * + * @abstract: + * All possible error codes returned by FreeType functions. + * + * @description: + * The list below is taken verbatim from the file `fterrdef.h` (loaded + * automatically by including `FT_FREETYPE_H`). The first argument of the + * `FT_ERROR_DEF_` macro is the error label; by default, the prefix + * `FT_Err_` gets added so that you get error names like + * `FT_Err_Cannot_Open_Resource`. The second argument is the error code, + * and the last argument an error string, which is not used by FreeType. + * + * Within your application you should **only** use error names and + * **never** its numeric values! The latter might (and actually do) + * change in forthcoming FreeType versions. + * + * Macro `FT_NOERRORDEF_` defines `FT_Err_Ok`, which is always zero. See + * the 'Error Enumerations' subsection how to automatically generate a + * list of error strings. + * + */ + + + /************************************************************************** + * + * @enum: + * FT_Err_XXX + * + */ + + /* generic errors */ + + FT_NOERRORDEF_( Ok, 0x00, + "no error" ) + + FT_ERRORDEF_( Cannot_Open_Resource, 0x01, + "cannot open resource" ) + FT_ERRORDEF_( Unknown_File_Format, 0x02, + "unknown file format" ) + FT_ERRORDEF_( Invalid_File_Format, 0x03, + "broken file" ) + FT_ERRORDEF_( Invalid_Version, 0x04, + "invalid FreeType version" ) + FT_ERRORDEF_( Lower_Module_Version, 0x05, + "module version is too low" ) + FT_ERRORDEF_( Invalid_Argument, 0x06, + "invalid argument" ) + FT_ERRORDEF_( Unimplemented_Feature, 0x07, + "unimplemented feature" ) + FT_ERRORDEF_( Invalid_Table, 0x08, + "broken table" ) + FT_ERRORDEF_( Invalid_Offset, 0x09, + "broken offset within table" ) + FT_ERRORDEF_( Array_Too_Large, 0x0A, + "array allocation size too large" ) + FT_ERRORDEF_( Missing_Module, 0x0B, + "missing module" ) + FT_ERRORDEF_( Missing_Property, 0x0C, + "missing property" ) + + /* glyph/character errors */ + + FT_ERRORDEF_( Invalid_Glyph_Index, 0x10, + "invalid glyph index" ) + FT_ERRORDEF_( Invalid_Character_Code, 0x11, + "invalid character code" ) + FT_ERRORDEF_( Invalid_Glyph_Format, 0x12, + "unsupported glyph image format" ) + FT_ERRORDEF_( Cannot_Render_Glyph, 0x13, + "cannot render this glyph format" ) + FT_ERRORDEF_( Invalid_Outline, 0x14, + "invalid outline" ) + FT_ERRORDEF_( Invalid_Composite, 0x15, + "invalid composite glyph" ) + FT_ERRORDEF_( Too_Many_Hints, 0x16, + "too many hints" ) + FT_ERRORDEF_( Invalid_Pixel_Size, 0x17, + "invalid pixel size" ) + FT_ERRORDEF_( Invalid_SVG_Document, 0x18, + "invalid SVG document" ) + + /* handle errors */ + + FT_ERRORDEF_( Invalid_Handle, 0x20, + "invalid object handle" ) + FT_ERRORDEF_( Invalid_Library_Handle, 0x21, + "invalid library handle" ) + FT_ERRORDEF_( Invalid_Driver_Handle, 0x22, + "invalid module handle" ) + FT_ERRORDEF_( Invalid_Face_Handle, 0x23, + "invalid face handle" ) + FT_ERRORDEF_( Invalid_Size_Handle, 0x24, + "invalid size handle" ) + FT_ERRORDEF_( Invalid_Slot_Handle, 0x25, + "invalid glyph slot handle" ) + FT_ERRORDEF_( Invalid_CharMap_Handle, 0x26, + "invalid charmap handle" ) + FT_ERRORDEF_( Invalid_Cache_Handle, 0x27, + "invalid cache manager handle" ) + FT_ERRORDEF_( Invalid_Stream_Handle, 0x28, + "invalid stream handle" ) + + /* driver errors */ + + FT_ERRORDEF_( Too_Many_Drivers, 0x30, + "too many modules" ) + FT_ERRORDEF_( Too_Many_Extensions, 0x31, + "too many extensions" ) + + /* memory errors */ + + FT_ERRORDEF_( Out_Of_Memory, 0x40, + "out of memory" ) + FT_ERRORDEF_( Unlisted_Object, 0x41, + "unlisted object" ) + + /* stream errors */ + + FT_ERRORDEF_( Cannot_Open_Stream, 0x51, + "cannot open stream" ) + FT_ERRORDEF_( Invalid_Stream_Seek, 0x52, + "invalid stream seek" ) + FT_ERRORDEF_( Invalid_Stream_Skip, 0x53, + "invalid stream skip" ) + FT_ERRORDEF_( Invalid_Stream_Read, 0x54, + "invalid stream read" ) + FT_ERRORDEF_( Invalid_Stream_Operation, 0x55, + "invalid stream operation" ) + FT_ERRORDEF_( Invalid_Frame_Operation, 0x56, + "invalid frame operation" ) + FT_ERRORDEF_( Nested_Frame_Access, 0x57, + "nested frame access" ) + FT_ERRORDEF_( Invalid_Frame_Read, 0x58, + "invalid frame read" ) + + /* raster errors */ + + FT_ERRORDEF_( Raster_Uninitialized, 0x60, + "raster uninitialized" ) + FT_ERRORDEF_( Raster_Corrupted, 0x61, + "raster corrupted" ) + FT_ERRORDEF_( Raster_Overflow, 0x62, + "raster overflow" ) + FT_ERRORDEF_( Raster_Negative_Height, 0x63, + "negative height while rastering" ) + + /* cache errors */ + + FT_ERRORDEF_( Too_Many_Caches, 0x70, + "too many registered caches" ) + + /* TrueType and SFNT errors */ + + FT_ERRORDEF_( Invalid_Opcode, 0x80, + "invalid opcode" ) + FT_ERRORDEF_( Too_Few_Arguments, 0x81, + "too few arguments" ) + FT_ERRORDEF_( Stack_Overflow, 0x82, + "stack overflow" ) + FT_ERRORDEF_( Code_Overflow, 0x83, + "code overflow" ) + FT_ERRORDEF_( Bad_Argument, 0x84, + "bad argument" ) + FT_ERRORDEF_( Divide_By_Zero, 0x85, + "division by zero" ) + FT_ERRORDEF_( Invalid_Reference, 0x86, + "invalid reference" ) + FT_ERRORDEF_( Debug_OpCode, 0x87, + "found debug opcode" ) + FT_ERRORDEF_( ENDF_In_Exec_Stream, 0x88, + "found ENDF opcode in execution stream" ) + FT_ERRORDEF_( Nested_DEFS, 0x89, + "nested DEFS" ) + FT_ERRORDEF_( Invalid_CodeRange, 0x8A, + "invalid code range" ) + FT_ERRORDEF_( Execution_Too_Long, 0x8B, + "execution context too long" ) + FT_ERRORDEF_( Too_Many_Function_Defs, 0x8C, + "too many function definitions" ) + FT_ERRORDEF_( Too_Many_Instruction_Defs, 0x8D, + "too many instruction definitions" ) + FT_ERRORDEF_( Table_Missing, 0x8E, + "SFNT font table missing" ) + FT_ERRORDEF_( Horiz_Header_Missing, 0x8F, + "horizontal header (hhea) table missing" ) + FT_ERRORDEF_( Locations_Missing, 0x90, + "locations (loca) table missing" ) + FT_ERRORDEF_( Name_Table_Missing, 0x91, + "name table missing" ) + FT_ERRORDEF_( CMap_Table_Missing, 0x92, + "character map (cmap) table missing" ) + FT_ERRORDEF_( Hmtx_Table_Missing, 0x93, + "horizontal metrics (hmtx) table missing" ) + FT_ERRORDEF_( Post_Table_Missing, 0x94, + "PostScript (post) table missing" ) + FT_ERRORDEF_( Invalid_Horiz_Metrics, 0x95, + "invalid horizontal metrics" ) + FT_ERRORDEF_( Invalid_CharMap_Format, 0x96, + "invalid character map (cmap) format" ) + FT_ERRORDEF_( Invalid_PPem, 0x97, + "invalid ppem value" ) + FT_ERRORDEF_( Invalid_Vert_Metrics, 0x98, + "invalid vertical metrics" ) + FT_ERRORDEF_( Could_Not_Find_Context, 0x99, + "could not find context" ) + FT_ERRORDEF_( Invalid_Post_Table_Format, 0x9A, + "invalid PostScript (post) table format" ) + FT_ERRORDEF_( Invalid_Post_Table, 0x9B, + "invalid PostScript (post) table" ) + FT_ERRORDEF_( DEF_In_Glyf_Bytecode, 0x9C, + "found FDEF or IDEF opcode in glyf bytecode" ) + FT_ERRORDEF_( Missing_Bitmap, 0x9D, + "missing bitmap in strike" ) + FT_ERRORDEF_( Missing_SVG_Hooks, 0x9E, + "SVG hooks have not been set" ) + + /* CFF, CID, and Type 1 errors */ + + FT_ERRORDEF_( Syntax_Error, 0xA0, + "opcode syntax error" ) + FT_ERRORDEF_( Stack_Underflow, 0xA1, + "argument stack underflow" ) + FT_ERRORDEF_( Ignore, 0xA2, + "ignore" ) + FT_ERRORDEF_( No_Unicode_Glyph_Name, 0xA3, + "no Unicode glyph name found" ) + FT_ERRORDEF_( Glyph_Too_Big, 0xA4, + "glyph too big for hinting" ) + + /* BDF errors */ + + FT_ERRORDEF_( Missing_Startfont_Field, 0xB0, + "`STARTFONT' field missing" ) + FT_ERRORDEF_( Missing_Font_Field, 0xB1, + "`FONT' field missing" ) + FT_ERRORDEF_( Missing_Size_Field, 0xB2, + "`SIZE' field missing" ) + FT_ERRORDEF_( Missing_Fontboundingbox_Field, 0xB3, + "`FONTBOUNDINGBOX' field missing" ) + FT_ERRORDEF_( Missing_Chars_Field, 0xB4, + "`CHARS' field missing" ) + FT_ERRORDEF_( Missing_Startchar_Field, 0xB5, + "`STARTCHAR' field missing" ) + FT_ERRORDEF_( Missing_Encoding_Field, 0xB6, + "`ENCODING' field missing" ) + FT_ERRORDEF_( Missing_Bbx_Field, 0xB7, + "`BBX' field missing" ) + FT_ERRORDEF_( Bbx_Too_Big, 0xB8, + "`BBX' too big" ) + FT_ERRORDEF_( Corrupted_Font_Header, 0xB9, + "Font header corrupted or missing fields" ) + FT_ERRORDEF_( Corrupted_Font_Glyphs, 0xBA, + "Font glyphs corrupted or missing fields" ) + + /* */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/fterrors.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/fterrors.h new file mode 100644 index 00000000..27c0ece5 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/fterrors.h @@ -0,0 +1,296 @@ +/**************************************************************************** + * + * fterrors.h + * + * FreeType error code handling (specification). + * + * Copyright (C) 1996-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + + /************************************************************************** + * + * @section: + * error_enumerations + * + * @title: + * Error Enumerations + * + * @abstract: + * How to handle errors and error strings. + * + * @description: + * The header file `fterrors.h` (which is automatically included by + * `freetype.h`) defines the handling of FreeType's enumeration + * constants. It can also be used to generate error message strings + * with a small macro trick explained below. + * + * **Error Formats** + * + * The configuration macro `FT_CONFIG_OPTION_USE_MODULE_ERRORS` can be + * defined in `ftoption.h` in order to make the higher byte indicate the + * module where the error has happened (this is not compatible with + * standard builds of FreeType~2, however). See the file `ftmoderr.h` + * for more details. + * + * **Error Message Strings** + * + * Error definitions are set up with special macros that allow client + * applications to build a table of error message strings. The strings + * are not included in a normal build of FreeType~2 to save space (most + * client applications do not use them). + * + * To do so, you have to define the following macros before including + * this file. + * + * ``` + * FT_ERROR_START_LIST + * ``` + * + * This macro is called before anything else to define the start of the + * error list. It is followed by several `FT_ERROR_DEF` calls. + * + * ``` + * FT_ERROR_DEF( e, v, s ) + * ``` + * + * This macro is called to define one single error. 'e' is the error + * code identifier (e.g., `Invalid_Argument`), 'v' is the error's + * numerical value, and 's' is the corresponding error string. + * + * ``` + * FT_ERROR_END_LIST + * ``` + * + * This macro ends the list. + * + * Additionally, you have to undefine `FTERRORS_H_` before #including + * this file. + * + * Here is a simple example. + * + * ``` + * #undef FTERRORS_H_ + * #define FT_ERRORDEF( e, v, s ) { e, s }, + * #define FT_ERROR_START_LIST { + * #define FT_ERROR_END_LIST { 0, NULL } }; + * + * const struct + * { + * int err_code; + * const char* err_msg; + * } ft_errors[] = + * + * #include + * ``` + * + * An alternative to using an array is a switch statement. + * + * ``` + * #undef FTERRORS_H_ + * #define FT_ERROR_START_LIST switch ( error_code ) { + * #define FT_ERRORDEF( e, v, s ) case v: return s; + * #define FT_ERROR_END_LIST } + * ``` + * + * If you use `FT_CONFIG_OPTION_USE_MODULE_ERRORS`, `error_code` should + * be replaced with `FT_ERROR_BASE(error_code)` in the last example. + */ + + /* */ + + /* In previous FreeType versions we used `__FTERRORS_H__`. However, */ + /* using two successive underscores in a non-system symbol name */ + /* violates the C (and C++) standard, so it was changed to the */ + /* current form. In spite of this, we have to make */ + /* */ + /* ``` */ + /* #undefine __FTERRORS_H__ */ + /* ``` */ + /* */ + /* work for backward compatibility. */ + /* */ +#if !( defined( FTERRORS_H_ ) && defined ( __FTERRORS_H__ ) ) +#define FTERRORS_H_ +#define __FTERRORS_H__ + + + /* include module base error codes */ +#include + + + /*******************************************************************/ + /*******************************************************************/ + /***** *****/ + /***** SETUP MACROS *****/ + /***** *****/ + /*******************************************************************/ + /*******************************************************************/ + + +#undef FT_NEED_EXTERN_C + + + /* FT_ERR_PREFIX is used as a prefix for error identifiers. */ + /* By default, we use `FT_Err_`. */ + /* */ +#ifndef FT_ERR_PREFIX +#define FT_ERR_PREFIX FT_Err_ +#endif + + + /* FT_ERR_BASE is used as the base for module-specific errors. */ + /* */ +#ifdef FT_CONFIG_OPTION_USE_MODULE_ERRORS + +#ifndef FT_ERR_BASE +#define FT_ERR_BASE FT_Mod_Err_Base +#endif + +#else + +#undef FT_ERR_BASE +#define FT_ERR_BASE 0 + +#endif /* FT_CONFIG_OPTION_USE_MODULE_ERRORS */ + + + /* If FT_ERRORDEF is not defined, we need to define a simple */ + /* enumeration type. */ + /* */ +#ifndef FT_ERRORDEF + +#define FT_INCLUDE_ERR_PROTOS + +#define FT_ERRORDEF( e, v, s ) e = v, +#define FT_ERROR_START_LIST enum { +#define FT_ERROR_END_LIST FT_ERR_CAT( FT_ERR_PREFIX, Max ) }; + +#ifdef __cplusplus +#define FT_NEED_EXTERN_C + extern "C" { +#endif + +#endif /* !FT_ERRORDEF */ + + + /* this macro is used to define an error */ +#define FT_ERRORDEF_( e, v, s ) \ + FT_ERRORDEF( FT_ERR_CAT( FT_ERR_PREFIX, e ), v + FT_ERR_BASE, s ) + + /* this is only used for _Err_Ok, which must be 0! */ +#define FT_NOERRORDEF_( e, v, s ) \ + FT_ERRORDEF( FT_ERR_CAT( FT_ERR_PREFIX, e ), v, s ) + + +#ifdef FT_ERROR_START_LIST + FT_ERROR_START_LIST +#endif + + + /* now include the error codes */ +#include + + +#ifdef FT_ERROR_END_LIST + FT_ERROR_END_LIST +#endif + + + /*******************************************************************/ + /*******************************************************************/ + /***** *****/ + /***** SIMPLE CLEANUP *****/ + /***** *****/ + /*******************************************************************/ + /*******************************************************************/ + +#ifdef FT_NEED_EXTERN_C + } +#endif + +#undef FT_ERROR_START_LIST +#undef FT_ERROR_END_LIST + +#undef FT_ERRORDEF +#undef FT_ERRORDEF_ +#undef FT_NOERRORDEF_ + +#undef FT_NEED_EXTERN_C +#undef FT_ERR_BASE + + /* FT_ERR_PREFIX is needed internally */ +#ifndef FT2_BUILD_LIBRARY +#undef FT_ERR_PREFIX +#endif + + /* FT_INCLUDE_ERR_PROTOS: Control whether function prototypes should be */ + /* included with */ + /* */ + /* #include */ + /* */ + /* This is only true where `FT_ERRORDEF` is */ + /* undefined. */ + /* */ + /* FT_ERR_PROTOS_DEFINED: Actual multiple-inclusion protection of */ + /* `fterrors.h`. */ +#ifdef FT_INCLUDE_ERR_PROTOS +#undef FT_INCLUDE_ERR_PROTOS + +#ifndef FT_ERR_PROTOS_DEFINED +#define FT_ERR_PROTOS_DEFINED + + +FT_BEGIN_HEADER + + /************************************************************************** + * + * @function: + * FT_Error_String + * + * @description: + * Retrieve the description of a valid FreeType error code. + * + * @input: + * error_code :: + * A valid FreeType error code. + * + * @return: + * A C~string or `NULL`, if any error occurred. + * + * @note: + * FreeType has to be compiled with `FT_CONFIG_OPTION_ERROR_STRINGS` or + * `FT_DEBUG_LEVEL_ERROR` to get meaningful descriptions. + * 'error_string' will be `NULL` otherwise. + * + * Module identification will be ignored: + * + * ```c + * strcmp( FT_Error_String( FT_Err_Unknown_File_Format ), + * FT_Error_String( BDF_Err_Unknown_File_Format ) ) == 0; + * ``` + */ + FT_EXPORT( const char* ) + FT_Error_String( FT_Error error_code ); + + /* */ + +FT_END_HEADER + + +#endif /* FT_ERR_PROTOS_DEFINED */ + +#endif /* FT_INCLUDE_ERR_PROTOS */ + +#endif /* !(FTERRORS_H_ && __FTERRORS_H__) */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftfntfmt.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftfntfmt.h new file mode 100644 index 00000000..7c8b0874 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftfntfmt.h @@ -0,0 +1,93 @@ +/**************************************************************************** + * + * ftfntfmt.h + * + * Support functions for font formats. + * + * Copyright (C) 2002-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTFNTFMT_H_ +#define FTFNTFMT_H_ + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * font_formats + * + * @title: + * Font Formats + * + * @abstract: + * Getting the font format. + * + * @description: + * The single function in this section can be used to get the font format. + * Note that this information is not needed normally; however, there are + * special cases (like in PDF devices) where it is important to + * differentiate, in spite of FreeType's uniform API. + * + */ + + + /************************************************************************** + * + * @function: + * FT_Get_Font_Format + * + * @description: + * Return a string describing the format of a given face. Possible values + * are 'TrueType', 'Type~1', 'BDF', 'PCF', 'Type~42', 'CID~Type~1', 'CFF', + * 'PFR', and 'Windows~FNT'. + * + * The return value is suitable to be used as an X11 FONT_PROPERTY. + * + * @input: + * face :: + * Input face handle. + * + * @return: + * Font format string. `NULL` in case of error. + * + * @note: + * A deprecated name for the same function is `FT_Get_X11_Font_Format`. + */ + FT_EXPORT( const char* ) + FT_Get_Font_Format( FT_Face face ); + + + /* deprecated */ + FT_EXPORT( const char* ) + FT_Get_X11_Font_Format( FT_Face face ); + + + /* */ + + +FT_END_HEADER + +#endif /* FTFNTFMT_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftgasp.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftgasp.h new file mode 100644 index 00000000..30e5a9bf --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftgasp.h @@ -0,0 +1,143 @@ +/**************************************************************************** + * + * ftgasp.h + * + * Access of TrueType's 'gasp' table (specification). + * + * Copyright (C) 2007-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTGASP_H_ +#define FTGASP_H_ + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * gasp_table + * + * @title: + * Gasp Table + * + * @abstract: + * Retrieving TrueType 'gasp' table entries. + * + * @description: + * The function @FT_Get_Gasp can be used to query a TrueType or OpenType + * font for specific entries in its 'gasp' table, if any. This is mainly + * useful when implementing native TrueType hinting with the bytecode + * interpreter to duplicate the Windows text rendering results. + */ + + /************************************************************************** + * + * @enum: + * FT_GASP_XXX + * + * @description: + * A list of values and/or bit-flags returned by the @FT_Get_Gasp + * function. + * + * @values: + * FT_GASP_NO_TABLE :: + * This special value means that there is no GASP table in this face. + * It is up to the client to decide what to do. + * + * FT_GASP_DO_GRIDFIT :: + * Grid-fitting and hinting should be performed at the specified ppem. + * This **really** means TrueType bytecode interpretation. If this bit + * is not set, no hinting gets applied. + * + * FT_GASP_DO_GRAY :: + * Anti-aliased rendering should be performed at the specified ppem. + * If not set, do monochrome rendering. + * + * FT_GASP_SYMMETRIC_SMOOTHING :: + * If set, smoothing along multiple axes must be used with ClearType. + * + * FT_GASP_SYMMETRIC_GRIDFIT :: + * Grid-fitting must be used with ClearType's symmetric smoothing. + * + * @note: + * The bit-flags `FT_GASP_DO_GRIDFIT` and `FT_GASP_DO_GRAY` are to be + * used for standard font rasterization only. Independently of that, + * `FT_GASP_SYMMETRIC_SMOOTHING` and `FT_GASP_SYMMETRIC_GRIDFIT` are to + * be used if ClearType is enabled (and `FT_GASP_DO_GRIDFIT` and + * `FT_GASP_DO_GRAY` are consequently ignored). + * + * 'ClearType' is Microsoft's implementation of LCD rendering, partly + * protected by patents. + * + * @since: + * 2.3.0 + */ +#define FT_GASP_NO_TABLE -1 +#define FT_GASP_DO_GRIDFIT 0x01 +#define FT_GASP_DO_GRAY 0x02 +#define FT_GASP_SYMMETRIC_GRIDFIT 0x04 +#define FT_GASP_SYMMETRIC_SMOOTHING 0x08 + + + /************************************************************************** + * + * @function: + * FT_Get_Gasp + * + * @description: + * For a TrueType or OpenType font file, return the rasterizer behaviour + * flags from the font's 'gasp' table corresponding to a given character + * pixel size. + * + * @input: + * face :: + * The source face handle. + * + * ppem :: + * The vertical character pixel size. + * + * @return: + * Bit flags (see @FT_GASP_XXX), or @FT_GASP_NO_TABLE if there is no + * 'gasp' table in the face. + * + * @note: + * If you want to use the MM functionality of OpenType variation fonts + * (i.e., using @FT_Set_Var_Design_Coordinates and friends), call this + * function **after** setting an instance since the return values can + * change. + * + * @since: + * 2.3.0 + */ + FT_EXPORT( FT_Int ) + FT_Get_Gasp( FT_Face face, + FT_UInt ppem ); + + /* */ + + +FT_END_HEADER + +#endif /* FTGASP_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftglyph.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftglyph.h new file mode 100644 index 00000000..dc1eb887 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftglyph.h @@ -0,0 +1,750 @@ +/**************************************************************************** + * + * ftglyph.h + * + * FreeType convenience functions to handle glyphs (specification). + * + * Copyright (C) 1996-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + + /************************************************************************** + * + * This file contains the definition of several convenience functions that + * can be used by client applications to easily retrieve glyph bitmaps and + * outlines from a given face. + * + * These functions should be optional if you are writing a font server or + * text layout engine on top of FreeType. However, they are pretty handy + * for many other simple uses of the library. + * + */ + + +#ifndef FTGLYPH_H_ +#define FTGLYPH_H_ + + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * glyph_management + * + * @title: + * Glyph Management + * + * @abstract: + * Generic interface to manage individual glyph data. + * + * @description: + * This section contains definitions used to manage glyph data through + * generic @FT_Glyph objects. Each of them can contain a bitmap, + * a vector outline, or even images in other formats. These objects are + * detached from @FT_Face, contrary to @FT_GlyphSlot. + * + */ + + + /* forward declaration to a private type */ + typedef struct FT_Glyph_Class_ FT_Glyph_Class; + + + /************************************************************************** + * + * @type: + * FT_Glyph + * + * @description: + * Handle to an object used to model generic glyph images. It is a + * pointer to the @FT_GlyphRec structure and can contain a glyph bitmap + * or pointer. + * + * @note: + * Glyph objects are not owned by the library. You must thus release + * them manually (through @FT_Done_Glyph) _before_ calling + * @FT_Done_FreeType. + */ + typedef struct FT_GlyphRec_* FT_Glyph; + + + /************************************************************************** + * + * @struct: + * FT_GlyphRec + * + * @description: + * The root glyph structure contains a given glyph image plus its advance + * width in 16.16 fixed-point format. + * + * @fields: + * library :: + * A handle to the FreeType library object. + * + * clazz :: + * A pointer to the glyph's class. Private. + * + * format :: + * The format of the glyph's image. + * + * advance :: + * A 16.16 vector that gives the glyph's advance width. + */ + typedef struct FT_GlyphRec_ + { + FT_Library library; + const FT_Glyph_Class* clazz; + FT_Glyph_Format format; + FT_Vector advance; + + } FT_GlyphRec; + + + /************************************************************************** + * + * @type: + * FT_BitmapGlyph + * + * @description: + * A handle to an object used to model a bitmap glyph image. This is a + * 'sub-class' of @FT_Glyph, and a pointer to @FT_BitmapGlyphRec. + */ + typedef struct FT_BitmapGlyphRec_* FT_BitmapGlyph; + + + /************************************************************************** + * + * @struct: + * FT_BitmapGlyphRec + * + * @description: + * A structure used for bitmap glyph images. This really is a + * 'sub-class' of @FT_GlyphRec. + * + * @fields: + * root :: + * The root fields of @FT_Glyph. + * + * left :: + * The left-side bearing, i.e., the horizontal distance from the + * current pen position to the left border of the glyph bitmap. + * + * top :: + * The top-side bearing, i.e., the vertical distance from the current + * pen position to the top border of the glyph bitmap. This distance + * is positive for upwards~y! + * + * bitmap :: + * A descriptor for the bitmap. + * + * @note: + * You can typecast an @FT_Glyph to @FT_BitmapGlyph if you have + * `glyph->format == FT_GLYPH_FORMAT_BITMAP`. This lets you access the + * bitmap's contents easily. + * + * The corresponding pixel buffer is always owned by @FT_BitmapGlyph and + * is thus created and destroyed with it. + */ + typedef struct FT_BitmapGlyphRec_ + { + FT_GlyphRec root; + FT_Int left; + FT_Int top; + FT_Bitmap bitmap; + + } FT_BitmapGlyphRec; + + + /************************************************************************** + * + * @type: + * FT_OutlineGlyph + * + * @description: + * A handle to an object used to model an outline glyph image. This is a + * 'sub-class' of @FT_Glyph, and a pointer to @FT_OutlineGlyphRec. + */ + typedef struct FT_OutlineGlyphRec_* FT_OutlineGlyph; + + + /************************************************************************** + * + * @struct: + * FT_OutlineGlyphRec + * + * @description: + * A structure used for outline (vectorial) glyph images. This really is + * a 'sub-class' of @FT_GlyphRec. + * + * @fields: + * root :: + * The root @FT_Glyph fields. + * + * outline :: + * A descriptor for the outline. + * + * @note: + * You can typecast an @FT_Glyph to @FT_OutlineGlyph if you have + * `glyph->format == FT_GLYPH_FORMAT_OUTLINE`. This lets you access the + * outline's content easily. + * + * As the outline is extracted from a glyph slot, its coordinates are + * expressed normally in 26.6 pixels, unless the flag @FT_LOAD_NO_SCALE + * was used in @FT_Load_Glyph or @FT_Load_Char. + * + * The outline's tables are always owned by the object and are destroyed + * with it. + */ + typedef struct FT_OutlineGlyphRec_ + { + FT_GlyphRec root; + FT_Outline outline; + + } FT_OutlineGlyphRec; + + + /************************************************************************** + * + * @type: + * FT_SvgGlyph + * + * @description: + * A handle to an object used to model an SVG glyph. This is a + * 'sub-class' of @FT_Glyph, and a pointer to @FT_SvgGlyphRec. + * + * @since: + * 2.12 + */ + typedef struct FT_SvgGlyphRec_* FT_SvgGlyph; + + + /************************************************************************** + * + * @struct: + * FT_SvgGlyphRec + * + * @description: + * A structure used for OT-SVG glyphs. This is a 'sub-class' of + * @FT_GlyphRec. + * + * @fields: + * root :: + * The root @FT_GlyphRec fields. + * + * svg_document :: + * A pointer to the SVG document. + * + * svg_document_length :: + * The length of `svg_document`. + * + * glyph_index :: + * The index of the glyph to be rendered. + * + * metrics :: + * A metrics object storing the size information. + * + * units_per_EM :: + * The size of the EM square. + * + * start_glyph_id :: + * The first glyph ID in the glyph range covered by this document. + * + * end_glyph_id :: + * The last glyph ID in the glyph range covered by this document. + * + * transform :: + * A 2x2 transformation matrix to apply to the glyph while rendering + * it. + * + * delta :: + * Translation to apply to the glyph while rendering. + * + * @note: + * The Glyph Management API requires @FT_Glyph or its 'sub-class' to have + * all the information needed to completely define the glyph's rendering. + * Outline-based glyphs can directly apply transformations to the outline + * but this is not possible for an SVG document that hasn't been parsed. + * Therefore, the transformation is stored along with the document. In + * the absence of a 'ViewBox' or 'Width'/'Height' attribute, the size of + * the ViewPort should be assumed to be 'units_per_EM'. + */ + typedef struct FT_SvgGlyphRec_ + { + FT_GlyphRec root; + + FT_Byte* svg_document; + FT_ULong svg_document_length; + + FT_UInt glyph_index; + + FT_Size_Metrics metrics; + FT_UShort units_per_EM; + + FT_UShort start_glyph_id; + FT_UShort end_glyph_id; + + FT_Matrix transform; + FT_Vector delta; + + } FT_SvgGlyphRec; + + + /************************************************************************** + * + * @function: + * FT_New_Glyph + * + * @description: + * A function used to create a new empty glyph image. Note that the + * created @FT_Glyph object must be released with @FT_Done_Glyph. + * + * @input: + * library :: + * A handle to the FreeType library object. + * + * format :: + * The format of the glyph's image. + * + * @output: + * aglyph :: + * A handle to the glyph object. + * + * @return: + * FreeType error code. 0~means success. + * + * @since: + * 2.10 + */ + FT_EXPORT( FT_Error ) + FT_New_Glyph( FT_Library library, + FT_Glyph_Format format, + FT_Glyph *aglyph ); + + + /************************************************************************** + * + * @function: + * FT_Get_Glyph + * + * @description: + * A function used to extract a glyph image from a slot. Note that the + * created @FT_Glyph object must be released with @FT_Done_Glyph. + * + * @input: + * slot :: + * A handle to the source glyph slot. + * + * @output: + * aglyph :: + * A handle to the glyph object. `NULL` in case of error. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * Because `*aglyph->advance.x` and `*aglyph->advance.y` are 16.16 + * fixed-point numbers, `slot->advance.x` and `slot->advance.y` (which + * are in 26.6 fixed-point format) must be in the range ]-32768;32768[. + */ + FT_EXPORT( FT_Error ) + FT_Get_Glyph( FT_GlyphSlot slot, + FT_Glyph *aglyph ); + + + /************************************************************************** + * + * @function: + * FT_Glyph_Copy + * + * @description: + * A function used to copy a glyph image. Note that the created + * @FT_Glyph object must be released with @FT_Done_Glyph. + * + * @input: + * source :: + * A handle to the source glyph object. + * + * @output: + * target :: + * A handle to the target glyph object. `NULL` in case of error. + * + * @return: + * FreeType error code. 0~means success. + */ + FT_EXPORT( FT_Error ) + FT_Glyph_Copy( FT_Glyph source, + FT_Glyph *target ); + + + /************************************************************************** + * + * @function: + * FT_Glyph_Transform + * + * @description: + * Transform a glyph image if its format is scalable. + * + * @inout: + * glyph :: + * A handle to the target glyph object. + * + * @input: + * matrix :: + * A pointer to a 2x2 matrix to apply. + * + * delta :: + * A pointer to a 2d vector to apply. Coordinates are expressed in + * 1/64 of a pixel. + * + * @return: + * FreeType error code (if not 0, the glyph format is not scalable). + * + * @note: + * The 2x2 transformation matrix is also applied to the glyph's advance + * vector. + */ + FT_EXPORT( FT_Error ) + FT_Glyph_Transform( FT_Glyph glyph, + const FT_Matrix* matrix, + const FT_Vector* delta ); + + + /************************************************************************** + * + * @enum: + * FT_Glyph_BBox_Mode + * + * @description: + * The mode how the values of @FT_Glyph_Get_CBox are returned. + * + * @values: + * FT_GLYPH_BBOX_UNSCALED :: + * Return unscaled font units. + * + * FT_GLYPH_BBOX_SUBPIXELS :: + * Return unfitted 26.6 coordinates. + * + * FT_GLYPH_BBOX_GRIDFIT :: + * Return grid-fitted 26.6 coordinates. + * + * FT_GLYPH_BBOX_TRUNCATE :: + * Return coordinates in integer pixels. + * + * FT_GLYPH_BBOX_PIXELS :: + * Return grid-fitted pixel coordinates. + */ + typedef enum FT_Glyph_BBox_Mode_ + { + FT_GLYPH_BBOX_UNSCALED = 0, + FT_GLYPH_BBOX_SUBPIXELS = 0, + FT_GLYPH_BBOX_GRIDFIT = 1, + FT_GLYPH_BBOX_TRUNCATE = 2, + FT_GLYPH_BBOX_PIXELS = 3 + + } FT_Glyph_BBox_Mode; + + + /* these constants are deprecated; use the corresponding */ + /* `FT_Glyph_BBox_Mode` values instead */ +#define ft_glyph_bbox_unscaled FT_GLYPH_BBOX_UNSCALED +#define ft_glyph_bbox_subpixels FT_GLYPH_BBOX_SUBPIXELS +#define ft_glyph_bbox_gridfit FT_GLYPH_BBOX_GRIDFIT +#define ft_glyph_bbox_truncate FT_GLYPH_BBOX_TRUNCATE +#define ft_glyph_bbox_pixels FT_GLYPH_BBOX_PIXELS + + + /************************************************************************** + * + * @function: + * FT_Glyph_Get_CBox + * + * @description: + * Return a glyph's 'control box'. The control box encloses all the + * outline's points, including Bezier control points. Though it + * coincides with the exact bounding box for most glyphs, it can be + * slightly larger in some situations (like when rotating an outline that + * contains Bezier outside arcs). + * + * Computing the control box is very fast, while getting the bounding box + * can take much more time as it needs to walk over all segments and arcs + * in the outline. To get the latter, you can use the 'ftbbox' + * component, which is dedicated to this single task. + * + * @input: + * glyph :: + * A handle to the source glyph object. + * + * mode :: + * The mode that indicates how to interpret the returned bounding box + * values. + * + * @output: + * acbox :: + * The glyph coordinate bounding box. Coordinates are expressed in + * 1/64 of pixels if it is grid-fitted. + * + * @note: + * Coordinates are relative to the glyph origin, using the y~upwards + * convention. + * + * If the glyph has been loaded with @FT_LOAD_NO_SCALE, `bbox_mode` must + * be set to @FT_GLYPH_BBOX_UNSCALED to get unscaled font units in 26.6 + * pixel format. The value @FT_GLYPH_BBOX_SUBPIXELS is another name for + * this constant. + * + * If the font is tricky and the glyph has been loaded with + * @FT_LOAD_NO_SCALE, the resulting CBox is meaningless. To get + * reasonable values for the CBox it is necessary to load the glyph at a + * large ppem value (so that the hinting instructions can properly shift + * and scale the subglyphs), then extracting the CBox, which can be + * eventually converted back to font units. + * + * Note that the maximum coordinates are exclusive, which means that one + * can compute the width and height of the glyph image (be it in integer + * or 26.6 pixels) as: + * + * ``` + * width = bbox.xMax - bbox.xMin; + * height = bbox.yMax - bbox.yMin; + * ``` + * + * Note also that for 26.6 coordinates, if `bbox_mode` is set to + * @FT_GLYPH_BBOX_GRIDFIT, the coordinates will also be grid-fitted, + * which corresponds to: + * + * ``` + * bbox.xMin = FLOOR(bbox.xMin); + * bbox.yMin = FLOOR(bbox.yMin); + * bbox.xMax = CEILING(bbox.xMax); + * bbox.yMax = CEILING(bbox.yMax); + * ``` + * + * To get the bbox in pixel coordinates, set `bbox_mode` to + * @FT_GLYPH_BBOX_TRUNCATE. + * + * To get the bbox in grid-fitted pixel coordinates, set `bbox_mode` to + * @FT_GLYPH_BBOX_PIXELS. + */ + FT_EXPORT( void ) + FT_Glyph_Get_CBox( FT_Glyph glyph, + FT_UInt bbox_mode, + FT_BBox *acbox ); + + + /************************************************************************** + * + * @function: + * FT_Glyph_To_Bitmap + * + * @description: + * Convert a given glyph object to a bitmap glyph object. + * + * @inout: + * the_glyph :: + * A pointer to a handle to the target glyph. + * + * @input: + * render_mode :: + * An enumeration that describes how the data is rendered. + * + * origin :: + * A pointer to a vector used to translate the glyph image before + * rendering. Can be~0 (if no translation). The origin is expressed + * in 26.6 pixels. + * + * destroy :: + * A boolean that indicates that the original glyph image should be + * destroyed by this function. It is never destroyed in case of error. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function does nothing if the glyph format isn't scalable. + * + * The glyph image is translated with the `origin` vector before + * rendering. + * + * The first parameter is a pointer to an @FT_Glyph handle that will be + * _replaced_ by this function (with newly allocated data). Typically, + * you would do something like the following (omitting error handling). + * + * ``` + * FT_Glyph glyph; + * FT_BitmapGlyph glyph_bitmap; + * + * + * // load glyph + * error = FT_Load_Char( face, glyph_index, FT_LOAD_DEFAULT ); + * + * // extract glyph image + * error = FT_Get_Glyph( face->glyph, &glyph ); + * + * // convert to a bitmap (default render mode + destroying old) + * if ( glyph->format != FT_GLYPH_FORMAT_BITMAP ) + * { + * error = FT_Glyph_To_Bitmap( &glyph, FT_RENDER_MODE_NORMAL, + * 0, 1 ); + * if ( error ) // `glyph' unchanged + * ... + * } + * + * // access bitmap content by typecasting + * glyph_bitmap = (FT_BitmapGlyph)glyph; + * + * // do funny stuff with it, like blitting/drawing + * ... + * + * // discard glyph image (bitmap or not) + * FT_Done_Glyph( glyph ); + * ``` + * + * Here is another example, again without error handling. + * + * ``` + * FT_Glyph glyphs[MAX_GLYPHS] + * + * + * ... + * + * for ( idx = 0; i < MAX_GLYPHS; i++ ) + * error = FT_Load_Glyph( face, idx, FT_LOAD_DEFAULT ) || + * FT_Get_Glyph ( face->glyph, &glyphs[idx] ); + * + * ... + * + * for ( idx = 0; i < MAX_GLYPHS; i++ ) + * { + * FT_Glyph bitmap = glyphs[idx]; + * + * + * ... + * + * // after this call, `bitmap' no longer points into + * // the `glyphs' array (and the old value isn't destroyed) + * FT_Glyph_To_Bitmap( &bitmap, FT_RENDER_MODE_MONO, 0, 0 ); + * + * ... + * + * FT_Done_Glyph( bitmap ); + * } + * + * ... + * + * for ( idx = 0; i < MAX_GLYPHS; i++ ) + * FT_Done_Glyph( glyphs[idx] ); + * ``` + */ + FT_EXPORT( FT_Error ) + FT_Glyph_To_Bitmap( FT_Glyph* the_glyph, + FT_Render_Mode render_mode, + const FT_Vector* origin, + FT_Bool destroy ); + + + /************************************************************************** + * + * @function: + * FT_Done_Glyph + * + * @description: + * Destroy a given glyph. + * + * @input: + * glyph :: + * A handle to the target glyph object. Can be `NULL`. + */ + FT_EXPORT( void ) + FT_Done_Glyph( FT_Glyph glyph ); + + /* */ + + + /* other helpful functions */ + + /************************************************************************** + * + * @section: + * computations + * + */ + + + /************************************************************************** + * + * @function: + * FT_Matrix_Multiply + * + * @description: + * Perform the matrix operation `b = a*b`. + * + * @input: + * a :: + * A pointer to matrix `a`. + * + * @inout: + * b :: + * A pointer to matrix `b`. + * + * @note: + * The result is undefined if either `a` or `b` is zero. + * + * Since the function uses wrap-around arithmetic, results become + * meaningless if the arguments are very large. + */ + FT_EXPORT( void ) + FT_Matrix_Multiply( const FT_Matrix* a, + FT_Matrix* b ); + + + /************************************************************************** + * + * @function: + * FT_Matrix_Invert + * + * @description: + * Invert a 2x2 matrix. Return an error if it can't be inverted. + * + * @inout: + * matrix :: + * A pointer to the target matrix. Remains untouched in case of error. + * + * @return: + * FreeType error code. 0~means success. + */ + FT_EXPORT( FT_Error ) + FT_Matrix_Invert( FT_Matrix* matrix ); + + /* */ + + +FT_END_HEADER + +#endif /* FTGLYPH_H_ */ + + +/* END */ + + +/* Local Variables: */ +/* coding: utf-8 */ +/* End: */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftgxval.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftgxval.h new file mode 100644 index 00000000..065cd53c --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftgxval.h @@ -0,0 +1,354 @@ +/**************************************************************************** + * + * ftgxval.h + * + * FreeType API for validating TrueTypeGX/AAT tables (specification). + * + * Copyright (C) 2004-2024 by + * Masatake YAMATO, Redhat K.K, + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + +/**************************************************************************** + * + * gxvalid is derived from both gxlayout module and otvalid module. + * Development of gxlayout is supported by the Information-technology + * Promotion Agency(IPA), Japan. + * + */ + + +#ifndef FTGXVAL_H_ +#define FTGXVAL_H_ + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * gx_validation + * + * @title: + * TrueTypeGX/AAT Validation + * + * @abstract: + * An API to validate TrueTypeGX/AAT tables. + * + * @description: + * This section contains the declaration of functions to validate some + * TrueTypeGX tables (feat, mort, morx, bsln, just, kern, opbd, trak, + * prop, lcar). + * + * @order: + * FT_TrueTypeGX_Validate + * FT_TrueTypeGX_Free + * + * FT_ClassicKern_Validate + * FT_ClassicKern_Free + * + * FT_VALIDATE_GX_LENGTH + * FT_VALIDATE_GXXXX + * FT_VALIDATE_CKERNXXX + * + */ + + /************************************************************************** + * + * + * Warning: Use `FT_VALIDATE_XXX` to validate a table. + * Following definitions are for gxvalid developers. + * + * + */ + +#define FT_VALIDATE_feat_INDEX 0 +#define FT_VALIDATE_mort_INDEX 1 +#define FT_VALIDATE_morx_INDEX 2 +#define FT_VALIDATE_bsln_INDEX 3 +#define FT_VALIDATE_just_INDEX 4 +#define FT_VALIDATE_kern_INDEX 5 +#define FT_VALIDATE_opbd_INDEX 6 +#define FT_VALIDATE_trak_INDEX 7 +#define FT_VALIDATE_prop_INDEX 8 +#define FT_VALIDATE_lcar_INDEX 9 +#define FT_VALIDATE_GX_LAST_INDEX FT_VALIDATE_lcar_INDEX + + + /************************************************************************** + * + * @macro: + * FT_VALIDATE_GX_LENGTH + * + * @description: + * The number of tables checked in this module. Use it as a parameter + * for the `table-length` argument of function @FT_TrueTypeGX_Validate. + */ +#define FT_VALIDATE_GX_LENGTH ( FT_VALIDATE_GX_LAST_INDEX + 1 ) + + /* */ + + /* Up to 0x1000 is used by otvalid. + Ox2xxx is reserved for feature OT extension. */ +#define FT_VALIDATE_GX_START 0x4000 +#define FT_VALIDATE_GX_BITFIELD( tag ) \ + ( FT_VALIDATE_GX_START << FT_VALIDATE_##tag##_INDEX ) + + + /************************************************************************** + * + * @enum: + * FT_VALIDATE_GXXXX + * + * @description: + * A list of bit-field constants used with @FT_TrueTypeGX_Validate to + * indicate which TrueTypeGX/AAT Type tables should be validated. + * + * @values: + * FT_VALIDATE_feat :: + * Validate 'feat' table. + * + * FT_VALIDATE_mort :: + * Validate 'mort' table. + * + * FT_VALIDATE_morx :: + * Validate 'morx' table. + * + * FT_VALIDATE_bsln :: + * Validate 'bsln' table. + * + * FT_VALIDATE_just :: + * Validate 'just' table. + * + * FT_VALIDATE_kern :: + * Validate 'kern' table. + * + * FT_VALIDATE_opbd :: + * Validate 'opbd' table. + * + * FT_VALIDATE_trak :: + * Validate 'trak' table. + * + * FT_VALIDATE_prop :: + * Validate 'prop' table. + * + * FT_VALIDATE_lcar :: + * Validate 'lcar' table. + * + * FT_VALIDATE_GX :: + * Validate all TrueTypeGX tables (feat, mort, morx, bsln, just, kern, + * opbd, trak, prop and lcar). + * + */ + +#define FT_VALIDATE_feat FT_VALIDATE_GX_BITFIELD( feat ) +#define FT_VALIDATE_mort FT_VALIDATE_GX_BITFIELD( mort ) +#define FT_VALIDATE_morx FT_VALIDATE_GX_BITFIELD( morx ) +#define FT_VALIDATE_bsln FT_VALIDATE_GX_BITFIELD( bsln ) +#define FT_VALIDATE_just FT_VALIDATE_GX_BITFIELD( just ) +#define FT_VALIDATE_kern FT_VALIDATE_GX_BITFIELD( kern ) +#define FT_VALIDATE_opbd FT_VALIDATE_GX_BITFIELD( opbd ) +#define FT_VALIDATE_trak FT_VALIDATE_GX_BITFIELD( trak ) +#define FT_VALIDATE_prop FT_VALIDATE_GX_BITFIELD( prop ) +#define FT_VALIDATE_lcar FT_VALIDATE_GX_BITFIELD( lcar ) + +#define FT_VALIDATE_GX ( FT_VALIDATE_feat | \ + FT_VALIDATE_mort | \ + FT_VALIDATE_morx | \ + FT_VALIDATE_bsln | \ + FT_VALIDATE_just | \ + FT_VALIDATE_kern | \ + FT_VALIDATE_opbd | \ + FT_VALIDATE_trak | \ + FT_VALIDATE_prop | \ + FT_VALIDATE_lcar ) + + + /************************************************************************** + * + * @function: + * FT_TrueTypeGX_Validate + * + * @description: + * Validate various TrueTypeGX tables to assure that all offsets and + * indices are valid. The idea is that a higher-level library that + * actually does the text layout can access those tables without error + * checking (which can be quite time consuming). + * + * @input: + * face :: + * A handle to the input face. + * + * validation_flags :: + * A bit field that specifies the tables to be validated. See + * @FT_VALIDATE_GXXXX for possible values. + * + * table_length :: + * The size of the `tables` array. Normally, @FT_VALIDATE_GX_LENGTH + * should be passed. + * + * @output: + * tables :: + * The array where all validated sfnt tables are stored. The array + * itself must be allocated by a client. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function only works with TrueTypeGX fonts, returning an error + * otherwise. + * + * After use, the application should deallocate the buffers pointed to by + * each `tables` element, by calling @FT_TrueTypeGX_Free. A `NULL` value + * indicates that the table either doesn't exist in the font, the + * application hasn't asked for validation, or the validator doesn't have + * the ability to validate the sfnt table. + */ + FT_EXPORT( FT_Error ) + FT_TrueTypeGX_Validate( FT_Face face, + FT_UInt validation_flags, + FT_Bytes tables[FT_VALIDATE_GX_LENGTH], + FT_UInt table_length ); + + + /************************************************************************** + * + * @function: + * FT_TrueTypeGX_Free + * + * @description: + * Free the buffer allocated by TrueTypeGX validator. + * + * @input: + * face :: + * A handle to the input face. + * + * table :: + * The pointer to the buffer allocated by @FT_TrueTypeGX_Validate. + * + * @note: + * This function must be used to free the buffer allocated by + * @FT_TrueTypeGX_Validate only. + */ + FT_EXPORT( void ) + FT_TrueTypeGX_Free( FT_Face face, + FT_Bytes table ); + + + /************************************************************************** + * + * @enum: + * FT_VALIDATE_CKERNXXX + * + * @description: + * A list of bit-field constants used with @FT_ClassicKern_Validate to + * indicate the classic kern dialect or dialects. If the selected type + * doesn't fit, @FT_ClassicKern_Validate regards the table as invalid. + * + * @values: + * FT_VALIDATE_MS :: + * Handle the 'kern' table as a classic Microsoft kern table. + * + * FT_VALIDATE_APPLE :: + * Handle the 'kern' table as a classic Apple kern table. + * + * FT_VALIDATE_CKERN :: + * Handle the 'kern' as either classic Apple or Microsoft kern table. + */ +#define FT_VALIDATE_MS ( FT_VALIDATE_GX_START << 0 ) +#define FT_VALIDATE_APPLE ( FT_VALIDATE_GX_START << 1 ) + +#define FT_VALIDATE_CKERN ( FT_VALIDATE_MS | FT_VALIDATE_APPLE ) + + + /************************************************************************** + * + * @function: + * FT_ClassicKern_Validate + * + * @description: + * Validate classic (16-bit format) kern table to assure that the + * offsets and indices are valid. The idea is that a higher-level + * library that actually does the text layout can access those tables + * without error checking (which can be quite time consuming). + * + * The 'kern' table validator in @FT_TrueTypeGX_Validate deals with both + * the new 32-bit format and the classic 16-bit format, while + * FT_ClassicKern_Validate only supports the classic 16-bit format. + * + * @input: + * face :: + * A handle to the input face. + * + * validation_flags :: + * A bit field that specifies the dialect to be validated. See + * @FT_VALIDATE_CKERNXXX for possible values. + * + * @output: + * ckern_table :: + * A pointer to the kern table. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * After use, the application should deallocate the buffers pointed to by + * `ckern_table`, by calling @FT_ClassicKern_Free. A `NULL` value + * indicates that the table doesn't exist in the font. + */ + FT_EXPORT( FT_Error ) + FT_ClassicKern_Validate( FT_Face face, + FT_UInt validation_flags, + FT_Bytes *ckern_table ); + + + /************************************************************************** + * + * @function: + * FT_ClassicKern_Free + * + * @description: + * Free the buffer allocated by classic Kern validator. + * + * @input: + * face :: + * A handle to the input face. + * + * table :: + * The pointer to the buffer that is allocated by + * @FT_ClassicKern_Validate. + * + * @note: + * This function must be used to free the buffer allocated by + * @FT_ClassicKern_Validate only. + */ + FT_EXPORT( void ) + FT_ClassicKern_Free( FT_Face face, + FT_Bytes table ); + + /* */ + + +FT_END_HEADER + +#endif /* FTGXVAL_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftgzip.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftgzip.h new file mode 100644 index 00000000..9516dc03 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftgzip.h @@ -0,0 +1,151 @@ +/**************************************************************************** + * + * ftgzip.h + * + * Gzip-compressed stream support. + * + * Copyright (C) 2002-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTGZIP_H_ +#define FTGZIP_H_ + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + /************************************************************************** + * + * @section: + * gzip + * + * @title: + * GZIP Streams + * + * @abstract: + * Using gzip-compressed font files. + * + * @description: + * In certain builds of the library, gzip compression recognition is + * automatically handled when calling @FT_New_Face or @FT_Open_Face. + * This means that if no font driver is capable of handling the raw + * compressed file, the library will try to open a gzipped stream from it + * and re-open the face with it. + * + * The stream implementation is very basic and resets the decompression + * process each time seeking backwards is needed within the stream, + * which significantly undermines the performance. + * + * This section contains the declaration of Gzip-specific functions. + * + */ + + + /************************************************************************** + * + * @function: + * FT_Stream_OpenGzip + * + * @description: + * Open a new stream to parse gzip-compressed font files. This is mainly + * used to support the compressed `*.pcf.gz` fonts that come with + * XFree86. + * + * @input: + * stream :: + * The target embedding stream. + * + * source :: + * The source stream. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The source stream must be opened _before_ calling this function. + * + * Calling the internal function `FT_Stream_Close` on the new stream will + * **not** call `FT_Stream_Close` on the source stream. None of the + * stream objects will be released to the heap. + * + * This function may return `FT_Err_Unimplemented_Feature` if your build + * of FreeType was not compiled with zlib support. + */ + FT_EXPORT( FT_Error ) + FT_Stream_OpenGzip( FT_Stream stream, + FT_Stream source ); + + + /************************************************************************** + * + * @function: + * FT_Gzip_Uncompress + * + * @description: + * Decompress a zipped input buffer into an output buffer. This function + * is modeled after zlib's `uncompress` function. + * + * @input: + * memory :: + * A FreeType memory handle. + * + * input :: + * The input buffer. + * + * input_len :: + * The length of the input buffer. + * + * @output: + * output :: + * The output buffer. + * + * @inout: + * output_len :: + * Before calling the function, this is the total size of the output + * buffer, which must be large enough to hold the entire uncompressed + * data (so the size of the uncompressed data must be known in + * advance). After calling the function, `output_len` is the size of + * the used data in `output`. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function may return `FT_Err_Unimplemented_Feature` if your build + * of FreeType was not compiled with zlib support. + * + * @since: + * 2.5.1 + */ + FT_EXPORT( FT_Error ) + FT_Gzip_Uncompress( FT_Memory memory, + FT_Byte* output, + FT_ULong* output_len, + const FT_Byte* input, + FT_ULong input_len ); + + /* */ + + +FT_END_HEADER + +#endif /* FTGZIP_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftimage.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftimage.h new file mode 100644 index 00000000..2b4b4ac6 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftimage.h @@ -0,0 +1,1289 @@ +/**************************************************************************** + * + * ftimage.h + * + * FreeType glyph image formats and default raster interface + * (specification). + * + * Copyright (C) 1996-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + /************************************************************************** + * + * Note: A 'raster' is simply a scan-line converter, used to render + * `FT_Outline`s into `FT_Bitmap`s. + * + * Note: This file can be used for `STANDALONE_` compilation of raster + * (B/W) and smooth (anti-aliased) renderers. Therefore, it must + * rely on standard variable types only instead of aliases in + * `fttypes.h`. + * + */ + + +#ifndef FTIMAGE_H_ +#define FTIMAGE_H_ + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * basic_types + * + */ + + + /************************************************************************** + * + * @type: + * FT_Pos + * + * @description: + * The type FT_Pos is used to store vectorial coordinates. Depending on + * the context, these can represent distances in integer font units, or + * 16.16, or 26.6 fixed-point pixel coordinates. + */ + typedef signed long FT_Pos; + + + /************************************************************************** + * + * @struct: + * FT_Vector + * + * @description: + * A simple structure used to store a 2D vector; coordinates are of the + * FT_Pos type. + * + * @fields: + * x :: + * The horizontal coordinate. + * y :: + * The vertical coordinate. + */ + typedef struct FT_Vector_ + { + FT_Pos x; + FT_Pos y; + + } FT_Vector; + + + /************************************************************************** + * + * @struct: + * FT_BBox + * + * @description: + * A structure used to hold an outline's bounding box, i.e., the + * coordinates of its extrema in the horizontal and vertical directions. + * + * @fields: + * xMin :: + * The horizontal minimum (left-most). + * + * yMin :: + * The vertical minimum (bottom-most). + * + * xMax :: + * The horizontal maximum (right-most). + * + * yMax :: + * The vertical maximum (top-most). + * + * @note: + * The bounding box is specified with the coordinates of the lower left + * and the upper right corner. In PostScript, those values are often + * called (llx,lly) and (urx,ury), respectively. + * + * If `yMin` is negative, this value gives the glyph's descender. + * Otherwise, the glyph doesn't descend below the baseline. Similarly, + * if `ymax` is positive, this value gives the glyph's ascender. + * + * `xMin` gives the horizontal distance from the glyph's origin to the + * left edge of the glyph's bounding box. If `xMin` is negative, the + * glyph extends to the left of the origin. + */ + typedef struct FT_BBox_ + { + FT_Pos xMin, yMin; + FT_Pos xMax, yMax; + + } FT_BBox; + + + /************************************************************************** + * + * @enum: + * FT_Pixel_Mode + * + * @description: + * An enumeration type used to describe the format of pixels in a given + * bitmap. Note that additional formats may be added in the future. + * + * @values: + * FT_PIXEL_MODE_NONE :: + * Value~0 is reserved. + * + * FT_PIXEL_MODE_MONO :: + * A monochrome bitmap, using 1~bit per pixel. Note that pixels are + * stored in most-significant order (MSB), which means that the + * left-most pixel in a byte has value 128. + * + * FT_PIXEL_MODE_GRAY :: + * An 8-bit bitmap, generally used to represent anti-aliased glyph + * images. Each pixel is stored in one byte. Note that the number of + * 'gray' levels is stored in the `num_grays` field of the @FT_Bitmap + * structure (it generally is 256). + * + * FT_PIXEL_MODE_GRAY2 :: + * A 2-bit per pixel bitmap, used to represent embedded anti-aliased + * bitmaps in font files according to the OpenType specification. We + * haven't found a single font using this format, however. + * + * FT_PIXEL_MODE_GRAY4 :: + * A 4-bit per pixel bitmap, representing embedded anti-aliased bitmaps + * in font files according to the OpenType specification. We haven't + * found a single font using this format, however. + * + * FT_PIXEL_MODE_LCD :: + * An 8-bit bitmap, representing RGB or BGR decimated glyph images used + * for display on LCD displays; the bitmap is three times wider than + * the original glyph image. See also @FT_RENDER_MODE_LCD. + * + * FT_PIXEL_MODE_LCD_V :: + * An 8-bit bitmap, representing RGB or BGR decimated glyph images used + * for display on rotated LCD displays; the bitmap is three times + * taller than the original glyph image. See also + * @FT_RENDER_MODE_LCD_V. + * + * FT_PIXEL_MODE_BGRA :: + * [Since 2.5] An image with four 8-bit channels per pixel, + * representing a color image (such as emoticons) with alpha channel. + * For each pixel, the format is BGRA, which means, the blue channel + * comes first in memory. The color channels are pre-multiplied and in + * the sRGB colorspace. For example, full red at half-translucent + * opacity will be represented as '00,00,80,80', not '00,00,FF,80'. + * See also @FT_LOAD_COLOR. + */ + typedef enum FT_Pixel_Mode_ + { + FT_PIXEL_MODE_NONE = 0, + FT_PIXEL_MODE_MONO, + FT_PIXEL_MODE_GRAY, + FT_PIXEL_MODE_GRAY2, + FT_PIXEL_MODE_GRAY4, + FT_PIXEL_MODE_LCD, + FT_PIXEL_MODE_LCD_V, + FT_PIXEL_MODE_BGRA, + + FT_PIXEL_MODE_MAX /* do not remove */ + + } FT_Pixel_Mode; + + + /* these constants are deprecated; use the corresponding `FT_Pixel_Mode` */ + /* values instead. */ +#define ft_pixel_mode_none FT_PIXEL_MODE_NONE +#define ft_pixel_mode_mono FT_PIXEL_MODE_MONO +#define ft_pixel_mode_grays FT_PIXEL_MODE_GRAY +#define ft_pixel_mode_pal2 FT_PIXEL_MODE_GRAY2 +#define ft_pixel_mode_pal4 FT_PIXEL_MODE_GRAY4 + + /* */ + + /* For debugging, the @FT_Pixel_Mode enumeration must stay in sync */ + /* with the `pixel_modes` array in file `ftobjs.c`. */ + + + /************************************************************************** + * + * @struct: + * FT_Bitmap + * + * @description: + * A structure used to describe a bitmap or pixmap to the raster. Note + * that we now manage pixmaps of various depths through the `pixel_mode` + * field. + * + * @fields: + * rows :: + * The number of bitmap rows. + * + * width :: + * The number of pixels in bitmap row. + * + * pitch :: + * The pitch's absolute value is the number of bytes taken by one + * bitmap row, including padding. However, the pitch is positive when + * the bitmap has a 'down' flow, and negative when it has an 'up' flow. + * In all cases, the pitch is an offset to add to a bitmap pointer in + * order to go down one row. + * + * Note that 'padding' means the alignment of a bitmap to a byte + * border, and FreeType functions normally align to the smallest + * possible integer value. + * + * For the B/W rasterizer, `pitch` is always an even number. + * + * To change the pitch of a bitmap (say, to make it a multiple of 4), + * use @FT_Bitmap_Convert. Alternatively, you might use callback + * functions to directly render to the application's surface; see the + * file `example2.cpp` in the tutorial for a demonstration. + * + * buffer :: + * A typeless pointer to the bitmap buffer. This value should be + * aligned on 32-bit boundaries in most cases. + * + * num_grays :: + * This field is only used with @FT_PIXEL_MODE_GRAY; it gives the + * number of gray levels used in the bitmap. + * + * pixel_mode :: + * The pixel mode, i.e., how pixel bits are stored. See @FT_Pixel_Mode + * for possible values. + * + * palette_mode :: + * This field is intended for paletted pixel modes; it indicates how + * the palette is stored. Not used currently. + * + * palette :: + * A typeless pointer to the bitmap palette; this field is intended for + * paletted pixel modes. Not used currently. + * + * @note: + * `width` and `rows` refer to the *physical* size of the bitmap, not the + * *logical* one. For example, if @FT_Pixel_Mode is set to + * `FT_PIXEL_MODE_LCD`, the logical width is a just a third of the + * physical one. + */ + typedef struct FT_Bitmap_ + { + unsigned int rows; + unsigned int width; + int pitch; + unsigned char* buffer; + unsigned short num_grays; + unsigned char pixel_mode; + unsigned char palette_mode; + void* palette; + + } FT_Bitmap; + + + /************************************************************************** + * + * @section: + * outline_processing + * + */ + + + /************************************************************************** + * + * @struct: + * FT_Outline + * + * @description: + * This structure is used to describe an outline to the scan-line + * converter. + * + * @fields: + * n_contours :: + * The number of contours in the outline. + * + * n_points :: + * The number of points in the outline. + * + * points :: + * A pointer to an array of `n_points` @FT_Vector elements, giving the + * outline's point coordinates. + * + * tags :: + * A pointer to an array of `n_points` chars, giving each outline + * point's type. + * + * If bit~0 is unset, the point is 'off' the curve, i.e., a Bezier + * control point, while it is 'on' if set. + * + * Bit~1 is meaningful for 'off' points only. If set, it indicates a + * third-order Bezier arc control point; and a second-order control + * point if unset. + * + * If bit~2 is set, bits 5-7 contain the drop-out mode (as defined in + * the OpenType specification; the value is the same as the argument to + * the 'SCANTYPE' instruction). + * + * Bits 3 and~4 are reserved for internal purposes. + * + * contours :: + * An array of `n_contours` shorts, giving the end point of each + * contour within the outline. For example, the first contour is + * defined by the points '0' to `contours[0]`, the second one is + * defined by the points `contours[0]+1` to `contours[1]`, etc. + * + * flags :: + * A set of bit flags used to characterize the outline and give hints + * to the scan-converter and hinter on how to convert/grid-fit it. See + * @FT_OUTLINE_XXX. + * + * @note: + * The B/W rasterizer only checks bit~2 in the `tags` array for the first + * point of each contour. The drop-out mode as given with + * @FT_OUTLINE_IGNORE_DROPOUTS, @FT_OUTLINE_SMART_DROPOUTS, and + * @FT_OUTLINE_INCLUDE_STUBS in `flags` is then overridden. + */ + typedef struct FT_Outline_ + { + unsigned short n_contours; /* number of contours in glyph */ + unsigned short n_points; /* number of points in the glyph */ + + FT_Vector* points; /* the outline's points */ + unsigned char* tags; /* the points flags */ + unsigned short* contours; /* the contour end points */ + + int flags; /* outline masks */ + + } FT_Outline; + + /* */ + + /* Following limits must be consistent with */ + /* FT_Outline.{n_contours,n_points} */ +#define FT_OUTLINE_CONTOURS_MAX USHRT_MAX +#define FT_OUTLINE_POINTS_MAX USHRT_MAX + + + /************************************************************************** + * + * @enum: + * FT_OUTLINE_XXX + * + * @description: + * A list of bit-field constants used for the flags in an outline's + * `flags` field. + * + * @values: + * FT_OUTLINE_NONE :: + * Value~0 is reserved. + * + * FT_OUTLINE_OWNER :: + * If set, this flag indicates that the outline's field arrays (i.e., + * `points`, `flags`, and `contours`) are 'owned' by the outline + * object, and should thus be freed when it is destroyed. + * + * FT_OUTLINE_EVEN_ODD_FILL :: + * By default, outlines are filled using the non-zero winding rule. If + * set to 1, the outline will be filled using the even-odd fill rule + * (only works with the smooth rasterizer). + * + * FT_OUTLINE_REVERSE_FILL :: + * By default, outside contours of an outline are oriented in + * clock-wise direction, as defined in the TrueType specification. + * This flag is set if the outline uses the opposite direction + * (typically for Type~1 fonts). This flag is ignored by the scan + * converter. + * + * FT_OUTLINE_IGNORE_DROPOUTS :: + * By default, the scan converter will try to detect drop-outs in an + * outline and correct the glyph bitmap to ensure consistent shape + * continuity. If set, this flag hints the scan-line converter to + * ignore such cases. See below for more information. + * + * FT_OUTLINE_SMART_DROPOUTS :: + * Select smart dropout control. If unset, use simple dropout control. + * Ignored if @FT_OUTLINE_IGNORE_DROPOUTS is set. See below for more + * information. + * + * FT_OUTLINE_INCLUDE_STUBS :: + * If set, turn pixels on for 'stubs', otherwise exclude them. Ignored + * if @FT_OUTLINE_IGNORE_DROPOUTS is set. See below for more + * information. + * + * FT_OUTLINE_OVERLAP :: + * [Since 2.10.3] This flag indicates that this outline contains + * overlapping contours and the anti-aliased renderer should perform + * oversampling to mitigate possible artifacts. This flag should _not_ + * be set for well designed glyphs without overlaps because it quadruples + * the rendering time. + * + * FT_OUTLINE_HIGH_PRECISION :: + * This flag indicates that the scan-line converter should try to + * convert this outline to bitmaps with the highest possible quality. + * It is typically set for small character sizes. Note that this is + * only a hint that might be completely ignored by a given + * scan-converter. + * + * FT_OUTLINE_SINGLE_PASS :: + * This flag is set to force a given scan-converter to only use a + * single pass over the outline to render a bitmap glyph image. + * Normally, it is set for very large character sizes. It is only a + * hint that might be completely ignored by a given scan-converter. + * + * @note: + * The flags @FT_OUTLINE_IGNORE_DROPOUTS, @FT_OUTLINE_SMART_DROPOUTS, and + * @FT_OUTLINE_INCLUDE_STUBS are ignored by the smooth rasterizer. + * + * There exists a second mechanism to pass the drop-out mode to the B/W + * rasterizer; see the `tags` field in @FT_Outline. + * + * Please refer to the description of the 'SCANTYPE' instruction in the + * [OpenType specification](https://learn.microsoft.com/en-us/typography/opentype/spec/tt_instructions#scantype) + * how simple drop-outs, smart drop-outs, and stubs are defined. + */ +#define FT_OUTLINE_NONE 0x0 +#define FT_OUTLINE_OWNER 0x1 +#define FT_OUTLINE_EVEN_ODD_FILL 0x2 +#define FT_OUTLINE_REVERSE_FILL 0x4 +#define FT_OUTLINE_IGNORE_DROPOUTS 0x8 +#define FT_OUTLINE_SMART_DROPOUTS 0x10 +#define FT_OUTLINE_INCLUDE_STUBS 0x20 +#define FT_OUTLINE_OVERLAP 0x40 + +#define FT_OUTLINE_HIGH_PRECISION 0x100 +#define FT_OUTLINE_SINGLE_PASS 0x200 + + + /* these constants are deprecated; use the corresponding */ + /* `FT_OUTLINE_XXX` values instead */ +#define ft_outline_none FT_OUTLINE_NONE +#define ft_outline_owner FT_OUTLINE_OWNER +#define ft_outline_even_odd_fill FT_OUTLINE_EVEN_ODD_FILL +#define ft_outline_reverse_fill FT_OUTLINE_REVERSE_FILL +#define ft_outline_ignore_dropouts FT_OUTLINE_IGNORE_DROPOUTS +#define ft_outline_high_precision FT_OUTLINE_HIGH_PRECISION +#define ft_outline_single_pass FT_OUTLINE_SINGLE_PASS + + /* */ + +#define FT_CURVE_TAG( flag ) ( flag & 0x03 ) + + /* see the `tags` field in `FT_Outline` for a description of the values */ +#define FT_CURVE_TAG_ON 0x01 +#define FT_CURVE_TAG_CONIC 0x00 +#define FT_CURVE_TAG_CUBIC 0x02 + +#define FT_CURVE_TAG_HAS_SCANMODE 0x04 + +#define FT_CURVE_TAG_TOUCH_X 0x08 /* reserved for TrueType hinter */ +#define FT_CURVE_TAG_TOUCH_Y 0x10 /* reserved for TrueType hinter */ + +#define FT_CURVE_TAG_TOUCH_BOTH ( FT_CURVE_TAG_TOUCH_X | \ + FT_CURVE_TAG_TOUCH_Y ) + /* values 0x20, 0x40, and 0x80 are reserved */ + + + /* these constants are deprecated; use the corresponding */ + /* `FT_CURVE_TAG_XXX` values instead */ +#define FT_Curve_Tag_On FT_CURVE_TAG_ON +#define FT_Curve_Tag_Conic FT_CURVE_TAG_CONIC +#define FT_Curve_Tag_Cubic FT_CURVE_TAG_CUBIC +#define FT_Curve_Tag_Touch_X FT_CURVE_TAG_TOUCH_X +#define FT_Curve_Tag_Touch_Y FT_CURVE_TAG_TOUCH_Y + + + /************************************************************************** + * + * @functype: + * FT_Outline_MoveToFunc + * + * @description: + * A function pointer type used to describe the signature of a 'move to' + * function during outline walking/decomposition. + * + * A 'move to' is emitted to start a new contour in an outline. + * + * @input: + * to :: + * A pointer to the target point of the 'move to'. + * + * user :: + * A typeless pointer, which is passed from the caller of the + * decomposition function. + * + * @return: + * Error code. 0~means success. + */ + typedef int + (*FT_Outline_MoveToFunc)( const FT_Vector* to, + void* user ); + +#define FT_Outline_MoveTo_Func FT_Outline_MoveToFunc + + + /************************************************************************** + * + * @functype: + * FT_Outline_LineToFunc + * + * @description: + * A function pointer type used to describe the signature of a 'line to' + * function during outline walking/decomposition. + * + * A 'line to' is emitted to indicate a segment in the outline. + * + * @input: + * to :: + * A pointer to the target point of the 'line to'. + * + * user :: + * A typeless pointer, which is passed from the caller of the + * decomposition function. + * + * @return: + * Error code. 0~means success. + */ + typedef int + (*FT_Outline_LineToFunc)( const FT_Vector* to, + void* user ); + +#define FT_Outline_LineTo_Func FT_Outline_LineToFunc + + + /************************************************************************** + * + * @functype: + * FT_Outline_ConicToFunc + * + * @description: + * A function pointer type used to describe the signature of a 'conic to' + * function during outline walking or decomposition. + * + * A 'conic to' is emitted to indicate a second-order Bezier arc in the + * outline. + * + * @input: + * control :: + * An intermediate control point between the last position and the new + * target in `to`. + * + * to :: + * A pointer to the target end point of the conic arc. + * + * user :: + * A typeless pointer, which is passed from the caller of the + * decomposition function. + * + * @return: + * Error code. 0~means success. + */ + typedef int + (*FT_Outline_ConicToFunc)( const FT_Vector* control, + const FT_Vector* to, + void* user ); + +#define FT_Outline_ConicTo_Func FT_Outline_ConicToFunc + + + /************************************************************************** + * + * @functype: + * FT_Outline_CubicToFunc + * + * @description: + * A function pointer type used to describe the signature of a 'cubic to' + * function during outline walking or decomposition. + * + * A 'cubic to' is emitted to indicate a third-order Bezier arc. + * + * @input: + * control1 :: + * A pointer to the first Bezier control point. + * + * control2 :: + * A pointer to the second Bezier control point. + * + * to :: + * A pointer to the target end point. + * + * user :: + * A typeless pointer, which is passed from the caller of the + * decomposition function. + * + * @return: + * Error code. 0~means success. + */ + typedef int + (*FT_Outline_CubicToFunc)( const FT_Vector* control1, + const FT_Vector* control2, + const FT_Vector* to, + void* user ); + +#define FT_Outline_CubicTo_Func FT_Outline_CubicToFunc + + + /************************************************************************** + * + * @struct: + * FT_Outline_Funcs + * + * @description: + * A structure to hold various function pointers used during outline + * decomposition in order to emit segments, conic, and cubic Beziers. + * + * @fields: + * move_to :: + * The 'move to' emitter. + * + * line_to :: + * The segment emitter. + * + * conic_to :: + * The second-order Bezier arc emitter. + * + * cubic_to :: + * The third-order Bezier arc emitter. + * + * shift :: + * The shift that is applied to coordinates before they are sent to the + * emitter. + * + * delta :: + * The delta that is applied to coordinates before they are sent to the + * emitter, but after the shift. + * + * @note: + * The point coordinates sent to the emitters are the transformed version + * of the original coordinates (this is important for high accuracy + * during scan-conversion). The transformation is simple: + * + * ``` + * x' = (x << shift) - delta + * y' = (y << shift) - delta + * ``` + * + * Set the values of `shift` and `delta` to~0 to get the original point + * coordinates. + */ + typedef struct FT_Outline_Funcs_ + { + FT_Outline_MoveToFunc move_to; + FT_Outline_LineToFunc line_to; + FT_Outline_ConicToFunc conic_to; + FT_Outline_CubicToFunc cubic_to; + + int shift; + FT_Pos delta; + + } FT_Outline_Funcs; + + + /************************************************************************** + * + * @section: + * basic_types + * + */ + + + /************************************************************************** + * + * @macro: + * FT_IMAGE_TAG + * + * @description: + * This macro converts four-letter tags to an unsigned long type. + * + * @note: + * Since many 16-bit compilers don't like 32-bit enumerations, you should + * redefine this macro in case of problems to something like this: + * + * ``` + * #define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 ) value + * ``` + * + * to get a simple enumeration without assigning special numbers. + */ +#ifndef FT_IMAGE_TAG + +#define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 ) \ + value = ( ( FT_STATIC_BYTE_CAST( unsigned long, _x1 ) << 24 ) | \ + ( FT_STATIC_BYTE_CAST( unsigned long, _x2 ) << 16 ) | \ + ( FT_STATIC_BYTE_CAST( unsigned long, _x3 ) << 8 ) | \ + FT_STATIC_BYTE_CAST( unsigned long, _x4 ) ) + +#endif /* FT_IMAGE_TAG */ + + + /************************************************************************** + * + * @enum: + * FT_Glyph_Format + * + * @description: + * An enumeration type used to describe the format of a given glyph + * image. Note that this version of FreeType only supports two image + * formats, even though future font drivers will be able to register + * their own format. + * + * @values: + * FT_GLYPH_FORMAT_NONE :: + * The value~0 is reserved. + * + * FT_GLYPH_FORMAT_COMPOSITE :: + * The glyph image is a composite of several other images. This format + * is _only_ used with @FT_LOAD_NO_RECURSE, and is used to report + * compound glyphs (like accented characters). + * + * FT_GLYPH_FORMAT_BITMAP :: + * The glyph image is a bitmap, and can be described as an @FT_Bitmap. + * You generally need to access the `bitmap` field of the + * @FT_GlyphSlotRec structure to read it. + * + * FT_GLYPH_FORMAT_OUTLINE :: + * The glyph image is a vectorial outline made of line segments and + * Bezier arcs; it can be described as an @FT_Outline; you generally + * want to access the `outline` field of the @FT_GlyphSlotRec structure + * to read it. + * + * FT_GLYPH_FORMAT_PLOTTER :: + * The glyph image is a vectorial path with no inside and outside + * contours. Some Type~1 fonts, like those in the Hershey family, + * contain glyphs in this format. These are described as @FT_Outline, + * but FreeType isn't currently capable of rendering them correctly. + * + * FT_GLYPH_FORMAT_SVG :: + * [Since 2.12] The glyph is represented by an SVG document in the + * 'SVG~' table. + */ + typedef enum FT_Glyph_Format_ + { + FT_IMAGE_TAG( FT_GLYPH_FORMAT_NONE, 0, 0, 0, 0 ), + + FT_IMAGE_TAG( FT_GLYPH_FORMAT_COMPOSITE, 'c', 'o', 'm', 'p' ), + FT_IMAGE_TAG( FT_GLYPH_FORMAT_BITMAP, 'b', 'i', 't', 's' ), + FT_IMAGE_TAG( FT_GLYPH_FORMAT_OUTLINE, 'o', 'u', 't', 'l' ), + FT_IMAGE_TAG( FT_GLYPH_FORMAT_PLOTTER, 'p', 'l', 'o', 't' ), + FT_IMAGE_TAG( FT_GLYPH_FORMAT_SVG, 'S', 'V', 'G', ' ' ) + + } FT_Glyph_Format; + + + /* these constants are deprecated; use the corresponding */ + /* `FT_Glyph_Format` values instead. */ +#define ft_glyph_format_none FT_GLYPH_FORMAT_NONE +#define ft_glyph_format_composite FT_GLYPH_FORMAT_COMPOSITE +#define ft_glyph_format_bitmap FT_GLYPH_FORMAT_BITMAP +#define ft_glyph_format_outline FT_GLYPH_FORMAT_OUTLINE +#define ft_glyph_format_plotter FT_GLYPH_FORMAT_PLOTTER + + + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /***** *****/ + /***** R A S T E R D E F I N I T I O N S *****/ + /***** *****/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + + + + /************************************************************************** + * + * @section: + * raster + * + * @title: + * Scanline Converter + * + * @abstract: + * How vectorial outlines are converted into bitmaps and pixmaps. + * + * @description: + * A raster or a rasterizer is a scan converter in charge of producing a + * pixel coverage bitmap that can be used as an alpha channel when + * compositing a glyph with a background. FreeType comes with two + * rasterizers: bilevel `raster1` and anti-aliased `smooth` are two + * separate modules. They are usually called from the high-level + * @FT_Load_Glyph or @FT_Render_Glyph functions and produce the entire + * coverage bitmap at once, while staying largely invisible to users. + * + * Instead of working with complete coverage bitmaps, it is also possible + * to intercept consecutive pixel runs on the same scanline with the same + * coverage, called _spans_, and process them individually. Only the + * `smooth` rasterizer permits this when calling @FT_Outline_Render with + * @FT_Raster_Params as described below. + * + * Working with either complete bitmaps or spans it is important to think + * of them as colorless coverage objects suitable as alpha channels to + * blend arbitrary colors with a background. For best results, it is + * recommended to use gamma correction, too. + * + * This section also describes the public API needed to set up alternative + * @FT_Renderer modules. + * + * @order: + * FT_Span + * FT_SpanFunc + * FT_Raster_Params + * FT_RASTER_FLAG_XXX + * + * FT_Raster + * FT_Raster_NewFunc + * FT_Raster_DoneFunc + * FT_Raster_ResetFunc + * FT_Raster_SetModeFunc + * FT_Raster_RenderFunc + * FT_Raster_Funcs + * + */ + + + /************************************************************************** + * + * @struct: + * FT_Span + * + * @description: + * A structure to model a single span of consecutive pixels when + * rendering an anti-aliased bitmap. + * + * @fields: + * x :: + * The span's horizontal start position. + * + * len :: + * The span's length in pixels. + * + * coverage :: + * The span color/coverage, ranging from 0 (background) to 255 + * (foreground). + * + * @note: + * This structure is used by the span drawing callback type named + * @FT_SpanFunc that takes the y~coordinate of the span as a parameter. + * + * The anti-aliased rasterizer produces coverage values from 0 to 255, + * that is, from completely transparent to completely opaque. + */ + typedef struct FT_Span_ + { + short x; + unsigned short len; + unsigned char coverage; + + } FT_Span; + + + /************************************************************************** + * + * @functype: + * FT_SpanFunc + * + * @description: + * A function used as a call-back by the anti-aliased renderer in order + * to let client applications draw themselves the pixel spans on each + * scan line. + * + * @input: + * y :: + * The scanline's upward y~coordinate. + * + * count :: + * The number of spans to draw on this scanline. + * + * spans :: + * A table of `count` spans to draw on the scanline. + * + * user :: + * User-supplied data that is passed to the callback. + * + * @note: + * This callback allows client applications to directly render the spans + * of the anti-aliased bitmap to any kind of surfaces. + * + * This can be used to write anti-aliased outlines directly to a given + * background bitmap using alpha compositing. It can also be used for + * oversampling and averaging. + */ + typedef void + (*FT_SpanFunc)( int y, + int count, + const FT_Span* spans, + void* user ); + +#define FT_Raster_Span_Func FT_SpanFunc + + + /************************************************************************** + * + * @functype: + * FT_Raster_BitTest_Func + * + * @description: + * Deprecated, unimplemented. + */ + typedef int + (*FT_Raster_BitTest_Func)( int y, + int x, + void* user ); + + + /************************************************************************** + * + * @functype: + * FT_Raster_BitSet_Func + * + * @description: + * Deprecated, unimplemented. + */ + typedef void + (*FT_Raster_BitSet_Func)( int y, + int x, + void* user ); + + + /************************************************************************** + * + * @enum: + * FT_RASTER_FLAG_XXX + * + * @description: + * A list of bit flag constants as used in the `flags` field of a + * @FT_Raster_Params structure. + * + * @values: + * FT_RASTER_FLAG_DEFAULT :: + * This value is 0. + * + * FT_RASTER_FLAG_AA :: + * This flag is set to indicate that an anti-aliased glyph image should + * be generated. Otherwise, it will be monochrome (1-bit). + * + * FT_RASTER_FLAG_DIRECT :: + * This flag is set to indicate direct rendering. In this mode, client + * applications must provide their own span callback. This lets them + * directly draw or compose over an existing bitmap. If this bit is + * _not_ set, the target pixmap's buffer _must_ be zeroed before + * rendering and the output will be clipped to its size. + * + * Direct rendering is only possible with anti-aliased glyphs. + * + * FT_RASTER_FLAG_CLIP :: + * This flag is only used in direct rendering mode. If set, the output + * will be clipped to a box specified in the `clip_box` field of the + * @FT_Raster_Params structure. Otherwise, the `clip_box` is + * effectively set to the bounding box and all spans are generated. + * + * FT_RASTER_FLAG_SDF :: + * This flag is set to indicate that a signed distance field glyph + * image should be generated. This is only used while rendering with + * the @FT_RENDER_MODE_SDF render mode. + */ +#define FT_RASTER_FLAG_DEFAULT 0x0 +#define FT_RASTER_FLAG_AA 0x1 +#define FT_RASTER_FLAG_DIRECT 0x2 +#define FT_RASTER_FLAG_CLIP 0x4 +#define FT_RASTER_FLAG_SDF 0x8 + + /* these constants are deprecated; use the corresponding */ + /* `FT_RASTER_FLAG_XXX` values instead */ +#define ft_raster_flag_default FT_RASTER_FLAG_DEFAULT +#define ft_raster_flag_aa FT_RASTER_FLAG_AA +#define ft_raster_flag_direct FT_RASTER_FLAG_DIRECT +#define ft_raster_flag_clip FT_RASTER_FLAG_CLIP + + + /************************************************************************** + * + * @struct: + * FT_Raster_Params + * + * @description: + * A structure to hold the parameters used by a raster's render function, + * passed as an argument to @FT_Outline_Render. + * + * @fields: + * target :: + * The target bitmap. + * + * source :: + * A pointer to the source glyph image (e.g., an @FT_Outline). + * + * flags :: + * The rendering flags. + * + * gray_spans :: + * The gray span drawing callback. + * + * black_spans :: + * Unused. + * + * bit_test :: + * Unused. + * + * bit_set :: + * Unused. + * + * user :: + * User-supplied data that is passed to each drawing callback. + * + * clip_box :: + * An optional span clipping box expressed in _integer_ pixels + * (not in 26.6 fixed-point units). + * + * @note: + * The @FT_RASTER_FLAG_AA bit flag must be set in the `flags` to + * generate an anti-aliased glyph bitmap, otherwise a monochrome bitmap + * is generated. The `target` should have appropriate pixel mode and its + * dimensions define the clipping region. + * + * If both @FT_RASTER_FLAG_AA and @FT_RASTER_FLAG_DIRECT bit flags + * are set in `flags`, the raster calls an @FT_SpanFunc callback + * `gray_spans` with `user` data as an argument ignoring `target`. This + * allows direct composition over a pre-existing user surface to perform + * the span drawing and composition. To optionally clip the spans, set + * the @FT_RASTER_FLAG_CLIP flag and `clip_box`. The monochrome raster + * does not support the direct mode. + * + * The gray-level rasterizer always uses 256 gray levels. If you want + * fewer gray levels, you have to use @FT_RASTER_FLAG_DIRECT and reduce + * the levels in the callback function. + */ + typedef struct FT_Raster_Params_ + { + const FT_Bitmap* target; + const void* source; + int flags; + FT_SpanFunc gray_spans; + FT_SpanFunc black_spans; /* unused */ + FT_Raster_BitTest_Func bit_test; /* unused */ + FT_Raster_BitSet_Func bit_set; /* unused */ + void* user; + FT_BBox clip_box; + + } FT_Raster_Params; + + + /************************************************************************** + * + * @type: + * FT_Raster + * + * @description: + * An opaque handle (pointer) to a raster object. Each object can be + * used independently to convert an outline into a bitmap or pixmap. + * + * @note: + * In FreeType 2, all rasters are now encapsulated within specific + * @FT_Renderer modules and only used in their context. + * + */ + typedef struct FT_RasterRec_* FT_Raster; + + + /************************************************************************** + * + * @functype: + * FT_Raster_NewFunc + * + * @description: + * A function used to create a new raster object. + * + * @input: + * memory :: + * A handle to the memory allocator. + * + * @output: + * raster :: + * A handle to the new raster object. + * + * @return: + * Error code. 0~means success. + * + * @note: + * The `memory` parameter is a typeless pointer in order to avoid + * un-wanted dependencies on the rest of the FreeType code. In practice, + * it is an @FT_Memory object, i.e., a handle to the standard FreeType + * memory allocator. However, this field can be completely ignored by a + * given raster implementation. + */ + typedef int + (*FT_Raster_NewFunc)( void* memory, + FT_Raster* raster ); + +#define FT_Raster_New_Func FT_Raster_NewFunc + + + /************************************************************************** + * + * @functype: + * FT_Raster_DoneFunc + * + * @description: + * A function used to destroy a given raster object. + * + * @input: + * raster :: + * A handle to the raster object. + */ + typedef void + (*FT_Raster_DoneFunc)( FT_Raster raster ); + +#define FT_Raster_Done_Func FT_Raster_DoneFunc + + + /************************************************************************** + * + * @functype: + * FT_Raster_ResetFunc + * + * @description: + * FreeType used to provide an area of memory called the 'render pool' + * available to all registered rasterizers. This was not thread safe, + * however, and now FreeType never allocates this pool. + * + * This function is called after a new raster object is created. + * + * @input: + * raster :: + * A handle to the new raster object. + * + * pool_base :: + * Previously, the address in memory of the render pool. Set this to + * `NULL`. + * + * pool_size :: + * Previously, the size in bytes of the render pool. Set this to 0. + * + * @note: + * Rasterizers should rely on dynamic or stack allocation if they want to + * (a handle to the memory allocator is passed to the rasterizer + * constructor). + */ + typedef void + (*FT_Raster_ResetFunc)( FT_Raster raster, + unsigned char* pool_base, + unsigned long pool_size ); + +#define FT_Raster_Reset_Func FT_Raster_ResetFunc + + + /************************************************************************** + * + * @functype: + * FT_Raster_SetModeFunc + * + * @description: + * This function is a generic facility to change modes or attributes in a + * given raster. This can be used for debugging purposes, or simply to + * allow implementation-specific 'features' in a given raster module. + * + * @input: + * raster :: + * A handle to the new raster object. + * + * mode :: + * A 4-byte tag used to name the mode or property. + * + * args :: + * A pointer to the new mode/property to use. + */ + typedef int + (*FT_Raster_SetModeFunc)( FT_Raster raster, + unsigned long mode, + void* args ); + +#define FT_Raster_Set_Mode_Func FT_Raster_SetModeFunc + + + /************************************************************************** + * + * @functype: + * FT_Raster_RenderFunc + * + * @description: + * Invoke a given raster to scan-convert a given glyph image into a + * target bitmap. + * + * @input: + * raster :: + * A handle to the raster object. + * + * params :: + * A pointer to an @FT_Raster_Params structure used to store the + * rendering parameters. + * + * @return: + * Error code. 0~means success. + * + * @note: + * The exact format of the source image depends on the raster's glyph + * format defined in its @FT_Raster_Funcs structure. It can be an + * @FT_Outline or anything else in order to support a large array of + * glyph formats. + * + * Note also that the render function can fail and return a + * `FT_Err_Unimplemented_Feature` error code if the raster used does not + * support direct composition. + */ + typedef int + (*FT_Raster_RenderFunc)( FT_Raster raster, + const FT_Raster_Params* params ); + +#define FT_Raster_Render_Func FT_Raster_RenderFunc + + + /************************************************************************** + * + * @struct: + * FT_Raster_Funcs + * + * @description: + * A structure used to describe a given raster class to the library. + * + * @fields: + * glyph_format :: + * The supported glyph format for this raster. + * + * raster_new :: + * The raster constructor. + * + * raster_reset :: + * Used to reset the render pool within the raster. + * + * raster_render :: + * A function to render a glyph into a given bitmap. + * + * raster_done :: + * The raster destructor. + */ + typedef struct FT_Raster_Funcs_ + { + FT_Glyph_Format glyph_format; + + FT_Raster_NewFunc raster_new; + FT_Raster_ResetFunc raster_reset; + FT_Raster_SetModeFunc raster_set_mode; + FT_Raster_RenderFunc raster_render; + FT_Raster_DoneFunc raster_done; + + } FT_Raster_Funcs; + + /* */ + + +FT_END_HEADER + +#endif /* FTIMAGE_H_ */ + + +/* END */ + + +/* Local Variables: */ +/* coding: utf-8 */ +/* End: */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftincrem.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftincrem.h new file mode 100644 index 00000000..816581b7 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftincrem.h @@ -0,0 +1,348 @@ +/**************************************************************************** + * + * ftincrem.h + * + * FreeType incremental loading (specification). + * + * Copyright (C) 2002-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTINCREM_H_ +#define FTINCREM_H_ + +#include +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + /************************************************************************** + * + * @section: + * incremental + * + * @title: + * Incremental Loading + * + * @abstract: + * Custom Glyph Loading. + * + * @description: + * This section contains various functions used to perform so-called + * 'incremental' glyph loading. This is a mode where all glyphs loaded + * from a given @FT_Face are provided by the client application. + * + * Apart from that, all other tables are loaded normally from the font + * file. This mode is useful when FreeType is used within another + * engine, e.g., a PostScript Imaging Processor. + * + * To enable this mode, you must use @FT_Open_Face, passing an + * @FT_Parameter with the @FT_PARAM_TAG_INCREMENTAL tag and an + * @FT_Incremental_Interface value. See the comments for + * @FT_Incremental_InterfaceRec for an example. + * + */ + + + /************************************************************************** + * + * @type: + * FT_Incremental + * + * @description: + * An opaque type describing a user-provided object used to implement + * 'incremental' glyph loading within FreeType. This is used to support + * embedded fonts in certain environments (e.g., PostScript + * interpreters), where the glyph data isn't in the font file, or must be + * overridden by different values. + * + * @note: + * It is up to client applications to create and implement + * @FT_Incremental objects, as long as they provide implementations for + * the methods @FT_Incremental_GetGlyphDataFunc, + * @FT_Incremental_FreeGlyphDataFunc and + * @FT_Incremental_GetGlyphMetricsFunc. + * + * See the description of @FT_Incremental_InterfaceRec to understand how + * to use incremental objects with FreeType. + * + */ + typedef struct FT_IncrementalRec_* FT_Incremental; + + + /************************************************************************** + * + * @struct: + * FT_Incremental_MetricsRec + * + * @description: + * A small structure used to contain the basic glyph metrics returned by + * the @FT_Incremental_GetGlyphMetricsFunc method. + * + * @fields: + * bearing_x :: + * Left bearing, in font units. + * + * bearing_y :: + * Top bearing, in font units. + * + * advance :: + * Horizontal component of glyph advance, in font units. + * + * advance_v :: + * Vertical component of glyph advance, in font units. + * + * @note: + * These correspond to horizontal or vertical metrics depending on the + * value of the `vertical` argument to the function + * @FT_Incremental_GetGlyphMetricsFunc. + * + */ + typedef struct FT_Incremental_MetricsRec_ + { + FT_Long bearing_x; + FT_Long bearing_y; + FT_Long advance; + FT_Long advance_v; /* since 2.3.12 */ + + } FT_Incremental_MetricsRec; + + + /************************************************************************** + * + * @struct: + * FT_Incremental_Metrics + * + * @description: + * A handle to an @FT_Incremental_MetricsRec structure. + * + */ + typedef struct FT_Incremental_MetricsRec_* FT_Incremental_Metrics; + + + /************************************************************************** + * + * @type: + * FT_Incremental_GetGlyphDataFunc + * + * @description: + * A function called by FreeType to access a given glyph's data bytes + * during @FT_Load_Glyph or @FT_Load_Char if incremental loading is + * enabled. + * + * Note that the format of the glyph's data bytes depends on the font + * file format. For TrueType, it must correspond to the raw bytes within + * the 'glyf' table. For PostScript formats, it must correspond to the + * **unencrypted** charstring bytes, without any `lenIV` header. It is + * undefined for any other format. + * + * @input: + * incremental :: + * Handle to an opaque @FT_Incremental handle provided by the client + * application. + * + * glyph_index :: + * Index of relevant glyph. + * + * @output: + * adata :: + * A structure describing the returned glyph data bytes (which will be + * accessed as a read-only byte block). + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * If this function returns successfully the method + * @FT_Incremental_FreeGlyphDataFunc will be called later to release the + * data bytes. + * + * Nested calls to @FT_Incremental_GetGlyphDataFunc can happen for + * compound glyphs. + * + */ + typedef FT_Error + (*FT_Incremental_GetGlyphDataFunc)( FT_Incremental incremental, + FT_UInt glyph_index, + FT_Data* adata ); + + + /************************************************************************** + * + * @type: + * FT_Incremental_FreeGlyphDataFunc + * + * @description: + * A function used to release the glyph data bytes returned by a + * successful call to @FT_Incremental_GetGlyphDataFunc. + * + * @input: + * incremental :: + * A handle to an opaque @FT_Incremental handle provided by the client + * application. + * + * data :: + * A structure describing the glyph data bytes (which will be accessed + * as a read-only byte block). + * + */ + typedef void + (*FT_Incremental_FreeGlyphDataFunc)( FT_Incremental incremental, + FT_Data* data ); + + + /************************************************************************** + * + * @type: + * FT_Incremental_GetGlyphMetricsFunc + * + * @description: + * A function used to retrieve the basic metrics of a given glyph index + * before accessing its data. This allows for handling font types such + * as PCL~XL Format~1, Class~2 downloaded TrueType fonts, where the glyph + * metrics (`hmtx` and `vmtx` tables) are permitted to be omitted from + * the font, and the relevant metrics included in the header of the glyph + * outline data. Importantly, this is not intended to allow custom glyph + * metrics (for example, Postscript Metrics dictionaries), because that + * conflicts with the requirements of outline hinting. Such custom + * metrics must be handled separately, by the calling application. + * + * @input: + * incremental :: + * A handle to an opaque @FT_Incremental handle provided by the client + * application. + * + * glyph_index :: + * Index of relevant glyph. + * + * vertical :: + * If true, return vertical metrics. + * + * ametrics :: + * This parameter is used for both input and output. The original + * glyph metrics, if any, in font units. If metrics are not available + * all the values must be set to zero. + * + * @output: + * ametrics :: + * The glyph metrics in font units. + * + */ + typedef FT_Error + (*FT_Incremental_GetGlyphMetricsFunc) + ( FT_Incremental incremental, + FT_UInt glyph_index, + FT_Bool vertical, + FT_Incremental_MetricsRec *ametrics ); + + + /************************************************************************** + * + * @struct: + * FT_Incremental_FuncsRec + * + * @description: + * A table of functions for accessing fonts that load data incrementally. + * Used in @FT_Incremental_InterfaceRec. + * + * @fields: + * get_glyph_data :: + * The function to get glyph data. Must not be null. + * + * free_glyph_data :: + * The function to release glyph data. Must not be null. + * + * get_glyph_metrics :: + * The function to get glyph metrics. May be null if the font does not + * require it. + * + */ + typedef struct FT_Incremental_FuncsRec_ + { + FT_Incremental_GetGlyphDataFunc get_glyph_data; + FT_Incremental_FreeGlyphDataFunc free_glyph_data; + FT_Incremental_GetGlyphMetricsFunc get_glyph_metrics; + + } FT_Incremental_FuncsRec; + + + /************************************************************************** + * + * @struct: + * FT_Incremental_InterfaceRec + * + * @description: + * A structure to be used with @FT_Open_Face to indicate that the user + * wants to support incremental glyph loading. You should use it with + * @FT_PARAM_TAG_INCREMENTAL as in the following example: + * + * ``` + * FT_Incremental_InterfaceRec inc_int; + * FT_Parameter parameter; + * FT_Open_Args open_args; + * + * + * // set up incremental descriptor + * inc_int.funcs = my_funcs; + * inc_int.object = my_object; + * + * // set up optional parameter + * parameter.tag = FT_PARAM_TAG_INCREMENTAL; + * parameter.data = &inc_int; + * + * // set up FT_Open_Args structure + * open_args.flags = FT_OPEN_PATHNAME | FT_OPEN_PARAMS; + * open_args.pathname = my_font_pathname; + * open_args.num_params = 1; + * open_args.params = ¶meter; // we use one optional argument + * + * // open the font + * error = FT_Open_Face( library, &open_args, index, &face ); + * ... + * ``` + * + */ + typedef struct FT_Incremental_InterfaceRec_ + { + const FT_Incremental_FuncsRec* funcs; + FT_Incremental object; + + } FT_Incremental_InterfaceRec; + + + /************************************************************************** + * + * @type: + * FT_Incremental_Interface + * + * @description: + * A pointer to an @FT_Incremental_InterfaceRec structure. + * + */ + typedef FT_Incremental_InterfaceRec* FT_Incremental_Interface; + + + /* */ + + +FT_END_HEADER + +#endif /* FTINCREM_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftlcdfil.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftlcdfil.h new file mode 100644 index 00000000..25274dc4 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftlcdfil.h @@ -0,0 +1,323 @@ +/**************************************************************************** + * + * ftlcdfil.h + * + * FreeType API for color filtering of subpixel bitmap glyphs + * (specification). + * + * Copyright (C) 2006-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTLCDFIL_H_ +#define FTLCDFIL_H_ + +#include +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + /************************************************************************** + * + * @section: + * lcd_rendering + * + * @title: + * Subpixel Rendering + * + * @abstract: + * API to control subpixel rendering. + * + * @description: + * FreeType provides two alternative subpixel rendering technologies. + * Should you define `FT_CONFIG_OPTION_SUBPIXEL_RENDERING` in your + * `ftoption.h` file, this enables ClearType-style rendering. + * Otherwise, Harmony LCD rendering is enabled. These technologies are + * controlled differently and API described below, although always + * available, performs its function when appropriate method is enabled + * and does nothing otherwise. + * + * ClearType-style LCD rendering exploits the color-striped structure of + * LCD pixels, increasing the available resolution in the direction of + * the stripe (usually horizontal RGB) by a factor of~3. Using the + * subpixel coverages unfiltered can create severe color fringes + * especially when rendering thin features. Indeed, to produce + * black-on-white text, the nearby color subpixels must be dimmed + * evenly. Therefore, an equalizing 5-tap FIR filter should be applied + * to subpixel coverages regardless of pixel boundaries and should have + * these properties: + * + * 1. It should be symmetrical, like {~a, b, c, b, a~}, to avoid + * any shifts in appearance. + * + * 2. It should be color-balanced, meaning a~+ b~=~c, to reduce color + * fringes by distributing the computed coverage for one subpixel to + * all subpixels equally. + * + * 3. It should be normalized, meaning 2a~+ 2b~+ c~=~1.0 to maintain + * overall brightness. + * + * Boxy 3-tap filter {0, 1/3, 1/3, 1/3, 0} is sharper but is less + * forgiving of non-ideal gamma curves of a screen (and viewing angles), + * beveled filters are fuzzier but more tolerant. + * + * Use the @FT_Library_SetLcdFilter or @FT_Library_SetLcdFilterWeights + * API to specify a low-pass filter, which is then applied to + * subpixel-rendered bitmaps generated through @FT_Render_Glyph. + * + * Harmony LCD rendering is suitable to panels with any regular subpixel + * structure, not just monitors with 3 color striped subpixels, as long + * as the color subpixels have fixed positions relative to the pixel + * center. In this case, each color channel can be rendered separately + * after shifting the outline opposite to the subpixel shift so that the + * coverage maps are aligned. This method is immune to color fringes + * because the shifts do not change integral coverage. + * + * The subpixel geometry must be specified by xy-coordinates for each + * subpixel. By convention they may come in the RGB order: {{-1/3, 0}, + * {0, 0}, {1/3, 0}} for standard RGB striped panel or {{-1/6, 1/4}, + * {-1/6, -1/4}, {1/3, 0}} for a certain PenTile panel. + * + * Use the @FT_Library_SetLcdGeometry API to specify subpixel positions. + * If one follows the RGB order convention, the same order applies to the + * resulting @FT_PIXEL_MODE_LCD and @FT_PIXEL_MODE_LCD_V bitmaps. Note, + * however, that the coordinate frame for the latter must be rotated + * clockwise. Harmony with default LCD geometry is equivalent to + * ClearType with light filter. + * + * As a result of ClearType filtering or Harmony shifts, the resulting + * dimensions of LCD bitmaps can be slightly wider or taller than the + * dimensions the original outline with regard to the pixel grid. + * For example, for @FT_RENDER_MODE_LCD, the filter adds 2~subpixels to + * the left, and 2~subpixels to the right. The bitmap offset values are + * adjusted accordingly, so clients shouldn't need to modify their layout + * and glyph positioning code when enabling the filter. + * + * The ClearType and Harmony rendering is applicable to glyph bitmaps + * rendered through @FT_Render_Glyph, @FT_Load_Glyph, @FT_Load_Char, and + * @FT_Glyph_To_Bitmap, when @FT_RENDER_MODE_LCD or @FT_RENDER_MODE_LCD_V + * is specified. This API does not control @FT_Outline_Render and + * @FT_Outline_Get_Bitmap. + * + * The described algorithms can completely remove color artefacts when + * combined with gamma-corrected alpha blending in linear space. Each of + * the 3~alpha values (subpixels) must by independently used to blend one + * color channel. That is, red alpha blends the red channel of the text + * color with the red channel of the background pixel. + */ + + + /************************************************************************** + * + * @enum: + * FT_LcdFilter + * + * @description: + * A list of values to identify various types of LCD filters. + * + * @values: + * FT_LCD_FILTER_NONE :: + * Do not perform filtering. When used with subpixel rendering, this + * results in sometimes severe color fringes. + * + * FT_LCD_FILTER_DEFAULT :: + * This is a beveled, normalized, and color-balanced five-tap filter + * with weights of [0x08 0x4D 0x56 0x4D 0x08] in 1/256 units. + * + * FT_LCD_FILTER_LIGHT :: + * this is a boxy, normalized, and color-balanced three-tap filter with + * weights of [0x00 0x55 0x56 0x55 0x00] in 1/256 units. + * + * FT_LCD_FILTER_LEGACY :: + * FT_LCD_FILTER_LEGACY1 :: + * This filter corresponds to the original libXft color filter. It + * provides high contrast output but can exhibit really bad color + * fringes if glyphs are not extremely well hinted to the pixel grid. + * This filter is only provided for comparison purposes, and might be + * disabled or stay unsupported in the future. The second value is + * provided for compatibility with FontConfig, which historically used + * different enumeration, sometimes incorrectly forwarded to FreeType. + * + * @since: + * 2.3.0 (`FT_LCD_FILTER_LEGACY1` since 2.6.2) + */ + typedef enum FT_LcdFilter_ + { + FT_LCD_FILTER_NONE = 0, + FT_LCD_FILTER_DEFAULT = 1, + FT_LCD_FILTER_LIGHT = 2, + FT_LCD_FILTER_LEGACY1 = 3, + FT_LCD_FILTER_LEGACY = 16, + + FT_LCD_FILTER_MAX /* do not remove */ + + } FT_LcdFilter; + + + /************************************************************************** + * + * @function: + * FT_Library_SetLcdFilter + * + * @description: + * This function is used to change filter applied to LCD decimated + * bitmaps, like the ones used when calling @FT_Render_Glyph with + * @FT_RENDER_MODE_LCD or @FT_RENDER_MODE_LCD_V. + * + * @input: + * library :: + * A handle to the target library instance. + * + * filter :: + * The filter type. + * + * You can use @FT_LCD_FILTER_NONE here to disable this feature, or + * @FT_LCD_FILTER_DEFAULT to use a default filter that should work well + * on most LCD screens. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * Since 2.10.3 the LCD filtering is enabled with @FT_LCD_FILTER_DEFAULT. + * It is no longer necessary to call this function explicitly except + * to choose a different filter or disable filtering altogether with + * @FT_LCD_FILTER_NONE. + * + * This function does nothing but returns `FT_Err_Unimplemented_Feature` + * if the configuration macro `FT_CONFIG_OPTION_SUBPIXEL_RENDERING` is + * not defined in your build of the library. + * + * @since: + * 2.3.0 + */ + FT_EXPORT( FT_Error ) + FT_Library_SetLcdFilter( FT_Library library, + FT_LcdFilter filter ); + + + /************************************************************************** + * + * @function: + * FT_Library_SetLcdFilterWeights + * + * @description: + * This function can be used to enable LCD filter with custom weights, + * instead of using presets in @FT_Library_SetLcdFilter. + * + * @input: + * library :: + * A handle to the target library instance. + * + * weights :: + * A pointer to an array; the function copies the first five bytes and + * uses them to specify the filter weights in 1/256 units. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function does nothing but returns `FT_Err_Unimplemented_Feature` + * if the configuration macro `FT_CONFIG_OPTION_SUBPIXEL_RENDERING` is + * not defined in your build of the library. + * + * LCD filter weights can also be set per face using @FT_Face_Properties + * with @FT_PARAM_TAG_LCD_FILTER_WEIGHTS. + * + * @since: + * 2.4.0 + */ + FT_EXPORT( FT_Error ) + FT_Library_SetLcdFilterWeights( FT_Library library, + unsigned char *weights ); + + + /************************************************************************** + * + * @type: + * FT_LcdFiveTapFilter + * + * @description: + * A typedef for passing the five LCD filter weights to + * @FT_Face_Properties within an @FT_Parameter structure. + * + * @since: + * 2.8 + * + */ +#define FT_LCD_FILTER_FIVE_TAPS 5 + + typedef FT_Byte FT_LcdFiveTapFilter[FT_LCD_FILTER_FIVE_TAPS]; + + + /************************************************************************** + * + * @function: + * FT_Library_SetLcdGeometry + * + * @description: + * This function can be used to modify default positions of color + * subpixels, which controls Harmony LCD rendering. + * + * @input: + * library :: + * A handle to the target library instance. + * + * sub :: + * A pointer to an array of 3 vectors in 26.6 fractional pixel format; + * the function modifies the default values, see the note below. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * Subpixel geometry examples: + * + * - {{-21, 0}, {0, 0}, {21, 0}} is the default, corresponding to 3 color + * stripes shifted by a third of a pixel. This could be an RGB panel. + * + * - {{21, 0}, {0, 0}, {-21, 0}} looks the same as the default but can + * specify a BGR panel instead, while keeping the bitmap in the same + * RGB888 format. + * + * - {{0, 21}, {0, 0}, {0, -21}} is the vertical RGB, but the bitmap + * stays RGB888 as a result. + * + * - {{-11, 16}, {-11, -16}, {22, 0}} is a certain PenTile arrangement. + * + * This function does nothing and returns `FT_Err_Unimplemented_Feature` + * in the context of ClearType-style subpixel rendering when + * `FT_CONFIG_OPTION_SUBPIXEL_RENDERING` is defined in your build of the + * library. + * + * @since: + * 2.10.0 + */ + FT_EXPORT( FT_Error ) + FT_Library_SetLcdGeometry( FT_Library library, + FT_Vector sub[3] ); + + /* */ + + +FT_END_HEADER + +#endif /* FTLCDFIL_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftlist.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftlist.h new file mode 100644 index 00000000..972fbfa2 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftlist.h @@ -0,0 +1,296 @@ +/**************************************************************************** + * + * ftlist.h + * + * Generic list support for FreeType (specification). + * + * Copyright (C) 1996-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + + /************************************************************************** + * + * This file implements functions relative to list processing. Its data + * structures are defined in `freetype.h`. + * + */ + + +#ifndef FTLIST_H_ +#define FTLIST_H_ + + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * list_processing + * + * @title: + * List Processing + * + * @abstract: + * Simple management of lists. + * + * @description: + * This section contains various definitions related to list processing + * using doubly-linked nodes. + * + * @order: + * FT_List + * FT_ListNode + * FT_ListRec + * FT_ListNodeRec + * + * FT_List_Add + * FT_List_Insert + * FT_List_Find + * FT_List_Remove + * FT_List_Up + * FT_List_Iterate + * FT_List_Iterator + * FT_List_Finalize + * FT_List_Destructor + * + */ + + + /************************************************************************** + * + * @function: + * FT_List_Find + * + * @description: + * Find the list node for a given listed object. + * + * @input: + * list :: + * A pointer to the parent list. + * data :: + * The address of the listed object. + * + * @return: + * List node. `NULL` if it wasn't found. + */ + FT_EXPORT( FT_ListNode ) + FT_List_Find( FT_List list, + void* data ); + + + /************************************************************************** + * + * @function: + * FT_List_Add + * + * @description: + * Append an element to the end of a list. + * + * @inout: + * list :: + * A pointer to the parent list. + * node :: + * The node to append. + */ + FT_EXPORT( void ) + FT_List_Add( FT_List list, + FT_ListNode node ); + + + /************************************************************************** + * + * @function: + * FT_List_Insert + * + * @description: + * Insert an element at the head of a list. + * + * @inout: + * list :: + * A pointer to parent list. + * node :: + * The node to insert. + */ + FT_EXPORT( void ) + FT_List_Insert( FT_List list, + FT_ListNode node ); + + + /************************************************************************** + * + * @function: + * FT_List_Remove + * + * @description: + * Remove a node from a list. This function doesn't check whether the + * node is in the list! + * + * @input: + * node :: + * The node to remove. + * + * @inout: + * list :: + * A pointer to the parent list. + */ + FT_EXPORT( void ) + FT_List_Remove( FT_List list, + FT_ListNode node ); + + + /************************************************************************** + * + * @function: + * FT_List_Up + * + * @description: + * Move a node to the head/top of a list. Used to maintain LRU lists. + * + * @inout: + * list :: + * A pointer to the parent list. + * node :: + * The node to move. + */ + FT_EXPORT( void ) + FT_List_Up( FT_List list, + FT_ListNode node ); + + + /************************************************************************** + * + * @functype: + * FT_List_Iterator + * + * @description: + * An FT_List iterator function that is called during a list parse by + * @FT_List_Iterate. + * + * @input: + * node :: + * The current iteration list node. + * + * user :: + * A typeless pointer passed to @FT_List_Iterate. Can be used to point + * to the iteration's state. + */ + typedef FT_Error + (*FT_List_Iterator)( FT_ListNode node, + void* user ); + + + /************************************************************************** + * + * @function: + * FT_List_Iterate + * + * @description: + * Parse a list and calls a given iterator function on each element. + * Note that parsing is stopped as soon as one of the iterator calls + * returns a non-zero value. + * + * @input: + * list :: + * A handle to the list. + * iterator :: + * An iterator function, called on each node of the list. + * user :: + * A user-supplied field that is passed as the second argument to the + * iterator. + * + * @return: + * The result (a FreeType error code) of the last iterator call. + */ + FT_EXPORT( FT_Error ) + FT_List_Iterate( FT_List list, + FT_List_Iterator iterator, + void* user ); + + + /************************************************************************** + * + * @functype: + * FT_List_Destructor + * + * @description: + * An @FT_List iterator function that is called during a list + * finalization by @FT_List_Finalize to destroy all elements in a given + * list. + * + * @input: + * system :: + * The current system object. + * + * data :: + * The current object to destroy. + * + * user :: + * A typeless pointer passed to @FT_List_Iterate. It can be used to + * point to the iteration's state. + */ + typedef void + (*FT_List_Destructor)( FT_Memory memory, + void* data, + void* user ); + + + /************************************************************************** + * + * @function: + * FT_List_Finalize + * + * @description: + * Destroy all elements in the list as well as the list itself. + * + * @input: + * list :: + * A handle to the list. + * + * destroy :: + * A list destructor that will be applied to each element of the list. + * Set this to `NULL` if not needed. + * + * memory :: + * The current memory object that handles deallocation. + * + * user :: + * A user-supplied field that is passed as the last argument to the + * destructor. + * + * @note: + * This function expects that all nodes added by @FT_List_Add or + * @FT_List_Insert have been dynamically allocated. + */ + FT_EXPORT( void ) + FT_List_Finalize( FT_List list, + FT_List_Destructor destroy, + FT_Memory memory, + void* user ); + + /* */ + + +FT_END_HEADER + +#endif /* FTLIST_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftlogging.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftlogging.h new file mode 100644 index 00000000..1813cfc2 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftlogging.h @@ -0,0 +1,184 @@ +/**************************************************************************** + * + * ftlogging.h + * + * Additional debugging APIs. + * + * Copyright (C) 2020-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTLOGGING_H_ +#define FTLOGGING_H_ + + +#include +#include FT_CONFIG_CONFIG_H + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * debugging_apis + * + * @title: + * External Debugging APIs + * + * @abstract: + * Public APIs to control the `FT_DEBUG_LOGGING` macro. + * + * @description: + * This section contains the declarations of public functions that + * enables fine control of what the `FT_DEBUG_LOGGING` macro outputs. + * + */ + + + /************************************************************************** + * + * @function: + * FT_Trace_Set_Level + * + * @description: + * Change the levels of tracing components of FreeType at run time. + * + * @input: + * tracing_level :: + * New tracing value. + * + * @example: + * The following call makes FreeType trace everything but the 'memory' + * component. + * + * ``` + * FT_Trace_Set_Level( "any:7 memory:0" ); + * ``` + * + * @note: + * This function does nothing if compilation option `FT_DEBUG_LOGGING` + * isn't set. + * + * @since: + * 2.11 + * + */ + FT_EXPORT( void ) + FT_Trace_Set_Level( const char* tracing_level ); + + + /************************************************************************** + * + * @function: + * FT_Trace_Set_Default_Level + * + * @description: + * Reset tracing value of FreeType's components to the default value + * (i.e., to the value of the `FT2_DEBUG` environment value or to NULL + * if `FT2_DEBUG` is not set). + * + * @note: + * This function does nothing if compilation option `FT_DEBUG_LOGGING` + * isn't set. + * + * @since: + * 2.11 + * + */ + FT_EXPORT( void ) + FT_Trace_Set_Default_Level( void ); + + + /************************************************************************** + * + * @functype: + * FT_Custom_Log_Handler + * + * @description: + * A function typedef that is used to handle the logging of tracing and + * debug messages on a file system. + * + * @input: + * ft_component :: + * The name of `FT_COMPONENT` from which the current debug or error + * message is produced. + * + * fmt :: + * Actual debug or tracing message. + * + * args:: + * Arguments of debug or tracing messages. + * + * @since: + * 2.11 + * + */ + typedef void + (*FT_Custom_Log_Handler)( const char* ft_component, + const char* fmt, + va_list args ); + + + /************************************************************************** + * + * @function: + * FT_Set_Log_Handler + * + * @description: + * A function to set a custom log handler. + * + * @input: + * handler :: + * New logging function. + * + * @note: + * This function does nothing if compilation option `FT_DEBUG_LOGGING` + * isn't set. + * + * @since: + * 2.11 + * + */ + FT_EXPORT( void ) + FT_Set_Log_Handler( FT_Custom_Log_Handler handler ); + + + /************************************************************************** + * + * @function: + * FT_Set_Default_Log_Handler + * + * @description: + * A function to undo the effect of @FT_Set_Log_Handler, resetting the + * log handler to FreeType's built-in version. + * + * @note: + * This function does nothing if compilation option `FT_DEBUG_LOGGING` + * isn't set. + * + * @since: + * 2.11 + * + */ + FT_EXPORT( void ) + FT_Set_Default_Log_Handler( void ); + + /* */ + + +FT_END_HEADER + +#endif /* FTLOGGING_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftlzw.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftlzw.h new file mode 100644 index 00000000..bcf59ba7 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftlzw.h @@ -0,0 +1,100 @@ +/**************************************************************************** + * + * ftlzw.h + * + * LZW-compressed stream support. + * + * Copyright (C) 2004-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTLZW_H_ +#define FTLZW_H_ + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + /************************************************************************** + * + * @section: + * lzw + * + * @title: + * LZW Streams + * + * @abstract: + * Using LZW-compressed font files. + * + * @description: + * In certain builds of the library, LZW compression recognition is + * automatically handled when calling @FT_New_Face or @FT_Open_Face. + * This means that if no font driver is capable of handling the raw + * compressed file, the library will try to open a LZW stream from it and + * re-open the face with it. + * + * The stream implementation is very basic and resets the decompression + * process each time seeking backwards is needed within the stream, + * which significantly undermines the performance. + * + * This section contains the declaration of LZW-specific functions. + * + */ + + /************************************************************************** + * + * @function: + * FT_Stream_OpenLZW + * + * @description: + * Open a new stream to parse LZW-compressed font files. This is mainly + * used to support the compressed `*.pcf.Z` fonts that come with XFree86. + * + * @input: + * stream :: + * The target embedding stream. + * + * source :: + * The source stream. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The source stream must be opened _before_ calling this function. + * + * Calling the internal function `FT_Stream_Close` on the new stream will + * **not** call `FT_Stream_Close` on the source stream. None of the + * stream objects will be released to the heap. + * + * This function may return `FT_Err_Unimplemented_Feature` if your build + * of FreeType was not compiled with LZW support. + */ + FT_EXPORT( FT_Error ) + FT_Stream_OpenLZW( FT_Stream stream, + FT_Stream source ); + + /* */ + + +FT_END_HEADER + +#endif /* FTLZW_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftmac.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftmac.h new file mode 100644 index 00000000..e4efde33 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftmac.h @@ -0,0 +1,289 @@ +/**************************************************************************** + * + * ftmac.h + * + * Additional Mac-specific API. + * + * Copyright (C) 1996-2024 by + * Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +/**************************************************************************** + * + * NOTE: Include this file after `FT_FREETYPE_H` and after any + * Mac-specific headers (because this header uses Mac types such as + * 'Handle', 'FSSpec', 'FSRef', etc.) + * + */ + + +#ifndef FTMAC_H_ +#define FTMAC_H_ + + + + +FT_BEGIN_HEADER + + + /* gcc-3.1 and later can warn about functions tagged as deprecated */ +#ifndef FT_DEPRECATED_ATTRIBUTE +#if defined( __GNUC__ ) && \ + ( ( __GNUC__ >= 4 ) || \ + ( ( __GNUC__ == 3 ) && ( __GNUC_MINOR__ >= 1 ) ) ) +#define FT_DEPRECATED_ATTRIBUTE __attribute__(( deprecated )) +#else +#define FT_DEPRECATED_ATTRIBUTE +#endif +#endif + + + /************************************************************************** + * + * @section: + * mac_specific + * + * @title: + * Mac Specific Interface + * + * @abstract: + * Only available on the Macintosh. + * + * @description: + * The following definitions are only available if FreeType is compiled + * on a Macintosh. + * + */ + + + /************************************************************************** + * + * @function: + * FT_New_Face_From_FOND + * + * @description: + * Create a new face object from a FOND resource. + * + * @inout: + * library :: + * A handle to the library resource. + * + * @input: + * fond :: + * A FOND resource. + * + * face_index :: + * Only supported for the -1 'sanity check' special case. + * + * @output: + * aface :: + * A handle to a new face object. + * + * @return: + * FreeType error code. 0~means success. + * + * @example: + * This function can be used to create @FT_Face objects from fonts that + * are installed in the system as follows. + * + * ``` + * fond = GetResource( 'FOND', fontName ); + * error = FT_New_Face_From_FOND( library, fond, 0, &face ); + * ``` + */ + FT_EXPORT( FT_Error ) + FT_New_Face_From_FOND( FT_Library library, + Handle fond, + FT_Long face_index, + FT_Face *aface ) + FT_DEPRECATED_ATTRIBUTE; + + + /************************************************************************** + * + * @function: + * FT_GetFile_From_Mac_Name + * + * @description: + * Return an FSSpec for the disk file containing the named font. + * + * @input: + * fontName :: + * Mac OS name of the font (e.g., Times New Roman Bold). + * + * @output: + * pathSpec :: + * FSSpec to the file. For passing to @FT_New_Face_From_FSSpec. + * + * face_index :: + * Index of the face. For passing to @FT_New_Face_From_FSSpec. + * + * @return: + * FreeType error code. 0~means success. + */ + FT_EXPORT( FT_Error ) + FT_GetFile_From_Mac_Name( const char* fontName, + FSSpec* pathSpec, + FT_Long* face_index ) + FT_DEPRECATED_ATTRIBUTE; + + + /************************************************************************** + * + * @function: + * FT_GetFile_From_Mac_ATS_Name + * + * @description: + * Return an FSSpec for the disk file containing the named font. + * + * @input: + * fontName :: + * Mac OS name of the font in ATS framework. + * + * @output: + * pathSpec :: + * FSSpec to the file. For passing to @FT_New_Face_From_FSSpec. + * + * face_index :: + * Index of the face. For passing to @FT_New_Face_From_FSSpec. + * + * @return: + * FreeType error code. 0~means success. + */ + FT_EXPORT( FT_Error ) + FT_GetFile_From_Mac_ATS_Name( const char* fontName, + FSSpec* pathSpec, + FT_Long* face_index ) + FT_DEPRECATED_ATTRIBUTE; + + + /************************************************************************** + * + * @function: + * FT_GetFilePath_From_Mac_ATS_Name + * + * @description: + * Return a pathname of the disk file and face index for given font name + * that is handled by ATS framework. + * + * @input: + * fontName :: + * Mac OS name of the font in ATS framework. + * + * @output: + * path :: + * Buffer to store pathname of the file. For passing to @FT_New_Face. + * The client must allocate this buffer before calling this function. + * + * maxPathSize :: + * Lengths of the buffer `path` that client allocated. + * + * face_index :: + * Index of the face. For passing to @FT_New_Face. + * + * @return: + * FreeType error code. 0~means success. + */ + FT_EXPORT( FT_Error ) + FT_GetFilePath_From_Mac_ATS_Name( const char* fontName, + UInt8* path, + UInt32 maxPathSize, + FT_Long* face_index ) + FT_DEPRECATED_ATTRIBUTE; + + + /************************************************************************** + * + * @function: + * FT_New_Face_From_FSSpec + * + * @description: + * Create a new face object from a given resource and typeface index + * using an FSSpec to the font file. + * + * @inout: + * library :: + * A handle to the library resource. + * + * @input: + * spec :: + * FSSpec to the font file. + * + * face_index :: + * The index of the face within the resource. The first face has + * index~0. + * @output: + * aface :: + * A handle to a new face object. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * @FT_New_Face_From_FSSpec is identical to @FT_New_Face except it + * accepts an FSSpec instead of a path. + */ + FT_EXPORT( FT_Error ) + FT_New_Face_From_FSSpec( FT_Library library, + const FSSpec *spec, + FT_Long face_index, + FT_Face *aface ) + FT_DEPRECATED_ATTRIBUTE; + + + /************************************************************************** + * + * @function: + * FT_New_Face_From_FSRef + * + * @description: + * Create a new face object from a given resource and typeface index + * using an FSRef to the font file. + * + * @inout: + * library :: + * A handle to the library resource. + * + * @input: + * spec :: + * FSRef to the font file. + * + * face_index :: + * The index of the face within the resource. The first face has + * index~0. + * @output: + * aface :: + * A handle to a new face object. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * @FT_New_Face_From_FSRef is identical to @FT_New_Face except it accepts + * an FSRef instead of a path. + */ + FT_EXPORT( FT_Error ) + FT_New_Face_From_FSRef( FT_Library library, + const FSRef *ref, + FT_Long face_index, + FT_Face *aface ) + FT_DEPRECATED_ATTRIBUTE; + + /* */ + + +FT_END_HEADER + + +#endif /* FTMAC_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftmm.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftmm.h new file mode 100644 index 00000000..35ed039c --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftmm.h @@ -0,0 +1,834 @@ +/**************************************************************************** + * + * ftmm.h + * + * FreeType Multiple Master font interface (specification). + * + * Copyright (C) 1996-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTMM_H_ +#define FTMM_H_ + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * multiple_masters + * + * @title: + * Multiple Masters + * + * @abstract: + * How to manage Multiple Masters fonts. + * + * @description: + * The following types and functions are used to manage Multiple Master + * fonts, i.e., the selection of specific design instances by setting + * design axis coordinates. + * + * Besides Adobe MM fonts, the interface supports Apple's TrueType GX and + * OpenType variation fonts. Some of the routines only work with Adobe + * MM fonts, others will work with all three types. They are similar + * enough that a consistent interface makes sense. + * + * For Adobe MM fonts, macro @FT_IS_SFNT returns false. For GX and + * OpenType variation fonts, it returns true. + * + */ + + + /************************************************************************** + * + * @enum: + * T1_MAX_MM_XXX + * + * @description: + * Multiple Masters limits as defined in their specifications. + * + * @values: + * T1_MAX_MM_AXIS :: + * The maximum number of Multiple Masters axes. + * + * T1_MAX_MM_DESIGNS :: + * The maximum number of Multiple Masters designs. + * + * T1_MAX_MM_MAP_POINTS :: + * The maximum number of elements in a design map. + * + */ +#define T1_MAX_MM_AXIS 4 +#define T1_MAX_MM_DESIGNS 16 +#define T1_MAX_MM_MAP_POINTS 20 + + + /************************************************************************** + * + * @struct: + * FT_MM_Axis + * + * @description: + * A structure to model a given axis in design space for Multiple Masters + * fonts. + * + * This structure can't be used for TrueType GX or OpenType variation + * fonts. + * + * @fields: + * name :: + * The axis's name. + * + * minimum :: + * The axis's minimum design coordinate. + * + * maximum :: + * The axis's maximum design coordinate. + */ + typedef struct FT_MM_Axis_ + { + FT_String* name; + FT_Long minimum; + FT_Long maximum; + + } FT_MM_Axis; + + + /************************************************************************** + * + * @struct: + * FT_Multi_Master + * + * @description: + * A structure to model the axes and space of a Multiple Masters font. + * + * This structure can't be used for TrueType GX or OpenType variation + * fonts. + * + * @fields: + * num_axis :: + * Number of axes. Cannot exceed~4. + * + * num_designs :: + * Number of designs; should be normally 2^num_axis even though the + * Type~1 specification strangely allows for intermediate designs to be + * present. This number cannot exceed~16. + * + * axis :: + * A table of axis descriptors. + */ + typedef struct FT_Multi_Master_ + { + FT_UInt num_axis; + FT_UInt num_designs; + FT_MM_Axis axis[T1_MAX_MM_AXIS]; + + } FT_Multi_Master; + + + /************************************************************************** + * + * @struct: + * FT_Var_Axis + * + * @description: + * A structure to model a given axis in design space for Multiple + * Masters, TrueType GX, and OpenType variation fonts. + * + * @fields: + * name :: + * The axis's name. Not always meaningful for TrueType GX or OpenType + * variation fonts. + * + * minimum :: + * The axis's minimum design coordinate. + * + * def :: + * The axis's default design coordinate. FreeType computes meaningful + * default values for Adobe MM fonts. + * + * maximum :: + * The axis's maximum design coordinate. + * + * tag :: + * The axis's tag (the equivalent to 'name' for TrueType GX and + * OpenType variation fonts). FreeType provides default values for + * Adobe MM fonts if possible. + * + * strid :: + * The axis name entry in the font's 'name' table. This is another + * (and often better) version of the 'name' field for TrueType GX or + * OpenType variation fonts. Not meaningful for Adobe MM fonts. + * + * @note: + * The fields `minimum`, `def`, and `maximum` are 16.16 fractional values + * for TrueType GX and OpenType variation fonts. For Adobe MM fonts, the + * values are whole numbers (i.e., the fractional part is zero). + */ + typedef struct FT_Var_Axis_ + { + FT_String* name; + + FT_Fixed minimum; + FT_Fixed def; + FT_Fixed maximum; + + FT_ULong tag; + FT_UInt strid; + + } FT_Var_Axis; + + + /************************************************************************** + * + * @struct: + * FT_Var_Named_Style + * + * @description: + * A structure to model a named instance in a TrueType GX or OpenType + * variation font. + * + * This structure can't be used for Adobe MM fonts. + * + * @fields: + * coords :: + * The design coordinates for this instance. This is an array with one + * entry for each axis. + * + * strid :: + * The entry in 'name' table identifying this instance. + * + * psid :: + * The entry in 'name' table identifying a PostScript name for this + * instance. Value 0xFFFF indicates a missing entry. + */ + typedef struct FT_Var_Named_Style_ + { + FT_Fixed* coords; + FT_UInt strid; + FT_UInt psid; /* since 2.7.1 */ + + } FT_Var_Named_Style; + + + /************************************************************************** + * + * @struct: + * FT_MM_Var + * + * @description: + * A structure to model the axes and space of an Adobe MM, TrueType GX, + * or OpenType variation font. + * + * Some fields are specific to one format and not to the others. + * + * @fields: + * num_axis :: + * The number of axes. The maximum value is~4 for Adobe MM fonts; no + * limit in TrueType GX or OpenType variation fonts. + * + * num_designs :: + * The number of designs; should be normally 2^num_axis for Adobe MM + * fonts. Not meaningful for TrueType GX or OpenType variation fonts + * (where every glyph could have a different number of designs). + * + * num_namedstyles :: + * The number of named styles; a 'named style' is a tuple of design + * coordinates that has a string ID (in the 'name' table) associated + * with it. The font can tell the user that, for example, + * [Weight=1.5,Width=1.1] is 'Bold'. Another name for 'named style' is + * 'named instance'. + * + * For Adobe Multiple Masters fonts, this value is always zero because + * the format does not support named styles. + * + * axis :: + * An axis descriptor table. TrueType GX and OpenType variation fonts + * contain slightly more data than Adobe MM fonts. Memory management + * of this pointer is done internally by FreeType. + * + * namedstyle :: + * A named style (instance) table. Only meaningful for TrueType GX and + * OpenType variation fonts. Memory management of this pointer is done + * internally by FreeType. + */ + typedef struct FT_MM_Var_ + { + FT_UInt num_axis; + FT_UInt num_designs; + FT_UInt num_namedstyles; + FT_Var_Axis* axis; + FT_Var_Named_Style* namedstyle; + + } FT_MM_Var; + + + /************************************************************************** + * + * @function: + * FT_Get_Multi_Master + * + * @description: + * Retrieve a variation descriptor of a given Adobe MM font. + * + * This function can't be used with TrueType GX or OpenType variation + * fonts. + * + * @input: + * face :: + * A handle to the source face. + * + * @output: + * amaster :: + * The Multiple Masters descriptor. + * + * @return: + * FreeType error code. 0~means success. + */ + FT_EXPORT( FT_Error ) + FT_Get_Multi_Master( FT_Face face, + FT_Multi_Master *amaster ); + + + /************************************************************************** + * + * @function: + * FT_Get_MM_Var + * + * @description: + * Retrieve a variation descriptor for a given font. + * + * This function works with all supported variation formats. + * + * @input: + * face :: + * A handle to the source face. + * + * @output: + * amaster :: + * The variation descriptor. Allocates a data structure, which the + * user must deallocate with a call to @FT_Done_MM_Var after use. + * + * @return: + * FreeType error code. 0~means success. + */ + FT_EXPORT( FT_Error ) + FT_Get_MM_Var( FT_Face face, + FT_MM_Var* *amaster ); + + + /************************************************************************** + * + * @function: + * FT_Done_MM_Var + * + * @description: + * Free the memory allocated by @FT_Get_MM_Var. + * + * @input: + * library :: + * A handle of the face's parent library object that was used in the + * call to @FT_Get_MM_Var to create `amaster`. + * + * @return: + * FreeType error code. 0~means success. + */ + FT_EXPORT( FT_Error ) + FT_Done_MM_Var( FT_Library library, + FT_MM_Var *amaster ); + + + /************************************************************************** + * + * @function: + * FT_Set_MM_Design_Coordinates + * + * @description: + * For Adobe MM fonts, choose an interpolated font design through design + * coordinates. + * + * This function can't be used with TrueType GX or OpenType variation + * fonts. + * + * @inout: + * face :: + * A handle to the source face. + * + * @input: + * num_coords :: + * The number of available design coordinates. If it is larger than + * the number of axes, ignore the excess values. If it is smaller than + * the number of axes, use default values for the remaining axes. + * + * coords :: + * An array of design coordinates. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * [Since 2.8.1] To reset all axes to the default values, call the + * function with `num_coords` set to zero and `coords` set to `NULL`. + * + * [Since 2.9] If `num_coords` is larger than zero, this function sets + * the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field + * (i.e., @FT_IS_VARIATION will return true). If `num_coords` is zero, + * this bit flag gets unset. + */ + FT_EXPORT( FT_Error ) + FT_Set_MM_Design_Coordinates( FT_Face face, + FT_UInt num_coords, + FT_Long* coords ); + + + /************************************************************************** + * + * @function: + * FT_Set_Var_Design_Coordinates + * + * @description: + * Choose an interpolated font design through design coordinates. + * + * This function works with all supported variation formats. + * + * @inout: + * face :: + * A handle to the source face. + * + * @input: + * num_coords :: + * The number of available design coordinates. If it is larger than + * the number of axes, ignore the excess values. If it is smaller than + * the number of axes, use default values for the remaining axes. + * + * coords :: + * An array of design coordinates. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The design coordinates are 16.16 fractional values for TrueType GX and + * OpenType variation fonts. For Adobe MM fonts, the values are supposed + * to be whole numbers (i.e., the fractional part is zero). + * + * [Since 2.8.1] To reset all axes to the default values, call the + * function with `num_coords` set to zero and `coords` set to `NULL`. + * [Since 2.9] 'Default values' means the currently selected named + * instance (or the base font if no named instance is selected). + * + * [Since 2.9] If `num_coords` is larger than zero, this function sets + * the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field + * (i.e., @FT_IS_VARIATION will return true). If `num_coords` is zero, + * this bit flag gets unset. + */ + FT_EXPORT( FT_Error ) + FT_Set_Var_Design_Coordinates( FT_Face face, + FT_UInt num_coords, + FT_Fixed* coords ); + + + /************************************************************************** + * + * @function: + * FT_Get_Var_Design_Coordinates + * + * @description: + * Get the design coordinates of the currently selected interpolated + * font. + * + * This function works with all supported variation formats. + * + * @input: + * face :: + * A handle to the source face. + * + * num_coords :: + * The number of design coordinates to retrieve. If it is larger than + * the number of axes, set the excess values to~0. + * + * @output: + * coords :: + * The design coordinates array. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The design coordinates are 16.16 fractional values for TrueType GX and + * OpenType variation fonts. For Adobe MM fonts, the values are whole + * numbers (i.e., the fractional part is zero). + * + * @since: + * 2.7.1 + */ + FT_EXPORT( FT_Error ) + FT_Get_Var_Design_Coordinates( FT_Face face, + FT_UInt num_coords, + FT_Fixed* coords ); + + + /************************************************************************** + * + * @function: + * FT_Set_MM_Blend_Coordinates + * + * @description: + * Choose an interpolated font design through normalized blend + * coordinates. + * + * This function works with all supported variation formats. + * + * @inout: + * face :: + * A handle to the source face. + * + * @input: + * num_coords :: + * The number of available design coordinates. If it is larger than + * the number of axes, ignore the excess values. If it is smaller than + * the number of axes, use default values for the remaining axes. + * + * coords :: + * The design coordinates array. Each element is a 16.16 fractional + * value and must be between 0 and 1.0 for Adobe MM fonts, and between + * -1.0 and 1.0 for TrueType GX and OpenType variation fonts. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * [Since 2.8.1] To reset all axes to the default values, call the + * function with `num_coords` set to zero and `coords` set to `NULL`. + * [Since 2.9] 'Default values' means the currently selected named + * instance (or the base font if no named instance is selected). + * + * [Since 2.9] If `num_coords` is larger than zero, this function sets + * the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field + * (i.e., @FT_IS_VARIATION will return true). If `num_coords` is zero, + * this bit flag gets unset. + */ + FT_EXPORT( FT_Error ) + FT_Set_MM_Blend_Coordinates( FT_Face face, + FT_UInt num_coords, + FT_Fixed* coords ); + + + /************************************************************************** + * + * @function: + * FT_Get_MM_Blend_Coordinates + * + * @description: + * Get the normalized blend coordinates of the currently selected + * interpolated font. + * + * This function works with all supported variation formats. + * + * @input: + * face :: + * A handle to the source face. + * + * num_coords :: + * The number of normalized blend coordinates to retrieve. If it is + * larger than the number of axes, set the excess values to~0.5 for + * Adobe MM fonts, and to~0 for TrueType GX and OpenType variation + * fonts. + * + * @output: + * coords :: + * The normalized blend coordinates array (as 16.16 fractional values). + * + * @return: + * FreeType error code. 0~means success. + * + * @since: + * 2.7.1 + */ + FT_EXPORT( FT_Error ) + FT_Get_MM_Blend_Coordinates( FT_Face face, + FT_UInt num_coords, + FT_Fixed* coords ); + + + /************************************************************************** + * + * @function: + * FT_Set_Var_Blend_Coordinates + * + * @description: + * This is another name of @FT_Set_MM_Blend_Coordinates. + */ + FT_EXPORT( FT_Error ) + FT_Set_Var_Blend_Coordinates( FT_Face face, + FT_UInt num_coords, + FT_Fixed* coords ); + + + /************************************************************************** + * + * @function: + * FT_Get_Var_Blend_Coordinates + * + * @description: + * This is another name of @FT_Get_MM_Blend_Coordinates. + * + * @since: + * 2.7.1 + */ + FT_EXPORT( FT_Error ) + FT_Get_Var_Blend_Coordinates( FT_Face face, + FT_UInt num_coords, + FT_Fixed* coords ); + + + /************************************************************************** + * + * @function: + * FT_Set_MM_WeightVector + * + * @description: + * For Adobe MM fonts, choose an interpolated font design by directly + * setting the weight vector. + * + * This function can't be used with TrueType GX or OpenType variation + * fonts. + * + * @inout: + * face :: + * A handle to the source face. + * + * @input: + * len :: + * The length of the weight vector array. If it is larger than the + * number of designs, the extra values are ignored. If it is less than + * the number of designs, the remaining values are set to zero. + * + * weightvector :: + * An array representing the weight vector. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * Adobe Multiple Master fonts limit the number of designs, and thus the + * length of the weight vector to 16~elements. + * + * If `len` is larger than zero, this function sets the + * @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field (i.e., + * @FT_IS_VARIATION will return true). If `len` is zero, this bit flag + * is unset and the weight vector array is reset to the default values. + * + * The Adobe documentation also states that the values in the + * WeightVector array must total 1.0 +/-~0.001. In practice this does + * not seem to be enforced, so is not enforced here, either. + * + * @since: + * 2.10 + */ + FT_EXPORT( FT_Error ) + FT_Set_MM_WeightVector( FT_Face face, + FT_UInt len, + FT_Fixed* weightvector ); + + + /************************************************************************** + * + * @function: + * FT_Get_MM_WeightVector + * + * @description: + * For Adobe MM fonts, retrieve the current weight vector of the font. + * + * This function can't be used with TrueType GX or OpenType variation + * fonts. + * + * @inout: + * face :: + * A handle to the source face. + * + * len :: + * A pointer to the size of the array to be filled. If the size of the + * array is less than the number of designs, `FT_Err_Invalid_Argument` + * is returned, and `len` is set to the required size (the number of + * designs). If the size of the array is greater than the number of + * designs, the remaining entries are set to~0. On successful + * completion, `len` is set to the number of designs (i.e., the number + * of values written to the array). + * + * @output: + * weightvector :: + * An array to be filled. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * Adobe Multiple Master fonts limit the number of designs, and thus the + * length of the WeightVector to~16. + * + * @since: + * 2.10 + */ + FT_EXPORT( FT_Error ) + FT_Get_MM_WeightVector( FT_Face face, + FT_UInt* len, + FT_Fixed* weightvector ); + + + /************************************************************************** + * + * @enum: + * FT_VAR_AXIS_FLAG_XXX + * + * @description: + * A list of bit flags used in the return value of + * @FT_Get_Var_Axis_Flags. + * + * @values: + * FT_VAR_AXIS_FLAG_HIDDEN :: + * The variation axis should not be exposed to user interfaces. + * + * @since: + * 2.8.1 + */ +#define FT_VAR_AXIS_FLAG_HIDDEN 1 + + + /************************************************************************** + * + * @function: + * FT_Get_Var_Axis_Flags + * + * @description: + * Get the 'flags' field of an OpenType Variation Axis Record. + * + * Not meaningful for Adobe MM fonts (`*flags` is always zero). + * + * @input: + * master :: + * The variation descriptor. + * + * axis_index :: + * The index of the requested variation axis. + * + * @output: + * flags :: + * The 'flags' field. See @FT_VAR_AXIS_FLAG_XXX for possible values. + * + * @return: + * FreeType error code. 0~means success. + * + * @since: + * 2.8.1 + */ + FT_EXPORT( FT_Error ) + FT_Get_Var_Axis_Flags( FT_MM_Var* master, + FT_UInt axis_index, + FT_UInt* flags ); + + + /************************************************************************** + * + * @function: + * FT_Set_Named_Instance + * + * @description: + * Set or change the current named instance. + * + * @input: + * face :: + * A handle to the source face. + * + * instance_index :: + * The index of the requested instance, starting with value 1. If set + * to value 0, FreeType switches to font access without a named + * instance. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The function uses the value of `instance_index` to set bits 16-30 of + * the face's `face_index` field. It also resets any variation applied + * to the font, and the @FT_FACE_FLAG_VARIATION bit of the face's + * `face_flags` field gets reset to zero (i.e., @FT_IS_VARIATION will + * return false). + * + * For Adobe MM fonts (which don't have named instances) this function + * simply resets the current face to the default instance. + * + * @since: + * 2.9 + */ + FT_EXPORT( FT_Error ) + FT_Set_Named_Instance( FT_Face face, + FT_UInt instance_index ); + + + /************************************************************************** + * + * @function: + * FT_Get_Default_Named_Instance + * + * @description: + * Retrieve the index of the default named instance, to be used with + * @FT_Set_Named_Instance. + * + * The default instance of a variation font is that instance for which + * the nth axis coordinate is equal to `axis[n].def` (as specified in the + * @FT_MM_Var structure), with~n covering all axes. + * + * FreeType synthesizes a named instance for the default instance if the + * font does not contain such an entry. + * + * @input: + * face :: + * A handle to the source face. + * + * @output: + * instance_index :: + * The index of the default named instance. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * For Adobe MM fonts (which don't have named instances) this function + * always returns zero for `instance_index`. + * + * @since: + * 2.13.1 + */ + FT_EXPORT( FT_Error ) + FT_Get_Default_Named_Instance( FT_Face face, + FT_UInt *instance_index ); + + /* */ + + +FT_END_HEADER + +#endif /* FTMM_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftmodapi.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftmodapi.h new file mode 100644 index 00000000..0ee71589 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftmodapi.h @@ -0,0 +1,807 @@ +/**************************************************************************** + * + * ftmodapi.h + * + * FreeType modules public interface (specification). + * + * Copyright (C) 1996-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTMODAPI_H_ +#define FTMODAPI_H_ + + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * module_management + * + * @title: + * Module Management + * + * @abstract: + * How to add, upgrade, remove, and control modules from FreeType. + * + * @description: + * The definitions below are used to manage modules within FreeType. + * Internal and external modules can be added, upgraded, and removed at + * runtime. For example, an alternative renderer or proprietary font + * driver can be registered and prioritized. Additionally, some module + * properties can also be controlled. + * + * Here is a list of existing values of the `module_name` field in the + * @FT_Module_Class structure. + * + * ``` + * autofitter + * bdf + * cff + * gxvalid + * otvalid + * pcf + * pfr + * psaux + * pshinter + * psnames + * raster1 + * sfnt + * smooth + * truetype + * type1 + * type42 + * t1cid + * winfonts + * ``` + * + * Note that the FreeType Cache sub-system is not a FreeType module. + * + * @order: + * FT_Module + * FT_Module_Constructor + * FT_Module_Destructor + * FT_Module_Requester + * FT_Module_Class + * + * FT_Add_Module + * FT_Get_Module + * FT_Remove_Module + * FT_Add_Default_Modules + * + * FT_FACE_DRIVER_NAME + * FT_Property_Set + * FT_Property_Get + * FT_Set_Default_Properties + * + * FT_New_Library + * FT_Done_Library + * FT_Reference_Library + * + * FT_Renderer + * FT_Renderer_Class + * + * FT_Get_Renderer + * FT_Set_Renderer + * + * FT_Set_Debug_Hook + * + */ + + + /* module bit flags */ +#define FT_MODULE_FONT_DRIVER 1 /* this module is a font driver */ +#define FT_MODULE_RENDERER 2 /* this module is a renderer */ +#define FT_MODULE_HINTER 4 /* this module is a glyph hinter */ +#define FT_MODULE_STYLER 8 /* this module is a styler */ + +#define FT_MODULE_DRIVER_SCALABLE 0x100 /* the driver supports */ + /* scalable fonts */ +#define FT_MODULE_DRIVER_NO_OUTLINES 0x200 /* the driver does not */ + /* support vector outlines */ +#define FT_MODULE_DRIVER_HAS_HINTER 0x400 /* the driver provides its */ + /* own hinter */ +#define FT_MODULE_DRIVER_HINTS_LIGHTLY 0x800 /* the driver's hinter */ + /* produces LIGHT hints */ + + + /* deprecated values */ +#define ft_module_font_driver FT_MODULE_FONT_DRIVER +#define ft_module_renderer FT_MODULE_RENDERER +#define ft_module_hinter FT_MODULE_HINTER +#define ft_module_styler FT_MODULE_STYLER + +#define ft_module_driver_scalable FT_MODULE_DRIVER_SCALABLE +#define ft_module_driver_no_outlines FT_MODULE_DRIVER_NO_OUTLINES +#define ft_module_driver_has_hinter FT_MODULE_DRIVER_HAS_HINTER +#define ft_module_driver_hints_lightly FT_MODULE_DRIVER_HINTS_LIGHTLY + + + typedef FT_Pointer FT_Module_Interface; + + + /************************************************************************** + * + * @functype: + * FT_Module_Constructor + * + * @description: + * A function used to initialize (not create) a new module object. + * + * @input: + * module :: + * The module to initialize. + */ + typedef FT_Error + (*FT_Module_Constructor)( FT_Module module ); + + + /************************************************************************** + * + * @functype: + * FT_Module_Destructor + * + * @description: + * A function used to finalize (not destroy) a given module object. + * + * @input: + * module :: + * The module to finalize. + */ + typedef void + (*FT_Module_Destructor)( FT_Module module ); + + + /************************************************************************** + * + * @functype: + * FT_Module_Requester + * + * @description: + * A function used to query a given module for a specific interface. + * + * @input: + * module :: + * The module to be searched. + * + * name :: + * The name of the interface in the module. + */ + typedef FT_Module_Interface + (*FT_Module_Requester)( FT_Module module, + const char* name ); + + + /************************************************************************** + * + * @struct: + * FT_Module_Class + * + * @description: + * The module class descriptor. While being a public structure necessary + * for FreeType's module bookkeeping, most of the fields are essentially + * internal, not to be used directly by an application. + * + * @fields: + * module_flags :: + * Bit flags describing the module. + * + * module_size :: + * The size of one module object/instance in bytes. + * + * module_name :: + * The name of the module. + * + * module_version :: + * The version, as a 16.16 fixed number (major.minor). + * + * module_requires :: + * The version of FreeType this module requires, as a 16.16 fixed + * number (major.minor). Starts at version 2.0, i.e., 0x20000. + * + * module_interface :: + * A typeless pointer to a structure (which varies between different + * modules) that holds the module's interface functions. This is + * essentially what `get_interface` returns. + * + * module_init :: + * The initializing function. + * + * module_done :: + * The finalizing function. + * + * get_interface :: + * The interface requesting function. + */ + typedef struct FT_Module_Class_ + { + FT_ULong module_flags; + FT_Long module_size; + const FT_String* module_name; + FT_Fixed module_version; + FT_Fixed module_requires; + + const void* module_interface; + + FT_Module_Constructor module_init; + FT_Module_Destructor module_done; + FT_Module_Requester get_interface; + + } FT_Module_Class; + + + /************************************************************************** + * + * @function: + * FT_Add_Module + * + * @description: + * Add a new module to a given library instance. + * + * @inout: + * library :: + * A handle to the library object. + * + * @input: + * clazz :: + * A pointer to class descriptor for the module. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * An error will be returned if a module already exists by that name, or + * if the module requires a version of FreeType that is too great. + */ + FT_EXPORT( FT_Error ) + FT_Add_Module( FT_Library library, + const FT_Module_Class* clazz ); + + + /************************************************************************** + * + * @function: + * FT_Get_Module + * + * @description: + * Find a module by its name. + * + * @input: + * library :: + * A handle to the library object. + * + * module_name :: + * The module's name (as an ASCII string). + * + * @return: + * A module handle. 0~if none was found. + * + * @note: + * FreeType's internal modules aren't documented very well, and you + * should look up the source code for details. + */ + FT_EXPORT( FT_Module ) + FT_Get_Module( FT_Library library, + const char* module_name ); + + + /************************************************************************** + * + * @function: + * FT_Remove_Module + * + * @description: + * Remove a given module from a library instance. + * + * @inout: + * library :: + * A handle to a library object. + * + * @input: + * module :: + * A handle to a module object. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The module object is destroyed by the function in case of success. + */ + FT_EXPORT( FT_Error ) + FT_Remove_Module( FT_Library library, + FT_Module module ); + + + /************************************************************************** + * + * @macro: + * FT_FACE_DRIVER_NAME + * + * @description: + * A macro that retrieves the name of a font driver from a face object. + * + * @note: + * The font driver name is a valid `module_name` for @FT_Property_Set + * and @FT_Property_Get. This is not the same as @FT_Get_Font_Format. + * + * @since: + * 2.11 + * + */ +#define FT_FACE_DRIVER_NAME( face ) \ + ( ( *FT_REINTERPRET_CAST( FT_Module_Class**, \ + ( face )->driver ) )->module_name ) + + + /************************************************************************** + * + * @function: + * FT_Property_Set + * + * @description: + * Set a property for a given module. + * + * @input: + * library :: + * A handle to the library the module is part of. + * + * module_name :: + * The module name. + * + * property_name :: + * The property name. Properties are described in section + * @properties. + * + * Note that only a few modules have properties. + * + * value :: + * A generic pointer to a variable or structure that gives the new + * value of the property. The exact definition of `value` is + * dependent on the property; see section @properties. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * If `module_name` isn't a valid module name, or `property_name` + * doesn't specify a valid property, or if `value` doesn't represent a + * valid value for the given property, an error is returned. + * + * The following example sets property 'bar' (a simple integer) in + * module 'foo' to value~1. + * + * ``` + * FT_UInt bar; + * + * + * bar = 1; + * FT_Property_Set( library, "foo", "bar", &bar ); + * ``` + * + * Note that the FreeType Cache sub-system doesn't recognize module + * property changes. To avoid glyph lookup confusion within the cache + * you should call @FTC_Manager_Reset to completely flush the cache if a + * module property gets changed after @FTC_Manager_New has been called. + * + * It is not possible to set properties of the FreeType Cache sub-system + * itself with FT_Property_Set; use @FTC_Property_Set instead. + * + * @since: + * 2.4.11 + * + */ + FT_EXPORT( FT_Error ) + FT_Property_Set( FT_Library library, + const FT_String* module_name, + const FT_String* property_name, + const void* value ); + + + /************************************************************************** + * + * @function: + * FT_Property_Get + * + * @description: + * Get a module's property value. + * + * @input: + * library :: + * A handle to the library the module is part of. + * + * module_name :: + * The module name. + * + * property_name :: + * The property name. Properties are described in section + * @properties. + * + * @inout: + * value :: + * A generic pointer to a variable or structure that gives the value + * of the property. The exact definition of `value` is dependent on + * the property; see section @properties. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * If `module_name` isn't a valid module name, or `property_name` + * doesn't specify a valid property, or if `value` doesn't represent a + * valid value for the given property, an error is returned. + * + * The following example gets property 'baz' (a range) in module 'foo'. + * + * ``` + * typedef range_ + * { + * FT_Int32 min; + * FT_Int32 max; + * + * } range; + * + * range baz; + * + * + * FT_Property_Get( library, "foo", "baz", &baz ); + * ``` + * + * It is not possible to retrieve properties of the FreeType Cache + * sub-system with FT_Property_Get; use @FTC_Property_Get instead. + * + * @since: + * 2.4.11 + * + */ + FT_EXPORT( FT_Error ) + FT_Property_Get( FT_Library library, + const FT_String* module_name, + const FT_String* property_name, + void* value ); + + + /************************************************************************** + * + * @function: + * FT_Set_Default_Properties + * + * @description: + * If compilation option `FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES` is + * set, this function reads the `FREETYPE_PROPERTIES` environment + * variable to control driver properties. See section @properties for + * more. + * + * If the compilation option is not set, this function does nothing. + * + * `FREETYPE_PROPERTIES` has the following syntax form (broken here into + * multiple lines for better readability). + * + * ``` + * + * ':' + * '=' + * + * ':' + * '=' + * ... + * ``` + * + * Example: + * + * ``` + * FREETYPE_PROPERTIES=truetype:interpreter-version=35 \ + * cff:no-stem-darkening=0 + * ``` + * + * @inout: + * library :: + * A handle to a new library object. + * + * @since: + * 2.8 + */ + FT_EXPORT( void ) + FT_Set_Default_Properties( FT_Library library ); + + + /************************************************************************** + * + * @function: + * FT_Reference_Library + * + * @description: + * A counter gets initialized to~1 at the time an @FT_Library structure + * is created. This function increments the counter. @FT_Done_Library + * then only destroys a library if the counter is~1, otherwise it simply + * decrements the counter. + * + * This function helps in managing life-cycles of structures that + * reference @FT_Library objects. + * + * @input: + * library :: + * A handle to a target library object. + * + * @return: + * FreeType error code. 0~means success. + * + * @since: + * 2.4.2 + */ + FT_EXPORT( FT_Error ) + FT_Reference_Library( FT_Library library ); + + + /************************************************************************** + * + * @function: + * FT_New_Library + * + * @description: + * This function is used to create a new FreeType library instance from a + * given memory object. It is thus possible to use libraries with + * distinct memory allocators within the same program. Note, however, + * that the used @FT_Memory structure is expected to remain valid for the + * life of the @FT_Library object. + * + * Normally, you would call this function (followed by a call to + * @FT_Add_Default_Modules or a series of calls to @FT_Add_Module, and a + * call to @FT_Set_Default_Properties) instead of @FT_Init_FreeType to + * initialize the FreeType library. + * + * Don't use @FT_Done_FreeType but @FT_Done_Library to destroy a library + * instance. + * + * @input: + * memory :: + * A handle to the original memory object. + * + * @output: + * alibrary :: + * A pointer to handle of a new library object. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * See the discussion of reference counters in the description of + * @FT_Reference_Library. + */ + FT_EXPORT( FT_Error ) + FT_New_Library( FT_Memory memory, + FT_Library *alibrary ); + + + /************************************************************************** + * + * @function: + * FT_Done_Library + * + * @description: + * Discard a given library object. This closes all drivers and discards + * all resource objects. + * + * @input: + * library :: + * A handle to the target library. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * See the discussion of reference counters in the description of + * @FT_Reference_Library. + */ + FT_EXPORT( FT_Error ) + FT_Done_Library( FT_Library library ); + + + /************************************************************************** + * + * @functype: + * FT_DebugHook_Func + * + * @description: + * A drop-in replacement (or rather a wrapper) for the bytecode or + * charstring interpreter's main loop function. + * + * Its job is essentially + * + * - to activate debug mode to enforce single-stepping, + * + * - to call the main loop function to interpret the next opcode, and + * + * - to show the changed context to the user. + * + * An example for such a main loop function is `TT_RunIns` (declared in + * FreeType's internal header file `src/truetype/ttinterp.h`). + * + * Have a look at the source code of the `ttdebug` FreeType demo program + * for an example of a drop-in replacement. + * + * @inout: + * arg :: + * A typeless pointer, to be cast to the main loop function's data + * structure (which depends on the font module). For TrueType fonts + * it is bytecode interpreter's execution context, `TT_ExecContext`, + * which is declared in FreeType's internal header file `tttypes.h`. + */ + typedef FT_Error + (*FT_DebugHook_Func)( void* arg ); + + + /************************************************************************** + * + * @enum: + * FT_DEBUG_HOOK_XXX + * + * @description: + * A list of named debug hook indices. + * + * @values: + * FT_DEBUG_HOOK_TRUETYPE:: + * This hook index identifies the TrueType bytecode debugger. + */ +#define FT_DEBUG_HOOK_TRUETYPE 0 + + + /************************************************************************** + * + * @function: + * FT_Set_Debug_Hook + * + * @description: + * Set a debug hook function for debugging the interpreter of a font + * format. + * + * While this is a public API function, an application needs access to + * FreeType's internal header files to do something useful. + * + * Have a look at the source code of the `ttdebug` FreeType demo program + * for an example of its usage. + * + * @inout: + * library :: + * A handle to the library object. + * + * @input: + * hook_index :: + * The index of the debug hook. You should use defined enumeration + * macros like @FT_DEBUG_HOOK_TRUETYPE. + * + * debug_hook :: + * The function used to debug the interpreter. + * + * @note: + * Currently, four debug hook slots are available, but only one (for the + * TrueType interpreter) is defined. + */ + FT_EXPORT( void ) + FT_Set_Debug_Hook( FT_Library library, + FT_UInt hook_index, + FT_DebugHook_Func debug_hook ); + + + /************************************************************************** + * + * @function: + * FT_Add_Default_Modules + * + * @description: + * Add the set of default drivers to a given library object. This is + * only useful when you create a library object with @FT_New_Library + * (usually to plug a custom memory manager). + * + * @inout: + * library :: + * A handle to a new library object. + */ + FT_EXPORT( void ) + FT_Add_Default_Modules( FT_Library library ); + + + + /************************************************************************** + * + * @section: + * truetype_engine + * + * @title: + * The TrueType Engine + * + * @abstract: + * TrueType bytecode support. + * + * @description: + * This section contains a function used to query the level of TrueType + * bytecode support compiled in this version of the library. + * + */ + + + /************************************************************************** + * + * @enum: + * FT_TrueTypeEngineType + * + * @description: + * A list of values describing which kind of TrueType bytecode engine is + * implemented in a given FT_Library instance. It is used by the + * @FT_Get_TrueType_Engine_Type function. + * + * @values: + * FT_TRUETYPE_ENGINE_TYPE_NONE :: + * The library doesn't implement any kind of bytecode interpreter. + * + * FT_TRUETYPE_ENGINE_TYPE_UNPATENTED :: + * Deprecated and removed. + * + * FT_TRUETYPE_ENGINE_TYPE_PATENTED :: + * The library implements a bytecode interpreter that covers the full + * instruction set of the TrueType virtual machine (this was governed + * by patents until May 2010, hence the name). + * + * @since: + * 2.2 + * + */ + typedef enum FT_TrueTypeEngineType_ + { + FT_TRUETYPE_ENGINE_TYPE_NONE = 0, + FT_TRUETYPE_ENGINE_TYPE_UNPATENTED, + FT_TRUETYPE_ENGINE_TYPE_PATENTED + + } FT_TrueTypeEngineType; + + + /************************************************************************** + * + * @function: + * FT_Get_TrueType_Engine_Type + * + * @description: + * Return an @FT_TrueTypeEngineType value to indicate which level of the + * TrueType virtual machine a given library instance supports. + * + * @input: + * library :: + * A library instance. + * + * @return: + * A value indicating which level is supported. + * + * @since: + * 2.2 + * + */ + FT_EXPORT( FT_TrueTypeEngineType ) + FT_Get_TrueType_Engine_Type( FT_Library library ); + + /* */ + + +FT_END_HEADER + +#endif /* FTMODAPI_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftmoderr.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftmoderr.h new file mode 100644 index 00000000..6722fbf8 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftmoderr.h @@ -0,0 +1,204 @@ +/**************************************************************************** + * + * ftmoderr.h + * + * FreeType module error offsets (specification). + * + * Copyright (C) 2001-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + + /************************************************************************** + * + * This file is used to define the FreeType module error codes. + * + * If the macro `FT_CONFIG_OPTION_USE_MODULE_ERRORS` in `ftoption.h` is + * set, the lower byte of an error value identifies the error code as + * usual. In addition, the higher byte identifies the module. For + * example, the error `FT_Err_Invalid_File_Format` has value 0x0003, the + * error `TT_Err_Invalid_File_Format` has value 0x1303, the error + * `T1_Err_Invalid_File_Format` has value 0x1403, etc. + * + * Note that `FT_Err_Ok`, `TT_Err_Ok`, etc. are always equal to zero, + * including the high byte. + * + * If `FT_CONFIG_OPTION_USE_MODULE_ERRORS` isn't set, the higher byte of an + * error value is set to zero. + * + * To hide the various `XXX_Err_` prefixes in the source code, FreeType + * provides some macros in `fttypes.h`. + * + * FT_ERR( err ) + * + * Add current error module prefix (as defined with the `FT_ERR_PREFIX` + * macro) to `err`. For example, in the BDF module the line + * + * ``` + * error = FT_ERR( Invalid_Outline ); + * ``` + * + * expands to + * + * ``` + * error = BDF_Err_Invalid_Outline; + * ``` + * + * For simplicity, you can always use `FT_Err_Ok` directly instead of + * `FT_ERR( Ok )`. + * + * FT_ERR_EQ( errcode, err ) + * FT_ERR_NEQ( errcode, err ) + * + * Compare error code `errcode` with the error `err` for equality and + * inequality, respectively. Example: + * + * ``` + * if ( FT_ERR_EQ( error, Invalid_Outline ) ) + * ... + * ``` + * + * Using this macro you don't have to think about error prefixes. Of + * course, if module errors are not active, the above example is the + * same as + * + * ``` + * if ( error == FT_Err_Invalid_Outline ) + * ... + * ``` + * + * FT_ERROR_BASE( errcode ) + * FT_ERROR_MODULE( errcode ) + * + * Get base error and module error code, respectively. + * + * It can also be used to create a module error message table easily with + * something like + * + * ``` + * #undef FTMODERR_H_ + * #define FT_MODERRDEF( e, v, s ) { FT_Mod_Err_ ## e, s }, + * #define FT_MODERR_START_LIST { + * #define FT_MODERR_END_LIST { 0, 0 } }; + * + * const struct + * { + * int mod_err_offset; + * const char* mod_err_msg + * } ft_mod_errors[] = + * + * #include + * ``` + * + */ + + +#ifndef FTMODERR_H_ +#define FTMODERR_H_ + + + /*******************************************************************/ + /*******************************************************************/ + /***** *****/ + /***** SETUP MACROS *****/ + /***** *****/ + /*******************************************************************/ + /*******************************************************************/ + + +#undef FT_NEED_EXTERN_C + +#ifndef FT_MODERRDEF + +#ifdef FT_CONFIG_OPTION_USE_MODULE_ERRORS +#define FT_MODERRDEF( e, v, s ) FT_Mod_Err_ ## e = v, +#else +#define FT_MODERRDEF( e, v, s ) FT_Mod_Err_ ## e = 0, +#endif + +#define FT_MODERR_START_LIST enum { +#define FT_MODERR_END_LIST FT_Mod_Err_Max }; + +#ifdef __cplusplus +#define FT_NEED_EXTERN_C + extern "C" { +#endif + +#endif /* !FT_MODERRDEF */ + + + /*******************************************************************/ + /*******************************************************************/ + /***** *****/ + /***** LIST MODULE ERROR BASES *****/ + /***** *****/ + /*******************************************************************/ + /*******************************************************************/ + + +#ifdef FT_MODERR_START_LIST + FT_MODERR_START_LIST +#endif + + + FT_MODERRDEF( Base, 0x000, "base module" ) + FT_MODERRDEF( Autofit, 0x100, "autofitter module" ) + FT_MODERRDEF( BDF, 0x200, "BDF module" ) + FT_MODERRDEF( Bzip2, 0x300, "Bzip2 module" ) + FT_MODERRDEF( Cache, 0x400, "cache module" ) + FT_MODERRDEF( CFF, 0x500, "CFF module" ) + FT_MODERRDEF( CID, 0x600, "CID module" ) + FT_MODERRDEF( Gzip, 0x700, "Gzip module" ) + FT_MODERRDEF( LZW, 0x800, "LZW module" ) + FT_MODERRDEF( OTvalid, 0x900, "OpenType validation module" ) + FT_MODERRDEF( PCF, 0xA00, "PCF module" ) + FT_MODERRDEF( PFR, 0xB00, "PFR module" ) + FT_MODERRDEF( PSaux, 0xC00, "PS auxiliary module" ) + FT_MODERRDEF( PShinter, 0xD00, "PS hinter module" ) + FT_MODERRDEF( PSnames, 0xE00, "PS names module" ) + FT_MODERRDEF( Raster, 0xF00, "raster module" ) + FT_MODERRDEF( SFNT, 0x1000, "SFNT module" ) + FT_MODERRDEF( Smooth, 0x1100, "smooth raster module" ) + FT_MODERRDEF( TrueType, 0x1200, "TrueType module" ) + FT_MODERRDEF( Type1, 0x1300, "Type 1 module" ) + FT_MODERRDEF( Type42, 0x1400, "Type 42 module" ) + FT_MODERRDEF( Winfonts, 0x1500, "Windows FON/FNT module" ) + FT_MODERRDEF( GXvalid, 0x1600, "GX validation module" ) + FT_MODERRDEF( Sdf, 0x1700, "Signed distance field raster module" ) + + +#ifdef FT_MODERR_END_LIST + FT_MODERR_END_LIST +#endif + + + /*******************************************************************/ + /*******************************************************************/ + /***** *****/ + /***** CLEANUP *****/ + /***** *****/ + /*******************************************************************/ + /*******************************************************************/ + + +#ifdef FT_NEED_EXTERN_C + } +#endif + +#undef FT_MODERR_START_LIST +#undef FT_MODERR_END_LIST +#undef FT_MODERRDEF +#undef FT_NEED_EXTERN_C + + +#endif /* FTMODERR_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftotval.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftotval.h new file mode 100644 index 00000000..810200b3 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftotval.h @@ -0,0 +1,206 @@ +/**************************************************************************** + * + * ftotval.h + * + * FreeType API for validating OpenType tables (specification). + * + * Copyright (C) 2004-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +/**************************************************************************** + * + * + * Warning: This module might be moved to a different library in the + * future to avoid a tight dependency between FreeType and the + * OpenType specification. + * + * + */ + + +#ifndef FTOTVAL_H_ +#define FTOTVAL_H_ + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * ot_validation + * + * @title: + * OpenType Validation + * + * @abstract: + * An API to validate OpenType tables. + * + * @description: + * This section contains the declaration of functions to validate some + * OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH). + * + * @order: + * FT_OpenType_Validate + * FT_OpenType_Free + * + * FT_VALIDATE_OTXXX + * + */ + + + /************************************************************************** + * + * @enum: + * FT_VALIDATE_OTXXX + * + * @description: + * A list of bit-field constants used with @FT_OpenType_Validate to + * indicate which OpenType tables should be validated. + * + * @values: + * FT_VALIDATE_BASE :: + * Validate BASE table. + * + * FT_VALIDATE_GDEF :: + * Validate GDEF table. + * + * FT_VALIDATE_GPOS :: + * Validate GPOS table. + * + * FT_VALIDATE_GSUB :: + * Validate GSUB table. + * + * FT_VALIDATE_JSTF :: + * Validate JSTF table. + * + * FT_VALIDATE_MATH :: + * Validate MATH table. + * + * FT_VALIDATE_OT :: + * Validate all OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH). + * + */ +#define FT_VALIDATE_BASE 0x0100 +#define FT_VALIDATE_GDEF 0x0200 +#define FT_VALIDATE_GPOS 0x0400 +#define FT_VALIDATE_GSUB 0x0800 +#define FT_VALIDATE_JSTF 0x1000 +#define FT_VALIDATE_MATH 0x2000 + +#define FT_VALIDATE_OT ( FT_VALIDATE_BASE | \ + FT_VALIDATE_GDEF | \ + FT_VALIDATE_GPOS | \ + FT_VALIDATE_GSUB | \ + FT_VALIDATE_JSTF | \ + FT_VALIDATE_MATH ) + + + /************************************************************************** + * + * @function: + * FT_OpenType_Validate + * + * @description: + * Validate various OpenType tables to assure that all offsets and + * indices are valid. The idea is that a higher-level library that + * actually does the text layout can access those tables without error + * checking (which can be quite time consuming). + * + * @input: + * face :: + * A handle to the input face. + * + * validation_flags :: + * A bit field that specifies the tables to be validated. See + * @FT_VALIDATE_OTXXX for possible values. + * + * @output: + * BASE_table :: + * A pointer to the BASE table. + * + * GDEF_table :: + * A pointer to the GDEF table. + * + * GPOS_table :: + * A pointer to the GPOS table. + * + * GSUB_table :: + * A pointer to the GSUB table. + * + * JSTF_table :: + * A pointer to the JSTF table. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function only works with OpenType fonts, returning an error + * otherwise. + * + * After use, the application should deallocate the five tables with + * @FT_OpenType_Free. A `NULL` value indicates that the table either + * doesn't exist in the font, or the application hasn't asked for + * validation. + */ + FT_EXPORT( FT_Error ) + FT_OpenType_Validate( FT_Face face, + FT_UInt validation_flags, + FT_Bytes *BASE_table, + FT_Bytes *GDEF_table, + FT_Bytes *GPOS_table, + FT_Bytes *GSUB_table, + FT_Bytes *JSTF_table ); + + + /************************************************************************** + * + * @function: + * FT_OpenType_Free + * + * @description: + * Free the buffer allocated by OpenType validator. + * + * @input: + * face :: + * A handle to the input face. + * + * table :: + * The pointer to the buffer that is allocated by + * @FT_OpenType_Validate. + * + * @note: + * This function must be used to free the buffer allocated by + * @FT_OpenType_Validate only. + */ + FT_EXPORT( void ) + FT_OpenType_Free( FT_Face face, + FT_Bytes table ); + + + /* */ + + +FT_END_HEADER + +#endif /* FTOTVAL_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftoutln.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftoutln.h new file mode 100644 index 00000000..44e94b4f --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftoutln.h @@ -0,0 +1,588 @@ +/**************************************************************************** + * + * ftoutln.h + * + * Support for the FT_Outline type used to store glyph shapes of + * most scalable font formats (specification). + * + * Copyright (C) 1996-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTOUTLN_H_ +#define FTOUTLN_H_ + + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * outline_processing + * + * @title: + * Outline Processing + * + * @abstract: + * Functions to create, transform, and render vectorial glyph images. + * + * @description: + * This section contains routines used to create and destroy scalable + * glyph images known as 'outlines'. These can also be measured, + * transformed, and converted into bitmaps and pixmaps. + * + * @order: + * FT_Outline + * FT_Outline_New + * FT_Outline_Done + * FT_Outline_Copy + * FT_Outline_Translate + * FT_Outline_Transform + * FT_Outline_Embolden + * FT_Outline_EmboldenXY + * FT_Outline_Reverse + * FT_Outline_Check + * + * FT_Outline_Get_CBox + * FT_Outline_Get_BBox + * + * FT_Outline_Get_Bitmap + * FT_Outline_Render + * FT_Outline_Decompose + * FT_Outline_Funcs + * FT_Outline_MoveToFunc + * FT_Outline_LineToFunc + * FT_Outline_ConicToFunc + * FT_Outline_CubicToFunc + * + * FT_Orientation + * FT_Outline_Get_Orientation + * + * FT_OUTLINE_XXX + * + */ + + + /************************************************************************** + * + * @function: + * FT_Outline_Decompose + * + * @description: + * Walk over an outline's structure to decompose it into individual + * segments and Bezier arcs. This function also emits 'move to' + * operations to indicate the start of new contours in the outline. + * + * @input: + * outline :: + * A pointer to the source target. + * + * func_interface :: + * A table of 'emitters', i.e., function pointers called during + * decomposition to indicate path operations. + * + * @inout: + * user :: + * A typeless pointer that is passed to each emitter during the + * decomposition. It can be used to store the state during the + * decomposition. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * Degenerate contours, segments, and Bezier arcs may be reported. In + * most cases, it is best to filter these out before using the outline + * for stroking or other path modification purposes (which may cause + * degenerate segments to become non-degenerate and visible, like when + * stroke caps are used or the path is otherwise outset). Some glyph + * outlines may contain deliberate degenerate single points for mark + * attachement. + * + * Similarly, the function returns success for an empty outline also + * (doing nothing, that is, not calling any emitter); if necessary, you + * should filter this out, too. + */ + FT_EXPORT( FT_Error ) + FT_Outline_Decompose( FT_Outline* outline, + const FT_Outline_Funcs* func_interface, + void* user ); + + + /************************************************************************** + * + * @function: + * FT_Outline_New + * + * @description: + * Create a new outline of a given size. + * + * @input: + * library :: + * A handle to the library object from where the outline is allocated. + * Note however that the new outline will **not** necessarily be + * **freed**, when destroying the library, by @FT_Done_FreeType. + * + * numPoints :: + * The maximum number of points within the outline. Must be smaller + * than or equal to 0xFFFF (65535). + * + * numContours :: + * The maximum number of contours within the outline. This value must + * be in the range 0 to `numPoints`. + * + * @output: + * anoutline :: + * A handle to the new outline. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The reason why this function takes a `library` parameter is simply to + * use the library's memory allocator. + */ + FT_EXPORT( FT_Error ) + FT_Outline_New( FT_Library library, + FT_UInt numPoints, + FT_Int numContours, + FT_Outline *anoutline ); + + + /************************************************************************** + * + * @function: + * FT_Outline_Done + * + * @description: + * Destroy an outline created with @FT_Outline_New. + * + * @input: + * library :: + * A handle of the library object used to allocate the outline. + * + * outline :: + * A pointer to the outline object to be discarded. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * If the outline's 'owner' field is not set, only the outline descriptor + * will be released. + */ + FT_EXPORT( FT_Error ) + FT_Outline_Done( FT_Library library, + FT_Outline* outline ); + + + /************************************************************************** + * + * @function: + * FT_Outline_Check + * + * @description: + * Check the contents of an outline descriptor. + * + * @input: + * outline :: + * A handle to a source outline. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * An empty outline, or an outline with a single point only is also + * valid. + */ + FT_EXPORT( FT_Error ) + FT_Outline_Check( FT_Outline* outline ); + + + /************************************************************************** + * + * @function: + * FT_Outline_Get_CBox + * + * @description: + * Return an outline's 'control box'. The control box encloses all the + * outline's points, including Bezier control points. Though it + * coincides with the exact bounding box for most glyphs, it can be + * slightly larger in some situations (like when rotating an outline that + * contains Bezier outside arcs). + * + * Computing the control box is very fast, while getting the bounding box + * can take much more time as it needs to walk over all segments and arcs + * in the outline. To get the latter, you can use the 'ftbbox' + * component, which is dedicated to this single task. + * + * @input: + * outline :: + * A pointer to the source outline descriptor. + * + * @output: + * acbox :: + * The outline's control box. + * + * @note: + * See @FT_Glyph_Get_CBox for a discussion of tricky fonts. + */ + FT_EXPORT( void ) + FT_Outline_Get_CBox( const FT_Outline* outline, + FT_BBox *acbox ); + + + /************************************************************************** + * + * @function: + * FT_Outline_Translate + * + * @description: + * Apply a simple translation to the points of an outline. + * + * @inout: + * outline :: + * A pointer to the target outline descriptor. + * + * @input: + * xOffset :: + * The horizontal offset. + * + * yOffset :: + * The vertical offset. + */ + FT_EXPORT( void ) + FT_Outline_Translate( const FT_Outline* outline, + FT_Pos xOffset, + FT_Pos yOffset ); + + + /************************************************************************** + * + * @function: + * FT_Outline_Copy + * + * @description: + * Copy an outline into another one. Both objects must have the same + * sizes (number of points & number of contours) when this function is + * called. + * + * @input: + * source :: + * A handle to the source outline. + * + * @output: + * target :: + * A handle to the target outline. + * + * @return: + * FreeType error code. 0~means success. + */ + FT_EXPORT( FT_Error ) + FT_Outline_Copy( const FT_Outline* source, + FT_Outline *target ); + + + /************************************************************************** + * + * @function: + * FT_Outline_Transform + * + * @description: + * Apply a simple 2x2 matrix to all of an outline's points. Useful for + * applying rotations, slanting, flipping, etc. + * + * @inout: + * outline :: + * A pointer to the target outline descriptor. + * + * @input: + * matrix :: + * A pointer to the transformation matrix. + * + * @note: + * You can use @FT_Outline_Translate if you need to translate the + * outline's points. + */ + FT_EXPORT( void ) + FT_Outline_Transform( const FT_Outline* outline, + const FT_Matrix* matrix ); + + + /************************************************************************** + * + * @function: + * FT_Outline_Embolden + * + * @description: + * Embolden an outline. The new outline will be at most 4~times + * `strength` pixels wider and higher. You may think of the left and + * bottom borders as unchanged. + * + * Negative `strength` values to reduce the outline thickness are + * possible also. + * + * @inout: + * outline :: + * A handle to the target outline. + * + * @input: + * strength :: + * How strong the glyph is emboldened. Expressed in 26.6 pixel format. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The used algorithm to increase or decrease the thickness of the glyph + * doesn't change the number of points; this means that certain + * situations like acute angles or intersections are sometimes handled + * incorrectly. + * + * If you need 'better' metrics values you should call + * @FT_Outline_Get_CBox or @FT_Outline_Get_BBox. + * + * To get meaningful results, font scaling values must be set with + * functions like @FT_Set_Char_Size before calling FT_Render_Glyph. + * + * @example: + * ``` + * FT_Load_Glyph( face, index, FT_LOAD_DEFAULT ); + * + * if ( face->glyph->format == FT_GLYPH_FORMAT_OUTLINE ) + * FT_Outline_Embolden( &face->glyph->outline, strength ); + * ``` + * + */ + FT_EXPORT( FT_Error ) + FT_Outline_Embolden( FT_Outline* outline, + FT_Pos strength ); + + + /************************************************************************** + * + * @function: + * FT_Outline_EmboldenXY + * + * @description: + * Embolden an outline. The new outline will be `xstrength` pixels wider + * and `ystrength` pixels higher. Otherwise, it is similar to + * @FT_Outline_Embolden, which uses the same strength in both directions. + * + * @since: + * 2.4.10 + */ + FT_EXPORT( FT_Error ) + FT_Outline_EmboldenXY( FT_Outline* outline, + FT_Pos xstrength, + FT_Pos ystrength ); + + + /************************************************************************** + * + * @function: + * FT_Outline_Reverse + * + * @description: + * Reverse the drawing direction of an outline. This is used to ensure + * consistent fill conventions for mirrored glyphs. + * + * @inout: + * outline :: + * A pointer to the target outline descriptor. + * + * @note: + * This function toggles the bit flag @FT_OUTLINE_REVERSE_FILL in the + * outline's `flags` field. + * + * It shouldn't be used by a normal client application, unless it knows + * what it is doing. + */ + FT_EXPORT( void ) + FT_Outline_Reverse( FT_Outline* outline ); + + + /************************************************************************** + * + * @function: + * FT_Outline_Get_Bitmap + * + * @description: + * Render an outline within a bitmap. The outline's image is simply + * OR-ed to the target bitmap. + * + * @input: + * library :: + * A handle to a FreeType library object. + * + * outline :: + * A pointer to the source outline descriptor. + * + * @inout: + * abitmap :: + * A pointer to the target bitmap descriptor. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function does **not create** the bitmap, it only renders an + * outline image within the one you pass to it! Consequently, the + * various fields in `abitmap` should be set accordingly. + * + * It will use the raster corresponding to the default glyph format. + * + * The value of the `num_grays` field in `abitmap` is ignored. If you + * select the gray-level rasterizer, and you want less than 256 gray + * levels, you have to use @FT_Outline_Render directly. + */ + FT_EXPORT( FT_Error ) + FT_Outline_Get_Bitmap( FT_Library library, + FT_Outline* outline, + const FT_Bitmap *abitmap ); + + + /************************************************************************** + * + * @function: + * FT_Outline_Render + * + * @description: + * Render an outline within a bitmap using the current scan-convert. + * + * @input: + * library :: + * A handle to a FreeType library object. + * + * outline :: + * A pointer to the source outline descriptor. + * + * @inout: + * params :: + * A pointer to an @FT_Raster_Params structure used to describe the + * rendering operation. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This advanced function uses @FT_Raster_Params as an argument. + * The field `params.source` will be set to `outline` before the scan + * converter is called, which means that the value you give to it is + * actually ignored. Either `params.target` must point to preallocated + * bitmap, or @FT_RASTER_FLAG_DIRECT must be set in `params.flags` + * allowing FreeType rasterizer to be used for direct composition, + * translucency, etc. See @FT_Raster_Params for more details. + */ + FT_EXPORT( FT_Error ) + FT_Outline_Render( FT_Library library, + FT_Outline* outline, + FT_Raster_Params* params ); + + + /************************************************************************** + * + * @enum: + * FT_Orientation + * + * @description: + * A list of values used to describe an outline's contour orientation. + * + * The TrueType and PostScript specifications use different conventions + * to determine whether outline contours should be filled or unfilled. + * + * @values: + * FT_ORIENTATION_TRUETYPE :: + * According to the TrueType specification, clockwise contours must be + * filled, and counter-clockwise ones must be unfilled. + * + * FT_ORIENTATION_POSTSCRIPT :: + * According to the PostScript specification, counter-clockwise + * contours must be filled, and clockwise ones must be unfilled. + * + * FT_ORIENTATION_FILL_RIGHT :: + * This is identical to @FT_ORIENTATION_TRUETYPE, but is used to + * remember that in TrueType, everything that is to the right of the + * drawing direction of a contour must be filled. + * + * FT_ORIENTATION_FILL_LEFT :: + * This is identical to @FT_ORIENTATION_POSTSCRIPT, but is used to + * remember that in PostScript, everything that is to the left of the + * drawing direction of a contour must be filled. + * + * FT_ORIENTATION_NONE :: + * The orientation cannot be determined. That is, different parts of + * the glyph have different orientation. + * + */ + typedef enum FT_Orientation_ + { + FT_ORIENTATION_TRUETYPE = 0, + FT_ORIENTATION_POSTSCRIPT = 1, + FT_ORIENTATION_FILL_RIGHT = FT_ORIENTATION_TRUETYPE, + FT_ORIENTATION_FILL_LEFT = FT_ORIENTATION_POSTSCRIPT, + FT_ORIENTATION_NONE + + } FT_Orientation; + + + /************************************************************************** + * + * @function: + * FT_Outline_Get_Orientation + * + * @description: + * This function analyzes a glyph outline and tries to compute its fill + * orientation (see @FT_Orientation). This is done by integrating the + * total area covered by the outline. The positive integral corresponds + * to the clockwise orientation and @FT_ORIENTATION_POSTSCRIPT is + * returned. The negative integral corresponds to the counter-clockwise + * orientation and @FT_ORIENTATION_TRUETYPE is returned. + * + * Note that this will return @FT_ORIENTATION_TRUETYPE for empty + * outlines. + * + * @input: + * outline :: + * A handle to the source outline. + * + * @return: + * The orientation. + * + */ + FT_EXPORT( FT_Orientation ) + FT_Outline_Get_Orientation( FT_Outline* outline ); + + + /* */ + + +FT_END_HEADER + +#endif /* FTOUTLN_H_ */ + + +/* END */ + + +/* Local Variables: */ +/* coding: utf-8 */ +/* End: */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftparams.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftparams.h new file mode 100644 index 00000000..43bf69c2 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftparams.h @@ -0,0 +1,218 @@ +/**************************************************************************** + * + * ftparams.h + * + * FreeType API for possible FT_Parameter tags (specification only). + * + * Copyright (C) 2017-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTPARAMS_H_ +#define FTPARAMS_H_ + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * parameter_tags + * + * @title: + * Parameter Tags + * + * @abstract: + * Macros for driver property and font loading parameter tags. + * + * @description: + * This section contains macros for the @FT_Parameter structure that are + * used with various functions to activate some special functionality or + * different behaviour of various components of FreeType. + * + */ + + + /************************************************************************** + * + * @enum: + * FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY + * + * @description: + * A tag for @FT_Parameter to make @FT_Open_Face ignore typographic + * family names in the 'name' table (introduced in OpenType version 1.4). + * Use this for backward compatibility with legacy systems that have a + * four-faces-per-family restriction. + * + * @since: + * 2.8 + * + */ +#define FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY \ + FT_MAKE_TAG( 'i', 'g', 'p', 'f' ) + + + /* this constant is deprecated */ +#define FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY \ + FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY + + + /************************************************************************** + * + * @enum: + * FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY + * + * @description: + * A tag for @FT_Parameter to make @FT_Open_Face ignore typographic + * subfamily names in the 'name' table (introduced in OpenType version + * 1.4). Use this for backward compatibility with legacy systems that + * have a four-faces-per-family restriction. + * + * @since: + * 2.8 + * + */ +#define FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY \ + FT_MAKE_TAG( 'i', 'g', 'p', 's' ) + + + /* this constant is deprecated */ +#define FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY \ + FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY + + + /************************************************************************** + * + * @enum: + * FT_PARAM_TAG_INCREMENTAL + * + * @description: + * An @FT_Parameter tag to be used with @FT_Open_Face to indicate + * incremental glyph loading. + * + */ +#define FT_PARAM_TAG_INCREMENTAL \ + FT_MAKE_TAG( 'i', 'n', 'c', 'r' ) + + + /************************************************************************** + * + * @enum: + * FT_PARAM_TAG_IGNORE_SBIX + * + * @description: + * A tag for @FT_Parameter to make @FT_Open_Face ignore an 'sbix' table + * while loading a font. Use this if @FT_FACE_FLAG_SBIX is set and you + * want to access the outline glyphs in the font. + * + */ +#define FT_PARAM_TAG_IGNORE_SBIX \ + FT_MAKE_TAG( 'i', 's', 'b', 'x' ) + + + /************************************************************************** + * + * @enum: + * FT_PARAM_TAG_LCD_FILTER_WEIGHTS + * + * @description: + * An @FT_Parameter tag to be used with @FT_Face_Properties. The + * corresponding argument specifies the five LCD filter weights for a + * given face (if using @FT_LOAD_TARGET_LCD, for example), overriding the + * global default values or the values set up with + * @FT_Library_SetLcdFilterWeights. + * + * @since: + * 2.8 + * + */ +#define FT_PARAM_TAG_LCD_FILTER_WEIGHTS \ + FT_MAKE_TAG( 'l', 'c', 'd', 'f' ) + + + /************************************************************************** + * + * @enum: + * FT_PARAM_TAG_RANDOM_SEED + * + * @description: + * An @FT_Parameter tag to be used with @FT_Face_Properties. The + * corresponding 32bit signed integer argument overrides the font + * driver's random seed value with a face-specific one; see @random-seed. + * + * @since: + * 2.8 + * + */ +#define FT_PARAM_TAG_RANDOM_SEED \ + FT_MAKE_TAG( 's', 'e', 'e', 'd' ) + + + /************************************************************************** + * + * @enum: + * FT_PARAM_TAG_STEM_DARKENING + * + * @description: + * An @FT_Parameter tag to be used with @FT_Face_Properties. The + * corresponding Boolean argument specifies whether to apply stem + * darkening, overriding the global default values or the values set up + * with @FT_Property_Set (see @no-stem-darkening). + * + * This is a passive setting that only takes effect if the font driver or + * autohinter honors it, which the CFF, Type~1, and CID drivers always + * do, but the autohinter only in 'light' hinting mode (as of version + * 2.9). + * + * @since: + * 2.8 + * + */ +#define FT_PARAM_TAG_STEM_DARKENING \ + FT_MAKE_TAG( 'd', 'a', 'r', 'k' ) + + + /************************************************************************** + * + * @enum: + * FT_PARAM_TAG_UNPATENTED_HINTING + * + * @description: + * Deprecated, no effect. + * + * Previously: A constant used as the tag of an @FT_Parameter structure + * to indicate that unpatented methods only should be used by the + * TrueType bytecode interpreter for a typeface opened by @FT_Open_Face. + * + */ +#define FT_PARAM_TAG_UNPATENTED_HINTING \ + FT_MAKE_TAG( 'u', 'n', 'p', 'a' ) + + + /* */ + + +FT_END_HEADER + + +#endif /* FTPARAMS_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftpfr.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftpfr.h new file mode 100644 index 00000000..1a712b95 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftpfr.h @@ -0,0 +1,179 @@ +/**************************************************************************** + * + * ftpfr.h + * + * FreeType API for accessing PFR-specific data (specification only). + * + * Copyright (C) 2002-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTPFR_H_ +#define FTPFR_H_ + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * pfr_fonts + * + * @title: + * PFR Fonts + * + * @abstract: + * PFR/TrueDoc-specific API. + * + * @description: + * This section contains the declaration of PFR-specific functions. + * + */ + + + /************************************************************************** + * + * @function: + * FT_Get_PFR_Metrics + * + * @description: + * Return the outline and metrics resolutions of a given PFR face. + * + * @input: + * face :: + * Handle to the input face. It can be a non-PFR face. + * + * @output: + * aoutline_resolution :: + * Outline resolution. This is equivalent to `face->units_per_EM` for + * non-PFR fonts. Optional (parameter can be `NULL`). + * + * ametrics_resolution :: + * Metrics resolution. This is equivalent to `outline_resolution` for + * non-PFR fonts. Optional (parameter can be `NULL`). + * + * ametrics_x_scale :: + * A 16.16 fixed-point number used to scale distance expressed in + * metrics units to device subpixels. This is equivalent to + * `face->size->x_scale`, but for metrics only. Optional (parameter + * can be `NULL`). + * + * ametrics_y_scale :: + * Same as `ametrics_x_scale` but for the vertical direction. + * optional (parameter can be `NULL`). + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * If the input face is not a PFR, this function will return an error. + * However, in all cases, it will return valid values. + */ + FT_EXPORT( FT_Error ) + FT_Get_PFR_Metrics( FT_Face face, + FT_UInt *aoutline_resolution, + FT_UInt *ametrics_resolution, + FT_Fixed *ametrics_x_scale, + FT_Fixed *ametrics_y_scale ); + + + /************************************************************************** + * + * @function: + * FT_Get_PFR_Kerning + * + * @description: + * Return the kerning pair corresponding to two glyphs in a PFR face. + * The distance is expressed in metrics units, unlike the result of + * @FT_Get_Kerning. + * + * @input: + * face :: + * A handle to the input face. + * + * left :: + * Index of the left glyph. + * + * right :: + * Index of the right glyph. + * + * @output: + * avector :: + * A kerning vector. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function always return distances in original PFR metrics units. + * This is unlike @FT_Get_Kerning with the @FT_KERNING_UNSCALED mode, + * which always returns distances converted to outline units. + * + * You can use the value of the `x_scale` and `y_scale` parameters + * returned by @FT_Get_PFR_Metrics to scale these to device subpixels. + */ + FT_EXPORT( FT_Error ) + FT_Get_PFR_Kerning( FT_Face face, + FT_UInt left, + FT_UInt right, + FT_Vector *avector ); + + + /************************************************************************** + * + * @function: + * FT_Get_PFR_Advance + * + * @description: + * Return a given glyph advance, expressed in original metrics units, + * from a PFR font. + * + * @input: + * face :: + * A handle to the input face. + * + * gindex :: + * The glyph index. + * + * @output: + * aadvance :: + * The glyph advance in metrics units. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * You can use the `x_scale` or `y_scale` results of @FT_Get_PFR_Metrics + * to convert the advance to device subpixels (i.e., 1/64 of pixels). + */ + FT_EXPORT( FT_Error ) + FT_Get_PFR_Advance( FT_Face face, + FT_UInt gindex, + FT_Pos *aadvance ); + + /* */ + + +FT_END_HEADER + +#endif /* FTPFR_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftrender.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftrender.h new file mode 100644 index 00000000..dc5018a1 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftrender.h @@ -0,0 +1,244 @@ +/**************************************************************************** + * + * ftrender.h + * + * FreeType renderer modules public interface (specification). + * + * Copyright (C) 1996-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTRENDER_H_ +#define FTRENDER_H_ + + +#include +#include + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * module_management + * + */ + + + /* create a new glyph object */ + typedef FT_Error + (*FT_Glyph_InitFunc)( FT_Glyph glyph, + FT_GlyphSlot slot ); + + /* destroys a given glyph object */ + typedef void + (*FT_Glyph_DoneFunc)( FT_Glyph glyph ); + + typedef void + (*FT_Glyph_TransformFunc)( FT_Glyph glyph, + const FT_Matrix* matrix, + const FT_Vector* delta ); + + typedef void + (*FT_Glyph_GetBBoxFunc)( FT_Glyph glyph, + FT_BBox* abbox ); + + typedef FT_Error + (*FT_Glyph_CopyFunc)( FT_Glyph source, + FT_Glyph target ); + + typedef FT_Error + (*FT_Glyph_PrepareFunc)( FT_Glyph glyph, + FT_GlyphSlot slot ); + +/* deprecated */ +#define FT_Glyph_Init_Func FT_Glyph_InitFunc +#define FT_Glyph_Done_Func FT_Glyph_DoneFunc +#define FT_Glyph_Transform_Func FT_Glyph_TransformFunc +#define FT_Glyph_BBox_Func FT_Glyph_GetBBoxFunc +#define FT_Glyph_Copy_Func FT_Glyph_CopyFunc +#define FT_Glyph_Prepare_Func FT_Glyph_PrepareFunc + + + struct FT_Glyph_Class_ + { + FT_Long glyph_size; + FT_Glyph_Format glyph_format; + + FT_Glyph_InitFunc glyph_init; + FT_Glyph_DoneFunc glyph_done; + FT_Glyph_CopyFunc glyph_copy; + FT_Glyph_TransformFunc glyph_transform; + FT_Glyph_GetBBoxFunc glyph_bbox; + FT_Glyph_PrepareFunc glyph_prepare; + }; + + + typedef FT_Error + (*FT_Renderer_RenderFunc)( FT_Renderer renderer, + FT_GlyphSlot slot, + FT_Render_Mode mode, + const FT_Vector* origin ); + + typedef FT_Error + (*FT_Renderer_TransformFunc)( FT_Renderer renderer, + FT_GlyphSlot slot, + const FT_Matrix* matrix, + const FT_Vector* delta ); + + + typedef void + (*FT_Renderer_GetCBoxFunc)( FT_Renderer renderer, + FT_GlyphSlot slot, + FT_BBox* cbox ); + + + typedef FT_Error + (*FT_Renderer_SetModeFunc)( FT_Renderer renderer, + FT_ULong mode_tag, + FT_Pointer mode_ptr ); + +/* deprecated identifiers */ +#define FTRenderer_render FT_Renderer_RenderFunc +#define FTRenderer_transform FT_Renderer_TransformFunc +#define FTRenderer_getCBox FT_Renderer_GetCBoxFunc +#define FTRenderer_setMode FT_Renderer_SetModeFunc + + + /************************************************************************** + * + * @struct: + * FT_Renderer_Class + * + * @description: + * The renderer module class descriptor. + * + * @fields: + * root :: + * The root @FT_Module_Class fields. + * + * glyph_format :: + * The glyph image format this renderer handles. + * + * render_glyph :: + * A method used to render the image that is in a given glyph slot into + * a bitmap. + * + * transform_glyph :: + * A method used to transform the image that is in a given glyph slot. + * + * get_glyph_cbox :: + * A method used to access the glyph's cbox. + * + * set_mode :: + * A method used to pass additional parameters. + * + * raster_class :: + * For @FT_GLYPH_FORMAT_OUTLINE renderers only. This is a pointer to + * its raster's class. + */ + typedef struct FT_Renderer_Class_ + { + FT_Module_Class root; + + FT_Glyph_Format glyph_format; + + FT_Renderer_RenderFunc render_glyph; + FT_Renderer_TransformFunc transform_glyph; + FT_Renderer_GetCBoxFunc get_glyph_cbox; + FT_Renderer_SetModeFunc set_mode; + + const FT_Raster_Funcs* raster_class; + + } FT_Renderer_Class; + + + /************************************************************************** + * + * @function: + * FT_Get_Renderer + * + * @description: + * Retrieve the current renderer for a given glyph format. + * + * @input: + * library :: + * A handle to the library object. + * + * format :: + * The glyph format. + * + * @return: + * A renderer handle. 0~if none found. + * + * @note: + * An error will be returned if a module already exists by that name, or + * if the module requires a version of FreeType that is too great. + * + * To add a new renderer, simply use @FT_Add_Module. To retrieve a + * renderer by its name, use @FT_Get_Module. + */ + FT_EXPORT( FT_Renderer ) + FT_Get_Renderer( FT_Library library, + FT_Glyph_Format format ); + + + /************************************************************************** + * + * @function: + * FT_Set_Renderer + * + * @description: + * Set the current renderer to use, and set additional mode. + * + * @inout: + * library :: + * A handle to the library object. + * + * @input: + * renderer :: + * A handle to the renderer object. + * + * num_params :: + * The number of additional parameters. + * + * parameters :: + * Additional parameters. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * In case of success, the renderer will be used to convert glyph images + * in the renderer's known format into bitmaps. + * + * This doesn't change the current renderer for other formats. + * + * Currently, no FreeType renderer module uses `parameters`; you should + * thus always pass `NULL` as the value. + */ + FT_EXPORT( FT_Error ) + FT_Set_Renderer( FT_Library library, + FT_Renderer renderer, + FT_UInt num_params, + FT_Parameter* parameters ); + + /* */ + + +FT_END_HEADER + +#endif /* FTRENDER_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftsizes.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftsizes.h new file mode 100644 index 00000000..4ef5c795 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftsizes.h @@ -0,0 +1,159 @@ +/**************************************************************************** + * + * ftsizes.h + * + * FreeType size objects management (specification). + * + * Copyright (C) 1996-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + + /************************************************************************** + * + * Typical application would normally not need to use these functions. + * However, they have been placed in a public API for the rare cases where + * they are needed. + * + */ + + +#ifndef FTSIZES_H_ +#define FTSIZES_H_ + + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * sizes_management + * + * @title: + * Size Management + * + * @abstract: + * Managing multiple sizes per face. + * + * @description: + * When creating a new face object (e.g., with @FT_New_Face), an @FT_Size + * object is automatically created and used to store all pixel-size + * dependent information, available in the `face->size` field. + * + * It is however possible to create more sizes for a given face, mostly + * in order to manage several character pixel sizes of the same font + * family and style. See @FT_New_Size and @FT_Done_Size. + * + * Note that @FT_Set_Pixel_Sizes and @FT_Set_Char_Size only modify the + * contents of the current 'active' size; you thus need to use + * @FT_Activate_Size to change it. + * + * 99% of applications won't need the functions provided here, especially + * if they use the caching sub-system, so be cautious when using these. + * + */ + + + /************************************************************************** + * + * @function: + * FT_New_Size + * + * @description: + * Create a new size object from a given face object. + * + * @input: + * face :: + * A handle to a parent face object. + * + * @output: + * asize :: + * A handle to a new size object. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * You need to call @FT_Activate_Size in order to select the new size for + * upcoming calls to @FT_Set_Pixel_Sizes, @FT_Set_Char_Size, + * @FT_Load_Glyph, @FT_Load_Char, etc. + */ + FT_EXPORT( FT_Error ) + FT_New_Size( FT_Face face, + FT_Size* size ); + + + /************************************************************************** + * + * @function: + * FT_Done_Size + * + * @description: + * Discard a given size object. Note that @FT_Done_Face automatically + * discards all size objects allocated with @FT_New_Size. + * + * @input: + * size :: + * A handle to a target size object. + * + * @return: + * FreeType error code. 0~means success. + */ + FT_EXPORT( FT_Error ) + FT_Done_Size( FT_Size size ); + + + /************************************************************************** + * + * @function: + * FT_Activate_Size + * + * @description: + * Even though it is possible to create several size objects for a given + * face (see @FT_New_Size for details), functions like @FT_Load_Glyph or + * @FT_Load_Char only use the one that has been activated last to + * determine the 'current character pixel size'. + * + * This function can be used to 'activate' a previously created size + * object. + * + * @input: + * size :: + * A handle to a target size object. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * If `face` is the size's parent face object, this function changes the + * value of `face->size` to the input size handle. + */ + FT_EXPORT( FT_Error ) + FT_Activate_Size( FT_Size size ); + + /* */ + + +FT_END_HEADER + +#endif /* FTSIZES_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftsnames.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftsnames.h new file mode 100644 index 00000000..d5d5cd93 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftsnames.h @@ -0,0 +1,272 @@ +/**************************************************************************** + * + * ftsnames.h + * + * Simple interface to access SFNT 'name' tables (which are used + * to hold font names, copyright info, notices, etc.) (specification). + * + * This is _not_ used to retrieve glyph names! + * + * Copyright (C) 1996-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTSNAMES_H_ +#define FTSNAMES_H_ + + +#include +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * sfnt_names + * + * @title: + * SFNT Names + * + * @abstract: + * Access the names embedded in TrueType and OpenType files. + * + * @description: + * The TrueType and OpenType specifications allow the inclusion of a + * special names table ('name') in font files. This table contains + * textual (and internationalized) information regarding the font, like + * family name, copyright, version, etc. + * + * The definitions below are used to access them if available. + * + * Note that this has nothing to do with glyph names! + * + */ + + + /************************************************************************** + * + * @struct: + * FT_SfntName + * + * @description: + * A structure used to model an SFNT 'name' table entry. + * + * @fields: + * platform_id :: + * The platform ID for `string`. See @TT_PLATFORM_XXX for possible + * values. + * + * encoding_id :: + * The encoding ID for `string`. See @TT_APPLE_ID_XXX, @TT_MAC_ID_XXX, + * @TT_ISO_ID_XXX, @TT_MS_ID_XXX, and @TT_ADOBE_ID_XXX for possible + * values. + * + * language_id :: + * The language ID for `string`. See @TT_MAC_LANGID_XXX and + * @TT_MS_LANGID_XXX for possible values. + * + * Registered OpenType values for `language_id` are always smaller than + * 0x8000; values equal or larger than 0x8000 usually indicate a + * language tag string (introduced in OpenType version 1.6). Use + * function @FT_Get_Sfnt_LangTag with `language_id` as its argument to + * retrieve the associated language tag. + * + * name_id :: + * An identifier for `string`. See @TT_NAME_ID_XXX for possible + * values. + * + * string :: + * The 'name' string. Note that its format differs depending on the + * (platform,encoding) pair, being either a string of bytes (without a + * terminating `NULL` byte) or containing UTF-16BE entities. + * + * string_len :: + * The length of `string` in bytes. + * + * @note: + * Please refer to the TrueType or OpenType specification for more + * details. + */ + typedef struct FT_SfntName_ + { + FT_UShort platform_id; + FT_UShort encoding_id; + FT_UShort language_id; + FT_UShort name_id; + + FT_Byte* string; /* this string is *not* null-terminated! */ + FT_UInt string_len; /* in bytes */ + + } FT_SfntName; + + + /************************************************************************** + * + * @function: + * FT_Get_Sfnt_Name_Count + * + * @description: + * Retrieve the number of name strings in the SFNT 'name' table. + * + * @input: + * face :: + * A handle to the source face. + * + * @return: + * The number of strings in the 'name' table. + * + * @note: + * This function always returns an error if the config macro + * `TT_CONFIG_OPTION_SFNT_NAMES` is not defined in `ftoption.h`. + */ + FT_EXPORT( FT_UInt ) + FT_Get_Sfnt_Name_Count( FT_Face face ); + + + /************************************************************************** + * + * @function: + * FT_Get_Sfnt_Name + * + * @description: + * Retrieve a string of the SFNT 'name' table for a given index. + * + * @input: + * face :: + * A handle to the source face. + * + * idx :: + * The index of the 'name' string. + * + * @output: + * aname :: + * The indexed @FT_SfntName structure. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The `string` array returned in the `aname` structure is not + * null-terminated. Note that you don't have to deallocate `string` by + * yourself; FreeType takes care of it if you call @FT_Done_Face. + * + * Use @FT_Get_Sfnt_Name_Count to get the total number of available + * 'name' table entries, then do a loop until you get the right platform, + * encoding, and name ID. + * + * 'name' table format~1 entries can use language tags also, see + * @FT_Get_Sfnt_LangTag. + * + * This function always returns an error if the config macro + * `TT_CONFIG_OPTION_SFNT_NAMES` is not defined in `ftoption.h`. + */ + FT_EXPORT( FT_Error ) + FT_Get_Sfnt_Name( FT_Face face, + FT_UInt idx, + FT_SfntName *aname ); + + + /************************************************************************** + * + * @struct: + * FT_SfntLangTag + * + * @description: + * A structure to model a language tag entry from an SFNT 'name' table. + * + * @fields: + * string :: + * The language tag string, encoded in UTF-16BE (without trailing + * `NULL` bytes). + * + * string_len :: + * The length of `string` in **bytes**. + * + * @note: + * Please refer to the TrueType or OpenType specification for more + * details. + * + * @since: + * 2.8 + */ + typedef struct FT_SfntLangTag_ + { + FT_Byte* string; /* this string is *not* null-terminated! */ + FT_UInt string_len; /* in bytes */ + + } FT_SfntLangTag; + + + /************************************************************************** + * + * @function: + * FT_Get_Sfnt_LangTag + * + * @description: + * Retrieve the language tag associated with a language ID of an SFNT + * 'name' table entry. + * + * @input: + * face :: + * A handle to the source face. + * + * langID :: + * The language ID, as returned by @FT_Get_Sfnt_Name. This is always a + * value larger than 0x8000. + * + * @output: + * alangTag :: + * The language tag associated with the 'name' table entry's language + * ID. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The `string` array returned in the `alangTag` structure is not + * null-terminated. Note that you don't have to deallocate `string` by + * yourself; FreeType takes care of it if you call @FT_Done_Face. + * + * Only 'name' table format~1 supports language tags. For format~0 + * tables, this function always returns FT_Err_Invalid_Table. For + * invalid format~1 language ID values, FT_Err_Invalid_Argument is + * returned. + * + * This function always returns an error if the config macro + * `TT_CONFIG_OPTION_SFNT_NAMES` is not defined in `ftoption.h`. + * + * @since: + * 2.8 + */ + FT_EXPORT( FT_Error ) + FT_Get_Sfnt_LangTag( FT_Face face, + FT_UInt langID, + FT_SfntLangTag *alangTag ); + + + /* */ + + +FT_END_HEADER + +#endif /* FTSNAMES_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftstroke.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftstroke.h new file mode 100644 index 00000000..41626dc9 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftstroke.h @@ -0,0 +1,773 @@ +/**************************************************************************** + * + * ftstroke.h + * + * FreeType path stroker (specification). + * + * Copyright (C) 2002-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTSTROKE_H_ +#define FTSTROKE_H_ + +#include +#include + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * glyph_stroker + * + * @title: + * Glyph Stroker + * + * @abstract: + * Generating bordered and stroked glyphs. + * + * @description: + * This component generates stroked outlines of a given vectorial glyph. + * It also allows you to retrieve the 'outside' and/or the 'inside' + * borders of the stroke. + * + * This can be useful to generate 'bordered' glyph, i.e., glyphs + * displayed with a colored (and anti-aliased) border around their + * shape. + * + * @order: + * FT_Stroker + * + * FT_Stroker_LineJoin + * FT_Stroker_LineCap + * FT_StrokerBorder + * + * FT_Outline_GetInsideBorder + * FT_Outline_GetOutsideBorder + * + * FT_Glyph_Stroke + * FT_Glyph_StrokeBorder + * + * FT_Stroker_New + * FT_Stroker_Set + * FT_Stroker_Rewind + * FT_Stroker_ParseOutline + * FT_Stroker_Done + * + * FT_Stroker_BeginSubPath + * FT_Stroker_EndSubPath + * + * FT_Stroker_LineTo + * FT_Stroker_ConicTo + * FT_Stroker_CubicTo + * + * FT_Stroker_GetBorderCounts + * FT_Stroker_ExportBorder + * FT_Stroker_GetCounts + * FT_Stroker_Export + * + */ + + + /************************************************************************** + * + * @type: + * FT_Stroker + * + * @description: + * Opaque handle to a path stroker object. + */ + typedef struct FT_StrokerRec_* FT_Stroker; + + + /************************************************************************** + * + * @enum: + * FT_Stroker_LineJoin + * + * @description: + * These values determine how two joining lines are rendered in a + * stroker. + * + * @values: + * FT_STROKER_LINEJOIN_ROUND :: + * Used to render rounded line joins. Circular arcs are used to join + * two lines smoothly. + * + * FT_STROKER_LINEJOIN_BEVEL :: + * Used to render beveled line joins. The outer corner of the joined + * lines is filled by enclosing the triangular region of the corner + * with a straight line between the outer corners of each stroke. + * + * FT_STROKER_LINEJOIN_MITER_FIXED :: + * Used to render mitered line joins, with fixed bevels if the miter + * limit is exceeded. The outer edges of the strokes for the two + * segments are extended until they meet at an angle. A bevel join + * (see above) is used if the segments meet at too sharp an angle and + * the outer edges meet beyond a distance corresponding to the meter + * limit. This prevents long spikes being created. + * `FT_STROKER_LINEJOIN_MITER_FIXED` generates a miter line join as + * used in PostScript and PDF. + * + * FT_STROKER_LINEJOIN_MITER_VARIABLE :: + * FT_STROKER_LINEJOIN_MITER :: + * Used to render mitered line joins, with variable bevels if the miter + * limit is exceeded. The intersection of the strokes is clipped + * perpendicularly to the bisector, at a distance corresponding to + * the miter limit. This prevents long spikes being created. + * `FT_STROKER_LINEJOIN_MITER_VARIABLE` generates a mitered line join + * as used in XPS. `FT_STROKER_LINEJOIN_MITER` is an alias for + * `FT_STROKER_LINEJOIN_MITER_VARIABLE`, retained for backward + * compatibility. + */ + typedef enum FT_Stroker_LineJoin_ + { + FT_STROKER_LINEJOIN_ROUND = 0, + FT_STROKER_LINEJOIN_BEVEL = 1, + FT_STROKER_LINEJOIN_MITER_VARIABLE = 2, + FT_STROKER_LINEJOIN_MITER = FT_STROKER_LINEJOIN_MITER_VARIABLE, + FT_STROKER_LINEJOIN_MITER_FIXED = 3 + + } FT_Stroker_LineJoin; + + + /************************************************************************** + * + * @enum: + * FT_Stroker_LineCap + * + * @description: + * These values determine how the end of opened sub-paths are rendered in + * a stroke. + * + * @values: + * FT_STROKER_LINECAP_BUTT :: + * The end of lines is rendered as a full stop on the last point + * itself. + * + * FT_STROKER_LINECAP_ROUND :: + * The end of lines is rendered as a half-circle around the last point. + * + * FT_STROKER_LINECAP_SQUARE :: + * The end of lines is rendered as a square around the last point. + */ + typedef enum FT_Stroker_LineCap_ + { + FT_STROKER_LINECAP_BUTT = 0, + FT_STROKER_LINECAP_ROUND, + FT_STROKER_LINECAP_SQUARE + + } FT_Stroker_LineCap; + + + /************************************************************************** + * + * @enum: + * FT_StrokerBorder + * + * @description: + * These values are used to select a given stroke border in + * @FT_Stroker_GetBorderCounts and @FT_Stroker_ExportBorder. + * + * @values: + * FT_STROKER_BORDER_LEFT :: + * Select the left border, relative to the drawing direction. + * + * FT_STROKER_BORDER_RIGHT :: + * Select the right border, relative to the drawing direction. + * + * @note: + * Applications are generally interested in the 'inside' and 'outside' + * borders. However, there is no direct mapping between these and the + * 'left' and 'right' ones, since this really depends on the glyph's + * drawing orientation, which varies between font formats. + * + * You can however use @FT_Outline_GetInsideBorder and + * @FT_Outline_GetOutsideBorder to get these. + */ + typedef enum FT_StrokerBorder_ + { + FT_STROKER_BORDER_LEFT = 0, + FT_STROKER_BORDER_RIGHT + + } FT_StrokerBorder; + + + /************************************************************************** + * + * @function: + * FT_Outline_GetInsideBorder + * + * @description: + * Retrieve the @FT_StrokerBorder value corresponding to the 'inside' + * borders of a given outline. + * + * @input: + * outline :: + * The source outline handle. + * + * @return: + * The border index. @FT_STROKER_BORDER_RIGHT for empty or invalid + * outlines. + */ + FT_EXPORT( FT_StrokerBorder ) + FT_Outline_GetInsideBorder( FT_Outline* outline ); + + + /************************************************************************** + * + * @function: + * FT_Outline_GetOutsideBorder + * + * @description: + * Retrieve the @FT_StrokerBorder value corresponding to the 'outside' + * borders of a given outline. + * + * @input: + * outline :: + * The source outline handle. + * + * @return: + * The border index. @FT_STROKER_BORDER_LEFT for empty or invalid + * outlines. + */ + FT_EXPORT( FT_StrokerBorder ) + FT_Outline_GetOutsideBorder( FT_Outline* outline ); + + + /************************************************************************** + * + * @function: + * FT_Stroker_New + * + * @description: + * Create a new stroker object. + * + * @input: + * library :: + * FreeType library handle. + * + * @output: + * astroker :: + * A new stroker object handle. `NULL` in case of error. + * + * @return: + * FreeType error code. 0~means success. + */ + FT_EXPORT( FT_Error ) + FT_Stroker_New( FT_Library library, + FT_Stroker *astroker ); + + + /************************************************************************** + * + * @function: + * FT_Stroker_Set + * + * @description: + * Reset a stroker object's attributes. + * + * @input: + * stroker :: + * The target stroker handle. + * + * radius :: + * The border radius. + * + * line_cap :: + * The line cap style. + * + * line_join :: + * The line join style. + * + * miter_limit :: + * The maximum reciprocal sine of half-angle at the miter join, + * expressed as 16.16 fixed-point value. + * + * @note: + * The `radius` is expressed in the same units as the outline + * coordinates. + * + * The `miter_limit` multiplied by the `radius` gives the maximum size + * of a miter spike, at which it is clipped for + * @FT_STROKER_LINEJOIN_MITER_VARIABLE or replaced with a bevel join for + * @FT_STROKER_LINEJOIN_MITER_FIXED. + * + * This function calls @FT_Stroker_Rewind automatically. + */ + FT_EXPORT( void ) + FT_Stroker_Set( FT_Stroker stroker, + FT_Fixed radius, + FT_Stroker_LineCap line_cap, + FT_Stroker_LineJoin line_join, + FT_Fixed miter_limit ); + + + /************************************************************************** + * + * @function: + * FT_Stroker_Rewind + * + * @description: + * Reset a stroker object without changing its attributes. You should + * call this function before beginning a new series of calls to + * @FT_Stroker_BeginSubPath or @FT_Stroker_EndSubPath. + * + * @input: + * stroker :: + * The target stroker handle. + */ + FT_EXPORT( void ) + FT_Stroker_Rewind( FT_Stroker stroker ); + + + /************************************************************************** + * + * @function: + * FT_Stroker_ParseOutline + * + * @description: + * A convenience function used to parse a whole outline with the stroker. + * The resulting outline(s) can be retrieved later by functions like + * @FT_Stroker_GetCounts and @FT_Stroker_Export. + * + * @input: + * stroker :: + * The target stroker handle. + * + * outline :: + * The source outline. + * + * opened :: + * A boolean. If~1, the outline is treated as an open path instead of + * a closed one. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * If `opened` is~0 (the default), the outline is treated as a closed + * path, and the stroker generates two distinct 'border' outlines. + * + * If `opened` is~1, the outline is processed as an open path, and the + * stroker generates a single 'stroke' outline. + * + * This function calls @FT_Stroker_Rewind automatically. + */ + FT_EXPORT( FT_Error ) + FT_Stroker_ParseOutline( FT_Stroker stroker, + FT_Outline* outline, + FT_Bool opened ); + + + /************************************************************************** + * + * @function: + * FT_Stroker_BeginSubPath + * + * @description: + * Start a new sub-path in the stroker. + * + * @input: + * stroker :: + * The target stroker handle. + * + * to :: + * A pointer to the start vector. + * + * open :: + * A boolean. If~1, the sub-path is treated as an open one. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function is useful when you need to stroke a path that is not + * stored as an @FT_Outline object. + */ + FT_EXPORT( FT_Error ) + FT_Stroker_BeginSubPath( FT_Stroker stroker, + FT_Vector* to, + FT_Bool open ); + + + /************************************************************************** + * + * @function: + * FT_Stroker_EndSubPath + * + * @description: + * Close the current sub-path in the stroker. + * + * @input: + * stroker :: + * The target stroker handle. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * You should call this function after @FT_Stroker_BeginSubPath. If the + * subpath was not 'opened', this function 'draws' a single line segment + * to the start position when needed. + */ + FT_EXPORT( FT_Error ) + FT_Stroker_EndSubPath( FT_Stroker stroker ); + + + /************************************************************************** + * + * @function: + * FT_Stroker_LineTo + * + * @description: + * 'Draw' a single line segment in the stroker's current sub-path, from + * the last position. + * + * @input: + * stroker :: + * The target stroker handle. + * + * to :: + * A pointer to the destination point. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * You should call this function between @FT_Stroker_BeginSubPath and + * @FT_Stroker_EndSubPath. + */ + FT_EXPORT( FT_Error ) + FT_Stroker_LineTo( FT_Stroker stroker, + FT_Vector* to ); + + + /************************************************************************** + * + * @function: + * FT_Stroker_ConicTo + * + * @description: + * 'Draw' a single quadratic Bezier in the stroker's current sub-path, + * from the last position. + * + * @input: + * stroker :: + * The target stroker handle. + * + * control :: + * A pointer to a Bezier control point. + * + * to :: + * A pointer to the destination point. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * You should call this function between @FT_Stroker_BeginSubPath and + * @FT_Stroker_EndSubPath. + */ + FT_EXPORT( FT_Error ) + FT_Stroker_ConicTo( FT_Stroker stroker, + FT_Vector* control, + FT_Vector* to ); + + + /************************************************************************** + * + * @function: + * FT_Stroker_CubicTo + * + * @description: + * 'Draw' a single cubic Bezier in the stroker's current sub-path, from + * the last position. + * + * @input: + * stroker :: + * The target stroker handle. + * + * control1 :: + * A pointer to the first Bezier control point. + * + * control2 :: + * A pointer to second Bezier control point. + * + * to :: + * A pointer to the destination point. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * You should call this function between @FT_Stroker_BeginSubPath and + * @FT_Stroker_EndSubPath. + */ + FT_EXPORT( FT_Error ) + FT_Stroker_CubicTo( FT_Stroker stroker, + FT_Vector* control1, + FT_Vector* control2, + FT_Vector* to ); + + + /************************************************************************** + * + * @function: + * FT_Stroker_GetBorderCounts + * + * @description: + * Call this function once you have finished parsing your paths with the + * stroker. It returns the number of points and contours necessary to + * export one of the 'border' or 'stroke' outlines generated by the + * stroker. + * + * @input: + * stroker :: + * The target stroker handle. + * + * border :: + * The border index. + * + * @output: + * anum_points :: + * The number of points. + * + * anum_contours :: + * The number of contours. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * When an outline, or a sub-path, is 'closed', the stroker generates two + * independent 'border' outlines, named 'left' and 'right'. + * + * When the outline, or a sub-path, is 'opened', the stroker merges the + * 'border' outlines with caps. The 'left' border receives all points, + * while the 'right' border becomes empty. + * + * Use the function @FT_Stroker_GetCounts instead if you want to retrieve + * the counts associated to both borders. + */ + FT_EXPORT( FT_Error ) + FT_Stroker_GetBorderCounts( FT_Stroker stroker, + FT_StrokerBorder border, + FT_UInt *anum_points, + FT_UInt *anum_contours ); + + + /************************************************************************** + * + * @function: + * FT_Stroker_ExportBorder + * + * @description: + * Call this function after @FT_Stroker_GetBorderCounts to export the + * corresponding border to your own @FT_Outline structure. + * + * Note that this function appends the border points and contours to your + * outline, but does not try to resize its arrays. + * + * @input: + * stroker :: + * The target stroker handle. + * + * border :: + * The border index. + * + * outline :: + * The target outline handle. + * + * @note: + * Always call this function after @FT_Stroker_GetBorderCounts to get + * sure that there is enough room in your @FT_Outline object to receive + * all new data. + * + * When an outline, or a sub-path, is 'closed', the stroker generates two + * independent 'border' outlines, named 'left' and 'right'. + * + * When the outline, or a sub-path, is 'opened', the stroker merges the + * 'border' outlines with caps. The 'left' border receives all points, + * while the 'right' border becomes empty. + * + * Use the function @FT_Stroker_Export instead if you want to retrieve + * all borders at once. + */ + FT_EXPORT( void ) + FT_Stroker_ExportBorder( FT_Stroker stroker, + FT_StrokerBorder border, + FT_Outline* outline ); + + + /************************************************************************** + * + * @function: + * FT_Stroker_GetCounts + * + * @description: + * Call this function once you have finished parsing your paths with the + * stroker. It returns the number of points and contours necessary to + * export all points/borders from the stroked outline/path. + * + * @input: + * stroker :: + * The target stroker handle. + * + * @output: + * anum_points :: + * The number of points. + * + * anum_contours :: + * The number of contours. + * + * @return: + * FreeType error code. 0~means success. + */ + FT_EXPORT( FT_Error ) + FT_Stroker_GetCounts( FT_Stroker stroker, + FT_UInt *anum_points, + FT_UInt *anum_contours ); + + + /************************************************************************** + * + * @function: + * FT_Stroker_Export + * + * @description: + * Call this function after @FT_Stroker_GetBorderCounts to export all + * borders to your own @FT_Outline structure. + * + * Note that this function appends the border points and contours to your + * outline, but does not try to resize its arrays. + * + * @input: + * stroker :: + * The target stroker handle. + * + * outline :: + * The target outline handle. + */ + FT_EXPORT( void ) + FT_Stroker_Export( FT_Stroker stroker, + FT_Outline* outline ); + + + /************************************************************************** + * + * @function: + * FT_Stroker_Done + * + * @description: + * Destroy a stroker object. + * + * @input: + * stroker :: + * A stroker handle. Can be `NULL`. + */ + FT_EXPORT( void ) + FT_Stroker_Done( FT_Stroker stroker ); + + + /************************************************************************** + * + * @function: + * FT_Glyph_Stroke + * + * @description: + * Stroke a given outline glyph object with a given stroker. + * + * @inout: + * pglyph :: + * Source glyph handle on input, new glyph handle on output. + * + * @input: + * stroker :: + * A stroker handle. + * + * destroy :: + * A Boolean. If~1, the source glyph object is destroyed on success. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The source glyph is untouched in case of error. + * + * Adding stroke may yield a significantly wider and taller glyph + * depending on how large of a radius was used to stroke the glyph. You + * may need to manually adjust horizontal and vertical advance amounts to + * account for this added size. + */ + FT_EXPORT( FT_Error ) + FT_Glyph_Stroke( FT_Glyph *pglyph, + FT_Stroker stroker, + FT_Bool destroy ); + + + /************************************************************************** + * + * @function: + * FT_Glyph_StrokeBorder + * + * @description: + * Stroke a given outline glyph object with a given stroker, but only + * return either its inside or outside border. + * + * @inout: + * pglyph :: + * Source glyph handle on input, new glyph handle on output. + * + * @input: + * stroker :: + * A stroker handle. + * + * inside :: + * A Boolean. If~1, return the inside border, otherwise the outside + * border. + * + * destroy :: + * A Boolean. If~1, the source glyph object is destroyed on success. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The source glyph is untouched in case of error. + * + * Adding stroke may yield a significantly wider and taller glyph + * depending on how large of a radius was used to stroke the glyph. You + * may need to manually adjust horizontal and vertical advance amounts to + * account for this added size. + */ + FT_EXPORT( FT_Error ) + FT_Glyph_StrokeBorder( FT_Glyph *pglyph, + FT_Stroker stroker, + FT_Bool inside, + FT_Bool destroy ); + + /* */ + +FT_END_HEADER + +#endif /* FTSTROKE_H_ */ + + +/* END */ + + +/* Local Variables: */ +/* coding: utf-8 */ +/* End: */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftsynth.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftsynth.h new file mode 100644 index 00000000..43081b6c --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftsynth.h @@ -0,0 +1,104 @@ +/**************************************************************************** + * + * ftsynth.h + * + * FreeType synthesizing code for emboldening and slanting + * (specification). + * + * Copyright (C) 2000-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /********* *********/ + /********* WARNING, THIS IS ALPHA CODE! THIS API *********/ + /********* IS DUE TO CHANGE UNTIL STRICTLY NOTIFIED BY THE *********/ + /********* FREETYPE DEVELOPMENT TEAM *********/ + /********* *********/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + + + /* Main reason for not lifting the functions in this module to a */ + /* 'standard' API is that the used parameters for emboldening and */ + /* slanting are not configurable. Consider the functions as a */ + /* code resource that should be copied into the application and */ + /* adapted to the particular needs. */ + + +#ifndef FTSYNTH_H_ +#define FTSYNTH_H_ + + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + /* Embolden a glyph by a 'reasonable' value (which is highly a matter of */ + /* taste). This function is actually a convenience function, providing */ + /* a wrapper for @FT_Outline_Embolden and @FT_Bitmap_Embolden. */ + /* */ + /* For emboldened outlines the height, width, and advance metrics are */ + /* increased by the strength of the emboldening -- this even affects */ + /* mono-width fonts! */ + /* */ + /* You can also call @FT_Outline_Get_CBox to get precise values. */ + FT_EXPORT( void ) + FT_GlyphSlot_Embolden( FT_GlyphSlot slot ); + + /* Precisely adjust the glyph weight either horizontally or vertically. */ + /* The `xdelta` and `ydelta` values are fractions of the face Em size */ + /* (in fixed-point format). Considering that a regular face would have */ + /* stem widths on the order of 0.1 Em, a delta of 0.05 (0x0CCC) should */ + /* be very noticeable. To increase or decrease the weight, use positive */ + /* or negative values, respectively. */ + FT_EXPORT( void ) + FT_GlyphSlot_AdjustWeight( FT_GlyphSlot slot, + FT_Fixed xdelta, + FT_Fixed ydelta ); + + + /* Slant an outline glyph to the right by about 12 degrees. */ + FT_EXPORT( void ) + FT_GlyphSlot_Oblique( FT_GlyphSlot slot ); + + /* Slant an outline glyph by a given sine of an angle. You can apply */ + /* slant along either x- or y-axis by choosing a corresponding non-zero */ + /* argument. If both slants are non-zero, some affine transformation */ + /* will result. */ + FT_EXPORT( void ) + FT_GlyphSlot_Slant( FT_GlyphSlot slot, + FT_Fixed xslant, + FT_Fixed yslant ); + + /* */ + + +FT_END_HEADER + +#endif /* FTSYNTH_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftsystem.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftsystem.h new file mode 100644 index 00000000..1eacb3af --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftsystem.h @@ -0,0 +1,350 @@ +/**************************************************************************** + * + * ftsystem.h + * + * FreeType low-level system interface definition (specification). + * + * Copyright (C) 1996-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTSYSTEM_H_ +#define FTSYSTEM_H_ + + + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * system_interface + * + * @title: + * System Interface + * + * @abstract: + * How FreeType manages memory and i/o. + * + * @description: + * This section contains various definitions related to memory management + * and i/o access. You need to understand this information if you want to + * use a custom memory manager or you own i/o streams. + * + */ + + + /************************************************************************** + * + * M E M O R Y M A N A G E M E N T + * + */ + + + /************************************************************************** + * + * @type: + * FT_Memory + * + * @description: + * A handle to a given memory manager object, defined with an + * @FT_MemoryRec structure. + * + */ + typedef struct FT_MemoryRec_* FT_Memory; + + + /************************************************************************** + * + * @functype: + * FT_Alloc_Func + * + * @description: + * A function used to allocate `size` bytes from `memory`. + * + * @input: + * memory :: + * A handle to the source memory manager. + * + * size :: + * The size in bytes to allocate. + * + * @return: + * Address of new memory block. 0~in case of failure. + * + */ + typedef void* + (*FT_Alloc_Func)( FT_Memory memory, + long size ); + + + /************************************************************************** + * + * @functype: + * FT_Free_Func + * + * @description: + * A function used to release a given block of memory. + * + * @input: + * memory :: + * A handle to the source memory manager. + * + * block :: + * The address of the target memory block. + * + */ + typedef void + (*FT_Free_Func)( FT_Memory memory, + void* block ); + + + /************************************************************************** + * + * @functype: + * FT_Realloc_Func + * + * @description: + * A function used to re-allocate a given block of memory. + * + * @input: + * memory :: + * A handle to the source memory manager. + * + * cur_size :: + * The block's current size in bytes. + * + * new_size :: + * The block's requested new size. + * + * block :: + * The block's current address. + * + * @return: + * New block address. 0~in case of memory shortage. + * + * @note: + * In case of error, the old block must still be available. + * + */ + typedef void* + (*FT_Realloc_Func)( FT_Memory memory, + long cur_size, + long new_size, + void* block ); + + + /************************************************************************** + * + * @struct: + * FT_MemoryRec + * + * @description: + * A structure used to describe a given memory manager to FreeType~2. + * + * @fields: + * user :: + * A generic typeless pointer for user data. + * + * alloc :: + * A pointer type to an allocation function. + * + * free :: + * A pointer type to an memory freeing function. + * + * realloc :: + * A pointer type to a reallocation function. + * + */ + struct FT_MemoryRec_ + { + void* user; + FT_Alloc_Func alloc; + FT_Free_Func free; + FT_Realloc_Func realloc; + }; + + + /************************************************************************** + * + * I / O M A N A G E M E N T + * + */ + + + /************************************************************************** + * + * @type: + * FT_Stream + * + * @description: + * A handle to an input stream. + * + * @also: + * See @FT_StreamRec for the publicly accessible fields of a given stream + * object. + * + */ + typedef struct FT_StreamRec_* FT_Stream; + + + /************************************************************************** + * + * @struct: + * FT_StreamDesc + * + * @description: + * A union type used to store either a long or a pointer. This is used + * to store a file descriptor or a `FILE*` in an input stream. + * + */ + typedef union FT_StreamDesc_ + { + long value; + void* pointer; + + } FT_StreamDesc; + + + /************************************************************************** + * + * @functype: + * FT_Stream_IoFunc + * + * @description: + * A function used to seek and read data from a given input stream. + * + * @input: + * stream :: + * A handle to the source stream. + * + * offset :: + * The offset from the start of the stream to seek to. + * + * buffer :: + * The address of the read buffer. + * + * count :: + * The number of bytes to read from the stream. + * + * @return: + * If count >~0, return the number of bytes effectively read by the + * stream (after seeking to `offset`). If count ==~0, return the status + * of the seek operation (non-zero indicates an error). + * + */ + typedef unsigned long + (*FT_Stream_IoFunc)( FT_Stream stream, + unsigned long offset, + unsigned char* buffer, + unsigned long count ); + + + /************************************************************************** + * + * @functype: + * FT_Stream_CloseFunc + * + * @description: + * A function used to close a given input stream. + * + * @input: + * stream :: + * A handle to the target stream. + * + */ + typedef void + (*FT_Stream_CloseFunc)( FT_Stream stream ); + + + /************************************************************************** + * + * @struct: + * FT_StreamRec + * + * @description: + * A structure used to describe an input stream. + * + * @input: + * base :: + * For memory-based streams, this is the address of the first stream + * byte in memory. This field should always be set to `NULL` for + * disk-based streams. + * + * size :: + * The stream size in bytes. + * + * In case of compressed streams where the size is unknown before + * actually doing the decompression, the value is set to 0x7FFFFFFF. + * (Note that this size value can occur for normal streams also; it is + * thus just a hint.) + * + * pos :: + * The current position within the stream. + * + * descriptor :: + * This field is a union that can hold an integer or a pointer. It is + * used by stream implementations to store file descriptors or `FILE*` + * pointers. + * + * pathname :: + * This field is completely ignored by FreeType. However, it is often + * useful during debugging to use it to store the stream's filename + * (where available). + * + * read :: + * The stream's input function. + * + * close :: + * The stream's close function. + * + * memory :: + * The memory manager to use to preload frames. This is set internally + * by FreeType and shouldn't be touched by stream implementations. + * + * cursor :: + * This field is set and used internally by FreeType when parsing + * frames. In particular, the `FT_GET_XXX` macros use this instead of + * the `pos` field. + * + * limit :: + * This field is set and used internally by FreeType when parsing + * frames. + * + */ + typedef struct FT_StreamRec_ + { + unsigned char* base; + unsigned long size; + unsigned long pos; + + FT_StreamDesc descriptor; + FT_StreamDesc pathname; + FT_Stream_IoFunc read; + FT_Stream_CloseFunc close; + + FT_Memory memory; + unsigned char* cursor; + unsigned char* limit; + + } FT_StreamRec; + + /* */ + + +FT_END_HEADER + +#endif /* FTSYSTEM_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/fttrigon.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/fttrigon.h new file mode 100644 index 00000000..a5299e93 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/fttrigon.h @@ -0,0 +1,350 @@ +/**************************************************************************** + * + * fttrigon.h + * + * FreeType trigonometric functions (specification). + * + * Copyright (C) 2001-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTTRIGON_H_ +#define FTTRIGON_H_ + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * computations + * + */ + + + /************************************************************************** + * + * @type: + * FT_Angle + * + * @description: + * This type is used to model angle values in FreeType. Note that the + * angle is a 16.16 fixed-point value expressed in degrees. + * + */ + typedef FT_Fixed FT_Angle; + + + /************************************************************************** + * + * @macro: + * FT_ANGLE_PI + * + * @description: + * The angle pi expressed in @FT_Angle units. + * + */ +#define FT_ANGLE_PI ( 180L << 16 ) + + + /************************************************************************** + * + * @macro: + * FT_ANGLE_2PI + * + * @description: + * The angle 2*pi expressed in @FT_Angle units. + * + */ +#define FT_ANGLE_2PI ( FT_ANGLE_PI * 2 ) + + + /************************************************************************** + * + * @macro: + * FT_ANGLE_PI2 + * + * @description: + * The angle pi/2 expressed in @FT_Angle units. + * + */ +#define FT_ANGLE_PI2 ( FT_ANGLE_PI / 2 ) + + + /************************************************************************** + * + * @macro: + * FT_ANGLE_PI4 + * + * @description: + * The angle pi/4 expressed in @FT_Angle units. + * + */ +#define FT_ANGLE_PI4 ( FT_ANGLE_PI / 4 ) + + + /************************************************************************** + * + * @function: + * FT_Sin + * + * @description: + * Return the sinus of a given angle in fixed-point format. + * + * @input: + * angle :: + * The input angle. + * + * @return: + * The sinus value. + * + * @note: + * If you need both the sinus and cosinus for a given angle, use the + * function @FT_Vector_Unit. + * + */ + FT_EXPORT( FT_Fixed ) + FT_Sin( FT_Angle angle ); + + + /************************************************************************** + * + * @function: + * FT_Cos + * + * @description: + * Return the cosinus of a given angle in fixed-point format. + * + * @input: + * angle :: + * The input angle. + * + * @return: + * The cosinus value. + * + * @note: + * If you need both the sinus and cosinus for a given angle, use the + * function @FT_Vector_Unit. + * + */ + FT_EXPORT( FT_Fixed ) + FT_Cos( FT_Angle angle ); + + + /************************************************************************** + * + * @function: + * FT_Tan + * + * @description: + * Return the tangent of a given angle in fixed-point format. + * + * @input: + * angle :: + * The input angle. + * + * @return: + * The tangent value. + * + */ + FT_EXPORT( FT_Fixed ) + FT_Tan( FT_Angle angle ); + + + /************************************************************************** + * + * @function: + * FT_Atan2 + * + * @description: + * Return the arc-tangent corresponding to a given vector (x,y) in the 2d + * plane. + * + * @input: + * x :: + * The horizontal vector coordinate. + * + * y :: + * The vertical vector coordinate. + * + * @return: + * The arc-tangent value (i.e. angle). + * + */ + FT_EXPORT( FT_Angle ) + FT_Atan2( FT_Fixed x, + FT_Fixed y ); + + + /************************************************************************** + * + * @function: + * FT_Angle_Diff + * + * @description: + * Return the difference between two angles. The result is always + * constrained to the ]-PI..PI] interval. + * + * @input: + * angle1 :: + * First angle. + * + * angle2 :: + * Second angle. + * + * @return: + * Constrained value of `angle2-angle1`. + * + */ + FT_EXPORT( FT_Angle ) + FT_Angle_Diff( FT_Angle angle1, + FT_Angle angle2 ); + + + /************************************************************************** + * + * @function: + * FT_Vector_Unit + * + * @description: + * Return the unit vector corresponding to a given angle. After the + * call, the value of `vec.x` will be `cos(angle)`, and the value of + * `vec.y` will be `sin(angle)`. + * + * This function is useful to retrieve both the sinus and cosinus of a + * given angle quickly. + * + * @output: + * vec :: + * The address of target vector. + * + * @input: + * angle :: + * The input angle. + * + */ + FT_EXPORT( void ) + FT_Vector_Unit( FT_Vector* vec, + FT_Angle angle ); + + + /************************************************************************** + * + * @function: + * FT_Vector_Rotate + * + * @description: + * Rotate a vector by a given angle. + * + * @inout: + * vec :: + * The address of target vector. + * + * @input: + * angle :: + * The input angle. + * + */ + FT_EXPORT( void ) + FT_Vector_Rotate( FT_Vector* vec, + FT_Angle angle ); + + + /************************************************************************** + * + * @function: + * FT_Vector_Length + * + * @description: + * Return the length of a given vector. + * + * @input: + * vec :: + * The address of target vector. + * + * @return: + * The vector length, expressed in the same units that the original + * vector coordinates. + * + */ + FT_EXPORT( FT_Fixed ) + FT_Vector_Length( FT_Vector* vec ); + + + /************************************************************************** + * + * @function: + * FT_Vector_Polarize + * + * @description: + * Compute both the length and angle of a given vector. + * + * @input: + * vec :: + * The address of source vector. + * + * @output: + * length :: + * The vector length. + * + * angle :: + * The vector angle. + * + */ + FT_EXPORT( void ) + FT_Vector_Polarize( FT_Vector* vec, + FT_Fixed *length, + FT_Angle *angle ); + + + /************************************************************************** + * + * @function: + * FT_Vector_From_Polar + * + * @description: + * Compute vector coordinates from a length and angle. + * + * @output: + * vec :: + * The address of source vector. + * + * @input: + * length :: + * The vector length. + * + * angle :: + * The vector angle. + * + */ + FT_EXPORT( void ) + FT_Vector_From_Polar( FT_Vector* vec, + FT_Fixed length, + FT_Angle angle ); + + /* */ + + +FT_END_HEADER + +#endif /* FTTRIGON_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/fttypes.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/fttypes.h new file mode 100644 index 00000000..27815143 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/fttypes.h @@ -0,0 +1,617 @@ +/**************************************************************************** + * + * fttypes.h + * + * FreeType simple types definitions (specification only). + * + * Copyright (C) 1996-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTTYPES_H_ +#define FTTYPES_H_ + + +#include +#include FT_CONFIG_CONFIG_H +#include +#include + +#include + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * basic_types + * + * @title: + * Basic Data Types + * + * @abstract: + * The basic data types defined by the library. + * + * @description: + * This section contains the basic data types defined by FreeType~2, + * ranging from simple scalar types to bitmap descriptors. More + * font-specific structures are defined in a different section. Note + * that FreeType does not use floating-point data types. Fractional + * values are represented by fixed-point integers, with lower bits + * storing the fractional part. + * + * @order: + * FT_Byte + * FT_Bytes + * FT_Char + * FT_Int + * FT_UInt + * FT_Int16 + * FT_UInt16 + * FT_Int32 + * FT_UInt32 + * FT_Int64 + * FT_UInt64 + * FT_Short + * FT_UShort + * FT_Long + * FT_ULong + * FT_Bool + * FT_Offset + * FT_PtrDist + * FT_String + * FT_Tag + * FT_Error + * FT_Fixed + * FT_Pointer + * FT_Pos + * FT_Vector + * FT_BBox + * FT_Matrix + * FT_FWord + * FT_UFWord + * FT_F2Dot14 + * FT_UnitVector + * FT_F26Dot6 + * FT_Data + * + * FT_MAKE_TAG + * + * FT_Generic + * FT_Generic_Finalizer + * + * FT_Bitmap + * FT_Pixel_Mode + * FT_Palette_Mode + * FT_Glyph_Format + * FT_IMAGE_TAG + * + */ + + + /************************************************************************** + * + * @type: + * FT_Bool + * + * @description: + * A typedef of unsigned char, used for simple booleans. As usual, + * values 1 and~0 represent true and false, respectively. + */ + typedef unsigned char FT_Bool; + + + /************************************************************************** + * + * @type: + * FT_FWord + * + * @description: + * A signed 16-bit integer used to store a distance in original font + * units. + */ + typedef signed short FT_FWord; /* distance in FUnits */ + + + /************************************************************************** + * + * @type: + * FT_UFWord + * + * @description: + * An unsigned 16-bit integer used to store a distance in original font + * units. + */ + typedef unsigned short FT_UFWord; /* unsigned distance */ + + + /************************************************************************** + * + * @type: + * FT_Char + * + * @description: + * A simple typedef for the _signed_ char type. + */ + typedef signed char FT_Char; + + + /************************************************************************** + * + * @type: + * FT_Byte + * + * @description: + * A simple typedef for the _unsigned_ char type. + */ + typedef unsigned char FT_Byte; + + + /************************************************************************** + * + * @type: + * FT_Bytes + * + * @description: + * A typedef for constant memory areas. + */ + typedef const FT_Byte* FT_Bytes; + + + /************************************************************************** + * + * @type: + * FT_Tag + * + * @description: + * A typedef for 32-bit tags (as used in the SFNT format). + */ + typedef FT_UInt32 FT_Tag; + + + /************************************************************************** + * + * @type: + * FT_String + * + * @description: + * A simple typedef for the char type, usually used for strings. + */ + typedef char FT_String; + + + /************************************************************************** + * + * @type: + * FT_Short + * + * @description: + * A typedef for signed short. + */ + typedef signed short FT_Short; + + + /************************************************************************** + * + * @type: + * FT_UShort + * + * @description: + * A typedef for unsigned short. + */ + typedef unsigned short FT_UShort; + + + /************************************************************************** + * + * @type: + * FT_Int + * + * @description: + * A typedef for the int type. + */ + typedef signed int FT_Int; + + + /************************************************************************** + * + * @type: + * FT_UInt + * + * @description: + * A typedef for the unsigned int type. + */ + typedef unsigned int FT_UInt; + + + /************************************************************************** + * + * @type: + * FT_Long + * + * @description: + * A typedef for signed long. + */ + typedef signed long FT_Long; + + + /************************************************************************** + * + * @type: + * FT_ULong + * + * @description: + * A typedef for unsigned long. + */ + typedef unsigned long FT_ULong; + + + /************************************************************************** + * + * @type: + * FT_F2Dot14 + * + * @description: + * A signed 2.14 fixed-point type used for unit vectors. + */ + typedef signed short FT_F2Dot14; + + + /************************************************************************** + * + * @type: + * FT_F26Dot6 + * + * @description: + * A signed 26.6 fixed-point type used for vectorial pixel coordinates. + */ + typedef signed long FT_F26Dot6; + + + /************************************************************************** + * + * @type: + * FT_Fixed + * + * @description: + * This type is used to store 16.16 fixed-point values, like scaling + * values or matrix coefficients. + */ + typedef signed long FT_Fixed; + + + /************************************************************************** + * + * @type: + * FT_Error + * + * @description: + * The FreeType error code type. A value of~0 is always interpreted as a + * successful operation. + */ + typedef int FT_Error; + + + /************************************************************************** + * + * @type: + * FT_Pointer + * + * @description: + * A simple typedef for a typeless pointer. + */ + typedef void* FT_Pointer; + + + /************************************************************************** + * + * @type: + * FT_Offset + * + * @description: + * This is equivalent to the ANSI~C `size_t` type, i.e., the largest + * _unsigned_ integer type used to express a file size or position, or a + * memory block size. + */ + typedef size_t FT_Offset; + + + /************************************************************************** + * + * @type: + * FT_PtrDist + * + * @description: + * This is equivalent to the ANSI~C `ptrdiff_t` type, i.e., the largest + * _signed_ integer type used to express the distance between two + * pointers. + */ + typedef ft_ptrdiff_t FT_PtrDist; + + + /************************************************************************** + * + * @struct: + * FT_UnitVector + * + * @description: + * A simple structure used to store a 2D vector unit vector. Uses + * FT_F2Dot14 types. + * + * @fields: + * x :: + * Horizontal coordinate. + * + * y :: + * Vertical coordinate. + */ + typedef struct FT_UnitVector_ + { + FT_F2Dot14 x; + FT_F2Dot14 y; + + } FT_UnitVector; + + + /************************************************************************** + * + * @struct: + * FT_Matrix + * + * @description: + * A simple structure used to store a 2x2 matrix. Coefficients are in + * 16.16 fixed-point format. The computation performed is: + * + * ``` + * x' = x*xx + y*xy + * y' = x*yx + y*yy + * ``` + * + * @fields: + * xx :: + * Matrix coefficient. + * + * xy :: + * Matrix coefficient. + * + * yx :: + * Matrix coefficient. + * + * yy :: + * Matrix coefficient. + */ + typedef struct FT_Matrix_ + { + FT_Fixed xx, xy; + FT_Fixed yx, yy; + + } FT_Matrix; + + + /************************************************************************** + * + * @struct: + * FT_Data + * + * @description: + * Read-only binary data represented as a pointer and a length. + * + * @fields: + * pointer :: + * The data. + * + * length :: + * The length of the data in bytes. + */ + typedef struct FT_Data_ + { + const FT_Byte* pointer; + FT_UInt length; + + } FT_Data; + + + /************************************************************************** + * + * @functype: + * FT_Generic_Finalizer + * + * @description: + * Describe a function used to destroy the 'client' data of any FreeType + * object. See the description of the @FT_Generic type for details of + * usage. + * + * @input: + * The address of the FreeType object that is under finalization. Its + * client data is accessed through its `generic` field. + */ + typedef void (*FT_Generic_Finalizer)( void* object ); + + + /************************************************************************** + * + * @struct: + * FT_Generic + * + * @description: + * Client applications often need to associate their own data to a + * variety of FreeType core objects. For example, a text layout API + * might want to associate a glyph cache to a given size object. + * + * Some FreeType object contains a `generic` field, of type `FT_Generic`, + * which usage is left to client applications and font servers. + * + * It can be used to store a pointer to client-specific data, as well as + * the address of a 'finalizer' function, which will be called by + * FreeType when the object is destroyed (for example, the previous + * client example would put the address of the glyph cache destructor in + * the `finalizer` field). + * + * @fields: + * data :: + * A typeless pointer to any client-specified data. This field is + * completely ignored by the FreeType library. + * + * finalizer :: + * A pointer to a 'generic finalizer' function, which will be called + * when the object is destroyed. If this field is set to `NULL`, no + * code will be called. + */ + typedef struct FT_Generic_ + { + void* data; + FT_Generic_Finalizer finalizer; + + } FT_Generic; + + + /************************************************************************** + * + * @macro: + * FT_MAKE_TAG + * + * @description: + * This macro converts four-letter tags that are used to label TrueType + * tables into an `FT_Tag` type, to be used within FreeType. + * + * @note: + * The produced values **must** be 32-bit integers. Don't redefine this + * macro. + */ +#define FT_MAKE_TAG( _x1, _x2, _x3, _x4 ) \ + ( ( FT_STATIC_BYTE_CAST( FT_Tag, _x1 ) << 24 ) | \ + ( FT_STATIC_BYTE_CAST( FT_Tag, _x2 ) << 16 ) | \ + ( FT_STATIC_BYTE_CAST( FT_Tag, _x3 ) << 8 ) | \ + FT_STATIC_BYTE_CAST( FT_Tag, _x4 ) ) + + + /*************************************************************************/ + /*************************************************************************/ + /* */ + /* L I S T M A N A G E M E N T */ + /* */ + /*************************************************************************/ + /*************************************************************************/ + + + /************************************************************************** + * + * @section: + * list_processing + * + */ + + + /************************************************************************** + * + * @type: + * FT_ListNode + * + * @description: + * Many elements and objects in FreeType are listed through an @FT_List + * record (see @FT_ListRec). As its name suggests, an FT_ListNode is a + * handle to a single list element. + */ + typedef struct FT_ListNodeRec_* FT_ListNode; + + + /************************************************************************** + * + * @type: + * FT_List + * + * @description: + * A handle to a list record (see @FT_ListRec). + */ + typedef struct FT_ListRec_* FT_List; + + + /************************************************************************** + * + * @struct: + * FT_ListNodeRec + * + * @description: + * A structure used to hold a single list element. + * + * @fields: + * prev :: + * The previous element in the list. `NULL` if first. + * + * next :: + * The next element in the list. `NULL` if last. + * + * data :: + * A typeless pointer to the listed object. + */ + typedef struct FT_ListNodeRec_ + { + FT_ListNode prev; + FT_ListNode next; + void* data; + + } FT_ListNodeRec; + + + /************************************************************************** + * + * @struct: + * FT_ListRec + * + * @description: + * A structure used to hold a simple doubly-linked list. These are used + * in many parts of FreeType. + * + * @fields: + * head :: + * The head (first element) of doubly-linked list. + * + * tail :: + * The tail (last element) of doubly-linked list. + */ + typedef struct FT_ListRec_ + { + FT_ListNode head; + FT_ListNode tail; + + } FT_ListRec; + + /* */ + + +#define FT_IS_EMPTY( list ) ( (list).head == 0 ) +#define FT_BOOL( x ) FT_STATIC_CAST( FT_Bool, (x) != 0 ) + + /* concatenate C tokens */ +#define FT_ERR_XCAT( x, y ) x ## y +#define FT_ERR_CAT( x, y ) FT_ERR_XCAT( x, y ) + + /* see `ftmoderr.h` for descriptions of the following macros */ + +#define FT_ERR( e ) FT_ERR_CAT( FT_ERR_PREFIX, e ) + +#define FT_ERROR_BASE( x ) ( (x) & 0xFF ) +#define FT_ERROR_MODULE( x ) ( (x) & 0xFF00U ) + +#define FT_ERR_EQ( x, e ) \ + ( FT_ERROR_BASE( x ) == FT_ERROR_BASE( FT_ERR( e ) ) ) +#define FT_ERR_NEQ( x, e ) \ + ( FT_ERROR_BASE( x ) != FT_ERROR_BASE( FT_ERR( e ) ) ) + + +FT_END_HEADER + +#endif /* FTTYPES_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftwinfnt.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftwinfnt.h new file mode 100644 index 00000000..2591e588 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ftwinfnt.h @@ -0,0 +1,276 @@ +/**************************************************************************** + * + * ftwinfnt.h + * + * FreeType API for accessing Windows fnt-specific data. + * + * Copyright (C) 2003-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef FTWINFNT_H_ +#define FTWINFNT_H_ + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * winfnt_fonts + * + * @title: + * Window FNT Files + * + * @abstract: + * Windows FNT-specific API. + * + * @description: + * This section contains the declaration of Windows FNT-specific + * functions. + * + */ + + + /************************************************************************** + * + * @enum: + * FT_WinFNT_ID_XXX + * + * @description: + * A list of valid values for the `charset` byte in @FT_WinFNT_HeaderRec. + * Exact mapping tables for the various 'cpXXXX' encodings (except for + * 'cp1361') can be found at 'ftp://ftp.unicode.org/Public/' in the + * `MAPPINGS/VENDORS/MICSFT/WINDOWS` subdirectory. 'cp1361' is roughly a + * superset of `MAPPINGS/OBSOLETE/EASTASIA/KSC/JOHAB.TXT`. + * + * @values: + * FT_WinFNT_ID_DEFAULT :: + * This is used for font enumeration and font creation as a 'don't + * care' value. Valid font files don't contain this value. When + * querying for information about the character set of the font that is + * currently selected into a specified device context, this return + * value (of the related Windows API) simply denotes failure. + * + * FT_WinFNT_ID_SYMBOL :: + * There is no known mapping table available. + * + * FT_WinFNT_ID_MAC :: + * Mac Roman encoding. + * + * FT_WinFNT_ID_OEM :: + * From Michael Poettgen : + * + * The 'Windows Font Mapping' article says that `FT_WinFNT_ID_OEM` is + * used for the charset of vector fonts, like `modern.fon`, + * `roman.fon`, and `script.fon` on Windows. + * + * The 'CreateFont' documentation says: The `FT_WinFNT_ID_OEM` value + * specifies a character set that is operating-system dependent. + * + * The 'IFIMETRICS' documentation from the 'Windows Driver Development + * Kit' says: This font supports an OEM-specific character set. The + * OEM character set is system dependent. + * + * In general OEM, as opposed to ANSI (i.e., 'cp1252'), denotes the + * second default codepage that most international versions of Windows + * have. It is one of the OEM codepages from + * + * https://docs.microsoft.com/en-us/windows/desktop/intl/code-page-identifiers + * , + * + * and is used for the 'DOS boxes', to support legacy applications. A + * German Windows version for example usually uses ANSI codepage 1252 + * and OEM codepage 850. + * + * FT_WinFNT_ID_CP874 :: + * A superset of Thai TIS 620 and ISO 8859-11. + * + * FT_WinFNT_ID_CP932 :: + * A superset of Japanese Shift-JIS (with minor deviations). + * + * FT_WinFNT_ID_CP936 :: + * A superset of simplified Chinese GB 2312-1980 (with different + * ordering and minor deviations). + * + * FT_WinFNT_ID_CP949 :: + * A superset of Korean Hangul KS~C 5601-1987 (with different ordering + * and minor deviations). + * + * FT_WinFNT_ID_CP950 :: + * A superset of traditional Chinese Big~5 ETen (with different + * ordering and minor deviations). + * + * FT_WinFNT_ID_CP1250 :: + * A superset of East European ISO 8859-2 (with slightly different + * ordering). + * + * FT_WinFNT_ID_CP1251 :: + * A superset of Russian ISO 8859-5 (with different ordering). + * + * FT_WinFNT_ID_CP1252 :: + * ANSI encoding. A superset of ISO 8859-1. + * + * FT_WinFNT_ID_CP1253 :: + * A superset of Greek ISO 8859-7 (with minor modifications). + * + * FT_WinFNT_ID_CP1254 :: + * A superset of Turkish ISO 8859-9. + * + * FT_WinFNT_ID_CP1255 :: + * A superset of Hebrew ISO 8859-8 (with some modifications). + * + * FT_WinFNT_ID_CP1256 :: + * A superset of Arabic ISO 8859-6 (with different ordering). + * + * FT_WinFNT_ID_CP1257 :: + * A superset of Baltic ISO 8859-13 (with some deviations). + * + * FT_WinFNT_ID_CP1258 :: + * For Vietnamese. This encoding doesn't cover all necessary + * characters. + * + * FT_WinFNT_ID_CP1361 :: + * Korean (Johab). + */ + +#define FT_WinFNT_ID_CP1252 0 +#define FT_WinFNT_ID_DEFAULT 1 +#define FT_WinFNT_ID_SYMBOL 2 +#define FT_WinFNT_ID_MAC 77 +#define FT_WinFNT_ID_CP932 128 +#define FT_WinFNT_ID_CP949 129 +#define FT_WinFNT_ID_CP1361 130 +#define FT_WinFNT_ID_CP936 134 +#define FT_WinFNT_ID_CP950 136 +#define FT_WinFNT_ID_CP1253 161 +#define FT_WinFNT_ID_CP1254 162 +#define FT_WinFNT_ID_CP1258 163 +#define FT_WinFNT_ID_CP1255 177 +#define FT_WinFNT_ID_CP1256 178 +#define FT_WinFNT_ID_CP1257 186 +#define FT_WinFNT_ID_CP1251 204 +#define FT_WinFNT_ID_CP874 222 +#define FT_WinFNT_ID_CP1250 238 +#define FT_WinFNT_ID_OEM 255 + + + /************************************************************************** + * + * @struct: + * FT_WinFNT_HeaderRec + * + * @description: + * Windows FNT Header info. + */ + typedef struct FT_WinFNT_HeaderRec_ + { + FT_UShort version; + FT_ULong file_size; + FT_Byte copyright[60]; + FT_UShort file_type; + FT_UShort nominal_point_size; + FT_UShort vertical_resolution; + FT_UShort horizontal_resolution; + FT_UShort ascent; + FT_UShort internal_leading; + FT_UShort external_leading; + FT_Byte italic; + FT_Byte underline; + FT_Byte strike_out; + FT_UShort weight; + FT_Byte charset; + FT_UShort pixel_width; + FT_UShort pixel_height; + FT_Byte pitch_and_family; + FT_UShort avg_width; + FT_UShort max_width; + FT_Byte first_char; + FT_Byte last_char; + FT_Byte default_char; + FT_Byte break_char; + FT_UShort bytes_per_row; + FT_ULong device_offset; + FT_ULong face_name_offset; + FT_ULong bits_pointer; + FT_ULong bits_offset; + FT_Byte reserved; + FT_ULong flags; + FT_UShort A_space; + FT_UShort B_space; + FT_UShort C_space; + FT_UShort color_table_offset; + FT_ULong reserved1[4]; + + } FT_WinFNT_HeaderRec; + + + /************************************************************************** + * + * @struct: + * FT_WinFNT_Header + * + * @description: + * A handle to an @FT_WinFNT_HeaderRec structure. + */ + typedef struct FT_WinFNT_HeaderRec_* FT_WinFNT_Header; + + + /************************************************************************** + * + * @function: + * FT_Get_WinFNT_Header + * + * @description: + * Retrieve a Windows FNT font info header. + * + * @input: + * face :: + * A handle to the input face. + * + * @output: + * aheader :: + * The WinFNT header. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function only works with Windows FNT faces, returning an error + * otherwise. + */ + FT_EXPORT( FT_Error ) + FT_Get_WinFNT_Header( FT_Face face, + FT_WinFNT_HeaderRec *aheader ); + + /* */ + + +FT_END_HEADER + +#endif /* FTWINFNT_H_ */ + + +/* END */ + + +/* Local Variables: */ +/* coding: utf-8 */ +/* End: */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/otsvg.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/otsvg.h new file mode 100644 index 00000000..9d356938 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/otsvg.h @@ -0,0 +1,336 @@ +/**************************************************************************** + * + * otsvg.h + * + * Interface for OT-SVG support related things (specification). + * + * Copyright (C) 2022-2024 by + * David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef OTSVG_H_ +#define OTSVG_H_ + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * svg_fonts + * + * @title: + * OpenType SVG Fonts + * + * @abstract: + * OT-SVG API between FreeType and an external SVG rendering library. + * + * @description: + * This section describes the four hooks necessary to render SVG + * 'documents' that are contained in an OpenType font's 'SVG~' table. + * + * For more information on the implementation, see our standard hooks + * based on 'librsvg' in the [FreeType Demo + * Programs](https://gitlab.freedesktop.org/freetype/freetype-demos) + * repository. + * + */ + + + /************************************************************************** + * + * @functype: + * SVG_Lib_Init_Func + * + * @description: + * A callback that is called when the first OT-SVG glyph is rendered in + * the lifetime of an @FT_Library object. In a typical implementation, + * one would want to allocate a structure and point the `data_pointer` + * to it and perform any library initializations that might be needed. + * + * @inout: + * data_pointer :: + * The SVG rendering module stores a pointer variable that can be used + * by clients to store any data that needs to be shared across + * different hooks. `data_pointer` is essentially a pointer to that + * pointer such that it can be written to as well as read from. + * + * @return: + * FreeType error code. 0 means success. + * + * @since: + * 2.12 + */ + typedef FT_Error + (*SVG_Lib_Init_Func)( FT_Pointer *data_pointer ); + + + /************************************************************************** + * + * @functype: + * SVG_Lib_Free_Func + * + * @description: + * A callback that is called when the `ot-svg` module is being freed. + * It is only called if the init hook was called earlier. This means + * that neither the init nor the free hook is called if no OT-SVG glyph + * is rendered. + * + * In a typical implementation, one would want to free any state + * structure that was allocated in the init hook and perform any + * library-related closure that might be needed. + * + * @inout: + * data_pointer :: + * The SVG rendering module stores a pointer variable that can be used + * by clients to store any data that needs to be shared across + * different hooks. `data_pointer` is essentially a pointer to that + * pointer such that it can be written to as well as read from. + * + * @since: + * 2.12 + */ + typedef void + (*SVG_Lib_Free_Func)( FT_Pointer *data_pointer ); + + + /************************************************************************** + * + * @functype: + * SVG_Lib_Render_Func + * + * @description: + * A callback that is called to render an OT-SVG glyph. This callback + * hook is called right after the preset hook @SVG_Lib_Preset_Slot_Func + * has been called with `cache` set to `TRUE`. The data necessary to + * render is available through the handle @FT_SVG_Document, which is set + * in the `other` field of @FT_GlyphSlotRec. + * + * The render hook is expected to render the SVG glyph to the bitmap + * buffer that is allocated already at `slot->bitmap.buffer`. It also + * sets the `num_grays` value as well as `slot->format`. + * + * @input: + * slot :: + * The slot to render. + * + * @inout: + * data_pointer :: + * The SVG rendering module stores a pointer variable that can be used + * by clients to store any data that needs to be shared across + * different hooks. `data_pointer` is essentially a pointer to that + * pointer such that it can be written to as well as read from. + * + * @return: + * FreeType error code. 0 means success. + * + * @since: + * 2.12 + */ + typedef FT_Error + (*SVG_Lib_Render_Func)( FT_GlyphSlot slot, + FT_Pointer *data_pointer ); + + + /************************************************************************** + * + * @functype: + * SVG_Lib_Preset_Slot_Func + * + * @description: + * A callback that is called to preset the glyph slot. It is called from + * two places. + * + * 1. When `FT_Load_Glyph` needs to preset the glyph slot. + * + * 2. Right before the `svg` module calls the render callback hook. + * + * When it is the former, the argument `cache` is set to `FALSE`. When + * it is the latter, the argument `cache` is set to `TRUE`. This + * distinction has been made because many calculations that are necessary + * for presetting a glyph slot are the same needed later for the render + * callback hook. Thus, if `cache` is `TRUE`, the hook can _cache_ those + * calculations in a memory block referenced by the state pointer. + * + * This hook is expected to preset the slot by setting parameters such as + * `bitmap_left`, `bitmap_top`, `width`, `rows`, `pitch`, and + * `pixel_mode`. It is also expected to set all the metrics for the slot + * including the vertical advance if it is not already set. Typically, + * fonts have horizontal advances but not vertical ones. If those are + * available, they had already been set, otherwise they have to be + * estimated and set manually. The hook must take into account the + * transformations that have been set, and translate the transformation + * matrices into the SVG coordinate system, as the original matrix is + * intended for the TTF/CFF coordinate system. + * + * @input: + * slot :: + * The glyph slot that has the SVG document loaded. + * + * cache :: + * See description. + * + * @inout: + * data_pointer :: + * The SVG rendering module stores a pointer variable that can be used + * by clients to store any data that needs to be shared across + * different hooks. `data_pointer` is essentially a pointer to that + * pointer such that it can be written to as well as read from. + * + * @return: + * FreeType error code. 0 means success. + * + * @since: + * 2.12 + */ + typedef FT_Error + (*SVG_Lib_Preset_Slot_Func)( FT_GlyphSlot slot, + FT_Bool cache, + FT_Pointer *state ); + + + /************************************************************************** + * + * @struct: + * SVG_RendererHooks + * + * @description: + * A structure that stores the four hooks needed to render OT-SVG glyphs + * properly. The structure is publicly used to set the hooks via the + * @svg-hooks driver property. + * + * The behavior of each hook is described in its documentation. One + * thing to note is that the preset hook and the render hook often need + * to do the same operations; therefore, it's better to cache the + * intermediate data in a state structure to avoid calculating it twice. + * For example, in the preset hook one can draw the glyph on a recorder + * surface and later create a bitmap surface from it in the render hook. + * + * All four hooks must be non-NULL. + * + * @fields: + * init_svg :: + * The initialization hook. + * + * free_svg :: + * The cleanup hook. + * + * render_hook :: + * The render hook. + * + * preset_slot :: + * The preset hook. + * + * @since: + * 2.12 + */ + typedef struct SVG_RendererHooks_ + { + SVG_Lib_Init_Func init_svg; + SVG_Lib_Free_Func free_svg; + SVG_Lib_Render_Func render_svg; + + SVG_Lib_Preset_Slot_Func preset_slot; + + } SVG_RendererHooks; + + + /************************************************************************** + * + * @struct: + * FT_SVG_DocumentRec + * + * @description: + * A structure that models one SVG document. + * + * @fields: + * svg_document :: + * A pointer to the SVG document. + * + * svg_document_length :: + * The length of `svg_document`. + * + * metrics :: + * A metrics object storing the size information. + * + * units_per_EM :: + * The size of the EM square. + * + * start_glyph_id :: + * The first glyph ID in the glyph range covered by this document. + * + * end_glyph_id :: + * The last glyph ID in the glyph range covered by this document. + * + * transform :: + * A 2x2 transformation matrix to apply to the glyph while rendering + * it. + * + * delta :: + * The translation to apply to the glyph while rendering. + * + * @note: + * When an @FT_GlyphSlot object `slot` is passed down to a renderer, the + * renderer can only access the `metrics` and `units_per_EM` fields via + * `slot->face`. However, when @FT_Glyph_To_Bitmap sets up a dummy + * object, it has no way to set a `face` object. Thus, metrics + * information and `units_per_EM` (which is necessary for OT-SVG) has to + * be stored separately. + * + * @since: + * 2.12 + */ + typedef struct FT_SVG_DocumentRec_ + { + FT_Byte* svg_document; + FT_ULong svg_document_length; + + FT_Size_Metrics metrics; + FT_UShort units_per_EM; + + FT_UShort start_glyph_id; + FT_UShort end_glyph_id; + + FT_Matrix transform; + FT_Vector delta; + + } FT_SVG_DocumentRec; + + + /************************************************************************** + * + * @type: + * FT_SVG_Document + * + * @description: + * A handle to an @FT_SVG_DocumentRec object. + * + * @since: + * 2.12 + */ + typedef struct FT_SVG_DocumentRec_* FT_SVG_Document; + + +FT_END_HEADER + +#endif /* OTSVG_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/t1tables.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/t1tables.h new file mode 100644 index 00000000..fbd558aa --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/t1tables.h @@ -0,0 +1,735 @@ +/**************************************************************************** + * + * t1tables.h + * + * Basic Type 1/Type 2 tables definitions and interface (specification + * only). + * + * Copyright (C) 1996-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef T1TABLES_H_ +#define T1TABLES_H_ + + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * type1_tables + * + * @title: + * Type 1 Tables + * + * @abstract: + * Type~1-specific font tables. + * + * @description: + * This section contains the definition of Type~1-specific tables, + * including structures related to other PostScript font formats. + * + * @order: + * PS_FontInfoRec + * PS_FontInfo + * PS_PrivateRec + * PS_Private + * + * CID_FaceDictRec + * CID_FaceDict + * CID_FaceInfoRec + * CID_FaceInfo + * + * FT_Has_PS_Glyph_Names + * FT_Get_PS_Font_Info + * FT_Get_PS_Font_Private + * FT_Get_PS_Font_Value + * + * T1_Blend_Flags + * T1_EncodingType + * PS_Dict_Keys + * + */ + + + /* Note that we separate font data in PS_FontInfoRec and PS_PrivateRec */ + /* structures in order to support Multiple Master fonts. */ + + + /************************************************************************** + * + * @struct: + * PS_FontInfoRec + * + * @description: + * A structure used to model a Type~1 or Type~2 FontInfo dictionary. + * Note that for Multiple Master fonts, each instance has its own + * FontInfo dictionary. + */ + typedef struct PS_FontInfoRec_ + { + FT_String* version; + FT_String* notice; + FT_String* full_name; + FT_String* family_name; + FT_String* weight; + FT_Long italic_angle; + FT_Bool is_fixed_pitch; + FT_Short underline_position; + FT_UShort underline_thickness; + + } PS_FontInfoRec; + + + /************************************************************************** + * + * @struct: + * PS_FontInfo + * + * @description: + * A handle to a @PS_FontInfoRec structure. + */ + typedef struct PS_FontInfoRec_* PS_FontInfo; + + + /************************************************************************** + * + * @struct: + * T1_FontInfo + * + * @description: + * This type is equivalent to @PS_FontInfoRec. It is deprecated but kept + * to maintain source compatibility between various versions of FreeType. + */ + typedef PS_FontInfoRec T1_FontInfo; + + + /************************************************************************** + * + * @struct: + * PS_PrivateRec + * + * @description: + * A structure used to model a Type~1 or Type~2 private dictionary. Note + * that for Multiple Master fonts, each instance has its own Private + * dictionary. + */ + typedef struct PS_PrivateRec_ + { + FT_Int unique_id; + FT_Int lenIV; + + FT_Byte num_blue_values; + FT_Byte num_other_blues; + FT_Byte num_family_blues; + FT_Byte num_family_other_blues; + + FT_Short blue_values[14]; + FT_Short other_blues[10]; + + FT_Short family_blues [14]; + FT_Short family_other_blues[10]; + + FT_Fixed blue_scale; + FT_Int blue_shift; + FT_Int blue_fuzz; + + FT_UShort standard_width[1]; + FT_UShort standard_height[1]; + + FT_Byte num_snap_widths; + FT_Byte num_snap_heights; + FT_Bool force_bold; + FT_Bool round_stem_up; + + FT_Short snap_widths [13]; /* including std width */ + FT_Short snap_heights[13]; /* including std height */ + + FT_Fixed expansion_factor; + + FT_Long language_group; + FT_Long password; + + FT_Short min_feature[2]; + + } PS_PrivateRec; + + + /************************************************************************** + * + * @struct: + * PS_Private + * + * @description: + * A handle to a @PS_PrivateRec structure. + */ + typedef struct PS_PrivateRec_* PS_Private; + + + /************************************************************************** + * + * @struct: + * T1_Private + * + * @description: + * This type is equivalent to @PS_PrivateRec. It is deprecated but kept + * to maintain source compatibility between various versions of FreeType. + */ + typedef PS_PrivateRec T1_Private; + + + /************************************************************************** + * + * @enum: + * T1_Blend_Flags + * + * @description: + * A set of flags used to indicate which fields are present in a given + * blend dictionary (font info or private). Used to support Multiple + * Masters fonts. + * + * @values: + * T1_BLEND_UNDERLINE_POSITION :: + * T1_BLEND_UNDERLINE_THICKNESS :: + * T1_BLEND_ITALIC_ANGLE :: + * T1_BLEND_BLUE_VALUES :: + * T1_BLEND_OTHER_BLUES :: + * T1_BLEND_STANDARD_WIDTH :: + * T1_BLEND_STANDARD_HEIGHT :: + * T1_BLEND_STEM_SNAP_WIDTHS :: + * T1_BLEND_STEM_SNAP_HEIGHTS :: + * T1_BLEND_BLUE_SCALE :: + * T1_BLEND_BLUE_SHIFT :: + * T1_BLEND_FAMILY_BLUES :: + * T1_BLEND_FAMILY_OTHER_BLUES :: + * T1_BLEND_FORCE_BOLD :: + */ + typedef enum T1_Blend_Flags_ + { + /* required fields in a FontInfo blend dictionary */ + T1_BLEND_UNDERLINE_POSITION = 0, + T1_BLEND_UNDERLINE_THICKNESS, + T1_BLEND_ITALIC_ANGLE, + + /* required fields in a Private blend dictionary */ + T1_BLEND_BLUE_VALUES, + T1_BLEND_OTHER_BLUES, + T1_BLEND_STANDARD_WIDTH, + T1_BLEND_STANDARD_HEIGHT, + T1_BLEND_STEM_SNAP_WIDTHS, + T1_BLEND_STEM_SNAP_HEIGHTS, + T1_BLEND_BLUE_SCALE, + T1_BLEND_BLUE_SHIFT, + T1_BLEND_FAMILY_BLUES, + T1_BLEND_FAMILY_OTHER_BLUES, + T1_BLEND_FORCE_BOLD, + + T1_BLEND_MAX /* do not remove */ + + } T1_Blend_Flags; + + + /* these constants are deprecated; use the corresponding */ + /* `T1_Blend_Flags` values instead */ +#define t1_blend_underline_position T1_BLEND_UNDERLINE_POSITION +#define t1_blend_underline_thickness T1_BLEND_UNDERLINE_THICKNESS +#define t1_blend_italic_angle T1_BLEND_ITALIC_ANGLE +#define t1_blend_blue_values T1_BLEND_BLUE_VALUES +#define t1_blend_other_blues T1_BLEND_OTHER_BLUES +#define t1_blend_standard_widths T1_BLEND_STANDARD_WIDTH +#define t1_blend_standard_height T1_BLEND_STANDARD_HEIGHT +#define t1_blend_stem_snap_widths T1_BLEND_STEM_SNAP_WIDTHS +#define t1_blend_stem_snap_heights T1_BLEND_STEM_SNAP_HEIGHTS +#define t1_blend_blue_scale T1_BLEND_BLUE_SCALE +#define t1_blend_blue_shift T1_BLEND_BLUE_SHIFT +#define t1_blend_family_blues T1_BLEND_FAMILY_BLUES +#define t1_blend_family_other_blues T1_BLEND_FAMILY_OTHER_BLUES +#define t1_blend_force_bold T1_BLEND_FORCE_BOLD +#define t1_blend_max T1_BLEND_MAX + + /* */ + + + /************************************************************************** + * + * @struct: + * CID_FaceDictRec + * + * @description: + * A structure used to represent data in a CID top-level dictionary. In + * most cases, they are part of the font's '/FDArray' array. Within a + * CID font file, such (internal) subfont dictionaries are enclosed by + * '%ADOBeginFontDict' and '%ADOEndFontDict' comments. + * + * Note that `CID_FaceDictRec` misses a field for the '/FontName' + * keyword, specifying the subfont's name (the top-level font name is + * given by the '/CIDFontName' keyword). This is an oversight, but it + * doesn't limit the 'cid' font module's functionality because FreeType + * neither needs this entry nor gives access to CID subfonts. + */ + typedef struct CID_FaceDictRec_ + { + PS_PrivateRec private_dict; + + FT_UInt len_buildchar; + FT_Fixed forcebold_threshold; + FT_Pos stroke_width; + FT_Fixed expansion_factor; /* this is a duplicate of */ + /* `private_dict->expansion_factor' */ + FT_Byte paint_type; + FT_Byte font_type; + FT_Matrix font_matrix; + FT_Vector font_offset; + + FT_UInt num_subrs; + FT_ULong subrmap_offset; + FT_UInt sd_bytes; + + } CID_FaceDictRec; + + + /************************************************************************** + * + * @struct: + * CID_FaceDict + * + * @description: + * A handle to a @CID_FaceDictRec structure. + */ + typedef struct CID_FaceDictRec_* CID_FaceDict; + + + /************************************************************************** + * + * @struct: + * CID_FontDict + * + * @description: + * This type is equivalent to @CID_FaceDictRec. It is deprecated but + * kept to maintain source compatibility between various versions of + * FreeType. + */ + typedef CID_FaceDictRec CID_FontDict; + + + /************************************************************************** + * + * @struct: + * CID_FaceInfoRec + * + * @description: + * A structure used to represent CID Face information. + */ + typedef struct CID_FaceInfoRec_ + { + FT_String* cid_font_name; + FT_Fixed cid_version; + FT_Int cid_font_type; + + FT_String* registry; + FT_String* ordering; + FT_Int supplement; + + PS_FontInfoRec font_info; + FT_BBox font_bbox; + FT_ULong uid_base; + + FT_Int num_xuid; + FT_ULong xuid[16]; + + FT_ULong cidmap_offset; + FT_UInt fd_bytes; + FT_UInt gd_bytes; + FT_ULong cid_count; + + FT_UInt num_dicts; + CID_FaceDict font_dicts; + + FT_ULong data_offset; + + } CID_FaceInfoRec; + + + /************************************************************************** + * + * @struct: + * CID_FaceInfo + * + * @description: + * A handle to a @CID_FaceInfoRec structure. + */ + typedef struct CID_FaceInfoRec_* CID_FaceInfo; + + + /************************************************************************** + * + * @struct: + * CID_Info + * + * @description: + * This type is equivalent to @CID_FaceInfoRec. It is deprecated but kept + * to maintain source compatibility between various versions of FreeType. + */ + typedef CID_FaceInfoRec CID_Info; + + + /************************************************************************** + * + * @function: + * FT_Has_PS_Glyph_Names + * + * @description: + * Return true if a given face provides reliable PostScript glyph names. + * This is similar to using the @FT_HAS_GLYPH_NAMES macro, except that + * certain fonts (mostly TrueType) contain incorrect glyph name tables. + * + * When this function returns true, the caller is sure that the glyph + * names returned by @FT_Get_Glyph_Name are reliable. + * + * @input: + * face :: + * face handle + * + * @return: + * Boolean. True if glyph names are reliable. + * + */ + FT_EXPORT( FT_Int ) + FT_Has_PS_Glyph_Names( FT_Face face ); + + + /************************************************************************** + * + * @function: + * FT_Get_PS_Font_Info + * + * @description: + * Retrieve the @PS_FontInfoRec structure corresponding to a given + * PostScript font. + * + * @input: + * face :: + * PostScript face handle. + * + * @output: + * afont_info :: + * A pointer to a @PS_FontInfoRec object. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * String pointers within the @PS_FontInfoRec structure are owned by the + * face and don't need to be freed by the caller. Missing entries in the + * font's FontInfo dictionary are represented by `NULL` pointers. + * + * The following font formats support this feature: 'Type~1', 'Type~42', + * 'CFF', 'CID~Type~1'. For other font formats this function returns the + * `FT_Err_Invalid_Argument` error code. + * + * @example: + * ``` + * PS_FontInfoRec font_info; + * + * + * error = FT_Get_PS_Font_Info( face, &font_info ); + * ... + * ``` + * + */ + FT_EXPORT( FT_Error ) + FT_Get_PS_Font_Info( FT_Face face, + PS_FontInfo afont_info ); + + + /************************************************************************** + * + * @function: + * FT_Get_PS_Font_Private + * + * @description: + * Retrieve the @PS_PrivateRec structure corresponding to a given + * PostScript font. + * + * @input: + * face :: + * PostScript face handle. + * + * @output: + * afont_private :: + * A pointer to a @PS_PrivateRec object. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The string pointers within the @PS_PrivateRec structure are owned by + * the face and don't need to be freed by the caller. + * + * Only the 'Type~1' font format supports this feature. For other font + * formats this function returns the `FT_Err_Invalid_Argument` error + * code. + * + * @example: + * ``` + * PS_PrivateRec font_private; + * + * + * error = FT_Get_PS_Font_Private( face, &font_private ); + * ... + * ``` + * + */ + FT_EXPORT( FT_Error ) + FT_Get_PS_Font_Private( FT_Face face, + PS_Private afont_private ); + + + /************************************************************************** + * + * @enum: + * T1_EncodingType + * + * @description: + * An enumeration describing the 'Encoding' entry in a Type 1 dictionary. + * + * @values: + * T1_ENCODING_TYPE_NONE :: + * T1_ENCODING_TYPE_ARRAY :: + * T1_ENCODING_TYPE_STANDARD :: + * T1_ENCODING_TYPE_ISOLATIN1 :: + * T1_ENCODING_TYPE_EXPERT :: + * + * @since: + * 2.4.8 + */ + typedef enum T1_EncodingType_ + { + T1_ENCODING_TYPE_NONE = 0, + T1_ENCODING_TYPE_ARRAY, + T1_ENCODING_TYPE_STANDARD, + T1_ENCODING_TYPE_ISOLATIN1, + T1_ENCODING_TYPE_EXPERT + + } T1_EncodingType; + + + /************************************************************************** + * + * @enum: + * PS_Dict_Keys + * + * @description: + * An enumeration used in calls to @FT_Get_PS_Font_Value to identify the + * Type~1 dictionary entry to retrieve. + * + * @values: + * PS_DICT_FONT_TYPE :: + * PS_DICT_FONT_MATRIX :: + * PS_DICT_FONT_BBOX :: + * PS_DICT_PAINT_TYPE :: + * PS_DICT_FONT_NAME :: + * PS_DICT_UNIQUE_ID :: + * PS_DICT_NUM_CHAR_STRINGS :: + * PS_DICT_CHAR_STRING_KEY :: + * PS_DICT_CHAR_STRING :: + * PS_DICT_ENCODING_TYPE :: + * PS_DICT_ENCODING_ENTRY :: + * PS_DICT_NUM_SUBRS :: + * PS_DICT_SUBR :: + * PS_DICT_STD_HW :: + * PS_DICT_STD_VW :: + * PS_DICT_NUM_BLUE_VALUES :: + * PS_DICT_BLUE_VALUE :: + * PS_DICT_BLUE_FUZZ :: + * PS_DICT_NUM_OTHER_BLUES :: + * PS_DICT_OTHER_BLUE :: + * PS_DICT_NUM_FAMILY_BLUES :: + * PS_DICT_FAMILY_BLUE :: + * PS_DICT_NUM_FAMILY_OTHER_BLUES :: + * PS_DICT_FAMILY_OTHER_BLUE :: + * PS_DICT_BLUE_SCALE :: + * PS_DICT_BLUE_SHIFT :: + * PS_DICT_NUM_STEM_SNAP_H :: + * PS_DICT_STEM_SNAP_H :: + * PS_DICT_NUM_STEM_SNAP_V :: + * PS_DICT_STEM_SNAP_V :: + * PS_DICT_FORCE_BOLD :: + * PS_DICT_RND_STEM_UP :: + * PS_DICT_MIN_FEATURE :: + * PS_DICT_LEN_IV :: + * PS_DICT_PASSWORD :: + * PS_DICT_LANGUAGE_GROUP :: + * PS_DICT_VERSION :: + * PS_DICT_NOTICE :: + * PS_DICT_FULL_NAME :: + * PS_DICT_FAMILY_NAME :: + * PS_DICT_WEIGHT :: + * PS_DICT_IS_FIXED_PITCH :: + * PS_DICT_UNDERLINE_POSITION :: + * PS_DICT_UNDERLINE_THICKNESS :: + * PS_DICT_FS_TYPE :: + * PS_DICT_ITALIC_ANGLE :: + * + * @since: + * 2.4.8 + */ + typedef enum PS_Dict_Keys_ + { + /* conventionally in the font dictionary */ + PS_DICT_FONT_TYPE, /* FT_Byte */ + PS_DICT_FONT_MATRIX, /* FT_Fixed */ + PS_DICT_FONT_BBOX, /* FT_Fixed */ + PS_DICT_PAINT_TYPE, /* FT_Byte */ + PS_DICT_FONT_NAME, /* FT_String* */ + PS_DICT_UNIQUE_ID, /* FT_Int */ + PS_DICT_NUM_CHAR_STRINGS, /* FT_Int */ + PS_DICT_CHAR_STRING_KEY, /* FT_String* */ + PS_DICT_CHAR_STRING, /* FT_String* */ + PS_DICT_ENCODING_TYPE, /* T1_EncodingType */ + PS_DICT_ENCODING_ENTRY, /* FT_String* */ + + /* conventionally in the font Private dictionary */ + PS_DICT_NUM_SUBRS, /* FT_Int */ + PS_DICT_SUBR, /* FT_String* */ + PS_DICT_STD_HW, /* FT_UShort */ + PS_DICT_STD_VW, /* FT_UShort */ + PS_DICT_NUM_BLUE_VALUES, /* FT_Byte */ + PS_DICT_BLUE_VALUE, /* FT_Short */ + PS_DICT_BLUE_FUZZ, /* FT_Int */ + PS_DICT_NUM_OTHER_BLUES, /* FT_Byte */ + PS_DICT_OTHER_BLUE, /* FT_Short */ + PS_DICT_NUM_FAMILY_BLUES, /* FT_Byte */ + PS_DICT_FAMILY_BLUE, /* FT_Short */ + PS_DICT_NUM_FAMILY_OTHER_BLUES, /* FT_Byte */ + PS_DICT_FAMILY_OTHER_BLUE, /* FT_Short */ + PS_DICT_BLUE_SCALE, /* FT_Fixed */ + PS_DICT_BLUE_SHIFT, /* FT_Int */ + PS_DICT_NUM_STEM_SNAP_H, /* FT_Byte */ + PS_DICT_STEM_SNAP_H, /* FT_Short */ + PS_DICT_NUM_STEM_SNAP_V, /* FT_Byte */ + PS_DICT_STEM_SNAP_V, /* FT_Short */ + PS_DICT_FORCE_BOLD, /* FT_Bool */ + PS_DICT_RND_STEM_UP, /* FT_Bool */ + PS_DICT_MIN_FEATURE, /* FT_Short */ + PS_DICT_LEN_IV, /* FT_Int */ + PS_DICT_PASSWORD, /* FT_Long */ + PS_DICT_LANGUAGE_GROUP, /* FT_Long */ + + /* conventionally in the font FontInfo dictionary */ + PS_DICT_VERSION, /* FT_String* */ + PS_DICT_NOTICE, /* FT_String* */ + PS_DICT_FULL_NAME, /* FT_String* */ + PS_DICT_FAMILY_NAME, /* FT_String* */ + PS_DICT_WEIGHT, /* FT_String* */ + PS_DICT_IS_FIXED_PITCH, /* FT_Bool */ + PS_DICT_UNDERLINE_POSITION, /* FT_Short */ + PS_DICT_UNDERLINE_THICKNESS, /* FT_UShort */ + PS_DICT_FS_TYPE, /* FT_UShort */ + PS_DICT_ITALIC_ANGLE, /* FT_Long */ + + PS_DICT_MAX = PS_DICT_ITALIC_ANGLE + + } PS_Dict_Keys; + + + /************************************************************************** + * + * @function: + * FT_Get_PS_Font_Value + * + * @description: + * Retrieve the value for the supplied key from a PostScript font. + * + * @input: + * face :: + * PostScript face handle. + * + * key :: + * An enumeration value representing the dictionary key to retrieve. + * + * idx :: + * For array values, this specifies the index to be returned. + * + * value :: + * A pointer to memory into which to write the value. + * + * valen_len :: + * The size, in bytes, of the memory supplied for the value. + * + * @output: + * value :: + * The value matching the above key, if it exists. + * + * @return: + * The amount of memory (in bytes) required to hold the requested value + * (if it exists, -1 otherwise). + * + * @note: + * The values returned are not pointers into the internal structures of + * the face, but are 'fresh' copies, so that the memory containing them + * belongs to the calling application. This also enforces the + * 'read-only' nature of these values, i.e., this function cannot be + * used to manipulate the face. + * + * `value` is a void pointer because the values returned can be of + * various types. + * + * If either `value` is `NULL` or `value_len` is too small, just the + * required memory size for the requested entry is returned. + * + * The `idx` parameter is used, not only to retrieve elements of, for + * example, the FontMatrix or FontBBox, but also to retrieve name keys + * from the CharStrings dictionary, and the charstrings themselves. It + * is ignored for atomic values. + * + * `PS_DICT_BLUE_SCALE` returns a value that is scaled up by 1000. To + * get the value as in the font stream, you need to divide by 65536000.0 + * (to remove the FT_Fixed scale, and the x1000 scale). + * + * IMPORTANT: Only key/value pairs read by the FreeType interpreter can + * be retrieved. So, for example, PostScript procedures such as NP, ND, + * and RD are not available. Arbitrary keys are, obviously, not be + * available either. + * + * If the font's format is not PostScript-based, this function returns + * the `FT_Err_Invalid_Argument` error code. + * + * @since: + * 2.4.8 + * + */ + FT_EXPORT( FT_Long ) + FT_Get_PS_Font_Value( FT_Face face, + PS_Dict_Keys key, + FT_UInt idx, + void *value, + FT_Long value_len ); + + /* */ + +FT_END_HEADER + +#endif /* T1TABLES_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/ttnameid.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ttnameid.h new file mode 100644 index 00000000..d5d470e3 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/ttnameid.h @@ -0,0 +1,1235 @@ +/**************************************************************************** + * + * ttnameid.h + * + * TrueType name ID definitions (specification only). + * + * Copyright (C) 1996-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef TTNAMEID_H_ +#define TTNAMEID_H_ + + + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * truetype_tables + */ + + + /************************************************************************** + * + * Possible values for the 'platform' identifier code in the name records + * of an SFNT 'name' table. + * + */ + + + /************************************************************************** + * + * @enum: + * TT_PLATFORM_XXX + * + * @description: + * A list of valid values for the `platform_id` identifier code in + * @FT_CharMapRec and @FT_SfntName structures. + * + * @values: + * TT_PLATFORM_APPLE_UNICODE :: + * Used by Apple to indicate a Unicode character map and/or name entry. + * See @TT_APPLE_ID_XXX for corresponding `encoding_id` values. Note + * that name entries in this format are coded as big-endian UCS-2 + * character codes _only_. + * + * TT_PLATFORM_MACINTOSH :: + * Used by Apple to indicate a MacOS-specific charmap and/or name + * entry. See @TT_MAC_ID_XXX for corresponding `encoding_id` values. + * Note that most TrueType fonts contain an Apple roman charmap to be + * usable on MacOS systems (even if they contain a Microsoft charmap as + * well). + * + * TT_PLATFORM_ISO :: + * This value was used to specify ISO/IEC 10646 charmaps. It is + * however now deprecated. See @TT_ISO_ID_XXX for a list of + * corresponding `encoding_id` values. + * + * TT_PLATFORM_MICROSOFT :: + * Used by Microsoft to indicate Windows-specific charmaps. See + * @TT_MS_ID_XXX for a list of corresponding `encoding_id` values. + * Note that most fonts contain a Unicode charmap using + * (`TT_PLATFORM_MICROSOFT`, @TT_MS_ID_UNICODE_CS). + * + * TT_PLATFORM_CUSTOM :: + * Used to indicate application-specific charmaps. + * + * TT_PLATFORM_ADOBE :: + * This value isn't part of any font format specification, but is used + * by FreeType to report Adobe-specific charmaps in an @FT_CharMapRec + * structure. See @TT_ADOBE_ID_XXX. + */ + +#define TT_PLATFORM_APPLE_UNICODE 0 +#define TT_PLATFORM_MACINTOSH 1 +#define TT_PLATFORM_ISO 2 /* deprecated */ +#define TT_PLATFORM_MICROSOFT 3 +#define TT_PLATFORM_CUSTOM 4 +#define TT_PLATFORM_ADOBE 7 /* artificial */ + + + /************************************************************************** + * + * @enum: + * TT_APPLE_ID_XXX + * + * @description: + * A list of valid values for the `encoding_id` for + * @TT_PLATFORM_APPLE_UNICODE charmaps and name entries. + * + * @values: + * TT_APPLE_ID_DEFAULT :: + * Unicode version 1.0. + * + * TT_APPLE_ID_UNICODE_1_1 :: + * Unicode 1.1; specifies Hangul characters starting at U+34xx. + * + * TT_APPLE_ID_ISO_10646 :: + * Deprecated (identical to preceding). + * + * TT_APPLE_ID_UNICODE_2_0 :: + * Unicode 2.0 and beyond (UTF-16 BMP only). + * + * TT_APPLE_ID_UNICODE_32 :: + * Unicode 3.1 and beyond, using UTF-32. + * + * TT_APPLE_ID_VARIANT_SELECTOR :: + * From Adobe, not Apple. Not a normal cmap. Specifies variations on + * a real cmap. + * + * TT_APPLE_ID_FULL_UNICODE :: + * Used for fallback fonts that provide complete Unicode coverage with + * a type~13 cmap. + */ + +#define TT_APPLE_ID_DEFAULT 0 /* Unicode 1.0 */ +#define TT_APPLE_ID_UNICODE_1_1 1 /* specify Hangul at U+34xx */ +#define TT_APPLE_ID_ISO_10646 2 /* deprecated */ +#define TT_APPLE_ID_UNICODE_2_0 3 /* or later */ +#define TT_APPLE_ID_UNICODE_32 4 /* 2.0 or later, full repertoire */ +#define TT_APPLE_ID_VARIANT_SELECTOR 5 /* variation selector data */ +#define TT_APPLE_ID_FULL_UNICODE 6 /* used with type 13 cmaps */ + + + /************************************************************************** + * + * @enum: + * TT_MAC_ID_XXX + * + * @description: + * A list of valid values for the `encoding_id` for + * @TT_PLATFORM_MACINTOSH charmaps and name entries. + */ + +#define TT_MAC_ID_ROMAN 0 +#define TT_MAC_ID_JAPANESE 1 +#define TT_MAC_ID_TRADITIONAL_CHINESE 2 +#define TT_MAC_ID_KOREAN 3 +#define TT_MAC_ID_ARABIC 4 +#define TT_MAC_ID_HEBREW 5 +#define TT_MAC_ID_GREEK 6 +#define TT_MAC_ID_RUSSIAN 7 +#define TT_MAC_ID_RSYMBOL 8 +#define TT_MAC_ID_DEVANAGARI 9 +#define TT_MAC_ID_GURMUKHI 10 +#define TT_MAC_ID_GUJARATI 11 +#define TT_MAC_ID_ORIYA 12 +#define TT_MAC_ID_BENGALI 13 +#define TT_MAC_ID_TAMIL 14 +#define TT_MAC_ID_TELUGU 15 +#define TT_MAC_ID_KANNADA 16 +#define TT_MAC_ID_MALAYALAM 17 +#define TT_MAC_ID_SINHALESE 18 +#define TT_MAC_ID_BURMESE 19 +#define TT_MAC_ID_KHMER 20 +#define TT_MAC_ID_THAI 21 +#define TT_MAC_ID_LAOTIAN 22 +#define TT_MAC_ID_GEORGIAN 23 +#define TT_MAC_ID_ARMENIAN 24 +#define TT_MAC_ID_MALDIVIAN 25 +#define TT_MAC_ID_SIMPLIFIED_CHINESE 25 +#define TT_MAC_ID_TIBETAN 26 +#define TT_MAC_ID_MONGOLIAN 27 +#define TT_MAC_ID_GEEZ 28 +#define TT_MAC_ID_SLAVIC 29 +#define TT_MAC_ID_VIETNAMESE 30 +#define TT_MAC_ID_SINDHI 31 +#define TT_MAC_ID_UNINTERP 32 + + + /************************************************************************** + * + * @enum: + * TT_ISO_ID_XXX + * + * @description: + * A list of valid values for the `encoding_id` for @TT_PLATFORM_ISO + * charmaps and name entries. + * + * Their use is now deprecated. + * + * @values: + * TT_ISO_ID_7BIT_ASCII :: + * ASCII. + * TT_ISO_ID_10646 :: + * ISO/10646. + * TT_ISO_ID_8859_1 :: + * Also known as Latin-1. + */ + +#define TT_ISO_ID_7BIT_ASCII 0 +#define TT_ISO_ID_10646 1 +#define TT_ISO_ID_8859_1 2 + + + /************************************************************************** + * + * @enum: + * TT_MS_ID_XXX + * + * @description: + * A list of valid values for the `encoding_id` for + * @TT_PLATFORM_MICROSOFT charmaps and name entries. + * + * @values: + * TT_MS_ID_SYMBOL_CS :: + * Microsoft symbol encoding. See @FT_ENCODING_MS_SYMBOL. + * + * TT_MS_ID_UNICODE_CS :: + * Microsoft WGL4 charmap, matching Unicode. See @FT_ENCODING_UNICODE. + * + * TT_MS_ID_SJIS :: + * Shift JIS Japanese encoding. See @FT_ENCODING_SJIS. + * + * TT_MS_ID_PRC :: + * Chinese encodings as used in the People's Republic of China (PRC). + * This means the encodings GB~2312 and its supersets GBK and GB~18030. + * See @FT_ENCODING_PRC. + * + * TT_MS_ID_BIG_5 :: + * Traditional Chinese as used in Taiwan and Hong Kong. See + * @FT_ENCODING_BIG5. + * + * TT_MS_ID_WANSUNG :: + * Korean Extended Wansung encoding. See @FT_ENCODING_WANSUNG. + * + * TT_MS_ID_JOHAB :: + * Korean Johab encoding. See @FT_ENCODING_JOHAB. + * + * TT_MS_ID_UCS_4 :: + * UCS-4 or UTF-32 charmaps. This has been added to the OpenType + * specification version 1.4 (mid-2001). + */ + +#define TT_MS_ID_SYMBOL_CS 0 +#define TT_MS_ID_UNICODE_CS 1 +#define TT_MS_ID_SJIS 2 +#define TT_MS_ID_PRC 3 +#define TT_MS_ID_BIG_5 4 +#define TT_MS_ID_WANSUNG 5 +#define TT_MS_ID_JOHAB 6 +#define TT_MS_ID_UCS_4 10 + + /* this value is deprecated */ +#define TT_MS_ID_GB2312 TT_MS_ID_PRC + + + /************************************************************************** + * + * @enum: + * TT_ADOBE_ID_XXX + * + * @description: + * A list of valid values for the `encoding_id` for @TT_PLATFORM_ADOBE + * charmaps. This is a FreeType-specific extension! + * + * @values: + * TT_ADOBE_ID_STANDARD :: + * Adobe standard encoding. + * TT_ADOBE_ID_EXPERT :: + * Adobe expert encoding. + * TT_ADOBE_ID_CUSTOM :: + * Adobe custom encoding. + * TT_ADOBE_ID_LATIN_1 :: + * Adobe Latin~1 encoding. + */ + +#define TT_ADOBE_ID_STANDARD 0 +#define TT_ADOBE_ID_EXPERT 1 +#define TT_ADOBE_ID_CUSTOM 2 +#define TT_ADOBE_ID_LATIN_1 3 + + + /************************************************************************** + * + * @enum: + * TT_MAC_LANGID_XXX + * + * @description: + * Possible values of the language identifier field in the name records + * of the SFNT 'name' table if the 'platform' identifier code is + * @TT_PLATFORM_MACINTOSH. These values are also used as return values + * for function @FT_Get_CMap_Language_ID. + * + * The canonical source for Apple's IDs is + * + * https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6name.html + */ + +#define TT_MAC_LANGID_ENGLISH 0 +#define TT_MAC_LANGID_FRENCH 1 +#define TT_MAC_LANGID_GERMAN 2 +#define TT_MAC_LANGID_ITALIAN 3 +#define TT_MAC_LANGID_DUTCH 4 +#define TT_MAC_LANGID_SWEDISH 5 +#define TT_MAC_LANGID_SPANISH 6 +#define TT_MAC_LANGID_DANISH 7 +#define TT_MAC_LANGID_PORTUGUESE 8 +#define TT_MAC_LANGID_NORWEGIAN 9 +#define TT_MAC_LANGID_HEBREW 10 +#define TT_MAC_LANGID_JAPANESE 11 +#define TT_MAC_LANGID_ARABIC 12 +#define TT_MAC_LANGID_FINNISH 13 +#define TT_MAC_LANGID_GREEK 14 +#define TT_MAC_LANGID_ICELANDIC 15 +#define TT_MAC_LANGID_MALTESE 16 +#define TT_MAC_LANGID_TURKISH 17 +#define TT_MAC_LANGID_CROATIAN 18 +#define TT_MAC_LANGID_CHINESE_TRADITIONAL 19 +#define TT_MAC_LANGID_URDU 20 +#define TT_MAC_LANGID_HINDI 21 +#define TT_MAC_LANGID_THAI 22 +#define TT_MAC_LANGID_KOREAN 23 +#define TT_MAC_LANGID_LITHUANIAN 24 +#define TT_MAC_LANGID_POLISH 25 +#define TT_MAC_LANGID_HUNGARIAN 26 +#define TT_MAC_LANGID_ESTONIAN 27 +#define TT_MAC_LANGID_LETTISH 28 +#define TT_MAC_LANGID_SAAMISK 29 +#define TT_MAC_LANGID_FAEROESE 30 +#define TT_MAC_LANGID_FARSI 31 +#define TT_MAC_LANGID_RUSSIAN 32 +#define TT_MAC_LANGID_CHINESE_SIMPLIFIED 33 +#define TT_MAC_LANGID_FLEMISH 34 +#define TT_MAC_LANGID_IRISH 35 +#define TT_MAC_LANGID_ALBANIAN 36 +#define TT_MAC_LANGID_ROMANIAN 37 +#define TT_MAC_LANGID_CZECH 38 +#define TT_MAC_LANGID_SLOVAK 39 +#define TT_MAC_LANGID_SLOVENIAN 40 +#define TT_MAC_LANGID_YIDDISH 41 +#define TT_MAC_LANGID_SERBIAN 42 +#define TT_MAC_LANGID_MACEDONIAN 43 +#define TT_MAC_LANGID_BULGARIAN 44 +#define TT_MAC_LANGID_UKRAINIAN 45 +#define TT_MAC_LANGID_BYELORUSSIAN 46 +#define TT_MAC_LANGID_UZBEK 47 +#define TT_MAC_LANGID_KAZAKH 48 +#define TT_MAC_LANGID_AZERBAIJANI 49 +#define TT_MAC_LANGID_AZERBAIJANI_CYRILLIC_SCRIPT 49 +#define TT_MAC_LANGID_AZERBAIJANI_ARABIC_SCRIPT 50 +#define TT_MAC_LANGID_ARMENIAN 51 +#define TT_MAC_LANGID_GEORGIAN 52 +#define TT_MAC_LANGID_MOLDAVIAN 53 +#define TT_MAC_LANGID_KIRGHIZ 54 +#define TT_MAC_LANGID_TAJIKI 55 +#define TT_MAC_LANGID_TURKMEN 56 +#define TT_MAC_LANGID_MONGOLIAN 57 +#define TT_MAC_LANGID_MONGOLIAN_MONGOLIAN_SCRIPT 57 +#define TT_MAC_LANGID_MONGOLIAN_CYRILLIC_SCRIPT 58 +#define TT_MAC_LANGID_PASHTO 59 +#define TT_MAC_LANGID_KURDISH 60 +#define TT_MAC_LANGID_KASHMIRI 61 +#define TT_MAC_LANGID_SINDHI 62 +#define TT_MAC_LANGID_TIBETAN 63 +#define TT_MAC_LANGID_NEPALI 64 +#define TT_MAC_LANGID_SANSKRIT 65 +#define TT_MAC_LANGID_MARATHI 66 +#define TT_MAC_LANGID_BENGALI 67 +#define TT_MAC_LANGID_ASSAMESE 68 +#define TT_MAC_LANGID_GUJARATI 69 +#define TT_MAC_LANGID_PUNJABI 70 +#define TT_MAC_LANGID_ORIYA 71 +#define TT_MAC_LANGID_MALAYALAM 72 +#define TT_MAC_LANGID_KANNADA 73 +#define TT_MAC_LANGID_TAMIL 74 +#define TT_MAC_LANGID_TELUGU 75 +#define TT_MAC_LANGID_SINHALESE 76 +#define TT_MAC_LANGID_BURMESE 77 +#define TT_MAC_LANGID_KHMER 78 +#define TT_MAC_LANGID_LAO 79 +#define TT_MAC_LANGID_VIETNAMESE 80 +#define TT_MAC_LANGID_INDONESIAN 81 +#define TT_MAC_LANGID_TAGALOG 82 +#define TT_MAC_LANGID_MALAY_ROMAN_SCRIPT 83 +#define TT_MAC_LANGID_MALAY_ARABIC_SCRIPT 84 +#define TT_MAC_LANGID_AMHARIC 85 +#define TT_MAC_LANGID_TIGRINYA 86 +#define TT_MAC_LANGID_GALLA 87 +#define TT_MAC_LANGID_SOMALI 88 +#define TT_MAC_LANGID_SWAHILI 89 +#define TT_MAC_LANGID_RUANDA 90 +#define TT_MAC_LANGID_RUNDI 91 +#define TT_MAC_LANGID_CHEWA 92 +#define TT_MAC_LANGID_MALAGASY 93 +#define TT_MAC_LANGID_ESPERANTO 94 +#define TT_MAC_LANGID_WELSH 128 +#define TT_MAC_LANGID_BASQUE 129 +#define TT_MAC_LANGID_CATALAN 130 +#define TT_MAC_LANGID_LATIN 131 +#define TT_MAC_LANGID_QUECHUA 132 +#define TT_MAC_LANGID_GUARANI 133 +#define TT_MAC_LANGID_AYMARA 134 +#define TT_MAC_LANGID_TATAR 135 +#define TT_MAC_LANGID_UIGHUR 136 +#define TT_MAC_LANGID_DZONGKHA 137 +#define TT_MAC_LANGID_JAVANESE 138 +#define TT_MAC_LANGID_SUNDANESE 139 + + /* The following codes are new as of 2000-03-10 */ +#define TT_MAC_LANGID_GALICIAN 140 +#define TT_MAC_LANGID_AFRIKAANS 141 +#define TT_MAC_LANGID_BRETON 142 +#define TT_MAC_LANGID_INUKTITUT 143 +#define TT_MAC_LANGID_SCOTTISH_GAELIC 144 +#define TT_MAC_LANGID_MANX_GAELIC 145 +#define TT_MAC_LANGID_IRISH_GAELIC 146 +#define TT_MAC_LANGID_TONGAN 147 +#define TT_MAC_LANGID_GREEK_POLYTONIC 148 +#define TT_MAC_LANGID_GREELANDIC 149 +#define TT_MAC_LANGID_AZERBAIJANI_ROMAN_SCRIPT 150 + + + /************************************************************************** + * + * @enum: + * TT_MS_LANGID_XXX + * + * @description: + * Possible values of the language identifier field in the name records + * of the SFNT 'name' table if the 'platform' identifier code is + * @TT_PLATFORM_MICROSOFT. These values are also used as return values + * for function @FT_Get_CMap_Language_ID. + * + * The canonical source for Microsoft's IDs is + * + * https://docs.microsoft.com/en-us/windows/desktop/Intl/language-identifier-constants-and-strings , + * + * however, we only provide macros for language identifiers present in + * the OpenType specification: Microsoft has abandoned the concept of + * LCIDs (language code identifiers), and format~1 of the 'name' table + * provides a better mechanism for languages not covered here. + * + * More legacy values not listed in the reference can be found in the + * @FT_TRUETYPE_IDS_H header file. + */ + +#define TT_MS_LANGID_ARABIC_SAUDI_ARABIA 0x0401 +#define TT_MS_LANGID_ARABIC_IRAQ 0x0801 +#define TT_MS_LANGID_ARABIC_EGYPT 0x0C01 +#define TT_MS_LANGID_ARABIC_LIBYA 0x1001 +#define TT_MS_LANGID_ARABIC_ALGERIA 0x1401 +#define TT_MS_LANGID_ARABIC_MOROCCO 0x1801 +#define TT_MS_LANGID_ARABIC_TUNISIA 0x1C01 +#define TT_MS_LANGID_ARABIC_OMAN 0x2001 +#define TT_MS_LANGID_ARABIC_YEMEN 0x2401 +#define TT_MS_LANGID_ARABIC_SYRIA 0x2801 +#define TT_MS_LANGID_ARABIC_JORDAN 0x2C01 +#define TT_MS_LANGID_ARABIC_LEBANON 0x3001 +#define TT_MS_LANGID_ARABIC_KUWAIT 0x3401 +#define TT_MS_LANGID_ARABIC_UAE 0x3801 +#define TT_MS_LANGID_ARABIC_BAHRAIN 0x3C01 +#define TT_MS_LANGID_ARABIC_QATAR 0x4001 +#define TT_MS_LANGID_BULGARIAN_BULGARIA 0x0402 +#define TT_MS_LANGID_CATALAN_CATALAN 0x0403 +#define TT_MS_LANGID_CHINESE_TAIWAN 0x0404 +#define TT_MS_LANGID_CHINESE_PRC 0x0804 +#define TT_MS_LANGID_CHINESE_HONG_KONG 0x0C04 +#define TT_MS_LANGID_CHINESE_SINGAPORE 0x1004 +#define TT_MS_LANGID_CHINESE_MACAO 0x1404 +#define TT_MS_LANGID_CZECH_CZECH_REPUBLIC 0x0405 +#define TT_MS_LANGID_DANISH_DENMARK 0x0406 +#define TT_MS_LANGID_GERMAN_GERMANY 0x0407 +#define TT_MS_LANGID_GERMAN_SWITZERLAND 0x0807 +#define TT_MS_LANGID_GERMAN_AUSTRIA 0x0C07 +#define TT_MS_LANGID_GERMAN_LUXEMBOURG 0x1007 +#define TT_MS_LANGID_GERMAN_LIECHTENSTEIN 0x1407 +#define TT_MS_LANGID_GREEK_GREECE 0x0408 +#define TT_MS_LANGID_ENGLISH_UNITED_STATES 0x0409 +#define TT_MS_LANGID_ENGLISH_UNITED_KINGDOM 0x0809 +#define TT_MS_LANGID_ENGLISH_AUSTRALIA 0x0C09 +#define TT_MS_LANGID_ENGLISH_CANADA 0x1009 +#define TT_MS_LANGID_ENGLISH_NEW_ZEALAND 0x1409 +#define TT_MS_LANGID_ENGLISH_IRELAND 0x1809 +#define TT_MS_LANGID_ENGLISH_SOUTH_AFRICA 0x1C09 +#define TT_MS_LANGID_ENGLISH_JAMAICA 0x2009 +#define TT_MS_LANGID_ENGLISH_CARIBBEAN 0x2409 +#define TT_MS_LANGID_ENGLISH_BELIZE 0x2809 +#define TT_MS_LANGID_ENGLISH_TRINIDAD 0x2C09 +#define TT_MS_LANGID_ENGLISH_ZIMBABWE 0x3009 +#define TT_MS_LANGID_ENGLISH_PHILIPPINES 0x3409 +#define TT_MS_LANGID_ENGLISH_INDIA 0x4009 +#define TT_MS_LANGID_ENGLISH_MALAYSIA 0x4409 +#define TT_MS_LANGID_ENGLISH_SINGAPORE 0x4809 +#define TT_MS_LANGID_SPANISH_SPAIN_TRADITIONAL_SORT 0x040A +#define TT_MS_LANGID_SPANISH_MEXICO 0x080A +#define TT_MS_LANGID_SPANISH_SPAIN_MODERN_SORT 0x0C0A +#define TT_MS_LANGID_SPANISH_GUATEMALA 0x100A +#define TT_MS_LANGID_SPANISH_COSTA_RICA 0x140A +#define TT_MS_LANGID_SPANISH_PANAMA 0x180A +#define TT_MS_LANGID_SPANISH_DOMINICAN_REPUBLIC 0x1C0A +#define TT_MS_LANGID_SPANISH_VENEZUELA 0x200A +#define TT_MS_LANGID_SPANISH_COLOMBIA 0x240A +#define TT_MS_LANGID_SPANISH_PERU 0x280A +#define TT_MS_LANGID_SPANISH_ARGENTINA 0x2C0A +#define TT_MS_LANGID_SPANISH_ECUADOR 0x300A +#define TT_MS_LANGID_SPANISH_CHILE 0x340A +#define TT_MS_LANGID_SPANISH_URUGUAY 0x380A +#define TT_MS_LANGID_SPANISH_PARAGUAY 0x3C0A +#define TT_MS_LANGID_SPANISH_BOLIVIA 0x400A +#define TT_MS_LANGID_SPANISH_EL_SALVADOR 0x440A +#define TT_MS_LANGID_SPANISH_HONDURAS 0x480A +#define TT_MS_LANGID_SPANISH_NICARAGUA 0x4C0A +#define TT_MS_LANGID_SPANISH_PUERTO_RICO 0x500A +#define TT_MS_LANGID_SPANISH_UNITED_STATES 0x540A +#define TT_MS_LANGID_FINNISH_FINLAND 0x040B +#define TT_MS_LANGID_FRENCH_FRANCE 0x040C +#define TT_MS_LANGID_FRENCH_BELGIUM 0x080C +#define TT_MS_LANGID_FRENCH_CANADA 0x0C0C +#define TT_MS_LANGID_FRENCH_SWITZERLAND 0x100C +#define TT_MS_LANGID_FRENCH_LUXEMBOURG 0x140C +#define TT_MS_LANGID_FRENCH_MONACO 0x180C +#define TT_MS_LANGID_HEBREW_ISRAEL 0x040D +#define TT_MS_LANGID_HUNGARIAN_HUNGARY 0x040E +#define TT_MS_LANGID_ICELANDIC_ICELAND 0x040F +#define TT_MS_LANGID_ITALIAN_ITALY 0x0410 +#define TT_MS_LANGID_ITALIAN_SWITZERLAND 0x0810 +#define TT_MS_LANGID_JAPANESE_JAPAN 0x0411 +#define TT_MS_LANGID_KOREAN_KOREA 0x0412 +#define TT_MS_LANGID_DUTCH_NETHERLANDS 0x0413 +#define TT_MS_LANGID_DUTCH_BELGIUM 0x0813 +#define TT_MS_LANGID_NORWEGIAN_NORWAY_BOKMAL 0x0414 +#define TT_MS_LANGID_NORWEGIAN_NORWAY_NYNORSK 0x0814 +#define TT_MS_LANGID_POLISH_POLAND 0x0415 +#define TT_MS_LANGID_PORTUGUESE_BRAZIL 0x0416 +#define TT_MS_LANGID_PORTUGUESE_PORTUGAL 0x0816 +#define TT_MS_LANGID_ROMANSH_SWITZERLAND 0x0417 +#define TT_MS_LANGID_ROMANIAN_ROMANIA 0x0418 +#define TT_MS_LANGID_RUSSIAN_RUSSIA 0x0419 +#define TT_MS_LANGID_CROATIAN_CROATIA 0x041A +#define TT_MS_LANGID_SERBIAN_SERBIA_LATIN 0x081A +#define TT_MS_LANGID_SERBIAN_SERBIA_CYRILLIC 0x0C1A +#define TT_MS_LANGID_CROATIAN_BOSNIA_HERZEGOVINA 0x101A +#define TT_MS_LANGID_BOSNIAN_BOSNIA_HERZEGOVINA 0x141A +#define TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_LATIN 0x181A +#define TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_CYRILLIC 0x1C1A +#define TT_MS_LANGID_BOSNIAN_BOSNIA_HERZ_CYRILLIC 0x201A +#define TT_MS_LANGID_SLOVAK_SLOVAKIA 0x041B +#define TT_MS_LANGID_ALBANIAN_ALBANIA 0x041C +#define TT_MS_LANGID_SWEDISH_SWEDEN 0x041D +#define TT_MS_LANGID_SWEDISH_FINLAND 0x081D +#define TT_MS_LANGID_THAI_THAILAND 0x041E +#define TT_MS_LANGID_TURKISH_TURKEY 0x041F +#define TT_MS_LANGID_URDU_PAKISTAN 0x0420 +#define TT_MS_LANGID_INDONESIAN_INDONESIA 0x0421 +#define TT_MS_LANGID_UKRAINIAN_UKRAINE 0x0422 +#define TT_MS_LANGID_BELARUSIAN_BELARUS 0x0423 +#define TT_MS_LANGID_SLOVENIAN_SLOVENIA 0x0424 +#define TT_MS_LANGID_ESTONIAN_ESTONIA 0x0425 +#define TT_MS_LANGID_LATVIAN_LATVIA 0x0426 +#define TT_MS_LANGID_LITHUANIAN_LITHUANIA 0x0427 +#define TT_MS_LANGID_TAJIK_TAJIKISTAN 0x0428 +#define TT_MS_LANGID_VIETNAMESE_VIET_NAM 0x042A +#define TT_MS_LANGID_ARMENIAN_ARMENIA 0x042B +#define TT_MS_LANGID_AZERI_AZERBAIJAN_LATIN 0x042C +#define TT_MS_LANGID_AZERI_AZERBAIJAN_CYRILLIC 0x082C +#define TT_MS_LANGID_BASQUE_BASQUE 0x042D +#define TT_MS_LANGID_UPPER_SORBIAN_GERMANY 0x042E +#define TT_MS_LANGID_LOWER_SORBIAN_GERMANY 0x082E +#define TT_MS_LANGID_MACEDONIAN_MACEDONIA 0x042F +#define TT_MS_LANGID_SETSWANA_SOUTH_AFRICA 0x0432 +#define TT_MS_LANGID_ISIXHOSA_SOUTH_AFRICA 0x0434 +#define TT_MS_LANGID_ISIZULU_SOUTH_AFRICA 0x0435 +#define TT_MS_LANGID_AFRIKAANS_SOUTH_AFRICA 0x0436 +#define TT_MS_LANGID_GEORGIAN_GEORGIA 0x0437 +#define TT_MS_LANGID_FAEROESE_FAEROE_ISLANDS 0x0438 +#define TT_MS_LANGID_HINDI_INDIA 0x0439 +#define TT_MS_LANGID_MALTESE_MALTA 0x043A +#define TT_MS_LANGID_SAMI_NORTHERN_NORWAY 0x043B +#define TT_MS_LANGID_SAMI_NORTHERN_SWEDEN 0x083B +#define TT_MS_LANGID_SAMI_NORTHERN_FINLAND 0x0C3B +#define TT_MS_LANGID_SAMI_LULE_NORWAY 0x103B +#define TT_MS_LANGID_SAMI_LULE_SWEDEN 0x143B +#define TT_MS_LANGID_SAMI_SOUTHERN_NORWAY 0x183B +#define TT_MS_LANGID_SAMI_SOUTHERN_SWEDEN 0x1C3B +#define TT_MS_LANGID_SAMI_SKOLT_FINLAND 0x203B +#define TT_MS_LANGID_SAMI_INARI_FINLAND 0x243B +#define TT_MS_LANGID_IRISH_IRELAND 0x083C +#define TT_MS_LANGID_MALAY_MALAYSIA 0x043E +#define TT_MS_LANGID_MALAY_BRUNEI_DARUSSALAM 0x083E +#define TT_MS_LANGID_KAZAKH_KAZAKHSTAN 0x043F +#define TT_MS_LANGID_KYRGYZ_KYRGYZSTAN /* Cyrillic */ 0x0440 +#define TT_MS_LANGID_KISWAHILI_KENYA 0x0441 +#define TT_MS_LANGID_TURKMEN_TURKMENISTAN 0x0442 +#define TT_MS_LANGID_UZBEK_UZBEKISTAN_LATIN 0x0443 +#define TT_MS_LANGID_UZBEK_UZBEKISTAN_CYRILLIC 0x0843 +#define TT_MS_LANGID_TATAR_RUSSIA 0x0444 +#define TT_MS_LANGID_BENGALI_INDIA 0x0445 +#define TT_MS_LANGID_BENGALI_BANGLADESH 0x0845 +#define TT_MS_LANGID_PUNJABI_INDIA 0x0446 +#define TT_MS_LANGID_GUJARATI_INDIA 0x0447 +#define TT_MS_LANGID_ODIA_INDIA 0x0448 +#define TT_MS_LANGID_TAMIL_INDIA 0x0449 +#define TT_MS_LANGID_TELUGU_INDIA 0x044A +#define TT_MS_LANGID_KANNADA_INDIA 0x044B +#define TT_MS_LANGID_MALAYALAM_INDIA 0x044C +#define TT_MS_LANGID_ASSAMESE_INDIA 0x044D +#define TT_MS_LANGID_MARATHI_INDIA 0x044E +#define TT_MS_LANGID_SANSKRIT_INDIA 0x044F +#define TT_MS_LANGID_MONGOLIAN_MONGOLIA /* Cyrillic */ 0x0450 +#define TT_MS_LANGID_MONGOLIAN_PRC 0x0850 +#define TT_MS_LANGID_TIBETAN_PRC 0x0451 +#define TT_MS_LANGID_WELSH_UNITED_KINGDOM 0x0452 +#define TT_MS_LANGID_KHMER_CAMBODIA 0x0453 +#define TT_MS_LANGID_LAO_LAOS 0x0454 +#define TT_MS_LANGID_GALICIAN_GALICIAN 0x0456 +#define TT_MS_LANGID_KONKANI_INDIA 0x0457 +#define TT_MS_LANGID_SYRIAC_SYRIA 0x045A +#define TT_MS_LANGID_SINHALA_SRI_LANKA 0x045B +#define TT_MS_LANGID_INUKTITUT_CANADA 0x045D +#define TT_MS_LANGID_INUKTITUT_CANADA_LATIN 0x085D +#define TT_MS_LANGID_AMHARIC_ETHIOPIA 0x045E +#define TT_MS_LANGID_TAMAZIGHT_ALGERIA 0x085F +#define TT_MS_LANGID_NEPALI_NEPAL 0x0461 +#define TT_MS_LANGID_FRISIAN_NETHERLANDS 0x0462 +#define TT_MS_LANGID_PASHTO_AFGHANISTAN 0x0463 +#define TT_MS_LANGID_FILIPINO_PHILIPPINES 0x0464 +#define TT_MS_LANGID_DHIVEHI_MALDIVES 0x0465 +#define TT_MS_LANGID_HAUSA_NIGERIA 0x0468 +#define TT_MS_LANGID_YORUBA_NIGERIA 0x046A +#define TT_MS_LANGID_QUECHUA_BOLIVIA 0x046B +#define TT_MS_LANGID_QUECHUA_ECUADOR 0x086B +#define TT_MS_LANGID_QUECHUA_PERU 0x0C6B +#define TT_MS_LANGID_SESOTHO_SA_LEBOA_SOUTH_AFRICA 0x046C +#define TT_MS_LANGID_BASHKIR_RUSSIA 0x046D +#define TT_MS_LANGID_LUXEMBOURGISH_LUXEMBOURG 0x046E +#define TT_MS_LANGID_GREENLANDIC_GREENLAND 0x046F +#define TT_MS_LANGID_IGBO_NIGERIA 0x0470 +#define TT_MS_LANGID_YI_PRC 0x0478 +#define TT_MS_LANGID_MAPUDUNGUN_CHILE 0x047A +#define TT_MS_LANGID_MOHAWK_MOHAWK 0x047C +#define TT_MS_LANGID_BRETON_FRANCE 0x047E +#define TT_MS_LANGID_UIGHUR_PRC 0x0480 +#define TT_MS_LANGID_MAORI_NEW_ZEALAND 0x0481 +#define TT_MS_LANGID_OCCITAN_FRANCE 0x0482 +#define TT_MS_LANGID_CORSICAN_FRANCE 0x0483 +#define TT_MS_LANGID_ALSATIAN_FRANCE 0x0484 +#define TT_MS_LANGID_YAKUT_RUSSIA 0x0485 +#define TT_MS_LANGID_KICHE_GUATEMALA 0x0486 +#define TT_MS_LANGID_KINYARWANDA_RWANDA 0x0487 +#define TT_MS_LANGID_WOLOF_SENEGAL 0x0488 +#define TT_MS_LANGID_DARI_AFGHANISTAN 0x048C + + /* */ + + + /* legacy macro definitions not present in OpenType 1.8.1 */ +#define TT_MS_LANGID_ARABIC_GENERAL 0x0001 +#define TT_MS_LANGID_CATALAN_SPAIN \ + TT_MS_LANGID_CATALAN_CATALAN +#define TT_MS_LANGID_CHINESE_GENERAL 0x0004 +#define TT_MS_LANGID_CHINESE_MACAU \ + TT_MS_LANGID_CHINESE_MACAO +#define TT_MS_LANGID_GERMAN_LIECHTENSTEI \ + TT_MS_LANGID_GERMAN_LIECHTENSTEIN +#define TT_MS_LANGID_ENGLISH_GENERAL 0x0009 +#define TT_MS_LANGID_ENGLISH_INDONESIA 0x3809 +#define TT_MS_LANGID_ENGLISH_HONG_KONG 0x3C09 +#define TT_MS_LANGID_SPANISH_SPAIN_INTERNATIONAL_SORT \ + TT_MS_LANGID_SPANISH_SPAIN_MODERN_SORT +#define TT_MS_LANGID_SPANISH_LATIN_AMERICA 0xE40AU +#define TT_MS_LANGID_FRENCH_WEST_INDIES 0x1C0C +#define TT_MS_LANGID_FRENCH_REUNION 0x200C +#define TT_MS_LANGID_FRENCH_CONGO 0x240C + /* which was formerly: */ +#define TT_MS_LANGID_FRENCH_ZAIRE \ + TT_MS_LANGID_FRENCH_CONGO +#define TT_MS_LANGID_FRENCH_SENEGAL 0x280C +#define TT_MS_LANGID_FRENCH_CAMEROON 0x2C0C +#define TT_MS_LANGID_FRENCH_COTE_D_IVOIRE 0x300C +#define TT_MS_LANGID_FRENCH_MALI 0x340C +#define TT_MS_LANGID_FRENCH_MOROCCO 0x380C +#define TT_MS_LANGID_FRENCH_HAITI 0x3C0C +#define TT_MS_LANGID_FRENCH_NORTH_AFRICA 0xE40CU +#define TT_MS_LANGID_KOREAN_EXTENDED_WANSUNG_KOREA \ + TT_MS_LANGID_KOREAN_KOREA +#define TT_MS_LANGID_KOREAN_JOHAB_KOREA 0x0812 +#define TT_MS_LANGID_RHAETO_ROMANIC_SWITZERLAND \ + TT_MS_LANGID_ROMANSH_SWITZERLAND +#define TT_MS_LANGID_MOLDAVIAN_MOLDAVIA 0x0818 +#define TT_MS_LANGID_RUSSIAN_MOLDAVIA 0x0819 +#define TT_MS_LANGID_URDU_INDIA 0x0820 +#define TT_MS_LANGID_CLASSIC_LITHUANIAN_LITHUANIA 0x0827 +#define TT_MS_LANGID_SLOVENE_SLOVENIA \ + TT_MS_LANGID_SLOVENIAN_SLOVENIA +#define TT_MS_LANGID_FARSI_IRAN 0x0429 +#define TT_MS_LANGID_BASQUE_SPAIN \ + TT_MS_LANGID_BASQUE_BASQUE +#define TT_MS_LANGID_SORBIAN_GERMANY \ + TT_MS_LANGID_UPPER_SORBIAN_GERMANY +#define TT_MS_LANGID_SUTU_SOUTH_AFRICA 0x0430 +#define TT_MS_LANGID_TSONGA_SOUTH_AFRICA 0x0431 +#define TT_MS_LANGID_TSWANA_SOUTH_AFRICA \ + TT_MS_LANGID_SETSWANA_SOUTH_AFRICA +#define TT_MS_LANGID_VENDA_SOUTH_AFRICA 0x0433 +#define TT_MS_LANGID_XHOSA_SOUTH_AFRICA \ + TT_MS_LANGID_ISIXHOSA_SOUTH_AFRICA +#define TT_MS_LANGID_ZULU_SOUTH_AFRICA \ + TT_MS_LANGID_ISIZULU_SOUTH_AFRICA +#define TT_MS_LANGID_SAAMI_LAPONIA 0x043B + /* the next two values are incorrectly inverted */ +#define TT_MS_LANGID_IRISH_GAELIC_IRELAND 0x043C +#define TT_MS_LANGID_SCOTTISH_GAELIC_UNITED_KINGDOM 0x083C +#define TT_MS_LANGID_YIDDISH_GERMANY 0x043D +#define TT_MS_LANGID_KAZAK_KAZAKSTAN \ + TT_MS_LANGID_KAZAKH_KAZAKHSTAN +#define TT_MS_LANGID_KIRGHIZ_KIRGHIZ_REPUBLIC \ + TT_MS_LANGID_KYRGYZ_KYRGYZSTAN +#define TT_MS_LANGID_KIRGHIZ_KIRGHIZSTAN \ + TT_MS_LANGID_KYRGYZ_KYRGYZSTAN +#define TT_MS_LANGID_SWAHILI_KENYA \ + TT_MS_LANGID_KISWAHILI_KENYA +#define TT_MS_LANGID_TATAR_TATARSTAN \ + TT_MS_LANGID_TATAR_RUSSIA +#define TT_MS_LANGID_PUNJABI_ARABIC_PAKISTAN 0x0846 +#define TT_MS_LANGID_ORIYA_INDIA \ + TT_MS_LANGID_ODIA_INDIA +#define TT_MS_LANGID_MONGOLIAN_MONGOLIA_MONGOLIAN \ + TT_MS_LANGID_MONGOLIAN_PRC +#define TT_MS_LANGID_TIBETAN_CHINA \ + TT_MS_LANGID_TIBETAN_PRC +#define TT_MS_LANGID_DZONGHKA_BHUTAN 0x0851 +#define TT_MS_LANGID_TIBETAN_BHUTAN \ + TT_MS_LANGID_DZONGHKA_BHUTAN +#define TT_MS_LANGID_WELSH_WALES \ + TT_MS_LANGID_WELSH_UNITED_KINGDOM +#define TT_MS_LANGID_BURMESE_MYANMAR 0x0455 +#define TT_MS_LANGID_GALICIAN_SPAIN \ + TT_MS_LANGID_GALICIAN_GALICIAN +#define TT_MS_LANGID_MANIPURI_INDIA /* Bengali */ 0x0458 +#define TT_MS_LANGID_SINDHI_INDIA /* Arabic */ 0x0459 +#define TT_MS_LANGID_SINDHI_PAKISTAN 0x0859 +#define TT_MS_LANGID_SINHALESE_SRI_LANKA \ + TT_MS_LANGID_SINHALA_SRI_LANKA +#define TT_MS_LANGID_CHEROKEE_UNITED_STATES 0x045C +#define TT_MS_LANGID_TAMAZIGHT_MOROCCO /* Arabic */ 0x045F +#define TT_MS_LANGID_TAMAZIGHT_MOROCCO_LATIN \ + TT_MS_LANGID_TAMAZIGHT_ALGERIA +#define TT_MS_LANGID_KASHMIRI_PAKISTAN /* Arabic */ 0x0460 +#define TT_MS_LANGID_KASHMIRI_SASIA 0x0860 +#define TT_MS_LANGID_KASHMIRI_INDIA \ + TT_MS_LANGID_KASHMIRI_SASIA +#define TT_MS_LANGID_NEPALI_INDIA 0x0861 +#define TT_MS_LANGID_DIVEHI_MALDIVES \ + TT_MS_LANGID_DHIVEHI_MALDIVES +#define TT_MS_LANGID_EDO_NIGERIA 0x0466 +#define TT_MS_LANGID_FULFULDE_NIGERIA 0x0467 +#define TT_MS_LANGID_IBIBIO_NIGERIA 0x0469 +#define TT_MS_LANGID_SEPEDI_SOUTH_AFRICA \ + TT_MS_LANGID_SESOTHO_SA_LEBOA_SOUTH_AFRICA +#define TT_MS_LANGID_SOTHO_SOUTHERN_SOUTH_AFRICA \ + TT_MS_LANGID_SESOTHO_SA_LEBOA_SOUTH_AFRICA +#define TT_MS_LANGID_KANURI_NIGERIA 0x0471 +#define TT_MS_LANGID_OROMO_ETHIOPIA 0x0472 +#define TT_MS_LANGID_TIGRIGNA_ETHIOPIA 0x0473 +#define TT_MS_LANGID_TIGRIGNA_ERYTHREA 0x0873 +#define TT_MS_LANGID_TIGRIGNA_ERYTREA \ + TT_MS_LANGID_TIGRIGNA_ERYTHREA +#define TT_MS_LANGID_GUARANI_PARAGUAY 0x0474 +#define TT_MS_LANGID_HAWAIIAN_UNITED_STATES 0x0475 +#define TT_MS_LANGID_LATIN 0x0476 +#define TT_MS_LANGID_SOMALI_SOMALIA 0x0477 +#define TT_MS_LANGID_YI_CHINA \ + TT_MS_LANGID_YI_PRC +#define TT_MS_LANGID_PAPIAMENTU_NETHERLANDS_ANTILLES 0x0479 +#define TT_MS_LANGID_UIGHUR_CHINA \ + TT_MS_LANGID_UIGHUR_PRC + + + /************************************************************************** + * + * @enum: + * TT_NAME_ID_XXX + * + * @description: + * Possible values of the 'name' identifier field in the name records of + * an SFNT 'name' table. These values are platform independent. + */ + +#define TT_NAME_ID_COPYRIGHT 0 +#define TT_NAME_ID_FONT_FAMILY 1 +#define TT_NAME_ID_FONT_SUBFAMILY 2 +#define TT_NAME_ID_UNIQUE_ID 3 +#define TT_NAME_ID_FULL_NAME 4 +#define TT_NAME_ID_VERSION_STRING 5 +#define TT_NAME_ID_PS_NAME 6 +#define TT_NAME_ID_TRADEMARK 7 + + /* the following values are from the OpenType spec */ +#define TT_NAME_ID_MANUFACTURER 8 +#define TT_NAME_ID_DESIGNER 9 +#define TT_NAME_ID_DESCRIPTION 10 +#define TT_NAME_ID_VENDOR_URL 11 +#define TT_NAME_ID_DESIGNER_URL 12 +#define TT_NAME_ID_LICENSE 13 +#define TT_NAME_ID_LICENSE_URL 14 + /* number 15 is reserved */ +#define TT_NAME_ID_TYPOGRAPHIC_FAMILY 16 +#define TT_NAME_ID_TYPOGRAPHIC_SUBFAMILY 17 +#define TT_NAME_ID_MAC_FULL_NAME 18 + + /* The following code is new as of 2000-01-21 */ +#define TT_NAME_ID_SAMPLE_TEXT 19 + + /* This is new in OpenType 1.3 */ +#define TT_NAME_ID_CID_FINDFONT_NAME 20 + + /* This is new in OpenType 1.5 */ +#define TT_NAME_ID_WWS_FAMILY 21 +#define TT_NAME_ID_WWS_SUBFAMILY 22 + + /* This is new in OpenType 1.7 */ +#define TT_NAME_ID_LIGHT_BACKGROUND 23 +#define TT_NAME_ID_DARK_BACKGROUND 24 + + /* This is new in OpenType 1.8 */ +#define TT_NAME_ID_VARIATIONS_PREFIX 25 + + /* these two values are deprecated */ +#define TT_NAME_ID_PREFERRED_FAMILY TT_NAME_ID_TYPOGRAPHIC_FAMILY +#define TT_NAME_ID_PREFERRED_SUBFAMILY TT_NAME_ID_TYPOGRAPHIC_SUBFAMILY + + + /************************************************************************** + * + * @enum: + * TT_UCR_XXX + * + * @description: + * Possible bit mask values for the `ulUnicodeRangeX` fields in an SFNT + * 'OS/2' table. + */ + + /* ulUnicodeRange1 */ + /* --------------- */ + + /* Bit 0 Basic Latin */ +#define TT_UCR_BASIC_LATIN (1L << 0) /* U+0020-U+007E */ + /* Bit 1 C1 Controls and Latin-1 Supplement */ +#define TT_UCR_LATIN1_SUPPLEMENT (1L << 1) /* U+0080-U+00FF */ + /* Bit 2 Latin Extended-A */ +#define TT_UCR_LATIN_EXTENDED_A (1L << 2) /* U+0100-U+017F */ + /* Bit 3 Latin Extended-B */ +#define TT_UCR_LATIN_EXTENDED_B (1L << 3) /* U+0180-U+024F */ + /* Bit 4 IPA Extensions */ + /* Phonetic Extensions */ + /* Phonetic Extensions Supplement */ +#define TT_UCR_IPA_EXTENSIONS (1L << 4) /* U+0250-U+02AF */ + /* U+1D00-U+1D7F */ + /* U+1D80-U+1DBF */ + /* Bit 5 Spacing Modifier Letters */ + /* Modifier Tone Letters */ +#define TT_UCR_SPACING_MODIFIER (1L << 5) /* U+02B0-U+02FF */ + /* U+A700-U+A71F */ + /* Bit 6 Combining Diacritical Marks */ + /* Combining Diacritical Marks Supplement */ +#define TT_UCR_COMBINING_DIACRITICAL_MARKS (1L << 6) /* U+0300-U+036F */ + /* U+1DC0-U+1DFF */ + /* Bit 7 Greek and Coptic */ +#define TT_UCR_GREEK (1L << 7) /* U+0370-U+03FF */ + /* Bit 8 Coptic */ +#define TT_UCR_COPTIC (1L << 8) /* U+2C80-U+2CFF */ + /* Bit 9 Cyrillic */ + /* Cyrillic Supplement */ + /* Cyrillic Extended-A */ + /* Cyrillic Extended-B */ +#define TT_UCR_CYRILLIC (1L << 9) /* U+0400-U+04FF */ + /* U+0500-U+052F */ + /* U+2DE0-U+2DFF */ + /* U+A640-U+A69F */ + /* Bit 10 Armenian */ +#define TT_UCR_ARMENIAN (1L << 10) /* U+0530-U+058F */ + /* Bit 11 Hebrew */ +#define TT_UCR_HEBREW (1L << 11) /* U+0590-U+05FF */ + /* Bit 12 Vai */ +#define TT_UCR_VAI (1L << 12) /* U+A500-U+A63F */ + /* Bit 13 Arabic */ + /* Arabic Supplement */ +#define TT_UCR_ARABIC (1L << 13) /* U+0600-U+06FF */ + /* U+0750-U+077F */ + /* Bit 14 NKo */ +#define TT_UCR_NKO (1L << 14) /* U+07C0-U+07FF */ + /* Bit 15 Devanagari */ +#define TT_UCR_DEVANAGARI (1L << 15) /* U+0900-U+097F */ + /* Bit 16 Bengali */ +#define TT_UCR_BENGALI (1L << 16) /* U+0980-U+09FF */ + /* Bit 17 Gurmukhi */ +#define TT_UCR_GURMUKHI (1L << 17) /* U+0A00-U+0A7F */ + /* Bit 18 Gujarati */ +#define TT_UCR_GUJARATI (1L << 18) /* U+0A80-U+0AFF */ + /* Bit 19 Oriya */ +#define TT_UCR_ORIYA (1L << 19) /* U+0B00-U+0B7F */ + /* Bit 20 Tamil */ +#define TT_UCR_TAMIL (1L << 20) /* U+0B80-U+0BFF */ + /* Bit 21 Telugu */ +#define TT_UCR_TELUGU (1L << 21) /* U+0C00-U+0C7F */ + /* Bit 22 Kannada */ +#define TT_UCR_KANNADA (1L << 22) /* U+0C80-U+0CFF */ + /* Bit 23 Malayalam */ +#define TT_UCR_MALAYALAM (1L << 23) /* U+0D00-U+0D7F */ + /* Bit 24 Thai */ +#define TT_UCR_THAI (1L << 24) /* U+0E00-U+0E7F */ + /* Bit 25 Lao */ +#define TT_UCR_LAO (1L << 25) /* U+0E80-U+0EFF */ + /* Bit 26 Georgian */ + /* Georgian Supplement */ +#define TT_UCR_GEORGIAN (1L << 26) /* U+10A0-U+10FF */ + /* U+2D00-U+2D2F */ + /* Bit 27 Balinese */ +#define TT_UCR_BALINESE (1L << 27) /* U+1B00-U+1B7F */ + /* Bit 28 Hangul Jamo */ +#define TT_UCR_HANGUL_JAMO (1L << 28) /* U+1100-U+11FF */ + /* Bit 29 Latin Extended Additional */ + /* Latin Extended-C */ + /* Latin Extended-D */ +#define TT_UCR_LATIN_EXTENDED_ADDITIONAL (1L << 29) /* U+1E00-U+1EFF */ + /* U+2C60-U+2C7F */ + /* U+A720-U+A7FF */ + /* Bit 30 Greek Extended */ +#define TT_UCR_GREEK_EXTENDED (1L << 30) /* U+1F00-U+1FFF */ + /* Bit 31 General Punctuation */ + /* Supplemental Punctuation */ +#define TT_UCR_GENERAL_PUNCTUATION (1L << 31) /* U+2000-U+206F */ + /* U+2E00-U+2E7F */ + + /* ulUnicodeRange2 */ + /* --------------- */ + + /* Bit 32 Superscripts And Subscripts */ +#define TT_UCR_SUPERSCRIPTS_SUBSCRIPTS (1L << 0) /* U+2070-U+209F */ + /* Bit 33 Currency Symbols */ +#define TT_UCR_CURRENCY_SYMBOLS (1L << 1) /* U+20A0-U+20CF */ + /* Bit 34 Combining Diacritical Marks For Symbols */ +#define TT_UCR_COMBINING_DIACRITICAL_MARKS_SYMB \ + (1L << 2) /* U+20D0-U+20FF */ + /* Bit 35 Letterlike Symbols */ +#define TT_UCR_LETTERLIKE_SYMBOLS (1L << 3) /* U+2100-U+214F */ + /* Bit 36 Number Forms */ +#define TT_UCR_NUMBER_FORMS (1L << 4) /* U+2150-U+218F */ + /* Bit 37 Arrows */ + /* Supplemental Arrows-A */ + /* Supplemental Arrows-B */ + /* Miscellaneous Symbols and Arrows */ +#define TT_UCR_ARROWS (1L << 5) /* U+2190-U+21FF */ + /* U+27F0-U+27FF */ + /* U+2900-U+297F */ + /* U+2B00-U+2BFF */ + /* Bit 38 Mathematical Operators */ + /* Supplemental Mathematical Operators */ + /* Miscellaneous Mathematical Symbols-A */ + /* Miscellaneous Mathematical Symbols-B */ +#define TT_UCR_MATHEMATICAL_OPERATORS (1L << 6) /* U+2200-U+22FF */ + /* U+2A00-U+2AFF */ + /* U+27C0-U+27EF */ + /* U+2980-U+29FF */ + /* Bit 39 Miscellaneous Technical */ +#define TT_UCR_MISCELLANEOUS_TECHNICAL (1L << 7) /* U+2300-U+23FF */ + /* Bit 40 Control Pictures */ +#define TT_UCR_CONTROL_PICTURES (1L << 8) /* U+2400-U+243F */ + /* Bit 41 Optical Character Recognition */ +#define TT_UCR_OCR (1L << 9) /* U+2440-U+245F */ + /* Bit 42 Enclosed Alphanumerics */ +#define TT_UCR_ENCLOSED_ALPHANUMERICS (1L << 10) /* U+2460-U+24FF */ + /* Bit 43 Box Drawing */ +#define TT_UCR_BOX_DRAWING (1L << 11) /* U+2500-U+257F */ + /* Bit 44 Block Elements */ +#define TT_UCR_BLOCK_ELEMENTS (1L << 12) /* U+2580-U+259F */ + /* Bit 45 Geometric Shapes */ +#define TT_UCR_GEOMETRIC_SHAPES (1L << 13) /* U+25A0-U+25FF */ + /* Bit 46 Miscellaneous Symbols */ +#define TT_UCR_MISCELLANEOUS_SYMBOLS (1L << 14) /* U+2600-U+26FF */ + /* Bit 47 Dingbats */ +#define TT_UCR_DINGBATS (1L << 15) /* U+2700-U+27BF */ + /* Bit 48 CJK Symbols and Punctuation */ +#define TT_UCR_CJK_SYMBOLS (1L << 16) /* U+3000-U+303F */ + /* Bit 49 Hiragana */ +#define TT_UCR_HIRAGANA (1L << 17) /* U+3040-U+309F */ + /* Bit 50 Katakana */ + /* Katakana Phonetic Extensions */ +#define TT_UCR_KATAKANA (1L << 18) /* U+30A0-U+30FF */ + /* U+31F0-U+31FF */ + /* Bit 51 Bopomofo */ + /* Bopomofo Extended */ +#define TT_UCR_BOPOMOFO (1L << 19) /* U+3100-U+312F */ + /* U+31A0-U+31BF */ + /* Bit 52 Hangul Compatibility Jamo */ +#define TT_UCR_HANGUL_COMPATIBILITY_JAMO (1L << 20) /* U+3130-U+318F */ + /* Bit 53 Phags-Pa */ +#define TT_UCR_CJK_MISC (1L << 21) /* U+A840-U+A87F */ +#define TT_UCR_KANBUN TT_UCR_CJK_MISC /* deprecated */ +#define TT_UCR_PHAGSPA + /* Bit 54 Enclosed CJK Letters and Months */ +#define TT_UCR_ENCLOSED_CJK_LETTERS_MONTHS (1L << 22) /* U+3200-U+32FF */ + /* Bit 55 CJK Compatibility */ +#define TT_UCR_CJK_COMPATIBILITY (1L << 23) /* U+3300-U+33FF */ + /* Bit 56 Hangul Syllables */ +#define TT_UCR_HANGUL (1L << 24) /* U+AC00-U+D7A3 */ + /* Bit 57 High Surrogates */ + /* High Private Use Surrogates */ + /* Low Surrogates */ + + /* According to OpenType specs v.1.3+, */ + /* setting bit 57 implies that there is */ + /* at least one codepoint beyond the */ + /* Basic Multilingual Plane that is */ + /* supported by this font. So it really */ + /* means >= U+10000. */ +#define TT_UCR_SURROGATES (1L << 25) /* U+D800-U+DB7F */ + /* U+DB80-U+DBFF */ + /* U+DC00-U+DFFF */ +#define TT_UCR_NON_PLANE_0 TT_UCR_SURROGATES + /* Bit 58 Phoenician */ +#define TT_UCR_PHOENICIAN (1L << 26) /*U+10900-U+1091F*/ + /* Bit 59 CJK Unified Ideographs */ + /* CJK Radicals Supplement */ + /* Kangxi Radicals */ + /* Ideographic Description Characters */ + /* CJK Unified Ideographs Extension A */ + /* CJK Unified Ideographs Extension B */ + /* Kanbun */ +#define TT_UCR_CJK_UNIFIED_IDEOGRAPHS (1L << 27) /* U+4E00-U+9FFF */ + /* U+2E80-U+2EFF */ + /* U+2F00-U+2FDF */ + /* U+2FF0-U+2FFF */ + /* U+3400-U+4DB5 */ + /*U+20000-U+2A6DF*/ + /* U+3190-U+319F */ + /* Bit 60 Private Use */ +#define TT_UCR_PRIVATE_USE (1L << 28) /* U+E000-U+F8FF */ + /* Bit 61 CJK Strokes */ + /* CJK Compatibility Ideographs */ + /* CJK Compatibility Ideographs Supplement */ +#define TT_UCR_CJK_COMPATIBILITY_IDEOGRAPHS (1L << 29) /* U+31C0-U+31EF */ + /* U+F900-U+FAFF */ + /*U+2F800-U+2FA1F*/ + /* Bit 62 Alphabetic Presentation Forms */ +#define TT_UCR_ALPHABETIC_PRESENTATION_FORMS (1L << 30) /* U+FB00-U+FB4F */ + /* Bit 63 Arabic Presentation Forms-A */ +#define TT_UCR_ARABIC_PRESENTATION_FORMS_A (1L << 31) /* U+FB50-U+FDFF */ + + /* ulUnicodeRange3 */ + /* --------------- */ + + /* Bit 64 Combining Half Marks */ +#define TT_UCR_COMBINING_HALF_MARKS (1L << 0) /* U+FE20-U+FE2F */ + /* Bit 65 Vertical forms */ + /* CJK Compatibility Forms */ +#define TT_UCR_CJK_COMPATIBILITY_FORMS (1L << 1) /* U+FE10-U+FE1F */ + /* U+FE30-U+FE4F */ + /* Bit 66 Small Form Variants */ +#define TT_UCR_SMALL_FORM_VARIANTS (1L << 2) /* U+FE50-U+FE6F */ + /* Bit 67 Arabic Presentation Forms-B */ +#define TT_UCR_ARABIC_PRESENTATION_FORMS_B (1L << 3) /* U+FE70-U+FEFE */ + /* Bit 68 Halfwidth and Fullwidth Forms */ +#define TT_UCR_HALFWIDTH_FULLWIDTH_FORMS (1L << 4) /* U+FF00-U+FFEF */ + /* Bit 69 Specials */ +#define TT_UCR_SPECIALS (1L << 5) /* U+FFF0-U+FFFD */ + /* Bit 70 Tibetan */ +#define TT_UCR_TIBETAN (1L << 6) /* U+0F00-U+0FFF */ + /* Bit 71 Syriac */ +#define TT_UCR_SYRIAC (1L << 7) /* U+0700-U+074F */ + /* Bit 72 Thaana */ +#define TT_UCR_THAANA (1L << 8) /* U+0780-U+07BF */ + /* Bit 73 Sinhala */ +#define TT_UCR_SINHALA (1L << 9) /* U+0D80-U+0DFF */ + /* Bit 74 Myanmar */ +#define TT_UCR_MYANMAR (1L << 10) /* U+1000-U+109F */ + /* Bit 75 Ethiopic */ + /* Ethiopic Supplement */ + /* Ethiopic Extended */ +#define TT_UCR_ETHIOPIC (1L << 11) /* U+1200-U+137F */ + /* U+1380-U+139F */ + /* U+2D80-U+2DDF */ + /* Bit 76 Cherokee */ +#define TT_UCR_CHEROKEE (1L << 12) /* U+13A0-U+13FF */ + /* Bit 77 Unified Canadian Aboriginal Syllabics */ +#define TT_UCR_CANADIAN_ABORIGINAL_SYLLABICS (1L << 13) /* U+1400-U+167F */ + /* Bit 78 Ogham */ +#define TT_UCR_OGHAM (1L << 14) /* U+1680-U+169F */ + /* Bit 79 Runic */ +#define TT_UCR_RUNIC (1L << 15) /* U+16A0-U+16FF */ + /* Bit 80 Khmer */ + /* Khmer Symbols */ +#define TT_UCR_KHMER (1L << 16) /* U+1780-U+17FF */ + /* U+19E0-U+19FF */ + /* Bit 81 Mongolian */ +#define TT_UCR_MONGOLIAN (1L << 17) /* U+1800-U+18AF */ + /* Bit 82 Braille Patterns */ +#define TT_UCR_BRAILLE (1L << 18) /* U+2800-U+28FF */ + /* Bit 83 Yi Syllables */ + /* Yi Radicals */ +#define TT_UCR_YI (1L << 19) /* U+A000-U+A48F */ + /* U+A490-U+A4CF */ + /* Bit 84 Tagalog */ + /* Hanunoo */ + /* Buhid */ + /* Tagbanwa */ +#define TT_UCR_PHILIPPINE (1L << 20) /* U+1700-U+171F */ + /* U+1720-U+173F */ + /* U+1740-U+175F */ + /* U+1760-U+177F */ + /* Bit 85 Old Italic */ +#define TT_UCR_OLD_ITALIC (1L << 21) /*U+10300-U+1032F*/ + /* Bit 86 Gothic */ +#define TT_UCR_GOTHIC (1L << 22) /*U+10330-U+1034F*/ + /* Bit 87 Deseret */ +#define TT_UCR_DESERET (1L << 23) /*U+10400-U+1044F*/ + /* Bit 88 Byzantine Musical Symbols */ + /* Musical Symbols */ + /* Ancient Greek Musical Notation */ +#define TT_UCR_MUSICAL_SYMBOLS (1L << 24) /*U+1D000-U+1D0FF*/ + /*U+1D100-U+1D1FF*/ + /*U+1D200-U+1D24F*/ + /* Bit 89 Mathematical Alphanumeric Symbols */ +#define TT_UCR_MATH_ALPHANUMERIC_SYMBOLS (1L << 25) /*U+1D400-U+1D7FF*/ + /* Bit 90 Private Use (plane 15) */ + /* Private Use (plane 16) */ +#define TT_UCR_PRIVATE_USE_SUPPLEMENTARY (1L << 26) /*U+F0000-U+FFFFD*/ + /*U+100000-U+10FFFD*/ + /* Bit 91 Variation Selectors */ + /* Variation Selectors Supplement */ +#define TT_UCR_VARIATION_SELECTORS (1L << 27) /* U+FE00-U+FE0F */ + /*U+E0100-U+E01EF*/ + /* Bit 92 Tags */ +#define TT_UCR_TAGS (1L << 28) /*U+E0000-U+E007F*/ + /* Bit 93 Limbu */ +#define TT_UCR_LIMBU (1L << 29) /* U+1900-U+194F */ + /* Bit 94 Tai Le */ +#define TT_UCR_TAI_LE (1L << 30) /* U+1950-U+197F */ + /* Bit 95 New Tai Lue */ +#define TT_UCR_NEW_TAI_LUE (1L << 31) /* U+1980-U+19DF */ + + /* ulUnicodeRange4 */ + /* --------------- */ + + /* Bit 96 Buginese */ +#define TT_UCR_BUGINESE (1L << 0) /* U+1A00-U+1A1F */ + /* Bit 97 Glagolitic */ +#define TT_UCR_GLAGOLITIC (1L << 1) /* U+2C00-U+2C5F */ + /* Bit 98 Tifinagh */ +#define TT_UCR_TIFINAGH (1L << 2) /* U+2D30-U+2D7F */ + /* Bit 99 Yijing Hexagram Symbols */ +#define TT_UCR_YIJING (1L << 3) /* U+4DC0-U+4DFF */ + /* Bit 100 Syloti Nagri */ +#define TT_UCR_SYLOTI_NAGRI (1L << 4) /* U+A800-U+A82F */ + /* Bit 101 Linear B Syllabary */ + /* Linear B Ideograms */ + /* Aegean Numbers */ +#define TT_UCR_LINEAR_B (1L << 5) /*U+10000-U+1007F*/ + /*U+10080-U+100FF*/ + /*U+10100-U+1013F*/ + /* Bit 102 Ancient Greek Numbers */ +#define TT_UCR_ANCIENT_GREEK_NUMBERS (1L << 6) /*U+10140-U+1018F*/ + /* Bit 103 Ugaritic */ +#define TT_UCR_UGARITIC (1L << 7) /*U+10380-U+1039F*/ + /* Bit 104 Old Persian */ +#define TT_UCR_OLD_PERSIAN (1L << 8) /*U+103A0-U+103DF*/ + /* Bit 105 Shavian */ +#define TT_UCR_SHAVIAN (1L << 9) /*U+10450-U+1047F*/ + /* Bit 106 Osmanya */ +#define TT_UCR_OSMANYA (1L << 10) /*U+10480-U+104AF*/ + /* Bit 107 Cypriot Syllabary */ +#define TT_UCR_CYPRIOT_SYLLABARY (1L << 11) /*U+10800-U+1083F*/ + /* Bit 108 Kharoshthi */ +#define TT_UCR_KHAROSHTHI (1L << 12) /*U+10A00-U+10A5F*/ + /* Bit 109 Tai Xuan Jing Symbols */ +#define TT_UCR_TAI_XUAN_JING (1L << 13) /*U+1D300-U+1D35F*/ + /* Bit 110 Cuneiform */ + /* Cuneiform Numbers and Punctuation */ +#define TT_UCR_CUNEIFORM (1L << 14) /*U+12000-U+123FF*/ + /*U+12400-U+1247F*/ + /* Bit 111 Counting Rod Numerals */ +#define TT_UCR_COUNTING_ROD_NUMERALS (1L << 15) /*U+1D360-U+1D37F*/ + /* Bit 112 Sundanese */ +#define TT_UCR_SUNDANESE (1L << 16) /* U+1B80-U+1BBF */ + /* Bit 113 Lepcha */ +#define TT_UCR_LEPCHA (1L << 17) /* U+1C00-U+1C4F */ + /* Bit 114 Ol Chiki */ +#define TT_UCR_OL_CHIKI (1L << 18) /* U+1C50-U+1C7F */ + /* Bit 115 Saurashtra */ +#define TT_UCR_SAURASHTRA (1L << 19) /* U+A880-U+A8DF */ + /* Bit 116 Kayah Li */ +#define TT_UCR_KAYAH_LI (1L << 20) /* U+A900-U+A92F */ + /* Bit 117 Rejang */ +#define TT_UCR_REJANG (1L << 21) /* U+A930-U+A95F */ + /* Bit 118 Cham */ +#define TT_UCR_CHAM (1L << 22) /* U+AA00-U+AA5F */ + /* Bit 119 Ancient Symbols */ +#define TT_UCR_ANCIENT_SYMBOLS (1L << 23) /*U+10190-U+101CF*/ + /* Bit 120 Phaistos Disc */ +#define TT_UCR_PHAISTOS_DISC (1L << 24) /*U+101D0-U+101FF*/ + /* Bit 121 Carian */ + /* Lycian */ + /* Lydian */ +#define TT_UCR_OLD_ANATOLIAN (1L << 25) /*U+102A0-U+102DF*/ + /*U+10280-U+1029F*/ + /*U+10920-U+1093F*/ + /* Bit 122 Domino Tiles */ + /* Mahjong Tiles */ +#define TT_UCR_GAME_TILES (1L << 26) /*U+1F030-U+1F09F*/ + /*U+1F000-U+1F02F*/ + /* Bit 123-127 Reserved for process-internal usage */ + + /* */ + + /* for backward compatibility with older FreeType versions */ +#define TT_UCR_ARABIC_PRESENTATION_A \ + TT_UCR_ARABIC_PRESENTATION_FORMS_A +#define TT_UCR_ARABIC_PRESENTATION_B \ + TT_UCR_ARABIC_PRESENTATION_FORMS_B + +#define TT_UCR_COMBINING_DIACRITICS \ + TT_UCR_COMBINING_DIACRITICAL_MARKS +#define TT_UCR_COMBINING_DIACRITICS_SYMB \ + TT_UCR_COMBINING_DIACRITICAL_MARKS_SYMB + + +FT_END_HEADER + +#endif /* TTNAMEID_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/tttables.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/tttables.h new file mode 100644 index 00000000..2cf0ff1b --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/tttables.h @@ -0,0 +1,856 @@ +/**************************************************************************** + * + * tttables.h + * + * Basic SFNT/TrueType tables definitions and interface + * (specification only). + * + * Copyright (C) 1996-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef TTTABLES_H_ +#define TTTABLES_H_ + + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + /************************************************************************** + * + * @section: + * truetype_tables + * + * @title: + * TrueType Tables + * + * @abstract: + * TrueType-specific table types and functions. + * + * @description: + * This section contains definitions of some basic tables specific to + * TrueType and OpenType as well as some routines used to access and + * process them. + * + * @order: + * TT_Header + * TT_HoriHeader + * TT_VertHeader + * TT_OS2 + * TT_Postscript + * TT_PCLT + * TT_MaxProfile + * + * FT_Sfnt_Tag + * FT_Get_Sfnt_Table + * FT_Load_Sfnt_Table + * FT_Sfnt_Table_Info + * + * FT_Get_CMap_Language_ID + * FT_Get_CMap_Format + * + * FT_PARAM_TAG_UNPATENTED_HINTING + * + */ + + + /************************************************************************** + * + * @struct: + * TT_Header + * + * @description: + * A structure to model a TrueType font header table. All fields follow + * the OpenType specification. The 64-bit timestamps are stored in + * two-element arrays `Created` and `Modified`, first the upper then + * the lower 32~bits. + */ + typedef struct TT_Header_ + { + FT_Fixed Table_Version; + FT_Fixed Font_Revision; + + FT_Long CheckSum_Adjust; + FT_Long Magic_Number; + + FT_UShort Flags; + FT_UShort Units_Per_EM; + + FT_ULong Created [2]; + FT_ULong Modified[2]; + + FT_Short xMin; + FT_Short yMin; + FT_Short xMax; + FT_Short yMax; + + FT_UShort Mac_Style; + FT_UShort Lowest_Rec_PPEM; + + FT_Short Font_Direction; + FT_Short Index_To_Loc_Format; + FT_Short Glyph_Data_Format; + + } TT_Header; + + + /************************************************************************** + * + * @struct: + * TT_HoriHeader + * + * @description: + * A structure to model a TrueType horizontal header, the 'hhea' table, + * as well as the corresponding horizontal metrics table, 'hmtx'. + * + * @fields: + * Version :: + * The table version. + * + * Ascender :: + * The font's ascender, i.e., the distance from the baseline to the + * top-most of all glyph points found in the font. + * + * This value is invalid in many fonts, as it is usually set by the + * font designer, and often reflects only a portion of the glyphs found + * in the font (maybe ASCII). + * + * You should use the `sTypoAscender` field of the 'OS/2' table instead + * if you want the correct one. + * + * Descender :: + * The font's descender, i.e., the distance from the baseline to the + * bottom-most of all glyph points found in the font. It is negative. + * + * This value is invalid in many fonts, as it is usually set by the + * font designer, and often reflects only a portion of the glyphs found + * in the font (maybe ASCII). + * + * You should use the `sTypoDescender` field of the 'OS/2' table + * instead if you want the correct one. + * + * Line_Gap :: + * The font's line gap, i.e., the distance to add to the ascender and + * descender to get the BTB, i.e., the baseline-to-baseline distance + * for the font. + * + * advance_Width_Max :: + * This field is the maximum of all advance widths found in the font. + * It can be used to compute the maximum width of an arbitrary string + * of text. + * + * min_Left_Side_Bearing :: + * The minimum left side bearing of all glyphs within the font. + * + * min_Right_Side_Bearing :: + * The minimum right side bearing of all glyphs within the font. + * + * xMax_Extent :: + * The maximum horizontal extent (i.e., the 'width' of a glyph's + * bounding box) for all glyphs in the font. + * + * caret_Slope_Rise :: + * The rise coefficient of the cursor's slope of the cursor + * (slope=rise/run). + * + * caret_Slope_Run :: + * The run coefficient of the cursor's slope. + * + * caret_Offset :: + * The cursor's offset for slanted fonts. + * + * Reserved :: + * 8~reserved bytes. + * + * metric_Data_Format :: + * Always~0. + * + * number_Of_HMetrics :: + * Number of HMetrics entries in the 'hmtx' table -- this value can be + * smaller than the total number of glyphs in the font. + * + * long_metrics :: + * A pointer into the 'hmtx' table. + * + * short_metrics :: + * A pointer into the 'hmtx' table. + * + * @note: + * For an OpenType variation font, the values of the following fields can + * change after a call to @FT_Set_Var_Design_Coordinates (and friends) if + * the font contains an 'MVAR' table: `caret_Slope_Rise`, + * `caret_Slope_Run`, and `caret_Offset`. + */ + typedef struct TT_HoriHeader_ + { + FT_Fixed Version; + FT_Short Ascender; + FT_Short Descender; + FT_Short Line_Gap; + + FT_UShort advance_Width_Max; /* advance width maximum */ + + FT_Short min_Left_Side_Bearing; /* minimum left-sb */ + FT_Short min_Right_Side_Bearing; /* minimum right-sb */ + FT_Short xMax_Extent; /* xmax extents */ + FT_Short caret_Slope_Rise; + FT_Short caret_Slope_Run; + FT_Short caret_Offset; + + FT_Short Reserved[4]; + + FT_Short metric_Data_Format; + FT_UShort number_Of_HMetrics; + + /* The following fields are not defined by the OpenType specification */ + /* but they are used to connect the metrics header to the relevant */ + /* 'hmtx' table. */ + + void* long_metrics; + void* short_metrics; + + } TT_HoriHeader; + + + /************************************************************************** + * + * @struct: + * TT_VertHeader + * + * @description: + * A structure used to model a TrueType vertical header, the 'vhea' + * table, as well as the corresponding vertical metrics table, 'vmtx'. + * + * @fields: + * Version :: + * The table version. + * + * Ascender :: + * The font's ascender, i.e., the distance from the baseline to the + * top-most of all glyph points found in the font. + * + * This value is invalid in many fonts, as it is usually set by the + * font designer, and often reflects only a portion of the glyphs found + * in the font (maybe ASCII). + * + * You should use the `sTypoAscender` field of the 'OS/2' table instead + * if you want the correct one. + * + * Descender :: + * The font's descender, i.e., the distance from the baseline to the + * bottom-most of all glyph points found in the font. It is negative. + * + * This value is invalid in many fonts, as it is usually set by the + * font designer, and often reflects only a portion of the glyphs found + * in the font (maybe ASCII). + * + * You should use the `sTypoDescender` field of the 'OS/2' table + * instead if you want the correct one. + * + * Line_Gap :: + * The font's line gap, i.e., the distance to add to the ascender and + * descender to get the BTB, i.e., the baseline-to-baseline distance + * for the font. + * + * advance_Height_Max :: + * This field is the maximum of all advance heights found in the font. + * It can be used to compute the maximum height of an arbitrary string + * of text. + * + * min_Top_Side_Bearing :: + * The minimum top side bearing of all glyphs within the font. + * + * min_Bottom_Side_Bearing :: + * The minimum bottom side bearing of all glyphs within the font. + * + * yMax_Extent :: + * The maximum vertical extent (i.e., the 'height' of a glyph's + * bounding box) for all glyphs in the font. + * + * caret_Slope_Rise :: + * The rise coefficient of the cursor's slope of the cursor + * (slope=rise/run). + * + * caret_Slope_Run :: + * The run coefficient of the cursor's slope. + * + * caret_Offset :: + * The cursor's offset for slanted fonts. + * + * Reserved :: + * 8~reserved bytes. + * + * metric_Data_Format :: + * Always~0. + * + * number_Of_VMetrics :: + * Number of VMetrics entries in the 'vmtx' table -- this value can be + * smaller than the total number of glyphs in the font. + * + * long_metrics :: + * A pointer into the 'vmtx' table. + * + * short_metrics :: + * A pointer into the 'vmtx' table. + * + * @note: + * For an OpenType variation font, the values of the following fields can + * change after a call to @FT_Set_Var_Design_Coordinates (and friends) if + * the font contains an 'MVAR' table: `Ascender`, `Descender`, + * `Line_Gap`, `caret_Slope_Rise`, `caret_Slope_Run`, and `caret_Offset`. + */ + typedef struct TT_VertHeader_ + { + FT_Fixed Version; + FT_Short Ascender; + FT_Short Descender; + FT_Short Line_Gap; + + FT_UShort advance_Height_Max; /* advance height maximum */ + + FT_Short min_Top_Side_Bearing; /* minimum top-sb */ + FT_Short min_Bottom_Side_Bearing; /* minimum bottom-sb */ + FT_Short yMax_Extent; /* ymax extents */ + FT_Short caret_Slope_Rise; + FT_Short caret_Slope_Run; + FT_Short caret_Offset; + + FT_Short Reserved[4]; + + FT_Short metric_Data_Format; + FT_UShort number_Of_VMetrics; + + /* The following fields are not defined by the OpenType specification */ + /* but they are used to connect the metrics header to the relevant */ + /* 'vmtx' table. */ + + void* long_metrics; + void* short_metrics; + + } TT_VertHeader; + + + /************************************************************************** + * + * @struct: + * TT_OS2 + * + * @description: + * A structure to model a TrueType 'OS/2' table. All fields comply to + * the OpenType specification. + * + * Note that we now support old Mac fonts that do not include an 'OS/2' + * table. In this case, the `version` field is always set to 0xFFFF. + * + * @note: + * For an OpenType variation font, the values of the following fields can + * change after a call to @FT_Set_Var_Design_Coordinates (and friends) if + * the font contains an 'MVAR' table: `sCapHeight`, `sTypoAscender`, + * `sTypoDescender`, `sTypoLineGap`, `sxHeight`, `usWinAscent`, + * `usWinDescent`, `yStrikeoutPosition`, `yStrikeoutSize`, + * `ySubscriptXOffset`, `ySubScriptXSize`, `ySubscriptYOffset`, + * `ySubscriptYSize`, `ySuperscriptXOffset`, `ySuperscriptXSize`, + * `ySuperscriptYOffset`, and `ySuperscriptYSize`. + * + * Possible values for bits in the `ulUnicodeRangeX` fields are given by + * the @TT_UCR_XXX macros. + */ + + typedef struct TT_OS2_ + { + FT_UShort version; /* 0x0001 - more or 0xFFFF */ + FT_Short xAvgCharWidth; + FT_UShort usWeightClass; + FT_UShort usWidthClass; + FT_UShort fsType; + FT_Short ySubscriptXSize; + FT_Short ySubscriptYSize; + FT_Short ySubscriptXOffset; + FT_Short ySubscriptYOffset; + FT_Short ySuperscriptXSize; + FT_Short ySuperscriptYSize; + FT_Short ySuperscriptXOffset; + FT_Short ySuperscriptYOffset; + FT_Short yStrikeoutSize; + FT_Short yStrikeoutPosition; + FT_Short sFamilyClass; + + FT_Byte panose[10]; + + FT_ULong ulUnicodeRange1; /* Bits 0-31 */ + FT_ULong ulUnicodeRange2; /* Bits 32-63 */ + FT_ULong ulUnicodeRange3; /* Bits 64-95 */ + FT_ULong ulUnicodeRange4; /* Bits 96-127 */ + + FT_Char achVendID[4]; + + FT_UShort fsSelection; + FT_UShort usFirstCharIndex; + FT_UShort usLastCharIndex; + FT_Short sTypoAscender; + FT_Short sTypoDescender; + FT_Short sTypoLineGap; + FT_UShort usWinAscent; + FT_UShort usWinDescent; + + /* only version 1 and higher: */ + + FT_ULong ulCodePageRange1; /* Bits 0-31 */ + FT_ULong ulCodePageRange2; /* Bits 32-63 */ + + /* only version 2 and higher: */ + + FT_Short sxHeight; + FT_Short sCapHeight; + FT_UShort usDefaultChar; + FT_UShort usBreakChar; + FT_UShort usMaxContext; + + /* only version 5 and higher: */ + + FT_UShort usLowerOpticalPointSize; /* in twips (1/20 points) */ + FT_UShort usUpperOpticalPointSize; /* in twips (1/20 points) */ + + } TT_OS2; + + + /************************************************************************** + * + * @struct: + * TT_Postscript + * + * @description: + * A structure to model a TrueType 'post' table. All fields comply to + * the OpenType specification. This structure does not reference a + * font's PostScript glyph names; use @FT_Get_Glyph_Name to retrieve + * them. + * + * @note: + * For an OpenType variation font, the values of the following fields can + * change after a call to @FT_Set_Var_Design_Coordinates (and friends) if + * the font contains an 'MVAR' table: `underlinePosition` and + * `underlineThickness`. + */ + typedef struct TT_Postscript_ + { + FT_Fixed FormatType; + FT_Fixed italicAngle; + FT_Short underlinePosition; + FT_Short underlineThickness; + FT_ULong isFixedPitch; + FT_ULong minMemType42; + FT_ULong maxMemType42; + FT_ULong minMemType1; + FT_ULong maxMemType1; + + /* Glyph names follow in the 'post' table, but we don't */ + /* load them by default. */ + + } TT_Postscript; + + + /************************************************************************** + * + * @struct: + * TT_PCLT + * + * @description: + * A structure to model a TrueType 'PCLT' table. All fields comply to + * the OpenType specification. + */ + typedef struct TT_PCLT_ + { + FT_Fixed Version; + FT_ULong FontNumber; + FT_UShort Pitch; + FT_UShort xHeight; + FT_UShort Style; + FT_UShort TypeFamily; + FT_UShort CapHeight; + FT_UShort SymbolSet; + FT_Char TypeFace[16]; + FT_Char CharacterComplement[8]; + FT_Char FileName[6]; + FT_Char StrokeWeight; + FT_Char WidthType; + FT_Byte SerifStyle; + FT_Byte Reserved; + + } TT_PCLT; + + + /************************************************************************** + * + * @struct: + * TT_MaxProfile + * + * @description: + * The maximum profile ('maxp') table contains many max values, which can + * be used to pre-allocate arrays for speeding up glyph loading and + * hinting. + * + * @fields: + * version :: + * The version number. + * + * numGlyphs :: + * The number of glyphs in this TrueType font. + * + * maxPoints :: + * The maximum number of points in a non-composite TrueType glyph. See + * also `maxCompositePoints`. + * + * maxContours :: + * The maximum number of contours in a non-composite TrueType glyph. + * See also `maxCompositeContours`. + * + * maxCompositePoints :: + * The maximum number of points in a composite TrueType glyph. See + * also `maxPoints`. + * + * maxCompositeContours :: + * The maximum number of contours in a composite TrueType glyph. See + * also `maxContours`. + * + * maxZones :: + * The maximum number of zones used for glyph hinting. + * + * maxTwilightPoints :: + * The maximum number of points in the twilight zone used for glyph + * hinting. + * + * maxStorage :: + * The maximum number of elements in the storage area used for glyph + * hinting. + * + * maxFunctionDefs :: + * The maximum number of function definitions in the TrueType bytecode + * for this font. + * + * maxInstructionDefs :: + * The maximum number of instruction definitions in the TrueType + * bytecode for this font. + * + * maxStackElements :: + * The maximum number of stack elements used during bytecode + * interpretation. + * + * maxSizeOfInstructions :: + * The maximum number of TrueType opcodes used for glyph hinting. + * + * maxComponentElements :: + * The maximum number of simple (i.e., non-composite) glyphs in a + * composite glyph. + * + * maxComponentDepth :: + * The maximum nesting depth of composite glyphs. + * + * @note: + * This structure is only used during font loading. + */ + typedef struct TT_MaxProfile_ + { + FT_Fixed version; + FT_UShort numGlyphs; + FT_UShort maxPoints; + FT_UShort maxContours; + FT_UShort maxCompositePoints; + FT_UShort maxCompositeContours; + FT_UShort maxZones; + FT_UShort maxTwilightPoints; + FT_UShort maxStorage; + FT_UShort maxFunctionDefs; + FT_UShort maxInstructionDefs; + FT_UShort maxStackElements; + FT_UShort maxSizeOfInstructions; + FT_UShort maxComponentElements; + FT_UShort maxComponentDepth; + + } TT_MaxProfile; + + + /************************************************************************** + * + * @enum: + * FT_Sfnt_Tag + * + * @description: + * An enumeration to specify indices of SFNT tables loaded and parsed by + * FreeType during initialization of an SFNT font. Used in the + * @FT_Get_Sfnt_Table API function. + * + * @values: + * FT_SFNT_HEAD :: + * To access the font's @TT_Header structure. + * + * FT_SFNT_MAXP :: + * To access the font's @TT_MaxProfile structure. + * + * FT_SFNT_OS2 :: + * To access the font's @TT_OS2 structure. + * + * FT_SFNT_HHEA :: + * To access the font's @TT_HoriHeader structure. + * + * FT_SFNT_VHEA :: + * To access the font's @TT_VertHeader structure. + * + * FT_SFNT_POST :: + * To access the font's @TT_Postscript structure. + * + * FT_SFNT_PCLT :: + * To access the font's @TT_PCLT structure. + */ + typedef enum FT_Sfnt_Tag_ + { + FT_SFNT_HEAD, + FT_SFNT_MAXP, + FT_SFNT_OS2, + FT_SFNT_HHEA, + FT_SFNT_VHEA, + FT_SFNT_POST, + FT_SFNT_PCLT, + + FT_SFNT_MAX + + } FT_Sfnt_Tag; + + /* these constants are deprecated; use the corresponding `FT_Sfnt_Tag` */ + /* values instead */ +#define ft_sfnt_head FT_SFNT_HEAD +#define ft_sfnt_maxp FT_SFNT_MAXP +#define ft_sfnt_os2 FT_SFNT_OS2 +#define ft_sfnt_hhea FT_SFNT_HHEA +#define ft_sfnt_vhea FT_SFNT_VHEA +#define ft_sfnt_post FT_SFNT_POST +#define ft_sfnt_pclt FT_SFNT_PCLT + + + /************************************************************************** + * + * @function: + * FT_Get_Sfnt_Table + * + * @description: + * Return a pointer to a given SFNT table stored within a face. + * + * @input: + * face :: + * A handle to the source. + * + * tag :: + * The index of the SFNT table. + * + * @return: + * A type-less pointer to the table. This will be `NULL` in case of + * error, or if the corresponding table was not found **OR** loaded from + * the file. + * + * Use a typecast according to `tag` to access the structure elements. + * + * @note: + * The table is owned by the face object and disappears with it. + * + * This function is only useful to access SFNT tables that are loaded by + * the sfnt, truetype, and opentype drivers. See @FT_Sfnt_Tag for a + * list. + * + * @example: + * Here is an example demonstrating access to the 'vhea' table. + * + * ``` + * TT_VertHeader* vert_header; + * + * + * vert_header = + * (TT_VertHeader*)FT_Get_Sfnt_Table( face, FT_SFNT_VHEA ); + * ``` + */ + FT_EXPORT( void* ) + FT_Get_Sfnt_Table( FT_Face face, + FT_Sfnt_Tag tag ); + + + /************************************************************************** + * + * @function: + * FT_Load_Sfnt_Table + * + * @description: + * Load any SFNT font table into client memory. + * + * @input: + * face :: + * A handle to the source face. + * + * tag :: + * The four-byte tag of the table to load. Use value~0 if you want to + * access the whole font file. Otherwise, you can use one of the + * definitions found in the @FT_TRUETYPE_TAGS_H file, or forge a new + * one with @FT_MAKE_TAG. + * + * offset :: + * The starting offset in the table (or file if tag~==~0). + * + * @output: + * buffer :: + * The target buffer address. The client must ensure that the memory + * array is big enough to hold the data. + * + * @inout: + * length :: + * If the `length` parameter is `NULL`, try to load the whole table. + * Return an error code if it fails. + * + * Else, if `*length` is~0, exit immediately while returning the + * table's (or file) full size in it. + * + * Else the number of bytes to read from the table or file, from the + * starting offset. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * If you need to determine the table's length you should first call this + * function with `*length` set to~0, as in the following example: + * + * ``` + * FT_ULong length = 0; + * + * + * error = FT_Load_Sfnt_Table( face, tag, 0, NULL, &length ); + * if ( error ) { ... table does not exist ... } + * + * buffer = malloc( length ); + * if ( buffer == NULL ) { ... not enough memory ... } + * + * error = FT_Load_Sfnt_Table( face, tag, 0, buffer, &length ); + * if ( error ) { ... could not load table ... } + * ``` + * + * Note that structures like @TT_Header or @TT_OS2 can't be used with + * this function; they are limited to @FT_Get_Sfnt_Table. Reason is that + * those structures depend on the processor architecture, with varying + * size (e.g. 32bit vs. 64bit) or order (big endian vs. little endian). + * + */ + FT_EXPORT( FT_Error ) + FT_Load_Sfnt_Table( FT_Face face, + FT_ULong tag, + FT_Long offset, + FT_Byte* buffer, + FT_ULong* length ); + + + /************************************************************************** + * + * @function: + * FT_Sfnt_Table_Info + * + * @description: + * Return information on an SFNT table. + * + * @input: + * face :: + * A handle to the source face. + * + * table_index :: + * The index of an SFNT table. The function returns + * FT_Err_Table_Missing for an invalid value. + * + * @inout: + * tag :: + * The name tag of the SFNT table. If the value is `NULL`, + * `table_index` is ignored, and `length` returns the number of SFNT + * tables in the font. + * + * @output: + * length :: + * The length of the SFNT table (or the number of SFNT tables, + * depending on `tag`). + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * While parsing fonts, FreeType handles SFNT tables with length zero as + * missing. + * + */ + FT_EXPORT( FT_Error ) + FT_Sfnt_Table_Info( FT_Face face, + FT_UInt table_index, + FT_ULong *tag, + FT_ULong *length ); + + + /************************************************************************** + * + * @function: + * FT_Get_CMap_Language_ID + * + * @description: + * Return cmap language ID as specified in the OpenType standard. + * Definitions of language ID values are in file @FT_TRUETYPE_IDS_H. + * + * @input: + * charmap :: + * The target charmap. + * + * @return: + * The language ID of `charmap`. If `charmap` doesn't belong to an SFNT + * face, just return~0 as the default value. + * + * For a format~14 cmap (to access Unicode IVS), the return value is + * 0xFFFFFFFF. + */ + FT_EXPORT( FT_ULong ) + FT_Get_CMap_Language_ID( FT_CharMap charmap ); + + + /************************************************************************** + * + * @function: + * FT_Get_CMap_Format + * + * @description: + * Return the format of an SFNT 'cmap' table. + * + * @input: + * charmap :: + * The target charmap. + * + * @return: + * The format of `charmap`. If `charmap` doesn't belong to an SFNT face + * (including the synthetic Unicode charmap sometimes created by + * FreeType), return -1. + */ + FT_EXPORT( FT_Long ) + FT_Get_CMap_Format( FT_CharMap charmap ); + + /* */ + + +FT_END_HEADER + +#endif /* TTTABLES_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/tttags.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/tttags.h new file mode 100644 index 00000000..da0af5d3 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/tttags.h @@ -0,0 +1,124 @@ +/**************************************************************************** + * + * tttags.h + * + * Tags for TrueType and OpenType tables (specification only). + * + * Copyright (C) 1996-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + +#ifndef TTAGS_H_ +#define TTAGS_H_ + + +#include + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + +#define TTAG_avar FT_MAKE_TAG( 'a', 'v', 'a', 'r' ) +#define TTAG_BASE FT_MAKE_TAG( 'B', 'A', 'S', 'E' ) +#define TTAG_bdat FT_MAKE_TAG( 'b', 'd', 'a', 't' ) +#define TTAG_BDF FT_MAKE_TAG( 'B', 'D', 'F', ' ' ) +#define TTAG_bhed FT_MAKE_TAG( 'b', 'h', 'e', 'd' ) +#define TTAG_bloc FT_MAKE_TAG( 'b', 'l', 'o', 'c' ) +#define TTAG_bsln FT_MAKE_TAG( 'b', 's', 'l', 'n' ) +#define TTAG_CBDT FT_MAKE_TAG( 'C', 'B', 'D', 'T' ) +#define TTAG_CBLC FT_MAKE_TAG( 'C', 'B', 'L', 'C' ) +#define TTAG_CFF FT_MAKE_TAG( 'C', 'F', 'F', ' ' ) +#define TTAG_CFF2 FT_MAKE_TAG( 'C', 'F', 'F', '2' ) +#define TTAG_CID FT_MAKE_TAG( 'C', 'I', 'D', ' ' ) +#define TTAG_cmap FT_MAKE_TAG( 'c', 'm', 'a', 'p' ) +#define TTAG_COLR FT_MAKE_TAG( 'C', 'O', 'L', 'R' ) +#define TTAG_CPAL FT_MAKE_TAG( 'C', 'P', 'A', 'L' ) +#define TTAG_cvar FT_MAKE_TAG( 'c', 'v', 'a', 'r' ) +#define TTAG_cvt FT_MAKE_TAG( 'c', 'v', 't', ' ' ) +#define TTAG_DSIG FT_MAKE_TAG( 'D', 'S', 'I', 'G' ) +#define TTAG_EBDT FT_MAKE_TAG( 'E', 'B', 'D', 'T' ) +#define TTAG_EBLC FT_MAKE_TAG( 'E', 'B', 'L', 'C' ) +#define TTAG_EBSC FT_MAKE_TAG( 'E', 'B', 'S', 'C' ) +#define TTAG_feat FT_MAKE_TAG( 'f', 'e', 'a', 't' ) +#define TTAG_FOND FT_MAKE_TAG( 'F', 'O', 'N', 'D' ) +#define TTAG_fpgm FT_MAKE_TAG( 'f', 'p', 'g', 'm' ) +#define TTAG_fvar FT_MAKE_TAG( 'f', 'v', 'a', 'r' ) +#define TTAG_gasp FT_MAKE_TAG( 'g', 'a', 's', 'p' ) +#define TTAG_GDEF FT_MAKE_TAG( 'G', 'D', 'E', 'F' ) +#define TTAG_glyf FT_MAKE_TAG( 'g', 'l', 'y', 'f' ) +#define TTAG_GPOS FT_MAKE_TAG( 'G', 'P', 'O', 'S' ) +#define TTAG_GSUB FT_MAKE_TAG( 'G', 'S', 'U', 'B' ) +#define TTAG_gvar FT_MAKE_TAG( 'g', 'v', 'a', 'r' ) +#define TTAG_HVAR FT_MAKE_TAG( 'H', 'V', 'A', 'R' ) +#define TTAG_hdmx FT_MAKE_TAG( 'h', 'd', 'm', 'x' ) +#define TTAG_head FT_MAKE_TAG( 'h', 'e', 'a', 'd' ) +#define TTAG_hhea FT_MAKE_TAG( 'h', 'h', 'e', 'a' ) +#define TTAG_hmtx FT_MAKE_TAG( 'h', 'm', 't', 'x' ) +#define TTAG_JSTF FT_MAKE_TAG( 'J', 'S', 'T', 'F' ) +#define TTAG_just FT_MAKE_TAG( 'j', 'u', 's', 't' ) +#define TTAG_kern FT_MAKE_TAG( 'k', 'e', 'r', 'n' ) +#define TTAG_lcar FT_MAKE_TAG( 'l', 'c', 'a', 'r' ) +#define TTAG_loca FT_MAKE_TAG( 'l', 'o', 'c', 'a' ) +#define TTAG_LTSH FT_MAKE_TAG( 'L', 'T', 'S', 'H' ) +#define TTAG_LWFN FT_MAKE_TAG( 'L', 'W', 'F', 'N' ) +#define TTAG_MATH FT_MAKE_TAG( 'M', 'A', 'T', 'H' ) +#define TTAG_maxp FT_MAKE_TAG( 'm', 'a', 'x', 'p' ) +#define TTAG_META FT_MAKE_TAG( 'M', 'E', 'T', 'A' ) +#define TTAG_MMFX FT_MAKE_TAG( 'M', 'M', 'F', 'X' ) +#define TTAG_MMSD FT_MAKE_TAG( 'M', 'M', 'S', 'D' ) +#define TTAG_mort FT_MAKE_TAG( 'm', 'o', 'r', 't' ) +#define TTAG_morx FT_MAKE_TAG( 'm', 'o', 'r', 'x' ) +#define TTAG_MVAR FT_MAKE_TAG( 'M', 'V', 'A', 'R' ) +#define TTAG_name FT_MAKE_TAG( 'n', 'a', 'm', 'e' ) +#define TTAG_opbd FT_MAKE_TAG( 'o', 'p', 'b', 'd' ) +#define TTAG_OS2 FT_MAKE_TAG( 'O', 'S', '/', '2' ) +#define TTAG_OTTO FT_MAKE_TAG( 'O', 'T', 'T', 'O' ) +#define TTAG_PCLT FT_MAKE_TAG( 'P', 'C', 'L', 'T' ) +#define TTAG_POST FT_MAKE_TAG( 'P', 'O', 'S', 'T' ) +#define TTAG_post FT_MAKE_TAG( 'p', 'o', 's', 't' ) +#define TTAG_prep FT_MAKE_TAG( 'p', 'r', 'e', 'p' ) +#define TTAG_prop FT_MAKE_TAG( 'p', 'r', 'o', 'p' ) +#define TTAG_sbix FT_MAKE_TAG( 's', 'b', 'i', 'x' ) +#define TTAG_sfnt FT_MAKE_TAG( 's', 'f', 'n', 't' ) +#define TTAG_SING FT_MAKE_TAG( 'S', 'I', 'N', 'G' ) +#define TTAG_SVG FT_MAKE_TAG( 'S', 'V', 'G', ' ' ) +#define TTAG_trak FT_MAKE_TAG( 't', 'r', 'a', 'k' ) +#define TTAG_true FT_MAKE_TAG( 't', 'r', 'u', 'e' ) +#define TTAG_ttc FT_MAKE_TAG( 't', 't', 'c', ' ' ) +#define TTAG_ttcf FT_MAKE_TAG( 't', 't', 'c', 'f' ) +#define TTAG_TYP1 FT_MAKE_TAG( 'T', 'Y', 'P', '1' ) +#define TTAG_typ1 FT_MAKE_TAG( 't', 'y', 'p', '1' ) +#define TTAG_VDMX FT_MAKE_TAG( 'V', 'D', 'M', 'X' ) +#define TTAG_vhea FT_MAKE_TAG( 'v', 'h', 'e', 'a' ) +#define TTAG_vmtx FT_MAKE_TAG( 'v', 'm', 't', 'x' ) +#define TTAG_VVAR FT_MAKE_TAG( 'V', 'V', 'A', 'R' ) +#define TTAG_wOFF FT_MAKE_TAG( 'w', 'O', 'F', 'F' ) +#define TTAG_wOF2 FT_MAKE_TAG( 'w', 'O', 'F', '2' ) + +/* used by "Keyboard.dfont" on legacy Mac OS X */ +#define TTAG_0xA5kbd FT_MAKE_TAG( 0xA5, 'k', 'b', 'd' ) + +/* used by "LastResort.dfont" on legacy Mac OS X */ +#define TTAG_0xA5lst FT_MAKE_TAG( 0xA5, 'l', 's', 't' ) + + +FT_END_HEADER + +#endif /* TTAGS_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/include/ft2build.h b/swGraphicAPI/External/freetype-2.13.3/include/ft2build.h new file mode 100644 index 00000000..d3d76850 --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/include/ft2build.h @@ -0,0 +1,42 @@ +/**************************************************************************** + * + * ft2build.h + * + * FreeType 2 build and setup macros. + * + * Copyright (C) 1996-2024 by + * David Turner, Robert Wilhelm, and Werner Lemberg. + * + * This file is part of the FreeType project, and may only be used, + * modified, and distributed under the terms of the FreeType project + * license, LICENSE.TXT. By continuing to use, modify, or distribute + * this file you indicate that you have read the license and + * understand and accept it fully. + * + */ + + + /************************************************************************** + * + * This is the 'entry point' for FreeType header file inclusions, to be + * loaded before all other header files. + * + * A typical example is + * + * ``` + * #include + * #include + * ``` + * + */ + + +#ifndef FT2BUILD_H_ +#define FT2BUILD_H_ + +#include + +#endif /* FT2BUILD_H_ */ + + +/* END */ diff --git a/swGraphicAPI/External/freetype-2.13.3/release-dll/win32/freetype.dll b/swGraphicAPI/External/freetype-2.13.3/release-dll/win32/freetype.dll new file mode 100644 index 0000000000000000000000000000000000000000..c2fb2861f004e853df1ef1bd0574a86cc97aa234 GIT binary patch literal 566272 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

j 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

HIh8l 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�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%0Ds%Xm9{8XQjwcoRyCclfS>xoa4y8J6=7J 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

k_W=uRR@9kM3 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 literal 0 HcmV?d00001 diff --git a/swGraphicAPI/External/freetype-2.13.3/release-static/README.TXT b/swGraphicAPI/External/freetype-2.13.3/release-static/README.TXT new file mode 100644 index 00000000..02587cbf --- /dev/null +++ b/swGraphicAPI/External/freetype-2.13.3/release-static/README.TXT @@ -0,0 +1 @@ +These static libraries will only work with visual studio 2015-2022 diff --git a/swGraphicAPI/External/freetype-2.13.3/release-static/vs2015-2022/win32/freetype.lib b/swGraphicAPI/External/freetype-2.13.3/release-static/vs2015-2022/win32/freetype.lib new file mode 100644 index 0000000000000000000000000000000000000000..34a3d16a2685510d6be635fbaae8552290c5f119 GIT binary patch literal 4140810 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�C}=<*ls2Op`Rq>0HTp7$AIl%Z0lk>8{3B1 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 z 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�Yl`_YGrYOCtu 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

Onq{%=p*Ww(~g|9?Jl_c}R*YAt#bR6GAR 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%0AqV}(#6v_VpEdo6SIs^0! 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

bFyG%!5V}r?rGR7IPuPhTILpH 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
4_2(W|e&O3$do4FF&r?U0b_8aQC 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 z�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 z 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%0DSP!vWBwaH(S&$)rF%>&*GFdwAx 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

NmuG}1)q4mAmD3p1{xll(6qYx9WR*B834 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%0DIjPAR$Q`q* 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

;DZ%-A)srsnF9 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∓12)>D2WzB*#8d!!FtKIapr=G)KEi09`?qRi1 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%0D1~2g^Xcn@0MHp~07 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

5{Xh5+U(5&F#^ z)P~eAr*KfO$D}dO^$5HWBcIz49#YSzo?WTjQFX#iBi-fY6I7V2fbt#1Jq75)KCBi` zZQXl*m}gO=9IBSM0)T-WRoES5M1ewOkpSiqk|z|PDKpoMcyABoaYm9`k=Z~?n4nzo zieQ30Z{{Z7^cxaZPkzPdSybk>}^~h;f;8~@+M}dA5?>SnUS(RhsDveq1 zmhyH$xz=?KKDZLv=!H)X7nv2Z=*XrwU%2tKTn+_TooiRD2j2jzbL}WE$nYrI6&V8O zT)X0wz&Y2hXoJB#!0KFU;$4Art_@KVeQki%xi-Wkfpf0qa7o~fIMs5HT9wYV!K7BD zbL|DGRq0%NfqxDdV0ErlbU@&oYvI;+CqL&}vo8spbFJBL1kSnEY&FdEA4O}HJ8_Sq zHT#3WIoFzPjCL7db*?olwJM!!&HgO-IoF!)BD5f#Yt6nPaL%=1&k3A!ZP-Xprq{VP z>^gySt_@obI}ZVmpba}!;GAo1e<^S-MP0^Do>aW^ujfv$U-jbjZ~nSD@1>(Jy>g;Y z_(j(S)f0g!iyewb(S}VFIOkffn+0yUQ!Q6tOvWEY>u#{XHA$^rsl`g4zhd5guj{~3 z?%!oE`RvlT`SaV>S}^IAvW350fWK}NIOp1Bg|H+2DB7@6tJ1la>wdw{xmMOw*im{E z?bT5N=UjXBh`>45Uaf+$@lmu_M+%&C?Nx5IJ<6>HB``q?usYXr9U^efZ$J1@;GAm{ zSH#35!0KGfHC^DGYq{N%;T$*}TV>b$QOxJ-&$kr_R1Tz7+lMJ*wu=Ky&m)9$!Wwx_|r# z*?-mZ8Yox%GiTQyt0KDCV3%id|3>Hje@fo{{!htUUMr!ihe7kmK~v=MbsvvM$vc<4 z|E;pj<38!G4*Ndti2ecPXw;hjAyw?ZSJaLgR)3@av|mMmt5-OwFPJL}3RbWAf19Rs zVusSpDv*M~-_Rx(+*KIVS^fu8sk6 z``W4kXts&CP)cdo76?D2T@oHt4OO3Mt(vkaervhQ9?qvF( z)5|OfWlHFj3O&-lui%-RlTsd4YMK9SK7o@H)=CAmKonJVZPJ3s+&rvu@}wX##VK=@ zag7T?e^-`4f#h%=Rw`S98rW5M|8`wbaz4x)6q$9XR(h?^r7_IEpxJ`Yl=w^vm6`3j z%Tp*T{10gn+af(|J-ls}(3T$Kt=TO-=<=Nam#;0{HMFHSiQdBLPpUsOirc$py995~ z?%>*g7j)}v5gs-VTa>FU!aLg|JIXb9yC6r~`g=p|&bOD%YU}I~x?{Xsb{h}dKD_nx z4c$2bZ@#uewpOm8Z5TxxZ{cJVZTxNHJ!~yP?~HQ|y*r_r?Ma(g&0{qW&UE#R>e}rh zvP`qyhPHC(1j;+XBXk0#o#4xKjByQ};62VQbb|kc8n&LUwvMjGAsOQYaA0&3{2@|D z*O+W~B&oCOfWG~A@n4^-;qlkzDwou^))VCq4MGp3N=WHvYvUVwd!nbUSm&n7uY!dEMNvAA(sl zY_w#g;Xf1Y8s{SgzLlDj@SznjF=2 zyFR2v%f#18splg!d-tCG8m zx7E#4d&Un{KzkPmipg`=7Hv$B5EEyFwC4qfqK=+ChAx#w#|Y0Rj-J87lWekuCsofo z`&D{an2uf*y`KKhWPvUVjGtq4IkL18o(&v5b7bivJf$pol}2+ikNTLN+7OW;%rd0f zkHx~8V6O*-bsbXDP@2AYWhLTY1IaS7tE&$bQOX~CJHX*js&5MOohH>nPs45w$`7zR z!afT-9X7g`tSPX6hP@W{RoL&rz7Csp_Xcc=&O$CES`uAeqF&SGsa?>0y|l}^%Tv3h zXn!gi&y>rsKDx_O3skfaMYAiPdui=Y^tJVDcV#;Gg3ppsc^Ry&JQhC@++>p zJheDQ8?0zqiZ)fz7Ao2jMf1nGaLJD+&gqh4eBPdl>19!~ENR$N;RvM0=FFB_C6E6& z=rG!QD)x>6dHnan-`-P^4|CR$e`TJLa_Fh3dz81QqD%~13-)TeV4B`jQIUc@6|bJi z)l?;U8m^l#>Z*!rEk#uq5S0Ets2xAVS~fOzUO06O^PXbGq)C(0 zdFAT$s9sK)>I&2=NcmXRQItjcID**a%4v`}y_s20$nglLj4k%CDx1)YJ&80?SZM++ z4YUE;r?_~-v1g=ihr2hr#!c3u=nzYKSW9~)!coqv2zo|TBaMHj$0w(EOl20!?Aj-I z4-rXW@^*^%qDYFofaAJ&uZu#!Z5gV2P0i`G77D;5M^D*nQE)bMs5J`i{zwqDvqi6z z!zo0FLhz^b(}s$u*>P_Z?>+EGcBKS^Vv50&4|U1*Txj6s<(LWO^Unm<8OGc|#B^7C z8F_0TCW8dc!!cbsiRKW-k;NfLnCO<`!jy2~c~zw&SiJYu>fk~Ga%Vc`3Yxnk1DO%L zafF>IyGMdqCZXb;ce}_kc~-pFMwyfq8Nu-&r~cX-r2u8+j0emj-f2Rl!*~!Rh^(;= z#CqT@hXsdGf;si@DA8NQBY)W5X&6N(;X=E&$V*M$hg}P_jj);eEwJB*{RwPVi%(&* z9qon9{$d|&O2t^^=s=eo9q97p_#%A0v@5#HQ@gEb_Y}<=++Yo%yy z6|I+|^;NWSik78lvlMNvqAgRj6^eF1(GDrv8AUs%Xx9{tV~k91M>J-c4*rvzr1e#_ z7)2YZXeo;JqN2@Gw3UjsR?$9Gw5^KvjiP<0Xg?|1B}KcdX!jK@3ZsIQxx4Q2)Z!Iw zh@w$TO5&y|+9E~cKhw$d{#()BQ?#9mwnx!UE835Wc2&`SQ?v()#+ohTn5DbCw7H7L zQIsQYWjuBxI{{hSN#lqMc4EY3x5-*rFVEbaVTi$DZtY)akkZHzkvg6n5OWPX_C5gG zO)wtl1I+K6G8$sof5;)GkP4gASLBR!dFPZOI{AY>guQ{i-_YlbY?}}F28|rT+4F~a zS4*dl$DEJpp9GtI{1n*Ci>a{5k)jq7mypoqrS;Qko(v&;y|ihH_Nt=2p=etbZHJ;A zRK>nUfn?%Jo!9G3%s} zB}E~ON|{;7sX6a8nh1q$ijXIHfFrDBi3b)->^60I7a1(dn3N0l^uD=$1mc_v_+m?d-{Bk>XJC^51*;k!9HUZ zG4y+%DR;@DH+Euf+QwhYjyP$HxRRZ@-IjSfJ7S+L;$(K_f$Z^TvLkk9XP&Xuv+W7Z zJf1y%vrlBi@zCqp5yx$Nd^+#2b#M)h{3<(Qi){xyz6y;zlpXOE+?^xfIP`+GvbCut zvxyD-?u1_R=>#6T!8|+S3PVTiwp|a6+>DrgBFAqIjYM2GeL82J$%ZtDJM;EscZgxj zJYb95GG(Vnt0}{_TYRPsMV8ni_dzt<_zjICkB=+bIAY7h!ZySnab}!br^dNH`vrpt0_TG?TPtf1TuTb#zz60`P8#8zNfW2)+T@L<2-m%!GX)n*?pYRlj!j~5YYFg7g{_BLl@qwl{4Ju4 zHVFT7S_SMcPNNc`|?+R#g z)iKA?!Xj^@d=fnNflhf?xj3#o33(4ZM4P0Ybf9^ov^+&dj>Mmv%LR|7O&47L)ZZ;y zwn*VqqEPM$G&i5%-O}$In2i_SPvgD0xGq9m7$L5ykV_(7+QqR$PLFcf*>?lip&f9r zV_UKtW{7Skaaq(vtk$@ev~QEKY1kVE_r(~3m0DJ5-Y&_EVpSA1hy)5t`Gxd3SE?Pd z#{`@0lZFMqTevjsBvv*qr5Rj4rtvqsvqKMfdd*U#TSRFGaI}hoo_hC&N}yvQ?xMjol?Hmy33O{ z5#zI%hi%szwtd0-YwpKKKX2QfH-dN8-08KCS8dw%>M!`(C0rkIeDvDqvvo(!L(`5- zD76{s*Fq2ZbU6fsZU509kN$M@!qGFAeZ=dnZ;$?Y^#0KYM=_`J_bHDXjwiZKdoUq# zrgyM)uk{wbbd|8(w_S((zIE@82QE8qTLC!L~KkwJ2Ey%6FJS$Yn#IWDt z;jW=Hlj6j7ZE8a7P_%mcSC$b$5GP!0p>guXF|8A#kHhG+7-I|ftGMeY_p1hinsYxf zlP68i9KwNdJ;9hgroTX~$H3)|%Sg*&)6G*b<`5?t$6z(x1~l{QLLC?f3&zN2ObKX~ zVe`)w<7sKkL|iaNa+YFeJOI?ey_Nr@SP7iYf>McB8* z@G5uBMbXJ?l{Iab@GgZE7se*JEGb?~x>wM#O9-E04qv=@v5>omx3#e+%03eyi#A%6 z0(qAefm&hp=ZRpQ{qim{b282G^AuUyw-v|*b&0P8i`SejNbwphe3@kN8iJU*_}##3 zHT2weV{cCtK`5isOJc-hWqTTSbJ#Uuw}f2>b|={QI+WE1c751=VTZzIy$XXp8a8$X z#aFC0u(=k+-e49dGwon!!^Vh}WrN)T_Dt9vVZR0&Q^l-#up?n}n%NCDr;5?Am%{E2 zdl_tub6Lw__k_I`Hg+7d-i3|*#;gxu4}`r9b^`1ju=~Si@eP3eDQwEQ5B6Z#U&0;& z`v`1|=2>6Ceik;{GT)iGHSx$1oGv+n)8(n1)_uLSA9a_f_NSt89w>3ekh3yu3EkzX zaZVv=T;WI@QmE5lN)YMf*b0epR#^iiWw19`BR7%TueU zXiqCzJw2xeT zW8JJ$3unD_aMOD|zkm7QAGh9oK4#E@=|_^ho2~BE=c(pXClw2ye<`c;@(W$uXE!f= z<7(X^U7EgHr0S7HMf@6X{4sdk^kru|Tx-5y^ee|Bmyhh508hj$K?U z=gL$W`+s+FY`8A_TOD4)lo`1yjD6s7)dJ8jJ6<=--5;xkJu%H1_uKf?XAi|rhsN!p zP~5V!T0X%q3RwHC^T(rdLIr?A0&Iu*IFtU{j2_5bf<;ZTe zaBQ%r0#4nqZ=(^ITvyvZ0jkx)J4VY31m$5`9d9A^6d2ww8m?msJ%sTRn0UxsSjV_M zgkcY3wXl`jF%MtIOCPI+t0KzU+^gFhnRZ8cxHD_D@NTkZaM2W&aXH*f>I16PV(;_s z59+DsydxiunO4hGq>FP+8Xv)juFm`sCP0*(hDEwGg*7{6xK7a&WvWi`0R>qKGfSuB zU{)&%YlY+Wz+CAfUAlkGd!@$6dP4&15DhW8uLoxBvs!ZEA&TZao)~fN$G)p9-|Sx! zu@b)+;a}GqG-wbI5E9a$abO53yuH}hrEU8IiG!ovwUw;&Fm>YbKjj%C6XY9iLxf{) zH~X7zd-~>TAEd@FL9YOu?@fte?G4j>TRQem^x>>wppM}?jlen7UD9gcIS!l)HyL3p zc*HHZ1~_kE8aToAM))vb=IJ=rP9uI(K;HyR<3HelF~eoSuNN@KoZuP)_d77PZovV= ze$Xgh;=+I#7? z|Avm?J587`ZfnlNk3If^N5HYwE`0M~nxD*q9$)JCUWrL$Jl8?JgO-fm``|?za81anc z8w^HSr7hY8JT&|@ABLXDOEWIA+@1_AWvx>xVUSY&< zKIm~(kq$gG{56vA3>t_BmRlFGgrcc}$B5rYpg&XFqWNQqMPtT~J4NMy`6x)@DgkT6 z?=a{kgDu+6cxc#8jpVxrk3u09&C10HOjSHa{MatD8%qpvG=}^@pAX#YO(d3cHY0w4 zpq~P!aHz!b*N7iyMJ0fl!X*+6=VeCxxJo<)%$R2R^Sh0Lp90L-Fo~;R!fyrWpN3ns zVJ-9LHx>Ce3Yb5+9Sg&Cy^(xz^lOXdBpw?68m0FD&^wl)z)e4=ZA=DVEJI zW64ZoR=)Evi(3m!L|2ImGU4|r=yk#LCK%hH|BC%%mh5g32z(kCYIJ5Tgl^gnTU>c5+IIf(G@~X`iG z(~#amFIlugvm`&W_Q9phdL5G=zwO{>oo&%}y(0OU_0N=Vo*Cp00 z|C)fwk2)qle)qtp>^zHB>P^YdEWIPaWS5S~kKai&oW}DlTJg6eKePEzZ7{jK*rJtO zB60jRsxQmnQ4yFuOC`=szV{J66^An_F#wDizl)HsHZa9kNSxVt)Dqs)S6Z~sR!JPP z-B7+V7~f6-bLZa@XEvUvB7Es}5<~fDjMB@$q_P25=zWPbE8npQ|EZ1<%uM*PKMmVp z(XQ~n{$R}dgEaVk@_|JQ+$?eYHIk3xWfNc)eI#+Efivp=qCj8svBbbBj1j+^;CBzW zYoACgch8LYu|7Y&-8sLDfD8n#-A;)$t1sktL&pf=@M9z&+efWk7OmQ+`SXiG_#?ms z?U6YC8u1H6dP9L3x=-TF@{jY4G2D!IFh=}b!S8M0mVYj>X61XI{4n^B`a0wIf>)15kFV(dj^;R7bMQCe+fePELMI8W5kd1we`U5xFoS=^<^&jymHy1RlOo{ zX7z;&iBModuS%TR_{Mrv;hIJ3jE9E5M)IwIM{i>IsR_oc{jP=IDqwp3CUN{V;Uc)~^d2oH@JKXy}J z0`r=e#1#hCh+jp}OM1I#P4Lh#)kgBM8)ywonIie~YliTPfH|S#%=q;KoAbbg3oR_E z31=iuftCj171-}}H7tCT-Kj_1R4On&^FXMhXg!~@1`{HO%Ko2<}X$$|QkpILe% z5PlGk5I7hke%!BH4%}OfCDtsxb--sw6X*Qcom~a)&!!SMdVU763BfSArT(qgrOPtwyn%~|3m@YAJ3S-7^11fdN7bVtgy|5b`_TYff3ol6= ze~tL@d&MGP-kc+G^?@@gkBy+Ond_p(zM4Nj4-`};Fyr5lIL<4K__2R^d%ncLDU6YP zVJNr5!1?i70vNOLye0gG0<%`fA(&x$(Uoc+0CV{*$-%%;p=3;NiMMVgy6{7|C}9kY|DGxm#k*_Dfzy_!mFLI$)2)p&1zRD+%w$z;xXw zac1)M0E44CCO`R7vCye@z(t#PO!CVH*eL&A1pUTI7j42RiQ}(PdU>L14lwRNNL&RI zejN9r&bnv`cxcSZBNZMgz?}Y3;E-h$;oebB#z%9jM94r5jDQ+qE&eyac2GBI|zSN%)+H6=C(IHUY) z3VL8|tCoz1#w`EXKaT`v6;(oD%=*7z_;n9-F5eLFn-1L7dJ@ZaU?d;ESL}fDNwE-# zW9>3ZFSpC80%L6;ac2EN0>V$zF>nfF#E;GA5^zTvOMYhaHP*{BO(aHVXDA=H_n!#0 zYHOQHtXca#3?`+Up}yduF)NSF@csjse}_w)+5GefcpPeJ)t0t$&TkDc@on?x*9+dy zx3g-eI!YYJeWU!ljRI)c$*R?TM&gzOXH>rI3N{Y3Y8&Gu&eMe7TukIjVbZoXS>pPe z@LLLcmsG2E9S@CJePRFNHo~f{WJe8SmVf2o_j#to2q1op(%TdT^)ql)MoBF5#VEb3 zM-z2Se*9X4-II4Gi^z@gk4uFWGp$*sv zCDyFI@cY{!V2Lf6W|0VgEmG7(Im$uxh6`9Brh`YTbyjUZp8WVth4)2Zk~c`4*?Mq3m?Unr zYL-nBXO@5LR=j{2^`XR>%}*qx|Fi`5AfZ40#%=l#?y@!G6dQ9>&tAC_-ra0LpQpZa&Tl(9 zT8|S}ZQp5$HS7OK|Mdsw{5Zd=au)6AoWz>7-)i8u4VVi$&Mg1DS)YOV>nF+2tbbwo zzH-62eB5u^1zfR95^L7po&vwEItET*jLL)K?=j#?Uy=OG%A*Z9Wa}86ond?14SolK zd*#>s(@TEUc^Q?1F_Mq`Qh*D-oUYUVjB+Rvuh0G`{Iv zK7L-$1g`xb&iS3zF(P987|F-ZJfa!wADF3E_-lM#8 z`8dBi4%~u@5^L7qlizEV9*tkA%C6d}r}O9c9QYlp>YU$p$k(-+tL9fTe}1FD&#RVm zek;IlGH^BON~~G=lAmv&bAD^UZ#r&x^=SM5F?8ngbH^Mf*-UA1aa5@*(*PJn!?bc|q#AEW-DGWz>!-CVU!y(GVez!}NM z_LkPiRl93`0Esgz4=%@k1jaT<;wm9-Bl$T0 z`#DZxC?AbcdYdAmWAUz9vBCMv$MxlTV0sLZIQ|;(V|vE}(|@SMaUa7-zGk2gO?K5* z;Gr?A&vW7N9x!c&OPtyKitFSJz-&*EI25Cyd>;7zaRZpUnG#1ijN}VJKKC2#s?8cJ zaR_F}Z#0yZ4*=78hQuv2;WrxcCBEdUegCq=VH?AcUj`zoGs{(5`kKVCUow(!4d^A` zkQg|HF)EKNq+>U5trtpcRUnP{@p$k4MXuWD#S&*$|L$SDd=Z!#DzwoB{GiBsS8c%i5^FZUp9+2+8(i_tOyZDy!}3T*{=Ei_ z%Vvo)>#u4ee8z_o1E(-X<-zsQTfmL|SYplQ&+mhS-xlZmma%++8^VPg4COE?U)G~1 zcRJ_S8~N7*xV5__)-3;SfM2gqap}z-i8HG&1L55tn63LIuDXeQTu=8p;Hs^`Lt|DR z_=K%(0;a=3i8GsTgn&WdAy+N_aQ^%jpraTLjOQ_lYmc~%@~;!<=f0H~%12{Vz8d5U z{LWPiJSnke^8;^`+poafJuPv}XCr=Bu+hEj4EmwV689ExM)LIreb060@^y!N8Br2)gg8gUadedbigeQ^@WT{LUnImxK7Rl8eh%#j4~*z^s@c zac1j5_G9}eN{nELA0zp~5YZ{%%1)A4juS@mJpg@_j>(VT74RE5*-aZXRq`_{-@#zw zJ|QK`qBx*?kQlZzb0|Dfi)`MbD&>-9r-dZ ze}0_rehbWaPTXLs;4$LIe*5Y|H_dfX{`{sw@FKv>c}wEV(pv%inl6?YIE68)&#Zs_ zfos21V$I5zvysy}MrUW(KD@#2N8ql$E%{-%GfZzZ==GO5mv0ElcLs3R{w1+ySqCBLpF@)ZTW>jvlYHA1{`z|G$%v1av|>-OJu44lFk zmB)+VS8tOWbU!6Ov-aB#9Ktp`m#;VY%>eGqhxyCLaj(fo&iRdFdVxFrvBa9quePGx zBDc6{p4%kOZ2tgPFlx^L^UP-wH;n1>#r;xw?$6%9@bYS=H?3e5R)5*KR1uRiz% zUvSfgT$DH@%aC7h@EZrrSHDVJeG`5f`2BRvP5bG(#F@2^WJKh8!%a)2A{>la|1uQ} zp86g0oZAw|d^Sq&MPx+3J8oKQ3wNZ@*WeN5oA;g~#QT%0yEd|r#F@p*Ya;@%DfaRc z631Voc=?^=b6_s`N?b%f@xD>aU90|No_O=f$4{Y0f!X$y#Ho3N0q%#=?%EgS^T!k%!5tct}*H5&R7)5*v_uS>dp;~E$jc|GHLBsax z|KsgC;G-&@|4S~7Tp$S@rG(x~5;};4Gy-WPp_k)GE+G(d;R;2Hp&L#R5D^8WC<3B_ zD2h@9L7F0hq97_LA_yo|nrQytnSF2XQY=3>{>LZmzS-H?-Pzfh*?IfkQ_2;?EA4%0 zwEiFYk9f8J10Ic_(SO8i@gMMrFRlLr9@(?@{{fHmd&GahBYP3|AMnV|r~L;!qL=+2 z@Ms*i|A0sICjAFIn%}4X16~mDp7{@WG~VU^0gwE%cm4w&$;|M>akrB&20jbWB9=__X-AZXN63zsQ8NIw2&7SMf*ZzlSOw zq!yIOj)QvRyBO9%8F?0bI4ajRD9SuGH^*$uunx+!m`t|uc_x`@9@Zi>yhZpR^RN-t zL4C7x!@~xpm~u=;t0^SaX0&Ce56ZL+!&M6)C>@o~!Ac0dWwruN-glot?{5-mLUy{v zY&B=vLK>ws4oS+hWsk~!B0D!LBoeRu%+A4AIz&I`VyHEhfZ%n+IR53@b8-xM#vGH) zW-??LZAQHF%QrX$3f)V|v>7rj#!)7N)n>HV@TPT9;O8tDHr{5E70Ni_*7V^<3!YvT z6#|?EcI$An#by|0!aLnXVOeLPEYm8MbC#(UbDR|eorR*JOIeV!%${S;&7ubJVHO@& zu(M1n()v=~StP1~q*kqhvy7{`v{unsWH)DKhP$>_$yufqX{}Xu7Kv&utyOWBaWxca z^HSAWMC`Z9d8y_su#U{mgQWNd*XN0*x4@>vMJJ|3q{SsA8q!jFN2m2qj#lcZ7#>P7 zjO3)$wA9Fyxa2gv1Yc0`ERK_ylo*ZI6Z;1DBkQ047f7VUm@Oj>DfS!_-cdWon3J8M z)YTBEx=Xn+FArE5X8SM%#%AXl?3q@BXkzHI^K|w6cvsC5|d;hbI+wPHYK9JSc|C1V{|EukBs8^PeBtMKhO(j90$ZmOZRE zUbnckgotFGR)Lgbvzv<}CH01ChD4Io3#^dXKB>jAQv1Z>YXrW*KapjlK1W+DhNO{9 zn_$d4f<+p0bImqGQl2T-kYci$?Ur;Qr-a2!B&^=KBXgnL4KdKM1_=Ks$OJ73LSnfh zq&Tq@41Hh}vdy`&E#@{M#GA+BL+c6V3|crE7L9|*FyCFtL|C%yqhMB8fC+;|OY|mt z6jl`#nlcPACZo-6G4T`;8Vi>zp)@0{y_#w}Wi)PR-A&5Ow3?j5@z=^DEEeN-iPXMEmp@GrwOP9jy% zkklDUF`?LEU{uNbiW-teNqq@6YdmVIN^ykb>~W?XLu&RD&H;rK$LVg&%>c(psEJ1H z;^pz#!z@P2c!P>ZtD5lY6vvCQWRF3YRWwq5gjTmWT8uH>R2->ZaU|-ohNN|@L2;x= zSmOj^o`$D&tWj~iRGYuh;>49o?y%!Zx92pO3~`7VSvqsq)bDCX_VPA zUNXCvR_wZ{L|d%YY4p7{9BszbzF+}b;0IyZXo5OJ!^B(9volPFZsQFDOct~3%v`OU z<=dc2BU~lH=B-+Bf^i%h_eSis(GU|OlcM4hV}8PK;%C z2n^$J^9War9!cFJy0LahAj?eSO^q86ZAgjk)jK*h%|NCfV@!xkjEHApCNx%jCDBr% zBjRCd5_m2Nk5ykuyl&l+`biwNyCrcVqvPXQ`4Jt~jwNwYBO~IYQ?aysg9(dOWJ#=q zh<-f&RkZJ*@ufs3Mn$IxbC*c=C!QHhYsg&Dwmh!lxc+&b{+&n1FO@m;@ z!m?@e1{+rmF8n?gTS8?Q-mHEcvM!27Fa;`t2X8T^r<<%+LzbQXx3SKz4Wvn~NH$A$ zmceLAw;6L)lt9HV*p4Q^T%lU40x-b^V2Cp3nqus^>5x^w;9a65E;rr6_Q#k5B><}F z))Z4Z)*kA@yr+Sf(VCZH%!S>k4qy&CQKFA{)jxe7%8$Pyi1w3>*}1mpaW*J=Y(&ssMFzu}0Au16-lMZ^sjSI@7%EzLK_-w09_USD_CLTLQL+Y3;FgRUM z3POc$qC$cZOeMYL7yPJzFzrJtCLYM43%6BGQ~=wir^(aF)_6#$0PAydbP!zu-dL+}5NgDm&d~NW@l> zZ8?*mA$$z-K4{zc4-D}&>{`lN#-~*$7r?U`(J+isZ@-Lz6-+5S9O`& z6ccD##pIFzZgG)mtSw>|ZRb%vS>49d6tW;+6vJdkg2$I@%wZXzN@KA0xDr-ZiWyrB zaF}?rNX$8XfRFq|)}EC>CBeMZm_*nn(ob=@nPwIQVvQYQ2EQ3zj*T1pUQkOh zS}|XSZrQdpFvq!0OoBVKh!FLt0|KX9INrx-$u{QN$RDDm$BmHes6%q@DtT5uatZ-A zy;aaoMWY7#UWgMyO&BRQI0khhSTYv~cCmI$%`ppYLrpDq z$_6XjP26;(p}UDVCns+Vz_I-dJPH=zJV7woNRc6$0`8R!!UXNktZ`urX|6Qa3F9@K zAvnW|j%AbQftFnjfvY;mygnpvLWI8QMjqBs0PDR}n>jBIOrS|LFiE@1*q9q}ql{VD z8cNl-_^dj@WcwEjOj z0tOx_S|Y_06V?_cv@MTxl`E|%lNDx)GzWdQS5=D!R&?8obcdKq0UE#Hlb{JirwW1g zk}RjiO|m%*x`Nb88UnC9lPfWkCA^PJnkn*4stKB!rJ)6%Ce#v%#zdh#Sqi9#6-I5e zG?qf2&{f2u4AI>P=RDE;y{Qh?K8#l-v#uWC?+KF^VYivPLnrg5);x?fHum8>8ge#_ zE^6CpaH+L%E+wgE3city|Gm;OV8iVf93zG)%s8vLCtT>z(2SN?i!mdcLJl-?Yccuf zk-jSyqgc2+B9cgo!(du?m}+=LxL>cUEPz77_Fk+4u0`W0&RVgs{=Qeju;vJoV(ZDY zXmm6q=t1vP3Oln*xtLD_Pg<0)540M1e6I;Y&bc9@NMCRx0aLXu7m`yWC$CRYgfxqt zxKN81M~QhADz_r~4d)cHK~``S{0Wv3 zGRV_hhT!zdxR_Lb9&THVF&c7c#I*L)T_#-270W@g3pfP=V9b$nK!WvcNxLdF3boS7 zS7B4g{tCU%;JcK$S-;6m(ZI<+%xYy_jNl85J zII#B262>3~cYTCsBc_PB*WC#lv-jmb)VtGb4sZ9(j zv@I{_`Xm>K4|9--=}^p=AmoJiG>wO6OhVGIn8XT4f<={vSQ%ui)jEQj1a2>qb4?*S4FFJg`gyM zCs5SvsfZ!GAv%|Aw%V-emh3zmoBa_kZb1YhXxu1S8Fe;`>I=3|~$st%zUK0DB5Xs=>a<9DJToF0zsfmIr!7 zR3TlHh;1Q@6iH^0UAx?DQ{x4qhBhQ@x(vMLPO6P#bHe-SF*rSL;##SSmE|PMg%hbGO=EdEzvCi2>K==R{<2f(d7IBsAL{sW zwIDJ+&A?QPZy#7?)c{okd|4O;cuwTd<*HLd`##n{+Rl~wtcto+KXj)-IAAW@ZDvWS z+Dc6Rc+oRel7%m{MvP7kU(@pRE2<=utub(pSwWKu9puWQu_jZVW*`l`i{C5;p>9>3 zZXBssbqp@?4b~H-IS4HEMwOPjec_oU2GhwkEG+N{#~5fT%BY+p*NSF{Wr);Ui47jF z-V-iDtL_crtWl;+qdiCXoTTnP5=ff&qbg3`a7`0z-W zn&zcMJYWtU5RFS9)hB;8OTgJkGqb4ktHrRoMaA%VXcd?4p{d(nF$?O39(OC^O=C0Bhl5S~W$2)S_dh_-aLh`$-nsSc*G*L}HLoxT@p9 ztUr&{JYrOyVVFIW#i_)0g`K~yrF4?w10+GDXjFwO?(?$2pm`~xk=Q9{sd5qwW6>cd z&JdH$E0H>RNZ_aol;xrL2AHkb6N00$BBlc$3|0(uE!?3WMWL#zM)0Z3K^rKup+H=9I5uAxnnR>rOBJp5PNJNLho1scz;8=Hf$> zEjT9{mf?JM{`R^~tY*%z^vRVN=WHD8akgJd*pa>xud092L<^jP%1Wd}h?s5THlajg z`0!>-wkb#K{EFWTW21hsh+}0?59MT=gyAH4%M-n2l~iOGN<#@Mxv^vBQ)j^eVm@g& zmd$;lTeNdCXwfg$@GiRqcJ}IurI&1F)@Z(o9weI(SL1NljV64j;5$t??v4n3L8k_^ z30Hjx18t{;(MbXOQ0g=SVlP1V(gD_NE<488#QeD$Js59si;zc1*0@B>L(rS6N}U?v zWySt4^myExipY1OX{=oH^_{K?d@}ed8dGQwfLc6ej&YK2QHmw!^|MdRwR4UU&=fk2 z*r{4bO_{PTEvgt9OR2VpicoSKz5aL_4GxwNIElMQJ?Xtljh(LfCk zu$22QZ2fl^(E#X!&0?pG53dCum0RRwOEp8@`KTgYOu^kaXCFgRJ{SGLoh^$g(t`L$ zZmKCAhx}3zq)#87iWs-c&1yb1MJgq>=n$OK@47)zkNeS(s}#j|-c@0_CugeoJpf_c zRRLmU>$>)MvF;WF*1|T-ggb&mtZQY&h9tVbU;=yBT)V5&7;`7cP?WkQ6i#$4)OT6X zk@jKP>8ci`9oSb+YOI}bL(F+FfyAeTtuErTa&Sfsv5_q)?MwoXuaqSrVz}rY>mjqa zaa(L7!qZa3$7E`yEg1IcW5sY-ueykt79_ONN)=(q*NZS*+;?FIX|mAqWc$TdUbvpp zwrW$0AUPu0BDy`w#V+tn2_s4hsH6ch;QS}flc0Uv`By^~rQFREenW|nK0AAAAL7$9 zaNL$c3gk>o5S?HVf=(1{n{!xe?h;JX_C@Ag zxsa&?bX*IfR#Yzti$g2LESic;icb;8DVSv7->op7=tC~zDVGK5h9zPR$ql%x2Sknt zJ+^_q2)mz@Cw5?^#65&Gm*|>-4b_g~dw6FYg;_)z<#U%Fl6iNo9@hG@T5 z)V}j=6Lkef@S_FPnNpkNwek1&!GtvJFJVBN!JY z*g%Tdzo?ivqmMi?THoXk8M4i^H70j`XNkF!jd2yyZ6)@dViXODk|7-r=cs|$JQ29F zvPVf%g-{7o%d^nA4+a-G_r$Zs0^D6ptO&Ij;>2BZS`DLx95|zeSZX)%_br}>q~9y( z#1%Xww$VdTHXy$ruub^;2>CqVj76TzD&^NB|FN2Hjr{M(Q{5Mlr#n5v@i5#L&?$#J z;YR@;i2PG{nC>m4A7(Z?si_{5bRlkB2F=?kK+&`T1(TC2*D?Pkh)5_);|= z4EQoNPwxeINzEIPU!~?dVQjCc`B#vqNC43}j{I6Rp9H?VrsmIJ%oM02oF3kI_D{{f zh6nuUU;@D_;BUJIM}C)@?}qu?t>z~nzemllMt-lFe*_Qq9Z>Ugk^e-^KL#EhRrBZZ zGTI;2yd87(lbSz){8z>f`G!a@sQKC0>0DCtF_4Yl)cgwMFRS@ak-w$p ztytK9B2RKiJS^1m;FT|Eodyqf0q&>f>65`_)ckMA`>T0R;8#Qbb3C+3&oMuu=0lNx zRLyrpzPg&HXVhz|`8?!nsd;*bW<51e-y;u0o@ABY?GUc!XCmKL%})SMd*n&Z-vzvr zn*Sa7&T76KaJr~@qWQR*AB=p2nqPtZ4b*uG*T^a%y8WMiz3k1iCpvC8@y54?Nh=Rb zI5+sEm|G2RFP(T@Kj4qq&nQZF#%npYP5Ezj?ddhB!YA{stM;cH-#>lhXW#a#c=-Br zBW+EBMq?c_-WMOP8J%^x%+p8KEZ+7(?0K{9tKR-ueRj4SvHJL=gmuj`PA8oTPY1f94N793rZ98@0)aJmk6PnxKYPRx9 zBj`BB+qR%)+*gk!pZcv{jfP8WJ=^uX{*mPu- zvgyIsvR|ze8#MQWqp{{27jC=@!!?WXZho3x`+al7>-CoO5Av$e?(U|#XIcgKI=Vh& zed8OSUOzho`jPSWcr>gNbZ_-HmD{FG-{7dbz?lKTlnT>c(r}|do;g%&8L>f z`QzK33LRGX((&yn9SRy;=pOOh{FPTefURJ>d&A}jUT>T{?x);esxGl?s^s;2PuqyC z4SZ*e?zyq@>5ryCANf(c+s&63w3*bS)tJoG!5f!#$gFl{|FnglWgl4I@@n>X)2vV| zd5pLC_?z$jWS&#ax5A0b>z42GZD{{)^5r^7Gi)z(3-pQYatH5xV7!|JTN*4Ip#OB# zy}@U@Cr7usUfug_#?XYo;Kbgm&Rodsi^U6lAEN6RcXwUbdmgD5yRO?Y@vqNMU)ZoJ z_#5l7pBlE$Sy%1Zr+_zr@s|I5V(g{QTO9LfI&9(5b@RF4_thH<<_s;HQG_> z{nzoXcg9;&uUU&1-l!8Xz3PUI=UcaLcXaWq$DhCO=;hgC$EVCN@5jsX?=fDDDnl=f zP*x21{Py|!t3O#cH7)bcS~FvP55GRslQfO@=mKm3u+tojJ|MSZjCPj?tb7G zQFlhh@{}{M8H~4~@^{<1z4Bt6S9wTX_&aMDug$l0vR>@=8uvX?Y5NDepM+n;c(V_m-uH6HgaJR+e|&V-ou=h1b1uxh z9aiw!FUO|s8CYdtF5aO78yce9vFoL&Y30vP8uE1O54L?jzhMW5zg=VXs4UJ{4a0bIE{+)${HqH(XoU z_g1%>bz(bxU1`G8=ju*T{h`z{|*tqFBm^GXUw}N`dy4~b!p$XD{3sq+Gqja zAVhbq>wDpTNvYPj^Xp!=tq&YL@JOX0hX#Cc{<|Mr&dS;F2pp_gjCY_$;DvdXwtqcS zef@x?9$y~owy{lP-SgflwSK#0KmGfQlfY-jt9SKzk0m|7`6@j3$?p@>pGj+MYu3Hb zf^SD1Yu>uis}m0;z^=k43(>7N55L^(w)gx@&ko*8zqvF%>zVoQXKuZI$!n_Dz8lwv zT!36L-k}v4{SUSuURC*Q$l|=tnW^!%wYt|#O~2gMw6*Vd(Z9yv9VU!dbKR;lP0ZI8 zzcJp+7_cv>(ZO|ZSvtJfcj-F+@?{@=gnXAQ@H#~I-I{O9l>MR8?hkI~4X<~qZ}&fL zL|yt$Kly{8qqqI0Z~i$2ehK4+=;J=Re01c#buE_N?KFMj-twE;o%(%W;~LB7)#&if z>a#8IZ8!KzAv&)bmwvbWw$W?X(@*X`8anmx2L~pFbeVghZl7syc3yw1`4Z?2#%mt= z?yuX;uln5HIHFqUwsi+Phrd7O<5%8TJ*{ry6N~O_t_?qf@$TKN?r3(+E6Eo7Ri7rK@Mq`8KNeQ0fnnL0&6hF1j2Bd~+IH_3U%9;C z)C&u`r&QjZ@Y93|4WFL2^tWdUj;*P4y$*a`_&Sj1Pu6!#uHf_Mi7F$MwOt0j-{O_8 zXLkNGGrhO1O~b=4{EBfr%XlmGAI4<8{n|I}{YU1Xn(_GZ?ca9ZJO5zc_Dect^}kx} zEcSF~8E?%G%CN|gwWrIspZBri_@vI1T@5?0`E1}@N1wkl>(3qISHPEp{~4moIk_bF z$lb!ppKN`5_25rug+6nATl1kC>Q;$w`}>}<8@DdTw>En%iGJF!A zt~PZ;?UmnNxj5w0Z>R0v{<{JC{utx^p`W#EaL&zYXFl(DDEsFdwGaN$vrd7&#;s?! zowmNy!nh9h5`7HO^}lldv(rEA_beRS^z6N|R8t~vZ1#v8r2*~x*y<~0?zRoeP}`(J>rv%~ zI!;`DdeEa|Zp@6Tx@G0UeR!t{+78hT`O~mx#Wv3le=eO6_U4fI9x+dh_;qvYA8GbyV&g6Fiyt9+ ztKRPPW#?MwCVjoT-^MYAlW)BdakuP*?q4lF^TFi`)kk01gLiK+Ui#j;Ya3qm{IHkD ziz{!w7xl)M(+*|+T5p`^FP#Q&8}Y;`tjP_G*Q09E#aVryUGw_6o;kw@Y&M=S-@CE) z#?}D)tQBkSRN9^jKH~+SA-WE&r;M*2m9lxpo~kEao3;P7%b%Pon40k3zH?2D@n5v+ zj5!;?c&QP)E4?}9=g+++ejZhM-^~;K=oe_^ZPXD$nszdBcTMv&p(sugSqYe$5fJano5Iwz5 z|K%O-H7x)0xyl)Tt;}k*uHT*?K00`#$@*vh%>KHe3I6E-#w#0?yy(Z7zwR`84_Q$=+P~g9{Ok1_ zS&3&0NB*?|{uSe`I9B2A%#`i3AM3q8ckCI{7x_J#PVhFJ>ip)k2JJ4jT?IcU0lpLb zzr4nEA72;vr{U#Iy@rnU`KDmyfeRCtEQxKlbjq_e%ASBeSjKp%RjRGp{PFUPog1F9 z9BT7w%kFFYc{EI(Xj0l_4y|wa7327g@t$7zO_|x#t94CDUhqTm+3v5c>Ga3cU1h(x zIbdX&?>4}X!>v5(zQNU(Tfh6L$NH|icP6}EA?=r>u$TWrtcvlz z32xORdGHf?-yHnp)l;jQp8xXX;V5h7)PkjJd)M6f*iT2mXU03LtGzB~PT@`2dw z@cVYJVf51Fzk@H!8E^c^It}ulpXXaJ{rzfb&8IwlE@Ix%V14lNXFpoA`>Cdb&*Ix2 zj92wwidW^n^QUcVyVQSf@BS4}4ziE+9r$ejDv$5o7Tv%1P{c?eGw>%*&!1ks%U><4 zK6y^J;`d>n{+xDj>d#NNZo7D6?%pSttmuGuYBAp4#5s4&-cNqN&C9lZ%%I;o{xIoG zkEXQ_9C^OKwf40mKgD9-$atF)f|mYu@cmm0qO0Bh@mk%SdXdi_o4>yKPd&YRFZQ1Q zIsD>I^{L$^rrQhl-pE+gzgA@PtFwH+O&Ym>jHS{y-x!~3A6aI4yG8hx1mk^Ku%W`X zddI_Jp4f5eys`b}oqaD~Iq}>i%k)oQn>90~X)fZijHiF@+|QG0wVd(I?^7p)JQdq@ zfVE0cz*m2EoV;X5uivg_VU343pmvXrD*Ud}ORq=w|8U4(`Hd{=KJ7H=z}+RS4=wL_ zsQ;6Dy$31EbjEwD_a_yuU+o)wq{or`(8A%*zo%qf-2aWW&L3VKyR5lBViw+A%Xsz) zK|61KVSV|K$Dq&NU%Rq>lP%Z6d{exdjd}FqR!c@kC;EmmwVPk{_P&{Kc-{4G`pK0& z$>*Qm`NL#g$1~U3P2WE9``Z(by$-*f@xHxo8`E>-__1%K*18+iVdtFzxf5H|So7<* z8*9I`Z~n6{LH@pHyp1VdH>V`jm@sio<9BLAEcpDVv30Hv+xgZPb?z+ua8dGxboi5v zsNHcxW{1BrAh*ft)h9zuA7n1wl=fuHA9@(d_|D#)QoDdoNv>nOk+<5MT=K`Jeod}k zAGW@4{EL&$nESpyc*W&C2PcgG?(3Y%h(R|ddb#t0N7npy!oXfH=vTl0%X1c}g>`|W zU+vv-z*`sJJTq(u-ige3pZ-=O{fBXHe_L3&{*;MLeCzzNX;F5cFFrY&TI;t@M*KNo z3FeLQvM*ir3ZGf$y{kX+dhb+P$to$E4xE`+8ZK z)sjAlUP`9Dn=GBk;I48O&YOhLt8lD?oG&EnlWnydbMQ7Zdq%c-P*|(5Fhb45%Ls5x z)|fM>PvjuHS0o2jQjra9-J*49i}2Q=VXX#b=ceb_Gfac5qef-t(!tLb!|$)Z8lg=2 z_BC4;y;;VM^wQ}mctP*sF~atsjBuGaoV8DH@sKAj??L-p%EUnqvdpR^JUmXDiuU~B zH8k%3tD&Op{O>O)EHM>WlKk-UAgg#}(K^UFCeNCV=Mdevtmx>1)ot`-m&f9rdNv#i zdkCamxPdn+=4L%?o#3h&AD)JgDk%>90D$_c<>vg!rAR?s6xj zUdgnL;y0hUK?05Z@T!;_H^_`j7x~rJ_uE5h25e!&?AbXPf=&^|6Vhm0`?ihgWwsgS zvDT2D**5E-&{l)uRBtY{Rf|?F!rF$mLORHf^CpARahQ?Lomlx0;{*3hbMn&7xtZBn z@KJ~J8%^9sSF$o)eYbA&QAT?EuG<=r9T%DVrRyT?8N;$5n58WA|9P%P@jFNEw@Xrb zO3aZNuPoNwIyZ>BWTDlTk&``4^tXtVx_5_Svf%-x`{jzuMBxcDv&HI;iNe4$Oqrz& z{C}Qub$QESI0tUeq{x0rI%$II5-u&AZrq!;ntAKo~|;7wSW_pR4m#0Ce3@m|&Y zl^YjAurzL+vwD^gHdbhZ`{h81g`o;o9=^Aco&Jz^tnf~nTkU!D z4Gz)o2eXJShK%0&;Wk!iw}IS7P)=SZ?knL*GIuTn_i6w*EaUOs+)<@Wk6X2((Ty=b zacj+8_QqwdXsNkh2Hd)8WpCkQKgj(G7lo)wsJr+{&OhF%>Q47xsBCv>)=b={;-HHA z2*Nml=0gx2mpf^AePC{B%k+QV4!}VvJp%SWQ_}RYYYfnB8s6E-2igKyX*1!zO#t+z zAb6j`}=maVe9LE+B1vV}g7 zr}XzikY}X`iu)WLbkx0`lbk9#S)qEiMV6>rm6W`#g0F)*m5e)Q5@CL`%UnLZp=3Yk zZsqTV#zk|C#BnLHejeUP#ugpP!)qwlrJ;IhtwQRVhUJAkh9o;LgsxkMGz}TT0Kf?# zF0A6BJxU)7QSP^5NWCz$2%@2FLz**XHUP?C~7 zX{`;#jr}Z1T(YHgkvV8#F^U(rxoXZLijvgmgDJ|Q8UY;gH)Gs3DR=V zZjl8s4!4jJ`qmv2UzAb_4m^lV{R?Tyez$PMeKJv$(!=a!N!ox2uDMbBw{@TLk)&kL z+qy#r1;_t^xMWLP_bqz&QhgAP7amkj4 zG{wU9JftZuMqIMaEmK^=*ATpP$D$H)FBPS84%{*2|4JOqiJ`c0%B4+_W09kK5Pwe< zUv0&fBo2tGMBKqTl`Ri}l(V0j`g?G;xY_`f2^w+9D7P%Ue_07~Y*GjwWNcz2Zt=>B zkwQPk1h>=V$&LLiNnFlBJ9k(KF_xk`<@?;B79%Bl-o|}wk^L-5T(YH&JJ=#7RMW|l zwvJNc#2-X_ijjJ#{VYiw5I5>NRX?~xZ5AUX`{|a5lo+y<1P~X^Nk#e~ z6Z)^j7GU zAug_g5LI`Y*uN+4lqUCCmr%E81Jy1_TFwcS*6YC~(b?5f$V=XYy3zDX@pDplhoM!u zrA=Z<;&Oa$)TS!WQ$w0kGhG{X5m3NT#OX@ zDR}M{x&K$c%aPla`Y?Zrt?zBY7ut%yH+`N?K0l$gPk&yIKl)Cv)7g(-I0Hw7sSy z9;ElhX*s*8SG;hIua{MNeZJ>&pL{>O$NCtb6rOI)b~7P z9apC937B!y?q`@2({;$e!Mh9XRr{ohqT^I_((dm_sAwn%r9ww6NECiPZI7R0w}Alo zbcur3%VJ*ea(?9o_YbeaSFUS4?c=Zq^_`RG5m+kq&_t;{xAixo^w3(xyQBX`fKecSqzdTgDH27e zrZm^|WBEi%f=54^2KxEoZ_T_%l-M%m6ps*J#qq38X@Af|X>wLkp0_AUJYN0%YIQ|P z#b;s~qtbIAjA8}FiWPq-#z#%@$wK@QO=^$&p!EmY|MbJxe$Y4S4N>yJ_hc0o5Fh%^ z1k?(_LhwJnbbwqV{EzP^AVm>L3ySW>#XLZA97(Nb9IypCVgq_Py0&+8tw>tU%Tdnp zg(JobCEf)QUKc$JJkbZQ0>6v8f*x4QetnW1UHzb`bkI}bM^W}@V6Co-qr2af@j*E@ zyBUpiMYrw0Ui5SvaYWxMn75Sr;CoZ?u*G9=bCQAzqWwVran$YPs5axItx@JYht;cZ zq17*0tnX;QRJE08ziE3aI=)AzzeB}+JmLEySl%4bw}%XLbgd3DKCF<@yBmE)J@n1s zI6HWE8C0NeEmmZa`5hf0hG@UOD24gsGJ-`naf%m-S$whb`>%}wtURB~sYPMUW3f(JD>0;^JdUz{snd}XaWjrMopFc^E+@SAc`gjIZ$v+oRw^~5i25nu+=o^YY ze!BcC`r$zF^3=!p`0I4~9zGRx{yyb(Iskoi`fMb=KK{x8`h=(QI_Q-}r=qaBJrsJo z4tI%0`73uR247Qd04_xYmnY3ab(ADjX`pn2rqjj)mh+>Y7_eaH6|S7c6{++1JQaR% zP!2k!DO4g&O)#j1GeI3Bu1hd|^c(E9Tey@I&s_pQ(GhkVrTrlX9z&_1@ z;Zp-RK4o>@J~e5jb=Rl+1nJ871naQ00z5rSiZgZWZEm+AcPxYe3T&S}M+h*DYzrea z;wh~l8EsaYS8H3C7MdBE9HZPu4ejdDMU`mFAt?KoRulnAy$#LBBs(>B5|XsCM^}L z=oyc+wba!ef@i3d+CW{FQ#u6W+d%xw0x7z##OoU$rcCz+RCE5y9}-q5 zVR}##c!6rppY^DKwUe+|iPuxYvL$Skgw2+)xf1r0gwYqNMgMBRyA*BIR&)MJsD!nV zumKV_M8fEswW4mWgiV#OnG&`_!sv_9qTP)W_Kt)dmas1*?39F^k+2Ln&7$4mYR+F7 zCt(vM>}d&`Ct+_$*jo~|UBY%r*dYl!B4KAG>=y}Zh*=hWX{zS@m39)=Ny7R|*kB3E zmatJ0_O66|AYorg*f$b(OTzw;FtfMT7pt1{SLR9BLJ3SIb^T#D$+yvYpcXU2RVOKhj1w5 zaR$mx{HDaD86whc*<*}0lOYvfr(nnBWoQ`>g+5jxy(4rTzqJS;E#x*g*;VOu~YowgkP3YR+HmCxZ~!@uR@joS51} zXglOcpsJ4 zKp^f4{dWT!z}Z0^gYAz@KWZyKJK3XSFAsaUX*)fq?ed&{)c#ZW&WqlU?wq#Y13R;d z*a1d55^hi1Nt@J8LxL<@E*j7cNADYsh=5Mr0-g*o4BUcsB${``1kI^9tJ7U;7suc$ z9ctOiOxx$x>8|DXi!HiOyWmw26NI8*$H6&cy_z15+x3fQ#P!t}V(LC9K}F%cBkf=l z0;Ww43USmd7<^-2^gSxFl>4w1630HnKpy6t=zGb9qrKE1-=uqpCpoSl;5K6zI7r=# z_A7|-Dj4EdQ0}G&_Ss)jWo1MF#()i`7q-6$3}S-~UXJVf%NZ&y7hYJ97*LRK#Su{t z9d-0-KjWyasUyV;NxeBSt&|XZd1KNyTw6>*mMUK#I$!rG%AScJY{^nkk~${ zb{}!+=@KQf~O$Rl?pv= zbsaH?(b}p{8CQ?C`}PWsL<%DWAcTN0f*M1JzM+N*(3E7lqi0Zo%~7#1GDw0*A(7s! zs5AoO6FEm?B=~gvX}>j?U|Q?i_OJz}q%Sc;G70HS)BSYJ$Ynvt7a2DMscf){5myuQ@UGgzs_v3v8 zZ3vrzECu8nDP7@gMg-GdgLILiH1Y7m(5m3C3I5jM?`t@x!5&`!s7z@K;Xp$k>Mp;g zs!gjg%`nfF&`TdHwUr7U6|fQCCuwOcr<$agi78t6!NsK&8@Jv}Ol;g}5PSH#Jr9Zo z(3%Hn_85fDYCGL~j8g_U-GZ-RcbLl8X`YQdUWbb85^U$|+*~F?M0swN0`SJa1Q8mg zjVtim?Rbwsu5D#*xQmAlhNurVvdMIJrr`n@u5oChs5B1E*<@uIvO9~nZG2!v$ap0E`K_D>FJ}# zpMOAk9WJWyMUc)D@q|o$qP~SbL*ESBZy$YQl=}F1>6+lGE_R${y^7Bl2?dS9&Mev_ zM%6V&yu+5R?tz z;ZykM62nMJg;Y-9>t-HxTv$;Kw0z11cuwi9_trPXcywMqK>?or)Q*nSm@+KKoIa9i zlHihY!9rK%MU#!;kc~#bDJr-cBXYQoSW!-4?a0$o%cU>chMuQIH>C!8<5Q!#3xc+v z7xPwwP|72~6QynE13Z08-^%~SJ)jS+qJ9lG4w6FaYP1uvdEV&x6K4u{uR z9$up_w#3eg#kTgh7`6Q0R@HXxu0fT~kY32sl+Pe$kqB5Jq@s_epo(WHK^2<)&$y8g zmZ4IECdU||3Xj-T7O3@7;ss@=R?zxYYUyMu)fVo@Fk|Gnk~PzQ!p`tjet9g@;lX5A zc&m^8(!|m1(!wJxLE|l_&{vW97h}xMalMWnmra395p|#tt!8+F0Hc=32nhKn2(1rN zm_l7rXkiGC9?mdYpzB5IbqlOZx_*@B-x->SQ?H}d^6~1m7TTa4Fa0Q#K|c639@5`&eHba>9Z|2z ze%%F}6y~2uDcD?yluS+w;5~|z>eoW*g|stLf22K-mP1Mr6QV~eJp}1!^|}uDQXbc& z`l=wM_(N5s?T|i-v3ksJZLsN(r6x73`TV>$wl?v)5Uis=X# zaYn$1Hv&eH908+9j)0jZj5M`?Ju6|)OV~CE+bLn6O4#QT_N|1SmM~IUqFqu~q78_v z3iDEP{z`2Lt1n>`4-$1dNLX(P>n~xWCCn~iGbF4)!d{cGHzn)?3ELrIpGnwJ3HwpP zewMJuv6mJ7i&S&|N|J=7O4wKln;>DcB+MaU-k5nouZ)`WS1L(ZH3{n?VcjGwMZ)?> zm_@?INZ3pXn=N6BBuup<(7Ov3I-7`zs>Zh)H8D?t)wlrWQoO_i{j61G6X7D-qms7g8; zqF0)!Ie(=+a={Gitmgb#rHZjl2TY7(o|@Au3ngrYguNnR8zt-=3EL@QdnD|03HwsQ z&P&)O2}9%x(TRYjcE2fq;ZAGell9-HWXq^sm2;YYHf1l)HhJ9oq3OXRzvvF``lV|2 zE&}MT5b`_9|ArQ+T#X|duvLZV3+BkQ0w>>o&p4qdlH`WI3Y zQcq7MKMSb`QsO0DQ=3yz*;g5-=Jb4DgJAy3YZCURn)An|Sk%xfCnbz*G}X}a4OCH= zwt50qLCyIqWQzqXPr~?!h93zn9n(MzN1Pc8-zh?C`(AMDckB&6*!18F;U6{qNWVXD z`>tuXYdl%@eR5Qq?*HQ47e8P0ozwly7lmK^H7ELZf&E@`!KB;gQHW!2h(LK6m{4C_ zQ}Eh(WFdo4)E}{hSgOrGiLD;jr~uX|98q*FH@BiPDiwG{-L?E$M=BB2t|E5DL+iFkh^be-2H!5E#z{s-P+f2u>Ox z?Bj)dug*ZRHgZ?V_eT#x;a>VFV^BYmcaT&&g8svH+zVSQf)ichMI?c-51oUA>FM05;l;O^&O-!`G0~dngbraH=PmeG z;Dh5Q?Rjmh&<4Grt%7sJ+DvgJES+-LDqxK% z)CBdptm^g?Wy}R#YHKxPJT|v_9w~8Zj99fLmMzV7@nwrGbw0^ff28DmV>_KsQ6p?; z^J^l-h9RGpxB=-vq(-E})N*P*A1wD(7OOeEvQ*9abIgHC^~x>@J0bDDlQ1ZKrlMCo zA)i#kUwK5$>2W$mgLRXz7zv}zKh@AvKh?S$BO#yQ40;3ZpZS!|jnn5i-Z!nX)_TxPrTS^$jlsxZIA~02?H_GAH3i zuMv%s5oJD)0>xp!L8mFBZzG1E4SnNCfXe7zU6kR_Dq{N_)-AN(mdBnh>Ku~@zk?(C z$_|<}M^}VqlM%5k(>GNdTScH7;pEt=4uk92sh)l)KLVn%KO_qxBs&ec)!?C1Crt-L z`&~c=0;p;caTf``iGm7Pb&B#i{#?sHXafM3it}}!6f5^`OXWi9V~`_xajid$%Sp0? zDZZkkV^l@&Qc<6%4?p8?XEB{+Go}wW#AM^tly-y3L)>7Z0|gYPA>k%BqZ~R}AAgVG z@1Lx6B`oa9=po2}YM#+HoQ?s?D$e!mjG#X5q9Asme+cgBD(k(VV7$Hb35fVnhJqMn z1N2@2(G_*E&^|$kFL~<9BSKiS40#6Yh%1Wt)E-(Bk+bduQ(nXh@nc_OH6w{nieoy2 zOF(;M+!eqGeGo{_L@J_Op$vZ?*F~dIn(NSu%jba~1A#;CgopA2!@LyN<0VUJNS?a< z-3a)3>8*${`2_g;mk8Ps31T?iXC&zo*BVK0#r;4(*!X~KV5Znv@(E!o<1!Cbiw6tTnvj{p+HR>+AJBt zCuTr}D$&$wurClyEHNF#Q8FtOTOoB@oTGw!xS7M{4NGv7%o4?lOYlryJsq5Nnj;D;L9ha8-|svQ_TNKN#1{&D5<_X4NqT8+wEL}e!Zr3f&wKFglbf@Y+il1%(7`m4v-2Vf!TP6A3#dVP_<)P{MQ&VL=bENwwW7 z64pn;=m3kr%akxWz#?D)(5#fhMpez>7>tCqk+5D8)?31i5@wRH*%CHa!d{ZFRTB25 zgl&?r?&yc;OT3!%SNciVAPE~TVL1{uPQoTi*gOeaC}D8%d#TR7-<;UGe1y1I`83Y<&RTKTa(ild2?gfn>CGHcVr6Lwqvy?OhZ2QoCaqosK zcLSj+#hvX2F=1+|INV8(kzFzQz2VG7Q{I(LKAbNP|W4Q?BT&!%6wCUx=(Gn z+{ECU79}i5CDnq^RJu$gg&^p*1-U<}^Ft;hRc%c(A;K8q@UUt^o>t3U??cQ}VU&=( zk_n-MKGO++UpJ_FlHqt&GNf)=es|J0ML%O8dh> zNP8h2jFh%YLy?kHn2^#sA-c4x%7c@_v`|i%7RrfuyMSF(@%;HY1OcO{l)$T^=JX0h z*#)etghfeMnuPU}ut^d&MZ(A!i8fx7un#0`hlG72Vc$y_-9Z#}uSpoi%ms{M=AwT% zcB{hZo|1qaLe2|QpjVElIe(=pBuUh*uIBueMiSOc!rDt%X9-J|urvuHwNE=ZdSGTX zxZ0<$qf_`zM^e2R2Lk7k>U6|5>QH^7Eg+`T)rmLp&>wH^(w@3k(EHw;-hL^`b0P|p zdyVia9Gh_-*mwl4YC&wHX_NdEScTYnF`ceV3UTzl=SXVQz0(!DPeIyS_b&Q6yxuB^ zdh4DjpLnKwL2SJahCz1UeX;D>IdqP^3`ZpPZhkN%K5P!W95H^WY$p8FPQ;_NUXY8@ ztpc6lLZPbX#m0=JnP8N@rRM3HexHWY|KbXZMtMcO(#k7`QMpjeSi{PyV&xVtcUpy> zn6a>88#C$?wf!#sz91s}BdZXZV9YZ_nRCUqtP^52II1$rn8!OCQrx29H=)2w-;Ncv z1Rp5Luo)C{v2hdGOot*s&?flxfbMgu=C>K<>4HCkbtT~s<+2XaP^tbcX?j}w)HOv} zfz65!s%Xt=_fv&&N@ko9u(e%+my!Zea*S4+A$_>fqKyy=5pgd1^#q|t+*>*rKb>LC za9dah^1`q0%&^JOxlZkU6wLJT(d94HoAgcK;QRZOY7A&VFL3oo)B$>^hxI*6+a~zu zuPd(XKSKZiLD}a!!&0=>pl)f3o#vEhlx{rJY|_kVjOq|f;zqw8fkq0QLb>$Q6gCH| zHVPR3PqIWBn^>n+zEw_W?Au6*(RY#Z3QIL>qK4 zO|*MJ!cIuocM|rigk6;|I>aXGwo-HcN@oe{Dq*`NY@dYDX?IZ<8+x@bmn7_pgh6}b zxaPD=etqc~$j#uFV^R>#a!!AZvX4`41?7@5=JdXo+9##36;8DFIuDTI7_6TBJZaB$ zL_w*=2V{N}|n(DntbrxeE4!z0Te>siohh-3Fa-d1odk#p_P zGZA-t8abifS0eWV#HDmae*~qpo=D*7M|TDMk)i^pyOFw4C zsQR`ga`V(HjsDE804PpHzY3EPT1?SXpQsNM+xfDjqE9r9Wo_97i(NaCs70q})2=9c zl{R>YYapUi{}g*G4~jYR7DB_l53R1oIIS*eBrW);niHx@&DNrt zP-o)WL)pjIB~1&NA0k5$3q=_VW`z{ll@xjQl8Dh9KrZkL25}LcBF#s;L+T4@XH`EF zI$cE)1h?7BBPOOpj$%Kg{z<8m32-u4lLoGkPbNSfP-5TS<(dyHX%>K{UmQlNs5<*J znXXf*4<_c(lxY)2b!p_pc)@mplsw3k&7DCE7WbN)({gmsrNVQ{<)VVdjXs8^x$fI&U*UHfS&4^zWG(#asf zTK6i_+4yT!OlMLZ!Xb&z(g^UK)<{!!PE7VV^isRm>Qr-D3z~AFRY|K8NohZjk|A>@Hex+QWK; zrv7LgG(I5kk9bc;g|3PBcktJ&81JbL;WWcv+oHTTQ}9Ugolb3lbANwm!}V@-dE9j- z<3c~8OnuPqIJ-WZ8ip3}z%||32zW#btF(q=OWt>JRm*h5f0#^vgjTS26e6LiRq8(< z*x;$A`w*@-ec6$w@oGQH(_LTJxo(2HxWtbZNU7(cNCS{g1{1|xQ%=k^<-}YI7|peS zk;W4+^5zAMV%-APRn75TRYw9jagJRtr1o)K>+85ZBjH3d~DkK+wuH_xUOfN1a_d(%x;aWZe zw=5>h)F-OD7=OP}hJUolj>;ZGYQ%Zs!e~G*gmXZ%jiaTd$~HL++6d{X04ITA22^nM zE@E(iq@pC^tmO2;v`x7mUhYB*gxntb(LRnAA;Dm?nMpwm3&5tG@JP-Tr6&JB05{;u zFq~qm#BL291BOu>bpi8JMl+7KqWf{(DD*G{0~cNpMdFBI&N{=m59AimFO2{9VLJ3u z0Q!m39s?2K^>V34O4&J{ag6ExPp%R|qppWGFdMFiHo#l$&<2fVw5qCk{SIg1;y;@2 z{rL08-yi`}ZYx4pL)YaKWB)=*41(3-P^1UeGY#AaDbd0K-TWM+1bN?1Dy>m*^cZ54IXCCn;e zVqcd8iUNeHL<#nfds?uzOdLnKrJgGT9qv%W#A-W@u_((t7>yupu_K zwknQ5Ja8AxuM_Jq+7CxS;_$j2`wcuuNm7C;D8A+h#w*3}?4fr-H+oRe7u!v*f*`!b zr>__8FZDt|5!P0H%^BXYgSUnaL`{vt0uVZb*)3h?twkyQfWSY}d6d`wR;h5U-1YEe zJCtP>D_=vKOjYN#M=qmSxhESdr_PHceiqYt)F*21Rs8MNRy+Gn6jL) zb4bAGc&osxqULZ+T*AmJ6L|3wmMmek0~B@X@f3l#Ny6ThurDR-xP;MpI#KtMgoR=S z3mDx967=Z76#=932?F+sgdLW!pCs(Ogh{<>>z(Qt;uU_huOo7(W1OEOG7XCF@p+y0 z+R8aT=bI_^>#XT0f7I?>5Sa#@*v-!oLjgG-aT8v|?Btss@rXK9V=|a~3Jfn@C8nd4 zen8+~ag{h&g=^)mDv_o)tysCMN+fNTP^`STN}LMTwkxI*sZZ3N5r3;os>Ilw@p;2j zbIdl@i!0%2;av@MNovBW7YE>mOX>QMHZr8vNUc(J+@-ac=%|x;qM23^;v-Cs?qnqL zbtO1>{;Zco740Qhg#9REh#M31$}Czpbi1g;oeWLYRb_-&cxGPk9-T@{J>=w%XP}&# z0HN6$~O6)FhAuluIBGsE8p#kUJPAh*fkTfR3lJYSrGf)oNSYs@1<2t?k!xQ3LAN zs=a8{TD3QZoS8)1@A5zYfyvtE-Iue^K6~x8_S!ePB4$ek!QQmt zpkjt3M$`*iSHv5s7)K-|?wN{FjT4M!CP|NGCc$WC5{!+EVAm;jy<#6Kc2uzl8UTsg z%eo@oaK%O`X3PskGR6xV!{i~RBiQagg|}+?3IBSr&kaMees0OLb=cyft&%V7wN)M< z!8kA4lS1sKfL#?a$gl&LKlhe5Tdyce&O00%?D=Ox(;APh6L(|J4BTJW`>aB{J;vDEH?b z#+De!M(N(B>oBHVfvmNBm=oK&2)$jzua)@z+?GP*=p1CQHGEC!;SJ*^9w(b=9L8oE zBiqj}Y}p?M+{@pazL&I6UjXB*|R{;lm-iTrl(A;ak|~KA^Rjyz6|&QSEbpKA)8UCUHkjy;oDe$J+z$=0vr2oj=dDHaCmnDyJGGc%Z;ZDd z&9d7eP0|R5y20;xw7mz?bW-sv3>6{0S*AUexx)2k4l|qhH}TZe)7IGboK^r{d!RON z)i&O+i#H!%ZJOy`(<)zK!u2+<&27*+>>5EibFm3%fS1>_RBBIZ=L?7Db6ZQ{?Zg=BhL1^hl7$|D9$*C;-?mWxR0z4 z`6*~GVE+M%%y|9!$~@bj<9;CScY>Y>x(AfC_&HF1>X$)lLH`U&5&1gkU7&A)J^=bQ z=x*!(7%0R44)i6^zknVE<=4RGqzRTV@6QG;!t<%i9tTSPW`0gUFwq z+W%^}tgZ9U!MeR3oZ2gk_NuW!=Llq6wEp3t`1S&p<=3{>ucjsWMQo~+3#l4|NT0Yq zKYpy44bc4V!up4YyWsFX;1^&lFDfM!%vqTm$2@F3y>F*#hjBl-pLl z0I|8NQyzLD$?65z8VbScWcOoCCx(cX403?*6;#da0+q}FPb(rb=Xa4o)BWFP|I~)= z1J`#0{^jH7F9MbJ&8-3d_2<$*B~X8a4;nPXFi-em-Y)zeV=G`T6{y*^hT~2|6a(_$ zAA^RmA}$R15{6YG`&_S%_UOrK*|CG^6nvCrOxD8|Nt}h-4-8(7U#AwEktT2-q{Vq* zGSdnw3a+o9dN1mY=(zX_$Tg zDA+z{<9F<*?RTkyvffg#^#^^);(vwdg?0HYYl1ldic~#p3!5PS9K=0q*gK%?ue}Re z3`+mupoehJ3iLiG71+a|XIOvs*FMBO`Rt#dtP3&3TWbB6gB}IG8Wi6uaScca^k&dp z&@X}JfqoMd8~2zg1rgAn;yw!cGf<{SK4gAaaMMtdBKYVM!AF;vkOcdy4JWgT1&f9x zZp5SENU#BlQSb>y!ADobTcX${ie0AI6^ea9v9BohQ^j^FMzfMUgJvap1_hsB6nuh> zK#L^UiPi<4SB&#fB^>uek#O~jQM3tmk7AE0wokEhAYvq3g>_*eieeWkR7%RG9e^QJLD_F|jccx!;AtdRTEt|qiR;+Dq9%+qtI3on3 zBJqAa=%u^>^Y_{}UWok(amY%`qlGZ%nX#2mA;CZ6!72GV1&F(ScML!^t%9K(l!8IsKHBj~t<>uWpP_#=Nw;hNcw_Yva?fJrRlVtyp zO(KPAvq>s#pKl7BNe1Lm8*b*ao5tmaorjqa#~Z20frtuo-wl;P_U-?k6$1vge^T$s zu7)$!sj>f9^l_L=zBV6cUb;U(W|d&@)hHv*0?z9#H0i17Vp9b)fBEewBT&ojd!f1) ziY+f6lrkU+dID$+lx_bI&@#|bpv=tawF$;92VEEh%5hkpbw#{^iWMscHiY5|_8VYN z?yy{k?L)B@YQA6AZ&CXzEqgIVitpZ$(}n|am#A4zw-im54GJ=28pSUmXO#g?VjPAU zh2QfZ%SjuiG%jo42J``L5?xHbDc{^xaz0tE|7A|1n7So zqX@&|!ziN|GlA*T*yr)vkW<*eOt;urZ~(v88K4o+GeN0EodtS4=ycGbptYcU1n>EZ zyl3qhjZY#%gDw#obVa;dt#1^|-X)yu2qWR{SBypj!G5n;3^hxzW34OVO;n6#1bN0Z z#bzkBOEJ!omvApB_KIRDVKuy?aO%TN9Uz=GF2&Zl!zq~xoMhtEp^p4A1&F)GS%+)D zgOZ8bCNJk7luU8t?c4xAF-;VwneFmor~I^G)-o%cf}GS*E}e|6I=db<`glR(a_cqPYAQ7cy-M`=1C@8R{o((VXjzjv&oc^64iUp zvdTf+Pqi2c%RDGiAjJ}VET%jsI6CxIP@3EB1ZD5!K2VxozYof1pN7C9QRothLRZ9l z!1_jwiC(b1ialjr5o4y5xH+g75{@G}f^kGgF!F$4)G9tn1y2cx(I&=!se)568g7z7H@A~Y%rXjA;tNnYS#B4B zvJx)_WhGt$%1XQfltN-HC@b+P2rQMDE~&(HiCQGsk8HSz_k?vtJ*q_#?j6P6SB%zK ziF>?tMZ6J;ov0YM`;u_n?n~0!rr5QLr7CP!4SDhZVne`Bz4t-cc;5iZ zdVi|cd%C3F({lE)dsS1z(&k})4!Q}w6B9!I z^$CQH-LmuA@(FKL%XG)b%OCyQ*gX3(UJLIixUQ@q5l?Lt3w0^VU#mu!_sSHvu%6zmxrPV_dxsJBVD{?;Yi;t5u**!dcc6RIUHZM72aM!2Hg z_}p8pD`NJ+mvCIFCE>vO==G1lh-)WnpV)cfMRwvv7Gu|s_iy9p;}={n$~X+eO1r!x zi>zL^uIYbt@e`{MtAV?im%aEgKf^7!+LP`pK6iq7Tnoxib_QNbx}|hUx0J4k*J6F6 z9;<+0Pbv1aVyaa%=e1T1L#u^0wFu*s-CL{kc$Bk0ub{N9unFxdDnDB_&ItDx6>?|4 zsdHiDJonI^+~!{X9(<7)7bb+f=F#(OSBB=)aYH}MYivFSck@NZhV>JJi;MP5>K@zv zI?_Yx{>;MGicsk@u@=^?(%rGG`$%`iuGz%^Rg3jWWtmSp#XZS~?WYLy(2F`e%in9B zmiVB1^Obni`+JaLalByRkJ&=k`@4{nEl(oHSeJ=HJG3YCW4Jw>e2wFDDlwI63Jd_P z;p1vj9Rwa>G}f=0duUH#yqjM$1v?(rl%YPxzPH<-SCkAtQjO=dw1=A7u&|oxo3l;* zT_ztZkvR8&D)N4-E_QXeX?4m7ybXTtVsp-mWzQ?vtDpwP%lW7GDp-x@2mI5;#ToFY z!H$=UKb7r{6)xnJTI4LayCL%g*jowuc5jB~MI$oo$Mxk)H#V$Yk}=!;BsAvG;89t5 zEy0YX9GLiXU_Z<8*5LOde(&QqKa{d=5trS!&;TFAR(g|St0;FS_%7@vW2 zV$TBq+zm@re(1z5#g7|bg^hc4!zEl6)VZyh`sOiseeUjLUzJ^YK9>Dbz9A3Hp#-E1 z!0tSFR~`ZYo0D6J9cD*_^Uf~lHrj1qxD<)~1^IUwb4APH zcD~;Pld&=QL}5$|3u80Zs5dl}hpOjH`H;aT%dE!260hQOKHOQ!++z|PY@^@^6?4z6 z4fBw+Cc4%X9luUL^R*`1dyHC{`*2zg8rLqhh31(?6q45);Qh?R;Lx?i$lOuOO^9PV z#vRDGwrdzV_ijR*WG!K`HWKf1E~Y87UlKRrv3()OJDh2l!=J25av$=FZ8jZ4a3~b( zykVg32KGtK-{J=dYDAP6_DZCdZt}ZlXhUwNZE8c7ySTiQRh8KkK4JHTACvr$#tjpD zF9gVoHJII*$K=-B>-gO(79=rhD^j5;_SY7l=}B*94k%?FRG>r*6s;(7?|Jh;8NLn_ zV|)fL23>&rQJ|j&rR9X-$AThLW&j+6-DVAa1L$Jl7lSSZT>{E?WB84rji6gVSAf1| z@ju!7qxK%P!1!}E72_?o_iP(^&k~=2_mY8cx@6#+F4?J3Fv>!~Xf+UwRs+FkH4uze z1HsNyY^Gv-s)Sps*sY3vSuvW9CER0*J)_uf6#J)QXqD}Ahg(r~<6x*QK)rz$!cDrJCD)yja zKUC})#eSn0j~bQo`@3R&@kIseZ(R|iunKmPV&gR&k3f+3cv7)nD)ypcT=pU1-c{_d zV$k30rjdD^S+-~ork(Y}mXY0CtMV?wEj6qeg|&WtVQV;2`m0#WOQ>qpvdCtodt%o- z1q!96`$EjEX87vG{-PqYZ}VKvLfaWXhiX^v4hr7MoG?~9dyYBzo+{q4wHWEHo4+4v zVFR*4Y#T`(uXz(5UGl6|yReyLYejc>h|2XdR4%GqM)itSK3;N&kJ}fY;8zyZ=008{ ziTNCsK)-&dKg;S|)2MSz6P;_9KcinV{9sjSb79k79Im(as`zvvLr9(|Hv5L;S1nmLzEZre{v#y^7+RbiQfU^O2z+;u^vcc{5Jfypb`Zq zT`*640viD~&~gQotc(u3(>z4WI!3juYKVp#@%s*b`JYI`8W5_-m@uU`B>qVp8-?-{8V~N)-|t{0Rdtg*WG}b;Q-CU!^ zjfars0pDMQQt@pFB=-zgGu*pUzv!sRxLlrOQhU=YMhc_7pBS;uRo#8fQ$s=RMszl} zu6j6v$M8_m!JSrqzO=-mOE-W%pJe$DaQA8bEE;|VmZU`PLY9;HyT?Si=xe3(Z)3f*)AS_?m+S+M`T_`75R+*uYQ2QXu zusTX*bovMpsZK=rDdPBvhQfV)_%YHo6lP^&ZyHK?QALpn7iJu}*n9`^A`i0R9fI2; zi{oJl@+G1hrQ~W*Dka|qW$oDlN~L5gD3uc8#h}|kS-LwwD?yW>(?G8Sg`#7^)qs8$ z_fT}aR?y2qKL^?ZdIRV+pf`ek5tQkE8T9j@cY=NalwaUWpzz~ZbmBo!hWkF~ZJ<8} zh21By5A>^`&w}0o`X^ANkznin4bXy+$1_b59Gzx-PB_Q26Ksok&(AOsg&;}|U82;` z6)~IM3-&h~4)YoiQ!v(Z2{%-+6BMIySi(`gk#IB)3wD8GRBr@pQjCg@U{rJ@E{({7 z{YbGF6nj~*LyCQ<*ifh=688k_ig>3hHeNAqVlCk=QY@j^HpRZE7|)B9{5_=DPZZ;# zQ%R4DP9+>qTo(+h^DG7ywOH7?aHf=ELlvu1>^#LTQ0yYb)+*MdSPy(rd2UbZ!U{LV zMkxj*1iPomg!lMFKMz_%i9dC*AM(qJ;U2jhHNi8J->6XZ^KsV1;n}j6D3k~6cXz~0 ze#cxLLx&*rXS;E@5l_fCJZTm%3K#nEqPV8O<2~sV{L=k-3XKc>He8MP#6c4|(`4N9 z@p~;p+?vfntJYz+%s4D1!7bd_*s*Di;KwoCiO7i)3@(pOFfd;fJ}0wLGTTwsuUNZm z9o|&Vfnhf=W0ex~!v}CSotr*TZSM0;3!Q78QXgNlUba&~i{_0o{@jdTT4D(=M=miF z?n-4)HcFPQnbJ2rV-w0fe3)f!Gbb5l6Dm?0d*wmI@_xKcbQD6SHK~i;vp`wSG>_xI zE;?@REh~7g0A=faHR#Ep3DDC(w}Nu+|8~&HpgTbMI#+`7d-0x4l8<+hQCzxYG>fi? z*7hCBJd#h}dOD$pUIt3gi$y%dx+ei#CY9HC2UJY5m9LyKVd+HetXr*%b*M3HcB zDfW(rqq$k)4z#X_ccx;cigCD9!g07%(&IuE!M>u{1B(4XG1P8<9yS(2+ zD}Lu6tl>`~%vk|>z%-f0>G(av;x|`%4X17)l{{0&q8f87V&s`vr=msed}abyi^om4 z6{Z3*$9>KH@m*EGPTFZ!uY-ua*rXtT_%6Zr_BXv`g!Xr!h46m~lyh!=4?5i5j|P1W z_v{G%5tQxl3!p3$-m~@%MWIUVqf2TZT@mko>l=k(M#4qB-HJV~*k2U;n_{C;MUZ&Ri)qz6B-Ia-o*_Y z8tX6N?lT&}wbV{a=bNylyaCmQ+e5EdUw<*O;3{EHczamp=$_|Z+(qZ-54LnBiu^%E z%dl>^!$z3Jv<$KVWNOSvS~e#3rkvpQd3b!%8u~-5Kqm)20!p6v4^Vb1_JEEAeH4^6 za~~+v=RMoepMbK466dSlXlm#J>ykMK#3D3K7+*}`u&xNqWDdJeu@@A3S+Q=YB}^si zQ45#!XmAjWy0>7Q4=LDZ6}v;RyA@+wI3vFn)w@EfcWKM!A}@YM%jSMw{4|`RRQl<{ z4I@pJAL6R~XOSCJ`QGi#Sh!U*r`GgXixw{0bNWvFLFO`A$~nMz6$#1ci%zq+^PkNE zHtnd)Md1RMa{|1KBm3Gxe&olrS2oR~6Mp2Wa?A{0x5LZQgO4>H>90Tz=JT0V z%_uv|mG<_i#+}*(<9MQA98VNX_+F%15mcdoRJ#G07O7VB z$)uXAdqJso4{{dd+;K?U={SeGDFxnee#QTd3_9#h@#&}8Z48>@V z5{y;P9x-l^|6#Etkb+u zAG2zNEZbn6&p%G;d{0o;^+M23f%XMuT|W-A1hhXW)93wo&|aYYM#TB5pVvB1m(+Q> zA{@ptzEPta3Wgyji%~Ze>{-Qrs~Gz+k{AdVY@1@#4F$VRG3thbp?+g? z_vZYP7uhF{&ldww&BUt0`1!B`)rt)W(^0Y4f9b9bVT??a%=fRl(1dS~p8%OM6jK!Z z>Vno8`8cVwtk7AEHoSrJ+e-FfbG|9RtH&Gt;I56<;c69mgO&;u znfa{`_)}|?O~xhM>VW@O__3@#>I}Hp9`SPNA2R+@DcK|AAX3l*#XK<&Y-E3v!FyFJ zns8!Rw)Hv`2dq2tES__gscO2>X#~Ty5gXwQHU?j(HKr6sK6s@GRiG)kw{XnF_ux3m zP!rA?rpWz803rsw5C)(ThM76GzRX}8I(O3m?Tj|&oo&68j4WN_#J)>RgaT;4sZBlq zjDR@u@{H&#OpVONY{)_$bJi^*BTSPSk@oKsWP&+oCaAt)-8*tE+ajlDgo*;YhHMJ3 ztA^WusMIWD_{Yq=?gPaj#av z1r{V>9S>^Mm&atAovT3y!hZ`W<@#1o@=^;Z-(?5rTF`4iF9p30l$qjis0@VDB?IAf z$@Zm!y=lWmyd%~XWo0&Tu^X**;hbZ|PFHNaVjLWo^f)*!&se9}2E|$wyGAkgizP1g zR*6fypvu>Vpk}3wPHV3>^~Ia zrZWYF5IXO<_ao7ROW(1(Tsz<7@PTJ znGNx}wefm86rH8}0QRvR{}HH*{j?2r8E|bV+tjRM&1B=A_&HYQ*2yExeHc8}aZt=@ zTruO{A6@cH3%~J_KiT@(WLp_akYQxQw$c@@NsG!dDMp^VgHEwHm^Hz2Dh6e%KLnIH z9R@lQ6yL#^^?A?n2i}umZ$Vkek{P;0S)nV!IXT8RYSb3N?o{j>)+GyoCGIa2dqKm| zq$P1bRP3l?RMjOehmIxOT*VeBhDvDn546j2xaNjO#I_KXMdf{jtjD zlCwwQF-SgMIGrQ9d0$^8)@kY{ac(e;cklP$EH{hk0Ti9>nkW8LTGu z=b1RcJJ?Zodj_&Pa;g-Iy97TT-Eb#<*>oT`0>_#?H3ssp3l zAS{dF)q{X6J&p#K293G^+{uYkS-`c+Vdzr)@$ zPrUyw=xdUp-c21!QQmtMAs3Fx{ic9%et^iN3lA^E>P@h#i-#( zT%N8Y>D{H+Q;N~@A>nB6kZ`nj2*#ag1uL>HncycFC-_OY3Jq7K*d>asQtUFtsNqQ5 zFDUjE#ri>N$uoF>xP;>Y;)0Dfia{*2yjj30{&v!TYCBoX`R`HBN&n`2@an~F zY@fZhDtrs9oiP*or=y3u?Er4;Fk2tH|6uw)50x!UE_xTDW&88+!5~RaY#Zg8U%dcb z++^huKaag${GWH^{lEE7;5f7`ySxPI{H~T~yh zPf3W?jmzSnVDvO4<(gJpvOE|=-jexA2_epkWRn^4R^dJB*QD(M6fkZ^flPyU zllg0n|Ld@AO~TSZO6!W=+$I0h7JnJ7x|{a?Jv@Lv3ZB&aI}L>q^3i_x!f}fD@ZNg} zxeCpBh9F8Gm`eK=luvvEmSB2`bMmGWMyYajgHkL%EjHv^IHe*D1B!`g@2B}%a7q~5;-2^6CF>2 z9tYN~6|_7aE`6uzXC>`^Tm40_rn1Y8g3oBJ*8}4v?Q6%;2G+<0#y91kJ`R5@{OSV! z=@!-g@S7R%4_Z_?1GXeEn!!Awki50{y~#|N%eB@s)-7$uQLdco^b>Gy$Xjhs`*8L^ zBfh=mXnRxZjQHwurN%MX)b=$gpv^>*a&(64oA)%q>(LILp{>0uB-aMAic>A`ck$a@x5DZYZV26RblKv%^3tM!d~Z&;U{fi2-E@g>|T))nQswic^YjAM8b zZk1xR^9klF_BqAwRqO%9XseUwQqPsR!l@q2NQkxp z<0+dt znaSzSav_=9fDIBVyn3Ve(4rBdISyA0h#VztZtWj(lf4qD{RsFP*;)i@EsSAX1Sv1q zZJz290_8VkW57?qE-$Z(!Myyg%R#9^tOTX9vv;^J$?2pAl_(XE*D4a=B5vHg{ zXHu4Pxry@=Q8pcofm49EtI0ZCjSdf0;oszdA8X=%%>dP|74Gk$M^dE{~A)EZGtb%4m}#lODDDPJ1FO zi?otpH{u+Lr3=GE3qY3wt&EZ12N58hWBKiZ91CS2!7S_qr3!{sW(i7!CqNrOp9Cc* z{}PlOI}(9qY8zcLwT&*BwlCPdHk?e`7wl2RShEBpXG>gm8w49gj4HgO_r7Ae;Ag?QTbJyME?BW*mfK7AnRyOo4g(HuK8X_@ zMqqP=PUkSp$fs%$oAN|GX3Sm$0iKi0;W!rx(J0(YLETkj9V~fXK@P4E7<#2#=^Ts- zqf-=|fBME${0{5|j}Iu+d?xckWt@Y>aw&&5Zt8l5LU$8BwYdP3k}CuzOFv=0223^> z!&(2*(FN4xn~^4`!MZVOG3pBwM)44_wzzk8jRebs96i+JCT&6kTQSHnT-Dear=R8W z5OT*$ngMB9>=Rwzfod>M^eICBLKG4gDc6{XBvOaD1d`^d#yc>)Pu+km66X>G8;Mkd z$MvHbjf9igOkK}Hpm66qv$R}UxtPqE&DX@*HAJz%B94w}}7XLhk z=J|2I2ud@>mqD3VDb>7{e6`|!~jm+O{Vwp41`AFulL;l=US?0s#Vq$Mm7{C)ioi4o~ z?GY?b@)zHVyus`5nDWXpJ_yQY_&rcs3qArJ33>!{9B4b}c+hu1`8{~gtlez*icg_S zM&Rj^O)CYv#`;EZ{Fw{)HN}3R*t3cqQtU&;BB&vf9v7j?GiX>7>`KLMQ0!*K((5vh zv&D2+D9nNBuwTTZP@_M7k(8^;e1BfSy1Wq2ofwdJ>2>+T>~*=`ECKm1&xPg0aIR2* z6^ctr>UC!6$5raiCx)ly&bn82m710OU#!$_Z(imxkVCf%Ovf4EtbV+1MFiD27aK_a zxO$x~H=afPWW9b4l=b-qP#TI}0i`H<6|@BOPoR7N@5h5a56b#YoG*Km)^EC`e$y54 zuCu;T?1(JkBHq^(`=(;gDMqOxaoZK6AxW@ftt)EIMiZ<>F;4#yjMHK1ih6e_mg*DE za-G0|>;#toi=DuM@tE0NyN8@!?>c}dA-g-eQA@#dGuBPj1LH+MUP1Md_BdY7KV5xf z(|;{qBRG4UX)^pG{9evvmvtNB84_6Ti7AiFMdevFlzS^)>cbz5zo@kKKT!A7+ppN0im4bH=qGQ+n?SibhI{&z=TEFD zjQ8-Tg|T_x+v(#X!x73|B0JmnlYWz&$;t5%>05${`pzLE=8I7{wIkx)lD5wTfpw{1MdbauD10Je-Fr^7CcF%CeS6*i#C{yJH$m z4&)F#nx1d6rX#$>jxhP$<3T5Hlv9BpqMcWvyUUdzB? z%`I2ud(G?oisi{l?45bRQeb`k$>G_xX8LckirZM7?pGG#2nbBJ#MQnr><&c8Ol^RE3 zV?x6L)z`I`U^gMh?qY}>*=1uwGtd2a66`jN&Ft{`e75FnAgSAvW{tC6%Q z%+XP7`o|q7I?ff5X2UbbVR66|bKo$nD$0g*|K7sP${eo&TkN?e=0BO7Hw4_?-=uf5 zX@wit#+xoTuf{fVtqF4tO6Hv2-!_@p5N~R1kUg{6l3i^Aj70=$4wBKW2D{Qk>Tp;z z3#z|w0k=MT<63**W(7i8TlICPgJzc$S$tsg6KJ!Ksotla4 zIwmh7i$MCNCAo)5=Hw=x<`R@JH|*#EB!ngJuGM|oq{RKrBqcUFR5#e-x+ygSP^kvt z7u0c5pGb5ZnNq{o;B%d&2`8O-W(?0Y!K^{H{i;<8AM#Z>V9i2`BxGsk3MZQ=D%65Gf=s3{Tpc6pRHYZ9!@rBL7%$I`l zYi|U-5){K!34W)|pe*17{ z8RDWV;{DC~M!kPn7Y^k_ODW;;(AK#q z49LOKy|I>`G1%6n09p%@bw=3D%%`-wtmUdguldr>rClLpSBaH&;2KK1f^=zjTDDNPr5gZwJS42V0Ez%q!?g%EYiDDbLsmL;omK*OM6P{7rBh@7m>XUfUy0&K>` zt)27mY|yPBA{D;`SLafZl82XT5Q4qTL*lLekBlJz7Qj`8--C4Ea`DqQc4iNCrSVPq z2RC+p312!mh`~JZ2_NEjTz0A0S^t!wMIT><2RQ%W&IbkLO zj#x)q<+su9K_1$nO%aCDGkynCTT(q^S1=6SQ5YWa7NBA4Oc=8HLfef-C#6^4ZLpyb zdILYxbuRQSGyyJw9LW%R7k<3VyTrs!$vk;hBk57vNnR-J1naNZAjK%{ zBpjukgyR5@U>x8PEU8$lVtW*8Q|woYJ*U`Q$SFy0fptZ^rHUvrm0s zO1;zRDUP_@s&`tG=rZA&R5r0e1=U28KZz`ZrcRM8OAE*RlC`>lQd#7MGGM83eWtNj zp8$Hiz2|%Jo>l)n+zup4c-2zLNCF`{PcE(v!)v3E5bJLcF;0Xr#- zIaG!3bW+;Hp+UgUg_N_Hu_D||{vd;N& zVuNqTccYLPW}`auFdBMu^@AueLoa4u{izluDZ?*lAU+<3Up{;gXm8MB&{3d6Ku3cP z1)T_b0x0YBH3%#QV!FgYOqa~|5$s+YPG~5Sx9~{ z^T?n{%JLg&UN1oVHbym8d}4d0_${?`XhZYGc0p}d8ZIr@aU_J%_&{jZEV(3gWXjmN zn{DWh$HUQAE(uMhGHd@8OlVxduw zOfP)9VHXM_Rm7J+D{}xLeYrVMWp#qu4mb7AZyrQ^H-R*!7D2 zRI#0k{ZX;MD#m$*^4yOUdl;N7*iWs?Y!lmYCj#!H*_`i||EEd)VaxGSDXCwCJv4n! zruxXv0WfI0vyn$5B&}fCrGFh0!sR$DDE({1Tm6I5e;9HfY>}8IK9;E!zszWn<~B7f zSykV~63UbUFat_S4r*l%`YK&30-P$$CxKhSN8PP}bgiB%H`f}l@d@_Dovty}q}zqAG1LS|=^E&P;p+V8 z2~hwFOxwbZgCuC_DW>Yg563-7GPTOv4P<0#qqO+L~AYIkcFW|LDgg|KweHY zsghf7FFvNW9tjJQu#T|x=n2XP@LGdKfXr$WXcTk8j+jiA)hi4O+d z1j>%?<)GA7uLPZL{aGZR!Tnr&&(Av;4-t)qF41V{itx-G;~O=bbPD#QV!yO5*<48C zqSQ@{i0P^d#zjXGm!o8YU8q<>v2BXosn|CZW4Bb|{!p=J6#I>0uPVl_syufgxKiTQ zTNgIvQEZ)JJTphaU8|UCJ|p~V6L@3HV}@xlFIE_W{vsRvM*Z?ae_By8CwX2tyCUQ2 zgX5-PN0CZe&|b$lRAf%W?_1fL4ZDSApwHmAOLUl?%Jr;CatR}|6(HA(WXAzBO)JD) z$ErnXO~LQjI$M)Lww86!OB+|m8>~e4ykZkKWh8X(?3x7Eg4}D`3bamGMBT93MCV&d z3&PcizEN{JxL{vV>}%E~r^ZO! zy^2wk3-*#?WI(~f))g^FhzZtDF^-l9#x4b25pzC-V6}=ptl=o$C7fdk*$AlPLcTTg zm)+o>^Dy$`nU%Ny(rP|gbi1=22SQ@WEtU?v=Xdwb9$0TKXNu<3M~;C1-uKL^TnWft z#4vboHe#I`;Vm5m{5Hn5*UgsVh0T@Di7_BDc$qTkq_5ZI7r#QH8G%k``g&a&7EC@t zUHZYLf6t*5%LCIbnJ04kP58Z+h0~iG=U%?PvA%LGCfhgG(+w`^diCyS5#lq-zAiJ4 z1zEL6q}iO!`n_Xv3sXz?3c6#P!Q6uGC(@*lTAu61kEMOs1Y2k~h$}e-I(?b0+oym= zA?oPU!NBYAV}m0z&C(Vd^h1!LCg4(>z{p*6WGkLxgNYS7eHX#e;NQGsa#z8e9qqvs zbItpuEdXW{cBP4(I)`epxep@~nKNfnO;q~0EuYibl0XXi&zKa`whuc9;93ik@Vl}l z=>;m;!7?hS^!(OiL0O+lKraTJ0@?^#2};BMc+gd#rJ$^n=YqC?G8~`5aK632-rnC} z?^%!N&)1ravJvYuU1EKvD`IAH2=;*uhf`HhI|bw1AqjVZVizg4RWX{oB;0ou`<`My zS8R`B|5PjlAuDlvT36I8zY&b0ny#p~M8j=T>`KL4YZU*V-!-ofvL3YOo`S;T2R#|T zO&QF)VC-0In)m7XM)p}?D+^LWql1-sFP6FahC-&X7w))n=hRqSQO zUQ_I-V(cBuGdRE^>6I%+O;#{!vJwszQO_cbZMzjIwbo52+1Wa?Z*tz@`NtQ(gG z{0|zdIb&cUA%0`=OOHRxn1!Voej9!?Dg?KuWS;nJe$eo%hWCMW~1()#wtbMpwk_e<9dgHeAH(j`9>NYF#peNHESI zlDIQ8+-${Y@{(|PHye%}P{Dqz*q9uLjk7K}=Lj2!o!1Ynh{42)zOCV1Z{(EhOjb2fpL+|*?6Z!W{T z^FooBD_zSafBgu*3a_fS_{v|#p&(m|A1j|+W{|1_f30lBhTJtYD{aW+G}cclhtm68 z+$D!~-J|QW9xk@IBVoQ-4|{;ptikIBR8_vqjiAiREuaHH(I}gK*%v^k;Qq^?=Yie^ zIv*5uF2VQzIwR_=^~*hBOCVpwKYI632R=`*n% zFCx(`AGWu{2yjh^QGWL@Z=QK0_jjegicNl@Wl#5(KOWxlkqJ@#d}}49SzXqzc6KmB z{rJq$NI*gitZi>TyfW0@e56CR2Qn0`%!#W}ofk-0RObOT*t;)xXU$5?S5A-NKb@S9 zSB-6dmhWD9xOLp`SqiNMkCDu74fn2T4fmCqV1D%|OmfbB97XYXWi*tm4_~(^I$s`t zAXP5cA|lFSLhg*h*hAGt{`~yhy`@iVT(ac@zT(E?=KqWxdlL+|0TZ+kJ`Lo$SvF>IZ>;aqF;7#a&| zP_c^4hNP?}Mcz)u{-Q2+;3eF7aB)z+$Q&y?-^92L*r$!_1r2uyE=eyJ4U_mHNQTHi z7QXqwopfN6L6%}zie0YBP4_=*G*v(P3eHI&>Hgc{A2NuflN0cN4gT(FY?68-so-I4 z%oFnv12yu5QDiJHtx1}^ym85@&Ke{NW_B>;wc0~p4y9&POXitma2@^{sGcRp&P{7V z$Xi=)48a?;J>#3om9n9y_9|RkzXUq}y5^=-1bIHAr0nPv?@S+Za`jTPSF0OPdpZz0ZeIxmnwInaK@f^T}}&B7u_23k?Y!=S>ZbGr3|eq!WCSc~TMX z?>1qlhjQ_RpJNWx0JtQb?70xdsbj7wM0k9{yC&BIjFc%h={78-^f3wY;0$qFUTI2v&R9!A}6JiWa~Lc=iq`3K1SU+~Kfo$i%} zPVz1dorPkTjT$&E$8bHt6=4(!4GwDXOaAWH{o6qHS#8cEE(7F=48}O_$A?^jpG${s%H&ktc5Gu3N~G2lF=lWDUlw`o_F!NgR}SLn3RFuo zaGS;_ZiJV0P4>D>>sOYUZ)bAhu}z@3XTOnSl)Ros^T2lE8Bj9XZ$Mc$UI4`l8=S?= z`-PwoehI1#yk7(Q2T)ezS3wh?e+0c2^v|F-gT4U@)xm>GnfN~FLC}vt4}ns6LdYkm zMjip3$vi<#{WNGUDC-?eu?eyz6ww4{X5@o%Vjj#b2~NfXyC+&fq4+1rswaWo1$qkT zy`aZ|-VZte^hr?c2$OgNbSUUQKu3U*Sxx|@dF4b<8dsPOr{pmmmdipgji}9ZiP}t8 z#Cym3M!ol~E8`ukLp%_(Z2}f00;y$L> zKE-~o*sF@Yt=M~t(U2tRaUT~+?=;0q6gywBS&DI#NaE7;Byl;zM6fFq`@CY@WLd&} zOEFH%7i_O$Pbu~%#r7-qu40E3D}wea&*i4glHMf6$`orf{q>@SM_ zO|hw{4Sk?hM7`(a6L`LIFcR*lK6Eby-?C~ez#b#3d6g0@N{>}I!b z99P!z%F&wnD~sF5WAC5+s99VR07ce+o)aziH4oeVVtjCE+f@TjZrkRWca)4&7yDP#D>d@_SBoRv(LbDW+SUb-bHYQ zjFN=g43+10V7y#|N0o5L^Z0gh1vQ`BG0Ag@ z5o&C;srg`bO-hY%uR<@*yHBY#w?ojyjm3fyJE}BPz^EK>qw8{XJSh&jFa9cnorpzW zxoI(-`Y{xt*m_fXb1@!6or=3^h}KJy#jR+!s48%%Up@t=6^ZN{XX0?1|I9^kEY(TI ze<5b7_P_>5DZ7ldp%gS1Ej=%y9*IYP8`} zFFrCC1?-ln@n!k)<>rxdKshMUF2aXLHTwSpse$iptSH!0R_95`?2<( zABFx+pi@Da5r~Y$c2I~-BXVbf`WEL$CH{F(;$O7)U$*xwkqeP25ovUZNTVx4;cR@P zX2pwOoMtKEIL%V9p^8C#TI_tq@LY>6RIFaHEsAYdi~?Mq@g>E6q8LX+ia$kRDxbE>PSRo4bCTFS@0`0nKlksObB1m6# zGF;LJ#g{S7@DxyY&9e^r@nSPfxBJa9sNB;ToO4CHLa^t^G#S4ZKWeLTWi+E$w;FG( z+=N+;rpfDIG!~s*I=`F=Q2mM8&w1FrU{qHACfAHI`Jn#=X18^xdIx#k6$OH0bF(a} zb!Y1GLBv>W9wL8O4ngDCw>)9xdqK&%V0|+y@%x}>;{HdV=Yc*9IurEApf#ZPgR(q% zPu8Q&LFNt7CG&>pikO3Z1$)Sbida1>&xu)`7|8jw1ODkt^!WD22K>{P z=)DcU7;+k1n9gVNdByl$*=enuvTki-W_1+HzpIYNXBFjcqp*xVDI*_;hf0UJH!`0R zd1gs;xFA|YVdq94Twf4z^kN0J7b>OOUxLxIR8Wo*QXcSftF|)cH8z{4V4Jd2twV=hI*MagoEI?q{D~~SOE03;-_muUGvVUm8MZ8xO`;%fl z@TDX!`eQa6`!9mA|03yeuP(uER*VfNtKrJU^I^xusV1;E!VKHYogm842ClrYb!K>_ zH+w&xCc1Ay@|=>L^~tgDJP}w&?Q|)F+3RdeU9q!*q5=2tZstc;<>ma@ET-?QP$J&y zpRS#$C_9YE*81hv}f?qS>II0-Xa|Z1Gb-AsWrN8pH8>&jdXKl;O_; zWq1}}9V(4530=Y@bV;);7@K9m{%BoMv#-2hFijZWsMp83A{^bb7>ybd?j^-uQH-Vu zdB$PItj2-S>txl0WYygLc%~h>#voX)^nvR|d)lfN&>Jj+qVGbJa4bO<;T3Gt#|rE@ z|DY!E2K+W~yNP$IH@p)q!m&k`&PZ;bf>>Tb z_hZuAXWIROHP*cqo|M);vvc5TYj8~WAcCe>MZRmWD$axA&6Mjv`4X^e8Cx6dT4rb$ zlY$cL-|>C`DDTk{c~FuQtfIVU+3}uLaS;*|t${Al8t96cImUv0--eU@P6c~XvFWHp zg4I};(FV*B%P>gv^Ur}2i?#pN`7&S7uNv4^#VmS3ytu8(i1{Ess;#OxTljHpRiiTT zwkmdPJnpD7nhtyNmEB*bt%`5$C98^(Rl}22V`7C>MfI`XRTJPC4m#DZ8plZ)ot)VG z7$f82C*Z{@?S^HD{oJ4_f6iCzW<#?D`Hz4<=PQP-Okg_S4EP7$ zN{q6QnVT#P6GbNL2QMm)ygyBD^}afAUmv)?EbTsR7~xtAldul6sbfu&{F_}hjMQD_ zNfWmgl+|P%D8KT0P=2IKL0QI4pe>-V^BEgP9Q3oe-w677P-G)PTg4{OJ8d|_Gq`8D zuyZ1|3%bO1L0824yY-EFZ(CQy3!$--aNVpcLIc0WPE`yIvBeq`Tcg;eihWbD?o z#kl8<cnJz5G0H_5sp-c-e=D|U}!_bSHaUlNzgzvLM_1xhfU z0wvh-ihWA46BRo}v5AUdroN3kO|cn@Eme#=1IRO=nP4kv%+e_@N|p~#mZQZkFN*ap zM}u9C2D^N!Up_8bz99R=8>;lY@D}CeTJO>eCL0VAem#o7S$qu~WpWr)u8k9L% z1WJDx;1f|$aA<<8wipyl?OhDY_gw-?R=5D!m5DZV$wV8vB4)o@!EUnQWanDJD83}z z0qcr-?<$5*i5Z#rnml}9#^Ge;5$KkA*d;IO@A^{7?vrZvY9V{M;rZs8$t91#t+VS;)iA>EQBw^ z(r`~)L~#fs4=HJWCi0$#36as|W{M=w4}#%6HyRB`M@6SaXFxa=hS3Ym>vIfjX{>rB z$3jWR?{xf9_Vo?RS1gn1nG`Bx@#9~f?iLtDhU@xtrHBx z*cKb8Sg~R|6uV9_N*alKzhXQkOfXoWY!-`nclEW6@##yJR;^f##b{ff%OtuB>~iQDV1AJ<8er5ToD6FwY4G8F_2I_?Wn4a_uX~6#%wvGMi|@G;tUzvX zWri_`1pRLZ<@OHR5D11Q)$LW6(_uv0+ ztZ7pMZCUzvyX9lQ+x$iz_`2a={CqS+72~}_-eorafA{y}S7nLwDSh=Rt}Xbu?{~fZ zemB|g_j&vMI6N=kk1qLsbVba0-GbeLrwaCjbw#~jD8{A!5^kJz$&6+0fYjXm;UNfU zcCy9bdw07>hgtNR_yK(0iCtA*xGeVD#G|2r5IImwj&Fn==mU?*#n5 zpx>OzP)A;^Zd|vfk=v5;19s$A4t`VQNcA}#O=}LO$Yme=c4ikYbCboa819Dnkcn?a zNQFY|->(wcc3yUS+3_&uO8Q0M_hsY2^& zOflaDrL~Yad#m?>jtBi7D9e>NYvc^ALv%?UqATKk-ugz(90tJ?}|;umzKCR-bi}Xvnz4%Q(eiSl6|ni^zhe*{hEA#YJn`V&Pk5JZZa3aCns5m zePoOyKc#k0LF(?}Tk%4}X|8lD2_@(ti#z|I;qNGN6|{vjO~z%(y_2;j)-^V5Sg~$x zmMSQ=0apc&(+Y&bwO2rZzypTxH4Q7*$(G@)zx;&ELRYnqBR#UCOv9QLYttg1U?Qis zLg)9ED>eT#E%N$?_>$$O-t)=QDDhZnQT$x7IZ;NwNU2zFwlEJ**~}s^c2wVfsO-x z0F?FXK~O&DOk`a&Ho8P(qbuUwYki|;KWD*qD)y*#MLcq!#3lDhxPK}}8-idbSXb28 z5Cl6*v2!#Wr!7i)mng=;F~K-ECUL)}7$+_Y_H)JdDE0@%{;1eu=zWsjQtJ{)WDay1 zF0H|*{Mq5QG86?&sXP=XKUon@mSekxWXKTu1a(EJ#;!_9|BCG=!@iAQFXUisK>jce z!<>rWB-bS{Q_iQaz`7SMFXM&_Q}DH^A7V1H6BZ(FPEw{Zc||IYX;`rtm17u~SH)xI zT{9s(lj^%Wf$5^MYLHpY@P~JCBlhc;$jl(?9~r6(-4dO9xA`q`oVbIn1@j|&7IfU6Xh6^wvWVqlsP!0iLk%Eyw{XvJ|egNoj(7~YW^cRDk2>K~d zas_dgH*r4aQ52o%Hgt(xqAS8dVdEP$`-Ka3t72cau86UEOWa+GJ)_|$wIuF`iXBy~ z2DL)s&b6+TUKF1tTOY@(>ijWS$uSm{vzALaFA76E;V{x7Y`t$r9SSh~PzM(RU_{t| zXZwrIFF@QaY{PRfL?AVpvlQ@Nrs8fh9`a|Qb+hT>m999k{hVpgl(YKJgb^qDUrzB%jCW0 z4d@DXB><^13PZYcJ}3eDm=q@~r-Qk0Jfz`tGU_nnJ<{HXykc{oi(*NcKFkP2xS)GU zK`th5XO2v#@|`};$5gEKygUP9~-eT{9kY$2T|cO`|(Gk{9Fhp7M|vjq=h~ z7?F8{pyn^@2pbD3rLI2T0j6fXxf_)F0hL!45|!6tP%5n~6&M6e<3J^~1osbuQVC|b zv+aEu=>NfemBr5k{UPpaKw-Kzd!{`E%2(cpcM;<{U1D6POSat=>dc?Awanr`V&4?Nv;aZ?su`e2$97Fwc78RBU;R%~H|(d$+S5omAh>B`WPe!GjSQ zhZSH5ex+F(j;taz)o64*k0iyhOB>>{3lXcCJcyfocW%4PuWF7Hxh!D8V}Fcc~*?m?^nZeYr06yW%b@Bl|-lP8ycc3dzSZ zi;~U$T~$A{s~IhSR`rh6Z+>JstVj01xXOz3sK$(ZJpnXA42c;;6(I`<2 zdIl(~@kG!Opy))HcKl3GDtW|N-o#mrA49oG^`uLxCtVR9A7Xr?UedZE9!-!E?smm? zD)y*izgFyd#aJmNF1XmZBIe{)!KmEHbFCp_-+VNLWBknp*mvqg(<%R>7V(^SL=84aqj9*z67C_a*l;|K2bkyP|L2>Mw z54b~Q8?qPj^gvIig^A92a+kc2YSXPYA}c7wiql`Cy7zY7BqrUlO?UZb#pNbb(0#OB zpI|U98R@tdgK;Q9q@2%2`=66do1?PFde06R-;K*Vi_Lv*2Ct?vN*ySJSKT^EmY9|o zL-B=jQCn0eBZKi`$n55m+M=G6y zaA#Xrlxs{Zwp6j@ifvNtO2xja*w+<<;%J}CSq}1yXBGRcV(%&TfnwdDI7$AnB*?~H zrr1iw5{hk8jLplue3&eTiliIh=Tpnt7w-lc_XbY7N3#=7!m!!t?vYLt?@ZLqMm~e0 zj&bW) zrVp~Hyw~xD|G4zsMfmSAg=AO+S*AhWssInLoU1_j4%0xHt@A+nKCpKii{K1Uw%M~l zhk)Xn8F4uWls1uhpeKStEEyi;J$dVK!&?iiOT;BH5tnp{xD<@yQZR~3!FDS4sA3eC z67G4$C@uvhQ3kdY|5D3|!71!n-v zE*Z?@WTL#s7%YEG?U+2>M9dUmENFZE3${eVKo7Wxpe#o+5FdTF#TTKXvuqnc$v|l0 zjgV>t<$Iu^H%7%(pi}_XfDQ#kUpp}zvU8$Kk#ibUf%rPztg2pcG;Z zUk=Lfv?DM)?FbCd@5}IHyf(bEnBwUYQ#@S}?@sF*H7Aw`_Cv*fY+VuWCBwQV)rO^uVP@bj{Bzjbr+J|o{bmz6$P{B_+K5N--8YvR^Tqyc^^=!3G#Lit!HJk=(XfQulS@tSZi0@7vexzZE>CJ; zt-%%?NDbSw!1~@5XK^o=xCzh2DfZL=7s0(-y57k{5}HkB%=rX*yo2bH!jMBDs3NHR zDO2BjsPTD&u!@BmZ>b5jWKF|*BhbhsY_K>>R@#%0*$bLgkY+)*RO>HDBPj4#n)XVh z<|pxKPWjYBDBVE{ES*%@xLrC}25BWgJK!*z@axEKN(ZHcau>g6a0lgIhGiMSuRv+S z{xvAggfD`U?Vkf>pXYhd(?DMUWqqJO%ey~bN!XDtVMn?moE>F+qu#fyE8_h`v7akO zW1qx*OEKE31S__#2qm}0W-7K-u^o!tq}Z*B^@Y|a>GAw4$sc!y6O22<2?iEzd2<4~ zm-%(uUyN=0G8C?sD;9XMZ8yN>Z-Y|BhMOfQUg4i@Ra2QjTh#<1lZ2EBnPSL}8%S`q?YLPSo`1z+?x~iz z1NX_w1ODU%%UU)Sc<};|US7N#Hf?_+4}V&o2>DNJ*%v}~-`~v!C^qGZL%Txpyp~r# zYS|a@pJ{pRqxW}tUKu=|Y1w?hOU^qIKlT0HISELM6L6C9h)^-U+u>02@raL9nj8HV z_<1dxus(Wj%LM%Ks|)7f4661G_+nG#EQ)01;q5zP+rNefZnUi_I*mjPiwpOhM zzU@I&lGsC2aVn*koN-|LzSwq1D186de+a@f?>)4;IJW%`Jjd_;zG*mP+iv1rS+SW% z(Q`R&>{i+SUUMVM4{5%@!kCt;2Zox%4~E{zIei~CAN6;mQyF91i*MG;B*|9^Z`&6? z_t0b>aXkT>6t(;$Od%cHb~0|3wftldGULUzf6910fGp#t(A;n;H*RuqgHl1N&Ewyn zj1+Mu)hYh00)ICYn}k=xgSpD5qFmAnrMU+Rq`11SHog`a!^3mprykm!-+UtCZF#~g z!+JJbmgVVXX`*e2uedmVrvH@$9_i0JfX&!A?e~g)h|o5C;!f=+8LNTHaoIIJW)w^qz49bIL0ZAKI1E ze3O6G=+>%%$;w~1)(!VjN%#9z#mUN7lAGW3&+;qZY`x8* zH=1@4GXeaH!qTd#@e}+lYynE1^{<+WuXU_HHGkseg>FdWZS0@>3{;^0+;w+yVGUM` zm5-jorn3+q<@L>oX}PgEerR&PP<)KxN91}_7zV+iv4_fXTElInhc_JOAGo2`Zs*sA zJ!q zAKG-Jd|ByvIZbcF2g`+PW$HOngrUG+bObxzNL!d(FbaDhVq9kJp*^AI75>brTRt%L z{h}=&@C2@So&V&n4+{S;Z(jl)RgtxQyE_R@cc2qMKtu&WTtEeJ!?*-O0MW3BfXhJG z6=X9c2rAkbP}(-`&gzW2<7}diql_!t2q-FuqmH674&$Jp0-`X=nE!pxsXE%om2O%x>a?n>Yl1Pb?Q{@-xD>>cdy{8u6~5&tG`*1Cp`wrqYa8}=!p86c~aIG z>Nx|4s5l zR={q^1GqL{ZYHwV@{^V zj2(d-vg~|p`rgD;h{N}6beQYS{@n!b76fmgvYTQ?8NnWo!H7&(C6eODfoR6O-=~6I z8!E!~rQ*=B5QStkCw&$A#L-64>G;C{E|XJ0WR%OCPnL-EAOMbn$4a>!0r^m$;_c{H zriy>>{1*^KuW;882haC2#$eV|Y;o`w{W=f{78N|17YpvqKPY%3ziIFR=%j-DU|NCh z1fs_O&{z#pA>$aCnXr~7Pv_Z-+Q4XCj2|3@{f!*v z!WKSSf*g;P3jfx2fSj9CF*0_~QzYb(Qh78Dl_}3tLyeW=0TS&FmP1>8jGAU7510Ba zkgu|uUcod@|EMO+ukw8H9)yM*!Tc%)<(bU<>;VKQ$cuD^rGX~BvD+js7SE4&F6bPI zV+Z9W@u~Qm3|H%dSR@wjA3sX}xN$PZg^1>Cy}^VTv_qw@N$mpej$+%Q0)|-+@P&$1 zTwIw|iq>*p7-S#U@hj#kj9lfxaQJw*TH#lWot;g>`;E6Rqs51;>4az*09OIpN#<=u z@gyAS+vvtm7FBO~sJXNu%3C#(60ngbXhmvAp>4wm=STM&V>Ih^8Kb_g8o*+Vt+Haf zlCK>rY<>L&{D`{6IHJ+H`v`y?n{fsaa1yDo;liTm_Re9qK z3FOZ)!E%b+>nahO_Jhu!@7E_QhyP&?!;$OT#0Q{_6-5e=m3-R%oL?2cO!n$V3gR(T zctK%tG5+PZLgw?6pYaQ&HTqC6qo#T)j)-xU3^|~bM`mO2I!U>Se6ji^m|0H$HFT0k zHiQm>pzX(@6C^5Dj6PauJop$1w;(SOTpVg1{u#a-|Ani$e75{2<(n>%FO61cm48)) znnRF!Rj@MagPb^hLU&1utl)8Z>`Y^=`q)8{mSC+{fVG|t);bBS^>wh;2w3Y^V6ESR zwffGC*3HcRuHOvMMe_R>^sUoEzYK8=kxVQUd@hN7hA-}2G#md8$d47`3JIYHQt=62 zh^)TsgWET=`tl+RPmdoHpMrbJp79o@{WCGCRBldz zFnpqRUA*~RLLb>6Pb|c2D+8@v0sa~rH{)naHmt5gs0=pXXb0 zPm_r!BVpa6!_R5jWEQ55L;fsbl;5)OUXuHR8jXXW_`a{k7XO$$(M6gY3r|zsfaZ2W z@B|8Q2?~&}d3aVk`3xn9H@sn5{8GGREK<<4Fu%2b$u@WwKF|((QyKR_G?T^X?)hT@ z+>3`Pvpo%d{>luIsU&b>aG98`7PU@1!Dh*lWhcn~pCc1?Y2-T03OkR6HX!rygk0xQ ziaq#pypf*nVd7t&am$n`yUw0P96$ifRT5rQ1f@W@So-kH{cd;P)cKDW)(ep$UY_9# zg`r|F;{3~U?&rJv7Z1|#i==iiB1d=;IPXN_V_c-n2rQFApIM~eE< zk3q526#Nu)4Cv26Igj`yD5bmif-VC6H7K&%lJZKZ7 z)dQ6KR!;(@1q6mW6LbS8^YS6+BG9d%pMZW3x*Iga=kTKWpdCSDpeKMf13ecM=J1mj zg0=?bC>qC7COHr42wDqzBxnlsC{T`-%Rqkt+7I+T(EgwggEC+2<9dN|YJ55C2C$Ag{@ zItlbj(8-|W+EYMz8sBu#Ux8i$`VeRpC_l3r(Dy)RgOX=m1Iht=5|lI8`Jg>OZvY(v zngYEL^k&e@KyL$`26{W_d{DmE4WN9Vw7ai!{&zV1C!lx2pYj2Qf7IcRf!>Dt`J=n% zcfpk~)or0mbzA6)VV0)8aXB>pHf)PwaR}2iFA3+01&0`RxM5=qn_w6ghupK*81{3+er4Ei4SUS6FAUph z*!PBo(Fbb1o#0&Ypr>JH8&+mm+OS&4SUV7^@jc3uzwmBgGf`$rMYv(g2N0u z!mtX%h8i}?u(5_cZ`e}9)*80XurCbTY1sFMVQ%QkrMYv(gBFGzX4nyil^WL9upx$B zU|6+ba|~Nx*doIoFzgY-o;2)f! z^9`#r>~_NjK>8iSSC69roGTVw2v-xqe&k#@Bpfcy^J3@1`nzE-8TP7SZy5HzVILW` z)vzxO`_8a>!{W_-x(VmPH)z=5hMi>CX@;4KOm*ou{i4z8)6;{-q(f;rYPic~=(>ZU zvZ~H?llq#r>3}=?YKpL!D9e?tpe7@xE=W5eG$?hGQYe}N_7M%V(uM)!)k;YNwV4Ws zd;eUunXc##b2q3nPNp>!zmG8d*UOe7hE2k;qZf=FH&xXfjCMhy*@Bnmb)_h?HITNUINDQYbH(lfgN`Y ze1rs^I&u1?)t6Z|e5o-WT6Ex?j)C>4VMu#xPzYZ3qJdSXhO(D3$y5~n`wA8P^zumY z&*;c$`1~KxxoI%b@>U;Mh%7?C4Ua|T3d(OyXMwolAjG%fYrB`u*1_>psuIZ~v`Y}y zrbyC`od??rr%2$5W=^6p42r2$a2n{*puIr5ft~@{8}v+2zVzv!=eYZGK~KRw z+aCQ{w~LTRRnehKRdndmgYgvmg9{fE1AL0DF^q~iihX4mRdf{V;9M~(**Xkrwc?6V zZ_i;@8FsH>4;sdyvc|`uGF`FY4Z}7V_K{&6G;27{WcArgohug1GVDsjZZ_;T!>Ia7 z(<;?vP(4Y@u|ilMPNZYdfr+Gh=dD6W(evp9<-I~2qK@V3D~hUPx+8A~I1GYATRgoC z&g}hpefgZbSRK6lrt>C9*VC$!=fF|Lhk3HoP6&91ZbeH=d zQmD-p+#Jxl1!8mpTfaqwFP+)KPwB{QlC1t?{qfUJfG%+O6Zm9Vr%!{DB|HbpqJ9DN zP|z1aJAl3f+68nuC|_kIC|_|E=xLyDfR=*31=M#>W}9Vw_(3@)iZYDUF6BRdglH_lFqF08LJro3Dx^vVvQ$#Vf%&eUwd47K!@68QLrV|^C{V0(;^*m?mg9Qlk(%ln7B^G?6|9dHdt9pq|tFi-p*Hskj)dt|xD<0@zvr*fFLY>+jIq810) zVS$9b7p*yrC6fp&iWK8K#$Lv6SO$7!cpdr8L3lV6R871>WcDmT{%Bx<}6|>@J1fpNW-MPM(l8B5I7uaeYjOPqXkkPD9!Ay1y}Lv{j#`FFnsCSu)>x+{m9rEU%%5#IT_eqsGxc0JEuvml9S*Ac}G-1D^Ggb<#q>bBs*8$P( zQ^1sqvn*JUS;eS|(6ZrS6MX%}c17NMFz8zjY*(nf_i#|=sskw7(Lhkf+zGTjXlKwP z9NrnU3+@Mk9tAoR^cc`NpvQu;l)8e>2R#9lHP8d}PSBG;?*%;t^kL9mpihFH0lL!p zzYcmL?wLpC<89DVP%19=2K_r|8R%x`&wN*-1XMCgmr6$IQpu=dTU@vpk35touw>|5 zvEX>aPBe_#*ZM5AuQk4ThRrwZw}w4t*o%fOH|%4>J~8YY!@e~PmNs0v&7CV2aLrir za;#x}4C`kYwc<3~IK!$8n{C)0!}c16Vc}49LDBSCVEgIWh3S`Jr8ZR& z?YcZwzBj!L3X)>AHoiK&!aG(uNA)1E@5BphYM1R=xaQjUhCLhVH+%;j#0}r4SEpZ2 zEMA2kB(eCL#Nzi8i|e~0s%T>I8hMtd?(K+t71>?#^6aLSqaP26reEdg6PJnuHQIoM z-w%v9f4n%%Hw=<(#k%=TZ~gSdt!yS&SV_0P9Hk5+SO!$5% zf6T&jIw3~YPn|%EL!tYXV~qAk!@=@vTY6btYKu}ioI*tM#Huk zw#~3ThV3=%AaDmw<6!5C1xFf2#U)LHtX#v9l`D3>VIvHiWEeMkYq%Q>yUDO08}@U< zII7e%xOk<{%I2TKVS0L5VgdVPY!e}eZvuu5Hjd2?yFbGS|KEqtUlt@WGF?{tX0U8a z(Xx+=BIpVBz_b`c_s{#Ug6~R?+S7H^uIkbe!|Jb8?Qb}uyWdUq*SqwoyWa&;nCh=b zv<@4QYO)2H!hXOGss4o+$X9BYz;$-j1HTrI6Vc#W1vi_E>iCNBjnsu84LXk%z}SfC z$BUf@zdznnBDn;=Z2xQF@6WYjxF>S_yNDSL`q0LE~I@(s6t;x;rGI z4#Eh@QlLIMajLUxM9w=)u-?XbSz0W&*3dLz34VdxXaC3t_1z_)l&rdkNC#F!{(k`)~Xq;GEubjK@{` zbix1RbMN;*``r71FZ{Q>WP7@waGw8?mu%CFlmGk|j0(G&H0Ma-zX-k=dwYbh{dci% z@>&1yV&9l9-xVp}lPbXesz~|v6!sC7Z;q62N%ce4He&A+w%d%ZVQ(;;YK>hU` zDy=hal+B>x!Ia3X7?$+$9RIIN0Xi1PkAd>%?B`2+(_drT0oNk<=L%k#CgXkvv~6Qd zsiJ0T_2ijT=b{OoRjh;BvBDVI;;9&ZH2wU;+~~Q`(Lr5ECiloHR$?R$G9wzW2!i`8 z4*&KH#dQ{bjt$1G%;`^&We)i>o^G5<&nLw*BB@ZU%8iW_qhtcRktPG**T6GtWJ$3b zpCprG>G~^^&&HUXKcaypHWmy~72wG7)E4(nL_>zr9q_vZHJWSK zpLt^1oA8^eBOAD~hFG4PRSp|JcIw0l4VW4k5?Lwi8T}VStj*A%{e#4zt-)VJ$ z#4!^eRTRUpD8l7q&rck3SFQo;77l*WTzKL=ndvII&)9L-q9B-Igc)t`S$F|%l=7_C zSA!4DV#s2485zU`Ne1S?Y{s57z2`?xp6aLfAIW_P717xAofvb*#Kwk!B8($5|@_r4J@B2C^U+oQ07WF#NO`z*RS%Ks7 z$dQ*gmkv9L>0xbj>0xb(aY;%s4m%a&uv0M(I~D6;*vW# z+Atgf;jp!aaiFT>d*S@g@#>W zSdC#6hH5y@mNh;dKI8m{#K@(?MvR=4Xj#6wXMMV6GhKW5Z)5GAaMf_wwHW~GYN_&V z>E&IQVT*j-MHts%@BbF|2N>>^?@b)u7kx(Fvvrq5cVE6M1kdvA#lv@{`?lS)`|>@J z?JZwH1huQeCG)mby$deCm3y!8sKl|iWM0v%<}xQQOy@1x-R)VLj@ZNzW6j>mmaj%$ z9^LYl{2&RQSGzt){C;&&_6TwTT8qCph3Sl+X9ncSlqKci$7$3f_+|T#Kc1=_^rbXW z<(k?4kHJ6WcrxSp34YoB@e=^J)X0-3ppIH0KPLS@x1e9Eod^FeWBRwFC+}J?rI^P~+ae ziV>xRWN5JFGoxmDW_uo1T5w$zbb?Nl&xbE>pAYf^Y6>vlQIXvuXqo6k@!`w)4+t@G zeqK5ZruKrKZ^l=fCO$=iF)CtQW#KxaKiiCV5AYun;yGws&*C*i{tw4$A@?{jPL*#c zejx<8?V)X<@o-Ixacew0Hlt7RM%$$P3#lIE?USVlndey&KiBfudxczjBTy`@8w`~* z#gomATOi3H7$0oqA@Rge+t3TUK<{8#x_RY%(~I8S4KEVc2K9~ zsm2jTJW0NMFVHy-zs22Cti*6EfD%x)RmjnVCyzzOlqb`rJee*%=UuVQ2(Q?7=h71b z72~p$hNDDOv2KQSH;k$S8m`o^A%|5m#$fUL5-aBCzrym0sXIL9$vQM9l=y)1FgsOZnq-y)`_i0PeR z_eb!BidB70d)Ufo`)9Pw>r(Ufq?he}cj5b$qZ8*W6EWrp4Ap5y#+~p;GcmgpzuyrW ziShsXFCxoYzJ0zL;z+OF{ch#L_wB(Sqy78`t*ezB!ScPh@UOw>dnGV_HvZEhr!U4m z!;;hg(fN6Q3OK#l3Ud0#a{Sl8KjJt&<9Rg4zl*R?jg6chs}11D{Tb9Q=83>k{5Vk4 zOGe){Q~OSyZ9_erLR4wInct{vRCDT{d;`5g!ib{&777)9%nJE|MnFzQ=TmFgO~+e;-liLG4}mO6*-afkuM~!ft(sMvg-B>MhaN zcpDEi|H1i4=9%%rwwY8oO4a3aNrLoDd&4%qU zjPnxBOMCQVnwJjF6$@@Q3|j_WILunmo%~=g7tQo?d-mJQVGiSaxjhYgIe7hGF9(?v zdbzz@(9~cKuBPY*yS4ifaR1%fpWw?T??2_-ZtbBQ|J-hkqvP!7bGx;l<@o1zYgim_ zAR=d;_&Gm;-xTr)xiZ~a<)9gr=VOX6A**NkU-fTCXGQS;yMJS!rTqfm?s9xr2kPg} zL_ep~1TxD1eLvS{pMH+%Yd<$o(*K|Ja~J(z_H(!Yf9mI|q@T;~!?d5f%*s5wk7KWO zG^+%rIu0!4`oHeua=SRT`_=emcX6+xs{$vY2BdUx>p|JYy$L!1bOY#RpnnBrvw)CG zy14g2*~Jn6wZr*65$E?h2CQ7WIJ&fpqe~A`Qf#XW7Yn{~t~k%Bk!NE;9G!%QOE_07 zINC5yw=}*p3@bJ4Ji|EM(s0uZyTY)AhNTR<+c4^E>$86{?9Ya+G3+(NC?L~3Q$VKA zQY@xe2)sx!Dw`-qWfR3tHmsLn=NJa{Bo}V1VG|9bSWM%aYgo##I>Y{87}m>Oe19=) zjbR@c_IJZ}81}VcP0@5T-Db{(QyC09&M??daN+JT4Bg&P6_FiCZ3Qy5z1hOC&S)S0 zf-EaQlak>yG4?II=WhpoZ{U|ZrSZ=osOT<$;Bvg5lB>*Q0xaK892lcs8L?C*AXvK( z81>;W;`M8t{K_*CSO7Sp7|F(9vI8w7pfbgQzjza3ch8E0@565z#Ts;W_&);OqV)+V z-*Y=CzsVlRg&v|qS6qbNbm<9+irwJCVTY!3#e>C$6(Oe@u9b7SJqd-i+d5$S+*Fi( zSYJ~@*!&0qYhC#!3?f#QZ$dh>-x^(2j_d@Yat2kQRt$S8?mvWo#&&pT260y(&<^;a zeB@#+Q!K;?S7p!taTFdiX&TudM7xTi^}19r-$B#Cl~an`VPrBL|@X zhreDnee5(fCSHtiI^8`4qZCfc8qQdKGoT_pv!b@h&D6I(!0OQ}Gc%>UvJz82Os<{v zat-SX!pkN(JEUy#Tah@9t-6%fd-@h{LPzc`%e;hy*$g|lL~=;7@uPA52{U|gdu?yx zg|EVFxfh|Fj~QWxHM^AaF%Qg^WJ=nvPQ2K&_=|N#ZFiRA84es+puN&yPzpa_!vlH5 zfE1K(IRcb*%X=1GbJUr(Y`U~%(-o6Lp%klg;bOs4&J~x184b7Auyq#hKZbE(M#CNB zTzb5pVw~7$8l2cDCQA`TwAGC>Jfn4GokWV1K6ebxf{NDlF3{WFg>}QD>2q-A=lS(B zyTNj^+FVZ0gN0Zu2xH65!q$i~1-LJOb=;}qyBtD(IReh{j@Rd79Ap?tcQo2vy%Q?Ya4`bfgzUju0zSIPLD;jQE% z(`f=1!;((V@qhMY2BWX8Yn12s=bu6!jjcOeoP%e_KTiCW3y`Uug|8u3-H>@=+BKjL z@oSKaT^E^}*pMAYOQz%nIXjN{WyU1<yE7OxRE%7WC!AXeEvzkZ!mu9*sHEWeER&+grM5ZEN9tb^;^x$ z#ruTN9xPxVjB4X%&wXsGG9H%1!4i%A+4(A~kCjnEH{WB%}8KLgMH| zU?FUVMLQPc7v>+czY_gG5>+)RX6h2TS8K1F+Kra`Lqhqmf7_rqeYFmgKz%Vu?g9Co znu#4DSf|j%Sg&h_hZ`^IP_RwH-H0kV3`pI@J<1n)lz%Zz%!Ept6q zBB9Apt&eGPUl{rZEhXD(+*}rCtgvnJ-blN6MSNJijMgvnvkff%1LJb#2^7vj6`4+}aoiYA$X{yZ98p%R4ycL^VD0o}$A4D1DL%XE| zbiDGh?}4XrYk55`{%at&Z&+4rwrrNqNEo%GOL?)z`AZC155v+~9QzkqqQR<#RMHMv zEy=xCctl}dQM?J>t!YtVr0~$J5c+O~K18@M8qIwryk3`U%2!Dmoj3x z#Spz6hUn-=0>;57_!?|^{Frk$VK>+#$bk`~Bl}e5NrXK?HGUI?P0=`mHgU+F5jpQ4 zg)c9E|4+RQ@|-`1B)q&o^*?xB3V$7G?Zn*{!So;d4-T~2;dZ0L9}25R;_pG51H%L{ ziMJB{mDZq(aepZ2do5#VBG>>=45!PgktOu(J&tX4pu>t~TsC!+vhquMAsZ*eb*R zVc5S6t2Zoy)~b1F>0EKK)2kSz<8;M?Gc4Qy!_G78Lc@M!*lUKN3|$(W{%d@k{%aba z8@9u+7MOKvxYo{v?T>~XYuF&e&Nu98!>%*zPQ!j;*n@__$fCkh!_jyeU9sRM!)`Gwf-hdf(R7i9Yh&0UhIKXU1jA^$P@nyoVKknm z7>%cCe19=)jbXhp@@t2?xR^(yD;Cf+p+0+)bH#!m8^&{hG(H+n({MDNrr6VlJ!{y@ zhP`6gCc`!xhDnUua8x}uJ*p7a04~PhxpY;(Xfrr)vJff~C-1Dqe>CtQ)l(j>)Qv);R&WxiV{}wT zgOT}cV7$mdd2wWpLXxpJ!_Op$%li*Kj;YW`!%Y@f#$SxoxX^9jcYcol`(*^QL)ZaV z9kQHzY$o%>JdmTG2>z>=ADN%$%s6wn#epQY0pT1?*mdS8h{FKQ>ZIUENO8vD=SR|- zX-2lMAmTi5XpF?Yd1!Xx=v>fE^ZF5%&kt$Co8i@bykF)(3mKID-+uHR~XlA_biT+7h%Dls(uTpxxa)tNI4qmxC?>JrDGD z&?%q{Hyv~?=qz{7mnuaqX^%sf_BeEDkE0lS9K|ANJ&HAPF5S?s*olVqvv30q`?X=z z($x4UNY-a5NLH-7VJ8{JHOBHrg>-FG<(r`~Dbl(vkk+Y;ZWB@n8WGiTVzhrz-2nJ@ zz>lqwSFWgT4`R*Tufk_gRY70;p5)L&F8}RR$d~fJk=XI<%d6%X|*{01Jsw4H%ta)S1|>Ysa1h;Gk!`YiSQG`^D!(}9OzAvg zRry{ZIwz20vmi>`i%gA5l^sp#VCiWP!8IF3ks!C!K_pm)e5P=cS2R@_tz9~``Y0Ts zwW>c#7`--+;cJnao0poCm!1a|JSVnGot6V&f6Yjd6h;vYLx@k(Wk(~O*bsOqzN+kK z#t0J@!|)0`$;wAI6tD{OZZ{WG{~Esq`1y+i^eArlL$g;l0FWdk0ZVV;wA!`JC za{L#Hzs5EIexK*~e=PoNg1QFL4^ic=K`>8bY@GJ2WGj}-Gqz!k*aq^m@uY+th#|$< z;1DX|!k7$K<9k>r?Pp%eO)fy+MkyVmr}PWowX+BD2jnIXXX@l(oKb6ROy7}lD_7z> zF`jH`ozGW)21AG19Ofq|8`KR2g_4OM4{I;0__%l(&JgN@^Iu@dA`-8J zpd%7yf6*83MZ0>lGTQF1NDAGcF5bk7T8rucN2YTnmFtVz8biTXa$gwiN6HdQ*3&0j z^yB0&`Ev>)k>oE>h_O6sq%=j7p{lu7I<{&_`RJA^HiC|F-+aFb&4-HEzTzAXDLMGe zG;BY5mpnt9(*oig_A<;8hqx@q{fce)J?Ym(u?-az*%p0E>{ZO6Aulh6d0cOUdPa`X zDmxQi6wC0wea=0FBi=tFwmHqA^dTQ%N7)%}YCZ6JIIbP#6QJxUVHG%u1cObW{Oq0r zJp}YmpdB2}=bynn=1aj6&=VZq6ZBc!bK&F#P_C=J2-+KT87Q0N`=IkcSAt#-`Z8$B z`QPU59{^ngoZZo@po>A*f<6oS1}MAV^`Of@H-LT&`Vr`7pv?Cd4rkjUPMr|q)Cl<- zC_kO|K#M?`AL@c^1m&Qa;mKzio*Zld_^}Sk>C!anq|} z-1Mp#Q&Nn({S`akFz)tO>?*^qHS89{?l9~RhCN{z6(=eu*BE`c?@(-*VIvKzHf)Yz3k+Li*awFF-7ub7;nFpXLLJ5KaIRSJE5jZz>@mZhH0(vg zmK*lEVQ(6?#jtILVc;if5Zu>GrApl>45f!rD>xq5|2&GHE-!x4yf~b}+o1o{;l?C1 zgWO$Ne1>7T6!zji!;Qf+Crv7E_{S=OB${%%uc z$A1H5`M(FsG>cGSIzORH=O=VQ;^=(i!7a`ell{{g?$3siNhwA)sn51R?JGvz0L30P z?DvN0yaW3nF;E|zc;+G;4&4jN2yv{tmsXDMxfB9Btj?cY`#KLQuCH#JKBtf;6u*4! z5hW{T9meyB)7wklxn^tKxd>2MvO^B*9i8aA91r@Vdoy+~79fBAn&cdKRk^Z<<6OZW z<#6v$8C_Ufw+_=sv@zx?&>-7#Aheq$77H5;&6Ph zo`2^|y-_cy;kkHxpg#(GWW(@&F1|&E-E7!T4ZFv%7Ytiw z*m}eMYS@>CePtL|qV(Ok5~X?W0oRaxmH|~)>52thSJH4}EFAa{ZE}o+wcx9;YY(hu zR^pjK;YlTf!!=_jr3)sNG^x3;WOwzTNnli+aU}Vs$dLNkdEV?84o45;J__q&TTq%% z8f=?*reG382*r`5@F;}M4Chgp9#qtGFpjkTzQ^FAO0gxZs|qkOT&e79)QS?sQI861 z1w9b&nqV$?h;)I7zixF7-}8~3(ao^@aU{&k`_uNY-2c1|^RKMN>~619~s$@u2sEo(=i{==q=zgHj;z2w~m}uZCw$_DHd$x*gF{~MCTCrm1 zf{{VP$QU#}e$pC_pR{85jB2+{&1e+1QWe7TLdfZ286$h?0Y$a1)Q=dMp3|!5(p1I9 zo@=n1HC3^BQb{CHn+J}WE-UPl8vbtLnZg07icKZ2ByRo~pK7`+?>QtD)D^C-J82!{ zg6V>E#m4lAybb?IznU8LR$?*C$0impPjBe@M%PuTinS>i!74|pSo*hrOI#sq&R+hFJ~qVR}w9GVk5Q(@knOMPPv;v0w(0M7~R*ADOP$lrD>=N4<4Z zUbJ)Mj8F~q4Y$`$+Z#;{U%M5u$6b--KkK@DJ&ZD}g$HbJ$zAOiFyF9lFoxE370+&l|MA3uKX$delJ-sEo9z{KK&Q+kuE?Q3`jE+ z_qd1XzOSzQ9u2KZo1b!&$XfEruS9Jn7H{afJ~e!MYWQkYP)W_+MC~>P>lekFC!QV| z>W`>vKaRkb?;r$zHC6t6*9tU`rM2INs)xf?(!#$YI0_k=aHW11OMRKU`DtDGUC8!I z&4?(TqWvWn{(*^9EKQd`4<*)A#cJdV_5bM{$V;S(o^SY2%{5v_*N^|+1=4zSI;m(K zmq_c_+#9Vo@l2#-^}GQvuLL_9pZ5AseLbtakuu!6O46g>KAGIQSopsaQukcy9AqP3 zA)QSU!DX|d{qbVh#db<#b0^i2?*IC$A7@dd|p#y zcW?uOo}Q!7&O9;gp`ef3Bq_T)=sR)zjA=7xV3n)!5iI+V=kenxm`06S!4;GHz7eW~ z9*p0Qf~w%1;Gl4R3=9Y>5VD5^>3&?e~{BH%nruGc$x>oRB7}^$~i|mYy zmWllj`mx(!o%tQt#3(4@ETNt3X6_wqL9-q}C}lR;YHS+LSIeoWl0&Up&XXcmquJac;gjTY zvwwF^)v9JpMckQ2cdS%9OSNzDN<7E1)nkeEXk(wZ$&$A!6va`ZuFB%;AtkXh^cae6 zBYwMr$AjlWR9Dq%*XFZtK7I3HQ=sJA=acE`$D>weRV5bVTuI~k(3qeE`vyk`y+R{{ zheCcagCZ+lAB5|I0a88<+lsC!ogv{4j%40Xrqb4QDY;E=9x4lL95&4BzY`CkY6cOiJgNS+7E z7H(1ZkkOMGg4?D_G0m4z#DyhNa4dn)~J10{L_Deav5=DUQBG{9-ek3kjm~ZWS3rl5Dx_H)=Vy!JvNx9S!;?(D9%vKraV<8FV`6 z8=yY}T?cwU=myX~fW8H~1oQ<^*fW&(;gZh5$j_Ic?Lof+W&I=~7-`|2TE1Yn$)iC( z0DczehoEG!oq-PkW&N|OLn}^l+{%0Mg;($yssxQLm7viT3%+o^aj|)#7$s;LjuJG* zSo(?~PKS*&>=MInHSA8qo;B=6!??hv@o|Ao)5yacE5@ZZ#o8OjDW+mvOw(|z3&p5$ zt=JI5#uzriumy%KGVB4v9x?1`!=5z^8t^U+)|saJp<$fTD~8h`T)6KIqu#dWk9yl0 zjmHSBZ4n&$ib zHFK_5aHwG&4Li=T9)?vIHq@|bhFxLUe8UzRMxAsmE9#`vg%u~m{%qK5hOIa3bHjER z_8-GS1wOtW&IO6EVbo{Wba~vjraRQI;f6uC&xNZo?0&-@Hta*gJ~nJh6Z9s?Pdu3J zT(RJ4xXu;qI_HW7x570@usfYA7TgOL%QYT6=v-JFj{3Yj;9RkQ$7$<(JZadAhAlVj zb;I5?>_fvoHjIaIYkWMETg&Bp!+0pSV$Gckhff=Jv|-&0gLqKS4X7!o>))|b4+eyC zev`U>tw!TEeKywpnvAaNUx1r$`W1z$dqcRSig^8_(B`M!UB4)_^}%o8%6`?XPLT&QYF2&aK7wclA$JWT8noYt`pbiy#;ejE#%Q?q8_}fwMpT&- zkUsr~rHv6}l7;meD8H9CK-sqW97kJgkr`dIpi37m=!(gXR>fX( z;bNjhso1B6ac`Vr)XvjqyBcEIcCQffe%IjGO za^$Ye5+4NxY<;lDTwSHdpz9~=)fzHqczR~+1qXafuY$7+EGGAB^ofC@f%`8odr9AK zBH{bI-?-=$ zEB3r$OPvcR@EC?EkUS9!IFZx%`Z||bxS7B0W&~+u@eS)DI4ZHc=x6KyEsInYkEbed zs>DO7@*-OLphXVm-XH1!z4|3s0IO*=skQ_wP!r*mwRBgOho!qz`6ld@D;GW^i*}_5 zG@|D>BU3fMpQL8V%L?nR3iW(Hb$2xc2C2Kb%F=Vqs&c+#ka(t50T%v--Sj;#v0%7?FX_4bx*o{ zU3&Pg0|ohMy8Ne+@_WtBY#H7FV0VqFiFx;;I7-GLIq${5~j?SX>amL7Fi*HO3C&RY_sM(wG|hppjJ zSi*WYy}Z}(w-V=-zlEyd;^pu?2a4rp8o?U=)PaI5N|)bUQoiWAXc{Y$6`Qx_^O0AF zf?=)p3`^dr=m(No@WV+Z(-jL!Dw5YBiHBg<9&KyX=K7k=L+by;;*-?U!&h^I%Id9o zJ=gSn6S^J8rOP*^N1&%|n=tQ0<)uK9iM+Lyzribt_t zh|i^Db>ikX_SV;nwj1}=l;Z<=2Rx!x5JR)z#IIGb6fLp4xQ@q%rY_tzSQg~;luUrU zhZp&I43uF>pU?5HWMbm0%Zt>0&3^uO;;-EHMuaTM@sIW6^O_p_i|GhjlG9%>PfVMW zX!2&g8tX4Eyr_{LgF6;l;hARg+@EC~a3r#v4w^>})SG1X#mzB(PLcHEs1kN7Wb_>+ zPMW&k|G+jA&)j|Dp&XQBT)q*Iw!4E{e25LL6{GF{Wzr z#Oc*zt0&J;tv$x{SF|gN9Qo7|yat4uxUP<5mf$Gq)*||iq|#1OrAd+7B<$&t*1@4z z`{+~rD4xGcupzSirm4DBF z{u^0BV`=buME-9HcZT@(=Acjb9Yp09P}#!&DE_a7i?K9*T~Lno+l&e5P2#r(e!X!> z?{}fQ!tLDhoNl~U|F^>^Ip{Nm!#@eP!CFqnEVR$upF>|cymx@F)-wG@=mS}PSPP8h zsCk|s<;EJOP!$upQ2Ss?$d~P#g3;u*PE6Q|VlNg(497}bl)Y!x8plo_e;LdL`NcK{ zJy{~qi5Vts!P2Y@u}yRJmWu;E^IWXblGTMyu3Iv5ydDRO;fET*a(MR2GpuOfD#o;n zi)5K~&b5+uTfrCyE8q}$0Zun{<(e3!u9VcXqFC#^^hJka`74Z-ZcZ-MCOE@)lJE(a z2dx|pf0BgH6z)`n(M7*X$zw-UK^`Q(VZ4QJ{(7W3C$meKFpgk68Yh{tz`3}#NwBry zMd2n{&+x<0x$Dm*FCkH9)e4;oMFLr`|zdB>1tNL3#?7JX5n-3V@YNp-d4YxA>!XV+##qBm4qWGS>1=F zwR~cvAQ%X%JxzlcR2!J=^I6GeO79AJOTNb0uI9ZJB}ybc3ij zGYlo$90+H(3(O61aiP6T*cR_-MJ1z&plt;bcwG7{%a(PId7)t(Mib-KB2ECbJ@*ba z;%$hqL-B2#S_~c|kLMbBrVY?OQXg42%l;00ee#{OWc|*rtFbuVF?4>YOK5*3&iJ^H z>f_5c;={v6VWptx`e(CITFz9|Pg8hS0Y7eKm{k*J;mAYz>K7nl$~bc694_L>{5J~^ zX__qnadE3hqfy?K6=e&U6=Jjg1|RJViT?pbvna3i=>u8R#RR>>Xj&C3yiTdP7<6 z`z`1M-1GU%Ko{elefSfgSAb&aAj!t@EGR$U=Rh9NOI4(Mpmzk!YgeGl|f(Dy;7 zfPM(dp6KtO%RsS+kz_CQB`8M){{Vg8-S@mZhGz?#$OPB3N^YW%)ZyOdt-ZXzr zoGTWzG3*e-x*B$ZVS^1DX4s{MU2fQQhSeH&r(r)a?AM0<&ameUd&w})9yQPJ8@AQ3 zFAa-B;Gp3W&ILiGVLc5iGpxU1;|;siu2KMi+|VHJj5WY{RfY7M*5u%8(A3&VbA*kZ$8GHium z8w`8Luzwl0)v)gjt2Zoxr5vrJmd+ImdKz}BVZ#g?Y1rk4%`mLiup134!UCP9(aO0* zo>;rB@BQGGLC?R407wi4WBCrc)HMe=Ls-zO@A;ZaQy{s3_WMnxEmoDYXM^TVb@Yt< z>bx@wYMKB7GYhb>ug$X^;iyb6zhvJ>VMTbsYWUQZKR?8q;f>CpM`>Yw;^xOd=FeNI zH_X%gc`NZhl(_XSx#5$zxe+9tz6bxG<>)arZ{3LW9~lCBb}peVcKsD6rF)+SqhO+i z|7LZ+${fS_?vFA5fSUeimi|5ZRnp#~mqq-eT5aXRc#~IqW*@pS! zH8l@6=25X1<3GG<&)4vfl@N+N;CE1fO>pQf(V|;X1<1MP!Nq;Mt>oxp^*t2@r>;Tf zLXZZMpAqow3)~OgDEZ;?8^baqGzpXKKe-S6=&Rwn=lDMbf4?rU3a&}`Wj|kBMt@Ch z2VAd$W9CYJm?!4pY*1M)08u;kgWYz<{u8S!`%JE$Hg={+exAcvl%^oYRgHz|F{*4b z>zut|Q(uTHcmweZVFKL_KQFb>mtdI8T0+A`O&>bSfO2VQz5+x472`teA|9u?@u7Wj z`nZun8MS|m&`}s1uNpgTmP}P~FBcmg*9E9hNcn@WgF^&AE|ibjD8qF6cfnj4?Qy#R}l`FSv`+oqr}5{*|B6huxcIIJ*QP;h9ZX~AKUf_PuC2HT?W=%$g9 zf`be5!hT}W3R$7LhWkmgAsjZ zF*kw73yLDit+XZ_?;P(0yCHq!<7vyJDNMD7+i^0guQ0wwwVIjW4vD@b=z>yb&Zw2D zNmOErd7)I9&zVfLe7?St2b;+ZaNm4&f-0~I+bAi}$bJ+YfwlTZUXy8Z#u8ym$74L2 zjFZR4qV#h+PP+I-`76`Zg83Qib1V?HiCA#D=r_}Pte=4KbMYSwF~*R+rbUbmmQC9? zY^sp5&9MQy=F5fV_gyY725hTdNe7bfTjs2aV%Tbj-xpR39uI*Y4h&0{$s<9Z1U(59 zV?~)wVWcPqSQmp{02~XN$uTb640qoK@$)&V&C#Fyi1&Oasx9ego-Q5D)1{+%#aNMw zaSX2*<5aA-VdaL+Fl?4#*q!H|z0a_x48yXyi;r_5P2&RR!VwvUO*QOh!)`N-0yTXW zhG|`VD-7d$m*%+zII4!@$XKy1h8=6zxrPlk>=MH&4Vz^cXH*&=1zeg2X2uTVXjw6i zmNnckl(u3cohuehHEgC~Sc2wxDO^#!0~O+qwr9VbcxFJD#~q`;Y}fPsp5I{0Usbec zeX3pRs=~_AseyUAQ?N8I-5uNe(y-U{AvXBcE{&$&z~KQU<$GtHk~lm_7nN*CzmlkU zwdC#e-x7n~PVY<)$t%I}1i%pL9Ry7bdWTPai$|)k3RlSZk<@6U#l=Z{VMdgu23YkL3?-yrA!7x(96Ki~R904}zUaLvx~uM&U#$KcLc7n? z{qQGK*DHJBgxzOZA24`!V7kQ?auJ-+K2aDipW%puXIA(QjhWOd1WYZL>;1#vljjJZ zUw{YE6-w9P`8-$T|W&OZETK8-G~6}V?6$lQvt zb0i3R$sQ8q1awxd92N@32zDyEh-lVhbNpi*8K9zYQ8?5rE67}*IP=m?f}DhSxsyw| z@)*I&k=k*1RLkK)!78K-viGd`&SHT0(^R^OorlQ%aCBmRS!edd@sa{dzD#@vUQ4%;+(&=6$_;Q{JpYtwCewkIHlU zk8LYgE9hNl<1n#}pzT0E1nmO436%BsF(`}jd(fVs=qQqBkbstg{tGx?dMhZ43VO;( z7U`FuV?ZI$NR9*j26Qs$9?%-lZ$a+_WqfSwjE_x;Lt$n6bSc}XOV6cOY=;XM!>CZ7 zh*L*ho{draTU>G3d8W^D%|xH&kXSKl#49$`uxi8R81@sxeqq?}3|nm2>xNOdrfKXj z>}$jF@zra(O`R(i&_=3ahZ@$)urm##lwQMC7))T!5WuQu#D!_tP`YS_JoJ!sfo z!!U|+@qxwHZY!mhNn#{aK=z;lf)OJV#pO$>GEsmhCe7aGwb$W_FaQ&8LVTZdSt2 zpwIGh&sTbW)Af~~^<3U{d3<%^g=Mu%ccSANyuItZm5CQtp@XT}<)GErIgUAO?Hl!6 zbFaXz?6=rOvD(waaBws9J)pI+0P!Qsm7!JTo9IeBb9(x9?EhU=zLB@7d27?HzTNOG zCa%;Qss49fdi93yOFl~6`W}4KtGccz<+kyg=gS>5M$$EVyRI03Jr5o?z4Qg| zF8TG%aYrxO(7$Qcwhtiyd!kchA17 zOOAgZw1|WYEfV}3|2p`4Gdzr^Wsd)6Y*FCYyvRI0%xC)j$*}EWp7`u>pj;-=E4Skv zoVBvvaJos3&yFu955J9GK~)U=doq{%_P;&CD}xJhXo>GX$5u@o>n0JRafyg7#59W? z7FW%*8`~t&55?U0ILwH3Ya)|{;(!=efV8d)NNxW1_quRO_zF1@yd-%j!W3q}NwNf?e4j*~Fl?yKGRa}s7Y z%FVBe&#u%-WoA|U&+Zw%7~|ztBN*imS}4Q@2u8b0`Yfv%TC})yC6vPuV&eqUJ=~0s z*l@vk>`ymXZ7-ELScmkx%7y2OJl}yB1ws6rn&1hp*{(*RZ6Xv5g?hoO!S_HjtDhOQ z4>D1%xT;*muYOmABACP%KX6ejgM?ooZN6IErZ>_Sw<}OU@oQ>khR33*3SjR%!zejLis0qRUiNaZl z_sOU#JRuIQ`(AzH+ypA&Vz80n zu|nsH1#Jy$Z&-<8l>KUa!wef~7}usX-OCNT$*@}t`;}o281|%LPaF2KVXqiQWqnNp z6B?J7FAUph7^WRA90#$Q=hlX?>=fgOMB_WwFs_j+HrOyu=@sLOxjxHbxneU640Ke2#ZqTyCNY)ZgHY|(dMFj!bDS(UhPJDl^u z!@FwkC|0G>N4T!Epc=*e=Afs2n}eU>9Nr-**?H z$K9)^o1rh0ZHR-4Fy(Rvp75S1QGL%IaOh^lQ_OWGTtm=KTH#zs?|Q~u-B7an#EIrY z;07Yj^WjUJIpD>a7AjXT(sOeBvqhYoY4yzU&lYh~hwAto|6CF0XZTKY4<%xrm^O#B zMI0^3l|9qKv7sW}Yb4gt#~mv>|FC?Dd=QI@;R za7ULSSu@NL2RV?xPWLiBKfY$JFd_*J0OwzZxQ>xwq~^-kDxahZB!_^xYjzyiv&1N@ z#)_>BlpCBH%JEt!32>o|`Z)INhw9;^+0UH1h<~?Gm#me$W~jb`R*~e#@jf^O6o)bK ztjb7RnE7wnmV@I42{DJ8C8E(-FRQTHcN;^o1h_u~{9EOz%+65Ci#W02ptO;g=12A$ z(_VQpvo(|g!vn>1$bMsLB~NBzI!5j@XFYng%bj>n|2wdB*PlPd@?ha+*`Db)b~3Fl zsezg7RY0$X$u^zcqIDgxT2X7C3@z;hb)IQ$jUWBEiv@%0QpriLVvhf^?>lGRXGY!Y zG?4t~x6V;_8{DmQ_(>4`^81GSv1oRb9ha#~US4@<`6)Q80V_U_B8OE`# zV&e^a)Ue+hMzbFp?qkEgFpQdk^o<2H)}rCMIae$=%`obaYPc%HW*c_BVK*4|E?k4r z#Nxq5=ZXdABPC6Phc9Y;;|!Z*Se0S34ZGQ}+YA$tcoFRf>p_DZM{^$+PbGvQ;lu)d zI_XhG(0+ku;hLkcDR9}If>c=toR?I)^z3E-E|A-!u`dm`sdGEaZMP+q zKP`N-dK6A_Pxm=(Sbfz=&N^xJz%yFb^h=9!70j+vEouGDK-$2tiHAe`{JTVW4gNimf+^B#oTkPkHk_#d} zt9akhiSMst@<$B!;z&UA-p`eLCLg7Mp-fkc+0OON`17kC^_QF73i_4_$$+lf-EZ-ER)7YFU0sn zwvdndN{o@M*Xb)!?#BjUaz83Ck#q9eM}di)(_j3aIs9l3V4DNSVx^hiI8=9%%|R!F za{T)fQ1T6kYm%Knr-One1rXYZJ%0M1g!?N%dxOpbAXeH}Cf%Hhf#pasZ3(~W`ho`VX8Z|U$hpw+l1 zzhXER+B27k93ha6iRZej1JwMa8&)s@O!sCL6|K ziiYDbMZVTGbg8hV z7!|e@qnegtcNzAOVI0_KI11i090hNRy<-?faEcv+o<+kQ=UlO%mtkibcClfj4Vz*Z zH#%s19O7tv9O5YU2g9)a$YC!Sw#=}RsCj*sA})P)reW2F$#AAn#X5-vH=?EVT-x)^ z+BLBHuxC<9%URVUM%E3*K`mHSFNDZCux$Tp`7yiDN5C~J$A69Z zYe(7%eplr9cj*d1V$?-2@|K_D_dS`4T>Fk6W>2hY)E2g1!->f=w?XH$ zD;Q=&k%k{6aLuKogjJ0z_G|3jX+f$j1S6cca~mCbA9dN-l~#*e7Th>qVGb$90W-pw zBL+D|XGkiFk*qE>mxhNr0eS?w zrIE-CRB|9CY*=bf;@>TL=+bloLD$|)Mei^-D zedP-D(1%NQJBYtzmv0ln?NtJ)igIM15*#9>M=1gux4*L7$&8LzcAsh*VN3lpplq+~ zA35!Q%Hc<#A7L9l3X~0`D=2e(0w^oDJ7`bPlR#MsCxf013VkKf1SA1fgIY z(|F0S6^6ZU*hhx#HtajYT7v6n{@OTKEa+qy>dd8q(skhm8g{W^qYc9-$Azmh3?meW zVXWced%&RLMWIvwz_I^X0e|`VrtL& zhyCmONg-c=ygyf0mR-*gd=zYRU)@;pG_t|g;@b%y=*1#(ZHeT`#{_o&viO)Bh?+T| z$IHbzH()4c-eo-_dQ@(%aj`7P+gKXDuGfQiuzcSJZ3p@uC^Nkgl)Merg_A6M2(E<3 ztVeY#kD*I>3|(pwSh1Z5uUHs0su;)Zigh*Y1jEiYtjsVjitDqN8@AA}lwsQp+in=Y zk>OEDb&g8+fn6h*??a)5bt&wAEJD$#53vS2L{Dw^_ zF~)bJmQg$^T2RdtKYbV8_49$_*TpVCq5{c9wkjPDP z7f>QEkV@VJL(?c6Ks#%5`?>IdK`A`VhqfAmy)z+uq+|l zB=p0wE61;n#V-%rS9xVkRegO`#n{UF$_nf$5lQq$)DqmCQ#mJnN4vJI(NG!bsj|nQ zENx3+EcH>XBV*PJ?Q9lUJ?1i(norEdC#1D80?H-Q_r=@P*!IF28`SM?Om(9|X!ej?N&-7CKZr8l2^$%Avua z2OFGx11vHLKNzZc$>Ts#|D^+=KXy7tfle@ZIVf?akTVK;MkGx!xfGKoy?|A*9~pO1 z(UvN9pTqvkm|~&=RKFiP>{I9NOw|_q2v%XF+Wjhg_L*G_#Rtohn1y`&UCeeQ(XZ3zH~Eb@_|y*HpP{^ICvCu_|2U0%sLrrLkdjR{5!!t!USPr0uX*(7uLa zXYE5YJGjAC1wETBwk`3K9QIc-@4UL|#oFmH6Ud<1>7|G9_Ud@mkdGGoKIYQ_PfI4d zL(@#BfTP8IHce(q`z+zvtBfC$Y8x%SHX^S?zKo*@VZrvxs!aWl0l>X+kF#W+4y z43pRfo9VDQ4x<#Q?l?YGzZ{<`_DhG|>aZsqw#i}7IqXG;@iqw!594|hUb(}lU)66= z7M&D9hnUqoY9JWPD0GKd^%QSfbr0NZSw(Fs7(|*q6e0`k!vPx~TdDj#To**A)Hh{E zKkVVap}mHEH1GO~vL&@u^Jg9(nRKg_QZP)Xg|__A}#7dn(1)Q>nYR zj49^*x5Fl)B-LHHF}0Jd`oke6(^IqJ++TJt-Wpfr;#lHa#gq@zjWEqq=7HQkzp<)Qp{A;0apfYFJ1HZwPD1H|OOS%zdi;KepAD_E z=0&+vLtAR2D&bi_tjqdn445tK{6dIYz{53O4OK3Dn`O57GCq?s=6C;rtjR8j=Y%k? zdq@JubQEBTSSS<=V}dsr?-CB>W`{zDV?#wS2j^PE@r%VKWcS7bxo|uj%I+5LD$~FH zC|-EnePm?~l@G2(zY~E9n7fEHf;=dOD-g&a>DR~;QUcSe$ zd&5q3AWb;zqYJdv6z3=B`FT=0lh~W%cmq+?Fu8W9nYr++mtj%N_RJ!rJkBg6-o7xn z%#4}IOxG-DkFQ&b&^y3A-=CC}KtqOTr-!La4NAg#dQ}&)qqGX6sHZZzV?o*Xp9IP( z%=fkCeVuuK$h<#n-doN4HuKKZ0W_47ieVdrbw0{cI{|eLY*`8@< zr#zhHl)|Z!=u`IyCluD~`Vp*M3a6_RVO#zyCkPwYwny|97}{KDc%St9QV) z6Z_@b*9q5N{=K-i?qTJsqkE;SzKd(G6|Q~Z|7EVtOy4)x-l)~i8^2Gk&3fwR+5^C4 zS$7A5l4~Ch$|}rva&5koYxDg<^S;5nZ#D1FnD_1Gom?AR@eJ3dNx3#n%C!|E*H(;c z1r;OLR*YO*F>-Ci$h8$C*H(;NTQPEN#mKc4BiB}pTw5`6ZN-Cij&>NiwqoSk>W*AnF>vk154jnI^8+alD=vyQrq0M;vn{cDBQmAD z9Gal=nQb_aAQ#uaf4Kvq@|)AKX=ly9@cC&?r4j6|nNdEo=?uMe28&=Z?{*{h|E$>o z2Ux-J`N{u4X(q15M2c7R>Y9x!&*Od^UHhu8n@Zz!e>WWXt!~7z4YZ>Q)o+)0ayzXq zgjK4v_lVMX{opahvp&Cc{p@odL003GL9D_>w2RLOC$2ah>kA&4o<_0!q_BBZpeeNK zt2;3kN?eIKX#|rS+LT_F%Tz*x?WIE8q|_az`jV3oPGV&opMWp@M9Z5YWYXSp3~kbOMSGeWaGeNF!YIV$D6>9ica-=M#RoG~NvE>9 zDf~Lm%;2)(#F~qcBwTjZToFO(VCaIJhoY@;2J*h`1(ZzFtZz^_dr**#?@h-#BFk{M%!LZMrrarKM(E9|o*<32<6uho?DJ2fz2q3QEMT8L`wPXM%vBda zT@2~le~Jd<#BWan&F0jcJQPKyR?eAIRaeLHqs%$zG+JFJQb}jh2ai0^m@&XpL!+>C z)3}*U%>^`P>NQ?AXG=1erE$2%rmM*E2p&iGF-=H3FL~J9=QrAcQb4bN`M2%Q| zw7+41NA2RPq!t&jTV;P3$WE&xS7E~%}rIDdHs4yUhJFxPpaBYo6UU%XJD z%)&PVp5{ZHb4^=))O7(~I4P&oQfLq^ZlNI%5K#w>x_-rsP^-+_QnSnDTQ3s1pmV)|xBN)QE!+E$S=4oUG z+d5YUo-b~{2(AEfaNyyrg1%`n!3w=k^}2yBu{*KWTg zS7@>XC>CRFO(+Xjznl`dH1I^QLJH5`kpRvgIyOT))u#t|FAnpF#xBM|suQ4n>XO|n z9_dOQRTuov?iotnm>rL2#r-*I+Y74??h8Nzf6TR);{=O_65gI5RYxN-zPJet37=Ut z2%A77+0l4T5Q?s>E;z+D3guXLoM9VEWRHkP;@Poy)~XlNtZs4DvI^w}HnD@GF#894 zqtzE+rfjOW6$P(NcA40*=32Gg`87-CT!1JlzvfgYPonDszx0EA@V=75(_J1+)*va| zJQSo>7Hkg0^8(sp#GB?lip_;Ryd{C4cXc4gyE$-_gp=9wm_=L@s+HnUjL3RRe6*_T z9GX>zo-AQ^3udAH5BFZ~kPc>J=A9mWwcrlB{J?nhhnf3HY>8gpC&n{?r9e@Ra$0cD z(Ag}@Eb{*WND8JN(Q`1GOfJ@7;8}-tH>bL!q#1x^I_arDwx3^$A1;5@q?XA0S6I6{ z2D1k%FrwFcO8R8f02B4GtL}{llkdfY@y;sbs^7)BxafC{6`~?W8TSY^rOCVC%by5s zXpc!g@}OU;fVEL@H6@#RFYtWDEN8PUy?x?bxrx8iP)80xDQiMb%1DS*!KA@UXe_zMyBUrS%*E*2de_5{!#8wIRz`y z@Qg<~^c*Yhyw(Cb7_+mi>vU(a13Rs2=uF?NKpC5zOD|qP38CX=XS@85LLaYYgUHv@sGFG$8A6%e=u9|Mq>70) zoG1mQ1L2v{N&$WyM4wn5VTw3bz@Y-0f(8W{Wn7)_oIVt8_>2bwr%IcfX86oC?_BuH z$J%q#O6L2Y%)50zOsb9U#I}>-Z<;XZk8<~$7?W_~=g$Vm=AtBrDNv^;DU)vjrC7{& zCZF%4K%W5}XWmaY@3TRl1%5v0>!6E3-vX@zeHZj;(A}VaGWcIWM+I+U9);$`xIofl|8o8uVaL2z|+cpx=UG&$onwu;iVKA{p)y^UkgyfOkr4 zA<%n4p~Ojk3z`FpwP+s3vvQA3chISLhn$eC1w91xV$lAeT;Pmp_T+V-^nX1l{gDUq zeLW~fYsou6dxG8tO8>tCJsOnVz;U2K1j=hF^|>VFk_0z z<#CEtIc$M**Wj?_4!hG~+{UGT|KKn#A5e@-1!#(Se{~p3LotX9#$9(~!ddAKJJDfW zT%h5VJB&&)#js`0gxBP--#hGKhjA;Ge)kQB{lj6OIqU%Bvby8RNBWIZ95&ivQyn(L zVbu=fmM!&rrNdGVyTM^Uci3GH`?bR!cGzPMYjxNk9rl^SzI0d)@?FyrGbU^baM)oE z;~7Zm?gWQTaM&3R<5n?s$J3BBZI?J~rNh=bjC1+w?w1a`)nQv5_N>EpIP5iteeSTm z4(p2vbd5`aF-5&29X8ZqH4a@a@g4po8_=o4qM}}YaR9z zhdt!5M;-PjhrQsi6Vd-`oJSf{)SKwAa);G8Y^lR8by(72|8iKMi_PaeW5NbchYfPr z;SM{^VUry8fWsbg*fxj#$ziWJ>~9YH$YGy2EP$?4)0<^XQLn$l203hm!%lYCX%3s@ zuvrePblCeaor(H}iDYAndiO)Srr&+gn4;cBhdt%6?GF31!`^h*yAIp!u+JTa!L0d4 z*qCs#pTqh(Or{G)-hw{H-V2n^wK-Trn%h+R6!h?^3HdW|6LRwp!_dOc+KN+?p|R~* zUOr=*s;O5zYvvGkg^N#EmIv+knj64{Q>Ql7MX>ay7gp0yP3^lMC^aS@dg#1`xy_S4 zoPwaRz$Q1fcUQkhAp3bkzAfIH7`HbS3T>HL-dy^j-T{s!IL+Y`8ryQ4#zbV&0>;GU z*g^(9^@k&qiAD~H)=uA@{2Jy2%?+O?zlAvjb8^LAn7%@%mDsQ~v7z*%mbW4}WO~Eb zFn=uOmcK_}{)fT;iYvcc-iFQ?*e9{Q`1>gwh~YD9_#(C)_#QYD!HTY7P0iZc5XO#|GZselsBzZ5((NV| zi6?Q(H>S6?W5Qzinr#;!-hAwc8TO`o#J}O-ROwR{O+)3(w|2K#J%Vb0!&tt-LDqlj z>;@+)<-S4RlrQ%Zw}}ZOBcshf6sF$@b~8-B783_%s^M>S?%sw;L)q(0aNI$|kMW-@ z+fjXtYWN4i9o-Up2fjxdGl(~SESL1sR_|bX&1e5(*mpG=eul%%dYS%r!`=?oD7jyN zp6XQJdP~NMeko6dF=*4rui+nGRf)TRPFq~PtbQC_ig{Eu3`XWOasjUv%PB9&RNXVEKH{N&a6B^B219T9 zXfR|uqW?z@x6}VKj=XZYpSXTIXq6P2J*|k@gTQo61q0DX17$giLQDcp4^*kt;(^SA z#qo~d%HUYIQ{_j0!9sz!_puD(Ihvz{jj@Z1ysa~gDl?Y~e7lQD$H`VtL>oOO`yQx7 zxD-KE4j-5hsZ?KwXh*#HC{=tQeNuKSzlpWv#85A!>b)qK9sv%iL8=>uka$iqe!+h5 zXz)CJhJJOIwPL*l%K^rMv=|fdAu=RWSFRciv{;Gi2>8oXSv`nDnk#&XuBpp#=%XBeYpF173-| z>neS!SJLmAkJ#;ld>k&N!i$aDeGXe1=ggO&Sb0v7p!8xF?oPLP;aA++bEoGs(%vFW zi;YFf#|9oiT6P4MOTJLGtx?&CPv0Y{W(DIqP#mEGH+JqsDcO3vJbWNY=v zj7!>I{qm(%6*UX$(z^^eI3p`!)=>MT@sB|3l0N#cA3gvDQ}C>KI4eH(prbOZ4xv?4 zt+Km^4vHOy19kGCiHnOSu2(!3VtX9Gk9g1p&Ber3eU+9LYxNJr;!aefo)QHr(liRX z{E;fH%pY<$@~%?upjJrpo9Kg%#+y!OaeI$$MpnNYh@8p?$XQ9x3sChpNv=r~G z7qp*c-p>cU3-2s2+CKqW2Kp4}L{RpH<)HrpJrfj~AldrCwd?2No!Tgbk>pfbHE1I! znqra*f}lA|UI%(HC{N$J6qJYBtN-MG>QMzh%|!s16>1p3@9=wc^qgHC^^kq zP&VUc(6OLbgI)uA9q7+NZviEWIUJ26FZdxOQe&_vx)4pqO$I*d7|7$=1P$*Chw;z^#kv?1E)jAVwT>Dd z4;xZ<)HEta9iw7X99HMBWe(%%-Rh2dE%ke+!+zy3+;?u=J>jrt9QK^Ua4)%W_qxM+ zq9*A#4m2icKpb|s!*FuGad(=-svNe!Vapx1!ePH~*ewowz+n$L>@N;`#bN*Lu=gFt zk-EnDEMvk#d52LCrFr$F!+6@ZV$?6G-~`GXr~FQr@(-23Zo7-;~1x zCbxv~OGX1{|`^>SrEtcelOc`{X}U`I=}j|qtdDvoJEpY7^Sc7x`IU8M%Z&XP z?e$Uj=%2;?1wHAWbM4#_lU`Ot8Th-F70Hl6zGtVv?AMqv`lJUKvT#ORORt|^5M)c$ z<^yX*{|re_C9lxX*l8KF+d1LRq^<7odYpVX4;3Iwrl~1gvXZfTO<L@7NT z_(Su4J^W|v^_y>C64p)1Mr<4B62Q}f86!6Jr$Lz=t)Q&t=qE)6+6KxMIDZ121NukM z3qZGnUJgostm`j>vNFAjSZd!-llJ{I>G3CuQD#$&Y9+<`7*o_6;xHb6qVCRdScSu` zbQonOb;llG!@JpGNP)qS2IFpz!zf>=-%)7I>bKOGz$+bgw!Rn@p|dGVa8iZUM9;M>t^2PUi!)CzILW1Fu1zHNq@7pscG)K)Ir+9+V8|LePUi>p-PtfU@rOKqPhFDNVZXl%}Y6 zm9dRsU5mPldg~o_yTd+o*lveqlv#g(*u9y27Ia?)#sLN&d{-WSfjtP+f20llu)q$) z@6&x0*hF*NdB-g|?Tf9)|IcFUjH}t@1DOTKIQt83E_Pfn9aW$#xN1-q9GILG+VHP;t`!}+BY#)$iazi>fLn$@bb#q!d-l zP)_1gvS0qduKi&o(eBoTW0hJ|E;`dI%wRA!`j){k0bJXa-tkJ`>>QOP9*59${S#F* zLm3++lZQG|0?6FWN`L$!TQ8N<3HW0&sF6~CU66@-z}PNihM%ozR*L701C%m%wOYLi z6RW#gO&9zreBCWR^$+u%jfPo%lfl>LYooahlx2B4D8;%>pa{>q6O_rm2b4*;7jzKl zeV~V%_hFzdcs~J@{V>jW}+0-_P32zT}7a zcDfxG(usMFG}Knq%y!J4m{Vc?&GGcZc6J1QANblCPI;-V7+14=>3r#jZ$VjOadXWQ zUFJ^5+QtrraGE}F9nmvSdUTM!RR(=KLq#1-?@YJx&1_h-&#D*_&SrN zJbmZX=IP(yw|D9kITtA(6PT;Fz-pmq4yDu?(|cVA&9l$Mb}@VPu!&R2U~HfIM_c38 zaCuw9Uh5N+sSP!47oCX%RN!kSuCYobZ%07#rCeB^fr}#$)w-h?O`QMNE{gRBbQ-;e zb*(>n8PiNtokS48oH&fk}SOcdco?YS8GpXH=k!fR5z`3bWBf0xJcP5V1NbSHh zEqd|M$$$1}n2fI!ZA;A@k6@0{AmtW{GTuV5vHl>lRW3C?GGa<@eHRn{u2^a}R2BCy zgm}@$RhLQ15@UB%%ua2V3%#IdmEl^x_b^OUGv#~zP{J3AiA&?ugx3yAi2w?m?3z`U z57`7bzQ}_Vayj(KwEyySj@KBHcHy7;>_<;v!_`L2aHyEf^nWw#?bpbLZU)yl#ix{D zoamQIWHxzybU=`1LlvjlJqP=iF~=bU9Gc?|fUv&5p#eu0K8}`-^hbfdf%I(_nf%Ev z%hw17f;U1+-#>S=*=)HR*pwUAKmg?^hy6dLPK>ni923Y7aBa1nuhY2(yO&^#Am%_1?Fa3p;7%Viqtv8+!rf zWaq|nva)mH;g~4A5HUFm3UjwEPex08PZz0Ilf!dfm}5*VMI_3;nyWS?^WgeybkgbC zSJzOJo=l~-1gn)z&9I)d?sb+W`>4ib#B~x>zEmhm&P(O}T9j(OcOa8Xdm>;36>^>nJb`uZEmdtv5qg|Hpqra1na1nrt>(|Kpg-CSy zKCYVk zH#}C4JcX>rF&a8%o2KK;wocV!4KO}UXzP6ctG;@7nD?0EN80{p=Dh-`aAIPK0qK|h z6U9V|ea9O7+U{PGeb$dbnY^EY4gmcnD4EuspvQpT1$rUqy`alM?*m;8`diR-puYoM z5Bi^=_klhM`T%GP=o6q&kR>;Pwt~J2`bW?=K%WC8)BFqQAkf!92ZLS?aTLq*y&ZVR zvVHFjP!4W(f}Q~iF+WL`kC9}OYReBnXMtjvEt9>UgL1Nx@8m`}eI?1BX%6Ey6bwz?bPFfI>OjFZ~x?$-|ct;04ujLIB!_rAkEa@e65xoLPu7!%e{IE;(_ z)$i#Jo9r;&)1rQ7JB*hcE5>P3_4`YQ-RiL4Ic$T&CZj~v?^I)odNmH?)Pjb0sl$>E zyTxI5IE<5-8s0+=d)i^!9QL8Zc024Fhhbc5zFTQbF|W#DyiQoZ(crKjJM0FB-R7{n z9QLfkwma-KhrQ{r97wzRjhHdva%zY5aTupW)!jcGmIHCz_%$Z@byy#V9pVc?I97`5$D|!+0osFl4mnBlCwiP~(X6Yp! zo-j7m0^6S!Z5px($Eu`Sewx~v8W%2lX2>(CnH*kCmkO?QgKNdjR9;S)! z52G6loJ-@W%fd}7!x()vO~xr34LMDd!>O-!EyUQXdRHZmpD&-f6JNpF*+`0~alq}a zgHkIaQ!tu^*0ggFL-8-KE=;9o)|))4bjx(Nb&P4 zuWMQvX*>~|`V$Y28QZktb7m9%PyhVO4^q#xe09jG7B30qOiSa7UdzthmbY=D3qnej zVMZEP6~W8*alaSYm74y|t`MiRHx)E)ENJZY=w zq*o3eF?ows>>QfNs53EhVS%gG~+tt@F&-~AD0DaIZ zvOV^3!{IGodQvs<45FceQHoPjAu8oZg7M6tzT&qArhZ~t3ezECs)wmSOc%q{Urg}U zVcdHuY}p?ns`7B$OEo6lvLELJTBbekRtlSOFWqseOs0M2-AdH>;>h@R_Wrw->cK1h zcPlYY44d>Bh)??Hxc5R#!`D|#s=`ecbL!lX(VS$?#gQEHF+xxU1h*ohg~2c`vI%=L zg6Xj<6Q_?J0b&!+PhJ9f^XNdOcT3Pe?ylNnCXy^m!`M=bCy0GZ zMVcSOGk?EDcJsFt;ZwfXS|pxKjiNb{A>V%i*B8KbS1-;8*eBs-+1J8}lZTDK=%pQS zq8~WH4;=3YjzfXCFl5U#j!m#18BP3J)lp6?gf1o^w_Rgpa^;#=nl}Qfxiv91@!Nr+dw}6eFpS1&_9Ci1$`cr(-zx7 zIcRwalydQ(L8<2b3uu4P0}w7{|CjN8B^v5$$!4(gZFI*M^xN3nMuw$ovsJB(u?br(U()NkCFqP%g; zU?)0^%QMy8c!#m)Q;a>IhIfs_u6NkI4!hrB+%T+u-*H%*!$RnnG`vcf*hfP~HYUjM zFtJaKc}tBc>aBo@J#NffWlWd{hl%}h%)8E*qTbCgvA2$Sw;2<*0K&w+Jmx)UOi`}| zrh^50+L)r=3os23>@UUyzK)XDbo4eRnF@jAO6e`TdE7u;kd+#D7UaXoBZa6IeC16h ziPf*85E`+NGO_N@Vv4}@3{4}l63s0zq)G-)o6%Y#oG>-+yi`e?@>L1Ks_!;|C&l2NG*mz|-Bq#OekK#jB6v&@@Qe^35sn)Y)MOyay(J`%-(M_|uk;4+(v` zE13E$H6<6vdaI)s+B;Io8ID>okATDR8oH#m?8-tiN_RJx7c|c$~!Z)ENbhEs^SLFo_5uukp=|#oHU=sem!>sP9qM*pgektna0-BcAMWkrK=c zU3D*vfD_HP!9e-5;;dB3xkzQqz&24IkLhBfmBm_vV(F}M9v1v@a zb&N;@i6^sL-o)+S`S|ASrZMnA5B8Y4S(~Tm$%_zHB_ut)Zq{b9D-|m5away~kMN;< znP6ZQO3$FKX4K4+hep8%k&%ZYA{@IPSsWj0pLu=SMBsnGclcQQ@UZmTBp4s@*;k0Y z)H&}H*gt@(?w_G$oEV1$=(8#h;4M=`oVMVS4lAXOhj2m(oi!5i3G$*39)_|2zZ8B& z&}hxVZv%dR$L|yTxZTQ1Z~US@0bnW+>3d#qmUk~?4Zpm|s0|b+9|y)E2X69;1FwIF zJh-n(j)fA=&G3B)M7cY>7rm#U!c8l~p#qb$nMPvUOdgJ9%IS)eY^TQKhn*b{4bJWp z&x-j&w#OIEmJ+xQ@jDZ;>`@Td(xGl+sPWLMYFui4WNcEbESra(XUDsCg>pDQb{PI0 zirqST;#9ah^ra{+k*6qAQI_IYeH1}0x}q#!Bd%6K z4;(@X=`lW|Gvc>}@#`MXO0Gd1u#;zeb}%#uaU2vIjB|$~p{&@%ST%AZJ0~_jwkSI< z-X)%W1o9#+bS@JOFu(Or$>A??wn_xMK7Qe1dcWW&AqIN96!&^jFyU&ubU5?HJreEx zMeKTtd*(59;uKs^nF7@a`!+10(Fp<@PB#gMLKKv_GSVP73Q5{O#$7{EZ1M_Yv~i{Q z@VVvmJ@R$z$F2yXxC}t_fy)TM! z?~7vJIxGk#pja05J z${Vhnow*r8E=!VRo8ckIn>E?LDO&M8!KV%)ak$M_W*{0C^Ud_M=2aXuH6)w~Fa)19^3KgTr2P?%s45v!AzN;s&D8xPb_VRK#cEXyhIvY76T} zrA{9V8L@9g^Qc2{McJxv=PX#<(C~q(F0llZ_m-tb7dDSvRs4Kies$uIv0x&B5lh2Z zSK1OTe!lk83Xz@QtfFc3xpG6=arpAPh;>>_nhV4}WHWrMn3Gw)xxixbTSRxxINWi7UO`W0n5F>5QzLX7(N zUsomb>VyekzfdOr24HE8`r)Ed^%Fql(#4^eTI|p(rentW z+73M)=T;e6rrD)9qg&f3pVdDs19odYK_4{u+HR^jxf(PI>>5yNG=BriwEq~C8kJvw z7J&W|v=H=W(8EFLj@9F5pw!6x9P|`}mw?`acP9Nd&~nf_Kxdlw3ebD;UIof<=7Zh^ zdI9L&psXvznZ5#4KfTS2CcVv!CcVu}v1g6DsQ0EZ#dt8B_>Fqhzo@%}G3izi#g1{< z6z7h!tojYEjZk-s9M(4f8BJkz6b}?G5ce250TG`v|Y8 zEZ$lsH9GNR4hLst`S@Z*Q(131FM(Gbd9k3>1U6|#UdZbXD*2xP<74Y6842o_N4NZ4 zjUOLt&z0v{Vx!nvwRZNrcqDTv8s#58*1!Ma5l$HU84csaIQ$qt%8mMDFq(a6ka-R zs3@5~KL%yKUk}Pe{Re0v=nbI5Kz|B)0_e{{$ASI=^i0t8pyz}B8nhbpcF;wjcYu`IM%p?4?lbL*ovN4mC%yurWn3rncA# z4&wp~bw_ophPTFHWC4m%sjBW!Z48D+PSqCHqvFh@=kaOiSfFrv8YT(=)ZW|=vuJPb zf&pr)X`;S~s|Kf=(cq-E%FXfLQ-@RZZ|HEgrCKED&a^m96LK>(I8fji$Fr@bM(!Gh zN+*f94@XYtd)GMA&tUpUF#PGjH-t+8x9ysIgYN9_ZJ7C3`%FDeU*P{KwrTs!YwnMQ z-OWCG|26ki^B(IHU>PTV|2_OT*3>71Z*-=nv6E@aG~PfbAM|d)?>YQl#?NvC2CPqe z2Eq#dZ!!>iu?JX?fiS9UcUUNdS-dRohtRoX9&~K9B4=bOMW9{4;U-;U3ye}^AYQY( zbjDEpEX&UK9U@7b)PCxV_1x)^j4=n~K~ zK&OG;X7IZW{wsrTH~3!+z5}!j?q4_WZ-S1&JL?<6BM<9|NGK1ZNqHDeQMsj3vGxz$PZZ33r{OCiTY9C!G33RN`ZwoAy`b=B>%dE3q18;|ARNIqX(WQOTDdJg3ndcsLU{^fI zh|U?AjNIk|SfD5)XOoyF2SJmcKaBUyfEwaCEpqCo( zd9WYGLSUV9@^p9S-^`C}-7Q11$!91C(RCw?HR=z6)9o`rn`&d$u)~8sB!xlPh zvBOq6>~e>3eS!LY&|yzGY^%ela#VLzIqG+#Xu*ngGp49qj-wd*MB|P+Al!-dA&1)GstIvA>;`U|n5ZB1MK!cfsHG^>DC~(2Y*)k#5qPYr1y_SQrYKJG>xK$h(N_7haw~~ zj)!5LuuZbPFYsH9pM8D~L&W@uWsdULOq2L!+AkRjz_3X2qKka?pPoc}`p|ug=a@G| zaKSn27MdiVPw+be+3J_p7$-_SH{iFOEl3`f)|5qdqD!)qNZI1}8hj#*DX)2=jAR&> z3!Xl*k(r@ST56+!a}yeiGERQPDtHEn)4AYRQO9d+k}R)bqB^RTn2868?-fvChOsAz z2lsVUBatg$gpB7b@YYzn{UvWB0hs(cj{6`muXF(Bk#aG|bxPh4;aYQeg4zNeeQEdp z*uB$kLovG#<^r`h9OCJFK>APW?ieFnPKBqUe$i51_oC~kCAQRx z_YPc>I}w;&%xrQ^W;NwI%3pl!#k`zL;WHTN)M4wVcw0}%Jgh5ziSHq(mC!Q1KY(@x zeGHU|e-4zz@i=H7&?i9IOjV^eg)}KEq)8<{#VGM9_Ag_Kc>%B=#kj^#-Su=Bm(nSAs>8TMQ?Z#2 z<6daRxEg|{C{`0%><)*8&;r#RXNc5Y4~KE#q+&%5JHcUN95&8jw>pfc!l~ciIc$T& zo^{xEhbbEcSL}rw6|vMffgAK1zYf>sG_AYlcH~dzQyK$c!-sj!hdhksk0c9^nT53a zHA(bCHwE}%vxIppj~QEae#5+q@k^FmAcLOvM=ja5p_~S?!+tKWwL9%72Q9h4sF4@| z#V{3C(k!VnhQa^_pwka{b0tm;Mp`4|%*qYH-NnFWfaOSNT^&@;;zj?UQFOK?$ci*7 zqqtZTW`K-MMqDzqNhfB6&HQD%WEmW3@czBDT@C={w9O#U0?GTXu zQLKtk+n8t_6}#DCw;5B^d)8sw9rmWf-gOukqvKmM6HtyZE`p7`~3#((+a| z^|m@Jn%Xq!!<}?&M?#$qglb^l3ptdJ9ijGwXS_-;KNi$Jm&3rWg1O9xErexBw};_3 z6~9b-4uotk{|QW-q4h71W|$0PDSp`QWFFgs$`@Q*RU;#r4$Gr$_1AF(&w<_l<q?v_B{|-bycsL!*;N z;=L>AaiF=N9OUMK&H?QK%CgP}WrVrRFNdd$iYX=o4q{Q+SxZyQ`;D=UV)3+f*Wxe^ z1JvC=9L8aQVqA5i;c>C7Vq9&a*l359IgEN*bq8U=xN9$%_ebayk2y7iRf&=2aoKW@ zD({V-2EA>5eHh|;-{xzsheIsj>z<0D7mANq9;xqNUHt+npM=W)Bt= zHsPd%hWw^kdsDM=>xW=NM+)0emNK+(Q}(V<)95g)TMrPmMno8&cTkYC+uy;&vFG#u?A^p zkkeiJ;)X>PODk(D7p0HwuBThvs5u|;BfsM@-7^GB>y0&=2&VNW40I226a0<=R$=FU zooq&++u1QGFy)fHY+ETCqQof*IuaU9GB5NjYm9P$kU%uPO)gmkB zNGAQ9IqlWq?p$*mjE)~z;2f|~zPC#cHC@-k>$%>+8B5}d!JaWdoM!6$OXxb2?(CX^0z}8P0V~_Fv&pE*4GgqU~rDmYVgiJsTP!#g7#+{ zdyWz7@LmbJ9P}2@AAcF4f(^#uVc%a0V-J*jR_1=digB;}Qf7?^=i5 z;xLZn^c&ptpza=Z*xL?!&tci<9n~GxTk7{{hYfcaF9T3_qa9Y|umuiV?ywaOd(2@^ zI_xEfz3ecaFs_C1=SQoR&g?XWwXyL%k=ki#Bz z7&kbm-)#=dL8$rAp2fVFF-5(_FsZv*W5OAc4qN9i${t)8mRP+Gbt83Ml7A<~TSv3I z!P!I&2Q-}?ZaO`ZdZra=$3pwjsA~alS9T&dkjM+BMnz(y!ZR9rtQtYMAy%|!)pBuB z&oEG&o(wXkL7K^hG}E=|lH8(gO_$_1Uy{44YwC<}DyM05Zqw=csRT9z$66}Rsn2eF zF4$Dt8>`6>$qv#21 zYyHTqyMuf3h83)nxEPMLb0J6KI_TMu32XpqW~>1)E$lI(;Da2a*VOC!M@E(0l;Vn2 zBG$-zA*7#lpKbGkzA0HC3DW=GOM~a`akl9pH|7!j`W}#MAp_pegln>sg=O~0K_=TI znl~u$n@or%L)iMKfbQov&BO8_SBFRMc7ugN%GGl~IrR_)WkkDy4gkec{Ny0e?x2G~ zaq_LK7QvcaIcu;tCle++sg zDC@~lpv>1kC~f81G%44nNv9$d;}}G-e;QLv&f-(75H(WWaZ*AtPDLnI;xO`R#W)MA z?zqxfF|Kr0Y@Ne+SchT{JM1xsaiE}n|LCxx;1P;(TblX>hry^Nf>Fk3Igf2*YO*Lf_%jGu<2H6+mxdl>_zi4Lw22`tGc)Qw$w|U;}cQuXWj3D<)e}m$=ww z9%f*zW1Dlf$+M}5V~MFA+>HjV0~fX%p20*1JRr1#MqfEXTBBb|H(*%%(&%e|dRY(! ze|4YLfrF&8j#5(x4SuHDA~Wx}$(PY&%IhoVftRTW$#;_vgqXEt4KB4K@>u)$Sl$20 z`s(#XZ<(QFlv-`9Sa1Alj&XUq++#8*SeZ8kbTH^t&?7;ogN^~60m`&b1D#;rsr5Po z@2rQkXR$UR;;QDLN!1)QshUGEsyP&U+L&VAHi!MiVXruh$_@3KV@y%G5=*gR4*P*~ z$IVgtjYfxE>9E@!cDKVg+o|C_;;=tEY=^_%b=XdaEkY|*zZV)4c9uG9mBVgy*i8-- z1u0J0h%}e(g~IckS6=nX&Fv67kpbAq$fX^PJCiMYBUD`U1@<*^G`)tSkj~6A6qL0E z4&))fVXw}2@{_OdJJPq@i+<>aN-upkWOc|BPD%)5@%#+8J0~)(9w6 z^y)muo6U^cxL)|DRauuh9WOYq&nv|_b3EPA=Ep!6KW;%_{Fs-@m#KWNo7C1yJNgOZI0R8|{T@(k7s1H3}UfqRJW7J*5n4(^x!v;GHP1m?%Q&Yd?4m;Cf za~(F{VM&Lrb{OSO{qFS+yVqe{Dx=@%4HlyA`WlmL=SQ=|>}=Q6_}xs1CBY z7BH%Are?SYswP*^cWgf7)~w$C(UScVC|1&2`GlXq3RHf88n2$l)dXLtaV9F^?5b!vmk5!qLOb#+CWl-5*Y@z76hEll$^&C(J+;@3<(gw0{ZrYfHMzLXDN>Fx2<)a)1ZWjj_aqx^s$0|Kg68mnyc%lY*1!xL`c-&Ns#QO{ z{I+wNvUOp)L?ksMQoOxxAm(sz4{>YlL8)$`XW%{bJUkU`Y>uB)fg{7rGAITvMr2_J zg~!Lhh_g=cVI9TTRG=#MN+18Y=wq+I z`zh+X-TyKN8$9(KU{>0L#naUohGk=(iGvL76E+Lp+ci3yp;nY)k{M>bxJ%DOus@;j z&1P@=6Y^V#-{>zi4pdXOyJ(Y{QYns3#iWgTsj+p_uA8 zUnV;eIh;*ch-r^tC_NTCzh=pt3(x^8zmn>LHCQ<)n!%XPVHR*qwq8D|Q{wjIz;RM!n zbxAAl;3S!zf#6q|1^yX`PIxKhTGodF_-XATcU7qZswW9#MBXfkLi&QL<>q}J?44q2 zrvXXWZpeGt?p`B+XE)-=w)8bee=#NyB`IiVh2qscF+{{J~Fm3851eS$p>}E#bb(b@wWV=a zU`)8;(_up$wh*S{vRH15jY&^o(r?`6-2K*=V&3l^_N2o$J8Xx;UUQgH2(m}7KQNVz z&Kwa0j=&@aw+getL`ht@o3rI3%1IF^*JSP~6`XvuLN1E+#n8B^RU(q)P1vtVt zCSsU$e;j^=opx>)FR0%~-$v$0K?!Xf&(W^0vER3S4LLNmWgS>P$6z`RiwWoB#_j@O zls7ZS?}lS`7mnE(yG)2D4TS8nK;C(RPsg24>DW=UwBvhzq7&9gM%YIJ!x`I|jP67O zk}wa+=os>m1n`Uo!{9qc1~RXDHt3;v$G%1pDj$HQDzRu%B^FIltRKM1MuOdMOi^#6 z!=7>&*^s&;t5LsSISh=|U|g%C?zmP*-JRkv#M59rv`yV{)<@ml?y$QZ#tIE(HN;eV zMG0h1+zK)&H#MW6DX*!lpsB17HQ2Jpw0>YL;$)w}#z0qm{B?PN!k)GF*JY~VM*8Y9 z!$ihGTEHsT&g*i0ZRMQrs?JgQ^!`_o`o%FjwqaG*Cp{U(s-KH$juj;KZgL$6*|gbq zf+~n+&`~Bsy))~DdZT{m*##6t{evc^-8>KkI;qVaJ9;|eXBj^eI~_@V3b5RU2Fko; z9cNp&<=E!*n-g- zQxvOy)JM$2_r!11`-j6mb68*02n`QHfpIt1VdEY4pAOsTFvFxVYcn8K)_Z1ZC7E=# z%*TWqSHwLWLOd=qL$`hKfDlAhhAwkK?K9LEY!&d=Xo@v_tbJyUCja6j4hjM6rnyD!}GG*s!j$a?HTuB`(@l2CwyFtVb0>p8t2@`)Ye~?ZKr&m zg9?pZA4r2~r4uy@;OU`QjG}pVnCv=JDJ6VA9FGp@jE|?kPCjmLR-hLK+ez)W>ue~$ zSJ||X!L!ctp&o(nhv{pY;mgtcXBm`)`Oaw$#$h4>JP_`ZEQ{`-F;I%EEZ2NcCZ6xq z_)&yqt2hXh<%W7It>P|t)+0A)(jzx$ib}m#3@y!5j00W8-f$Q%15m7+G3hRQ#URoe zzZCrxqv%Id)O+1w6ap37>#%PehL(aA6vMZrMi&&1F09L58!2fTU9h$#-6jeVANx?W z=Yvnk!!`lQNZvmI1;^;H4}gB?hLvUzN>ZPUIz6tce)RJCeN=0D$QCd8uAbVj+j`1U zV?8Ypci0JOuULTqX_{a64$M{D>K_zmC)JC5^HVs;lnj^_zhp2M<<0b60E)`WbL?a& zw8Yed2N7LWH_@c(CYqw&TDVs1N5-W0qA7N(!^kHUV|`J-ag?B9xyB^gL(w*+Ru-gQ zZXO*fE-S1XoY;`lxGCK7W~3sq;q-sSwk9@={+-{JeHH`6CB z!3jky`wrU5v>d0d5wt+!&P`Ifb)+jkOYxe4H;6f-VzCE5Nx<|0+(*hg z7Zv7osBBD!dG=k|;DGh5#5g2j93K6q=&4heojn;9jw(jY*f8D8`zn?mlwvD5EJx8BN_m5;Ryphn?pz$P31u<%dOW zrpg6a<@!jK3s#f)fhD$8$F`!HB_3ucU7c!$d0!(IJ0Zs0;N$P5{k^cimma3xq=wPx z@1=u?xnJMJZ?bn|$sD?`8aWLIF??r*Eczc+NJ`|~*3AmpU(CL4+Ez%b*^i2&V<3*^ z{tua;)XH)RM*lDmSS#`0jiu{R>sSt#f-;UPKq-=}1U($|a?s(Rt3b&W`Oe1m5IkwG zO_Op(nsn!-V%v?osQ0ch#pGNbbr(S?sXNMuiXHB-qZ~HEVNiw}cjSudmt0Z(np#@4 z&Gy^2mYyDH+!Ta($(pK_v_fks`|Roz>nkGOL6+>SmaTKe6c_5VUWCFAUZALp*SLv!j^41F(g(%)CxTAC?KVtHGV z`3Mc6)Y5A}Sxc`49Sr&tP}a&v;7DsFOzMn0(+`K0^J#=ZCIj(hLb9c!gxtd)wPR$@aiPl0U3H?Y?KRos9ura#s(;if6*FC#LW&DUJq zRotiXt(+M%8@~$RcI7eQg@dPIf_yh8*Y`BUpDclQPK2x9gxvB})RxFA%jI291#L?s zxQtwNqxd8*yPDm%X{hnh_*J-JVl!sl5$H}v1V=XUx~tuot6zesz-`;oxbe+fv~Wtv zQK>Nzb2uIDL2hdphhQ@T3^w#mEzO1QDzB&w-ZL$q%*Ge?Yzp$4^xTYPBIRu_;HX;@ zrCPYT8-z`UFhl(u=A5ne+2)s3bWpuu z2fJ?N3_CWq*;^!vQ@!KRK2;$Y@b(Bc0PpR!(99+3V>XEWY$T~WwD0MYb)nj)L|vE9_qr zU^8lrd~`G_PsjOxW*jr-3~`gbh#)`XGggb4e4J{`%&4jUGqg&ypE z?VBpsLt&=cfX^0BRcROiCfW9%2W73=4$4x28bVeVpsPvt$NNj5hZ&q=!C&!yEa)qs zBS2pRWl5s*kyQuuKLhVju_n(o_6yDXMW9f4Bv*mb{S}~ee--H8;l3FZ-C6Pu(2qeM z1N{f+o9mAdV8w%b*MgaiZXuB(MA$6k&=xgdy%e2c^3`piqY;{|O3# zJBc{4!pL2>j2HPK-Lcs2M7ir~1)6lV0!_O8MzLMST~w-_VhmH=Vf}=dVpL}v3~MF~ z#(}fCJKtf|4qN9ihz-Ww{SJeA%3!ZJ>~9YH$YGy2tZUGImlsIrcX_w0#+i4^D#raS zij8pCY=@oiux5u{>#%zq_8W)s3Ih!<+nA!<0A;Wv9MYV^O##XWqr$DDr0Z!NRe0ZE`4mGCJimmR2pEq-(%BWq)M) zlwl~w+g^?z)JOYFCWQUP?cgK<@BB)vN3~8n>t5+}0K9ZLRLo{aS~QuA4o&R3;c z{>Z3ELS@`LiZ^z7ZRP{V+q&33vy0R+-9|)H!j-b)vQ^ z*e_Yxh*|w_m#>r_xN^JuE*LKs9^+=yI1h!u_xYfV?*daO_aYivC^TuI(4><)ig9vB zu^q+~ll60op(Rg~gI-e=k<_wq@$0owTsk`)E;$|6j-3bw=h?@dkBUAUjgQ%|X+uoY z%Q;rlv3V{wlogK;%aiRE9^_X`5RbLzh#)97I$5zut(|@5(ew-l`6rL{?;jDokBaA? z9A}*9mpygA&g#oltYYn0VXUmnV#E0dD5NgXG3@^u4Dzl5q!sL^p}M+?TR)Vmu$JkQ zmhb&*N3584nmFw0{MxkI8cRNMe1=?k2-1`tjpxL(yNB{{)7H`PSOUvQvk${Yr${J@ zqcr-)yX3`#(Re5%n8`yI6yrFYu*fju#RVy*bFz2(F{a7U|R9 zfYMRUTwBG6cA~K*L=Vh3lWi0oExSywL_JcztSe8Ie~LyshOke`g|L~m_5infk9Xg^)hx$U2$blzZ5 z!|^Nu6Aoh6S6WNa8JpQBPts^GAmvHS!|%(JY<^q66dOC;7O*d_v44)y374>U6c50c z$h+u-u_!=Q$lw}`2%YSQYkUf8+fTvhcn0&Mh5(*R(8gKEE(2u|-vUaWaTRDGXcK4= z=z37{5ZaSxK%`2RgI)`ICg^pbRiNuZ$xG;t-?i?c8Fx`H3$;)& zPFXyNJM1Qht#=qlVEPS?z%)FLyA*rNVKc!o6g$V5qPR%i zVmz*1{eqv!9;V?NuPVhnRit=wxNbQ1A3@F-u`tj)y>03gSyz|axHr(y3mVV1vdG#= zZL?dEY8>~|!hKC^;d4@ac58rQ4S`hl+BgO-blc7$a!! z30EsL-y75J71J!8-hmXY)FoAZw$)YN(hXKKIzensNZ0L zTeWIym+W7fkY+9cn29W^t&jwKg3knqr6=KIqc}#EmC9snT_FN+F$=aXx3NX0BVltw zJSVxX&fO+nR=J?2vwqyJDy>H-8eg_i23>$q-1ORryg~^yvma-ZMALE)^O@avH_%HB z`T~>}%=?!?dxAnekn9WkD(KOm?}45Ix)Zbn6bgdmSWw!J1KkBW#o(+@Z{Yn0p!7En zl>S(*^v5Rp2P8x1eQDBpUz(!cuZ?X?)~PDSYOC)4XiQP>Gly}sr0)8nNYq_{F-1L! z0g4^#FxI}~k=&TK(3qm$ea_wQoV%?Kd)8rSdN}W#z4?~XHqLNFn#W|H!}cQ=L$oz? zX&yJYLV(1E5Oxdh3^z@R&qysRXx!T~apiIZlsKfs!<~1l5pTR~NRp(UYb#ts1Ma^H zmg_absjZlrfM?vYyk;!?Aq;#o@ILiJsd0sg4HE)Gw&3Q7;;o4*^MNIcdpGo?|4?b} zlo{naCEQ7v--w4kd7o<;6B~Lx+8ea&{afTMuW?K8QS$l3hO)NzSw|8Z0%>eU+pcAa z4R920c^eCX%KjDGj=$gHMGS3XDB8AbW@5vPkaP8|SpLhn3Rp+OC8Q8u8HNV1s|S1r z8@FVlfk)Yh#n+xtpg#Q4+b?~ccz6QlG{*!&lX4q(2I}+pC#P{|uqkg>PBs1nugU`} zgA3dU9Y%&Tr?0r}+qSk{T_0s_L>}(ShKr_U1<4g{-t79JjhA7kNZ(XW>I~mb5gt^9 zwgENGxB?}GBo(+Qh-F-T4d1@k)1^z7K%h&PU@#O4hqJP>vvYDHk!kQc5;ZSdIONG< zV*B7`n0%@GI{bs!;hiG3Sg-4qh>3TZj1p5ErqN=`g=vhK@?jb)ChlP_6%+R`mx-wW zrc=dK2-7$*;gcOEop|;c^Pg>$5BWN?gKkMbLp95^Kj}z-VhiOlOt1OuFJ-@NdWjQY zYWCT`BKG>VPhj7I5Bc?5j1#|2I&5G4LfL|2wyDTbKRz4CMBI zKs&*qS{fw12szg`PFsHr&$0FKpDeW#T zBwC3QQdUE4o%BmOG~_fnvO2gnFcR}pc42Kbcf?jy&Y4qHS64L`Jbkou3gqojpx|)Z z_H#@Fkdp4S5&P|d!%^#IV#D5Lfh?~n5W-36JW^-03>l9XH<6%!A!Z)%yVMSDHN4AE zu3Sy5?*Z=yc@K%$S}$(v7R*~*Q8#}uK>Df}0D<@oRu8)5^*i z2~^fJRLPtl%l=96vjeV+z453P(~%d85yB-%((ln~jz`$s6-zl0a{_@r&_7kcehGZ6 zK*#zExVaTE*y{E7K14wT1EtU*uhsxsHYTUW309)CsjWKv~(|1nmV{71Dbe z-p2a?yuSl_n8AmD{sZslfqwe`vG*qMRTbH~_&zy@5Y7oCXutrSEsu3fci)v8rhprxQ+fnEW+5A?kSAc2TS2 zci^7;)7=A#{UzgUx7?@hkD!^LPk?g2x<7*+3CiY`1Ns~&_p93k+79$(P@Etw6J{Mi z-@|<;(2qbngK{|41@sG0?pK$McjSI`G*UPYl;R2Zt2+f0i$voCLAhVu>7ac<$AI<+ z9S4f-0pi7=LqVyM83tMgIuew_tWlshgN_Hi6|@i(HZk5gpyWF&pGQH%xPJmP0{WE0 z{|q_^_kRT~2HgNU3v?eScG#5D!&(01%+>hNI*g=ChmmyYvSY>AXDPZrW8aC4~PU&g5YYn@>Fus+>ecUkixQcBx?4V(2^)9{6&K2`00q8T%G%Vk+ zF@_Zyc7b6R8n)W7HHQ7su%`@r*RT%^>jtg8<{5Rveeox}x4BxF|QpylKvbQ|RELd=>NN zIakyxhl|oz%v<4HQSVx~D4WH+8=NcZ{S+=rZZYo;=Zebw4&}O-Oij=g6)R{;eKGGZ z2uD}c+XNS7!kG7>b49(k;i7~W^WJx^sJ9a?N|7;dmvcqEZ{Zpx7`l9MMZM8*>Gv4x zTzEIb<{1{K9r|yE*&%k3$6}U9=>@8HXn%2}YV5%Y(*nIiqQ z&id039S^_(fqpdQ{@Ba>d!=f8#9xQ~OCWz2K_`J`r8_?- zgwgyi@-DMuh}BmQy6bqdgk4P}blOu%BRoNqC57#^X}kna=;! z&V`LxjW_91<4wBMq*yU_x{7_|TxwFR7`s>v$Iex;0fwDs*eJu;$!fUihFxITErzi( z)o{Nt?01Gi<>Q@>q5`9FuBeB#qb@H!oGa?FbJ6_e8}^@MAQQr59KtlnN??=!KZAi# z>PWSIPG%r|4$D9eXZ`$t4GW22I`n@V3)zk4_gxI+*J#*eAdiERfj|}#2J!?b8OYP1 zWW?AZUKj}M6or9cpLk&))u3b`&w-MGJP%3+vKf>Ne5+ zktYm<6CZS84?wU84TrrET{toj#mGQ3ZYl%8day|8q(A}**ONfPAXE7UpGm=kb>XBY`NnrGH&ebb z7rLMS4$*^KYBeo-OvIZ6qQ{?_5Iwp|7$5v#xv+roei7G4c$>$TJip&rpm!L$O~QM(&{)=A*pRglCX@&=vJMgDYrUat{r6nqlM~ ziUmAl8kY1;&8QlRrBad7!hmO_k!MT{MlESLo)%#WIBH1`uPeil1@jg8A-9|=>xr+c z&Q9ZkzyH`sWf_VznIVv2v~UOjdDLTJFpfQCWI7;u!0Fa{i5DvY58C>cWx zl#BrrL~#}q=A&g=whbtSi;keIW4WLgyL&Q*wZ<6eQpP}+F8fyO6&FsIeJl2#LQIE<##i-_^3#tag#u|36VKWT-pTIyJwIw=yS;! z^tt~@CNK(v4ex&l6Sx*nrLvd>11? z1r|nd0w@^)&Z`ne&})IP@RXeq`8fhOL9^3}FP+-_sTKzye)*T(Y8hX7kr)a8#if7=iBQ-J@bTYydj@`A1`a zo=m?LcJ_`=(0!V1$4IP}hCx&IGS07`ee@CZDeP&Ju+qd+pk+w zj3w?aC=|bA%gJDVFKJ6Y>JGcQ1Z)>d>8(cv>4Ngxu(xL6p6T#+JY9$IE+{yItYqW2 z|2Nz-$LJ-+hzdh*X=INht7`m2ml{9OrCakU_Bi4xR_k0b*&;}>U54$ka1qobjho?I zdbWyUeGMCA;f5Ht#IU7?U2PbrqV&1j4ExwHPB!T?Aho%0Xk^^C3TOz*E2xANoujztXXlTN zg;(Iuh88IK8SX^!P57toP*8~1NL}2(XEH8Dst%1c#7QM3mq-&h%uZLQVlh#|h?rT` zE1}=7Z-&g~OKG*G1UufN?ZM$%V5*5n(EKU$bA3;1G�tHbRscuETDH)%cpLR0Cml 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�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

7?ZU=Q;=)E;ZrO;- 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

ZabC`&Qqy{nyBDdd(sHXg`@=uv0Jg z4)!xrnWzI2nGN|%D6(tsAUkMlo~3~(|6e}xpy25&0#Um{3mL|xNYHiIoUCZ5X9&>SnMYGN?tHwj5U2#?lWh^>N3q9XM`3A+r!OrL6j@ttfg zMqgG#++~PqJ4EG(=h8ql|4G8CU`SwL>}x7B3{!)&d?p@m59E&`rGccqGyQ9HWy0l0 zAq~vqoN!;IO``$YZR1FGOS2M~($Q61wlShU1`o0~mIH~XKNZKSG_xn4e236^us1tx z>bx1J&kA2>1|C)i50{2`&8AY6N9k|cld8fl9ar|3qeL_xhp+pBuTdcs4eeP1RHU|L zEBNWeSYx0TKYN^Q{}crG;M3$=3FhW=E1qlnaBB<2q}sSAxV1mf$u-)hh~{9|6jA$) zoK>~27x%JMy>fHOzee7Hp8nOD|7scE7xf;7L zZYSsJog)Xu?lcHz?v8hEzH{d}cd>JqIj3C~%}eL=l3RT^LNpniEoqoki$14 zduzM=8a!JCt&~(HToCu#q);M@FAYz#Kl`Sli`e; z8sE(X-45d}bne#JRH+5TA(V`C&*Jc&aPH5}z3to=&Z#x9=W4*po}rrGIMw;a?c&@a z&MD)YI}JXWyAzz7=G+<1&3EoR=dN?^M(0SQI6RGH*fWwcJP$)@-*Oc``|>8Yf!nt$ z!{4???#OPn_|tbl4={+Oh2pI3)J*qAZL)TIx*+;}$n9G4u{>~gptBX}B1u6-q)@Ua zc!^d9p}9r&*tzp$XHh z>9UG0>6*%s6*cKJD?xUuJiTI9b{*(f(VIJC`JI;TSTVJ#Q*eHF&xti1D+iU)6?4j89^?H+Qnpyl)WaUkJVn;=K8Ki=_I$#Cg@a zI+;+Bl{jxcYf@XmX*?zw36S=eMgp!6?(NUuf;nh?P4A|pQNET2SPrwqd$kqoF_#GQ zZ$MdFQB*`VLa>1wZG?Hv%d7CHNU=yLE>bSX*KsSkRuKWUA!;+MexT<|ovwQ5dT<&D|x=<(>PnbIYAu>D)8UZE)_d&i&iDjn4H%awY)z0B`4=QLJooW@G+J+61|X6K%EZjE!lcJ4LjE~O2O!;4LY@xBX4<v*6n|~%{4JYI4-UZ%4b|IbHPp5*puAs7`*d@ya+w86>m6{`BFT3;VvY!;⪻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 B4PfFG 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 z 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

w#pN*S;&ME4 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

XAD@dYW>CT>1l&M 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

kuOl(d(*mWN>JxP+WY)zte;Hgv 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%0A*La643YPhsIh|1ofG}B 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 alYGOt3)3=w>?KEX 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%0DGMIZF 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%0DjfU>Rb2b{O362!myW zXvbKt?gj>c_W=3a=wHW}-}eETvIl{O10Mn&348>|_w^WX1aJv323!Wb7Kpw_?6<(@ zfy;m`z*ZoHp<42aNlZachm+XdE?X^uFwk=zUX> z(y#Hu``_!kzX&|bL?eFlS)}D)TO(tJvj6M8GTqw^hwsCO*XIr4*(FFcF9%31NqrKS|-C^FY#E7)+jL{ z+>Bhnglq52elRJAy<|B1+WmjnP39DdYm}sc%_eh{{Q=&4U%Sh&=YX%Tm*#!>Z@=5j zapM1C@z1tA9zUnQ_uhTx1o3@=_~vT3xbI|jbB=KL)2~9yl)SqP$C|8bb@+|)C5vA; zG93(-Z#zCRjkjs-Hm+CC`9_CdKD&EIc~`=fF98rNdnYU4H;_nL8h4!y@t;|@bf zQ?8fiLRyStIn=bwGVUtlZZqyq;~q5b5#!hv=snmLXnY)dD)+W=-x$ZPp!!QiyP*C! z3RMnmy~jOaT)Z9m3QyKiwLBjj50=t-zu1oa55^4gf1z3@nvQ&Q_Y>8Xf|kr&NO8J! zX4z(WmW1s6C#gI$5KC=3e040f48HI3IW{RyJ}=8BV<_?Xo+x*89sy)5_;$*7H5Z6$ z&QZYLK>T9;fO$aXS6?8@>q`8zywa87lo`j7gmMdvYc!5u9SxiAxiBs`=lsyQW|zNT ziF*#wDjLF1p zu|S&3&aZ&K`YW?D0*w>la*yPk&7JT76>;~~`0X&cG7iRzjtCAN1(w%-50N9+KdyM0ng6b1CbQ;xj8Hzrw*$sk2XK!h12{Jv8Bg zrR(F7bw*TcDw|T6{Hl<H9WM;X<<}__%$GAsP_eyW=%Y+xyQu7(pEgu8oZ7*bqB$-A_%Fhc3D7;#C(QKI%B7I+bwUk6)_8yIhaKye_a~4fQ)~ z@%IPu_dQ%cifbSWp1LSg(hyVNQh$%y)o;ypFv6+7Jh*r_zjHoZ8X^_vU*mT)93>sb zb)Ul*``!NpUem6PUOu&^EWX`RP3@IaD{wZeqPl!yg*1!rNPo)n==B5; zp&UobIp<)|?%;SKh2y59#9gCWtzB_aBgBhI8fvQ9hM3VA;Bl%%)B~`TcSqsPLDN!lK$Cs}d>l&B*$6AUaV^C5Dxnw4^^-An^t2h}e1|X9dC<4f zca%KF20o|bWi50mRipS!#Lhke7ApJBcdA6SkA18b;ePAugcXsGVDhHQ*AMAEz1tRv zrMi4N-b-B6wOIV#DOtd&tVMGEG{)L@LUZ!;Zm;W|$5&69Sz9($lE1*a2*HRiGCTnu=NIyzXp8-wjB$Ae1*RT76M)1NMJLNnOmW17oYPq;E%x3K%`j=9H17(#^W4CJvQ09el;)y=L>-W;9_7m zAmkYo^~9b7LfRR7!Mn~W|00~Tfum7X?VHh+Ap#iX=6F}tP=Rs_jl0LfK49E)#@g_ZkuuJt?+85^Nn$b;#@guTWHwhjXTM>k;a{E9E^*2VJ|oC8sqAXdmpYb_+`>e zhPW~u8okx~7J4oi4rQO3m6lc$V3re08KHtjDRlFNx$J&NM25eD{h)~Z@a+KE?5d<0 zBMZ8@J7)9A;?DnC_Q`~Kt%#e6h-;6Iy5U~iBI65Fqi*Wzh&vj3LR)H6_H2o`-Q$Kq zOPYc(7mEJym%h67T+N7%-W%Q?lrQO~F(MDAWPCes!#-pLy|jYMRt0g&hAY*f=2wtVyAe2O1{wi z!s|ih5?yG_E)JB7z3V>bSvlt%{psCq$mWT+2?zs>L<9rHLjwZn

)s82!^S$k3<ODBoq+Cb4a47aDaobdvBJ7Gt^I5sn;9F+bng+Tfvj^^MItwcmT?UCXot2Gc!jYy& z*#J~FJ-JoLCqGhPOVRWszr_+aRRS^e>4p$;&KpIVPHoF*!q8IOM{@Log~wAlJ;aG3 zOb?Z<8iX`bNix+L4VS8TErN@cJk?nY7oRy{KX(Ump`&mGA3bzlp{I{u?3c?wwp)2s@*rx3G-yf?$be-?u1p{8^xw>?CNr=+%A zEJ0xFv2Ln%h*?`W^?*qPsa~Tkg2QYelOC_3;)5dzwiWE+aM7AZPrGA0#(11Y^Jn1> zMYw$r1kRA_2jRMI%rjWdZ$%szbwg%51;|4Vz}S}TUjVvSkB@c)SV58$b6CH52j&~h zX~gr59lk=)%p2?_s(C}96NA^{H_E5OmqaHp1~z{1owMFk#zNmbkVi4*>N&t+z_Gw{ zffoTU0HVVcy9ihYoD7@-yc0MTco%Rwko9sFka<`Qe8M|_3OF0*YzKNEleDu#SBBV& zQ0{W?Dz=+8f7Qm#H||>F?lF!XAdT;@#{J#6EykgX==uA=xPKYP0gtAI!Y+-EGsVjF zG_JpK1;(-Dt3Q@U4a-iEa^sA<6E3P!X0nA8R|eODc>c0HS3;rU3#9Ip4ukzHa6CHW z_ji;tJ^0O5s<2z@9#(ppX2V^SRLt7sP9 z*hT2qLJ`R;-`>qT0=`Wwq>P*?utItSNSr&oTbxX~TcW)7ONx=tyBOsand8Y3APYlz zq8EObSgwx3MJ-o!seMxA%Dt-@G7eSlR^#~2mE$|tu(IvA^oPcWu+QF=FdF(n>7>=v zIfmAAVYK!A)Dr(IB~2xHqp>w-x^5{*!6dARLi)I+1pOw6>{4+P=@CKKxn&u%qNI7~ z%i%!r_GoZdpng6AM1$W2>g(X(XK8H2znfjIanWT%Zv1dC{&$uB)uO=C5xYZ;YXXh= z@cD3dps^3{RsW-}F5Nu@7t^4Valwypqy|=O4Xj8Du9|azJ3Kvqc&dNpryt|KFcms# zS@5knFmpPhC6qtnS@0YcMBSFC`(`Bnje#2?yFM$yhT^TeQ$WJ}#2K&<5Ut;xe$9Z= z#+Lcm_w$Xwij?50d0Eijj?}M&()Rkf|Bf`LZh$WMT5MjrHn^(p1h*)?ZF=P*$Q08f zo4?1^Eyypux^*6w^RH}6n_nDhJ`;vC*Ux>6q1|)WuE(CNYhg|Gu)vD*oWP3WWo~JD z{-*rWmhDI(EF3fyV>`p*W%*mZucN=Xg?qJ9=F1mgd4=5x>pDR@yv^Sy4_v!cY;Agbn~&r7R7_@6X`i!xb%E@0j^gC$Q?R18*QcPqbEHF6`~kkY zAesEM-qgM-PQ7wwReX+f>ZFO&%dqLyjOi1x;8)a+`GM&;hnc9G=gNnRaw5jednE4; zr7FDLc|i{Ccb*HMJ>+~YK1bZUJT57!@;#2q!xh8dN+8)gPPYkU{pO(hQVBRv0&=1D zB00ZY0>B7zCd*AI2u!+3 zk|EDA2zj)GeBGDhn=bMpZs=Ahce@O|gdE62X^Or`6c{*vLe0|dKD9KKcxJgVqZ=hb z$0FcR^d+cz9FK0QMRyr8o%-7piBPtp3z_3P*>&;xk);{lwW-HIZ#xVj4?Woi2KQ+!8&#q-G)>l(1KPF_D>CdVc0w@@fXrD_c{)^|K~ z(L4LHq*!P{m^Mi@SXhX@kx;#nF4csN-)gv1h#0zHY?Ol0K)~q&SuG1zJO(vG#xB_i z$)RyhE^>&wAadF{9*ZXU*XY^xfnaWMat!4v3FJ5Mdr3nTa^w=pV@?(8E1QLL+H>oK zuYV`$R(g-kweT#tELZ4=;5Zj0dZ@?6gXbfQdrCHIvOUcmK6kDJ>aw5bKGu8ggc@M7 zB29s$S^wlD-1wRuoV@c_?TqS*veB#yNSbQRBv18GlV&VJ*W#C?NwWi|4@&|yX0{!h z@Ua?z)4M#L=DgXSTn*&w#}+OzmgjjuCT>3Pbl~+scEg&1R|C7GsZ5S$z5jsoJAmvI z-35FUhz($3e+4cEJ_)=ZxE%NpkVWiK;7Z_Qz}3LVfiD984%`e}4%`ZS2KYAcIp9aY z)xb}IF9Z1j-2&_id=q#u5KGx&M|kJQ0{?+?u0r`Ia47IyAPdF6fGl#K09iS)+%3iu z@EMTJQyY-osn3Cz0sjrW9QYA%BJgJ*x};7z@&R2<$qx)ooh+PFXZLGde+bwe=g$Cp z09$|u16Kiafa`(GPqw&+#L6u;?lI$@FphEo z_19t?zu3w#XX(nIp0&quc&prDOt+-3m*>jBp0aW71mjpS)E|dV8W!Dpk7I5s*I?X2 z<0w1Uuq>hK?+N3cGVWF5-ZbtLF8+WsD zG$N|;QG;F641F<=TW8$2#&MmL`s;%H)UaItq#Rd0DHk;EEaOHQH_JGf?)Ad{+PE8y zd(=3X+V%XwsIGU96~=Wzea4rMlOe7V2JW`e0x!`<&2u=&+8(RCrJK?GkrV zZe;nRkLV#PlZY>l!*)3pT?fxFyNZd zCy2T|^Ge(wBJS1wuA_0^~R8kM;Jk;%h8co;uoJU zhLI|C6VEDWTw9B!qHjfluT*~?aoZ#;Oub=!XYjq*y)?!&vTa{Pn$Ou(!fR`!liK!J zH26i`lwx;ePI3Ooo`D9+s!D@D*9^hbd1>>AoM`?lk!AKm_Mo@@zU3h@E+Uy0@^63@ ztxb}5ZPDiQk@7cZ7gjEE&+LgyO=sqy-%W1T7j4Hyf?w8jEp=Z;3Sg2}5>XobcGiIi zwn^!zwfWKj1LJk=p@6{=vT~R*e zm%8Naim>t2<1s94E0DeryX9{Q`Lk~ZdOwX&XIktlaNhJCDSaV+_Y+#o+DV~zwVBS( zx+ZE(%9oI{{0{R-?1i&;$Nzj{4$SAk#V>DW`Tu-S{fmNJV->6k(Og1%Jv=bfWg^ zqBHHB|2;@NwWRzeB}JrTf0E>kpD`T~s*QaP8;%!W1u3+r-_A!;H=Lj2V)6Hzls4#V z^A5DKL>UNnCY5c#V>-BSS{Ziqt#kKtp9!5%PE=&2FQ{rQfn7w_CwJEG2PJxFY$4WXHmBp!cgvwzIO^On(0$iOrM~IMcx=im6`G+gP@6^``v21nMo-U z6G=&-*q!Mtp-zxc9BpZ+&Ujn#J7E$ZI|cBiS4@zb@!QRyoTp^ga}#Y17RL6)FQS7Q z52`mz4tqYlQfS5XTMWx>&o%66zW(5njTS9J*@Rl^f+p-%oR)QT8Y~MRixrPu4uT%s zftef-c`sB_#i7Dm67%8E&(mRo#{8y_65}O!!EbSh1U(0Ci9QztmnA+GuWF}Xb@Q2h zlMqj{#5GY019bp2u9Cf86ZP@pBG;Rd;`omuS9ZPQM|RxdByZ)*XFMpWLti|7!Z5E! zB=_@2R?Ml5^X%u(L}VTN`K+ZK`uQ@?5|anfyR$uFN1wH<*5k1ZJH|Gu8OS<%JMbdl zoj_LXyMPnC^BC}tIOkX8Zs6~M_X8IL9|W?a&+``G!@zaGKLOcB{Tawi{2P$9?kOP4 z?9;#=z-NJn16Kg^Jf0o(l{jb3-U#H-{Y4;KikE>bhMR%qz}JA4z&C-@fNuk@0R975 z1AG_Aj^#(dCg8`wZ-AcyIr;t>kdyBJ22%R@1+W*8>1HSJJK#hhEKS5{DTU{YfZqe} z0s1;a`2hGc&Rc+cfNb~4vjfk`R+S6Vl>tMCagJ|OxtMVc#yxJ_-;8_SxRu6HqOAAe zut?+co7*}N+r^+?#4aVJW++D_D5r^k*rExDCx5YSi%r!oC%<0N- zI^nN!?4m2jsdD8`HjW);<%*4Sjl0RX-y3(gac>%jy(GMQd}3UiamDC!6yYq>iF&RK zhqjo82{+DjWjOc4rD=KCb9oc)Y}n3`nMd03V4u?+B3i5Oq6|gcF_?W1jbp#PVBpS3 z(-ngw!A-SUaVsN{rW*9w&KVtPuE*wJ=o{Byv(5I`(N}(Q6T05;vYX)EvXuZ|fkZ4% z3fJ`HHuad^RXlFrhezSubI?hypM#dO%%++A7Kbz}CbA4_u>>*!`O@V>;&( z_ZGske{!&d`9?l*i5{S?J!S7N1Ah2z+UImWy9I|z1fSzOb`f{Tm8tyrlzuYqe~K_Z zrI-BCNlcMEEcehqd}e-P_)Vqkfk!^pkP-`ky@7?m(}1WVvEe{e5c%Z5=wPhUyB_nd z-vmT)j@<^Nzdr%#Zy7KOTo1&$;Mi+G=&8iE12GbowOBAdC>zzlC}FG<(seG7O)>3= zXj4p=>Yyt(-n*KCE@9kXjd9l)S8v>6*TXbI!xIAm@6ES!c@3 z!T0W@?15Xt?iHw3Z-w3R9ufDXrZGL6#`JF*Gq`C?r0HhXpQf8xIiPEOM%WGY!)Te0 z-_(%TLck8TVN}sUVGON@*6&H5eOP43n1Z^QFgVUyvM$sQVUd7PLE9yv;O_YsVAI@0 z6-B(~gd^sc8jvrzgR^X~vs>zq3ST$YU z4~htZrPri{-C;TP>r(3XjGKLUr2gt$r*67eBi9Yf8K4Oqz~!HK`KUI>gbiGVLjpO+%&BJx?%i&JL~Gd!XrRO ze2;{#-|eeA0GBWh-P0tOBIAc)lI`kT_g2lV0r)|I3O9G7sq(aN55;bOKgm>;_~`~e zooGg>2wLjfDw{@Tc_$^?QgPNb6j{BC7&~6UER&Q-VQ`IlgZ3q@3!vR8i=&|HwAB%$DG%xvcA;GjW$j1ThdgV3q=>~ zOIO#IFKN%JX#JX$;MRGEFn@*zmge9G8&ol(=1^?pvj(y`{m{+EW)HlM1^AR-Dx}A4@1!6lQsO2PP{y>t3IS*Rr+L zEo88|ja219J;FU;73;NP_Z`T7WO_HWg2_sfB_YyKR%x@Z6dPp2JtixEliV`wM?GCJ zrYla}m0@g7;J&)+?NA`{>MraT7+LAx6bimRF9X*3yJUa5iqFDT7i%N=n=vmNY5m?0 z@fjy&Bk<_1Y#NiZYb%1I!72{EJ@-)TXtYb;wbPZ!y#gVTs9D|!gbEClxwTCA1Z{e7f#D%)ALpW!; z+*gqgNFB0buLLr6Z#SLOvn2RJpz(8-iu$$b_6CDb$(svYd%2Vs*|-3Og}WD2N$umn zsib*?Ke8hJHc?c^{#4pL_NSezF!y~k9yAo2vnMssc%3*0!!?&#Hoov6Ri++3Gh zSs%#eTsiaq+B1=QuX#r|ZKkY+xuonei0?S8Wam2-lUi{X$Ls8xW0DUgQ0L333#~2; z?wl;S8tTjs2&~rYtlqK)=ZSYOQa*CpEY)0^D!7-xqTmG?rE)m&#sW3kYdQfzs zGv?aGdrl0|Q-*U2l24tgy+m;;8p0f#L=u8HNkv5u%Y7I7dO}%>x1|_CcC0Cz=1rqk zAw-F=oqg9hYHpuK5Iz*{aZKdS6QQ0;Qs$H;%oH#iwG+F*nSey`p3LLFNgB3c#{CP) z7Os5I*jz|z4!~UNneu>~pVkLrr?;qE3&K)70ZoUrL|UO0C~2i=j;&)ve2n*1VtRKm z#Cl%<`Si4)&$r9|A46+;uPjT*e#q3b4TBGcn2K~B%TpNK)$@3Is9jJbhMlYA`bUzU zcn-9Wk%LvP^JNUv5o2!&@fV44y1g=*T`TG~2-n8T^-q&xywb~4#=!jSDL%SGu*vgy zny7zKB#L?*$xw*FVyf>`74ew=d?#}{CMbJh=b4s0Vf$lU$ams= t#0@E(y;z%j^ju2i)31S4K8s8 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

a0E#5X`2 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 + + + + win32 + win64 + + freetype + 2.13.3 + $(ExternalDir)$(FreeTypeName)-$(FreeTypeVersion)\ + $(FreeTypeDir)include\ + $(FreeTypeDir)release-dll\$(FreeTypePlatform)\ + $(FreeTypeName) + + + + <_PropertySheetDisplayName>LinkFreeType + + + + + $(FreeTypeFileName).dll + PreserveNewest + + + + + + $(FreeTypeSource);%(AdditionalIncludeDirectories) + + + + $(FreeTypeLibDir);%(AdditionalLibraryDirectories) + $(FreeTypeFileName).lib;%(AdditionalDependencies) + + + \ No newline at end of file diff --git a/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj b/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj index 91082124..35bc4621 100644 --- a/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj +++ b/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj @@ -75,10 +75,13 @@ true Unicode + + + From 1d382057c436d99a27f5bc3001e4ad2624a330ed Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sat, 26 Oct 2024 18:29:20 +0200 Subject: [PATCH 03/96] Create test for FontAsset loader to check linker --- swCommonLib/Common/Exceptions/Nullable.h | 4 +- swGUI/GUI.sln | 70 +++++++ swGraphicAPI/Assets/TextAsset/FontAsset.h | 2 +- .../Assets/TextAsset/FontAssetLoader.cpp | 2 - .../Assets/TextAsset/FontAssetLoader.h | 0 .../{ => Loader}/FontAssetCreator.cpp | 0 .../TextAsset/{ => Loader}/FontAssetCreator.h | 2 +- .../{ => Loader}/FontAssetInitData.cpp | 0 .../{ => Loader}/FontAssetInitData.h | 0 .../Assets/TextAsset/Loader/FontLoader.cpp | 83 +++++++++ .../Assets/TextAsset/Loader/FontLoader.h | 38 ++++ .../Assets/TextAsset/Loader/FreeType.h | 42 +++++ swGraphicAPI/Assets/TextAsset/stdafx.h | 10 +- .../Templates/Visual2015/TestTemplate.vcxproj | 37 ++-- .../Visual2015/ImportFreeType.props | 9 + .../Tests/TestText/TestText.vcxproj | 172 ++++++++++++++++++ .../Tests/TestText/TestText.vcxproj.filters | 28 +++ .../Visual2015/TextAsset/TextAsset.vcxproj | 20 +- .../TextAsset/TextAsset.vcxproj.filters | 40 ++++ swGraphicAPI/TestResources/fonts/ELICEN.otf | Bin 0 -> 275340 bytes swGraphicAPI/TestResources/fonts/ELICEN.ttf | Bin 0 -> 128940 bytes .../Tests/TestText/TestFontLoader.cpp | 31 ++++ swGraphicAPI/Tests/TestText/Utils.h | 30 +++ swGraphicAPI/Tests/TestText/main.cpp | 3 + 24 files changed, 576 insertions(+), 47 deletions(-) delete mode 100644 swGraphicAPI/Assets/TextAsset/FontAssetLoader.cpp delete mode 100644 swGraphicAPI/Assets/TextAsset/FontAssetLoader.h rename swGraphicAPI/Assets/TextAsset/{ => Loader}/FontAssetCreator.cpp (100%) rename swGraphicAPI/Assets/TextAsset/{ => Loader}/FontAssetCreator.h (95%) rename swGraphicAPI/Assets/TextAsset/{ => Loader}/FontAssetInitData.cpp (100%) rename swGraphicAPI/Assets/TextAsset/{ => Loader}/FontAssetInitData.h (100%) create mode 100644 swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp create mode 100644 swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h create mode 100644 swGraphicAPI/Assets/TextAsset/Loader/FreeType.h create mode 100644 swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj create mode 100644 swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj.filters create mode 100644 swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj.filters create mode 100644 swGraphicAPI/TestResources/fonts/ELICEN.otf create mode 100644 swGraphicAPI/TestResources/fonts/ELICEN.ttf create mode 100644 swGraphicAPI/Tests/TestText/TestFontLoader.cpp create mode 100644 swGraphicAPI/Tests/TestText/Utils.h create mode 100644 swGraphicAPI/Tests/TestText/main.cpp diff --git a/swCommonLib/Common/Exceptions/Nullable.h b/swCommonLib/Common/Exceptions/Nullable.h index b329ba8e..8eb42724 100644 --- a/swCommonLib/Common/Exceptions/Nullable.h +++ b/swCommonLib/Common/Exceptions/Nullable.h @@ -83,7 +83,7 @@ class Nullable : public impl::ResultBase< ContentType, ExceptionPtr > using Parent::ResultBase; - Nullable (const std::string& error); + Nullable ( const std::string& error ); template< typename ExceptionType > Nullable ( std::shared_ptr< ExceptionType >&& error ); @@ -201,7 +201,7 @@ inline Nullable< ContentType > Nullable< ContentType >::FromError ( co template< typename ContentType > inline Nullable< ContentType > Nullable< ContentType >::FromError ( const std::string& reason ) { - return FromError( std::make_shared< std::runtime_error >( reason ) ); + return FromError( std::make_shared< RuntimeException >( reason ) ); } // ================================ // diff --git a/swGUI/GUI.sln b/swGUI/GUI.sln index 96b15ef8..e035ac23 100644 --- a/swGUI/GUI.sln +++ b/swGUI/GUI.sln @@ -164,6 +164,60 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TextAsset", "..\swGraphicAP {5476CBF5-F7F9-488F-B55C-B6331B82C54A} = {5476CBF5-F7F9-488F-B55C-B6331B82C54A} EndProjectSection EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TestResources", "TestResources", "{E1A698D8-011C-4359-A108-C3B32B54A2C0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "material", "material", "{996F7639-5642-45DC-876A-21C7993F1349}" + ProjectSection(SolutionItems) = preProject + ..\swGraphicAPI\TestResources\material\invalid-version.swmat = ..\swGraphicAPI\TestResources\material\invalid-version.swmat + ..\swGraphicAPI\TestResources\material\invalid-xml.swmat = ..\swGraphicAPI\TestResources\material\invalid-xml.swmat + ..\swGraphicAPI\TestResources\material\no-gs-entry.swmat = ..\swGraphicAPI\TestResources\material\no-gs-entry.swmat + ..\swGraphicAPI\TestResources\material\no-header.swmat = ..\swGraphicAPI\TestResources\material\no-header.swmat + ..\swGraphicAPI\TestResources\material\no-MaterialAsset.swmat = ..\swGraphicAPI\TestResources\material\no-MaterialAsset.swmat + ..\swGraphicAPI\TestResources\material\no-ps.swmat = ..\swGraphicAPI\TestResources\material\no-ps.swmat + ..\swGraphicAPI\TestResources\material\no-textures-entry.swmat = ..\swGraphicAPI\TestResources\material\no-textures-entry.swmat + ..\swGraphicAPI\TestResources\material\no-vs.swmat = ..\swGraphicAPI\TestResources\material\no-vs.swmat + ..\swGraphicAPI\TestResources\material\not-existing-ps.swmat = ..\swGraphicAPI\TestResources\material\not-existing-ps.swmat + ..\swGraphicAPI\TestResources\material\not-existing-texture.swmat = ..\swGraphicAPI\TestResources\material\not-existing-texture.swmat + ..\swGraphicAPI\TestResources\material\not-existing-vs.swmat = ..\swGraphicAPI\TestResources\material\not-existing-vs.swmat + ..\swGraphicAPI\TestResources\material\single-texture-entry.swmat = ..\swGraphicAPI\TestResources\material\single-texture-entry.swmat + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "mock", "mock", "{E4FB35C1-ED4C-4DE8-A92E-AE816F20AF08}" + ProjectSection(SolutionItems) = preProject + ..\swGraphicAPI\TestResources\mock\example.mock = ..\swGraphicAPI\TestResources\mock\example.mock + ..\swGraphicAPI\TestResources\mock\example1.mock = ..\swGraphicAPI\TestResources\mock\example1.mock + ..\swGraphicAPI\TestResources\mock\example2.mock = ..\swGraphicAPI\TestResources\mock\example2.mock + ..\swGraphicAPI\TestResources\mock\example3.mock = ..\swGraphicAPI\TestResources\mock\example3.mock + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "texture", "texture", "{3B49D614-8687-492C-BA8B-622D833E1E99}" + ProjectSection(SolutionItems) = preProject + ..\swGraphicAPI\TestResources\texture\big-lightweight.png = ..\swGraphicAPI\TestResources\texture\big-lightweight.png + ..\swGraphicAPI\TestResources\texture\random-pixels.bmp = ..\swGraphicAPI\TestResources\texture\random-pixels.bmp + ..\swGraphicAPI\TestResources\texture\random-pixels.jpg = ..\swGraphicAPI\TestResources\texture\random-pixels.jpg + ..\swGraphicAPI\TestResources\texture\random-pixels.png = ..\swGraphicAPI\TestResources\texture\random-pixels.png + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "shaders", "shaders", "{F1C45F0A-5461-43D0-B73C-AF7994CBBAED}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "hlsl", "hlsl", "{9C1F5085-2B56-48A9-91CA-93D85CFBCCB6}" + ProjectSection(SolutionItems) = preProject + ..\swGraphicAPI\TestResources\shaders\hlsl\MinimalShader.csh = ..\swGraphicAPI\TestResources\shaders\hlsl\MinimalShader.csh + ..\swGraphicAPI\TestResources\shaders\hlsl\MinimalShader.psh = ..\swGraphicAPI\TestResources\shaders\hlsl\MinimalShader.psh + ..\swGraphicAPI\TestResources\shaders\hlsl\MinimalShader.vsh = ..\swGraphicAPI\TestResources\shaders\hlsl\MinimalShader.vsh + ..\swGraphicAPI\TestResources\shaders\hlsl\NotCompiing.psh = ..\swGraphicAPI\TestResources\shaders\hlsl\NotCompiing.psh + ..\swGraphicAPI\TestResources\shaders\hlsl\NotCompiling.csh = ..\swGraphicAPI\TestResources\shaders\hlsl\NotCompiling.csh + ..\swGraphicAPI\TestResources\shaders\hlsl\NotCompiling.vsh = ..\swGraphicAPI\TestResources\shaders\hlsl\NotCompiling.vsh + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "fonts", "fonts", "{2CDA8A31-2F49-43B3-82CD-271BE83EC203}" + ProjectSection(SolutionItems) = preProject + ..\swGraphicAPI\TestResources\fonts\ELICEN.otf = ..\swGraphicAPI\TestResources\fonts\ELICEN.otf + ..\swGraphicAPI\TestResources\fonts\ELICEN.ttf = ..\swGraphicAPI\TestResources\fonts\ELICEN.ttf + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestText", "..\swGraphicAPI\ProjectsDir\Visual2015\Tests\TestText\TestText.vcxproj", "{1F535690-1AB1-47EA-961B-183C4DCF46D3}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 @@ -628,6 +682,14 @@ Global {1D15DC68-41B7-4C76-8250-411582E5ACBF}.Release|x64.Build.0 = Release|x64 {1D15DC68-41B7-4C76-8250-411582E5ACBF}.Release|x86.ActiveCfg = Release|Win32 {1D15DC68-41B7-4C76-8250-411582E5ACBF}.Release|x86.Build.0 = Release|Win32 + {1F535690-1AB1-47EA-961B-183C4DCF46D3}.Debug|x64.ActiveCfg = Debug|x64 + {1F535690-1AB1-47EA-961B-183C4DCF46D3}.Debug|x64.Build.0 = Debug|x64 + {1F535690-1AB1-47EA-961B-183C4DCF46D3}.Debug|x86.ActiveCfg = Debug|Win32 + {1F535690-1AB1-47EA-961B-183C4DCF46D3}.Debug|x86.Build.0 = Debug|Win32 + {1F535690-1AB1-47EA-961B-183C4DCF46D3}.Release|x64.ActiveCfg = Release|x64 + {1F535690-1AB1-47EA-961B-183C4DCF46D3}.Release|x64.Build.0 = Release|x64 + {1F535690-1AB1-47EA-961B-183C4DCF46D3}.Release|x86.ActiveCfg = Release|Win32 + {1F535690-1AB1-47EA-961B-183C4DCF46D3}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -711,6 +773,14 @@ Global {36978EBD-9F8D-4A5D-98B7-4664EF50F807} = {DE666E4F-976E-47D7-8F9E-607F801EDD0C} {279D5FBE-D687-4D72-8A39-122B6EF72A69} = {33EAE5FD-B685-4FC7-B96D-B3EA53A4C985} {1D15DC68-41B7-4C76-8250-411582E5ACBF} = {2D8B624F-F50D-4177-9433-DFCC6460E402} + {E1A698D8-011C-4359-A108-C3B32B54A2C0} = {9CC57B89-7D1B-4C37-96E9-53F6D7329EA8} + {996F7639-5642-45DC-876A-21C7993F1349} = {E1A698D8-011C-4359-A108-C3B32B54A2C0} + {E4FB35C1-ED4C-4DE8-A92E-AE816F20AF08} = {E1A698D8-011C-4359-A108-C3B32B54A2C0} + {3B49D614-8687-492C-BA8B-622D833E1E99} = {E1A698D8-011C-4359-A108-C3B32B54A2C0} + {F1C45F0A-5461-43D0-B73C-AF7994CBBAED} = {E1A698D8-011C-4359-A108-C3B32B54A2C0} + {9C1F5085-2B56-48A9-91CA-93D85CFBCCB6} = {F1C45F0A-5461-43D0-B73C-AF7994CBBAED} + {2CDA8A31-2F49-43B3-82CD-271BE83EC203} = {E1A698D8-011C-4359-A108-C3B32B54A2C0} + {1F535690-1AB1-47EA-961B-183C4DCF46D3} = {AD4FFF37-D748-47D4-AF31-78C2C7D87D42} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {A341301D-630D-4C6A-B843-1A50FC78565A} diff --git a/swGraphicAPI/Assets/TextAsset/FontAsset.h b/swGraphicAPI/Assets/TextAsset/FontAsset.h index 27c82a00..44b306dd 100644 --- a/swGraphicAPI/Assets/TextAsset/FontAsset.h +++ b/swGraphicAPI/Assets/TextAsset/FontAsset.h @@ -7,7 +7,7 @@ #include "swGraphicAPI/Resources/Textures/Texture.h" -#include "swGraphicAPI/Assets/TextAsset/FontAssetInitData.h" +#include "swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h" #include "swGraphicAPI/Assets/TextAsset/Glyph.h" diff --git a/swGraphicAPI/Assets/TextAsset/FontAssetLoader.cpp b/swGraphicAPI/Assets/TextAsset/FontAssetLoader.cpp deleted file mode 100644 index d3043a20..00000000 --- a/swGraphicAPI/Assets/TextAsset/FontAssetLoader.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include "swGraphicAPI/Assets/TextAsset/stdafx.h" - diff --git a/swGraphicAPI/Assets/TextAsset/FontAssetLoader.h b/swGraphicAPI/Assets/TextAsset/FontAssetLoader.h deleted file mode 100644 index e69de29b..00000000 diff --git a/swGraphicAPI/Assets/TextAsset/FontAssetCreator.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetCreator.cpp similarity index 100% rename from swGraphicAPI/Assets/TextAsset/FontAssetCreator.cpp rename to swGraphicAPI/Assets/TextAsset/Loader/FontAssetCreator.cpp diff --git a/swGraphicAPI/Assets/TextAsset/FontAssetCreator.h b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetCreator.h similarity index 95% rename from swGraphicAPI/Assets/TextAsset/FontAssetCreator.h rename to swGraphicAPI/Assets/TextAsset/Loader/FontAssetCreator.h index cb89ceeb..37905ac2 100644 --- a/swGraphicAPI/Assets/TextAsset/FontAssetCreator.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetCreator.h @@ -7,7 +7,7 @@ #include "swGraphicAPI/ResourceManager/AssetCreators/IAssetCreator.h" -#include "FontAsset.h" +#include "swGraphicAPI/Assets/TextAsset/FontAsset.h" namespace sw diff --git a/swGraphicAPI/Assets/TextAsset/FontAssetInitData.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp similarity index 100% rename from swGraphicAPI/Assets/TextAsset/FontAssetInitData.cpp rename to swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp diff --git a/swGraphicAPI/Assets/TextAsset/FontAssetInitData.h b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h similarity index 100% rename from swGraphicAPI/Assets/TextAsset/FontAssetInitData.h rename to swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp new file mode 100644 index 00000000..1b7901db --- /dev/null +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp @@ -0,0 +1,83 @@ +/** +@file FreeTypeLoader.cpp +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include "swGraphicAPI/Assets/TextAsset/stdafx.h" + +#include "FontLoader.h" + +#include "swGraphicAPI/Assets/TextAsset/FontAsset.h" +#include + +#include "swGraphicAPI/Assets/TextAsset/Loader/FreeType.h" + + +namespace sw +{ + + + + +FreeTypeLoader::~FreeTypeLoader() +{ +} + +bool FreeTypeLoader::CanLoad( const AssetPath& filePath, TypeID resourceType ) +{ + std::string allowedExtensions[] = + { + ".ttf", + }; + + TypeID allowedTypes[] = + { + TypeID::get< FontAsset >(), + TypeID::get< Resource >() + }; + + return DefaultCanLoad( filePath, resourceType, allowedExtensions, allowedTypes ); +} + +ReturnResult FreeTypeLoader::Prefetch( const LoadPath& filePath, TypeID resourceType, const IAssetLoadInfo* assetDesc, RMLoaderAPI factory ) +{ + return ReturnResult( fmt::format( "Prefetch operation not supported" ) ); +} + +LoadingResult FreeTypeLoader::Load( const LoadPath& filePath, TypeID resourceType, const IAssetLoadInfo* assetDesc, RMLoaderAPI context ) +{ + auto freeType = FreeTypeLibrary::Create(); + + return LoadingResult(); +} + + +Nullable FreeTypeLibrary::Create() +{ + FT_Library library; + auto error = FT_Init_FreeType( &library ); + if( error ) + return Nullable< FreeTypeLibrary >::FromError( fmt::format( "Failed to initialize FreeType library." ) ); + return FreeTypeLibrary( library ); +} + +ReturnResult FreeTypeLibrary::CreateFace( const LoadPath& filePath ) +{ + FT_Error error = FT_New_Face( this->Library, filePath.GetFile().String().c_str(), 0, &this->Face); + if( error != FT_Err_Ok ) + { + return ReturnResult( fmt::format( "Failed to create face from font file: {}, error: {}", + filePath.GetFile().String(), FT_Error_String( error ) ) ); + } + + return Success::True; + +} + +FreeTypeLibrary::~FreeTypeLibrary() +{ + FT_Done_FreeType( this->Library ); +} + +} diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h new file mode 100644 index 00000000..97b752ac --- /dev/null +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h @@ -0,0 +1,38 @@ +#pragma once +/** +@file FreeTypeLoader.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include "swCommonLib/Common/Exceptions/Nullable.h" + +#include "swGraphicAPI/ResourceManager/Loaders/IAssetLoadInfo.h" +#include "swGraphicAPI/ResourceManager/Loaders/IAssetLoader.h" + + +namespace sw +{ + + +/**@brief Loads fonts using FreeType Library. +http://freetype.org/freetype2/docs/tutorial/step1.html#section-1 + +@ingroup Text*/ +class FreeTypeLoader : public IAssetLoader +{ +protected: +public: + explicit FreeTypeLoader () = default; + virtual ~FreeTypeLoader (); + + virtual bool CanLoad ( const AssetPath& filePath, TypeID resourceType ) override; + virtual LoadingResult Load ( const LoadPath& filePath, TypeID resourceType, const IAssetLoadInfo* assetDesc, RMLoaderAPI context ) override; + virtual ReturnResult Prefetch ( const LoadPath& filePath, TypeID resourceType, const IAssetLoadInfo* assetDesc, RMLoaderAPI factory ) override; + +public: + +}; + + +} // sw \ No newline at end of file diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h b/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h new file mode 100644 index 00000000..c5dbb04f --- /dev/null +++ b/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h @@ -0,0 +1,42 @@ +#pragma once +/** +@file FreeType.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#undef FTERRORS_H_ +#define FT_ERROR_START_LIST switch ( error_code ) { +#define FT_ERRORDEF( e, v, s ) case v: return s; +#define FT_ERROR_END_LIST } + + +#include +#include FT_FREETYPE_H + + +#include "swCommonLib/Common/Exceptions/Nullable.h" + +namespace sw +{ + +/**FT_Library object is not multithreaded, so the new one must be created for each new +loading operation. This class serves as RAII guard to free resources after loading is done.*/ +class FreeTypeLibrary +{ +protected: + FT_Library Library; + FT_Face Face; + +public: + explicit FreeTypeLibrary ( FT_Library library ) : Library( library ) {} + ~FreeTypeLibrary(); +public: + static Nullable Create(); + +public: + ReturnResult CreateFace ( const LoadPath& filePath ); +}; + + +} diff --git a/swGraphicAPI/Assets/TextAsset/stdafx.h b/swGraphicAPI/Assets/TextAsset/stdafx.h index 755a57b0..3e6c0b37 100644 --- a/swGraphicAPI/Assets/TextAsset/stdafx.h +++ b/swGraphicAPI/Assets/TextAsset/stdafx.h @@ -6,7 +6,7 @@ /// @note You can disable all headers in precompiled header with one macro. -/// All cpp files should be precompiled header independet and explicitly include needed headers. +/// All cpp files should be precompiled header independent and explicitly include needed headers. #ifndef DISABLE_PRECOMPILED_HEADER @@ -20,18 +20,14 @@ #include "swCommonLib/Common/RTTR.h" -#include "swGraphicAPI/Resources/MeshResources.h" -#include "swGraphicAPI/Resources/PipelineStates/BlendingState.h" -#include "swGraphicAPI/Resources/PipelineStates/DepthStencilState.h" -#include "swGraphicAPI/Resources/PipelineStates/RasterizerState.h" #include "swGraphicAPI/Rendering/GraphicAPIConstants.h" #include "swGraphicAPI/ResourceManager/ResourceManager.h" -#include "swGraphicAPI/Resources/ResourcesFactory.h" -#include "swGraphicAPI/Resources/SwapChain.h" #include "swCommonLib/System/File.h" #include "swCommonLib/Common/Buffers/BufferTyped.h" +#include +#include FT_FREETYPE_H #undef min diff --git a/swGraphicAPI/ProjectsDir/Templates/Visual2015/TestTemplate.vcxproj b/swGraphicAPI/ProjectsDir/Templates/Visual2015/TestTemplate.vcxproj index 6bd7866e..9f5ee923 100644 --- a/swGraphicAPI/ProjectsDir/Templates/Visual2015/TestTemplate.vcxproj +++ b/swGraphicAPI/ProjectsDir/Templates/Visual2015/TestTemplate.vcxproj @@ -1,8 +1,5 @@  - - - Debug @@ -24,55 +21,56 @@ {22C79F18-F938-4A9E-A4B0-B77E8F87429D} Win32Proj - 8.1 + 10.0 Application true - v140 + v143 Unicode Application false - v140 + v143 true Unicode Application true - v140 + v143 Unicode Application false - v140 + v143 true Unicode + + + + + - - - - @@ -147,20 +145,7 @@ true - - - $(ProjectName) - $(LibDir)$(TestName)\ - $(SourceDir)$(TestName)\ - $(TestName) - $(BuildDir)$(TestName)_$(Configuration)_$(PlatformShortName)_$(PlatformToolset)\ - - - $(TestBuildDir) - $(TestFileName) - $(TestBuildDir) - - + diff --git a/swGraphicAPI/ProjectsDir/Visual2015/ImportFreeType.props b/swGraphicAPI/ProjectsDir/Visual2015/ImportFreeType.props index d1d04d80..77bbd931 100644 --- a/swGraphicAPI/ProjectsDir/Visual2015/ImportFreeType.props +++ b/swGraphicAPI/ProjectsDir/Visual2015/ImportFreeType.props @@ -33,5 +33,14 @@ $(FreeTypeLibDir);%(AdditionalLibraryDirectories) $(FreeTypeFileName).lib;%(AdditionalDependencies) + + + $(FreeTypeLibDir);%(AdditionalLibraryDirectories) + $(FreeTypeFileName).lib;%(AdditionalDependencies) + + + + true + \ No newline at end of file diff --git a/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj b/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj new file mode 100644 index 00000000..2e6637a7 --- /dev/null +++ b/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj @@ -0,0 +1,172 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + + + + + + {eeefab61-f404-4957-ac24-a3bf81c5e4ed} + + + {fc28f28c-c54c-4f0c-bf70-43e7f4e7192e} + + + {1d15dc68-41b7-4c76-8250-411582e5acbf} + + + + + + + + + + + {1F535690-1AB1-47EA-961B-183C4DCF46D3} + Win32Proj + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + + + Level3 + Disabled + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + Level3 + + + MaxSpeed + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + + \ No newline at end of file diff --git a/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj.filters b/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj.filters new file mode 100644 index 00000000..7ffcaf29 --- /dev/null +++ b/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj.filters @@ -0,0 +1,28 @@ + + + + + {a0e9df26-f8ca-44ef-a676-c7785e289e14} + + + {666c55d9-44df-40e2-be00-1099dece8b39} + + + + + + Tests + + + + + + + + Resources + + + Resources + + + \ No newline at end of file diff --git a/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj b/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj index 35bc4621..5a6d68cd 100644 --- a/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj +++ b/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj @@ -34,20 +34,26 @@ Create - - - + + + - - - + + + + + + + {9f71f0da-1d72-4e96-93b7-5ac2c9cb6ede} + + StaticLibrary @@ -75,13 +81,11 @@ true Unicode - - diff --git a/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj.filters b/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj.filters new file mode 100644 index 00000000..6fc6ba78 --- /dev/null +++ b/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj.filters @@ -0,0 +1,40 @@ + + + + + + + + Loader + + + Loader + + + Loader + + + + + + + + + Loader + + + Loader + + + Loader + + + Loader + + + + + {b1f0b646-c550-479e-9378-fe9824719d30} + + + \ No newline at end of file diff --git a/swGraphicAPI/TestResources/fonts/ELICEN.otf b/swGraphicAPI/TestResources/fonts/ELICEN.otf new file mode 100644 index 0000000000000000000000000000000000000000..15ac512dc58937b242186d6c0cb92fe20764586d GIT binary patch literal 275340 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

EiZ)0Vo(#t*?KVspg3(XW9z(Bd&0t!ev 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 literal 0 HcmV?d00001 diff --git a/swGraphicAPI/Tests/TestText/TestFontLoader.cpp b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp new file mode 100644 index 00000000..10fe3b0e --- /dev/null +++ b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp @@ -0,0 +1,31 @@ +#include "swCommonLib/External/Catch/catch.hpp" +/** +@file TestSWMaterialLoader.cpp +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include "swGraphicAPI/ResourceManager/ResourceManager.h" +#include "swGraphicAPI/ResourceManager/ResourceManagerAPI.h" + +#include "swGraphicAPI/Assets/TextAsset/FontAsset.h" +#include "swGraphicAPI/Tests/TestText/Utils.h" + + +using namespace sw; + + +//====================================================================================// +// Negative tests +//====================================================================================// + +// ================================ // +// +TEST_CASE( "GraphicAPI.Loaders.FontLoader.Basic", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) +{ + auto rm = CreateResourceManagerWithFonts(); + auto api = ResourceManagerAPI( rm.get() ); + + auto material = api.Load< FontAsset >( "$(FontAssets)/no-header.swmat", nullptr ); + REQUIRE( !material.IsValid() ); +} diff --git a/swGraphicAPI/Tests/TestText/Utils.h b/swGraphicAPI/Tests/TestText/Utils.h new file mode 100644 index 00000000..a72902ff --- /dev/null +++ b/swGraphicAPI/Tests/TestText/Utils.h @@ -0,0 +1,30 @@ +#pragma once +/** +@file Utils.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include "swGraphicAPI/ResourceManager/ResourceManager.h" +#include "swGraphicAPI/ResourceManager/ResourceManagerAPI.h" + +#include "swGraphicAPI/Assets/TextAsset/Loader/FontAssetCreator.h" +#include "swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h" +#include "swGraphicAPI/MockAssets/Utils.h" + +using namespace sw; + +// ================================ // +// +inline std::unique_ptr< ResourceManager > CreateResourceManagerWithFonts () +{ + auto rm = CreateResourceManagerWithMocksAndDefaults(); + + rm->RegisterAssetCreator( FontCreator::CreateCreator() ); + rm->RegisterLoader( std::make_shared< FreeTypeLoader >() ); + + auto pm = rm->GetPathsManager(); + pm->RegisterAlias( "$(FontsAssets)", "$(TestAssets)/fonts/" ); + + return std::move( rm ); +} diff --git a/swGraphicAPI/Tests/TestText/main.cpp b/swGraphicAPI/Tests/TestText/main.cpp new file mode 100644 index 00000000..d3f9d80f --- /dev/null +++ b/swGraphicAPI/Tests/TestText/main.cpp @@ -0,0 +1,3 @@ +#define CATCH_CONFIG_MAIN // This tells Catch to provide a main() - only do this in one cpp file +#include "swCommonLib/External/Catch/catch.hpp" + From a45a4bc56829eae9cbf5d45f21de4404e1f7c08f Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sat, 26 Oct 2024 23:37:56 +0200 Subject: [PATCH 04/96] Loading glyphs and kerning using FreeType library --- swGraphicAPI/Assets/TextAsset/FontAsset.h | 10 +- swGraphicAPI/Assets/TextAsset/Glyph.h | 15 ++ .../TextAsset/Loader/FontAssetInitData.cpp | 9 ++ .../TextAsset/Loader/FontAssetInitData.h | 28 ++-- .../Assets/TextAsset/Loader/FontLoader.cpp | 139 ++++++++++++++++-- .../Assets/TextAsset/Loader/FontLoader.h | 5 +- .../Assets/TextAsset/Loader/FreeType.h | 23 ++- .../include/freetype/config/ftoption.h | 2 +- .../Tests/TestText/TestText.vcxproj | 2 +- .../Tests/TestText/TestFontLoader.cpp | 9 +- swGraphicAPI/Tests/TestText/Utils.h | 2 +- 11 files changed, 201 insertions(+), 43 deletions(-) diff --git a/swGraphicAPI/Assets/TextAsset/FontAsset.h b/swGraphicAPI/Assets/TextAsset/FontAsset.h index 44b306dd..bfbb4cf4 100644 --- a/swGraphicAPI/Assets/TextAsset/FontAsset.h +++ b/swGraphicAPI/Assets/TextAsset/FontAsset.h @@ -5,6 +5,7 @@ @copyright File is part of Sleeping Wombat Libraries. */ +#include "swCommonLib/Common/RTTR.h" #include "swGraphicAPI/Resources/Textures/Texture.h" #include "swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h" @@ -34,15 +35,14 @@ class FontAsset : public Resource RTTR_REGISTRATION_FRIEND; protected: - TexturePtr m_fontAtlas; - - uint32 m_fontSize; + TexturePtr m_fontAtlas; + uint32 m_fontSize; /**Stores information how to render and layout each character*/ - std::map< wchar_t, Glyph > m_glyphs; + std::map< wchar_t, Glyph > m_glyphs; /**Each character pair can be shifted indiidually to give text better look in terms of spacing. */ - std::map< std::pair< wchar_t, wchar_t >, float > m_kerning; + std::map< KerningPair, float > m_kerning; public: diff --git a/swGraphicAPI/Assets/TextAsset/Glyph.h b/swGraphicAPI/Assets/TextAsset/Glyph.h index 303528b6..981241e2 100644 --- a/swGraphicAPI/Assets/TextAsset/Glyph.h +++ b/swGraphicAPI/Assets/TextAsset/Glyph.h @@ -25,6 +25,21 @@ struct Glyph uint32 TextureY; // y pixel coord of the bitmap's bottom-left corner Size Padding; + +public: + explicit Glyph() + : CharCode( 0 ) + , GlyphIdx( 0 ) + , Width( 0 ) + , Height( 0 ) + , AdvanceX( 0 ) + , AdvanceY( 0 ) + , BearingX( 0 ) + , BearingY( 0 ) + , TextureX( 0 ) + , TextureY( 0 ) + , Padding( 0 ) + {} }; } // sw diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp index f2172ac8..2923e908 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp @@ -8,13 +8,22 @@ #include "swGraphicAPI/ResourceManager/ResourceManager.h" #include "swGraphicAPI/ResourceManager/ResourceManagerAPI.h" +#include "swGraphicAPI/Assets/TextAsset/FontAsset.h" + +#include "FontAssetInitData.h" namespace sw { +std::wstring FontLoaderData::DefaultCharacterSet() +{ + return std::wstring( L"1234568790.~,/?:;[]{}\\|`!@#$%^&*()-_+=<>\"'abcdefghijklmnopqrstuvxyz柿wABCDEFGHIJKLMNOPQRSTUVXYZƏWAAOAAEEIOUUY" ); +} +TypeID FontLoaderData::GetAssetType () const { return TypeID::get< FontAsset >(); } +TypeID FontInitData::GetAssetType () const { return TypeID::get< FontAsset >(); } } // sw diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h index ddb0ba81..7533a822 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h @@ -20,6 +20,9 @@ namespace sw class FontAsset; class ResourceManager; +typedef std::pair< wchar_t, wchar_t > KerningPair; + + /**@brief Struct contains data needed to initialize font. @ingroup Text*/ struct FontInitData : public IAssetCreateInfo @@ -27,21 +30,24 @@ struct FontInitData : public IAssetCreateInfo RTTR_ENABLE( IAssetCreateInfo ); public: - TexturePtr FontAtlas; - uint32 FontSize; + TexturePtr FontAtlas; + uint32 FontSize; /**Stores information how to render and layout each character*/ - std::map< wchar_t, Glyph > Glyphs; + std::map< wchar_t, Glyph > Glyphs; /**Each character pair can be shifted indiidually to give text better look in terms of spacing. */ - std::map< std::pair< wchar_t, wchar_t >, float > Kerning; + std::map< KerningPair, float > Kerning; public: - explicit FontInitData () {} + explicit FontInitData ( uint32 fontSize ) + : FontAtlas( nullptr ) + , FontSize( fontSize ) + {} public: /**Returns type of asset that can be created using this structure.*/ - virtual TypeID GetAssetType () const override { return TypeID::get< FontAsset >(); } + virtual TypeID GetAssetType () const override; }; @@ -53,21 +59,25 @@ struct FontLoaderData : public IAssetLoadInfo RTTR_ENABLE( IAssetLoadInfo ); public: - AssetPath FontPath; /**Characters that will be rendered to texture atlas.*/ std::wstring CharacterSet; uint32 FontSize; bool GenerateMipmaps; public: - explicit FontLoaderData () {} + explicit FontLoaderData ( uint32 fontSize ) + : FontSize( fontSize ) + , GenerateMipmaps( false ) + , CharacterSet( DefaultCharacterSet() ) + {} public: + static std::wstring DefaultCharacterSet (); public: /**Returns type of asset that can be created using this structure.*/ - virtual TypeID GetAssetType () const override { return TypeID::get< FontAsset >(); } + virtual TypeID GetAssetType () const override; }; diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp index 1b7901db..9fe87336 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp @@ -8,22 +8,56 @@ #include "FontLoader.h" -#include "swGraphicAPI/Assets/TextAsset/FontAsset.h" #include +#include "swGraphicAPI/ResourceManager/Exceptions/LoaderException.h" +#include "swGraphicAPI/Assets/TextAsset/FontAsset.h" #include "swGraphicAPI/Assets/TextAsset/Loader/FreeType.h" namespace sw { +// ================================ // +// +Nullable< std::map > BuildGlyphs( const FreeTypeLibrary& freeType, const std::wstring& charset ) +{ + ErrorsCollector collector; + std::map glyphs; + for( auto character : charset ) + { + auto glyph = freeType.LoadGlyph( character ); + if( collector.Success( glyph ) ) + glyphs[ character ] = glyph.Get(); + } + return collector.Return( glyphs ); +} -FreeTypeLoader::~FreeTypeLoader() +// ================================ // +// +Nullable< std::map > BuildKerning( const FreeTypeLibrary& freeType, const std::wstring& charset ) { + ErrorsCollector collector; + std::map kerning; + + for( auto first : charset ) + { + for( auto second : charset ) + { + auto kern = freeType.Kerning( first, second ); + if( collector.Success( kern ) ) + kerning[ std::make_pair( first, second ) ] = kern.Get(); + } + } + + return collector.Return( kerning ); } + +// ================================ // +// bool FreeTypeLoader::CanLoad( const AssetPath& filePath, TypeID resourceType ) { std::string allowedExtensions[] = @@ -40,19 +74,49 @@ bool FreeTypeLoader::CanLoad( const AssetPath& filePath, TypeID r return DefaultCanLoad( filePath, resourceType, allowedExtensions, allowedTypes ); } +// ================================ // +// +LoadingResult FreeTypeLoader::Load( const LoadPath& filePath, TypeID resourceType, const IAssetLoadInfo* assetDesc, RMLoaderAPI context ) +{ + if( assetDesc == nullptr ) + return LoaderException::Create( "FreeTypeLoader", "Asset descriptor is null.", filePath, resourceType ); + + if( assetDesc->get_type() != TypeID::get< FontLoaderData >() ) + return LoaderException::Create( "FreeTypeLoader", "Unsupported descriptor type [ " + assetDesc->get_type().get_name().to_string() + " ].", filePath, resourceType ); + + auto loadInfo = static_cast< const FontLoaderData* >( assetDesc ); + + auto freeType = FreeTypeLibrary::Create(); + ReturnIfInvalid( freeType ); + ReturnIfInvalid( freeType.Get().CreateFace( filePath, loadInfo->FontSize ) ); + + FontInitData fontDesc( loadInfo->FontSize ); + + fontDesc.Glyphs = BuildGlyphs( freeType.Get(), loadInfo->CharacterSet ).Get(); + fontDesc.Kerning = BuildKerning( freeType.Get(), loadInfo->CharacterSet ).Get(); + + auto result = context.CreateGenericAsset( filePath.GetOriginalPath(), loadInfo->GetAssetType(), std::move( fontDesc ) ); + if( result.IsValid() ) + return LoadingResult( result.Get() ); + else + return LoadingResult( result.GetError() ); +} + +// ================================ // +// ReturnResult FreeTypeLoader::Prefetch( const LoadPath& filePath, TypeID resourceType, const IAssetLoadInfo* assetDesc, RMLoaderAPI factory ) { return ReturnResult( fmt::format( "Prefetch operation not supported" ) ); } -LoadingResult FreeTypeLoader::Load( const LoadPath& filePath, TypeID resourceType, const IAssetLoadInfo* assetDesc, RMLoaderAPI context ) -{ - auto freeType = FreeTypeLibrary::Create(); +// ================================ // +// FreeTypeLibrary implementation - return LoadingResult(); -} +const auto FT_PrecisionMult = 6; +// ================================ // +// Nullable FreeTypeLibrary::Create() { FT_Library library; @@ -62,22 +126,75 @@ Nullable FreeTypeLibrary::Create() return FreeTypeLibrary( library ); } -ReturnResult FreeTypeLibrary::CreateFace( const LoadPath& filePath ) +// ================================ // +// +ReturnResult FreeTypeLibrary::CreateFace( const LoadPath& filePath, uint32 fontSize ) { FT_Error error = FT_New_Face( this->Library, filePath.GetFile().String().c_str(), 0, &this->Face); if( error != FT_Err_Ok ) { return ReturnResult( fmt::format( "Failed to create face from font file: {}, error: {}", - filePath.GetFile().String(), FT_Error_String( error ) ) ); + filePath.GetFile().String(), ftErrorString( error ) ) ); + } + + FT_Error error2 = FT_Set_Pixel_Sizes( this->Face, (FT_UInt)fontSize, (FT_UInt)fontSize ); + if( error2 != FT_Err_Ok ) + { + return ReturnResult( fmt::format( "Failed to set pixel size: {}, error: {}", + filePath.GetFile().String(), ftErrorString( error2 ) ) ); } return Success::True; +} + +// ================================ // +// +Nullable FreeTypeLibrary::LoadGlyph( wchar_t character ) const +{ + FT_UInt gindex = FT_Get_Char_Index( this->Face, character ); + auto result = FT_Load_Glyph( this->Face, gindex, FT_LOAD_NO_BITMAP ); + if( result != FT_Err_Ok ) + return std::make_shared< RuntimeException> ( fmt::format("Error loading glyph for character '{}': {}", + Convert::ToString( character ), ftErrorString( result ) ) ); + + auto newGlyph = Glyph(); + + newGlyph.CharCode = character; + newGlyph.GlyphIdx = gindex; + newGlyph.Width = this->Face->glyph->metrics.height; + newGlyph.Height = this->Face->glyph->metrics.width; + + newGlyph.BearingX = this->Face->glyph->metrics.horiBearingX >> FT_PrecisionMult; + newGlyph.BearingY = this->Face->glyph->metrics.horiBearingY >> FT_PrecisionMult; + newGlyph.AdvanceX = this->Face->glyph->advance.x >> FT_PrecisionMult; + newGlyph.AdvanceY = this->Face->glyph->advance.y >> FT_PrecisionMult; + + return Nullable( newGlyph ); } -FreeTypeLibrary::~FreeTypeLibrary() +// ================================ // +// +Nullable FreeTypeLibrary::Kerning( wchar_t first, wchar_t second ) const { - FT_Done_FreeType( this->Library ); + FT_Vector kerning; + + auto leftGlyphIdx = FT_Get_Char_Index( this->Face, first ); + auto rightGlyphIdx = FT_Get_Char_Index( this->Face, second ); + + auto result = FT_Get_Kerning( this->Face, + leftGlyphIdx, + rightGlyphIdx, + FT_KERNING_DEFAULT, + &kerning ); + + if( result != FT_Err_Ok ) + return std::make_shared< RuntimeException> ( fmt::format( "Error loading kerning for '{}' and '{}': {}", + Convert::ToString( first ), + Convert::ToString( second ), + ftErrorString( result ) ) ); + + return Nullable( float( kerning.x >> FT_PrecisionMult ) ); } } diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h index 97b752ac..e01c3589 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h @@ -24,14 +24,11 @@ class FreeTypeLoader : public IAssetLoader protected: public: explicit FreeTypeLoader () = default; - virtual ~FreeTypeLoader (); + virtual ~FreeTypeLoader () = default; virtual bool CanLoad ( const AssetPath& filePath, TypeID resourceType ) override; virtual LoadingResult Load ( const LoadPath& filePath, TypeID resourceType, const IAssetLoadInfo* assetDesc, RMLoaderAPI context ) override; virtual ReturnResult Prefetch ( const LoadPath& filePath, TypeID resourceType, const IAssetLoadInfo* assetDesc, RMLoaderAPI factory ) override; - -public: - }; diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h b/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h index c5dbb04f..63065fe4 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h @@ -5,11 +5,15 @@ @copyright File is part of Sleeping Wombat Libraries. */ -#undef FTERRORS_H_ -#define FT_ERROR_START_LIST switch ( error_code ) { -#define FT_ERRORDEF( e, v, s ) case v: return s; -#define FT_ERROR_END_LIST } +static const char* ftErrorString( FT_Error error ) +{ +#undef FTERRORS_H_ +#define FT_ERRORDEF(error_code, value, string) case error_code: return string; +#define FT_ERROR_START_LIST switch(error) { +#define FT_ERROR_END_LIST default: return "Unknown error"; } +#include FT_ERRORS_H +} #include #include FT_FREETYPE_H @@ -24,18 +28,21 @@ namespace sw loading operation. This class serves as RAII guard to free resources after loading is done.*/ class FreeTypeLibrary { -protected: +public: FT_Library Library; FT_Face Face; public: - explicit FreeTypeLibrary ( FT_Library library ) : Library( library ) {} - ~FreeTypeLibrary(); + explicit FreeTypeLibrary ( FT_Library library ) : Library( library ), Face( nullptr ) {} + ~FreeTypeLibrary() = default; public: static Nullable Create(); public: - ReturnResult CreateFace ( const LoadPath& filePath ); + ReturnResult CreateFace ( const LoadPath& filePath, uint32 fontSize ); + + Nullable< Glyph > LoadGlyph ( wchar_t character ) const; + Nullable< float > Kerning ( wchar_t first, wchar_t second ) const; }; diff --git a/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/ftoption.h b/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/ftoption.h index eb4e32d8..d8dfdf8a 100644 --- a/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/ftoption.h +++ b/swGraphicAPI/External/freetype-2.13.3/include/freetype/config/ftoption.h @@ -551,7 +551,7 @@ FT_BEGIN_HEADER * * More details can be found in the file `fterrors.h`. */ -/* #define FT_CONFIG_OPTION_ERROR_STRINGS */ +#define FT_CONFIG_OPTION_ERROR_STRINGS /*************************************************************************/ diff --git a/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj b/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj index 2e6637a7..c1f0cef5 100644 --- a/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj +++ b/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj @@ -76,7 +76,7 @@ - + diff --git a/swGraphicAPI/Tests/TestText/TestFontLoader.cpp b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp index 10fe3b0e..9229cc59 100644 --- a/swGraphicAPI/Tests/TestText/TestFontLoader.cpp +++ b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp @@ -9,6 +9,7 @@ #include "swGraphicAPI/ResourceManager/ResourceManagerAPI.h" #include "swGraphicAPI/Assets/TextAsset/FontAsset.h" +#include "swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h" #include "swGraphicAPI/Tests/TestText/Utils.h" @@ -21,11 +22,13 @@ using namespace sw; // ================================ // // -TEST_CASE( "GraphicAPI.Loaders.FontLoader.Basic", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) +TEST_CASE( "GraphicAPI.Loaders.Font.Loader.Basic", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) { auto rm = CreateResourceManagerWithFonts(); auto api = ResourceManagerAPI( rm.get() ); - auto material = api.Load< FontAsset >( "$(FontAssets)/no-header.swmat", nullptr ); - REQUIRE( !material.IsValid() ); + FontLoaderData init( 16 ); + + auto font = api.Load< FontAsset >( "$(FontAssets)/ELICEN.ttf", &init ); + REQUIRE( font.IsValid() ); } diff --git a/swGraphicAPI/Tests/TestText/Utils.h b/swGraphicAPI/Tests/TestText/Utils.h index a72902ff..5e8a77af 100644 --- a/swGraphicAPI/Tests/TestText/Utils.h +++ b/swGraphicAPI/Tests/TestText/Utils.h @@ -24,7 +24,7 @@ inline std::unique_ptr< ResourceManager > CreateResourceManagerWithFonts () rm->RegisterLoader( std::make_shared< FreeTypeLoader >() ); auto pm = rm->GetPathsManager(); - pm->RegisterAlias( "$(FontsAssets)", "$(TestAssets)/fonts/" ); + pm->RegisterAlias( "$(FontAssets)", "$(TestAssets)/fonts/" ); return std::move( rm ); } From 09d4c1a72a16626747e8ccf59f76cbb3673dc0d9 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sun, 27 Oct 2024 11:56:47 +0100 Subject: [PATCH 05/96] Test FontLoader Glyphs and kerning generation --- swGraphicAPI/Assets/TextAsset/FontAsset.cpp | 28 +++++++++++++++++-- swGraphicAPI/Assets/TextAsset/FontAsset.h | 9 +++++- .../TextAsset/Loader/FontAssetInitData.cpp | 2 +- .../Tests/TestText/TestFontLoader.cpp | 4 +++ 4 files changed, 39 insertions(+), 4 deletions(-) diff --git a/swGraphicAPI/Assets/TextAsset/FontAsset.cpp b/swGraphicAPI/Assets/TextAsset/FontAsset.cpp index c8fff0d7..825f0105 100644 --- a/swGraphicAPI/Assets/TextAsset/FontAsset.cpp +++ b/swGraphicAPI/Assets/TextAsset/FontAsset.cpp @@ -1,7 +1,14 @@ +/** +@file FontAsset.cpp +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ #include "swGraphicAPI/Assets/TextAsset/stdafx.h" #include "FontAsset.h" + + namespace sw { @@ -13,8 +20,25 @@ FontAsset::FontAsset( AssetPath filePath, FontInitData&& initData ) , m_kerning( std::move( initData.Kerning ) ) {} -FontAsset::~FontAsset() -{} +const Glyph& FontAsset::GetGlyph( wchar_t character ) const +{ + return this->m_glyphs.at( character ); +} + +float FontAsset::GetKerning( wchar_t first, wchar_t second ) const +{ + return this->m_kerning.at( std::make_pair( first, second ) ); +} + +const std::map& FontAsset::GetGlyphs() const +{ + return this->m_glyphs; +} + +const std::map& FontAsset::GetKerning() const +{ + return this->m_kerning; +} } // sw diff --git a/swGraphicAPI/Assets/TextAsset/FontAsset.h b/swGraphicAPI/Assets/TextAsset/FontAsset.h index bfbb4cf4..718df08d 100644 --- a/swGraphicAPI/Assets/TextAsset/FontAsset.h +++ b/swGraphicAPI/Assets/TextAsset/FontAsset.h @@ -51,8 +51,15 @@ class FontAsset : public Resource std::string FontName () const { return GetAssetPath().GetFile().GetFileName(); } uint32 FontSize () const { return m_fontSize; } + const Glyph& GetGlyph ( wchar_t character ) const; + float GetKerning ( wchar_t first, wchar_t second ) const; + + const std::map< wchar_t, Glyph >& GetGlyphs () const; + const std::map< KerningPair, float >& GetKerning () const; + + const TexturePtr& GetFontAtlas() const { return m_fontAtlas; } private: - ~FontAsset(); + ~FontAsset() = default; }; DEFINE_RESOURCE_PTR_TYPE( FontAsset ); diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp index 2923e908..ef4bb8ef 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp @@ -19,7 +19,7 @@ namespace sw std::wstring FontLoaderData::DefaultCharacterSet() { - return std::wstring( L"1234568790.~,/?:;[]{}\\|`!@#$%^&*()-_+=<>\"'abcdefghijklmnopqrstuvxyz柿wABCDEFGHIJKLMNOPQRSTUVXYZƏWAAOAAEEIOUUY" ); + return std::wstring( L"1234568790.~,/?:;[]{}\\|`!@#$%^&*()-_+=<>\"'abcdefghijklmnopqrstuvxyz柿wABCDEFGHIJKLMNOPQRSTUVXYZƏW܊ԩ" ); } TypeID FontLoaderData::GetAssetType () const { return TypeID::get< FontAsset >(); } diff --git a/swGraphicAPI/Tests/TestText/TestFontLoader.cpp b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp index 9229cc59..dd5a4b00 100644 --- a/swGraphicAPI/Tests/TestText/TestFontLoader.cpp +++ b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp @@ -31,4 +31,8 @@ TEST_CASE( "GraphicAPI.Loaders.Font.Loader.Basic", "[GraphicAPI][FontLoader][Fre auto font = api.Load< FontAsset >( "$(FontAssets)/ELICEN.ttf", &init ); REQUIRE( font.IsValid() ); + + auto numChars = FontLoaderData::DefaultCharacterSet().length(); + CHECK( font.Get()->GetGlyphs().size() == numChars ); + CHECK( font.Get()->GetKerning().size() == numChars * numChars ); } From e4257693b3f3cd02c0307165e03d6bcae18ca7ab Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sun, 27 Oct 2024 12:05:15 +0100 Subject: [PATCH 06/96] Test FontLoader for ttf and otf format --- .../Assets/TextAsset/Loader/FontLoader.cpp | 1 + .../Tests/TestText/TestFontLoader.cpp | 23 +++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp index 9fe87336..63206244 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp @@ -63,6 +63,7 @@ bool FreeTypeLoader::CanLoad( const AssetPath& filePath, TypeID r std::string allowedExtensions[] = { ".ttf", + ".otf", }; TypeID allowedTypes[] = diff --git a/swGraphicAPI/Tests/TestText/TestFontLoader.cpp b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp index dd5a4b00..c8f2de30 100644 --- a/swGraphicAPI/Tests/TestText/TestFontLoader.cpp +++ b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp @@ -5,6 +5,8 @@ @copyright File is part of Sleeping Wombat Libraries. */ +#include "swCommonLib\TestUtils\CatchUtils\ExtendedMacros.h" + #include "swGraphicAPI/ResourceManager/ResourceManager.h" #include "swGraphicAPI/ResourceManager/ResourceManagerAPI.h" @@ -22,7 +24,7 @@ using namespace sw; // ================================ // // -TEST_CASE( "GraphicAPI.Loaders.Font.Loader.Basic", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) +TEST_CASE( "GraphicAPI.Loaders.Font.Loader.FontFormat.ttf", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) { auto rm = CreateResourceManagerWithFonts(); auto api = ResourceManagerAPI( rm.get() ); @@ -30,7 +32,24 @@ TEST_CASE( "GraphicAPI.Loaders.Font.Loader.Basic", "[GraphicAPI][FontLoader][Fre FontLoaderData init( 16 ); auto font = api.Load< FontAsset >( "$(FontAssets)/ELICEN.ttf", &init ); - REQUIRE( font.IsValid() ); + REQUIRE_IS_VALID( font ); + + auto numChars = FontLoaderData::DefaultCharacterSet().length(); + CHECK( font.Get()->GetGlyphs().size() == numChars ); + CHECK( font.Get()->GetKerning().size() == numChars * numChars ); +} + +// ================================ // +// +TEST_CASE( "GraphicAPI.Loaders.Font.Loader.FontFormat.otf", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) +{ + auto rm = CreateResourceManagerWithFonts(); + auto api = ResourceManagerAPI( rm.get() ); + + FontLoaderData init( 16 ); + + auto font = api.Load< FontAsset >( "$(FontAssets)/ELICEN.otf", &init ); + REQUIRE_IS_VALID( font ); auto numChars = FontLoaderData::DefaultCharacterSet().length(); CHECK( font.Get()->GetGlyphs().size() == numChars ); From 8b4b43f7f636bd837d70f45fcd069dfe4bb05d29 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Thu, 31 Oct 2024 21:33:24 +0100 Subject: [PATCH 07/96] Render Atlas skeleton --- .../GeometricsCore/Types/Math/SimpleMath.h | 27 ++++++++++ .../GeometricsCore/GeometricsCore.vcxproj | 1 + .../GeometricsCore.vcxproj.filters | 3 ++ swGraphicAPI/Assets/TextAsset/FontAsset.cpp | 11 ++-- swGraphicAPI/Assets/TextAsset/FontAsset.h | 6 +-- .../TextAsset/Loader/FontAssetInitData.cpp | 13 +++++ .../TextAsset/Loader/FontAssetInitData.h | 22 ++++++-- .../Assets/TextAsset/Loader/FontLoader.cpp | 51 ++++++++++++++++--- .../Assets/TextAsset/Loader/FontLoader.h | 8 +++ 9 files changed, 120 insertions(+), 22 deletions(-) create mode 100644 swGeometrics/GeometricsCore/Types/Math/SimpleMath.h diff --git a/swGeometrics/GeometricsCore/Types/Math/SimpleMath.h b/swGeometrics/GeometricsCore/Types/Math/SimpleMath.h new file mode 100644 index 00000000..a8df81ff --- /dev/null +++ b/swGeometrics/GeometricsCore/Types/Math/SimpleMath.h @@ -0,0 +1,27 @@ +#pragma once +/** +@file SimpleMath.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include "swCommonLib/Common/TypesDefinitions.h" + +namespace sw +{ + +/** Source: https://stackoverflow.com/questions/466204/rounding-up-to-next-power-of-2 */ +uint32 RoundUpToPowerOfTwo( uint32 v ) +{ + v--; + v |= v >> 1; + v |= v >> 2; + v |= v >> 4; + v |= v >> 8; + v |= v >> 16; + v++; + + return v; +} + +} diff --git a/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj b/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj index 609dca16..b115520f 100644 --- a/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj +++ b/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj @@ -33,6 +33,7 @@ + diff --git a/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj.filters b/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj.filters index 087362d8..d044d88b 100644 --- a/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj.filters +++ b/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj.filters @@ -80,5 +80,8 @@ Geometric\Types\Math + + Geometric\Types\Math + \ No newline at end of file diff --git a/swGraphicAPI/Assets/TextAsset/FontAsset.cpp b/swGraphicAPI/Assets/TextAsset/FontAsset.cpp index 825f0105..a0eee13c 100644 --- a/swGraphicAPI/Assets/TextAsset/FontAsset.cpp +++ b/swGraphicAPI/Assets/TextAsset/FontAsset.cpp @@ -16,28 +16,27 @@ FontAsset::FontAsset( AssetPath filePath, FontInitData&& initData ) : Resource( filePath ) , m_fontSize( initData.FontSize ) , m_fontAtlas( initData.FontAtlas ) - , m_glyphs( std::move( initData.Glyphs ) ) - , m_kerning( std::move( initData.Kerning ) ) + , m_layout( std::move( initData.Layout) ) {} const Glyph& FontAsset::GetGlyph( wchar_t character ) const { - return this->m_glyphs.at( character ); + return this->m_layout.Glyphs.at( character ); } float FontAsset::GetKerning( wchar_t first, wchar_t second ) const { - return this->m_kerning.at( std::make_pair( first, second ) ); + return this->m_layout.Kerning.at( std::make_pair( first, second ) ); } const std::map& FontAsset::GetGlyphs() const { - return this->m_glyphs; + return this->m_layout.Glyphs; } const std::map& FontAsset::GetKerning() const { - return this->m_kerning; + return this->m_layout.Kerning; } } // sw diff --git a/swGraphicAPI/Assets/TextAsset/FontAsset.h b/swGraphicAPI/Assets/TextAsset/FontAsset.h index 718df08d..f49f9701 100644 --- a/swGraphicAPI/Assets/TextAsset/FontAsset.h +++ b/swGraphicAPI/Assets/TextAsset/FontAsset.h @@ -38,11 +38,7 @@ class FontAsset : public Resource TexturePtr m_fontAtlas; uint32 m_fontSize; - /**Stores information how to render and layout each character*/ - std::map< wchar_t, Glyph > m_glyphs; - - /**Each character pair can be shifted indiidually to give text better look in terms of spacing. */ - std::map< KerningPair, float > m_kerning; + FontLayout m_layout; public: diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp index ef4bb8ef..c0168bb3 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp @@ -12,6 +12,7 @@ #include "FontAssetInitData.h" +#include namespace sw @@ -25,5 +26,17 @@ std::wstring FontLoaderData::DefaultCharacterSet() TypeID FontLoaderData::GetAssetType () const { return TypeID::get< FontAsset >(); } TypeID FontInitData::GetAssetType () const { return TypeID::get< FontAsset >(); } +uint32 FontLayout::GetMaxHeight() const +{ + auto max = std::max_element( this->Glyphs.begin(), this->Glyphs.end(), []( const auto& a, const auto& b ) { return a.second.Height < b.second.Height; } ); + return (*max).second.Height; +} + +uint32 FontLayout::GetMaxWidth() const +{ + auto max = std::max_element( this->Glyphs.begin(), this->Glyphs.end(), []( const auto& a, const auto& b ) { return a.second.Width < b.second.Width; } ); + return (*max).second.Width; +} + } // sw diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h index 7533a822..16df91c7 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h @@ -23,6 +23,22 @@ class ResourceManager; typedef std::pair< wchar_t, wchar_t > KerningPair; +/**@brief Struct contains describing individual characters in font. +@ingroup Text*/ +struct FontLayout +{ + /**Stores information how to render and layout each character*/ + std::map< wchar_t, Glyph > Glyphs; + + /**Each character pair can be shifted individually to give text better look in terms of spacing. */ + std::map< KerningPair, float > Kerning; + +public: + uint32 GetMaxHeight() const; + uint32 GetMaxWidth() const; +}; + + /**@brief Struct contains data needed to initialize font. @ingroup Text*/ struct FontInitData : public IAssetCreateInfo @@ -33,11 +49,7 @@ struct FontInitData : public IAssetCreateInfo TexturePtr FontAtlas; uint32 FontSize; - /**Stores information how to render and layout each character*/ - std::map< wchar_t, Glyph > Glyphs; - - /**Each character pair can be shifted indiidually to give text better look in terms of spacing. */ - std::map< KerningPair, float > Kerning; + FontLayout Layout; public: explicit FontInitData ( uint32 fontSize ) diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp index 63206244..658a1e58 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp @@ -8,11 +8,13 @@ #include "FontLoader.h" -#include +#include "swGraphicAPI/ResourceManager/Loaders/Tools/CanLoad.h" #include "swGraphicAPI/ResourceManager/Exceptions/LoaderException.h" +#include "swGeometrics/GeometricsCore/Types/Math/SimpleMath.h" #include "swGraphicAPI/Assets/TextAsset/FontAsset.h" #include "swGraphicAPI/Assets/TextAsset/Loader/FreeType.h" +#include namespace sw @@ -93,8 +95,9 @@ LoadingResult FreeTypeLoader::Load( const LoadPath& filePath, TypeID resou FontInitData fontDesc( loadInfo->FontSize ); - fontDesc.Glyphs = BuildGlyphs( freeType.Get(), loadInfo->CharacterSet ).Get(); - fontDesc.Kerning = BuildKerning( freeType.Get(), loadInfo->CharacterSet ).Get(); + fontDesc.Layout.Glyphs = BuildGlyphs( freeType.Get(), loadInfo->CharacterSet ).Get(); + fontDesc.Layout.Kerning = BuildKerning( freeType.Get(), loadInfo->CharacterSet ).Get(); + fontDesc.FontAtlas = RenderAtlas( filePath, fontDesc.Layout, context ).Get(); auto result = context.CreateGenericAsset( filePath.GetOriginalPath(), loadInfo->GetAssetType(), std::move( fontDesc ) ); if( result.IsValid() ) @@ -105,11 +108,47 @@ LoadingResult FreeTypeLoader::Load( const LoadPath& filePath, TypeID resou // ================================ // // -ReturnResult FreeTypeLoader::Prefetch( const LoadPath& filePath, TypeID resourceType, const IAssetLoadInfo* assetDesc, RMLoaderAPI factory ) +ReturnResult FreeTypeLoader::Prefetch( const LoadPath& filePath, TypeID resourceType, const IAssetLoadInfo* assetDesc, RMLoaderAPI factory ) { return ReturnResult( fmt::format( "Prefetch operation not supported" ) ); } +// ================================ // +// +Nullable< TexturePtr > FreeTypeLoader::RenderAtlas( const LoadPath& filePath, FontLayout& fontLayout, RMLoaderAPI factory ) +{ + auto glyphsPerRow = (u32)std::ceil( sqrt( (float)fontLayout.Glyphs.size() ) ); + + auto maxWidth = fontLayout.GetMaxWidth(); + auto maxHeight = fontLayout.GetMaxHeight(); + + auto altlasWidth = maxWidth * glyphsPerRow; + auto altlasHeight = maxHeight * glyphsPerRow; + + altlasWidth = RoundUpToPowerOfTwo( maxWidth * glyphsPerRow ); + altlasHeight = RoundUpToPowerOfTwo( maxHeight * glyphsPerRow ); + + auto buffer = RenderAtlasToBuffer( fontLayout, altlasWidth, altlasHeight ); + + TextureInitData texInfo( buffer.MoveToRawBuffer() ); + texInfo.Width = altlasWidth; + texInfo.Height = altlasHeight; + texInfo.MipMaps = MipMapsInfo( MipMapFilter::Lanczos3 ); + texInfo.TextureUsage = TextureUsageInfo(); + texInfo.Format = ResourceFormat::RESOURCE_FORMAT_R8G8B8A8_UNORM; + + return factory.CreateAsset< Texture >( AssetPath( filePath.GetFileTranslated(), "/FontAtlas" ), std::move( texInfo ) ); +} + +// ================================ // +// +BufferTyped< u32 > FreeTypeLoader::RenderAtlasToBuffer( FontLayout& initData, uint32 width, uint32 height ) +{ + auto buffer = BufferTyped< u32 >( width * height ); + return buffer; +} + + // ================================ // // FreeTypeLibrary implementation @@ -163,8 +202,8 @@ Nullable FreeTypeLibrary::LoadGlyph( wchar_t character ) cons newGlyph.CharCode = character; newGlyph.GlyphIdx = gindex; - newGlyph.Width = this->Face->glyph->metrics.height; - newGlyph.Height = this->Face->glyph->metrics.width; + newGlyph.Width = this->Face->glyph->metrics.height >> FT_PrecisionMult; + newGlyph.Height = this->Face->glyph->metrics.width >> FT_PrecisionMult; newGlyph.BearingX = this->Face->glyph->metrics.horiBearingX >> FT_PrecisionMult; newGlyph.BearingY = this->Face->glyph->metrics.horiBearingY >> FT_PrecisionMult; diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h index e01c3589..64eb1594 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h @@ -6,6 +6,7 @@ */ #include "swCommonLib/Common/Exceptions/Nullable.h" +#include "swCommonLib/Common/Buffers/BufferTyped.h" #include "swGraphicAPI/ResourceManager/Loaders/IAssetLoadInfo.h" #include "swGraphicAPI/ResourceManager/Loaders/IAssetLoader.h" @@ -14,6 +15,8 @@ namespace sw { +struct FontLayout; + /**@brief Loads fonts using FreeType Library. http://freetype.org/freetype2/docs/tutorial/step1.html#section-1 @@ -29,6 +32,11 @@ class FreeTypeLoader : public IAssetLoader virtual bool CanLoad ( const AssetPath& filePath, TypeID resourceType ) override; virtual LoadingResult Load ( const LoadPath& filePath, TypeID resourceType, const IAssetLoadInfo* assetDesc, RMLoaderAPI context ) override; virtual ReturnResult Prefetch ( const LoadPath& filePath, TypeID resourceType, const IAssetLoadInfo* assetDesc, RMLoaderAPI factory ) override; + +public: + /**@brief Renders Texture Atlas. Modifies FontLayout by adding texture mapping.*/ + Nullable< TexturePtr > RenderAtlas ( const LoadPath& filePath, FontLayout& initData, RMLoaderAPI factor ); + BufferTyped< u32 > RenderAtlasToBuffer ( FontLayout& initData, uint32 width, uint32 height ); }; From 8e7f36e5f73d0057c1d06c4b1e6dd5e3eace6685 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Thu, 31 Oct 2024 22:52:45 +0100 Subject: [PATCH 08/96] Implement Path::ChnageExtension; SOIL image saving function --- swCommonLib/Common/Buffers/BufferTyped.h | 2 ++ swCommonLib/System/Path.h | 20 +++++++++++++++++ swCommonLib/Tests/FileSystemTest/PathTest.cpp | 22 +++++++++++++++++++ .../Assets/TextAsset/Loader/FontLoader.cpp | 8 ++++++- .../SoilTextureLoader/SoilTextureLoader.cpp | 22 +++++++++++++++++++ .../SoilTextureLoader/SoilTextureLoader.h | 1 + .../SoilTextureLoader.vcxproj | 8 +++---- .../Tests/TestText/TestText.vcxproj | 1 - .../Visual2015/TextAsset/TextAsset.vcxproj | 3 +++ 9 files changed, 81 insertions(+), 6 deletions(-) diff --git a/swCommonLib/Common/Buffers/BufferTyped.h b/swCommonLib/Common/Buffers/BufferTyped.h index 3e11c25e..fb11bc60 100644 --- a/swCommonLib/Common/Buffers/BufferTyped.h +++ b/swCommonLib/Common/Buffers/BufferTyped.h @@ -9,6 +9,7 @@ #include "swCommonLib/Common/RTTR.h" #include "BufferRaw.h" +#include "BufferRange.h" #include #include @@ -66,6 +67,7 @@ class BufferTyped /**@brief Creates raw buffer. Note that new buffer will be owner of memory and this object ends empty.*/ BufferRaw MoveToRawBuffer (); + BufferRange GetView () { return BufferRange( GetRawData(), GetSize() ); } public: static BufferRaw CreateEmpty (); diff --git a/swCommonLib/System/Path.h b/swCommonLib/System/Path.h index 403010fb..ae7f5b64 100644 --- a/swCommonLib/System/Path.h +++ b/swCommonLib/System/Path.h @@ -72,6 +72,7 @@ class Path void Normalize (); void MakeAbsolute (); + Path ChangeExtension ( const std::string& extension ) const; //bool HasRoot () const; @@ -287,6 +288,25 @@ inline void Path::MakeAbsolute () m_path.make_absolute(); } +// ================================ // +// +inline Path Path::ChangeExtension( const std::string& extension ) const +{ + auto ext = m_path.extension(); + auto filename = m_path.filename(); + + if( filename == "." || filename == ".." ) + return Path( *this ); + + auto startPos = filename.rfind( ext ); + if( startPos != std::string::npos ) + { + filename.replace( startPos, filename.length(), extension ); + return m_path.parent_path() / filename; + } + return Path( *this ); +} + ///**@brief */ //inline bool Path::HasRoot() const //{ diff --git a/swCommonLib/Tests/FileSystemTest/PathTest.cpp b/swCommonLib/Tests/FileSystemTest/PathTest.cpp index 0ce5dde3..74087ac4 100644 --- a/swCommonLib/Tests/FileSystemTest/PathTest.cpp +++ b/swCommonLib/Tests/FileSystemTest/PathTest.cpp @@ -50,3 +50,25 @@ TEST_CASE( "Path - Aquire Extension" ) CHECK( path9.GetExtension() == ".hidden" ); } +// ================================ // +// +TEST_CASE( "Path.ChnageExtension" ) +{ + filesystem::Path path1( "/foo/bar.txt" ); + filesystem::Path path2( "/foo/bar." ); + filesystem::Path path3( "/foo/bar" ); + filesystem::Path path4( "/foo/bar.txt/bar.cc" ); + filesystem::Path path7( "/foo/." ); + filesystem::Path path8( "/foo/.." ); + filesystem::Path path9( "/foo/.hidden" ); + + CHECK( path1.ChangeExtension( ".png" ) == "/foo/bar.png"); + CHECK( path2.ChangeExtension( ".png" ) == "/foo/bar.png" ); + CHECK( path3.ChangeExtension( ".png" ) == "/foo/bar.png" ); + CHECK( path4.ChangeExtension( ".png" ) == "/foo/bar.txt/bar.png" ); + + CHECK( path7.ChangeExtension( ".png" ) == "/foo/." ); + CHECK( path8.ChangeExtension( ".png" ) == "/foo/.." ); + CHECK( path9.ChangeExtension( ".png" ) == "/foo/.png" ); +} + diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp index 658a1e58..3761b841 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp @@ -12,6 +12,7 @@ #include "swGraphicAPI/ResourceManager/Exceptions/LoaderException.h" #include "swGeometrics/GeometricsCore/Types/Math/SimpleMath.h" +#include "swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.h" #include "swGraphicAPI/Assets/TextAsset/FontAsset.h" #include "swGraphicAPI/Assets/TextAsset/Loader/FreeType.h" #include @@ -130,6 +131,8 @@ Nullable< TexturePtr > FreeTypeLoader::RenderAtlas( const LoadPath& filePat auto buffer = RenderAtlasToBuffer( fontLayout, altlasWidth, altlasHeight ); + SoilTextureLoader::Save( filePath.GetFileTranslated().ChangeExtension( ".png" ), buffer.GetView(), altlasWidth, altlasHeight); + TextureInitData texInfo( buffer.MoveToRawBuffer() ); texInfo.Width = altlasWidth; texInfo.Height = altlasHeight; @@ -137,7 +140,7 @@ Nullable< TexturePtr > FreeTypeLoader::RenderAtlas( const LoadPath& filePat texInfo.TextureUsage = TextureUsageInfo(); texInfo.Format = ResourceFormat::RESOURCE_FORMAT_R8G8B8A8_UNORM; - return factory.CreateAsset< Texture >( AssetPath( filePath.GetFileTranslated(), "/FontAtlas" ), std::move( texInfo ) ); + return factory.CreateAsset< Texture >( AssetPath( filePath.GetFileTranslated(), "/FontAtlas"), std::move(texInfo)); } // ================================ // @@ -145,6 +148,9 @@ Nullable< TexturePtr > FreeTypeLoader::RenderAtlas( const LoadPath& filePat BufferTyped< u32 > FreeTypeLoader::RenderAtlasToBuffer( FontLayout& initData, uint32 width, uint32 height ) { auto buffer = BufferTyped< u32 >( width * height ); + + std::memset( buffer.GetRawData(), 0, buffer.GetSize() ); + return buffer; } diff --git a/swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.cpp b/swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.cpp index a670099b..0c7c3cdd 100644 --- a/swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.cpp +++ b/swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.cpp @@ -20,9 +20,11 @@ #include +#define STB_IMAGE_WRITE_IMPLEMENTATION #define STB_IMAGE_IMPLEMENTATION #define STBI_FAILURE_USERMSG #include "SOIL/stb_image.h" +#include "SOIL/stb_image_write.h" namespace sw @@ -170,6 +172,26 @@ ReturnResult SoilTextureLoader::Prefetch ( const LoadPath& filePath, return Success::False; } +// ================================ // +// +ReturnResult SoilTextureLoader::Save ( const filesystem::Path& filePath, const BufferRange buffer, uint32 width, uint32 height ) +{ + Size expectedSize = width * height * 4; + if( buffer.DataSize != expectedSize ) + return ReturnResult( fmt::format( "Buffer size: {} doesn't match expected image width = {}, height = {}", expectedSize, width, height ) ); + + int save_result = stbi_write_png + ( + filePath.String().c_str(), + width, height, 4, + buffer.DataPtr, 0 + ); + + if( save_result != 0 ) + return ReturnResult( fmt::format( "Failed to save texture to file: {}", filePath.String() ) ); + return Success::True; +} + } // sw diff --git a/swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.h b/swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.h index 584ed6de..02bbf3ef 100644 --- a/swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.h +++ b/swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.h @@ -34,6 +34,7 @@ class SoilTextureLoader : public IAssetLoader virtual LoadingResult Load ( const LoadPath& filePath, TypeID resourceType, const IAssetLoadInfo* assetDesc, RMLoaderAPI factory ) override; virtual ReturnResult Prefetch ( const LoadPath& filePath, TypeID resourceType, const IAssetLoadInfo* assetDesc, RMLoaderAPI factory ) override; + static ReturnResult Save ( const filesystem::Path& filePath, const BufferRange data, uint32 width, uint32 height ); public: diff --git a/swGraphicAPI/ProjectsDir/Visual2015/SoilTextureLoader/SoilTextureLoader.vcxproj b/swGraphicAPI/ProjectsDir/Visual2015/SoilTextureLoader/SoilTextureLoader.vcxproj index b9d78529..2f629d12 100644 --- a/swGraphicAPI/ProjectsDir/Visual2015/SoilTextureLoader/SoilTextureLoader.vcxproj +++ b/swGraphicAPI/ProjectsDir/Visual2015/SoilTextureLoader/SoilTextureLoader.vcxproj @@ -135,7 +135,7 @@ Use Level3 Disabled - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;_DEBUG;_LIB;%(PreprocessorDefinitions) swGraphicAPI/Loaders/SoilTextureLoader/stdafx.h @@ -148,7 +148,7 @@ Use Level3 Disabled - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;_DEBUG;_LIB;%(PreprocessorDefinitions) swGraphicAPI/Loaders/SoilTextureLoader/stdafx.h @@ -163,7 +163,7 @@ MaxSpeed true true - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;NDEBUG;_LIB;%(PreprocessorDefinitions) swGraphicAPI/Loaders/SoilTextureLoader/stdafx.h @@ -180,7 +180,7 @@ MaxSpeed true true - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;NDEBUG;_LIB;%(PreprocessorDefinitions) swGraphicAPI/Loaders/SoilTextureLoader/stdafx.h diff --git a/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj b/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj index c1f0cef5..49ff3c53 100644 --- a/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj +++ b/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj @@ -76,7 +76,6 @@ - diff --git a/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj b/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj index 5a6d68cd..0d5872cd 100644 --- a/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj +++ b/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj @@ -53,6 +53,9 @@ {9f71f0da-1d72-4e96-93b7-5ac2c9cb6ede} + + {7275758b-1abc-4b28-bb42-cbdbcd2584d1} + From 503c520d406d1c8460db84fd07cea9f454f75035 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Fri, 1 Nov 2024 15:02:32 +0100 Subject: [PATCH 09/96] Introduce Image and ImageRegion structs --- swCommonLib/Common/Buffers/BufferTyped.h | 18 ++- swCommonLib/Common/Buffers/Image.h | 102 +++++++++++++ swCommonLib/Common/Buffers/ImageRegion.h | 113 ++++++++++++++ .../Visual2015/CommonBase/CommonBase.vcxproj | 2 + .../CommonBase/CommonBase.vcxproj.filters | 6 + .../Tests/BuffersTest/TestBuffers.vcxproj | 4 +- swCommonLib/Tests/BuffersTest/TestImage.cpp | 143 ++++++++++++++++++ 7 files changed, 384 insertions(+), 4 deletions(-) create mode 100644 swCommonLib/Common/Buffers/Image.h create mode 100644 swCommonLib/Common/Buffers/ImageRegion.h create mode 100644 swCommonLib/Tests/BuffersTest/TestImage.cpp diff --git a/swCommonLib/Common/Buffers/BufferTyped.h b/swCommonLib/Common/Buffers/BufferTyped.h index fb11bc60..fde5dfc3 100644 --- a/swCommonLib/Common/Buffers/BufferTyped.h +++ b/swCommonLib/Common/Buffers/BufferTyped.h @@ -54,15 +54,23 @@ class BufferTyped Size GetSize () const { return m_count * sizeof( ContentType ); } Size ElementsCount () const { return m_count; } Size ElementSize () const { return sizeof( ContentType ); } + + bool IsValid () const { return m_data != nullptr; } + uint8* GetRawData () { return reinterpret_cast< uint8* >( m_data ); } const uint8* GetRawData () const { return reinterpret_cast< const uint8* >( m_data ); } - bool IsValid () const { return m_data != nullptr; } + + ContentType* GetData () { return static_cast< ContentType* >( m_data ); } + const ContentType* GetData () const { return static_cast< const ContentType* >( m_data ); } + public: ContentType& operator[] ( Size idx ); const ContentType& operator[] ( Size idx ) const; + void ZeroMemory(); + public: /**@brief Creates raw buffer. Note that new buffer will be owner of memory and this object ends empty.*/ @@ -190,6 +198,14 @@ inline const ContentType& BufferTyped< ContentType, Alloc >::operator[] ( Size return m_data[ idx ]; } +// ================================ // +// +template +inline void BufferTyped< ContentType, Alloc >::ZeroMemory() +{ + std::memset( this->GetRawData(), 0, this->GetSize()); +} + // ================================ // // template< typename ContentType, class Alloc > diff --git a/swCommonLib/Common/Buffers/Image.h b/swCommonLib/Common/Buffers/Image.h new file mode 100644 index 00000000..f5894ad2 --- /dev/null +++ b/swCommonLib/Common/Buffers/Image.h @@ -0,0 +1,102 @@ +#pragma once +/** +@file Image.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include "swCommonLib/Common/TypesDefinitions.h" + +#include "BufferTyped.h" + + +namespace sw +{ + +/**Represents buffer containing image.*/ +template< typename ContentType, class Alloc = std::allocator< ContentType > > +class Image +{ +private: +protected: + + BufferTyped< ContentType, Alloc > m_buffer; + uint32 m_width; + uint32 m_height; + + /**Fallback Pixel returned in case access operation was attempted outside + of image bounds. @ref Image class doesn't throw exception or cause access + vioation in this case.*/ + ContentType m_fallback; + +public: + explicit Image( BufferTyped< ContentType >&& buffer, uint32 width, uint32 height ) + : m_buffer( std::move( buffer ) ) + , m_width( width ) + , m_height( height ) + , m_fallback( ContentType() ) + { + assert( m_buffer.ElementsCount() == m_width * m_height ); + } + + explicit Image( uint32 width, uint32 height ) + : m_buffer( BufferTyped< ContentType >( width * height ) ) + , m_width( width ) + , m_height( height ) + , m_fallback( ContentType() ) + {} + + Image( const Image& image ) = default; + Image( Image&& image ) = default; + ~Image() = default; + +public: + u32 GetWidth () const { return m_width; } + u32 GetHeight () const { return m_height; } + u8 GetChannels () const { return (u8)m_buffer.ElementSize(); } + + TypeID GetType () const { return m_buffer.GetType(); } + Size GetSize () const { return m_buffer.GetSize(); } + Size ElementsCount () const { return m_buffer.ElementsCount(); } + Size ElementSize () const { return m_buffer.ElementSize(); } + + uint8* GetRawData () { return m_buffer.GetRawData(); } + const uint8* GetRawData () const { return m_buffer.GetRawData(); } + + ContentType* GetData () { return static_cast< ContentType* >( m_buffer.GetData() ); } + const ContentType* GetData () const { return static_cast< const ContentType* >( m_buffer.GetData() ); } + +public: + + ContentType& operator() ( uint32 x, uint32 y ); + void ZeroMemory () { m_buffer.ZeroMemory(); } + + /**Checks if there was no write attempt outside of image bounds.*/ + bool SanityCheck () const { return m_fallback != ContentType(); } + +public: + /**@brief Takes ownership of memory buffer.*/ + BufferTyped< ContentType, Alloc > Move (); +}; + +// ================================ // +// + +template +inline ContentType& Image::operator()( uint32 x, uint32 y ) +{ + if( x >= m_width || y >= m_height ) + return m_fallback; + return m_buffer[ y * m_width + x ]; +} + +// ================================ // +// + +template +inline BufferTyped Image::Move() +{ + return std::move( this->m_buffer ); +} + +} diff --git a/swCommonLib/Common/Buffers/ImageRegion.h b/swCommonLib/Common/Buffers/ImageRegion.h new file mode 100644 index 00000000..30f23816 --- /dev/null +++ b/swCommonLib/Common/Buffers/ImageRegion.h @@ -0,0 +1,113 @@ +#pragma once +/** +@file ImageRegion.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include "swCommonLib/Common/TypesDefinitions.h" +#include "swCommonLib/Common/Exceptions/Nullable.h" +#include "swCommonLib/Common/fmt.h" + +#include "Image.h" + + +namespace sw +{ + +/**Region of an image represented as top left point and dimmension of the rectangle.*/ +struct ImageRect +{ + uint32 X; + uint32 Y; + uint32 Width; + uint32 Height; +}; + + + +/**@brief Represents region of an image and implements basic operations. +This class doesn't own the data.*/ +template< typename ContentType, class Alloc = std::allocator< ContentType > > +class ImageRegion +{ +private: +protected: + + Image< ContentType, Alloc >& m_image; + ImageRect m_region; + + /**Fallback Pixel returned in case access operation was attempted outside + of image bounds. @ref Image class doesn't throw exception or cause access + vioation in this case.*/ + ContentType m_fallback; + +protected: + explicit ImageRegion( Image< ContentType, Alloc >& image, ImageRect region ) + : m_image( image ) + , m_region( region ) + { + assert( m_image.GetHeight() >= region.Y + region.Height ); + assert( m_image.GetWidth() >= region.X + region.Width ); + } + +public: + ImageRegion( const ImageRegion& image ) = default; + ImageRegion( ImageRegion&& image ) = default; + ~ImageRegion() = default; + + /**Creates ImageRegion from Image in a safe way.*/ + static Nullable< ImageRegion< ContentType, Alloc > > From( Image< ContentType, Alloc >& image, ImageRect region ); + +public: + u32 GetOriginalImageWidth () const { return m_image.GetWidth(); } + u32 GetOriginalImageHeight () const { return m_image.GetHeight(); } + u32 GetWidth () const { return m_region.Width; } + u32 GetHeight () const { return m_region.Height; } + u8 GetChannels () const { return (u8)m_image.ElementSize(); } + + TypeID GetType () const { return m_image.GetType(); } + Size GetSize () const { return m_image.GetSize(); } + Size ElementsCount () const { return m_image.ElementsCount(); } + Size ElementSize () const { return m_image.ElementSize(); } + +public: + + /**Access pixel at given position inside the region. + Function translates coordinates to full image space. + + Attempt to access pixel outside of region will fail silently, but won't crash. + Such an attempt can be considered as no operation.*/ + ContentType& operator() ( uint32 x, uint32 y ); + + /**Checks if there was no write attempt outside of image region bounds.*/ + bool SanityCheck () const { return m_fallback != ContentType(); } +}; + + +/**Creates ImageRegion from Image in a safe way.*/ +template +inline Nullable> ImageRegion::From( Image& image, ImageRect region ) +{ + if( region.X + region.Width > image.GetWidth() ) + return std::make_shared< RuntimeException > ( fmt::format( "Region width outside of original image bounds." ) ); + + if( region.Y + region.Height > image.GetHeight() ) + return std::make_shared< RuntimeException > ( fmt::format( "Region height outside of original image bounds." ) ); + + return ImageRegion< ContentType, Alloc >( image, region ); +} + +// ================================ // +// + +template +inline ContentType& ImageRegion::operator()( uint32 x, uint32 y ) +{ + if( x >= m_region.Width || y >= m_region.Height ) + return m_fallback; + + return m_image( x + m_region.X, y + m_region.Y ); +} + +} // sw diff --git a/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj b/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj index bfa78b3f..e623f982 100644 --- a/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj +++ b/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj @@ -38,6 +38,8 @@ + + diff --git a/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj.filters b/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj.filters index 5b78b8da..9b6425b7 100644 --- a/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj.filters +++ b/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj.filters @@ -239,5 +239,11 @@ Common\Exceptions + + Common\Buffers + + + Common\Buffers + \ No newline at end of file diff --git a/swCommonLib/Projects/Visual2015/Tests/BuffersTest/TestBuffers.vcxproj b/swCommonLib/Projects/Visual2015/Tests/BuffersTest/TestBuffers.vcxproj index 79828ead..5102852d 100644 --- a/swCommonLib/Projects/Visual2015/Tests/BuffersTest/TestBuffers.vcxproj +++ b/swCommonLib/Projects/Visual2015/Tests/BuffersTest/TestBuffers.vcxproj @@ -1,6 +1,5 @@  - Debug @@ -22,6 +21,7 @@ + @@ -61,11 +61,9 @@ true Unicode - - diff --git a/swCommonLib/Tests/BuffersTest/TestImage.cpp b/swCommonLib/Tests/BuffersTest/TestImage.cpp new file mode 100644 index 00000000..6c2100d1 --- /dev/null +++ b/swCommonLib/Tests/BuffersTest/TestImage.cpp @@ -0,0 +1,143 @@ +#include "swCommonLib/External/Catch/catch.hpp" + +#include "swCommonLib/Common/Buffers/Image.h" +#include "swCommonLib/Common/Buffers/ImageRegion.h" +#include "swCommonLib/TestUtils/CatchUtils/ExtendedMacros.h" + + + +using namespace sw; + + +// ================================ // +// +TEST_CASE( "Common.Buffers.Image.Create.FromWidthHeight" ) +{ + Image< uint32 > image( 10, 11 ); + + CHECK( image.GetRawData() != nullptr ); + CHECK( image.ElementsCount() == 110 ); + CHECK( image.ElementSize() == 4 ); + CHECK( image.GetType() == TypeID::get< uint32 >() ); + CHECK( image.GetSize() == image.ElementsCount() * sizeof( uint32 ) ); + + CHECK( image.GetChannels() == 4 ); + CHECK( image.GetHeight() == 11 ); + CHECK( image.GetWidth() == 10 ); + + auto ptr = image.GetRawData(); + auto buffer = image.Move(); + CHECK( buffer.GetRawData() != nullptr ); + CHECK( buffer.GetRawData() == ptr ); + CHECK( buffer.ElementsCount() == 110 ); + CHECK( buffer.ElementSize() == 4 ); + CHECK( buffer.GetType() == TypeID::get< uint32 >() ); + CHECK( buffer.GetSize() == 110 * sizeof( uint32 ) ); +} + +// ================================ // +// +TEST_CASE( "Common.Buffers.Image.Create.FromBuffer" ) +{ + BufferTyped< uint32 > srcBuffer( 10 * 11 ); + Image< uint32 > image( std::move( srcBuffer ), 10, 11 ); + + CHECK( image.GetRawData() != nullptr ); + CHECK( image.ElementsCount() == 110 ); + CHECK( image.ElementSize() == 4 ); + CHECK( image.GetType() == TypeID::get< uint32 >() ); + CHECK( image.GetSize() == image.ElementsCount() * sizeof( uint32 ) ); + + CHECK( image.GetChannels() == 4 ); + CHECK( image.GetHeight() == 11 ); + CHECK( image.GetWidth() == 10 ); + + auto ptr = image.GetRawData(); + auto buffer = image.Move(); + CHECK( buffer.GetRawData() != nullptr ); + CHECK( buffer.GetRawData() == ptr ); + CHECK( buffer.ElementsCount() == 110 ); + CHECK( buffer.ElementSize() == 4 ); + CHECK( buffer.GetType() == TypeID::get< uint32 >() ); + CHECK( buffer.GetSize() == 110 * sizeof( uint32 ) ); +} + +// ================================ // +// +TEST_CASE( "Common.Buffers.ImageRegion.Create" ) +{ + Image< uint32 > image( 100, 110 ); + auto region = ImageRegion< uint32 >::From( image, { 10, 10, 10, 10 } ).Get(); + + CHECK( region.ElementsCount() == 11000 ); + CHECK( region.ElementSize() == 4 ); + CHECK( region.GetType() == TypeID::get< uint32 >() ); + CHECK( region.GetSize() == image.ElementsCount() * sizeof( uint32 ) ); + + CHECK( region.GetChannels() == 4 ); + CHECK( region.GetHeight() == 10 ); + CHECK( region.GetWidth() == 10 ); + CHECK( region.GetOriginalImageWidth() == 100 ); + CHECK( region.GetOriginalImageHeight() == 110 ); +} + +// ================================ // +// +TEST_CASE( "Common.Buffers.ImageRegion.Create.RegionOutside" ) +{ + Image< uint32 > image( 100, 110 ); + + REQUIRE_INVALID( ImageRegion< uint32 >::From( image, { 100, 10, 10, 10 } ) ); + REQUIRE_INVALID( ImageRegion< uint32 >::From( image, { 10, 105, 10, 10 } ) ); + REQUIRE_INVALID( ImageRegion< uint32 >::From( image, { 200, 10, 10, 10 } ) ); + REQUIRE_INVALID( ImageRegion< uint32 >::From( image, { 10, 200, 10, 10 } ) ); + + REQUIRE_IS_VALID( ImageRegion< uint32 >::From( image, { 90, 10, 10, 10 } ) ); + REQUIRE_IS_VALID( ImageRegion< uint32 >::From( image, { 10, 100, 10, 10 } ) ); +} + +// ================================ // +// +TEST_CASE( "Common.Buffers.ImageRegion.AccessPixel" ) +{ + Image< uint32 > image( 100, 100 ); + auto region = ImageRegion< uint32 >::From( image, { 10, 10, 10, 10 } ).Get(); + image.ZeroMemory(); + + const uint32 pixelSet = 0xFFBBCCAA; + + // These pixels should be set properly + region( 0, 0 ) = pixelSet; + region( 3, 5 ) = pixelSet; + region( 9, 9 ) = pixelSet; + // These pixels are outside of ImageRegion + region( 10, 10 ) = pixelSet; + region( 15, 15 ) = pixelSet; + region( 100, 100 ) = pixelSet; + region( 50, 200 ) = pixelSet; + region( 200, 200 ) = pixelSet; + + CHECK( image( 10, 10 ) == pixelSet ); + CHECK( image( 13, 15 ) == pixelSet ); + CHECK( image( 19, 19 ) == pixelSet ); + CHECK( image( 20, 20 ) == 0x0 ); + CHECK( image( 25, 25 ) == 0x0 ); + + // Only 3 pixels that were set correctly should be writen to memory. + // All other pixels should be untouched. + uint64 numPixelsSet = 0; + uint64 numNonZeroPixels = 0; + for( size_t i = 0; i < image.ElementsCount(); i++ ) + { + auto pixel = *(image.GetData() + i); + if( pixel == pixelSet ) + numPixelsSet++; + + if( pixel != 0x0 ) + numNonZeroPixels++; + } + + CHECK( numPixelsSet == 3 ); + CHECK( numNonZeroPixels == 3 ); +} + From 31925292b27d2a21ef2e762b024c86b73b1b8ed0 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Fri, 1 Nov 2024 17:23:28 +0100 Subject: [PATCH 10/96] Font Atlas rendering works --- swGraphicAPI/Assets/TextAsset/Glyph.h | 2 +- .../TextAsset/Loader/FontAssetInitData.cpp | 25 ++++ .../TextAsset/Loader/FontAssetInitData.h | 10 ++ .../Assets/TextAsset/Loader/FontLoader.cpp | 122 +++++++++++++++--- .../Assets/TextAsset/Loader/FontLoader.h | 7 +- .../Assets/TextAsset/Loader/FreeType.h | 5 + .../SoilTextureLoader/SoilTextureLoader.cpp | 15 ++- .../SoilTextureLoader/SoilTextureLoader.h | 3 +- .../Resources/Textures/TextureInitData.h | 25 +++- swGraphicAPI/TestResources/fonts/arial.ttf | Bin 0 -> 367112 bytes .../Tests/TestText/TestFontLoader.cpp | 21 ++- 11 files changed, 203 insertions(+), 32 deletions(-) create mode 100644 swGraphicAPI/TestResources/fonts/arial.ttf diff --git a/swGraphicAPI/Assets/TextAsset/Glyph.h b/swGraphicAPI/Assets/TextAsset/Glyph.h index 981241e2..6cfedc81 100644 --- a/swGraphicAPI/Assets/TextAsset/Glyph.h +++ b/swGraphicAPI/Assets/TextAsset/Glyph.h @@ -24,7 +24,7 @@ struct Glyph uint32 TextureX; // x pixel coord of the bitmap's bottom-left corner uint32 TextureY; // y pixel coord of the bitmap's bottom-left corner - Size Padding; + Size Padding; // Padding around glyph in texture atlas. It's used to prevent texture bleeding. public: explicit Glyph() diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp index c0168bb3..4afb07cc 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp @@ -18,6 +18,9 @@ namespace sw { +// ================================ // +// + std::wstring FontLoaderData::DefaultCharacterSet() { return std::wstring( L"1234568790.~,/?:;[]{}\\|`!@#$%^&*()-_+=<>\"'abcdefghijklmnopqrstuvxyz柿wABCDEFGHIJKLMNOPQRSTUVXYZƏW܊ԩ" ); @@ -26,17 +29,39 @@ std::wstring FontLoaderData::DefaultCharacterSet() TypeID FontLoaderData::GetAssetType () const { return TypeID::get< FontAsset >(); } TypeID FontInitData::GetAssetType () const { return TypeID::get< FontAsset >(); } +// ================================ // +// + uint32 FontLayout::GetMaxHeight() const { auto max = std::max_element( this->Glyphs.begin(), this->Glyphs.end(), []( const auto& a, const auto& b ) { return a.second.Height < b.second.Height; } ); return (*max).second.Height; } +// ================================ // +// + uint32 FontLayout::GetMaxWidth() const { auto max = std::max_element( this->Glyphs.begin(), this->Glyphs.end(), []( const auto& a, const auto& b ) { return a.second.Width < b.second.Width; } ); return (*max).second.Width; } +// ================================ // +// + +uint32 FontLayout::GetMaxHeightWithPadding() const +{ + return GetMaxHeight() + 2*Padding; +} + +// ================================ // +// + +uint32 FontLayout::GetMaxWidthWithPadding() const +{ + return GetMaxWidth() + 2 * Padding; +} + } // sw diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h index 16df91c7..783ee9a3 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h @@ -33,9 +33,19 @@ struct FontLayout /**Each character pair can be shifted individually to give text better look in terms of spacing. */ std::map< KerningPair, float > Kerning; + /**Padding around glyph in texture atlas. It's used to prevent texture bleeding.*/ + uint32 Padding; + +public: + explicit FontLayout() + : Padding( 1 ) + {} + public: uint32 GetMaxHeight() const; uint32 GetMaxWidth() const; + uint32 GetMaxHeightWithPadding() const; + uint32 GetMaxWidthWithPadding() const; }; diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp index 3761b841..c424a402 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp @@ -8,6 +8,8 @@ #include "FontLoader.h" +#include "swCommonLib/Common/Buffers/ImageRegion.h" + #include "swGraphicAPI/ResourceManager/Loaders/Tools/CanLoad.h" #include "swGraphicAPI/ResourceManager/Exceptions/LoaderException.h" #include "swGeometrics/GeometricsCore/Types/Math/SimpleMath.h" @@ -96,9 +98,10 @@ LoadingResult FreeTypeLoader::Load( const LoadPath& filePath, TypeID resou FontInitData fontDesc( loadInfo->FontSize ); + fontDesc.Layout.Padding = 1; fontDesc.Layout.Glyphs = BuildGlyphs( freeType.Get(), loadInfo->CharacterSet ).Get(); fontDesc.Layout.Kerning = BuildKerning( freeType.Get(), loadInfo->CharacterSet ).Get(); - fontDesc.FontAtlas = RenderAtlas( filePath, fontDesc.Layout, context ).Get(); + fontDesc.FontAtlas = RenderAtlas( freeType, filePath, fontDesc.Layout, context ).Get(); auto result = context.CreateGenericAsset( filePath.GetOriginalPath(), loadInfo->GetAssetType(), std::move( fontDesc ) ); if( result.IsValid() ) @@ -116,12 +119,13 @@ ReturnResult FreeTypeLoader::Prefetch( const LoadPath& filePath, // ================================ // // -Nullable< TexturePtr > FreeTypeLoader::RenderAtlas( const LoadPath& filePath, FontLayout& fontLayout, RMLoaderAPI factory ) +Nullable< TexturePtr > FreeTypeLoader::RenderAtlas( const FreeTypeLibrary& freeType, const LoadPath& filePath, FontLayout& fontLayout, RMLoaderAPI factory ) { auto glyphsPerRow = (u32)std::ceil( sqrt( (float)fontLayout.Glyphs.size() ) ); - auto maxWidth = fontLayout.GetMaxWidth(); - auto maxHeight = fontLayout.GetMaxHeight(); + uint32 padding = 1; + auto maxWidth = fontLayout.GetMaxWidthWithPadding(); + auto maxHeight = fontLayout.GetMaxHeightWithPadding(); auto altlasWidth = maxWidth * glyphsPerRow; auto altlasHeight = maxHeight * glyphsPerRow; @@ -129,13 +133,11 @@ Nullable< TexturePtr > FreeTypeLoader::RenderAtlas( const LoadPath& filePat altlasWidth = RoundUpToPowerOfTwo( maxWidth * glyphsPerRow ); altlasHeight = RoundUpToPowerOfTwo( maxHeight * glyphsPerRow ); - auto buffer = RenderAtlasToBuffer( fontLayout, altlasWidth, altlasHeight ); + auto image = RenderAtlasToBuffer( freeType, fontLayout, altlasWidth, altlasHeight ); - SoilTextureLoader::Save( filePath.GetFileTranslated().ChangeExtension( ".png" ), buffer.GetView(), altlasWidth, altlasHeight); + SoilTextureLoader::Save( filePath.GetFileTranslated().ChangeExtension( ".png" ), image ); - TextureInitData texInfo( buffer.MoveToRawBuffer() ); - texInfo.Width = altlasWidth; - texInfo.Height = altlasHeight; + TextureInitData texInfo( std::move( image ) ); texInfo.MipMaps = MipMapsInfo( MipMapFilter::Lanczos3 ); texInfo.TextureUsage = TextureUsageInfo(); texInfo.Format = ResourceFormat::RESOURCE_FORMAT_R8G8B8A8_UNORM; @@ -145,13 +147,48 @@ Nullable< TexturePtr > FreeTypeLoader::RenderAtlas( const LoadPath& filePat // ================================ // // -BufferTyped< u32 > FreeTypeLoader::RenderAtlasToBuffer( FontLayout& initData, uint32 width, uint32 height ) +Image< u32 > FreeTypeLoader::RenderAtlasToBuffer( const FreeTypeLibrary& freeType, FontLayout& fontLayout, uint32 width, uint32 height ) { - auto buffer = BufferTyped< u32 >( width * height ); + auto image = Image< u32 >( width, height ); + image.ZeroMemory(); + + uint8* currAddress = image.GetRawData(); + + auto glyphsIter = fontLayout.Glyphs.begin(); + auto maxWidth = fontLayout.GetMaxWidthWithPadding(); + auto maxHeight = fontLayout.GetMaxHeightWithPadding(); - std::memset( buffer.GetRawData(), 0, buffer.GetSize() ); + uint32 curX = 0; + uint32 curY = 0; + + for( auto& [wchar, glyph] : fontLayout.Glyphs ) + { + // Adjust rectangle to keep padding around glyph. + ImageRect rect = + { + curX + fontLayout.Padding, + curY + fontLayout.Padding, + glyph.Width, + glyph.Height + }; + auto region = ImageRegion< u32 >::From( image, rect ).Get(); + + freeType.RenderGlyph( glyph, region ); + + glyph.TextureX = rect.X; + glyph.TextureY = rect.Y; + glyph.Padding = fontLayout.Padding; + + curX += maxWidth; + // No more space in current row, move to next. + if( curX + maxWidth >= width ) + { + curX = 0; + curY += maxHeight; + } + } - return buffer; + return image; } @@ -208,8 +245,8 @@ Nullable FreeTypeLibrary::LoadGlyph( wchar_t character ) cons newGlyph.CharCode = character; newGlyph.GlyphIdx = gindex; - newGlyph.Width = this->Face->glyph->metrics.height >> FT_PrecisionMult; - newGlyph.Height = this->Face->glyph->metrics.width >> FT_PrecisionMult; + newGlyph.Height = this->Face->glyph->metrics.height >> FT_PrecisionMult; + newGlyph.Width = this->Face->glyph->metrics.width >> FT_PrecisionMult; newGlyph.BearingX = this->Face->glyph->metrics.horiBearingX >> FT_PrecisionMult; newGlyph.BearingY = this->Face->glyph->metrics.horiBearingY >> FT_PrecisionMult; @@ -243,4 +280,59 @@ Nullable FreeTypeLibrary::Kerning( wchar_t first, wchar_t sec return Nullable( float( kerning.x >> FT_PrecisionMult ) ); } +// ================================ // +// +void FreeTypeLibrary::RenderGlyph( const Glyph& glyph, ImageRegion< u32 >& image ) const +{ + FT_Load_Glyph( this->Face, glyph.GlyphIdx, FT_LOAD_RENDER ); + + FT_Bitmap* bitmap = &this->Face->glyph->bitmap; + + for( uint32 x = 0; x < image.GetWidth(); x++ ) + { + for( uint32 y = 0; y < image.GetHeight(); y++ ) + { + auto pixel = bitmap->buffer[ y * bitmap->width + x ]; + image( x, y ) = 0x00FFFFFF + ((u32)pixel << 24); + } + } +} + +///* load glyph image into the slot (erase previous one) */ +//error = FT_Load_Char( face, text[ n ], FT_LOAD_RENDER ); +//if( error ) +// continue; /* ignore errors */ + +///* now, draw to our target surface (convert position) */ +//draw_bitmap( &slot->bitmap, +// slot->bitmap_left, +// target_height - slot->bitmap_top ); + + +//void +//draw_bitmap( FT_Bitmap* bitmap, +// FT_Int x, +// FT_Int y ) +//{ +// FT_Int i, j, p, q; +// FT_Int x_max = x + bitmap->width; +// FT_Int y_max = y + bitmap->rows; +// +// +// /* for simplicity, we assume that `bitmap->pixel_mode' */ +// /* is `FT_PIXEL_MODE_GRAY' (i.e., not a bitmap font) */ +// +// for( i = x, p = 0; i < x_max; i++, p++ ) +// { +// for( j = y, q = 0; j < y_max; j++, q++ ) +// { +// if( i < 0 || j < 0 || +// i >= WIDTH || j >= HEIGHT ) +// continue; +// +// image[ j ][ i ] |= bitmap->buffer[ q * bitmap->width + p ]; +// } +// } +//} + } diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h index 64eb1594..12657125 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h @@ -6,7 +6,7 @@ */ #include "swCommonLib/Common/Exceptions/Nullable.h" -#include "swCommonLib/Common/Buffers/BufferTyped.h" +#include "swCommonLib/Common/Buffers/Image.h" #include "swGraphicAPI/ResourceManager/Loaders/IAssetLoadInfo.h" #include "swGraphicAPI/ResourceManager/Loaders/IAssetLoader.h" @@ -16,6 +16,7 @@ namespace sw { struct FontLayout; +class FreeTypeLibrary; /**@brief Loads fonts using FreeType Library. @@ -35,8 +36,8 @@ class FreeTypeLoader : public IAssetLoader public: /**@brief Renders Texture Atlas. Modifies FontLayout by adding texture mapping.*/ - Nullable< TexturePtr > RenderAtlas ( const LoadPath& filePath, FontLayout& initData, RMLoaderAPI factor ); - BufferTyped< u32 > RenderAtlasToBuffer ( FontLayout& initData, uint32 width, uint32 height ); + Nullable< TexturePtr > RenderAtlas ( const FreeTypeLibrary& freeType, const LoadPath& filePath, FontLayout& initData, RMLoaderAPI factor ); + Image< u32 > RenderAtlasToBuffer ( const FreeTypeLibrary& freeType, FontLayout& initData, uint32 width, uint32 height ); }; diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h b/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h index 63065fe4..ddb3e234 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h @@ -20,6 +20,8 @@ static const char* ftErrorString( FT_Error error ) #include "swCommonLib/Common/Exceptions/Nullable.h" +#include "swCommonLib/Common/Buffers/ImageRegion.h" +#include "swGeometrics/GeometricsCore/Types/Math/Types.h" namespace sw { @@ -43,6 +45,9 @@ class FreeTypeLibrary Nullable< Glyph > LoadGlyph ( wchar_t character ) const; Nullable< float > Kerning ( wchar_t first, wchar_t second ) const; + + /**Renders Glyph to bitmap in selected rectangle.*/ + void RenderGlyph ( const Glyph& glyph, ImageRegion< u32 >& image ) const; }; diff --git a/swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.cpp b/swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.cpp index 0c7c3cdd..0f4cfd02 100644 --- a/swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.cpp +++ b/swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.cpp @@ -174,17 +174,20 @@ ReturnResult SoilTextureLoader::Prefetch ( const LoadPath& filePath, // ================================ // // -ReturnResult SoilTextureLoader::Save ( const filesystem::Path& filePath, const BufferRange buffer, uint32 width, uint32 height ) +ReturnResult SoilTextureLoader::Save ( const filesystem::Path& filePath, const Image< u32 >& image ) { - Size expectedSize = width * height * 4; - if( buffer.DataSize != expectedSize ) - return ReturnResult( fmt::format( "Buffer size: {} doesn't match expected image width = {}, height = {}", expectedSize, width, height ) ); + if( image.GetChannels() != 4 ) + return ReturnResult( fmt::format( "Saving images with {} channels isn't supported", image.GetChannels() ) ); + + Size expectedSize = image.GetWidth() * image.GetHeight() * image.GetChannels(); + if( image.GetSize() != expectedSize ) + return ReturnResult( fmt::format( "Buffer size: {} doesn't match expected image width = {}, height = {}", expectedSize, image.GetWidth(), image.GetHeight() ) ); int save_result = stbi_write_png ( filePath.String().c_str(), - width, height, 4, - buffer.DataPtr, 0 + image.GetWidth(), image.GetHeight(), image.GetChannels(), + image.GetRawData(), 0 ); if( save_result != 0 ) diff --git a/swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.h b/swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.h index 02bbf3ef..08848961 100644 --- a/swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.h +++ b/swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.h @@ -8,6 +8,7 @@ #include "swCommonLib/Common/TypesDefinitions.h" +#include "swCommonLib/Common/Buffers/ImageRegion.h" #include "swCommonLib/System/Path.h" #include "swGraphicAPI/ResourceManager/Loaders/IAssetLoadInfo.h" @@ -34,7 +35,7 @@ class SoilTextureLoader : public IAssetLoader virtual LoadingResult Load ( const LoadPath& filePath, TypeID resourceType, const IAssetLoadInfo* assetDesc, RMLoaderAPI factory ) override; virtual ReturnResult Prefetch ( const LoadPath& filePath, TypeID resourceType, const IAssetLoadInfo* assetDesc, RMLoaderAPI factory ) override; - static ReturnResult Save ( const filesystem::Path& filePath, const BufferRange data, uint32 width, uint32 height ); + static ReturnResult Save ( const filesystem::Path& filePath, const Image< u32 >& image ); public: diff --git a/swGraphicAPI/Resources/Textures/TextureInitData.h b/swGraphicAPI/Resources/Textures/TextureInitData.h index 91a39c8d..5e4a7aae 100644 --- a/swGraphicAPI/Resources/Textures/TextureInitData.h +++ b/swGraphicAPI/Resources/Textures/TextureInitData.h @@ -8,6 +8,7 @@ #include "swGraphicAPI/ResourceManager/AssetCreators/IAssetCreateInfo.h" #include "swCommonLib/Common/Buffers/BufferRaw.h" +#include "swCommonLib/Common/Buffers/Image.h" #include "swGraphicAPI/Resources/Textures/Texture.h" @@ -38,8 +39,9 @@ struct TextureInitData : public sw::IAssetCreateInfo MipMapsInfo MipMaps; ///< Mipmaps generation information. TextureUsageInfo TextureUsage; -// ================================ // -// +public: + // ================================ // + // explicit TextureInitData( BufferRaw&& buffer ) : Data( std::move( buffer ) ) { @@ -56,6 +58,25 @@ struct TextureInitData : public sw::IAssetCreateInfo Format = ResourceFormat::RESOURCE_FORMAT_R8G8B8A8_UNORM; } + template< typename ContentType, class Alloc = std::allocator< ContentType > > + explicit TextureInitData( Image< ContentType, Alloc> && image ) + : Data( std::move( image.Move().MoveToRawBuffer() ) ) + , Width( image.GetWidth() ) + , Height( image.GetHeight() ) + { + ArraySize = 1; + TextureUsage.CPURead = false; + TextureUsage.CPUWrite = false; + TextureUsage.AllowShareResource = false; + IsCubeMap = false; + MipMaps.GenerateMipMaps = false; + TextureUsage.Usage = ResourceUsage::Default; + MipMaps.Filter = MipMapFilter::Unknown; + MipMaps.CutOffMipMaps = 0; + TextureType = TextureType::Texture2D; + Format = ResourceFormat::RESOURCE_FORMAT_R8G8B8A8_UNORM; + } + // ================================ // // uint16 NumMipMapLevels () const diff --git a/swGraphicAPI/TestResources/fonts/arial.ttf b/swGraphicAPI/TestResources/fonts/arial.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ff0815cd8c64b0a245ec780eb8d21867509155b5 GIT binary patch literal 367112 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≺9Wiv@#qpl#qL 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≪P+Tw+*$qa@!i>|Uj$m6(YG+< z@59k=oQ05SlCJ>f-BY|(^Z#86{O*I_m-6+4ul^i6=jXppMXvRofu*|bv~Xuul=$;} zIeyzZTV{dZHYive45P@F8Z0ddmioehV6m;FFel#D+ZXozn@XKIGTX3VVHs~0vh^!Q zJ4aHIy%T<%@wVi`Lfge{neAN9`N{Wu+C!UdH7XoZv6@p?l#{zb{;bOT0l&8M+wa#6rP5uxYT6S5{aE z(BKv1i-I5$D9$Ylg^jL;!WD)7>XP7t6XI0-rA2{a2m=*^Oc3ia+;_Y@@+d+Yx z(jXtBc1Ep1nZ{wQEwdD3U*szt$9v3&Sz`O^^gv(op@e?u8|RIWN7gXg5MS7Kvn_Lw zEh8^4-eAmM81k1Fpj!OkjLd%N{Zf-N`(+HaWu)5%_DfA0JS@$Y+-GQ7+Mu+-nKff; z#%2~^D5Rvh9&yCz9C{r#M#16-GcTB5>MJRzFz9gQ=W@!fuvG-hc*`8Fq2R8pIM>iV z=mZqX&}-;K0NRY|zWh=@hP*f&ZySkb1wN=wFq=<3v<&}=87{4Iu7Z9{9bn82l=^eR z(2YFEJ|ZVR?7@7@7gRAOnbi)%360M#3j;OS3}O~S$g)FiLXs&czaM#!s7fFYL*a#l{!GY_N54FSL8Eir;*Br!!w5p7VJma|rNyELrGjsxa;P9! zR+tN2oe=Ps8@lwjfj8=5B>k`&Vj^>$v-$|O3}c)VwuZ{+m``vmEa%_!i4UP1Tbr;I z0uku=!d-ZUtYOKvPPVpQS7JL`qQl$Cjt>dN#AFRXq21wdx$v8qkZ8l#Vv^iRHDe3H z;gT+$JC~Q2#}|oZD?TS!WRWpequ!;yaxM!@K`;eOLxb6vp@U%~gD~(N`6Mk3h%3b|J!};cJQiWO*j>1@+pTu9}`Y<>S=5084T5`!^@&egGUd7+bpf0i@ z)<>*CL*+VT5pRTibd8lJi1lcO+y~9!|J|gtP+B6wpf&be+Q1)fhpZVLu=mvoK2>MK z({;krb-};&z~A-4TkL||pWT%1N)Ke3?FFV&u-nobJ1FVcPw9(2mj3XW2P%Wm)eLx` zw_uND7)IKGdOXWUx`Fht`Z$|6HRCAe!U zHSU?pAhvSsPF7&2ZnAQha<_61^4m^PDwQhbK4q#hO_{FDP-ZH#l-bC7J4bmynXAlG z9#rNl4=E2Tk0=Y2g(_7ZQx++URi-?SJV;Ab9r5eSl@-cLWtH-jvRYZAti>~u^~%$T ziFsCePI+E=LD{HmQZ_4F@NWG}%2wrN zJIcGtd&(Z=ePyrmf%2iUPx(mMuY95$P(D>YQ$AO|P`*?SDqksIE8i%Gly8;ql<$?p z$`R$La!fg{oPc8fpqx^ERDM!^R!%EtlwXvy$~om%k4`QLk4UsW+&N)h23FwV8UO+FZ3E$7l<+ zrP>NvT5nd{sBP7DYJ0rx-x2Tb$K!2%yXwHZ`3b5^btAWEqUu$X)GlgQwVT>q?Saof z^g`HiikhnSR*_Ft?W6Wp`>Fla0qQ_?kUCh+P=~0us6*9ZYNncnv;o8M6^oJTD0Q@Y z8@{=8hkBR5H0TBsJO#cB`IP?xGts>{^n>I!wGx=MXYU9GNB*Q)E(_3G2=2K5>BS@k(g z#TV3#>LzuwxIdqFNUiyi`mwrS{X{*WeyV<^ey)C@eyJW*zf!+ezfljV->ToK->Zk!BkEE0 zn0j12p`KKKP*15psz0eetEbg7h+jCXo>PBSe?z3f1@$5#0sc@gsh8C&>Q(g`-o{ro zO(Pn`8}mBeh>ynmD-oCD>)xvwub+o!#J*~dhKx?Qxsa?n4VaB`2jqwI?Q>~eH zBi`$^X*X#tw3b>c+G`!Oj#?)zUhAycHHYTZ5_qaL#GWT=UM&f4 zv3A89pLlx{Z$|dQ8;dDgD&AF0!yATu@J3)iype~u>+ts0V7xswM7u>Big%_mwJiQ- z6W%5oi8qHv;~gBlZG(4V#^7z1Y%K@xpZM{{NxoK~1@L~zIK0V$cP;QHM2R+DE7d|; zSS!Q34dvQItwNimP1f$x?$++n?$xGfm0Fc{pEgySrcKvoXfw50+HCE9yg~4QHdmX6 ztSq)NL#Ee(H_^H(3WaXYRk0c+6pAwT%|pwt=86PYqfRS zdhKa#gZ7N}toEGty!L{&5ve#gYg@DzwU@N5+RNH2+BR*wwnN*gy{hffUejLJ-q7CE z-qPOIc5Clw?`rR9d$jkpz1j!bhuS{vBkf~tzxIiCK>JktO#58>LiB{BDa#^ zWCR&WMv>9vHgY?;1DWl{5Fg1VIm!-_OZ+5{wOF*4tkknyCHgh&`) ze4Rkb$wX2?CXvbHE^;@y2YH02kV;ZT?juvlG%}scAT!A}w8Y$Th=X0nC6NM1tvBJK)oBirE=?1XEui@Zi&CvT89$y?-YvYWg^-X-smJ>-3| zmwZ4zB>Tumo^rOn`uG)Kahn`jH#lD49) z>CLnaZA;tH_Ot`-NITJZ+L_wnvN&l1b>Um!9-2tKG>LYhU1>KsF+GrCwiivNDKwS# zrfD=Cu1#OskM@UqGms9VgJ}j*%iKbT(qS}{X3<;ea5{pHq@(C)dK0x?=9;L_Vae9KDq(9J8^hf#={h6MoXXr2VEImhm zrN7bh^a8y|f2V)YOY}0mLa)+mOhJkrjS)uisSF)?eWFscdq18dBhu%@gTyAf$=Z0si1g0*C=SZj7OYs1>IcC0X=~kd?6UtdxaVn3b^!tej0`6>Jil% z_p>?d0XCP-V-K?V>>>6rdxR}u3)!RWF}8>;W=q)P>)F$61AB%&%bsJ;vlrM#wux2CAO8l%wA#J*mkyq?PRaAUF=Sl?eab##pR+I6m+T<>iha$#VTaha z>^t^7JIs!-qwE+v&Q7qC><4y={m6b|KeN;94Eu$hW#`zh>^F9vU0@g4@9YnDiCtz_ z*j08-S9Dd^bfQxvu+@V3VU#~aPZ_pd- zP4uREGyO)rxo*>M(p%^)^;UXo{bs$5-d1m?x7R!99raFnyxv*2>ki$iC+IHSt$XxD z-K!_*UG%PcH@&;w1IcrH>B)MEo~rlO)AV$`kKR}Br}x(f=mYgZ`d~dnAEMu)57me1 znR=Fft3F&Gp^wx@>7(`A^xO42ka~BF?$fjN96eX}>v?*_v>@? z2lTltz8Kqvb&7+OlzwR>*QOQB<75c|T`OKr-#LD<@OqRqSQzjvOl!J`(nok&=QyO>^6T z3meE|{1bBueMKB94wYe}E)Xo$OR&Eg_Qm*0OM~Tw{=9IM0hN`+8b@Pi$-J10y&)6I z4u%U%sH`NnxQ1wuTbv#8$70vCfRBllceq53tm&9yzi#K;$9klQmB~fK1*@eNJaZwmUeq`oZVV-#`4U6+| zr~sSJ%=nGU9cLV4@}TL^uHeL26XJWVQT%~Hep!imEEVUu#pZcoo}LpZ%_;Q91d1nQ z^JflW4vDf5w(*U}K2V?u)(Huf73+D}@GkUI{==}rp6jPMg=N{S01pYmQFzFJt+w2_ zqOy=sDu1nNFtlFl*Ix^ajVtz*;K2rVstdRUD&~_JT8gGIzPv!d<8ZpX67nYLeKF#R z33^|L*X=S7ZijJ}kPwT_?qZYwsASW)MfuEQTq^HPSy5i0e_~ut1g5EcGUwnYDowON zpSW4n(@ZPqHx4w7*Yo2iu1}OFxsBfN7EY31b^Dk8%AY7~{r9;OGI8k8uL1F^+HA7Z>8W zM<6G9puAitfx!}hRWJ-DNh{7L{^IC0mKc9un`xEz%-M0 zILteoWp)^k|9FS91b#fOGlZXI;x98hoFzJ3COSMkf-$bV8a%QZToHj8>~MZ477uEQ z^9>UYTPne*t&BG?;WZsxiZdTllg*W zfHl(0^~yMjPQ!BuUOlE?P(U>@iui-CVzY8qwaT#>MgDxVdffo3|A_)KD9{uvX{@)g zE($ty6kjw!hjJ2Z03I#+;3pJi=lZlkW!m5}ZA1WCXVBD!1jx{WARA^ZrJ266C_$g3 z76izUP@o3KA?el@7v*`Zu_~K>>KTad?s5-rFyxxnmBl4Tyd1z9va zl7_=&;d5A692ORbg~e%M!H0Ocf#=*yEOw{GpVPwUwD@ycn4K18r-eDe!kl1XPOva1 zSTabkXe3xP5-b`C7L5dpMuJ7dWzoPy72LZl8ZL{5%c2pHi_4cC@>nerEv^zRUJ@-{5-na5EzF4)=0po~qJ=rp!tAv$d#(O@EgD{nhS#Fu zwP<)P8eWTr*P`LIXe3!Qk}MiY7L6o}Mv_G%$)b^D(MYmrBu21E8j!CTEr(rRb=V~h zhh5Te*d+~zUD9yaB@KsN(s0;iKOA<8hQp!};n^+A>`7(|D7$FuaU{5%@ZJ0qe6cXX zzPyk>KUipjB{(mLGfKz9g9(RNL7+4+o`vzo3tTN;kr{P#c^MBVi}dkjct#%5bA9># zPys9Q!-Z!>zVW_1TI$R5qeaL+K8im{hL-}v#1GMUT#NFu@f5329)Yc6`2oDi!E$jP z)(ZS&f^PzwWLgFenU;Y=re)xeX&E?VVRoDI92^K6#vzF%LD(=}Cb1+48^+5dmIPrfc$vki zuwkGkY#6QztBf*_Y1cdn4zX5nu4G%>Dhau`#p;Kvf)|g|E3R_L>?Max{yZ++g&S=- zBxxjB(nt`i0l#WW4Q(y1+`^uMQ?XhB5~~%5One-Y5>F887B7<$PY~-C%ESr*?ya`C ztv37SbXu}^3!Ck6CW$f*iO~WiYp<~;PXI0=J;|*j36MvUjn|2 zV2)ryqR=|@O-Ry%JrT2)pdmaSl!>(rW!9)B39p4;mH52E??jpK+yDtr3s6Lxq?SOY zqAegx*M!f&C2sbTw~ataQDwyer`?$>jw#~UTO8BGG1WYJ(xQ#}p7gGwKs5BEhzqIm zf`K93ZZ|66Xkf1PfrzcOcHwS!9J9jCx9f!Nm8OvS21@0$=Q)4yjZlA z^9hodW0hph#p;lSSxN=kXU#>qJ%TbhE=j`g0F6jJVbyq9q@IOY&J$dyy8!aOEBK%o0uq<(+ zWr-6lOY9Q&d!Q@UR}NV^6j>j{-5|eejkH*Yd6_kC;$D%LSsaKJnU|T|qaWf<5;jV# zzWk~jOKkee@s-vO^<*!-;!cCNHKoh(MXpK-d8I8uJxgCK8xgU|5sU4u=EunKwXCz# zYt19Cm_49t*%zy+YeLJ}F(VrD0x6cfCS8c|EBcUQ2VV z)x#-Q4_?obhPcN^nKe_qLYsI!Ia*$!5xmSA4>9^Ela|nFtxJI9Jn}|HH8LJzR{*0W zb_FyK`OCH(Mq5c0`XK1L5@kC`D#7Zps~YU+lpt$kJrnKRk{*1)YIVKU;KT?FNkwoc zRfFBtU}uC5Rs}%^D}aPdioCZH8;2!z4toSP4$IzfSW@9IsK_2eQWEBpioj?qslwI^ z`ib&7*C|&uNkw2sCu@XZ-DNwktP4p+>Uyiei4ho*iquJ}2D_`l&IldYbwLOAT0$m8 z-dl-{!;(6OJpvntWp6kvsc;xns!2-1Tv8DjZ6#G$a6uoI*@XDckA&nn@|_=9CZ)`G zeq@=P8GPqQmdT#+ogZ0d(SZFFWw5vsvS`3dk!2PQ*jZU-(SUW8Wfl$CUQq^{Dj|yo zEUqlGXke|DWfl#mWm8;sYnI~9H==KVT`Z#@Sc=zAjNdHdw~YTve3tFN#+6m(;Vw2j zWqC{#=SlVO>;Z4j<2g$~FgVVajkgTUOAfm@CWs?8$2kgzaJn7t23Aw!;gI=2LsG>0 zAo}O>nhl+)(YgEq4|aW`@x%my7Nxl{;c`3_2M{vrL`DtwN20ykEv}^t2AtyP5=YS| zhv<_-&~q5~BVbtEH8{jwgTuT_usZ}kr|76tbkOOHbj)}bWOgi4XgoqP3k3(g>sq3~ zUR}1oFj#J0aSGu%1uy2kQM%nJcyWq8I7J_wqAyO-7pIh+xWjP@-kpN?1i?F2%4A77 z#wVfJWNS=geHK_JIr7NO=t>>mUkj?$FeFgDhEdRBWT2a)U2XZosw8a*LDNW*h5V;4^p-?F_h<*-nzJWj2$i zG5iU$F~TwYF|z^1rddd1{T8UF8R&Gsaj28_S0N)@Nj~Z}hoM>xQ|i@fm{PA+!y?n5 zS}m)vIyIAgwOU3&{c5;mKk8SjB+Fv^Sx93878uh{UXKY_P=*BsB@_!=C9Fy;43+@v zWc;=3!M_$%t6|EbS`AYc)oNIX8&s=h6;`Ka%A#5=Qx?^5NzUt6t0c>KZ%WPgo_KF0 zXp|aEnWY9;%P6&&sAbf*PEAY(akGs9)->8kYBh}}@(eFLNxdtRP%Ny!lrEM42^wpH zp;EEN!eD|%smY~LYI13mT1{&iSFBTxzZ8*kc=B&zGPyKLB@Z=?Ch{z1qy<$-D0XB7 zVTA?iBMoGFg>m545-W>g<#05t9FB&SvpaelRt`tQLgQ$x05}@f6-UF0;%Hb=91Saq zqhUpHG^{9&h84!qSP^hEtT2wLVy$uFUe#Q6u+?KhawWpXjlriY$)xW}GU>aLOnR;) zlb$Qd#P3Qn@w<|YB@>Sh&HlNPMf+sYKH2QAE7|O?E5+=uE5+=uD@D{#5%p8d{DbaF-{` zq$iYsyF5{bdpikPG;kj$%Pbm}zmkw(%GcvI`{{9; z=bhjZEwL9P=(q&VM0b=?;xfkwpP{vCm{Rgset3d~*UOAH#;AJ|je6-R9&>F@@tA9K zibu9L{frd1xi+VG%(XeiBe^u!{1mfy=_zLKaFiTMElj}9l;9paP7;z-ddm{*GKp)E z{wK=*OCF4K@ND`SDIP(~D|mBDo=m4M#cgV+2m40?H+G05Wa)xeVzEZkx})IFb7XzN zu~+bb4^eUlG9^*S&6KCz;}yJ_yyLn&msBjxv+fr7Zlp;C&sfaS@k;D@CKcI3ue>g( zdL>s_p9VESb#W*^ZP(?3fwxxsn5#9(@tb`SQz1m~u2 zh!TTZdWu)b-m*d1r!zUTY!P=SAyUbyJrG#g5VXqW3og@61!xwM9hMSL=z-t zOA6K=i3`sbL_0aZk}Sz!UrAoG=*c;jBsH4v_=sBA=aG=)Txv9biYKpG{gbmJDb2cO z^#Z%ZvcBZrlDC|7$re5A6^q)~4VI9QOtRo5+3Kk^^IUi$CTdIjlWbwKW}eHkI4)Cv z?Ve;g=foWI2;K3BaZa`*haFr&!J2n2uW9o=$>tqFibu?7lLyQa$+0C3uW98y$(B@- zguP6*#x$Z^5uHjh_yoV!m_{@wqA^JlyBt%zE-ScpW2e>R-))y%i+N$L%;_oS%8aAX z=wvyX{7IZ_E9H#Wh)pd|u_$0)RMfKW(%lZhx4BBDroE<6F*yA~lz=CHs5|Vt&`Rq1VK;V(H(v4>`qP8^~-R9b4_oRw7DOt?PRH5Oi zqNl0CuBBT2lye}}Xpx?hCR>O(Bm6v1su)w@2YONsPN9v4rhu|B#%M1o$ob-yc0E-{ zqPLJts?|qn=~FF@#&Z$TN6Xf`O&bqNmL!Dl=rMg;(3X7=yr&5Z-P@X5QWH(@H$6po ziyqSpPEQfuqDOec9y!;97wnO}7hbSON=JCX9x099!ansjy;6_tbDGc+DdjXVE>ddv zBE6yAW>4&%G@*O4C&CN$q=^}oW_qojG()ziFX*OA>Eo%kkfg`*CGp;bNhMucD~~n5 zJeDWvk)9-;1e;@lC+-#`X8@j;3S5%1SiPmqO%{5RZ1G{Ob{=bA++*!@d91nRvDQ0} zwcdG5uQENwA#9^VYK-u6aYbr}$C_UrYkqmG)egBbWM8b^Z;!S6?Xl*V$C_gvYsK^6 zS*MT)o^?vdl8v?Md8}0rUbn1gd7KfC+mo2UGd&PwbkLB)LB-cCk^fmy25GOh(30rQ ziqh*#_6p8L9wM9ghc8%PQ+i&znmlyiP`e$qI2N=+MhNqtrrdyt<1YR z;d_?RBpSc5qy~QLk$MV2yl@l1%}ERVwjmz;_8|jMju>3P_mX=R4RN?r09TSZfFB^g z0{#u(?A3ULs$xW^;uo>0_^nBSlgFdtcOV^%Ox*btS;|>^y--mR>ov>Zk@Fdgyb>!E z6={~T(f3$I9h5xOhMX1nfH`tpsE`IRa$WFq9i?Uo1soj+1q&6Y@$1FTYgp-l*YW~N zZ~n%c(%<+UQW(hhDYus5fcz7tWcV+q%rWs_WaGdux`1DXU(Lv@!OuVg*)-ZJ>FQb% z%QB;uM(;u?|IbGW64Xoi89P+1w1z?u+t!Rcj51=z-c`H$tdfan>~^FxzUh1p5zO-u zt-J&g$}16-ya|!V+YoL11|p32AgXvjB8d+odiXFRhEL)DIU{OwAfhcZ5n*{7qAGI{ zNr@LD5jQyzv63qg+qfR_j2jWhxE1l8I}o+_79th*lKnUyKuqG-h(kPz*u$R?Z}=Nx z46h)rkRg_^CL5?XBsU>qa2(?Qx*=vSTh9a6nb3zeh!S@oGJF=|tQR1z`U%8RKZSVd zEr^lcfw<_m5DUE*@y`bk^ZYg9oR1>5`4ssDF{T|^e?*54MMUT*M1f`_@^dVrJxdYc zISCP&s}O~`0g;!R5pl_5Enh`^3BUN9GfFvu?u1h$LP6#k#Gydx7&#e@ziq=7ycOHz?UKRdoAL-w<4x{7vi|z zLG1QE#A|j^)X}tw;tRoS->O;J005PiL5tmwlSk#q>9eo<{ zqMHyW`Z8+nL{#Y8hy?wBe1hYri23{mah}Hz+xau%InN`8^D5#tb;N4cf`qRlEfA4e zi1^Cxh>6V6^Z#c`SZ$%qB{pOc=t$!6ZE_DH^QR&ze#9f+PEJgjWZBkJRA|lcOr^7ACbdBL<^TALik=p2H%IM;2DSrz8}%R^VodE0WUxd z@FK+jK7rWZ<%s!Rhd5t+@feZ4uOOy(7vgx|LG126#O!{8SlzGm5F&F=AR6}!B5*IV z%ZRt7h_S7KxY~M%scnQu?S|7a%Gw&r3pE6TVP zB8=N2y0{}Ei|vRib|IR$3!;d7A%gfXbM^mwnuJL2|6h~-D>nVVrb!gpulQQ5sv10p z#>m3DQQ3~nO#6^`=?HQvT}0`1$a{4&@>@BP%L?CkM7F9S@MQ?B{txC+Z%%%L4^u@h z;CCwd9lta2J#mf9)hFW9xIOhr_)XUD!f&cR6TjUJub>g|wnFYKJMv_8Bj*ha7Yz)5 z7#O%;G*_=MFibWu+-+c(Wnh56q2I%6fPboU-^zrhSWu+}Raww|7Btm@rU@vP=NaMo z0*qV%JWl{}1i-6_G9`p8UR+Z6@(OZ;HCA}G^^WlSH0>AC2ft@YU;LgU{qXxM>5t#v z;QeVD|I&@BT`+tjctnPmRs&f0Kc<}_P0VZ_#<}Skalc7voR5+QMyb;HPJ313(Rxh# z>3yePsHsM2%c>d=L{VRSJlIjoUPF&IuV{=Z_Az>F2VJFVRidWSWkc;l>>aC>G+lAy zl%~i<#{Xv^j~LHV%#*P3tkOOBf4l9^_-LI~X?wRnc4TJyAJ3e=nECyfmdmOdY`0fw z{I9iEr~eHfd*@V*Z2Hvgp*tJi{?$r*O^Z(z-^a06E_F1wH`7TLjjewj@?r*t;h{TH zUm_!^ZLlBD+)KwfuD3Vj72@jGk`+1{*lz2yOeQ>uVx0AmVnM2|N$rsQ>;QsC=@z%#o>$R6YQ?&(bO@mHqLyGX-~b>=a+w z^aXw6nz)zh)*Sxju+Pg5znjp0<0t21M!U|PeDG>ajeQ53jCy(R@$)lZcw*O#)~D_s zQ71HZ;-2vhue?3te7mPd+_8{e>6Be}L}kC{pLaaPyXDs z#WS}qy62|H3#aeu-{;Y>n^$`dT#o6qe{<3jjX$R;LDd)tH|Bql)Y=Nl zW3?((Rd!AC%{aAj4asTJp|S6qDK9l_w(R}~yKigr(9{M=r>1?-?jb#|?<$h>OTXQ-cn|r=pqrD|_hrIFA!fm|{?reP` zCF|4k)6VM0?_bo^agNmfWZ>hi+JDug$-Js_&!1j1=x~EI-_HAVcfsqv5$j4nxoGd3 z@kQrgj_r$C?^R8HeZcm%Z&el?KUURiLwc8GzxVX)9k?wsWz;19 zPTAe~!kY<|mG8D+aOvJVy3Ba6!NK?A%g&x2cdYxmF*{S#^%?6&ukG2w@npS*zlWCJ zSam<`@I$&buxMWMA@K_aw4bO?4R@bEuVWvFF_l(UZnal#vG>xWVdEK#QdJ78XSd69 zyE?s<$Q2sQ36;eEX;64cXPz&%EM$+tpfszGNubz!bI?Y++xa-hjhWt8oqjP*1!{YH zds~TEQ?G0KAC0!XKF89U*09IQCM4P(#|vvyN;G{}^}!WZpwqdGoG~36efe9f+Cw+h zIJIee{&L$J z*wJ3Y-(sy#JojAPvFna@-E*?#`A6E_-Ye_eQ^THk$I~Ur9~}yo7=h>Jwm%eXu_)2o@*oCkH^{|TlVOoLONKJWvw{A1*e$?Z9&X0$B{e@wB ziKBzP9Xf<{szoZ2=$7(0d#>d?33;N;%JOVvZ;p4|Xm4s(ZusXbBJH{3CVO*!oz!m> zxz3j{TXGrluapMD6=G@PX;X|`A(+)pyTh4)#fi`IQU4b>`gfCbownn(l4D)Z4sO!+ z$ww#NVgF&px(8a{dGYFkfh%9S`os!bkGpPJv1G-(G0t%xrQ}xpykWw-nO~kg_4xFr z^PZfVx9P2Mld@ZW+N|3*wbh4CEPV6TPI-$L7u>vPUzd)r*4Q%Q=GW4X$M*0p?6|IN z(%K*U-IsEBYVB={3$uJ1s_t4orc?RAlZ!Uzc3nKAsUx~ogD2M=pWmU;vF?xMG#E32 z`JZf-ICRE^HK!lZ-fpu0)vUBlv!=Y-<;ToN20wdc&7`96;O82>zc8llP0H{G#{?3$ z4X78@?bd6fFRjXpjb8n6<*ma{zu5JT>nh9Xm*;mrJ7vMu=l96*r+w{?4O`w$BRHgf;8Rc-ZodEIljjd4D?G;U81Hh<>4ce@Fk-| z4|m+Mtj{~yr!Rl@e%G#})_F1mS6dbJeE0qJ->|#Bc0ADi$vP!tw_UB5(I~L%^1jr= zbw}AUe#oBu-1-~d>5$mE(@y{Ldb3;C&RKaOv+3_Qz58jyb3->20NW((Ri9(16Y_S7#^z9pMS|N6q$?+pLh-*5NO%ojJ4w)L(( z`01JGdG~C6^sT28J06*IWNrE33ComyV|%{#v1j(T$@SK{$2J*z(EZ&fP3e)fY4n{@ z3EtvCO>1Vq6uV;1{sWmk)Au&bT3vFmUY8jUmp!@W<7Kc4@4`2DLHGt^;}&J?QodPV z_mj_iEnd6x*nbPNV22%mSumD+zSz4R4mhypsl9TwBhE1JRIjgP4Rh4D*X5Qbx_<0% zB;JDCj64vII`&$;FsgpkP=7AZx+4u%Z2f;>u>O_xk{`cxG_r`@%`fDdoMrn zYTxqmXXkuz?1s07Z*II}^UHT?%hSdtjr{%PHjj52wDj_dBi`BG+!iT^Uhdrf!uas1E_i_6n)%4`rd@heZU6bH8FQM>8BlTOmVSTS;S6+Xp7~7KphLOG?cEOM_UnD= z(wj|F#vfbOJ?-al%99&XcDzz|)2&A?9az!6^7H0{S7hyMGp}Uziozz>GG|w9uN<&? z`3rfI)?L45kG`wVsnwfKIvNh^-k!dCE!6j```e^m&N=aOs~MwrdOkYg_|5sn9fv9= zy<*=GnBM==oVu?zc_4G7y^7U_F}q+IvshnL-Be>w!Bt&YeB0oEjM3n?I!?Qr=WKJk zU0!be5@7uB=7*i1+AEj;pSFI^zga)w`;mWPN-?4T<9nU;i*_WfZPe!14&CDh_Pnb+ ze$AdOAI+)xdYABL4{!N)*?^uS@Ax1sV{t{hU;4e@xX;g7uSfT&XSibG>Z|1yD9w7dMqt?$k29X%~;_MUfYrw_>5GiPCW{~0INCF{Gd)jU}+Jg4-H z!0^qfA3D3(ziM*wKDS_a;mCN)0=iQ*mFF;SIq9~=4)9Wq^4}%+vN7= z&pB!LdPkeBiCQynkEx+4zq|x15`>0QKcyq*_jk5~x zyt2RJo58IuH`ct??QGq&@YxuBQKPSeyQZs+>NV?d-E+5|_9ra=A%F0%1FD`rS^F#X zk3(bb&Fgdfo{lB&Pagb*zO{HxjjP!=ru_c!T`QiBUAnJjoo5G4ZZki4^Ui`lR`-0e z<*9d`*fzsqm_!zb%~O6a{XfOi5xj^h+9*uA$8QFbw)+eXZDZ&xt~3G*@4e@PTyxATdjEw$8Gje z%j{F)jn8qI-!QY`+ZO!mk^BpH|KdBV%Ws|{_bQB!to%u_@qrTg#i8mt3>T4BsmkEQ z>%VWDxM*aXxOX3Ie`?6LKJC+%)B8Sg=8+wXnvHp_eV^xEnm5wR&aJxd(FK!#p{=5a zy9gxC z9N0Im=CwQDnBDbM*)h!p)?|#$z#pgB-JlXBLAqyX!c45e(&t^94`Plps^-{jfoHTXGDyOIS zuBR`oTpHc*`pX4b%Z7Cu@zdMwe_ed{UVF-%=}iCl?W0W=pZ?9cZ~v@A+n+3Z;DaR< z*&Y69(4qdORX0Yj8s2lx$UiQ<^~dx3FE6jsu>Y_1jf|4+sM3;91 za_2wj)9P`pyMCYf@pBiBC(fIn@tHEbu4mcG%oFQl8pgixeQi3?yYJ-AZ(@7SNq+44 zjw8C>`rE$L-uu64dh_~8$4|HW=Ej-5f@2>{IaF_Qy%$~?-(c;jH7je)3Y{cVHZOdm z&e3Cs6DBPA^7uVPKYANFUc2(+O=D+eULLalYW4$OmUm{N_i$zNadSI#bk5)U`L(Fn zsj~(y>{;~r6VrTMZ(h`6TjGetGlyphs().size() == numChars ); CHECK( font.Get()->GetKerning().size() == numChars * numChars ); } + +// ================================ // +// +TEST_CASE( "GraphicAPI.Loaders.Font.Loader.Font.Arial", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) +{ + auto rm = CreateResourceManagerWithFonts(); + auto api = ResourceManagerAPI( rm.get() ); + + FontLoaderData init( 16 ); + + auto font = api.Load< FontAsset >( "$(FontAssets)/arial.ttf", &init ); + REQUIRE_IS_VALID( font ); + + auto numChars = FontLoaderData::DefaultCharacterSet().length(); + CHECK( font.Get()->GetGlyphs().size() == numChars ); + CHECK( font.Get()->GetKerning().size() == numChars * numChars ); +} From b051db99533ab8cad95ff209b6598e9b367db399 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Fri, 1 Nov 2024 17:25:39 +0100 Subject: [PATCH 11/96] Remove leftovers from freetype examples --- .../Assets/TextAsset/Loader/FontLoader.cpp | 37 ------------------- 1 file changed, 37 deletions(-) diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp index c424a402..8bac0d78 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp @@ -298,41 +298,4 @@ void FreeTypeLibrary::RenderGlyph( const Glyph& glyph, Im } } -///* load glyph image into the slot (erase previous one) */ -//error = FT_Load_Char( face, text[ n ], FT_LOAD_RENDER ); -//if( error ) -// continue; /* ignore errors */ - -///* now, draw to our target surface (convert position) */ -//draw_bitmap( &slot->bitmap, -// slot->bitmap_left, -// target_height - slot->bitmap_top ); - - -//void -//draw_bitmap( FT_Bitmap* bitmap, -// FT_Int x, -// FT_Int y ) -//{ -// FT_Int i, j, p, q; -// FT_Int x_max = x + bitmap->width; -// FT_Int y_max = y + bitmap->rows; -// -// -// /* for simplicity, we assume that `bitmap->pixel_mode' */ -// /* is `FT_PIXEL_MODE_GRAY' (i.e., not a bitmap font) */ -// -// for( i = x, p = 0; i < x_max; i++, p++ ) -// { -// for( j = y, q = 0; j < y_max; j++, q++ ) -// { -// if( i < 0 || j < 0 || -// i >= WIDTH || j >= HEIGHT ) -// continue; -// -// image[ j ][ i ] |= bitmap->buffer[ q * bitmap->width + p ]; -// } -// } -//} - } From a15f726801c97ef4c8a529d37102800a3ffc601c Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Fri, 1 Nov 2024 21:06:55 +0100 Subject: [PATCH 12/96] Improve tests (check atlas and some glyphs) --- .../Tests/TestText/TestFontLoader.cpp | 39 ++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/swGraphicAPI/Tests/TestText/TestFontLoader.cpp b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp index fc8fd469..d9b56931 100644 --- a/swGraphicAPI/Tests/TestText/TestFontLoader.cpp +++ b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp @@ -1,6 +1,6 @@ #include "swCommonLib/External/Catch/catch.hpp" /** -@file TestSWMaterialLoader.cpp +@file TestFontLoader.cpp @author nieznanysprawiciel @copyright File is part of Sleeping Wombat Libraries. */ @@ -33,6 +33,10 @@ TEST_CASE( "GraphicAPI.Loaders.Font.Loader.FontFormat.ttf", "[GraphicAPI][FontLo auto numChars = FontLoaderData::DefaultCharacterSet().length(); CHECK( font.Get()->GetGlyphs().size() == numChars ); CHECK( font.Get()->GetKerning().size() == numChars * numChars ); + + REQUIRE( font.Get()->GetFontAtlas() != nullptr ); + CHECK( font.Get()->GetFontAtlas()->GetDescriptor().Height == 256 ); + CHECK( font.Get()->GetFontAtlas()->GetDescriptor().Width == 512 ); } // ================================ // @@ -50,6 +54,10 @@ TEST_CASE( "GraphicAPI.Loaders.Font.Loader.FontFormat.otf", "[GraphicAPI][FontLo auto numChars = FontLoaderData::DefaultCharacterSet().length(); CHECK( font.Get()->GetGlyphs().size() == numChars ); CHECK( font.Get()->GetKerning().size() == numChars * numChars ); + + REQUIRE( font.Get()->GetFontAtlas() != nullptr ); + CHECK( font.Get()->GetFontAtlas()->GetDescriptor().Height == 512 ); + CHECK( font.Get()->GetFontAtlas()->GetDescriptor().Width == 512 ); } // ================================ // @@ -67,4 +75,33 @@ TEST_CASE( "GraphicAPI.Loaders.Font.Loader.Font.Arial", "[GraphicAPI][FontLoader auto numChars = FontLoaderData::DefaultCharacterSet().length(); CHECK( font.Get()->GetGlyphs().size() == numChars ); CHECK( font.Get()->GetKerning().size() == numChars * numChars ); + + REQUIRE( font.Get()->GetFontAtlas() != nullptr ); + CHECK( font.Get()->GetFontAtlas()->GetDescriptor().Height == 256 ); + CHECK( font.Get()->GetFontAtlas()->GetDescriptor().Width == 256 ); + + // Check a few letters to confirm that there is no regression + auto wGlyph = font.Get()->GetGlyph( L'W' ); + CHECK( wGlyph.Width == 15 ); + CHECK( wGlyph.Height == 12 ); + CHECK( wGlyph.AdvanceX == 15 ); + CHECK( wGlyph.AdvanceY == 0 ); + CHECK( wGlyph.BearingX == 0 ); + CHECK( wGlyph.BearingY == 12 ); + + auto sGlyph = font.Get()->GetGlyph( L'' ); + CHECK( sGlyph.Width == 10 ); + CHECK( sGlyph.Height == 15 ); + CHECK( sGlyph.AdvanceX == 11 ); + CHECK( sGlyph.AdvanceY == 0 ); + CHECK( sGlyph.BearingX == 0 ); + CHECK( sGlyph.BearingY == 15 ); + + auto questGlyph = font.Get()->GetGlyph( L'?' ); + CHECK( questGlyph.Width == 9 ); + CHECK( questGlyph.Height == 12 ); + CHECK( questGlyph.AdvanceX == 9 ); + CHECK( questGlyph.AdvanceY == 0 ); + CHECK( questGlyph.BearingX == 0 ); + CHECK( questGlyph.BearingY == 12 ); } From 6338a8b2ef6605690f8abf56de127611ee0015e8 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Fri, 1 Nov 2024 21:28:56 +0100 Subject: [PATCH 13/96] Test - Validate intersections between Glyphs --- swCommonLib/Common/Buffers/ImageRegion.h | 40 +++++++++++++++++-- swGraphicAPI/Assets/TextAsset/FontAsset.cpp | 10 ----- swGraphicAPI/Assets/TextAsset/FontAsset.h | 5 +-- swGraphicAPI/Assets/TextAsset/Glyph.h | 13 ++++++ .../TextAsset/Loader/FontAssetInitData.cpp | 12 ++++++ .../TextAsset/Loader/FontAssetInitData.h | 3 ++ .../Tests/TestText/TestFontLoader.cpp | 40 ++++++++++++++++--- 7 files changed, 99 insertions(+), 24 deletions(-) diff --git a/swCommonLib/Common/Buffers/ImageRegion.h b/swCommonLib/Common/Buffers/ImageRegion.h index 30f23816..b210cbae 100644 --- a/swCommonLib/Common/Buffers/ImageRegion.h +++ b/swCommonLib/Common/Buffers/ImageRegion.h @@ -22,6 +22,9 @@ struct ImageRect uint32 Y; uint32 Width; uint32 Height; + +public: + bool Intersects ( const ImageRect& other ) const; }; @@ -34,7 +37,7 @@ class ImageRegion private: protected: - Image< ContentType, Alloc >& m_image; + Image< ContentType, Alloc >& m_image; ImageRect m_region; /**Fallback Pixel returned in case access operation was attempted outside @@ -75,10 +78,10 @@ class ImageRegion /**Access pixel at given position inside the region. Function translates coordinates to full image space. - + Attempt to access pixel outside of region will fail silently, but won't crash. Such an attempt can be considered as no operation.*/ - ContentType& operator() ( uint32 x, uint32 y ); + ContentType& operator() ( uint32 x, uint32 y ); /**Checks if there was no write attempt outside of image region bounds.*/ bool SanityCheck () const { return m_fallback != ContentType(); } @@ -102,7 +105,7 @@ inline Nullable> ImageRegion -inline ContentType& ImageRegion::operator()( uint32 x, uint32 y ) +inline ContentType& ImageRegion::operator()( uint32 x, uint32 y ) { if( x >= m_region.Width || y >= m_region.Height ) return m_fallback; @@ -110,4 +113,33 @@ inline ContentType& ImageRegion::operator()( return m_image( x + m_region.X, y + m_region.Y ); } +namespace +{ + +// ================================ // +// +inline bool valueInRange( int value, int min, int max ) +{ + return (value >= min) && (value <= max); +} + +} + +// ================================ // +// https://stackoverflow.com/a/306379 + +inline bool ImageRect::Intersects( const ImageRect& other ) const +{ + const ImageRect& A = *this; + const ImageRect& B = other; + + bool xOverlap = valueInRange( A.X, B.X, B.X + B.Width ) || + valueInRange( B.X, A.X, A.X + A.Width ); + + bool yOverlap = valueInRange( A.Y, B.Y, B.Y + B.Height ) || + valueInRange( B.Y, A.Y, A.Y + A.Height); + + return xOverlap && yOverlap; +} + } // sw diff --git a/swGraphicAPI/Assets/TextAsset/FontAsset.cpp b/swGraphicAPI/Assets/TextAsset/FontAsset.cpp index a0eee13c..22b691f9 100644 --- a/swGraphicAPI/Assets/TextAsset/FontAsset.cpp +++ b/swGraphicAPI/Assets/TextAsset/FontAsset.cpp @@ -29,16 +29,6 @@ float FontAsset::GetKerning( wchar_t first, wchar_t second ) const return this->m_layout.Kerning.at( std::make_pair( first, second ) ); } -const std::map& FontAsset::GetGlyphs() const -{ - return this->m_layout.Glyphs; -} - -const std::map& FontAsset::GetKerning() const -{ - return this->m_layout.Kerning; -} - } // sw diff --git a/swGraphicAPI/Assets/TextAsset/FontAsset.h b/swGraphicAPI/Assets/TextAsset/FontAsset.h index f49f9701..2e76e63b 100644 --- a/swGraphicAPI/Assets/TextAsset/FontAsset.h +++ b/swGraphicAPI/Assets/TextAsset/FontAsset.h @@ -40,7 +40,6 @@ class FontAsset : public Resource FontLayout m_layout; - public: explicit FontAsset ( AssetPath filePath, FontInitData&& initData ); @@ -49,9 +48,7 @@ class FontAsset : public Resource const Glyph& GetGlyph ( wchar_t character ) const; float GetKerning ( wchar_t first, wchar_t second ) const; - - const std::map< wchar_t, Glyph >& GetGlyphs () const; - const std::map< KerningPair, float >& GetKerning () const; + const FontLayout& GetLayout () const { return m_layout; } const TexturePtr& GetFontAtlas() const { return m_fontAtlas; } private: diff --git a/swGraphicAPI/Assets/TextAsset/Glyph.h b/swGraphicAPI/Assets/TextAsset/Glyph.h index 6cfedc81..4bcfa540 100644 --- a/swGraphicAPI/Assets/TextAsset/Glyph.h +++ b/swGraphicAPI/Assets/TextAsset/Glyph.h @@ -40,6 +40,19 @@ struct Glyph , TextureY( 0 ) , Padding( 0 ) {} + + ImageRect GetGlyphCoords() const; }; +inline ImageRect Glyph::GetGlyphCoords() const +{ + return ImageRect + { + this->TextureX, + this->TextureY, + this->Width, + this->Height + }; +} + } // sw diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp index 4afb07cc..27f14942 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp @@ -63,5 +63,17 @@ uint32 FontLayout::GetMaxWidthWithPadding() const return GetMaxWidth() + 2 * Padding; } +// ================================ // +// + +ImageRect FontLayout::GetGlyphCoords( wchar_t character ) const +{ + auto iter = this->Glyphs.find( character ); + if( iter != this->Glyphs.end() ) + return iter->second.GetGlyphCoords(); + + return ImageRect{ 0, 0, 0, 0 }; +} + } // sw diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h index 783ee9a3..9c7d2792 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h @@ -7,6 +7,7 @@ #include "swCommonLib/Common/TypesDefinitions.h" +#include "swCommonLib/Common/Buffers/ImageRegion.h" #include "swGraphicAPI/Resources/MeshResources.h" #include "swGraphicAPI/ResourceManager/AssetCreators/IAssetCreateInfo.h" @@ -46,6 +47,8 @@ struct FontLayout uint32 GetMaxWidth() const; uint32 GetMaxHeightWithPadding() const; uint32 GetMaxWidthWithPadding() const; + + ImageRect GetGlyphCoords( wchar_t character ) const; }; diff --git a/swGraphicAPI/Tests/TestText/TestFontLoader.cpp b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp index d9b56931..f32507f0 100644 --- a/swGraphicAPI/Tests/TestText/TestFontLoader.cpp +++ b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp @@ -17,6 +17,28 @@ using namespace sw; +// ================================ // +// +bool NoOverlappingGlyphs( const FontLayout& layout ) +{ + for( auto glyph1 = layout.Glyphs.begin(); glyph1 != layout.Glyphs.end(); ++glyph1 ) + { + for( auto glyph2 = layout.Glyphs.begin(); glyph2 != layout.Glyphs.end(); ++glyph2 ) + { + if( glyph1 != glyph2 ) + { + auto rect1 = glyph1->second.GetGlyphCoords(); + auto rect2 = glyph2->second.GetGlyphCoords(); + + if( rect1.Intersects( rect2 ) ) + return false; + } + } + } + + return true; +} + // ================================ // // @@ -31,12 +53,14 @@ TEST_CASE( "GraphicAPI.Loaders.Font.Loader.FontFormat.ttf", "[GraphicAPI][FontLo REQUIRE_IS_VALID( font ); auto numChars = FontLoaderData::DefaultCharacterSet().length(); - CHECK( font.Get()->GetGlyphs().size() == numChars ); - CHECK( font.Get()->GetKerning().size() == numChars * numChars ); + CHECK( font.Get()->GetLayout().Glyphs.size() == numChars); + CHECK( font.Get()->GetLayout().Kerning.size() == numChars * numChars ); REQUIRE( font.Get()->GetFontAtlas() != nullptr ); CHECK( font.Get()->GetFontAtlas()->GetDescriptor().Height == 256 ); CHECK( font.Get()->GetFontAtlas()->GetDescriptor().Width == 512 ); + + CHECK( NoOverlappingGlyphs( font.Get()->GetLayout() ) ); } // ================================ // @@ -52,12 +76,14 @@ TEST_CASE( "GraphicAPI.Loaders.Font.Loader.FontFormat.otf", "[GraphicAPI][FontLo REQUIRE_IS_VALID( font ); auto numChars = FontLoaderData::DefaultCharacterSet().length(); - CHECK( font.Get()->GetGlyphs().size() == numChars ); - CHECK( font.Get()->GetKerning().size() == numChars * numChars ); + CHECK( font.Get()->GetLayout().Glyphs.size() == numChars ); + CHECK( font.Get()->GetLayout().Kerning.size() == numChars * numChars ); REQUIRE( font.Get()->GetFontAtlas() != nullptr ); CHECK( font.Get()->GetFontAtlas()->GetDescriptor().Height == 512 ); CHECK( font.Get()->GetFontAtlas()->GetDescriptor().Width == 512 ); + + CHECK( NoOverlappingGlyphs( font.Get()->GetLayout() ) ); } // ================================ // @@ -73,8 +99,8 @@ TEST_CASE( "GraphicAPI.Loaders.Font.Loader.Font.Arial", "[GraphicAPI][FontLoader REQUIRE_IS_VALID( font ); auto numChars = FontLoaderData::DefaultCharacterSet().length(); - CHECK( font.Get()->GetGlyphs().size() == numChars ); - CHECK( font.Get()->GetKerning().size() == numChars * numChars ); + CHECK( font.Get()->GetLayout().Glyphs.size() == numChars ); + CHECK( font.Get()->GetLayout().Kerning.size() == numChars * numChars ); REQUIRE( font.Get()->GetFontAtlas() != nullptr ); CHECK( font.Get()->GetFontAtlas()->GetDescriptor().Height == 256 ); @@ -104,4 +130,6 @@ TEST_CASE( "GraphicAPI.Loaders.Font.Loader.Font.Arial", "[GraphicAPI][FontLoader CHECK( questGlyph.AdvanceY == 0 ); CHECK( questGlyph.BearingX == 0 ); CHECK( questGlyph.BearingY == 12 ); + + CHECK( NoOverlappingGlyphs( font.Get()->GetLayout() ) ); } From f5fd52b1c4a824d578285f75836868c060fcca5d Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Fri, 1 Nov 2024 23:13:20 +0100 Subject: [PATCH 14/96] Support loading multiple Font sizes --- swGraphicAPI/Assets/TextAsset/FontAsset.h | 2 +- .../TextAsset/Loader/FontAssetInitData.cpp | 19 ++++++++++++++++- .../TextAsset/Loader/FontAssetInitData.h | 7 +++++-- .../Assets/TextAsset/Loader/FontLoader.cpp | 13 +++++++----- .../Assets/TextAsset/Loader/FontLoader.h | 2 +- swGraphicAPI/MockAssets/MockAssetCreator.h | 1 + swGraphicAPI/MockAssets/MockAssetLoader.h | 3 ++- .../MockAssets/MockCompositeAssetCreator.h | 1 + .../MockAssets/MockCompositeAssetLoader.h | 2 +- .../ResourceManager/ResourceManager.vcxproj | 2 -- .../AssetCreators/IAssetCreateInfo.h | 6 ++++++ .../Textures/RenderTargetCreator.h | 3 ++- .../AssetCreators/Textures/TextureCreator.h | 3 ++- .../ResourceManager/Loaders/IAssetLoadInfo.h | 10 ++++++++- .../Loaders/RenderTargetLoadInfo.h | 8 +++++++ .../ResourceManager/Loaders/TextureLoadInfo.h | 11 ++++++++-- .../Resources/Buffers/BufferInitData.h | 3 ++- .../Resources/PipelineStates/BlendingState.h | 1 + .../PipelineStates/DepthStencilState.h | 1 + .../PipelineStates/RasterizerState.h | 1 + .../Resources/Shaders/LayoutInitData.h | 1 + .../Resources/Shaders/ShaderInitData.h | 3 ++- .../Resources/Textures/RenderTarget.h | 3 ++- .../Resources/Textures/TextureInitData.h | 3 ++- .../Tests/TestText/TestFontLoader.cpp | 21 +++++++++++++++++++ 25 files changed, 107 insertions(+), 23 deletions(-) diff --git a/swGraphicAPI/Assets/TextAsset/FontAsset.h b/swGraphicAPI/Assets/TextAsset/FontAsset.h index 2e76e63b..ec3d4b70 100644 --- a/swGraphicAPI/Assets/TextAsset/FontAsset.h +++ b/swGraphicAPI/Assets/TextAsset/FontAsset.h @@ -50,7 +50,7 @@ class FontAsset : public Resource float GetKerning ( wchar_t first, wchar_t second ) const; const FontLayout& GetLayout () const { return m_layout; } - const TexturePtr& GetFontAtlas() const { return m_fontAtlas; } + const TexturePtr& GetFontAtlas () const { return m_fontAtlas; } private: ~FontAsset() = default; }; diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp index 27f14942..cfb0ffd3 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp @@ -5,7 +5,7 @@ */ #include "swGraphicAPI/Assets/TextAsset/stdafx.h" - +#include "swCommonLib/Common/fmt.h" #include "swGraphicAPI/ResourceManager/ResourceManager.h" #include "swGraphicAPI/ResourceManager/ResourceManagerAPI.h" #include "swGraphicAPI/Assets/TextAsset/FontAsset.h" @@ -27,11 +27,28 @@ std::wstring FontLoaderData::DefaultCharacterSet() } TypeID FontLoaderData::GetAssetType () const { return TypeID::get< FontAsset >(); } + +// ================================ // +// + +std::string FontLoaderData::ResourceKey() const +{ + return fmt::format( "/Font?fontSize={},genMipMaps={}", this->FontSize, this->GenerateMipmaps ); +} + TypeID FontInitData::GetAssetType () const { return TypeID::get< FontAsset >(); } // ================================ // // +std::string FontInitData::ResourceKey() const +{ + return fmt::format( "/Font?fontSize={},genMipMaps={}", this->FontSize, this->FontAtlas->GetDescriptor().GenerateMipMaps ); +} + +// ================================ // +// + uint32 FontLayout::GetMaxHeight() const { auto max = std::max_element( this->Glyphs.begin(), this->Glyphs.end(), []( const auto& a, const auto& b ) { return a.second.Height < b.second.Height; } ); diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h index 9c7d2792..955ccf29 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h @@ -72,7 +72,8 @@ struct FontInitData : public IAssetCreateInfo public: /**Returns type of asset that can be created using this structure.*/ - virtual TypeID GetAssetType () const override; + virtual TypeID GetAssetType () const override; + virtual std::string ResourceKey () const override; }; @@ -102,7 +103,9 @@ struct FontLoaderData : public IAssetLoadInfo public: /**Returns type of asset that can be created using this structure.*/ - virtual TypeID GetAssetType () const override; + virtual TypeID GetAssetType () const override; + virtual std::string ResourceKey () const override; + }; diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp index 8bac0d78..a659ac99 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp @@ -96,14 +96,17 @@ LoadingResult FreeTypeLoader::Load( const LoadPath& filePath, TypeID resou ReturnIfInvalid( freeType ); ReturnIfInvalid( freeType.Get().CreateFace( filePath, loadInfo->FontSize ) ); + AssetPath atlasPath = AssetPath( filePath.GetFileTranslated(), fmt::format( "/Atlas{}", loadInfo->ResourceKey() ) ); + AssetPath fontAssetPath = AssetPath( filePath.GetFileTranslated(), loadInfo->ResourceKey() ); + FontInitData fontDesc( loadInfo->FontSize ); fontDesc.Layout.Padding = 1; fontDesc.Layout.Glyphs = BuildGlyphs( freeType.Get(), loadInfo->CharacterSet ).Get(); fontDesc.Layout.Kerning = BuildKerning( freeType.Get(), loadInfo->CharacterSet ).Get(); - fontDesc.FontAtlas = RenderAtlas( freeType, filePath, fontDesc.Layout, context ).Get(); + fontDesc.FontAtlas = RenderAtlas( freeType, atlasPath, fontDesc.Layout, context ).Get(); - auto result = context.CreateGenericAsset( filePath.GetOriginalPath(), loadInfo->GetAssetType(), std::move( fontDesc ) ); + auto result = context.CreateGenericAsset( fontAssetPath, loadInfo->GetAssetType(), std::move( fontDesc ) ); if( result.IsValid() ) return LoadingResult( result.Get() ); else @@ -119,7 +122,7 @@ ReturnResult FreeTypeLoader::Prefetch( const LoadPath& filePath, // ================================ // // -Nullable< TexturePtr > FreeTypeLoader::RenderAtlas( const FreeTypeLibrary& freeType, const LoadPath& filePath, FontLayout& fontLayout, RMLoaderAPI factory ) +Nullable< TexturePtr > FreeTypeLoader::RenderAtlas( const FreeTypeLibrary& freeType, const AssetPath& filePath, FontLayout& fontLayout, RMLoaderAPI factory ) { auto glyphsPerRow = (u32)std::ceil( sqrt( (float)fontLayout.Glyphs.size() ) ); @@ -135,14 +138,14 @@ Nullable< TexturePtr > FreeTypeLoader::RenderAtlas( const FreeTypeLibrary& auto image = RenderAtlasToBuffer( freeType, fontLayout, altlasWidth, altlasHeight ); - SoilTextureLoader::Save( filePath.GetFileTranslated().ChangeExtension( ".png" ), image ); + SoilTextureLoader::Save( filePath.GetFile().ChangeExtension( ".png" ), image ); TextureInitData texInfo( std::move( image ) ); texInfo.MipMaps = MipMapsInfo( MipMapFilter::Lanczos3 ); texInfo.TextureUsage = TextureUsageInfo(); texInfo.Format = ResourceFormat::RESOURCE_FORMAT_R8G8B8A8_UNORM; - return factory.CreateAsset< Texture >( AssetPath( filePath.GetFileTranslated(), "/FontAtlas"), std::move(texInfo)); + return factory.CreateAsset< Texture >( filePath, std::move(texInfo)); } // ================================ // diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h index 12657125..18cc1561 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h @@ -36,7 +36,7 @@ class FreeTypeLoader : public IAssetLoader public: /**@brief Renders Texture Atlas. Modifies FontLayout by adding texture mapping.*/ - Nullable< TexturePtr > RenderAtlas ( const FreeTypeLibrary& freeType, const LoadPath& filePath, FontLayout& initData, RMLoaderAPI factor ); + Nullable< TexturePtr > RenderAtlas ( const FreeTypeLibrary& freeType, const AssetPath& filePath, FontLayout& initData, RMLoaderAPI factor ); Image< u32 > RenderAtlasToBuffer ( const FreeTypeLibrary& freeType, FontLayout& initData, uint32 width, uint32 height ); }; diff --git a/swGraphicAPI/MockAssets/MockAssetCreator.h b/swGraphicAPI/MockAssets/MockAssetCreator.h index f922895c..6eb4ea67 100644 --- a/swGraphicAPI/MockAssets/MockAssetCreator.h +++ b/swGraphicAPI/MockAssets/MockAssetCreator.h @@ -30,6 +30,7 @@ struct MockAssetCreateInfo : public IAssetCreateInfo public: virtual TypeID GetAssetType () const { return TypeID::get< MockAsset >(); } + virtual std::string ResourceKey () const override { return ""; } }; diff --git a/swGraphicAPI/MockAssets/MockAssetLoader.h b/swGraphicAPI/MockAssets/MockAssetLoader.h index 15a9dcf6..1f19a9c3 100644 --- a/swGraphicAPI/MockAssets/MockAssetLoader.h +++ b/swGraphicAPI/MockAssets/MockAssetLoader.h @@ -29,7 +29,8 @@ class MockAssetLoadInfo : public IAssetLoadInfo public: // ================================ // // - TypeID MockAssetLoadInfo::GetAssetType () const override { return TypeID::get< MockAsset >(); } + TypeID GetAssetType () const override { return TypeID::get< MockAsset >(); } + virtual std::string ResourceKey () const override { return ""; } }; diff --git a/swGraphicAPI/MockAssets/MockCompositeAssetCreator.h b/swGraphicAPI/MockAssets/MockCompositeAssetCreator.h index 581857c6..9c0c4a9b 100644 --- a/swGraphicAPI/MockAssets/MockCompositeAssetCreator.h +++ b/swGraphicAPI/MockAssets/MockCompositeAssetCreator.h @@ -33,6 +33,7 @@ struct MockCompositeAssetCreateInfo : public IAssetCreateInfo public: virtual TypeID GetAssetType () const { return TypeID::get< MockCompositeAsset >(); } + virtual std::string ResourceKey () const override { return ""; } }; diff --git a/swGraphicAPI/MockAssets/MockCompositeAssetLoader.h b/swGraphicAPI/MockAssets/MockCompositeAssetLoader.h index b669c36a..73304203 100644 --- a/swGraphicAPI/MockAssets/MockCompositeAssetLoader.h +++ b/swGraphicAPI/MockAssets/MockCompositeAssetLoader.h @@ -39,7 +39,7 @@ class MockCompositeAssetLoadInfo : public IAssetLoadInfo // ================================ // // TypeID GetAssetType () const override { return TypeID::get< MockCompositeAsset >(); } - + virtual std::string ResourceKey () const override { return ""; } public: diff --git a/swGraphicAPI/ProjectsDir/Visual2015/ResourceManager/ResourceManager.vcxproj b/swGraphicAPI/ProjectsDir/Visual2015/ResourceManager/ResourceManager.vcxproj index 391b3067..8c7bcf8b 100644 --- a/swGraphicAPI/ProjectsDir/Visual2015/ResourceManager/ResourceManager.vcxproj +++ b/swGraphicAPI/ProjectsDir/Visual2015/ResourceManager/ResourceManager.vcxproj @@ -171,12 +171,10 @@ true Unicode - - diff --git a/swGraphicAPI/ResourceManager/AssetCreators/IAssetCreateInfo.h b/swGraphicAPI/ResourceManager/AssetCreators/IAssetCreateInfo.h index 678b17a9..2dd821b5 100644 --- a/swGraphicAPI/ResourceManager/AssetCreators/IAssetCreateInfo.h +++ b/swGraphicAPI/ResourceManager/AssetCreators/IAssetCreateInfo.h @@ -34,6 +34,12 @@ class IAssetCreateInfo /**@brief Gets type of asset to create.*/ virtual TypeID GetAssetType () const = 0; + /**@brief Computes key which uniquely identifies Resource created from specific file. + + This function can be used to give identitifiers for internal Resources in files, when there + are multiple Assets to load. Other use case are generated or partially generated Assets, which + need to be distinguished. As an example we can generate Texture with mipmaps or without them.*/ + virtual std::string ResourceKey () const = 0; }; diff --git a/swGraphicAPI/ResourceManager/AssetCreators/Textures/RenderTargetCreator.h b/swGraphicAPI/ResourceManager/AssetCreators/Textures/RenderTargetCreator.h index b4918070..fe3b5a0b 100644 --- a/swGraphicAPI/ResourceManager/AssetCreators/Textures/RenderTargetCreator.h +++ b/swGraphicAPI/ResourceManager/AssetCreators/Textures/RenderTargetCreator.h @@ -25,7 +25,8 @@ struct RenderTargetExistingInitInfo : public sw::IAssetCreateInfo RenderTargetPtr RT; public: - virtual TypeID GetAssetType () const override { return TypeID::get< RenderTarget >(); } + virtual TypeID GetAssetType () const override { return TypeID::get< RenderTarget >(); } + virtual std::string ResourceKey () const override { return ""; } }; diff --git a/swGraphicAPI/ResourceManager/AssetCreators/Textures/TextureCreator.h b/swGraphicAPI/ResourceManager/AssetCreators/Textures/TextureCreator.h index f10a7c7b..8e9f845c 100644 --- a/swGraphicAPI/ResourceManager/AssetCreators/Textures/TextureCreator.h +++ b/swGraphicAPI/ResourceManager/AssetCreators/Textures/TextureCreator.h @@ -24,7 +24,8 @@ struct TextureExistingInitInfo : public sw::IAssetCreateInfo TexturePtr Tex; public: - virtual TypeID GetAssetType () const override { return TypeID::get< Texture >(); } + virtual TypeID GetAssetType () const override { return TypeID::get< Texture >(); } + virtual std::string ResourceKey () const override { return ""; } }; diff --git a/swGraphicAPI/ResourceManager/Loaders/IAssetLoadInfo.h b/swGraphicAPI/ResourceManager/Loaders/IAssetLoadInfo.h index d4edff46..d25ea2b2 100644 --- a/swGraphicAPI/ResourceManager/Loaders/IAssetLoadInfo.h +++ b/swGraphicAPI/ResourceManager/Loaders/IAssetLoadInfo.h @@ -27,7 +27,15 @@ class IAssetLoadInfo public: - virtual TypeID GetAssetType () const = 0; + /**@brief Gets type of asset to create.*/ + virtual TypeID GetAssetType () const = 0; + + /**@brief Computes key which uniquely identifies Resource created from specific file. + + This function can be used to give identitifiers for internal Resources in files, when there + are multiple Assets to load. Other use case are generated or partially generated Assets, which + need to be distinguished. As an example we can generate Texture with mipmaps or without them.*/ + virtual std::string ResourceKey () const = 0; }; diff --git a/swGraphicAPI/ResourceManager/Loaders/RenderTargetLoadInfo.h b/swGraphicAPI/ResourceManager/Loaders/RenderTargetLoadInfo.h index 466aa7e4..1a1bf870 100644 --- a/swGraphicAPI/ResourceManager/Loaders/RenderTargetLoadInfo.h +++ b/swGraphicAPI/ResourceManager/Loaders/RenderTargetLoadInfo.h @@ -37,6 +37,10 @@ struct RenderTargetLoadInfo : public IAssetLoadInfo, public RenderTargetDescript RenderTargetDescriptor descriptor = *this; return descriptor; } + + // ================================ // + // + virtual std::string ResourceKey () const override { return ""; } }; /**@brief Create RenderTarget from existing SwapChain. @@ -55,6 +59,10 @@ struct RenderTargetFromSwapChain : public IAssetLoadInfo { return TypeID::get< RenderTarget >(); } + + // ================================ // + // + virtual std::string ResourceKey () const override { return ""; } }; diff --git a/swGraphicAPI/ResourceManager/Loaders/TextureLoadInfo.h b/swGraphicAPI/ResourceManager/Loaders/TextureLoadInfo.h index b19ae9fe..9bbb9469 100644 --- a/swGraphicAPI/ResourceManager/Loaders/TextureLoadInfo.h +++ b/swGraphicAPI/ResourceManager/Loaders/TextureLoadInfo.h @@ -56,11 +56,18 @@ class TextureLoadInfo : public IAssetLoadInfo public: - virtual TypeID GetAssetType () const { return TypeID::get< Texture >(); } + virtual TypeID GetAssetType () const { return TypeID::get< Texture >(); } + virtual std::string ResourceKey () const override; }; - +// ================================ // +// +inline std::string TextureLoadInfo::ResourceKey() const +{ + // TODO: Implement + return std::string(); +} } // sw diff --git a/swGraphicAPI/Resources/Buffers/BufferInitData.h b/swGraphicAPI/Resources/Buffers/BufferInitData.h index 446e1b68..c937b29d 100644 --- a/swGraphicAPI/Resources/Buffers/BufferInitData.h +++ b/swGraphicAPI/Resources/Buffers/BufferInitData.h @@ -51,7 +51,8 @@ struct BufferInitData : public sw::IAssetCreateInfo Data = nullptr; } - virtual TypeID GetAssetType () const override; + virtual TypeID GetAssetType () const override; + virtual std::string ResourceKey () const override { return ""; } public: RTTR_ENABLE( sw::IAssetCreateInfo ); diff --git a/swGraphicAPI/Resources/PipelineStates/BlendingState.h b/swGraphicAPI/Resources/PipelineStates/BlendingState.h index bc02c8e2..ef7ddcd9 100644 --- a/swGraphicAPI/Resources/PipelineStates/BlendingState.h +++ b/swGraphicAPI/Resources/PipelineStates/BlendingState.h @@ -76,6 +76,7 @@ struct BlendingInfo : public sw::IAssetCreateInfo public: virtual TypeID GetAssetType () const override { return TypeID::get< BlendingState >(); } + virtual std::string ResourceKey () const override { return ""; } }; diff --git a/swGraphicAPI/Resources/PipelineStates/DepthStencilState.h b/swGraphicAPI/Resources/PipelineStates/DepthStencilState.h index e844ac64..4f1d7dba 100644 --- a/swGraphicAPI/Resources/PipelineStates/DepthStencilState.h +++ b/swGraphicAPI/Resources/PipelineStates/DepthStencilState.h @@ -48,6 +48,7 @@ struct DepthStencilInfo : public sw::IAssetCreateInfo public: virtual TypeID GetAssetType () const override { return TypeID::get< DepthStencilState >(); } + virtual std::string ResourceKey () const override { return ""; } }; diff --git a/swGraphicAPI/Resources/PipelineStates/RasterizerState.h b/swGraphicAPI/Resources/PipelineStates/RasterizerState.h index 30107e3b..49f927bd 100644 --- a/swGraphicAPI/Resources/PipelineStates/RasterizerState.h +++ b/swGraphicAPI/Resources/PipelineStates/RasterizerState.h @@ -69,6 +69,7 @@ struct RasterizerStateInfo : public sw::IAssetCreateInfo public: virtual TypeID GetAssetType () const override { return TypeID::get< RasterizerState >(); } + virtual std::string ResourceKey () const override { return ""; } }; diff --git a/swGraphicAPI/Resources/Shaders/LayoutInitData.h b/swGraphicAPI/Resources/Shaders/LayoutInitData.h index 0d08f323..2f009bea 100644 --- a/swGraphicAPI/Resources/Shaders/LayoutInitData.h +++ b/swGraphicAPI/Resources/Shaders/LayoutInitData.h @@ -79,6 +79,7 @@ class InputLayoutDescriptor : public sw::IAssetCreateInfo void AddEntryPerInstance ( AttributeSemantic semanticName, ResourceFormat format, uint16 offset, uint16 inputSlot, uint32 instanceDataStep ); virtual TypeID GetAssetType () const override; + virtual std::string ResourceKey () const override { return ""; } const std::vector< LayoutEntry >& GetEntries () const { return m_entries; } diff --git a/swGraphicAPI/Resources/Shaders/ShaderInitData.h b/swGraphicAPI/Resources/Shaders/ShaderInitData.h index e37d0048..92f556fc 100644 --- a/swGraphicAPI/Resources/Shaders/ShaderInitData.h +++ b/swGraphicAPI/Resources/Shaders/ShaderInitData.h @@ -39,7 +39,8 @@ struct ShaderInitData : public IAssetCreateInfo , EntryFunction( "main" ) {} - virtual TypeID GetAssetType () const override; + virtual TypeID GetAssetType () const override; + virtual std::string ResourceKey () const override { return fmt::format( "/?entrypoint={},type={}", EntryFunction, GetAssetType().get_name().to_string() ); } public: diff --git a/swGraphicAPI/Resources/Textures/RenderTarget.h b/swGraphicAPI/Resources/Textures/RenderTarget.h index 516cbb96..3e11f412 100644 --- a/swGraphicAPI/Resources/Textures/RenderTarget.h +++ b/swGraphicAPI/Resources/Textures/RenderTarget.h @@ -92,7 +92,8 @@ struct RenderTargetDescriptor : public IAssetCreateInfo public: - virtual TypeID GetAssetType () const override { return TypeID::get< RenderTarget >(); } + virtual TypeID GetAssetType () const override { return TypeID::get< RenderTarget >(); } + virtual std::string ResourceKey () const override { return ""; } }; /**@brief Class representing render target. diff --git a/swGraphicAPI/Resources/Textures/TextureInitData.h b/swGraphicAPI/Resources/Textures/TextureInitData.h index 5e4a7aae..be51caa2 100644 --- a/swGraphicAPI/Resources/Textures/TextureInitData.h +++ b/swGraphicAPI/Resources/Textures/TextureInitData.h @@ -92,7 +92,8 @@ struct TextureInitData : public sw::IAssetCreateInfo } public: - virtual TypeID GetAssetType () const override { return TypeID::get< Texture >(); } + virtual TypeID GetAssetType () const override { return TypeID::get< Texture >(); } + virtual std::string ResourceKey () const override { return ""; } }; diff --git a/swGraphicAPI/Tests/TestText/TestFontLoader.cpp b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp index f32507f0..5774e0e4 100644 --- a/swGraphicAPI/Tests/TestText/TestFontLoader.cpp +++ b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp @@ -133,3 +133,24 @@ TEST_CASE( "GraphicAPI.Loaders.Font.Loader.Font.Arial", "[GraphicAPI][FontLoader CHECK( NoOverlappingGlyphs( font.Get()->GetLayout() ) ); } + +// ================================ // +// +TEST_CASE( "GraphicAPI.Loaders.Font.Loader.2Sizes", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) +{ + auto rm = CreateResourceManagerWithFonts(); + auto api = ResourceManagerAPI( rm.get() ); + + FontLoaderData init( 16 ); + + auto font = api.Load< FontAsset >( "$(FontAssets)/arial.ttf", &init ); + REQUIRE_IS_VALID( font ); + + FontLoaderData init2( 30 ); + + auto font2 = api.Load< FontAsset >( "$(FontAssets)/arial.ttf", &init2 ); + REQUIRE_IS_VALID( font ); + + CHECK( font.Get()->GetFontAtlas() != font2.Get()->GetFontAtlas()); +} + From 6aed8557a85862f0ec282aa45b13d5855baf7150 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Fri, 1 Nov 2024 23:24:30 +0100 Subject: [PATCH 15/96] Disable saving atlas; Move things around --- swGraphicAPI/Assets/TextAsset/FontAsset.h | 2 +- swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h | 2 +- swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp | 2 +- swGraphicAPI/Assets/TextAsset/{ => Loader}/Glyph.h | 0 .../ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj | 2 +- .../Visual2015/TextAsset/TextAsset.vcxproj.filters | 4 +++- swGraphicAPI/Tests/TestText/TestFontLoader.cpp | 8 ++++---- 7 files changed, 11 insertions(+), 9 deletions(-) rename swGraphicAPI/Assets/TextAsset/{ => Loader}/Glyph.h (100%) diff --git a/swGraphicAPI/Assets/TextAsset/FontAsset.h b/swGraphicAPI/Assets/TextAsset/FontAsset.h index ec3d4b70..433cec64 100644 --- a/swGraphicAPI/Assets/TextAsset/FontAsset.h +++ b/swGraphicAPI/Assets/TextAsset/FontAsset.h @@ -9,7 +9,7 @@ #include "swGraphicAPI/Resources/Textures/Texture.h" #include "swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h" -#include "swGraphicAPI/Assets/TextAsset/Glyph.h" +#include "swGraphicAPI/Assets/TextAsset/Loader/Glyph.h" namespace sw diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h index 955ccf29..fac88bf3 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h @@ -13,7 +13,7 @@ #include "swGraphicAPI/ResourceManager/AssetCreators/IAssetCreateInfo.h" #include "swGraphicAPI/ResourceManager/Loaders/IAssetLoadInfo.h" -#include "swGraphicAPI/Assets/TextAsset/Glyph.h" +#include "swGraphicAPI/Assets/TextAsset/Loader/Glyph.h" namespace sw { diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp index a659ac99..a3ad34de 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp @@ -138,7 +138,7 @@ Nullable< TexturePtr > FreeTypeLoader::RenderAtlas( const FreeTypeLibrary& auto image = RenderAtlasToBuffer( freeType, fontLayout, altlasWidth, altlasHeight ); - SoilTextureLoader::Save( filePath.GetFile().ChangeExtension( ".png" ), image ); + //SoilTextureLoader::Save( filePath.GetFile().ChangeExtension( ".png" ), image ); TextureInitData texInfo( std::move( image ) ); texInfo.MipMaps = MipMapsInfo( MipMapFilter::Lanczos3 ); diff --git a/swGraphicAPI/Assets/TextAsset/Glyph.h b/swGraphicAPI/Assets/TextAsset/Loader/Glyph.h similarity index 100% rename from swGraphicAPI/Assets/TextAsset/Glyph.h rename to swGraphicAPI/Assets/TextAsset/Loader/Glyph.h diff --git a/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj b/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj index 0d5872cd..f9145656 100644 --- a/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj +++ b/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj @@ -41,11 +41,11 @@ - + diff --git a/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj.filters b/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj.filters index 6fc6ba78..b546c58c 100644 --- a/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj.filters +++ b/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj.filters @@ -16,7 +16,6 @@ - @@ -31,6 +30,9 @@ Loader + + Loader + diff --git a/swGraphicAPI/Tests/TestText/TestFontLoader.cpp b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp index 5774e0e4..a1e62b2c 100644 --- a/swGraphicAPI/Tests/TestText/TestFontLoader.cpp +++ b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp @@ -42,7 +42,7 @@ bool NoOverlappingGlyphs( const FontLayout& layout ) // ================================ // // -TEST_CASE( "GraphicAPI.Loaders.Font.Loader.FontFormat.ttf", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) +TEST_CASE( "GraphicAPI.Loaders.Font.Format.ttf", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) { auto rm = CreateResourceManagerWithFonts(); auto api = ResourceManagerAPI( rm.get() ); @@ -65,7 +65,7 @@ TEST_CASE( "GraphicAPI.Loaders.Font.Loader.FontFormat.ttf", "[GraphicAPI][FontLo // ================================ // // -TEST_CASE( "GraphicAPI.Loaders.Font.Loader.FontFormat.otf", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) +TEST_CASE( "GraphicAPI.Loaders.Font.Format.otf", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) { auto rm = CreateResourceManagerWithFonts(); auto api = ResourceManagerAPI( rm.get() ); @@ -88,7 +88,7 @@ TEST_CASE( "GraphicAPI.Loaders.Font.Loader.FontFormat.otf", "[GraphicAPI][FontLo // ================================ // // -TEST_CASE( "GraphicAPI.Loaders.Font.Loader.Font.Arial", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) +TEST_CASE( "GraphicAPI.Loaders.Font.Arial", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) { auto rm = CreateResourceManagerWithFonts(); auto api = ResourceManagerAPI( rm.get() ); @@ -136,7 +136,7 @@ TEST_CASE( "GraphicAPI.Loaders.Font.Loader.Font.Arial", "[GraphicAPI][FontLoader // ================================ // // -TEST_CASE( "GraphicAPI.Loaders.Font.Loader.2Sizes", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) +TEST_CASE( "GraphicAPI.Loaders.Font.SameFont.2Sizes", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) { auto rm = CreateResourceManagerWithFonts(); auto api = ResourceManagerAPI( rm.get() ); From f7a6339288d205fb12abf84a3355de2600db0c3d Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Fri, 1 Nov 2024 23:30:47 +0100 Subject: [PATCH 16/96] Fix compliation --- swGraphicAPI/ResourceManager/AssetCreators/IAssetCreateInfo.h | 2 +- swGraphicAPI/ResourceManager/Loaders/IAssetLoadInfo.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/swGraphicAPI/ResourceManager/AssetCreators/IAssetCreateInfo.h b/swGraphicAPI/ResourceManager/AssetCreators/IAssetCreateInfo.h index 2dd821b5..3ec80077 100644 --- a/swGraphicAPI/ResourceManager/AssetCreators/IAssetCreateInfo.h +++ b/swGraphicAPI/ResourceManager/AssetCreators/IAssetCreateInfo.h @@ -39,7 +39,7 @@ class IAssetCreateInfo This function can be used to give identitifiers for internal Resources in files, when there are multiple Assets to load. Other use case are generated or partially generated Assets, which need to be distinguished. As an example we can generate Texture with mipmaps or without them.*/ - virtual std::string ResourceKey () const = 0; + virtual std::string ResourceKey () const { return ""; } }; diff --git a/swGraphicAPI/ResourceManager/Loaders/IAssetLoadInfo.h b/swGraphicAPI/ResourceManager/Loaders/IAssetLoadInfo.h index d25ea2b2..1a2a2571 100644 --- a/swGraphicAPI/ResourceManager/Loaders/IAssetLoadInfo.h +++ b/swGraphicAPI/ResourceManager/Loaders/IAssetLoadInfo.h @@ -35,7 +35,7 @@ class IAssetLoadInfo This function can be used to give identitifiers for internal Resources in files, when there are multiple Assets to load. Other use case are generated or partially generated Assets, which need to be distinguished. As an example we can generate Texture with mipmaps or without them.*/ - virtual std::string ResourceKey () const = 0; + virtual std::string ResourceKey () const { return ""; } }; From b7f8c12a32fcafb0e12d4da797ed81f60b745d2c Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sat, 2 Nov 2024 12:32:54 +0100 Subject: [PATCH 17/96] Encode default character set as UTF-8 --- .editorconfig | 243 ++++++++++++++++++ .../TextAsset/Loader/FontAssetInitData.cpp | 7 +- swGraphicAPI/Assets/TextAsset/stdafx.cpp | 2 +- 3 files changed, 250 insertions(+), 2 deletions(-) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..25ac5af3 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,243 @@ +# Visual Studio generated .editorconfig file with C++ settings. +root = true + +[*.{c++,cc,cpp,cppm,cxx,h,h++,hh,hpp,hxx,inl,ipp,ixx,tlh,tli}] + +# Visual C++ Code Style settings + +cpp_generate_documentation_comments = doxygen_slash_star +charset = utf-8 + +# Visual C++ Formatting settings + +cpp_indent_braces = false +cpp_indent_multi_line_relative_to = innermost_parenthesis +cpp_indent_within_parentheses = indent +cpp_indent_preserve_within_parentheses = true +cpp_indent_case_contents = true +cpp_indent_case_labels = false +cpp_indent_case_contents_when_block = false +cpp_indent_lambda_braces_when_parameter = true +cpp_indent_goto_labels = one_left +cpp_indent_preprocessor = leftmost_column +cpp_indent_access_specifiers = false +cpp_indent_namespace_contents = false +cpp_indent_preserve_comments = false +cpp_new_line_before_open_brace_namespace = ignore +cpp_new_line_before_open_brace_type = ignore +cpp_new_line_before_open_brace_function = ignore +cpp_new_line_before_open_brace_block = ignore +cpp_new_line_before_open_brace_lambda = ignore +cpp_new_line_scope_braces_on_separate_lines = false +cpp_new_line_close_brace_same_line_empty_type = false +cpp_new_line_close_brace_same_line_empty_function = false +cpp_new_line_before_catch = true +cpp_new_line_before_else = true +cpp_new_line_before_while_in_do_while = false +cpp_space_before_function_open_parenthesis = ignore +cpp_space_within_parameter_list_parentheses = true +cpp_space_between_empty_parameter_list_parentheses = false +cpp_space_after_keywords_in_control_flow_statements = false +cpp_space_within_control_flow_statement_parentheses = true +cpp_space_before_lambda_open_parenthesis = false +cpp_space_within_cast_parentheses = false +cpp_space_after_cast_close_parenthesis = false +cpp_space_within_expression_parentheses = false +cpp_space_before_block_open_brace = true +cpp_space_between_empty_braces = false +cpp_space_before_initializer_list_open_brace = false +cpp_space_within_initializer_list_braces = true +cpp_space_preserve_in_initializer_list = true +cpp_space_before_open_square_bracket = false +cpp_space_within_square_brackets = true +cpp_space_before_empty_square_brackets = false +cpp_space_between_empty_square_brackets = false +cpp_space_group_square_brackets = true +cpp_space_within_lambda_brackets = false +cpp_space_between_empty_lambda_brackets = false +cpp_space_before_comma = false +cpp_space_after_comma = true +cpp_space_remove_around_member_operators = true +cpp_space_before_inheritance_colon = true +cpp_space_before_constructor_colon = true +cpp_space_remove_before_semicolon = true +cpp_space_after_semicolon = true +cpp_space_remove_around_unary_operator = true +cpp_space_around_binary_operator = insert +cpp_space_around_assignment_operator = insert +cpp_space_pointer_reference_alignment = left +cpp_space_around_ternary_operator = insert +cpp_use_unreal_engine_macro_formatting = true +cpp_wrap_preserve_blocks = one_liners + +# Visual C++ Inlcude Cleanup settings + +cpp_include_cleanup_add_missing_error_tag_type = suggestion +cpp_include_cleanup_remove_unused_error_tag_type = dimmed +cpp_include_cleanup_optimize_unused_error_tag_type = suggestion +cpp_include_cleanup_sort_after_edits = false +cpp_sort_includes_error_tag_type = none +cpp_sort_includes_priority_case_sensitive = false +cpp_sort_includes_priority_style = quoted +cpp_includes_style = default +cpp_includes_use_forward_slash = true + +[*.{c++,cc,cpp,cppm,cxx,h,h++,hh,hpp,hxx,inl,ipp,ixx,tlh,tli}] + +# Visual C++ Code Style settings + +cpp_generate_documentation_comments = doxygen_slash_star + +# Visual C++ Formatting settings + +cpp_indent_braces = false +cpp_indent_multi_line_relative_to = innermost_parenthesis +cpp_indent_within_parentheses = indent +cpp_indent_preserve_within_parentheses = true +cpp_indent_case_contents = true +cpp_indent_case_labels = false +cpp_indent_case_contents_when_block = false +cpp_indent_lambda_braces_when_parameter = true +cpp_indent_goto_labels = one_left +cpp_indent_preprocessor = leftmost_column +cpp_indent_access_specifiers = false +cpp_indent_namespace_contents = false +cpp_indent_preserve_comments = false +cpp_new_line_before_open_brace_namespace = ignore +cpp_new_line_before_open_brace_type = ignore +cpp_new_line_before_open_brace_function = ignore +cpp_new_line_before_open_brace_block = ignore +cpp_new_line_before_open_brace_lambda = ignore +cpp_new_line_scope_braces_on_separate_lines = false +cpp_new_line_close_brace_same_line_empty_type = false +cpp_new_line_close_brace_same_line_empty_function = false +cpp_new_line_before_catch = true +cpp_new_line_before_else = true +cpp_new_line_before_while_in_do_while = false +cpp_space_before_function_open_parenthesis = ignore +cpp_space_within_parameter_list_parentheses = true +cpp_space_between_empty_parameter_list_parentheses = false +cpp_space_after_keywords_in_control_flow_statements = false +cpp_space_within_control_flow_statement_parentheses = true +cpp_space_before_lambda_open_parenthesis = false +cpp_space_within_cast_parentheses = false +cpp_space_after_cast_close_parenthesis = false +cpp_space_within_expression_parentheses = false +cpp_space_before_block_open_brace = true +cpp_space_between_empty_braces = false +cpp_space_before_initializer_list_open_brace = false +cpp_space_within_initializer_list_braces = true +cpp_space_preserve_in_initializer_list = true +cpp_space_before_open_square_bracket = false +cpp_space_within_square_brackets = true +cpp_space_before_empty_square_brackets = false +cpp_space_between_empty_square_brackets = false +cpp_space_group_square_brackets = true +cpp_space_within_lambda_brackets = false +cpp_space_between_empty_lambda_brackets = false +cpp_space_before_comma = false +cpp_space_after_comma = true +cpp_space_remove_around_member_operators = true +cpp_space_before_inheritance_colon = true +cpp_space_before_constructor_colon = true +cpp_space_remove_before_semicolon = true +cpp_space_after_semicolon = true +cpp_space_remove_around_unary_operator = true +cpp_space_around_binary_operator = insert +cpp_space_around_assignment_operator = insert +cpp_space_pointer_reference_alignment = left +cpp_space_around_ternary_operator = insert +cpp_use_unreal_engine_macro_formatting = true +cpp_wrap_preserve_blocks = one_liners + +# Visual C++ Inlcude Cleanup settings + +cpp_include_cleanup_add_missing_error_tag_type = suggestion +cpp_include_cleanup_remove_unused_error_tag_type = dimmed +cpp_include_cleanup_optimize_unused_error_tag_type = suggestion +cpp_include_cleanup_sort_after_edits = false +cpp_sort_includes_error_tag_type = none +cpp_sort_includes_priority_case_sensitive = false +cpp_sort_includes_priority_style = quoted +cpp_includes_style = default +cpp_includes_use_forward_slash = true + +[*.{c++,cc,cpp,cppm,cxx,h,h++,hh,hpp,hxx,inl,ipp,ixx,tlh,tli}] + +# Visual C++ Code Style settings + +cpp_generate_documentation_comments = doxygen_slash_star + +# Visual C++ Formatting settings + +cpp_indent_braces = false +cpp_indent_multi_line_relative_to = innermost_parenthesis +cpp_indent_within_parentheses = indent +cpp_indent_preserve_within_parentheses = true +cpp_indent_case_contents = true +cpp_indent_case_labels = false +cpp_indent_case_contents_when_block = false +cpp_indent_lambda_braces_when_parameter = true +cpp_indent_goto_labels = one_left +cpp_indent_preprocessor = leftmost_column +cpp_indent_access_specifiers = false +cpp_indent_namespace_contents = false +cpp_indent_preserve_comments = false +cpp_new_line_before_open_brace_namespace = ignore +cpp_new_line_before_open_brace_type = ignore +cpp_new_line_before_open_brace_function = ignore +cpp_new_line_before_open_brace_block = ignore +cpp_new_line_before_open_brace_lambda = ignore +cpp_new_line_scope_braces_on_separate_lines = false +cpp_new_line_close_brace_same_line_empty_type = false +cpp_new_line_close_brace_same_line_empty_function = false +cpp_new_line_before_catch = true +cpp_new_line_before_else = true +cpp_new_line_before_while_in_do_while = false +cpp_space_before_function_open_parenthesis = ignore +cpp_space_within_parameter_list_parentheses = true +cpp_space_between_empty_parameter_list_parentheses = false +cpp_space_after_keywords_in_control_flow_statements = false +cpp_space_within_control_flow_statement_parentheses = true +cpp_space_before_lambda_open_parenthesis = false +cpp_space_within_cast_parentheses = false +cpp_space_after_cast_close_parenthesis = false +cpp_space_within_expression_parentheses = false +cpp_space_before_block_open_brace = true +cpp_space_between_empty_braces = false +cpp_space_before_initializer_list_open_brace = false +cpp_space_within_initializer_list_braces = true +cpp_space_preserve_in_initializer_list = true +cpp_space_before_open_square_bracket = false +cpp_space_within_square_brackets = true +cpp_space_before_empty_square_brackets = false +cpp_space_between_empty_square_brackets = false +cpp_space_group_square_brackets = true +cpp_space_within_lambda_brackets = false +cpp_space_between_empty_lambda_brackets = false +cpp_space_before_comma = false +cpp_space_after_comma = true +cpp_space_remove_around_member_operators = true +cpp_space_before_inheritance_colon = true +cpp_space_before_constructor_colon = true +cpp_space_remove_before_semicolon = true +cpp_space_after_semicolon = true +cpp_space_remove_around_unary_operator = true +cpp_space_around_binary_operator = insert +cpp_space_around_assignment_operator = insert +cpp_space_pointer_reference_alignment = left +cpp_space_around_ternary_operator = insert +cpp_use_unreal_engine_macro_formatting = true +cpp_wrap_preserve_blocks = one_liners + +# Visual C++ Inlcude Cleanup settings + +cpp_include_cleanup_add_missing_error_tag_type = suggestion +cpp_include_cleanup_remove_unused_error_tag_type = dimmed +cpp_include_cleanup_optimize_unused_error_tag_type = suggestion +cpp_include_cleanup_sort_after_edits = false +cpp_sort_includes_error_tag_type = none +cpp_sort_includes_priority_case_sensitive = false +cpp_sort_includes_priority_style = quoted +cpp_includes_style = default +cpp_includes_use_forward_slash = true diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp index cfb0ffd3..a1239b96 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp @@ -23,9 +23,14 @@ namespace sw std::wstring FontLoaderData::DefaultCharacterSet() { - return std::wstring( L"1234568790.~,/?:;[]{}\\|`!@#$%^&*()-_+=<>\"'abcdefghijklmnopqrstuvxyz柿wABCDEFGHIJKLMNOPQRSTUVXYZƏW܊ԩ" ); + // Convert assumes that string is utf8 encoded. + std::string_view charset = { "1234568790.~,/?“‘:;[]{}\\|`!@#$%^&*()-_+=<>–°\"'abcdefghijklmnopqrstuvxyząęćźżłśóńwABCDEFGHIJKLMNOPQRSTUVXYZĄĘĆŹŻŁŚÓŃWÄÖÜŠŽÇÉËÎÔ©" }; + return Convert::FromString< std::wstring >( charset ).Get(); } +// ================================ // +// + TypeID FontLoaderData::GetAssetType () const { return TypeID::get< FontAsset >(); } // ================================ // diff --git a/swGraphicAPI/Assets/TextAsset/stdafx.cpp b/swGraphicAPI/Assets/TextAsset/stdafx.cpp index a68c8da4..7211927c 100644 --- a/swGraphicAPI/Assets/TextAsset/stdafx.cpp +++ b/swGraphicAPI/Assets/TextAsset/stdafx.cpp @@ -3,7 +3,7 @@ #include "swGraphicAPI/Assets/TextAsset/stdafx.h" - +#include "swCommonLib/Common/Converters/Convert.h" // TODO: reference any additional headers you need in STDAFX.H // and not in this file From 10fff1e9a3ea9d3338c598b9c9c4af9342bfa5c5 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sat, 2 Nov 2024 12:44:03 +0100 Subject: [PATCH 18/96] Incldue more in precompiled header --- swGraphicAPI/Assets/TextAsset/stdafx.cpp | 2 -- swGraphicAPI/Assets/TextAsset/stdafx.h | 17 +++++++++++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/swGraphicAPI/Assets/TextAsset/stdafx.cpp b/swGraphicAPI/Assets/TextAsset/stdafx.cpp index 7211927c..0fec42e2 100644 --- a/swGraphicAPI/Assets/TextAsset/stdafx.cpp +++ b/swGraphicAPI/Assets/TextAsset/stdafx.cpp @@ -3,7 +3,5 @@ #include "swGraphicAPI/Assets/TextAsset/stdafx.h" -#include "swCommonLib/Common/Converters/Convert.h" - // TODO: reference any additional headers you need in STDAFX.H // and not in this file diff --git a/swGraphicAPI/Assets/TextAsset/stdafx.h b/swGraphicAPI/Assets/TextAsset/stdafx.h index 3e6c0b37..8440456f 100644 --- a/swGraphicAPI/Assets/TextAsset/stdafx.h +++ b/swGraphicAPI/Assets/TextAsset/stdafx.h @@ -18,13 +18,26 @@ #include +#include "swCommonLib/Common/fmt.h" #include "swCommonLib/Common/RTTR.h" +#include "swCommonLib/System/File.h" +#include "swCommonLib/Common/Exceptions/Nullable.h" +#include "swCommonLib/Common/Converters/Convert.h" + +#include "swCommonLib/Common/Buffers/Image.h" +#include "swCommonLib/Common/Buffers/BufferTyped.h" +#include "swCommonLib/Common/Buffers/ImageRegion.h" + + +#include "swGraphicAPI/ResourceManager/Loaders/IAssetLoadInfo.h" +#include "swGraphicAPI/ResourceManager/Loaders/IAssetLoader.h" #include "swGraphicAPI/Rendering/GraphicAPIConstants.h" #include "swGraphicAPI/ResourceManager/ResourceManager.h" +#include "swGraphicAPI/ResourceManager/ResourceManagerAPI.h" -#include "swCommonLib/System/File.h" -#include "swCommonLib/Common/Buffers/BufferTyped.h" +#include "swGraphicAPI/Assets/TextAsset/Loader/Glyph.h" +#include "swGraphicAPI/Assets/TextAsset/FontAsset.h" #include #include FT_FREETYPE_H From c44b58837ae33ac1c47bcf039744fe9af37b7ea8 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sat, 2 Nov 2024 13:14:06 +0100 Subject: [PATCH 19/96] Fix characters encoding in test --- swGraphicAPI/Tests/TestText/TestFontLoader.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/swGraphicAPI/Tests/TestText/TestFontLoader.cpp b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp index a1e62b2c..d6c426cf 100644 --- a/swGraphicAPI/Tests/TestText/TestFontLoader.cpp +++ b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp @@ -6,6 +6,7 @@ */ #include "swCommonLib\TestUtils\CatchUtils\ExtendedMacros.h" +#include "swCommonLib/Common/Converters/Convert.h" #include "swGraphicAPI/ResourceManager/ResourceManager.h" #include "swGraphicAPI/ResourceManager/ResourceManagerAPI.h" @@ -115,7 +116,7 @@ TEST_CASE( "GraphicAPI.Loaders.Font.Arial", "[GraphicAPI][FontLoader][FreeTypeLo CHECK( wGlyph.BearingX == 0 ); CHECK( wGlyph.BearingY == 12 ); - auto sGlyph = font.Get()->GetGlyph( L'' ); + auto sGlyph = font.Get()->GetGlyph( Convert::FromString< std::wstring >( std::string_view( "Ś" ) ).Get()[ 0 ] ); CHECK( sGlyph.Width == 10 ); CHECK( sGlyph.Height == 15 ); CHECK( sGlyph.AdvanceX == 11 ); From 27d6e24299438bb81bd5a580dc531a2f60e9c6d0 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sat, 2 Nov 2024 20:27:59 +0100 Subject: [PATCH 20/96] Layout first not tested attempt --- .../{Types/Math/SimpleMath.h => Math/Math.h} | 0 .../GeometricsCore/{Types => }/Math/Types.h | 8 + .../GeometricsCore/GeometricsCore.vcxproj | 4 +- .../GeometricsCore.vcxproj.filters | 10 +- .../Assets/TextAsset/Loader/FontLoader.cpp | 2 +- .../Assets/TextAsset/Loader/FreeType.h | 2 +- swGraphicAPI/Assets/TextAsset/Text.cpp | 189 ++++++++++++++++++ swGraphicAPI/Assets/TextAsset/Text.h | 34 +++- 8 files changed, 231 insertions(+), 18 deletions(-) rename swGeometrics/GeometricsCore/{Types/Math/SimpleMath.h => Math/Math.h} (100%) rename swGeometrics/GeometricsCore/{Types => }/Math/Types.h (74%) diff --git a/swGeometrics/GeometricsCore/Types/Math/SimpleMath.h b/swGeometrics/GeometricsCore/Math/Math.h similarity index 100% rename from swGeometrics/GeometricsCore/Types/Math/SimpleMath.h rename to swGeometrics/GeometricsCore/Math/Math.h diff --git a/swGeometrics/GeometricsCore/Types/Math/Types.h b/swGeometrics/GeometricsCore/Math/Types.h similarity index 74% rename from swGeometrics/GeometricsCore/Types/Math/Types.h rename to swGeometrics/GeometricsCore/Math/Types.h index 5bb02b80..063f32ec 100644 --- a/swGeometrics/GeometricsCore/Types/Math/Types.h +++ b/swGeometrics/GeometricsCore/Math/Types.h @@ -42,5 +42,13 @@ struct Rect2d } }; +inline Position2d operator+( Position2d left, Position2d right ) { + return Position2d( left.x + right.x, left.y + right.y ); } +inline Position2d& operator+=( Position2d& left, Position2d right ) { + left = left + right; + return left; +} + +} diff --git a/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj b/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj index b115520f..ccdad064 100644 --- a/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj +++ b/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj @@ -21,6 +21,8 @@ + + CppHeader @@ -33,8 +35,6 @@ - - diff --git a/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj.filters b/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj.filters index d044d88b..215a7784 100644 --- a/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj.filters +++ b/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj.filters @@ -28,7 +28,7 @@ {e0aa2870-9ed2-4cf6-bcc6-899b942a78d6} - + {b2d4b061-0840-4231-8c30-e20b29100d42} @@ -77,11 +77,11 @@ Geometric\Processors\Transform - - Geometric\Types\Math + + Geometric\Math - - Geometric\Types\Math + + Geometric\Math \ No newline at end of file diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp index a3ad34de..aeec8fa4 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp @@ -12,7 +12,7 @@ #include "swGraphicAPI/ResourceManager/Loaders/Tools/CanLoad.h" #include "swGraphicAPI/ResourceManager/Exceptions/LoaderException.h" -#include "swGeometrics/GeometricsCore/Types/Math/SimpleMath.h" +#include "swGeometrics/GeometricsCore/Math/Math.h" #include "swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.h" #include "swGraphicAPI/Assets/TextAsset/FontAsset.h" diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h b/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h index ddb3e234..cdf253fc 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h @@ -21,7 +21,7 @@ static const char* ftErrorString( FT_Error error ) #include "swCommonLib/Common/Exceptions/Nullable.h" #include "swCommonLib/Common/Buffers/ImageRegion.h" -#include "swGeometrics/GeometricsCore/Types/Math/Types.h" +#include "swGeometrics/GeometricsCore/Math/Types.h" namespace sw { diff --git a/swGraphicAPI/Assets/TextAsset/Text.cpp b/swGraphicAPI/Assets/TextAsset/Text.cpp index d3043a20..a9eb5e78 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.cpp +++ b/swGraphicAPI/Assets/TextAsset/Text.cpp @@ -1,2 +1,191 @@ +/** +@file Text.cpp +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ #include "swGraphicAPI/Assets/TextAsset/stdafx.h" +#include "Text.h" + + +namespace sw +{ + + + +// ================================ // + +std::vector< Position2d > TextArrange::ArrangeText( const std::wstring& text, const FontLayout& layout ) const +{ + std::vector< Position2d > letters; + letters.reserve( text.length() ); + + Position2d translate( this->Bounds.Left, this->Bounds.Top ); + Size charIdx = 0; + + while( charIdx < text.length() ) + { + auto lineString = std::wstring_view( text.c_str() + charIdx ); + auto line = ArrangeLine( lineString, layout, translate ); + + ApplyAlignement( layout, line, lineString ); + + charIdx += line.size(); + translate = Position2d( this->Bounds.Left, translate.y - this->NewLineSize ); + + if( this->CutOutOfBounds && translate.y < this->Bounds.Bottom ) + break; + } + + return letters; +} + +// ================================ // + +std::vector< Position2d > TextArrange::ArrangeLine( std::wstring_view text, const FontLayout& layout, Position2d translate ) const +{ + std::vector< Position2d > letters; + letters.reserve( text.find_first_of( L"\n\r") ); + + Size lastSpace = 0; + + for( Size charIdx = 0; charIdx < text.length(); charIdx++ ) + { + if( IsSpace( text[ charIdx ] ) ) + { + lastSpace = charIdx; + + translate += Position2d( this->SpaceSize + this->Interspace, 0.f ); + letters.push_back( translate ); + continue; + } + + if( IsNewline( text[ charIdx ] ) ) + { + letters.push_back( translate ); + return letters; + } + + if( auto glyphIter = layout.Glyphs.find( text[ charIdx ] ); glyphIter != layout.Glyphs.end() ) + { + auto& glyph = glyphIter->second; + + if( this->UseKerning && charIdx > 0 ) + { + auto kerShift = layout.Kerning.at( std::make_pair( text[ charIdx - 1 ], text[ charIdx ] ) ); + translate += Position2d( kerShift / this->AspectRatio, 0.0 ); + } + + letters.push_back( translate ); + translate += Position2d( this->Interspace + ( glyph.AdvanceX / this->AspectRatio ), 0.f ); + } + else + { + // Unknown character: put space instead. + letters.push_back( translate ); + translate += Position2d( this->SpaceSize + this->Interspace, 0.f ); + } + + if( this->WrapText && translate.x > this->Bounds.Right ) + { + // Text crossed right bound. We need to break line. + // Removing all characters since last space. Next call to ArrangeLine will handle those characters again. + letters.erase( letters.begin() + (lastSpace + 1), letters.end() ); + break; + } + } + + return letters; +} + +// ================================ // + +void TextArrange::ApplyAlignement( const FontLayout& layout, std::vector< Position2d >& letters, std::wstring_view text ) const +{ + if( letters.empty() || text.length() < letters.size() ) + return; + + Size charIdx = letters.size() - 1; + Position2d last = letters[ charIdx ]; + auto& glyph = layout.Glyphs.at( text[ charIdx ] ); + + float textWidth = letters.back().x - letters.front().x + ( glyph.AdvanceX / this->AspectRatio ); + float remainingSpace = this->Bounds.Right - this->Bounds.Left - textWidth; + + + switch( this->TextAlign ) + { + case TextAlignmentType::Left: + { + // Nothing to do. Text is aligned to left by default. + break; + } + + case TextAlignmentType::Center: + { + float offset = remainingSpace / 2.0f; + for( auto& letter : letters ) + letter.x += offset; + break; + } + + case TextAlignmentType::Right: + { + for( auto& letter : letters ) + letter.x += remainingSpace; + break; + } + + case TextAlignmentType::Justification: + { + // Find all spaces which will be extended. + auto numSpaces = std::count_if( text.begin(), text.begin() + charIdx, [](wchar_t c) { return IsWhitespace(c); }); + + // Distribute remaining space equally between all spaces. + // (Besides last one: we have one place less between than number of chars) + float offset = remainingSpace / ( numSpaces - 1 ); + + for( Size charIdx = 0; charIdx < text.length(); charIdx++ ) + { + if( IsWhitespace( text[ charIdx ] ) ) + { + for( Size i = 0; i < letters.size(); i++ ) + if( IsWhitespace( text[ i ] ) ) + letters[ i ].x += offset; + } + } + break; + } + default: + break; + } +} + +// ================================ // + +bool TextArrange::IsWhitespace ( wchar_t character ) +{ + if( character == L' ' || character == L'\n' || character == L'\r' ) + return true; + return false; +} + +// ================================ // + +bool TextArrange::IsNewline ( wchar_t character ) +{ + if( character == L'\n' || character == L'\r' ) + return true; + return false; +} + +// ================================ // + +bool TextArrange::IsSpace ( wchar_t character ) +{ + if( character == L' ' ) + return true; + return false; +} + +} // sw diff --git a/swGraphicAPI/Assets/TextAsset/Text.h b/swGraphicAPI/Assets/TextAsset/Text.h index 65f64402..82e1065d 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.h +++ b/swGraphicAPI/Assets/TextAsset/Text.h @@ -6,7 +6,7 @@ */ #include "swGraphicAPI/Assets/TextAsset/FontAsset.h" -#include "swGeometrics/GeometricsCore/Types/Math/Types.h" +#include "swGeometrics/GeometricsCore/Math/Types.h" namespace sw { @@ -19,11 +19,6 @@ enum class TextAlignmentType Center, Right, Justification, - // Allign text to specific character. For example floating point numbers - // `1.0023` and `25611.5` could be aligned to `.` like this: - // 1.0023 - // 25611.5 - Character, }; @@ -36,17 +31,38 @@ class TextArrange float NewLineSize; float SpaceSize; TextAlignmentType TextAlign; - wchar_t AlignCharacter; bool UseKerning; - /**Wrap text according to Bounds. If set to false, text won't have any limit. + /**Wrap text according to Bounds. If set to false, single text line won't have any limit and only + NewLine characters will break line. Depending on TextAlignment, Bounds will be used to determine left, right or center of the text.*/ bool WrapText; + /**Text crossing lower Bound won't be generated.*/ + bool CutOutOfBounds; Rect2d Bounds; float AspectRatio; public: + explicit TextArrange() + : Interspace( 0.0f ) + , NewLineSize( 0.0f ) + , SpaceSize( 0.0f ) + , TextAlign( TextAlignmentType::Left ) + , UseKerning( true ) + , WrapText( false ) + , CutOutOfBounds( false ) + , AspectRatio( 1.0f ) + , Bounds( { 0.0f, 0.0f, 0.0f, 0.0f } ) + {} +public: + std::vector< Position2d > ArrangeText( const std::wstring& text, const FontLayout& layout ) const; + std::vector< Position2d > ArrangeLine( std::wstring_view text, const FontLayout& layout, Position2d startPosition ) const; + void ApplyAlignement( const FontLayout& layout, std::vector< Position2d >& letters, std::wstring_view text ) const; + + static bool IsWhitespace( wchar_t character ); + static bool IsNewline( wchar_t character ); + static bool IsSpace( wchar_t character ); }; @@ -70,7 +86,7 @@ class Text TextArrange m_arrange; - std::string m_text; // Text to display. + std::wstring m_text; // Text to display. public: explicit Text() = default; From 310f1dd065401d655bf6d930f9aee2a2ea6bf78b Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Fri, 8 Nov 2024 00:13:23 +0100 Subject: [PATCH 21/96] Text geometry generation first attempt (not working) --- .clang-format | 234 ++++++++++++++++++ .editorconfig | 8 + swCommonLib/Common/Buffers/ImageRegion.h | 2 +- .../Core/System/Rendering/Drawings/Drawing.h | 2 +- .../System/Rendering/Drawings/TextDrawing.cpp | 16 ++ .../System/Rendering/Drawings/TextDrawing.h | 53 ++++ .../Visual2015/CoreGUI/CoreGUI.vcxproj | 6 +- .../CoreGUI/CoreGUI.vcxproj.filters | 6 + swGeometrics/BasicShapes/CoordsUV/PlanarUV.h | 1 + .../Types/Accessors/DefaultAccessors.h | 3 +- .../Types/Accessors/TextAccessors.h | 35 +++ .../GeometricsCore/Types/IndexedGeometry.h | 2 +- .../Types/VertexLayouts/VertexShape2D.h | 8 + .../GeometricsCore/GeometricsCore.vcxproj | 1 + .../GeometricsCore.vcxproj.filters | 3 + swGraphicAPI/Assets/TextAsset/Loader/Glyph.h | 2 + swGraphicAPI/Assets/TextAsset/Text.cpp | 64 ++++- swGraphicAPI/Assets/TextAsset/Text.h | 82 +++++- swGraphicAPI/Assets/TextAsset/Text.inl | 203 +++++++++++++++ .../Tests/TestText/TestText.vcxproj | 1 + .../Tests/TestText/TestText.vcxproj.filters | 3 + .../Visual2015/TextAsset/TextAsset.vcxproj | 9 + .../TextAsset/TextAsset.vcxproj.filters | 3 + swGraphicAPI/Tests/TestText/TestArranger.cpp | 38 +++ 24 files changed, 761 insertions(+), 24 deletions(-) create mode 100644 .clang-format create mode 100644 swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp create mode 100644 swGUI/Core/System/Rendering/Drawings/TextDrawing.h create mode 100644 swGeometrics/GeometricsCore/Types/Accessors/TextAccessors.h create mode 100644 swGraphicAPI/Assets/TextAsset/Text.inl create mode 100644 swGraphicAPI/Tests/TestText/TestArranger.cpp diff --git a/.clang-format b/.clang-format new file mode 100644 index 00000000..3e1b4971 --- /dev/null +++ b/.clang-format @@ -0,0 +1,234 @@ +BasedOnStyle: Microsoft +Language: Cpp +#ColumnLimit: 120 + +BraceWrapping: + # class definition behind + AfterClass: false + # After the control statement + AfterControlStatement: false + # enum definition behind + AfterEnum: true + # After the function definition + AfterFunction: false + # After the namespace definition + AfterNamespace: false + # ObjC definition behind + AfterObjCDeclaration: false + # struct definition behind + AfterStruct: false + # union definition + AfterUnion: false + #ExternBlock definition behind + AfterExternBlock: false + # before catch + BeforeCatch: false + # else before + BeforeElse: false + # Indented braces + IndentBraces: false + # Split empty function + SplitEmptyFunction: true + # Split empty records + SplitEmptyRecord: true + # Split empty namespace + SplitEmptyNamespace: true + +# Add a space after @property, \@property (readonly) instead of \@property(readonly). +ObjCSpaceAfterProperty: true +# Offset of access specifiers (public, private, etc.) +AccessModifierOffset: -4 +# Alignment after opening brackets (opening parentheses, opening angle brackets, opening square brackets): Align, DontAlign, AlwaysBreak (always wrap after opening brackets) +AlignAfterOpenBracket: Align +# When assigning consecutively, align all equal signs +AlignConsecutiveAssignments: false +# When consecutive declarations, align all declared variable names +AlignConsecutiveDeclarations: true +# Left align backslashes that escape newlines (use backslashes for newlines) +AlignEscapedNewlinesLeft: true +# Align the operands of binary and ternary expressions horizontally +AlignOperands: true +# Align consecutive trailing comments +AlignTrailingComments: true +# Allow all parameters of the function declaration to be placed on the next line +AllowAllParametersOfDeclarationOnNextLine: true +# Allow short blocks on the same line +AllowShortBlocksOnASingleLine: false +# Allow short case labels on the same line +AllowShortCaseLabelsOnASingleLine: false +# Allow short functions to be placed on the same line: None, InlineOnly (defined in the class), Empty (empty function), Inline (defined in the class, empty function), All +AllowShortFunctionsOnASingleLine: All +# Allow short if statements to stay on the same line +AllowShortIfStatementsOnASingleLine: false +# Allow short loops to stay on the same line +AllowShortLoopsOnASingleLine: false +# Always break after defining the return type (deprecated) +AlwaysBreakAfterDefinitionReturnType: None +# Always wrap after the return type: None, All, TopLevel (top functions, functions not included in the class), +# AllDefinitions (all definitions, excluding declarations), TopLevelDefinitions (the definitions of all top-level functions) +AlwaysBreakAfterReturnType: None +# Always wrap before multi-line string literal +AlwaysBreakBeforeMultilineStrings: false +# Always wrap after the template statement +AlwaysBreakTemplateDeclarations: false +# false means that the function arguments are either on the same line or on their own line +BinPackArguments: true +# false means that all formal parameters are either on the same line or on their own line +BinPackParameters: true +# Braces wrap, only valid when BreakBeforeBraces is set to Custom +# Newline before binary operators: None (newline after the operator), NonAssignment (newline before the non-assignment operator), All (newline before the operator) +BreakBeforeBinaryOperators: NonAssignment +# Wrap a line before the brace: Attach (always attach the brace to the surrounding context), Linux (except for functions, namespaces and class definitions, similar to Attach), +# Mozilla (except enumeration, function, record definition, similar to Attach), Stroustrup (except function definition, catch, else, similar to Attach), +# Allman (always break before the curly brace), GNU (always break before the curly brace, and add extra indentation to the curly brace of the control statement), WebKit (newline before the function), Custom +# Note: It is considered that the statement block also belongs to the function +BreakBeforeBraces: Allman +# Break before ternary operator +BreakBeforeTernaryOperators: true +# Break before the comma in the initialization list of the constructor +BreakConstructorInitializers: BeforeComma +BreakAfterJavaFieldAnnotations: false +BreakStringLiterals: true +EmptyLineAfterAccessModifier: Leave +# Describe the regular expression of the comment with special meaning, it should not be divided into multiple lines or changed in other ways +# CommentPragmas:'^ IWYU pragma:' +# The initialization list of the constructor is either all on the same line or on their own line +ConstructorInitializerAllOnOneLineOrOnePerLine: true +# The comfort list of constructors all wrap +AllowAllConstructorInitializersOnNextLine: false +# The indentation width of the initialization list of the constructor +ConstructorInitializerIndentWidth: 4 +# The indentation width of the continued line +ContinuationIndentWidth: 4 +# Remove the space before the curly braces {after and before the C++11 list initialization +Cpp11BracedListStyle: true +# Inherit the most commonly used pointer and reference alignment +DerivePointerAlignment: false +# Turn off formatting +DisableFormat: false +# Automatically detect whether the function call and definition are formatted as one parameter per line (Experimental) +ExperimentalAutoDetectBinPacking: false +# Fix namespace comment +FixNamespaceComments: true +# Need to be interpreted as a foreach loop instead of a function call macro +# ForEachMacros: +# -foreach +# -Q_FOREACH +# -BOOST_FOREACH +# Sort #include, #include that matches a regular expression has a corresponding priority, and the default priority is INT_MAX (the smaller the priority, the higher the priority), +# You can define a negative priority to ensure that certain #include is always at the top +# IncludeCategories: +# -Regex:'^' +# Priority: 2 +# -Regex:'^<.*\.h>' +# Priority: 1 +# -Regex:'^<.*' +# Priority: 2 +# -Regex:'.*' +# Priority: 3 + +# IncludeIsMainRegex:'([-_](test|unittest))?$' +# Indent case label +IndentCaseLabels: true +# Indentation width +IndentWidth: 4 +# When the function return type wraps, indent the function declaration or the function name of the function definition +IndentWrappedFunctionNames: false +JavaScriptQuotes: Leave +JavaScriptWrapImports: true +# Keep the blank line at the beginning of the block +KeepEmptyLinesAtTheStartOfBlocks: true +# The regular expression of a macro to start a block +# MacroBlockBegin:'' +# End the regular expression of a block macro +#MacroBlockEnd:'' +# Maximum number of consecutive blank lines +MaxEmptyLinesToKeep: 1 +# Namespace indentation: None, Inner (indent the content in the nested namespace), All +NamespaceIndentation: None +# Indent width when using ObjC block +ObjCBlockIndentWidth: 4 +# Add a space before ObjC's protocol list +ObjCSpaceBeforeProtocolList: false +# Penalty that wraps the function call after call( +PenaltyBreakBeforeFirstCallParameter: 19 +# Introduce a penalty for line breaks in a comment +PenaltyBreakComment: 300 +# The penalty for the first line break before << +PenaltyBreakFirstLessLess: 120 +# Introduce a penalty for line breaks in a string literal +PenaltyBreakString: 1000 +# Penalty for each character outside the line character limit +PenaltyExcessCharacter: 1000000 +# Put the return type of the function in the penalty of its own line +PenaltyReturnTypeOnItsOwnLine: 60 +# Alignment of pointer and reference: Left, Right, Middle +PointerAlignment: Left +# RawStringFormats: +# -Language: Cpp +# Delimiters: +# -cc +# -CC +# -cpp +# -Cpp +# -CPP +# -'c++' +# -'C++' +# CanonicalDelimiter:'' +# BasedOnStyle: google +# -Language: TextProto +# Delimiters: +# -pb +# -PB +# -proto +# -PROTO +# EnclosingFunctions: +# -EqualsProto +# -EquivToProto +# -PARSE_PARTIAL_TEXT_PROTO +# -PARSE_TEST_PROTO +# -PARSE_TEXT_PROTO +# -ParseTextOrDie +# -ParseTextProtoOrDie +# CanonicalDelimiter:'' +# BasedOnStyle: google +# Allow retypesetting comments +ReflowComments: true +# Allow sorting#include +SortIncludes: true +SortUsingDeclarations: true +# Add space after C style type conversion +SpaceAfterCStyleCast: false +# Add a space before the assignment operator +SpaceAfterTemplateKeyword: true +SpaceBeforeAssignmentOperators: true +SpaceBeforeCpp11BracedList: false +SpaceBeforeCtorInitializerColon: true +SpaceBeforeInheritanceColon: true +# Add a space before opening the parentheses: Never, ControlStatements, Always +SpaceBeforeParens: ControlStatements +SpacesInParens: Custom +SpacesInParensOptions: + # ExceptDoubleParentheses: true + InConditionalStatements: true + InEmptyParentheses: false + InCStyleCasts: false + Other: true +# The number of spaces added before trailing comments (only applicable to //) +SpacesBeforeTrailingComments: 2 +# Add spaces before and after the angle brackets +SpacesInAngles: Always +# Add spaces in the literal of the container (ObjC and JavaScript arrays and dictionaries, etc.) +SpacesInContainerLiterals: true +# Add spaces in the brackets of C-style type conversion +SpacesInCStyleCastParentheses: false +# Add a space before the (after and) of the parentheses +SpacesInParentheses: false +# Add a space before the [after and] of the square brackets, the declaration of lamda expressions and arrays of unspecified size will not be affected +SpacesInSquareBrackets: false +# Standard: Cpp03, Cpp11, Auto +Standard: Cpp11 +# tab width +TabWidth: 4 +# Use tab characters: Never, ForIndentation, ForContinuationAndIndentation, Always +UseTab: Never \ No newline at end of file diff --git a/.editorconfig b/.editorconfig index 25ac5af3..a31bb6ab 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,6 +10,14 @@ charset = utf-8 # Visual C++ Formatting settings +cpp_continuous_line_indent = double +cpp_indent_access_specifiers_from_class = false +cpp_align_multiline_parameter = true +cpp_int_align_declaration_names = true +cpp_int_align_comments = true +cpp_space_between_method_declaration_parameter_list_parentheses = true +cpp_space_within_template_params = true + cpp_indent_braces = false cpp_indent_multi_line_relative_to = innermost_parenthesis cpp_indent_within_parentheses = indent diff --git a/swCommonLib/Common/Buffers/ImageRegion.h b/swCommonLib/Common/Buffers/ImageRegion.h index b210cbae..1f59a7fd 100644 --- a/swCommonLib/Common/Buffers/ImageRegion.h +++ b/swCommonLib/Common/Buffers/ImageRegion.h @@ -37,7 +37,7 @@ class ImageRegion private: protected: - Image< ContentType, Alloc >& m_image; + Image< ContentType, Alloc >& m_image; ImageRect m_region; /**Fallback Pixel returned in case access operation was attempted outside diff --git a/swGUI/Core/System/Rendering/Drawings/Drawing.h b/swGUI/Core/System/Rendering/Drawings/Drawing.h index a240852d..1359f957 100644 --- a/swGUI/Core/System/Rendering/Drawings/Drawing.h +++ b/swGUI/Core/System/Rendering/Drawings/Drawing.h @@ -39,7 +39,7 @@ struct GeometryRenderingData BufferPtr IndexBuffer; ///< Index Buffer containing both fill and border indicies. BufferPtr GeometryConstants; ///< Constant buffer bound to Vertex Shader. VertexShaderPtr VertexShader; ///< Vertex Shader. - ShaderInputLayoutPtr Layout; ///< Bertex layout. + ShaderInputLayoutPtr Layout; ///< Vertex layout. uint32 FillEnd; ///< End of fill indicies in buffer. uint32 BorderEnd; ///< End of border indicies in buffer. PrimitiveTopology Topology; ///< Geometry topology. diff --git a/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp b/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp new file mode 100644 index 00000000..8fb2157a --- /dev/null +++ b/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp @@ -0,0 +1,16 @@ +/** +@file TextDrawing.cpp +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ +#include "swGUI/Core/stdafx.h" + +#include "TextDrawing.h" + +namespace sw { +namespace gui +{ + + +} // gui +} // sw diff --git a/swGUI/Core/System/Rendering/Drawings/TextDrawing.h b/swGUI/Core/System/Rendering/Drawings/TextDrawing.h new file mode 100644 index 00000000..a53407b8 --- /dev/null +++ b/swGUI/Core/System/Rendering/Drawings/TextDrawing.h @@ -0,0 +1,53 @@ +#pragma once +/** +@file TextDrawing.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include "Drawing.h" + +#include "swGUI/Core/Media/Brushes/Brush.h" +#include "swGUI/Core/Media/Geometry/Geometry.h" + + +namespace sw { +namespace gui +{ + +/**@brief Draws text and it's background. + +@ingroup Drawing*/ +class TextDrawing : public Drawing +{ + RTTR_ENABLE( Drawing ); + RTTR_REGISTRATION_FRIEND +private: + + BrushPtr m_brush; ///< Brush used to fill background. + BrushPtr m_pen; ///< Brush used to draw text. + GeometryPtr m_backgroundGeometry; ///< Geometry to draw background. + GeometryPtr m_textGeometry; ///< Geometry to draw Text Glyphs. + +public: + + explicit TextDrawing ( BrushPtr brush, BrushPtr pen, GeometryPtr bakcground, GeometryPtr text ); + + + virtual void Render ( IRenderer* renderer ) override; + virtual void RebuildResources ( ResourceManagerAPI rm, ShaderProvider* sp ); + +public: + + const BrushPtr& GetBrush () const { return m_brush; } + const BrushPtr& GetPen () const { return m_pen; } + const GeometryPtr& GetGeometry () const { return m_textGeometry; } +}; + +DEFINE_PTR_TYPE( TextDrawing ) + + +} // gui +} // sw + + diff --git a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj b/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj index 74712590..b9cb1239 100644 --- a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj +++ b/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj @@ -52,12 +52,10 @@ true Unicode - - @@ -74,14 +72,12 @@ - Use swGUI/Core/stdafx.h - Level3 @@ -201,6 +197,7 @@ + @@ -263,6 +260,7 @@ + diff --git a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj.filters b/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj.filters index db2e0b94..156d5277 100644 --- a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj.filters +++ b/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj.filters @@ -327,6 +327,9 @@ Core\Media\Brushes + + Core\System\Rendering\Drawings + @@ -479,6 +482,9 @@ Core\Media\Brushes + + Core\System\Rendering\Drawings + diff --git a/swGeometrics/BasicShapes/CoordsUV/PlanarUV.h b/swGeometrics/BasicShapes/CoordsUV/PlanarUV.h index 02b6caf0..bb6586fd 100644 --- a/swGeometrics/BasicShapes/CoordsUV/PlanarUV.h +++ b/swGeometrics/BasicShapes/CoordsUV/PlanarUV.h @@ -10,6 +10,7 @@ #include "swCommonLib/Common/Exceptions/ErrorsCollector.h" #include "swGeometrics/GeometricsCore/Types/Traits/ProcessorTraits.h" +#include "swGeometrics/GeometricsCore/Types/Accessors/DefaultAccessors.h" namespace sw { diff --git a/swGeometrics/GeometricsCore/Types/Accessors/DefaultAccessors.h b/swGeometrics/GeometricsCore/Types/Accessors/DefaultAccessors.h index 9af0cece..17dce986 100644 --- a/swGeometrics/GeometricsCore/Types/Accessors/DefaultAccessors.h +++ b/swGeometrics/GeometricsCore/Types/Accessors/DefaultAccessors.h @@ -1,6 +1,6 @@ #pragma once /** -@file Default.h +@file DefaultAccessors.h @author nieznanysprawiciel @copyright File is part of Sleeping Wombat Libraries. */ @@ -26,6 +26,7 @@ struct DefaultUVAcc static decltype( VertexType::UV )& Get ( VertexType& vertex ) { return vertex.UV; } }; + } // geom } // sw diff --git a/swGeometrics/GeometricsCore/Types/Accessors/TextAccessors.h b/swGeometrics/GeometricsCore/Types/Accessors/TextAccessors.h new file mode 100644 index 00000000..5c0bc3ec --- /dev/null +++ b/swGeometrics/GeometricsCore/Types/Accessors/TextAccessors.h @@ -0,0 +1,35 @@ +#pragma once +/** +@file TextAccessors.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + + +namespace sw { +namespace geom +{ + +/**@brief Accessor for VertexType using single UVs coords fields.*/ +template< typename VertexType > +struct TextAcc +{ + static decltype(VertexType::Position)& GetPos ( VertexType& vertex ) { return vertex.Position; } + static decltype(VertexType::UV)& GetUV ( VertexType& vertex ) { return vertex.UV; } +}; + +/**@brief Accessor for Text vertex supporting texturing, what requires 2 fields for UVs +- one for TextAtlas +- second for additional texture*/ +template< typename VertexType > +struct TexturedTextAcc +{ + static decltype(VertexType::Position)& GetPos ( VertexType& vertex ) { return vertex.Position; } + static decltype(VertexType::AtlasCoords)& GetUV ( VertexType& vertex ) { return vertex.AtlasCoords; } +}; + + +} // geom +} // sw + + diff --git a/swGeometrics/GeometricsCore/Types/IndexedGeometry.h b/swGeometrics/GeometricsCore/Types/IndexedGeometry.h index 97b66758..6f5341c3 100644 --- a/swGeometrics/GeometricsCore/Types/IndexedGeometry.h +++ b/swGeometrics/GeometricsCore/Types/IndexedGeometry.h @@ -1,6 +1,6 @@ #pragma once /** -@file IndexGeometry.h +@file IndexedGeometry.h @author nieznanysprawiciel @copyright File is part of graphic engine SWEngine. */ diff --git a/swGeometrics/GeometricsCore/Types/VertexLayouts/VertexShape2D.h b/swGeometrics/GeometricsCore/Types/VertexLayouts/VertexShape2D.h index 49cef7f6..dc60917e 100644 --- a/swGeometrics/GeometricsCore/Types/VertexLayouts/VertexShape2D.h +++ b/swGeometrics/GeometricsCore/Types/VertexLayouts/VertexShape2D.h @@ -19,6 +19,14 @@ struct VertexShape2D DirectX::XMFLOAT2 UV; }; +/**@brief Text 2D vertex structure supporting texturing.*/ +struct VertexText2D +{ + DirectX::XMFLOAT2 Position; + DirectX::XMFLOAT2 AtlasCoords; + DirectX::XMFLOAT2 UV; +}; + } // geom diff --git a/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj b/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj index ccdad064..9efc6af4 100644 --- a/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj +++ b/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj @@ -34,6 +34,7 @@ + diff --git a/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj.filters b/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj.filters index 215a7784..9cadcfd4 100644 --- a/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj.filters +++ b/swGeometrics/ProjectDir/Visual2015/GeometricsCore/GeometricsCore.vcxproj.filters @@ -83,5 +83,8 @@ Geometric\Math + + Geometric\Types\Accessors + \ No newline at end of file diff --git a/swGraphicAPI/Assets/TextAsset/Loader/Glyph.h b/swGraphicAPI/Assets/TextAsset/Loader/Glyph.h index 4bcfa540..c68537c2 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/Glyph.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/Glyph.h @@ -21,6 +21,8 @@ struct Glyph int32 BearingX; // The horizontal distance from the current cursor position to the leftmost border of the glyph image's bounding box. int32 BearingY; // The vertical distance from the current cursor position (on the baseline) to the topmost border of the glyph image's bounding box. + /**Coordinates are expressed in pixels. @ref Glyph::Width and @ref Glyph::Height can be used to compute + other edges of the rectangle.*/ uint32 TextureX; // x pixel coord of the bitmap's bottom-left corner uint32 TextureY; // y pixel coord of the bitmap's bottom-left corner diff --git a/swGraphicAPI/Assets/TextAsset/Text.cpp b/swGraphicAPI/Assets/TextAsset/Text.cpp index a9eb5e78..5f963abd 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.cpp +++ b/swGraphicAPI/Assets/TextAsset/Text.cpp @@ -5,6 +5,9 @@ */ #include "swGraphicAPI/Assets/TextAsset/stdafx.h" +#include "swGeometrics/GeometricsCore/Generators/Generator.h" +#include "swGeometrics/BasicShapes/CoordsUV/PlanarUV.h" + #include "Text.h" @@ -15,7 +18,7 @@ namespace sw // ================================ // -std::vector< Position2d > TextArrange::ArrangeText( const std::wstring& text, const FontLayout& layout ) const +std::vector< Position2d > TextArranger::ArrangeText( const std::wstring& text, const FontLayout& layout ) const { std::vector< Position2d > letters; letters.reserve( text.length() ); @@ -42,10 +45,10 @@ std::vector< Position2d > TextArrange::ArrangeText( const std::wstri // ================================ // -std::vector< Position2d > TextArrange::ArrangeLine( std::wstring_view text, const FontLayout& layout, Position2d translate ) const +std::vector< Position2d > TextArranger::ArrangeLine( std::wstring_view text, const FontLayout& layout, Position2d translate ) const { std::vector< Position2d > letters; - letters.reserve( text.find_first_of( L"\n\r") ); + letters.reserve( EstimateLineLength( text ) ); Size lastSpace = 0; @@ -70,14 +73,14 @@ std::vector< Position2d > TextArrange::ArrangeLine( std::wstring_v { auto& glyph = glyphIter->second; - if( this->UseKerning && charIdx > 0 ) + if ( this->UseKerning && charIdx > 0 && !IsWhitespace( text[ charIdx - 1 ] ) ) { auto kerShift = layout.Kerning.at( std::make_pair( text[ charIdx - 1 ], text[ charIdx ] ) ); - translate += Position2d( kerShift / this->AspectRatio, 0.0 ); + translate += Position2d( kerShift, 0.0 ); } letters.push_back( translate ); - translate += Position2d( this->Interspace + ( glyph.AdvanceX / this->AspectRatio ), 0.f ); + translate += Position2d( this->Interspace + glyph.AdvanceX, 0.f ); } else { @@ -100,7 +103,7 @@ std::vector< Position2d > TextArrange::ArrangeLine( std::wstring_v // ================================ // -void TextArrange::ApplyAlignement( const FontLayout& layout, std::vector< Position2d >& letters, std::wstring_view text ) const +void TextArranger::ApplyAlignement( const FontLayout& layout, std::vector< Position2d >& letters, std::wstring_view text ) const { if( letters.empty() || text.length() < letters.size() ) return; @@ -109,7 +112,7 @@ void TextArrange::ApplyAlignement( const FontLayout& layout, std: Position2d last = letters[ charIdx ]; auto& glyph = layout.Glyphs.at( text[ charIdx ] ); - float textWidth = letters.back().x - letters.front().x + ( glyph.AdvanceX / this->AspectRatio ); + float textWidth = letters.back().x - letters.front().x + glyph.AdvanceX; float remainingSpace = this->Bounds.Right - this->Bounds.Left - textWidth; @@ -163,7 +166,7 @@ void TextArrange::ApplyAlignement( const FontLayout& layout, std: // ================================ // -bool TextArrange::IsWhitespace ( wchar_t character ) +bool TextArranger::IsWhitespace ( wchar_t character ) { if( character == L' ' || character == L'\n' || character == L'\r' ) return true; @@ -172,7 +175,7 @@ bool TextArrange::IsWhitespace ( wchar_t character ) // ================================ // -bool TextArrange::IsNewline ( wchar_t character ) +bool TextArranger::IsNewline ( wchar_t character ) { if( character == L'\n' || character == L'\r' ) return true; @@ -181,11 +184,50 @@ bool TextArrange::IsNewline ( wchar_t character ) // ================================ // -bool TextArrange::IsSpace ( wchar_t character ) +bool TextArranger::IsSpace ( wchar_t character ) { if( character == L' ' ) return true; return false; } +// ================================ // + +Size TextArranger::EstimateLineLength( std::wstring_view text ) { + auto endline = text.find_first_of( L"\n\r" ); + return endline != std::string::npos ? endline : text.length(); +} + +// ================================ // + +Nullable< geom::IndexedGeometry< geom::VertexShape2D, Index32 > > TextArranger::GenerateGeometry( const std::wstring& text, const FontAssetPtr font, bool genBackground ) const +{ + auto letters = this->ArrangeText( text, font->GetLayout() ); + + TextGeometryGenerator< geom::VertexShape2D, Index32, geom::TextAcc< geom::VertexShape2D > > generator( std::move( letters ), font, text ); + generator.GenerateBackground = genBackground; + generator.Bounds = this->Bounds; + + return geom::Generate< geom::IndexedGeometry< geom::VertexShape2D, Index32 > >( generator ); +} + +// ================================ // + +Nullable< geom::IndexedGeometry< geom::VertexText2D, Index32 > > TextArranger::GenerateGeometryTextured( const std::wstring& text, const FontAssetPtr font, bool genBackground ) const +{ + auto letters = this->ArrangeText( text, font->GetLayout() ); + + TextGeometryGenerator< geom::VertexText2D, Index32, geom::TexturedTextAcc< geom::VertexText2D > > generator( std::move( letters ), font, text); + generator.GenerateBackground = genBackground; + generator.Bounds = this->Bounds; + + geom::PlanarUV< geom::VertexText2D > planarUV; + planarUV.MinX = this->Bounds.Left; + planarUV.MinY = this->Bounds.Bottom; + planarUV.MaxX = this->Bounds.Right; + planarUV.MaxY = this->Bounds.Top; + + return geom::Generate< geom::IndexedGeometry< geom::VertexText2D, Index32 > >( generator, planarUV ); +} + } // sw diff --git a/swGraphicAPI/Assets/TextAsset/Text.h b/swGraphicAPI/Assets/TextAsset/Text.h index 82e1065d..49e29e43 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.h +++ b/swGraphicAPI/Assets/TextAsset/Text.h @@ -6,7 +6,15 @@ */ #include "swGraphicAPI/Assets/TextAsset/FontAsset.h" + #include "swGeometrics/GeometricsCore/Math/Types.h" +#include "swGeometrics/GeometricsCore/Types/IndexedGeometry.h" +#include "swGeometrics/GeometricsCore/Types/VertexLayouts/VertexShape2D.h" +#include "swGeometrics/GeometricsCore/Types/IndexTypes.h" +#include "swGeometrics/GeometricsCore/Types/Accessors/TextAccessors.h" +#include "swGeometrics/GeometricsCore/Types/Traits/GeneratorTraits.h" + + namespace sw { @@ -24,7 +32,7 @@ enum class TextAlignmentType /**@brief Arranges text. @ingroup Text*/ -class TextArrange +class TextArranger { public: float Interspace; @@ -43,7 +51,7 @@ class TextArrange float AspectRatio; public: - explicit TextArrange() + explicit TextArranger() : Interspace( 0.0f ) , NewLineSize( 0.0f ) , SpaceSize( 0.0f ) @@ -63,8 +71,12 @@ class TextArrange static bool IsWhitespace( wchar_t character ); static bool IsNewline( wchar_t character ); static bool IsSpace( wchar_t character ); -}; + static Size EstimateLineLength( std::wstring_view text ); +public: + Nullable< geom::IndexedGeometry< geom::VertexShape2D, Index32 > > GenerateGeometry( const std::wstring& text, const FontAssetPtr font, bool genBackground ) const; + Nullable< geom::IndexedGeometry< geom::VertexText2D, Index32 > > GenerateGeometryTextured( const std::wstring& text, const FontAssetPtr font, bool genBackground ) const; +}; /**@brief Class for displaying Text on screen. @@ -84,14 +96,74 @@ class Text VertexShaderPtr m_vertexShader; PixelShaderPtr m_pixelShader; - TextArrange m_arrange; + TextArranger m_arrange; std::wstring m_text; // Text to display. public: explicit Text() = default; - ~Text() = default; + virtual ~Text() = default; }; + +/**@brief Generates geometry for text using arranged letters. +@ingroup Text*/ +template< typename VertexType, typename IndexType, typename TextAcc = geom::TextAcc< VertexType > > +class TextGeometryGenerator : public geom::GeneratorTraits< VertexType, IndexType > +{ +private: + const FontAssetPtr m_font; + const FontLayout& m_layout; + const std::wstring& m_text; + + private: + /**@brief Helper buffer with pregenerated text letters coordinates.*/ + std::vector< Position2d > m_letters; + +private: + + float m_atlasWidth; + float m_atlasHeight; + +public: + /**@brief Generate rectangle for background of size equal to @ref TextArranger::Bounds.*/ + bool GenerateBackground; + Rect2d Bounds; + +public: + explicit TextGeometryGenerator( std::vector< Position2d >&& letters, const FontAssetPtr font, const std::wstring& text ) + : m_layout( font->GetLayout() ) + , m_font( font ) + , m_letters( letters ) + , m_text( text ) + , GenerateBackground( false ) + , m_atlasWidth( (float)font->GetFontAtlas()->GetDescriptor().Width ) + , m_atlasHeight( (float)font->GetFontAtlas()->GetDescriptor().Height ) + {} + +public: + inline void GenerateVertex ( VertexType& vertex, Size vertexIdx ); + + template< class IndexBuffer > + inline void GenerateIndexBuffer ( IndexBuffer& idxBuffer, Size startIdx ); + + inline Size GetNumberVerticies () const; + inline Size GetNumberIndicies () const; + + inline ReturnResult ValidateParams () const; + +protected: + inline void GenerateBackgroundVertex ( VertexType& vertex, Size vertexIdx ); + inline void GenerateTextVertex ( VertexType& vertex, Size vertexIdx ); + + inline Size FindLetterIndex ( Size vertexIdx ) const; + inline void PutWhitespaceVertex ( VertexType& vertex, Size vertexIdx, Position2d position ) const; + inline void PutLetterVertex ( VertexType& vertex, const Glyph& glyph, Position2d position, Size vertexIdx ) const; + inline void PutLetterUV ( VertexType& vertex, const Glyph& glyph, Position2d position, Size vertexIdx ) const; +}; + + } // sw + +#include "Text.inl" diff --git a/swGraphicAPI/Assets/TextAsset/Text.inl b/swGraphicAPI/Assets/TextAsset/Text.inl new file mode 100644 index 00000000..98074bb4 --- /dev/null +++ b/swGraphicAPI/Assets/TextAsset/Text.inl @@ -0,0 +1,203 @@ +#pragma once +/** +@file Text.inl +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include "Text.h" + +namespace sw +{ + +// ================================ // + +template< typename VertexType, typename IndexType, typename TextAcc > +inline Size TextGeometryGenerator< VertexType, IndexType, TextAcc >::GetNumberVerticies() const +{ + auto numSpaces = std::count_if( m_text.begin(), m_text.end(), []( wchar_t c ) { return TextArranger::IsWhitespace( c ); } ); + auto numLettersVerts = 4 * ( m_text.length() - numSpaces ); + + if( GenerateBackground ) + { + auto numBackgroundVerts = 4 * 4; + return numLettersVerts + numBackgroundVerts; + } + else + return numLettersVerts; +} + +// ================================ // + +template< typename VertexType, typename IndexType, typename TextAcc > +inline Size TextGeometryGenerator< VertexType, IndexType, TextAcc >::GetNumberIndicies() const +{ + // Each letter is rectangle that has 4 vertices. We need 6 indices to draw 2 triangles. + return 3 * GetNumberVerticies() / 2; +} + +// ================================ // + +template< typename VertexType, typename IndexType, typename TextAcc > +inline ReturnResult TextGeometryGenerator< VertexType, IndexType, TextAcc >::ValidateParams() const +{ + return Success::True; +} + +// ================================ // + +template< typename VertexType, typename IndexType, typename TextAcc > +inline void TextGeometryGenerator< VertexType, IndexType, TextAcc >::GenerateVertex( VertexType& vertex, Size vertexIdx ) +{ + if( GenerateBackground && vertexIdx < 4 ) + GenerateBackgroundVertex( vertex, vertexIdx ); + else + GenerateTextVertex( vertex, vertexIdx ); +} + +// ================================ // + +template< typename VertexType, typename IndexType, typename TextAcc > +inline void TextGeometryGenerator< VertexType, IndexType, TextAcc >::GenerateBackgroundVertex( VertexType& vertex, Size vertexIdx ) +{ + switch( vertexIdx ) + { + case 0: + TextAcc::GetPos( vertex ) = Position2d( Bounds.Left, Bounds.Top ); + TextAcc::GetUV( vertex ) = Position2d( 0.0, 0.0 ); + break; + case 1: + TextAcc::GetPos( vertex ) = Position2d( Bounds.Right, Bounds.Top ); + TextAcc::GetUV( vertex ) = Position2d( 1.0, 0.0 ); + break; + case 2: + TextAcc::GetPos( vertex ) = Position2d( Bounds.Left, Bounds.Bottom ); + TextAcc::GetUV( vertex ) = Position2d( 0.0, 1.0 ); + break; + case 3: + TextAcc::GetPos( vertex ) = Position2d( Bounds.Right, Bounds.Bottom ); + TextAcc::GetUV( vertex ) = Position2d( 1.0, 1.0 ); + break; + } +} + +// ================================ // + +template< typename VertexType, typename IndexType, typename TextAcc > +inline void TextGeometryGenerator< VertexType, IndexType, TextAcc >::GenerateTextVertex( VertexType& vertex, Size vertexIdx ) +{ + auto idx = FindLetterIndex( vertexIdx ); + auto wch = m_text.at( idx ); + auto& glyph = m_layout.Glyphs.at( wch ); + Position2d translate = m_letters[ idx ]; + + if( TextArranger::IsWhitespace( wch ) ) + { + PutWhitespaceVertex( vertex, idx, translate ); + return; + } + + PutLetterVertex( vertex, glyph, translate, vertexIdx ); + PutLetterUV( vertex, glyph, translate, vertexIdx ); +} + +// ================================ // + +template< typename VertexType, typename IndexType, typename TextAcc > +inline Size TextGeometryGenerator< VertexType, IndexType, TextAcc >::FindLetterIndex( Size vertexIdx ) const +{ + return ( GenerateBackground ? vertexIdx - 4 : vertexIdx ) / 4; +} + +// ================================ // + +template< typename VertexType, typename IndexType, typename TextAcc > +inline void TextGeometryGenerator< VertexType, IndexType, TextAcc >::PutWhitespaceVertex( VertexType& vertex, + Size vertexIdx, + Position2d position ) const +{ + TextAcc::GetPos( vertex ) = position; + TextAcc::GetUV( vertex ) = Position2d( 0.0f, 0.0f); +} + +// ================================ // + +template < typename VertexType, typename IndexType, typename TextAcc > +inline void +TextGeometryGenerator< VertexType, IndexType, TextAcc >::PutLetterVertex( VertexType& vertex, const Glyph& glyph, + Position2d position, Size vertexIdx ) const +{ + Position2d bearing = Position2d( (float)glyph.BearingX, (float)glyph.BearingY ); + + switch ( vertexIdx % 4 ) + { + case 0: + Position2d quadTopLeft = Position2d( 0.f, 0.f ); + TextAcc::GetPos( vertex ) = quadTopLeft + position + bearing; + break; + case 1: + Position2d quadTopRight = Position2d( (float)glyph.Width, 0.f ); + TextAcc::GetPos( vertex ) = quadTopRight + position + bearing; + break; + case 2: + Position2d quadBottomLeft = Position2d( 0.f, -(float)glyph.Height ); + TextAcc::GetPos( vertex ) = quadBottomLeft + position + bearing; + break; + case 3: + Position2d quadBottomRight = Position2d( (float)glyph.Width, -(float)glyph.Height ); + TextAcc::GetPos( vertex ) = quadBottomRight + position + bearing; + break; + } +} + +// ================================ // + +template < typename VertexType, typename IndexType, typename TextAcc > +inline void +TextGeometryGenerator< VertexType, IndexType, TextAcc >::PutLetterUV( VertexType& vertex, const Glyph& glyph, + Position2d position, Size vertexIdx ) const +{ + auto texLeft = (float)glyph.TextureX / m_atlasWidth; + auto texTop = (float)glyph.TextureY / m_atlasHeight; + auto texWidth = (float)glyph.Width / m_atlasWidth; + auto texHeight = (float)glyph.Height / m_atlasHeight; + + switch ( vertexIdx % 4 ) + { + case 0: + TextAcc::GetUV( vertex ) = Position2d( texLeft, texTop ); + break; + case 1: + TextAcc::GetUV( vertex ) = Position2d( texLeft + texWidth, texTop ); + break; + case 2: + TextAcc::GetUV( vertex ) = Position2d( texLeft, texTop + texHeight ); + break; + case 3: + TextAcc::GetUV( vertex ) = Position2d( texLeft + texWidth, texTop + texHeight ); + break; + } +} + +// ================================ // + +template< typename VertexType, typename IndexType, typename TextAcc > +template< class IndexBuffer > +inline void TextGeometryGenerator< VertexType, IndexType, TextAcc >::GenerateIndexBuffer( IndexBuffer& idxBuffer, Size startIdx ) +{ + IndexType numVerts = (IndexType)GetNumberVerticies(); + IndexType curVertex = 0; + + // We always add rectangles. Each rectangle has 4 vertices and 6 indices. + while( curVertex < numVerts ) + { + AddTriangleCW( idxBuffer, startIdx, curVertex, curVertex + 1, curVertex + 2 ); + AddTriangleCW( idxBuffer, startIdx, curVertex + 1, curVertex + 2, curVertex + 3 ); + + curVertex += 4; + } +} + + +} // sw + diff --git a/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj b/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj index 49ff3c53..87c63ff7 100644 --- a/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj +++ b/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj @@ -20,6 +20,7 @@ + diff --git a/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj.filters b/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj.filters index 7ffcaf29..a48dcb9b 100644 --- a/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj.filters +++ b/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj.filters @@ -13,6 +13,9 @@ Tests + + Tests + diff --git a/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj b/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj index f9145656..d7ec4490 100644 --- a/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj +++ b/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj @@ -50,6 +50,12 @@ + + {b70c60c2-29eb-4302-80ef-9d396749d545} + + + {5476cbf5-f7f9-488f-b55c-b6331b82c54a} + {9f71f0da-1d72-4e96-93b7-5ac2c9cb6ede} @@ -57,6 +63,9 @@ {7275758b-1abc-4b28-bb42-cbdbcd2584d1} + + + StaticLibrary diff --git a/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj.filters b/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj.filters index b546c58c..ae4fd37d 100644 --- a/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj.filters +++ b/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj.filters @@ -39,4 +39,7 @@ {b1f0b646-c550-479e-9378-fe9824719d30} + + + \ No newline at end of file diff --git a/swGraphicAPI/Tests/TestText/TestArranger.cpp b/swGraphicAPI/Tests/TestText/TestArranger.cpp new file mode 100644 index 00000000..578391e3 --- /dev/null +++ b/swGraphicAPI/Tests/TestText/TestArranger.cpp @@ -0,0 +1,38 @@ +#include "swCommonLib/External/Catch/catch.hpp" +/** +@file TestArranger.cpp +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include "swCommonLib/TestUtils/CatchUtils/ExtendedMacros.h" +#include "swCommonLib/Common/Converters/Convert.h" + +#include "swGraphicAPI/ResourceManager/ResourceManager.h" +#include "swGraphicAPI/ResourceManager/ResourceManagerAPI.h" + +#include "swGraphicAPI/Assets/TextAsset/FontAsset.h" +#include "swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h" +#include "swGraphicAPI/Tests/TestText/Utils.h" +#include + + +using namespace sw; + + +// ================================ // +// +TEST_CASE( "GraphicAPI.Text.Generate.Buffers", "[GraphicAPI][Text]" ) +{ + auto rm = CreateResourceManagerWithFonts(); + auto api = ResourceManagerAPI( rm.get() ); + + FontLoaderData init( 16 ); + + auto font = api.Load< FontAsset >( "$(FontAssets)/arial.ttf", &init ); + REQUIRE_IS_VALID( font ); + + TextArranger arranger; + auto geometry = arranger.GenerateGeometry( L"Hello World", font.Get(), false ); + REQUIRE_IS_VALID( geometry ); +} From ed0e52295eca09eb528986bd16b10190a515a260 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Fri, 8 Nov 2024 00:21:25 +0100 Subject: [PATCH 22/96] Basic generation: test passes --- swGraphicAPI/Assets/TextAsset/Text.cpp | 1 + swGraphicAPI/Assets/TextAsset/Text.inl | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/swGraphicAPI/Assets/TextAsset/Text.cpp b/swGraphicAPI/Assets/TextAsset/Text.cpp index 5f963abd..b96f246a 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.cpp +++ b/swGraphicAPI/Assets/TextAsset/Text.cpp @@ -34,6 +34,7 @@ std::vector< Position2d > TextArranger::ArrangeText( const std::wstr ApplyAlignement( layout, line, lineString ); charIdx += line.size(); + letters.insert( letters.end(), line.begin(), line.end() ); translate = Position2d( this->Bounds.Left, translate.y - this->NewLineSize ); if( this->CutOutOfBounds && translate.y < this->Bounds.Bottom ) diff --git a/swGraphicAPI/Assets/TextAsset/Text.inl b/swGraphicAPI/Assets/TextAsset/Text.inl index 98074bb4..266de394 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.inl +++ b/swGraphicAPI/Assets/TextAsset/Text.inl @@ -88,7 +88,6 @@ inline void TextGeometryGenerator< VertexType, IndexType, TextAcc >::Gen { auto idx = FindLetterIndex( vertexIdx ); auto wch = m_text.at( idx ); - auto& glyph = m_layout.Glyphs.at( wch ); Position2d translate = m_letters[ idx ]; if( TextArranger::IsWhitespace( wch ) ) @@ -97,6 +96,8 @@ inline void TextGeometryGenerator< VertexType, IndexType, TextAcc >::Gen return; } + auto& glyph = m_layout.Glyphs.at( wch ); + PutLetterVertex( vertex, glyph, translate, vertexIdx ); PutLetterUV( vertex, glyph, translate, vertexIdx ); } From 0c0e530eecf50ec2b75417e6cde8ad7f8a623521 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Fri, 8 Nov 2024 00:30:05 +0100 Subject: [PATCH 23/96] Test newlines and spaces --- swGraphicAPI/Tests/TestText/TestArranger.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/swGraphicAPI/Tests/TestText/TestArranger.cpp b/swGraphicAPI/Tests/TestText/TestArranger.cpp index 578391e3..7e5f2d07 100644 --- a/swGraphicAPI/Tests/TestText/TestArranger.cpp +++ b/swGraphicAPI/Tests/TestText/TestArranger.cpp @@ -22,7 +22,7 @@ using namespace sw; // ================================ // // -TEST_CASE( "GraphicAPI.Text.Generate.Buffers", "[GraphicAPI][Text]" ) +TEST_CASE( "GraphicAPI.Text.Generate.TrickyTexts.SpacesAndNewlines", "[GraphicAPI][Text]" ) { auto rm = CreateResourceManagerWithFonts(); auto api = ResourceManagerAPI( rm.get() ); @@ -33,6 +33,15 @@ TEST_CASE( "GraphicAPI.Text.Generate.Buffers", "[GraphicAPI][Text]" ) REQUIRE_IS_VALID( font ); TextArranger arranger; - auto geometry = arranger.GenerateGeometry( L"Hello World", font.Get(), false ); - REQUIRE_IS_VALID( geometry ); + auto geometry1 = arranger.GenerateGeometry( L"Hello World", font.Get(), false ); + REQUIRE_IS_VALID( geometry1 ); + + auto geometry2 = arranger.GenerateGeometry( L"Hello World\n", font.Get(), false ); + REQUIRE_IS_VALID( geometry2 ); + + auto geometry3 = arranger.GenerateGeometry( L" Hello World ", font.Get(), false ); + REQUIRE_IS_VALID( geometry3 ); + + auto geometry4 = arranger.GenerateGeometry( L"Hello World\n\n\n\n", font.Get(), false ); + REQUIRE_IS_VALID( geometry4 ); } From 131466eed710a8a2e7eb25edaffe329bff8bb06c Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Fri, 8 Nov 2024 23:09:35 +0100 Subject: [PATCH 24/96] Test arranger passes --- .clang-format | 4 +-- .../TextAsset/Loader/FontAssetInitData.h | 1 + swGraphicAPI/Assets/TextAsset/Text.cpp | 33 ++++++++++++++++--- swGraphicAPI/Assets/TextAsset/Text.h | 2 ++ 4 files changed, 34 insertions(+), 6 deletions(-) diff --git a/.clang-format b/.clang-format index 3e1b4971..94ca4dcc 100644 --- a/.clang-format +++ b/.clang-format @@ -206,7 +206,7 @@ SpaceBeforeCpp11BracedList: false SpaceBeforeCtorInitializerColon: true SpaceBeforeInheritanceColon: true # Add a space before opening the parentheses: Never, ControlStatements, Always -SpaceBeforeParens: ControlStatements +SpaceBeforeParens: Never SpacesInParens: Custom SpacesInParensOptions: # ExceptDoubleParentheses: true @@ -225,7 +225,7 @@ SpacesInCStyleCastParentheses: false # Add a space before the (after and) of the parentheses SpacesInParentheses: false # Add a space before the [after and] of the square brackets, the declaration of lamda expressions and arrays of unspecified size will not be affected -SpacesInSquareBrackets: false +SpacesInSquareBrackets: true # Standard: Cpp03, Cpp11, Auto Standard: Cpp11 # tab width diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h index fac88bf3..fb165b52 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h @@ -5,6 +5,7 @@ @copyright File is part of Sleeping Wombat Libraries. */ +#include #include "swCommonLib/Common/TypesDefinitions.h" #include "swCommonLib/Common/Buffers/ImageRegion.h" diff --git a/swGraphicAPI/Assets/TextAsset/Text.cpp b/swGraphicAPI/Assets/TextAsset/Text.cpp index b96f246a..a3a4b53f 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.cpp +++ b/swGraphicAPI/Assets/TextAsset/Text.cpp @@ -110,10 +110,7 @@ void TextArranger::ApplyAlignement( const FontLayout& layout, std return; Size charIdx = letters.size() - 1; - Position2d last = letters[ charIdx ]; - auto& glyph = layout.Glyphs.at( text[ charIdx ] ); - - float textWidth = letters.back().x - letters.front().x + glyph.AdvanceX; + float textWidth = TextWidth( letters, text.data(), layout ); float remainingSpace = this->Bounds.Right - this->Bounds.Left - textWidth; @@ -167,6 +164,34 @@ void TextArranger::ApplyAlignement( const FontLayout& layout, std // ================================ // +float TextArranger::TextWidth( const std::vector< Position2d >& letters, const std::wstring& text, const FontLayout& layout ) const +{ + Size charIdx = letters.size() - 1; + Position2d last = letters[ charIdx ]; + float adjustLast = 0.0; + + if( IsSpace( text[ charIdx ] ) ) + { + // If last character was space, we want to adjust to last character before. + adjustLast = -( this->SpaceSize + this->Interspace ); + } + else if( IsNewline( text[ charIdx ] ) ) + { + // Ignore newline, since last character is already in correct position. + float adjustLast = 0.0; + } + else + { + // Normal character. We need to move forward to right edge. + auto& glyph = layout.Glyphs.at( text[ charIdx ] ); + adjustLast = (float)glyph.Width - (float)glyph.BearingX; + } + + return letters.back().x - letters.front().x + adjustLast; +} + +// ================================ // + bool TextArranger::IsWhitespace ( wchar_t character ) { if( character == L' ' || character == L'\n' || character == L'\r' ) diff --git a/swGraphicAPI/Assets/TextAsset/Text.h b/swGraphicAPI/Assets/TextAsset/Text.h index 49e29e43..7b64c699 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.h +++ b/swGraphicAPI/Assets/TextAsset/Text.h @@ -68,6 +68,8 @@ class TextArranger std::vector< Position2d > ArrangeLine( std::wstring_view text, const FontLayout& layout, Position2d startPosition ) const; void ApplyAlignement( const FontLayout& layout, std::vector< Position2d >& letters, std::wstring_view text ) const; + float TextWidth( const std::vector< Position2d >& letters, const std::wstring& text, const FontLayout& layout ) const; + static bool IsWhitespace( wchar_t character ); static bool IsNewline( wchar_t character ); static bool IsSpace( wchar_t character ); From b1fe033a354936508de761d3e0f9ca78a1e2acb2 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Fri, 8 Nov 2024 23:11:45 +0100 Subject: [PATCH 25/96] Add additional multiline tests --- swGraphicAPI/Tests/TestText/TestArranger.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/swGraphicAPI/Tests/TestText/TestArranger.cpp b/swGraphicAPI/Tests/TestText/TestArranger.cpp index 7e5f2d07..9032a405 100644 --- a/swGraphicAPI/Tests/TestText/TestArranger.cpp +++ b/swGraphicAPI/Tests/TestText/TestArranger.cpp @@ -44,4 +44,13 @@ TEST_CASE( "GraphicAPI.Text.Generate.TrickyTexts.SpacesAndNewlines", "[GraphicAP auto geometry4 = arranger.GenerateGeometry( L"Hello World\n\n\n\n", font.Get(), false ); REQUIRE_IS_VALID( geometry4 ); + + auto geometry5 = arranger.GenerateGeometry( L"Hello World \n", font.Get(), false ); + REQUIRE_IS_VALID( geometry5 ); + + auto geometry6 = arranger.GenerateGeometry( L"Hello World \n ", font.Get(), false ); + REQUIRE_IS_VALID( geometry6 ); + + auto geometry7 = arranger.GenerateGeometry( L"Hello World \nHello World\nHello World\n", font.Get(), false ); + REQUIRE_IS_VALID( geometry7 ); } From b4f5efc5640470292d07009880eb4698ed3739d7 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Fri, 8 Nov 2024 23:12:57 +0100 Subject: [PATCH 26/96] Whitespaces only --- swGraphicAPI/Tests/TestText/TestArranger.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/swGraphicAPI/Tests/TestText/TestArranger.cpp b/swGraphicAPI/Tests/TestText/TestArranger.cpp index 9032a405..a074b599 100644 --- a/swGraphicAPI/Tests/TestText/TestArranger.cpp +++ b/swGraphicAPI/Tests/TestText/TestArranger.cpp @@ -53,4 +53,13 @@ TEST_CASE( "GraphicAPI.Text.Generate.TrickyTexts.SpacesAndNewlines", "[GraphicAP auto geometry7 = arranger.GenerateGeometry( L"Hello World \nHello World\nHello World\n", font.Get(), false ); REQUIRE_IS_VALID( geometry7 ); + + auto geometry8 = arranger.GenerateGeometry( L" ", font.Get(), false ); + REQUIRE_IS_VALID( geometry8 ); + + auto geometry9 = arranger.GenerateGeometry( L"\n", font.Get(), false ); + REQUIRE_IS_VALID( geometry9 ); + + auto geometry10 = arranger.GenerateGeometry( L"", font.Get(), false ); + REQUIRE_IS_VALID( geometry10 ); } From cc51acbd3711fd0a4a08ecf060c946af2c5a6982 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sat, 9 Nov 2024 12:56:31 +0100 Subject: [PATCH 27/96] Fix PlanarUV generation crash --- .editorconfig => _.editorconfig | 0 swGUI/Core/Controls/Shapes/Shape.cpp | 4 +- swGraphicAPI/Assets/TextAsset/Text.cpp | 53 ++++++++++++---- swGraphicAPI/Assets/TextAsset/Text.h | 21 +++--- swGraphicAPI/Assets/TextAsset/Text.inl | 26 ++++++-- swGraphicAPI/Tests/TestText/TestArranger.cpp | 67 ++++++++++++++++++++ 6 files changed, 141 insertions(+), 30 deletions(-) rename .editorconfig => _.editorconfig (100%) diff --git a/.editorconfig b/_.editorconfig similarity index 100% rename from .editorconfig rename to _.editorconfig diff --git a/swGUI/Core/Controls/Shapes/Shape.cpp b/swGUI/Core/Controls/Shapes/Shape.cpp index 6de72d2e..d5a1f4a2 100644 --- a/swGUI/Core/Controls/Shapes/Shape.cpp +++ b/swGUI/Core/Controls/Shapes/Shape.cpp @@ -13,7 +13,7 @@ RTTR_REGISTRATION { - rttr::registration::class_< sw::gui::DependencyObject >( "sw::gui::Shape" ) + rttr::registration::class_< sw::gui::Shape >( "sw::gui::Shape" ) .property( "Fill", &sw::gui::Shape::GetFill, &sw::gui::Shape::SetFill ) .property( "Stroke", &sw::gui::Shape::GetStroke, &sw::gui::Shape::SetStroke ); } @@ -51,7 +51,7 @@ void Shape::SetStroke ( BrushPtr pen ) { m_stroke = pen; - // Create new Drawing only if i previously existed. Drawing doesn't exist if Geometry is not set. + // Create new Drawing only if it previously existed. Drawing doesn't exist if Geometry is not set. if( m_drawing && m_stroke != m_drawing->GetPen() ) { m_drawing = std::make_shared< GeometryDrawing >( m_drawing->GetBrush(), m_stroke, m_drawing->GetGeometry() ); diff --git a/swGraphicAPI/Assets/TextAsset/Text.cpp b/swGraphicAPI/Assets/TextAsset/Text.cpp index a3a4b53f..3af7d9f5 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.cpp +++ b/swGraphicAPI/Assets/TextAsset/Text.cpp @@ -116,13 +116,13 @@ void TextArranger::ApplyAlignement( const FontLayout& layout, std switch( this->TextAlign ) { - case TextAlignmentType::Left: + case TextAlignment::Left: { // Nothing to do. Text is aligned to left by default. break; } - case TextAlignmentType::Center: + case TextAlignment::Center: { float offset = remainingSpace / 2.0f; for( auto& letter : letters ) @@ -130,14 +130,14 @@ void TextArranger::ApplyAlignement( const FontLayout& layout, std break; } - case TextAlignmentType::Right: + case TextAlignment::Right: { for( auto& letter : letters ) letter.x += remainingSpace; break; } - case TextAlignmentType::Justification: + case TextAlignment::Justify: { // Find all spaces which will be extended. auto numSpaces = std::count_if( text.begin(), text.begin() + charIdx, [](wchar_t c) { return IsWhitespace(c); }); @@ -226,34 +226,59 @@ Size TextArranger::EstimateLineLength( std::wstring_view text ) { // ================================ // -Nullable< geom::IndexedGeometry< geom::VertexShape2D, Index32 > > TextArranger::GenerateGeometry( const std::wstring& text, const FontAssetPtr font, bool genBackground ) const +Rect2d TextArranger::ComputeTextBounds( const std::vector< Position2d >& letters ) { + if( letters.empty() ) + // PlanarUV requires non-zero size. + return Rect2d{ 0.f, 0.000001f, 0.f, 0.000001f }; + + auto [ minX, maxX ] = + std::minmax_element( letters.begin(), letters.end(), []( auto& pos1, auto& pos2 ) { return pos1.x < pos2.x; } ); + auto [ minY, maxY ] = + std::minmax_element( letters.begin(), letters.end(), []( auto& pos1, auto& pos2 ) { return pos1.y < pos2.y; } ); + + auto bb = Rect2d{ minX->x, maxX->x, minY->y, maxY->y }; + + // PlanarUV requires non-zero size. + bb.Right = bb.Right - bb.Left == 0.0f ? 0.000001f : bb.Right; + bb.Bottom = bb.Top - bb.Bottom == 0.0f ? 0.000001f : bb.Bottom; + + return bb; +} + +// ================================ // + +Nullable< geom::IndexedGeometryBuffer< geom::VertexShape2D, Index32 > > +TextArranger::GenerateGeometry( const std::wstring& text, const FontAssetPtr font, bool genBackground ) const { auto letters = this->ArrangeText( text, font->GetLayout() ); + auto textBB = ComputeTextBounds( letters ); TextGeometryGenerator< geom::VertexShape2D, Index32, geom::TextAcc< geom::VertexShape2D > > generator( std::move( letters ), font, text ); generator.GenerateBackground = genBackground; - generator.Bounds = this->Bounds; + generator.Bounds = this->WrapText ? this->Bounds : textBB; - return geom::Generate< geom::IndexedGeometry< geom::VertexShape2D, Index32 > >( generator ); + return geom::Generate< geom::IndexedGeometryBuffer< geom::VertexShape2D, Index32 > >( generator ); } // ================================ // -Nullable< geom::IndexedGeometry< geom::VertexText2D, Index32 > > TextArranger::GenerateGeometryTextured( const std::wstring& text, const FontAssetPtr font, bool genBackground ) const +Nullable< geom::IndexedGeometryBuffer< geom::VertexText2D, Index32 > > +TextArranger::GenerateGeometryTextured( const std::wstring& text, const FontAssetPtr font, bool genBackground ) const { auto letters = this->ArrangeText( text, font->GetLayout() ); + auto textBB = ComputeTextBounds( letters ); TextGeometryGenerator< geom::VertexText2D, Index32, geom::TexturedTextAcc< geom::VertexText2D > > generator( std::move( letters ), font, text); generator.GenerateBackground = genBackground; - generator.Bounds = this->Bounds; + generator.Bounds = this->WrapText ? this->Bounds : textBB; geom::PlanarUV< geom::VertexText2D > planarUV; - planarUV.MinX = this->Bounds.Left; - planarUV.MinY = this->Bounds.Bottom; - planarUV.MaxX = this->Bounds.Right; - planarUV.MaxY = this->Bounds.Top; + planarUV.MinX = generator.Bounds.Left; + planarUV.MinY = generator.Bounds.Top; + planarUV.MaxX = generator.Bounds.Right; + planarUV.MaxY = generator.Bounds.Bottom; - return geom::Generate< geom::IndexedGeometry< geom::VertexText2D, Index32 > >( generator, planarUV ); + return geom::Generate< geom::IndexedGeometryBuffer< geom::VertexText2D, Index32 > >( generator, planarUV ); } } // sw diff --git a/swGraphicAPI/Assets/TextAsset/Text.h b/swGraphicAPI/Assets/TextAsset/Text.h index 7b64c699..5931967d 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.h +++ b/swGraphicAPI/Assets/TextAsset/Text.h @@ -7,8 +7,8 @@ #include "swGraphicAPI/Assets/TextAsset/FontAsset.h" +#include "swCommonLib/Common/Buffers/IndexedGeometryBuffer.h" #include "swGeometrics/GeometricsCore/Math/Types.h" -#include "swGeometrics/GeometricsCore/Types/IndexedGeometry.h" #include "swGeometrics/GeometricsCore/Types/VertexLayouts/VertexShape2D.h" #include "swGeometrics/GeometricsCore/Types/IndexTypes.h" #include "swGeometrics/GeometricsCore/Types/Accessors/TextAccessors.h" @@ -21,12 +21,12 @@ namespace sw /**@brief Decides how text should be aligned. @ingroup Text*/ -enum class TextAlignmentType +enum class TextAlignment { Left, Center, Right, - Justification, + Justify, }; @@ -38,7 +38,7 @@ class TextArranger float Interspace; float NewLineSize; float SpaceSize; - TextAlignmentType TextAlign; + TextAlignment TextAlign; bool UseKerning; /**Wrap text according to Bounds. If set to false, single text line won't have any limit and only NewLine characters will break line. @@ -48,18 +48,15 @@ class TextArranger bool CutOutOfBounds; Rect2d Bounds; - float AspectRatio; - public: explicit TextArranger() : Interspace( 0.0f ) , NewLineSize( 0.0f ) , SpaceSize( 0.0f ) - , TextAlign( TextAlignmentType::Left ) + , TextAlign( TextAlignment::Left ) , UseKerning( true ) , WrapText( false ) , CutOutOfBounds( false ) - , AspectRatio( 1.0f ) , Bounds( { 0.0f, 0.0f, 0.0f, 0.0f } ) {} @@ -74,10 +71,11 @@ class TextArranger static bool IsNewline( wchar_t character ); static bool IsSpace( wchar_t character ); static Size EstimateLineLength( std::wstring_view text ); + static Rect2d ComputeTextBounds( const std::vector< Position2d >& letters ); public: - Nullable< geom::IndexedGeometry< geom::VertexShape2D, Index32 > > GenerateGeometry( const std::wstring& text, const FontAssetPtr font, bool genBackground ) const; - Nullable< geom::IndexedGeometry< geom::VertexText2D, Index32 > > GenerateGeometryTextured( const std::wstring& text, const FontAssetPtr font, bool genBackground ) const; + Nullable< geom::IndexedGeometryBuffer< geom::VertexShape2D, Index32 > > GenerateGeometry( const std::wstring& text, const FontAssetPtr font, bool genBackground ) const; + Nullable< geom::IndexedGeometryBuffer< geom::VertexText2D, Index32 > > GenerateGeometryTextured( const std::wstring& text, const FontAssetPtr font, bool genBackground ) const; }; @@ -153,6 +151,9 @@ class TextGeometryGenerator : public geom::GeneratorTraits< VertexType, IndexTyp inline Size GetNumberVerticies () const; inline Size GetNumberIndicies () const; + inline Size GetNumberTextIndicies () const; + inline Size GetNumberBorderIndicies () const; + inline ReturnResult ValidateParams () const; protected: diff --git a/swGraphicAPI/Assets/TextAsset/Text.inl b/swGraphicAPI/Assets/TextAsset/Text.inl index 266de394..27d973da 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.inl +++ b/swGraphicAPI/Assets/TextAsset/Text.inl @@ -15,12 +15,14 @@ namespace sw template< typename VertexType, typename IndexType, typename TextAcc > inline Size TextGeometryGenerator< VertexType, IndexType, TextAcc >::GetNumberVerticies() const { - auto numSpaces = std::count_if( m_text.begin(), m_text.end(), []( wchar_t c ) { return TextArranger::IsWhitespace( c ); } ); + // Whitespaces could be remove, but it complicates code and isn't worth at this moment. + //auto numSpaces = std::count_if( m_text.begin(), m_text.end(), []( wchar_t c ) { return TextArranger::IsWhitespace( c ); } ); + auto numSpaces = 0; auto numLettersVerts = 4 * ( m_text.length() - numSpaces ); if( GenerateBackground ) { - auto numBackgroundVerts = 4 * 4; + auto numBackgroundVerts = 4; return numLettersVerts + numBackgroundVerts; } else @@ -38,6 +40,22 @@ inline Size TextGeometryGenerator< VertexType, IndexType, TextAcc >::Get // ================================ // +template < typename VertexType, typename IndexType, typename TextAcc > +inline Size TextGeometryGenerator< VertexType, IndexType, TextAcc >::GetNumberTextIndicies() const +{ + return GetNumberIndicies() - GetNumberBorderIndicies(); +} + +// ================================ // + +template < typename VertexType, typename IndexType, typename TextAcc > +inline Size TextGeometryGenerator< VertexType, IndexType, TextAcc >::GetNumberBorderIndicies() const +{ + return GenerateBackground ? 6 : 0; +} + +// ================================ // + template< typename VertexType, typename IndexType, typename TextAcc > inline ReturnResult TextGeometryGenerator< VertexType, IndexType, TextAcc >::ValidateParams() const { @@ -98,8 +116,8 @@ inline void TextGeometryGenerator< VertexType, IndexType, TextAcc >::Gen auto& glyph = m_layout.Glyphs.at( wch ); - PutLetterVertex( vertex, glyph, translate, vertexIdx ); - PutLetterUV( vertex, glyph, translate, vertexIdx ); + PutLetterVertex( vertex, glyph, translate, idx ); + PutLetterUV( vertex, glyph, translate, idx ); } // ================================ // diff --git a/swGraphicAPI/Tests/TestText/TestArranger.cpp b/swGraphicAPI/Tests/TestText/TestArranger.cpp index a074b599..382f5ced 100644 --- a/swGraphicAPI/Tests/TestText/TestArranger.cpp +++ b/swGraphicAPI/Tests/TestText/TestArranger.cpp @@ -63,3 +63,70 @@ TEST_CASE( "GraphicAPI.Text.Generate.TrickyTexts.SpacesAndNewlines", "[GraphicAP auto geometry10 = arranger.GenerateGeometry( L"", font.Get(), false ); REQUIRE_IS_VALID( geometry10 ); } + +// ================================ // +// +TEST_CASE( "GraphicAPI.Text.Generate.WithBackground", "[GraphicAPI][Text]" ) +{ + auto rm = CreateResourceManagerWithFonts(); + auto api = ResourceManagerAPI( rm.get() ); + + FontLoaderData init( 16 ); + + auto font = api.Load< FontAsset >( "$(FontAssets)/arial.ttf", &init ); + REQUIRE_IS_VALID( font ); + + TextArranger arranger; + auto geometry = arranger.GenerateGeometry( L"Hello World", font.Get(), true ); + REQUIRE_IS_VALID( geometry ); + + CHECK( geometry.Get().Verticies.ElementsCount() == 48 ); + CHECK( geometry.Get().Indicies.ElementsCount() == 72 ); +} + +// ================================ // +// +TEST_CASE( "GraphicAPI.Text.Generate.Textured", "[GraphicAPI][Text]" ) +{ + auto rm = CreateResourceManagerWithFonts(); + auto api = ResourceManagerAPI( rm.get() ); + + FontLoaderData init( 16 ); + + auto font = api.Load< FontAsset >( "$(FontAssets)/arial.ttf", &init ); + REQUIRE_IS_VALID( font ); + + TextArranger arranger; + auto geometry = arranger.GenerateGeometryTextured( L"Hello World", font.Get(), true ); + REQUIRE_IS_VALID( geometry ); + + CHECK( geometry.Get().Verticies.ElementsCount() == 48 ); + CHECK( geometry.Get().Indicies.ElementsCount() == 72 ); +} + +// ================================ // +// Zero bounds can crash PlanarUV generator. +TEST_CASE( "GraphicAPI.Text.Generate.ZeroBounds", "[GraphicAPI][Text]" ) +{ + auto rm = CreateResourceManagerWithFonts(); + auto api = ResourceManagerAPI( rm.get() ); + + FontLoaderData init( 16 ); + + auto font = api.Load< FontAsset >( "$(FontAssets)/arial.ttf", &init ); + REQUIRE_IS_VALID( font ); + + TextArranger arranger; + arranger.Bounds = { 0.0f, 0.0f, 0.0f, 0.0f }; + auto geometry = arranger.GenerateGeometry( L"Hello World", font.Get(), true ); + REQUIRE_IS_VALID( geometry ); + + CHECK( geometry.Get().Verticies.ElementsCount() == 48 ); + CHECK( geometry.Get().Indicies.ElementsCount() == 72 ); + + auto geometry2 = arranger.GenerateGeometryTextured( L"Hello World", font.Get(), true ); + REQUIRE_IS_VALID( geometry2 ); + + CHECK( geometry2.Get().Verticies.ElementsCount() == 48 ); + CHECK( geometry2.Get().Indicies.ElementsCount() == 72 ); +} From be0183840f568471539198e6f6dde4ec602e978e Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sat, 9 Nov 2024 18:09:19 +0100 Subject: [PATCH 28/96] Move forward TextBlock implementation (not finished) --- .clang-format | 2 +- swGUI/Core/Controls/FrameworkElement.cpp | 52 +++++++ swGUI/Core/Controls/FrameworkElement.h | 41 ++++++ .../Controls/TextualControls/TextBlock.cpp | 113 +++++++++++++++ .../Core/Controls/TextualControls/TextBlock.h | 113 +++++++++++++++ swGUI/Core/Controls/Visual.h | 18 +++ swGUI/Core/Media/Geometry/EllipseGeometry.cpp | 4 +- swGUI/Core/Media/Geometry/EllipseGeometry.h | 4 +- swGUI/Core/Media/Geometry/Geometry.h | 4 +- .../Media/Geometry/Layouts/VertexShape2D.cpp | 32 ++++- .../Media/Geometry/Layouts/VertexShape2D.h | 20 +++ .../Core/Media/Geometry/RectangleGeometry.cpp | 15 +- swGUI/Core/Media/Geometry/RectangleGeometry.h | 4 +- swGUI/Core/Media/Geometry/TextGeometry.cpp | 129 ++++++++++++++++++ swGUI/Core/Media/Geometry/TextGeometry.h | 60 ++++++++ swGUI/Core/System/CommonTypes/CommonTypes.h | 30 +--- .../System/Rendering/Drawings/Drawing.cpp | 14 +- .../Core/System/Rendering/Drawings/Drawing.h | 22 ++- .../Rendering/Drawings/GeometryDrawing.cpp | 3 +- .../Core/System/Rendering/Drawings/IDrawing.h | 17 ++- .../System/Rendering/Drawings/TextDrawing.cpp | 47 ++++++- .../System/Rendering/Drawings/TextDrawing.h | 20 +-- .../Core/System/Rendering/RenderingSystem.cpp | 2 + .../Visual2015/CoreGUI/CoreGUI.vcxproj | 9 ++ .../CoreGUI/CoreGUI.vcxproj.filters | 21 +++ swGeometrics/GeometricsCore/Math/Types.h | 34 ++++- .../TextAsset/Loader/FontAssetInitData.cpp | 10 +- .../TextAsset/Loader/FontAssetInitData.h | 13 +- swGraphicAPI/Assets/TextAsset/Text.cpp | 13 +- swGraphicAPI/Assets/TextAsset/Text.h | 7 +- 30 files changed, 783 insertions(+), 90 deletions(-) create mode 100644 swGUI/Core/Controls/FrameworkElement.cpp create mode 100644 swGUI/Core/Controls/FrameworkElement.h create mode 100644 swGUI/Core/Controls/TextualControls/TextBlock.cpp create mode 100644 swGUI/Core/Controls/TextualControls/TextBlock.h create mode 100644 swGUI/Core/Media/Geometry/TextGeometry.cpp create mode 100644 swGUI/Core/Media/Geometry/TextGeometry.h diff --git a/.clang-format b/.clang-format index 94ca4dcc..6f5b805a 100644 --- a/.clang-format +++ b/.clang-format @@ -57,7 +57,7 @@ AllowShortBlocksOnASingleLine: false # Allow short case labels on the same line AllowShortCaseLabelsOnASingleLine: false # Allow short functions to be placed on the same line: None, InlineOnly (defined in the class), Empty (empty function), Inline (defined in the class, empty function), All -AllowShortFunctionsOnASingleLine: All +AllowShortFunctionsOnASingleLine: Inline # Allow short if statements to stay on the same line AllowShortIfStatementsOnASingleLine: false # Allow short loops to stay on the same line diff --git a/swGUI/Core/Controls/FrameworkElement.cpp b/swGUI/Core/Controls/FrameworkElement.cpp new file mode 100644 index 00000000..c04753cc --- /dev/null +++ b/swGUI/Core/Controls/FrameworkElement.cpp @@ -0,0 +1,52 @@ +/** +@file FrameworkElement.cpp +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ +#include "swGUI/Core/stdafx.h" + +#include "swGUI/Core/Controls/FrameworkElement.h" + +namespace sw { +namespace gui +{ + + +// ================================ // +// +Size FrameworkElement::GetNumChildren() const +{ + return 0; +} + +// ================================ // +// +Visual* FrameworkElement::GetVisualChild( Size idx ) const +{ + // No children. + return nullptr; +} + +// ================================ // +// +Size2D FrameworkElement::Measure( Size2D availableSize ) +{ + assert( !"Implement me" ); + return Size2D(); +} + +// ================================ // +// +void FrameworkElement::Arrange( Rect& finalRect ) { assert( !"Implement me" ); } + +// ================================ // +// +bool FrameworkElement::AddChild( UIElementOPtr&& child ) +{ + return false; +} + + + +} // namespace gui +} // namespace sw diff --git a/swGUI/Core/Controls/FrameworkElement.h b/swGUI/Core/Controls/FrameworkElement.h new file mode 100644 index 00000000..be5c9644 --- /dev/null +++ b/swGUI/Core/Controls/FrameworkElement.h @@ -0,0 +1,41 @@ +#pragma once +/** +@file FrameworkElement.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include "swGUI/Core/Controls/UIElement.h" + +namespace sw { +namespace gui +{ + +/**@brief Provides a framework-level set of properties. + +@todo This class is empty for now, but in the future it should reflect WPF +functionalities of FrameworkElement*/ +class FrameworkElement : public UIElement +{ + RTTR_ENABLE( UIElement ); + RTTR_REGISTRATION_FRIEND; + +private: +protected: +public: + explicit FrameworkElement() = default; + virtual ~FrameworkElement() = default; + +public: + virtual Size GetNumChildren() const override; + virtual Visual* GetVisualChild( Size idx ) const override; + virtual Size2D Measure( Size2D availableSize ) override; + virtual void Arrange( Rect& finalRect ) override; + virtual bool AddChild( UIElementOPtr&& child ) override; +}; + + +} // gui +} // sw + + diff --git a/swGUI/Core/Controls/TextualControls/TextBlock.cpp b/swGUI/Core/Controls/TextualControls/TextBlock.cpp new file mode 100644 index 00000000..f01ade3b --- /dev/null +++ b/swGUI/Core/Controls/TextualControls/TextBlock.cpp @@ -0,0 +1,113 @@ +/** +@file Shape.cpp +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ +#include "swGUI/Core/stdafx.h" + +#include "TextBlock.h" + +#include "swGraphicAPI/ResourceManager/ResourceManagerAPI.h" +#include "swGUI/Core/System/Rendering/Shading/ShaderProvider.h" +#include "swGUI/Core/System/Rendering/Drawings/TextDrawing.h" + + + +RTTR_REGISTRATION +{ + rttr::registration::class_< sw::gui::TextBlock >( "sw::gui::TextBlock" ) + .property( "Background", &sw::gui::TextBlock::GetBackground, &sw::gui::TextBlock::SetBackground ) + .property( "Foreground", &sw::gui::TextBlock::GetForeground, &sw::gui::TextBlock::SetForeground ); +} + +namespace sw { +namespace gui +{ + +// ================================ // + +TextBlock::TextBlock() + : m_invalidateFont( true ) + , m_fontSize( 12 ) + , m_fontStyle( FontStyle::Normal ) + , m_fontWeight( FontWeight::Normal ) + , m_textAlignment( TextAlignment::Left ) + , m_fontFamily( "Arial" ) +{} + +// ================================ // +// + +IDrawing* TextBlock::QueryDrawing() const +{ + return m_drawing.get(); +} + +// ================================ // + +ReturnResult TextBlock::UpdateDrawingResources( ResourceManagerAPI& api, ShaderProvider* sp ) +{ + if( FontNeedsUpdate() ) + { + // TODO: take FontWeight and FontStyle into account + FontLoaderData init( 16 ); + auto font = api.Load< FontAsset >( "$(FontAssets)/arial.ttf", &init ); + ReturnIfInvalid( font ); + + SetGeometry( std::make_shared< TextGeometry >( font.Get() ) ); + } + + return Success::True; +} + +// ================================ // +// + +void TextBlock::SetBackground( BrushPtr brush ) +{ + m_background = brush; + + // Create new Drawing only if it previously existed. Drawing doesn't exist if Geometry is not set. + if( m_drawing && m_background != m_drawing->GetBrush() ) + { + m_drawing = std::make_shared< TextDrawing >( m_background, m_drawing->GetPen(), m_drawing->GetGeometry() ); + } +} + +// ================================ // +// + +void TextBlock::SetForeground( BrushPtr pen ) +{ + m_pen = pen; + + // Create new Drawing only if i previously existed. Drawing doesn't exist if Geometry is not set. + if( m_drawing && m_pen != m_drawing->GetPen() ) + { + m_drawing = std::make_shared< TextDrawing >( m_drawing->GetBrush(), m_pen, m_drawing->GetGeometry() ); + } +} + +// ================================ // +// + +void TextBlock::SetGeometry( GeometryPtr geom ) +{ + // Create new drawing if m_drawing is nullptr or geometry changed. + if( !m_drawing || geom != m_drawing->GetGeometry() ) + { + m_drawing = std::make_shared< TextDrawing >( m_background, m_pen, geom ); + } +} + +// ================================ // +// +bool TextBlock::HitTest( const Point& point ) +{ + if( m_drawing ) + return m_drawing->GetGeometry()->HitTest( point ); + return false; +} + +} // namespace gui +} // namespace sw diff --git a/swGUI/Core/Controls/TextualControls/TextBlock.h b/swGUI/Core/Controls/TextualControls/TextBlock.h new file mode 100644 index 00000000..cd4b9985 --- /dev/null +++ b/swGUI/Core/Controls/TextualControls/TextBlock.h @@ -0,0 +1,113 @@ +#pragma once +/** +@file TextBlock.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include "swGUI/Core/Controls/FrameworkElement.h" + +#include "swGUI/Core/Media/Brushes/Brush.h" +#include "swGUI/Core/System/Rendering/Drawings/TextDrawing.h" +#include "swGraphicAPI/Assets/TextAsset/Text.h" + + +namespace sw { +namespace gui +{ + +/**@brief Font style. +@ingroup Text*/ +enum class FontStyle : u8 +{ + Normal, + Italic, + // Oblique +}; + +/**@brief Font thickness. +@ingroup Text*/ +enum class FontWeight : u8 +{ + Light, + Normal, + UltraBold, +}; + +/**@brief Simple Text presenter. +@ingroup Text +@ingroup Controls*/ +class TextBlock : public FrameworkElement +{ + RTTR_ENABLE( FrameworkElement ); + RTTR_REGISTRATION_FRIEND; + +private: + + TextDrawingPtr m_drawing; + + BrushPtr m_background; ///< Brush for background. + BrushPtr m_pen; ///< Brush for drawing text. + +protected: + + std::string m_fontFamily; + FontStyle m_fontStyle; + FontWeight m_fontWeight; + bool m_invalidateFont; + + TextAlignment m_textAlignment; + FontSizeType m_fontSize; + +public: + + explicit TextBlock(); + virtual ~TextBlock() = default; + +public: + + void SetBackground( BrushPtr brush ); + void SetForeground( BrushPtr pen ); + + BrushPtr GetBackground() const { return m_background; } + BrushPtr GetForeground() const { return m_pen; } + + void SetFontFamily( const std::string& fontFamily ); + std::string GetFontFamily() const { return m_fontFamily; } + + void SetFontSize( uint32 size ); + uint32 GetFontSize() const; + + FontStyle GetFontStyle() const { return m_fontStyle; } + void SetFontStyle( FontStyle fontStyle ); + + FontWeight GetFontWeight() const { return m_fontWeight; } + void SetFontWeight( FontWeight fontWeight ); + + void SetText( const std::wstring& text ); + std::wstring GetText() const; + + + GeometryPtr GetGeometry() const { return m_drawing->GetGeometry(); } + +protected: + + void SetGeometry( GeometryPtr geom ); + + void InvalidateFont() { m_invalidateFont = true; } + void FontUpdated() { m_invalidateFont = false; } + bool FontNeedsUpdate() const { return m_invalidateFont; } + +public: + + // Inherited via UIElement + virtual bool HitTest( const Point& point ) override; + + virtual IDrawing* QueryDrawing() const; + virtual ReturnResult UpdateDrawingResources( sw::ResourceManagerAPI& resourceManager, ShaderProvider* sp ) override; +}; + +DEFINE_OPTR_TYPE( TextBlock ); + +} // namespace gui +} // namespace sw diff --git a/swGUI/Core/Controls/Visual.h b/swGUI/Core/Controls/Visual.h index 19870d0a..2a358534 100644 --- a/swGUI/Core/Controls/Visual.h +++ b/swGUI/Core/Controls/Visual.h @@ -18,6 +18,9 @@ namespace sw { namespace gui { +class ShaderProvider; +class sw::ResourceManagerAPI; + /**@brief Provide interface for visual controls which can be rendered. @@ -60,6 +63,21 @@ class Visual : public DependencyObject Drawing object gives Visual it's appearance.*/ virtual IDrawing* QueryDrawing () const = 0; + /**@brief Updates underlying @ref IDrawing object's Resources. + + This function's prupose is to allow deferred reloading of heavier Resources. There is + another function (@ref IDrawing::RebuildResources) that serves the same purpose. + The main difference is, that Visual::UpdateDrawing allows doing this on Visual control + level. + + The best example illustrating purpose is @ref TextBlock control. There are several + properties that decide what @ref FontAsset should be loaded for unrelying @ref TextDrawing: + FontStyle, FontWeight and FontFamily. If @ref FontAsset would be loaded immediately, + changing all three properties would trigger loading Font 3 times. + This could be avoided if all 3 parameters would be avaiable on @ref TextDrawing level, + but such a solution would force repeating all parameters in TextDrawing and TextBlock + and would prevent from creating higher level abstractions that use simpler bulding blocks.*/ + virtual ReturnResult UpdateDrawingResources( sw::ResourceManagerAPI& resourceManager, ShaderProvider* sp ){ return Success::True; }; Position GetVisualOffset () const { return m_offset; } Size2D GetSize () const { return m_size; } diff --git a/swGUI/Core/Media/Geometry/EllipseGeometry.cpp b/swGUI/Core/Media/Geometry/EllipseGeometry.cpp index 9df20e52..e839b052 100644 --- a/swGUI/Core/Media/Geometry/EllipseGeometry.cpp +++ b/swGUI/Core/Media/Geometry/EllipseGeometry.cpp @@ -55,7 +55,7 @@ void EllipseGeometry::SetThickness ( float thickness ) // ================================ // // -bool EllipseGeometry::HitTest ( const Point& point ) +bool EllipseGeometry::HitTest ( const Point& point ) const { if( pow( point.x / ( m_width / 2.0f ), 2 ) + pow( point.y / ( m_height / 2.0f ), 2 ) < 1.0f ) return true; @@ -65,7 +65,7 @@ bool EllipseGeometry::HitTest ( const Point& point ) // ================================ // // -bool EllipseGeometry::HitTest ( const Rect& rectangle ) +bool EllipseGeometry::HitTest ( const Rect& rectangle ) const { assert( !"Implement me" ); return false; diff --git a/swGUI/Core/Media/Geometry/EllipseGeometry.h b/swGUI/Core/Media/Geometry/EllipseGeometry.h index 0386c1ef..b44726d9 100644 --- a/swGUI/Core/Media/Geometry/EllipseGeometry.h +++ b/swGUI/Core/Media/Geometry/EllipseGeometry.h @@ -36,8 +36,8 @@ class EllipseGeometry : public Geometry public: // Inherited via Geometry - virtual bool HitTest ( const Point& point ) override; - virtual bool HitTest ( const Rect& rectangle ) override; + virtual bool HitTest ( const Point& point ) const override; + virtual bool HitTest ( const Rect& rectangle ) const override; virtual GeometryData Generate () override; virtual BufferRange BufferData () override; diff --git a/swGUI/Core/Media/Geometry/Geometry.h b/swGUI/Core/Media/Geometry/Geometry.h index 10d9cd39..ba3aa316 100644 --- a/swGUI/Core/Media/Geometry/Geometry.h +++ b/swGUI/Core/Media/Geometry/Geometry.h @@ -104,10 +104,10 @@ class Geometry : public Object ///@{ /**@brief Check intersection of geometry shape with point.*/ - virtual bool HitTest ( const Point& point ) = 0; + virtual bool HitTest ( const Point& point ) const = 0; /**@brief Check intersection of geometry shape with rectangle.*/ - virtual bool HitTest ( const Rect& rectangle ) = 0; + virtual bool HitTest ( const Rect& rectangle ) const = 0; ///@} diff --git a/swGUI/Core/Media/Geometry/Layouts/VertexShape2D.cpp b/swGUI/Core/Media/Geometry/Layouts/VertexShape2D.cpp index 1b393807..9b5ba250 100644 --- a/swGUI/Core/Media/Geometry/Layouts/VertexShape2D.cpp +++ b/swGUI/Core/Media/Geometry/Layouts/VertexShape2D.cpp @@ -17,17 +17,20 @@ namespace gui { const AssetPath VertexShape2D_LayoutName = "::sw::gui::VertexShape2D"; +const AssetPath VertexText2D_LayoutName = "::sw::gui::VertexText2D"; // ================================ // // template<> InputLayoutDescriptor CreateLayoutDescriptor< VertexShape2D > () { - InputLayoutDescriptor desc; - desc.AddEntry( AttributeSemantic::Position, ResourceFormat::RESOURCE_FORMAT_R32G32_FLOAT, offsetof( VertexShape2D, Position ) ); - desc.AddEntry( AttributeSemantic::Texcoord, ResourceFormat::RESOURCE_FORMAT_R32G32_FLOAT, offsetof( VertexShape2D, UV ) ); + InputLayoutDescriptor desc; + desc.AddEntry( AttributeSemantic::Position, ResourceFormat::RESOURCE_FORMAT_R32G32_FLOAT, + offsetof( VertexShape2D, Position ) ); + desc.AddEntry( AttributeSemantic::Texcoord, ResourceFormat::RESOURCE_FORMAT_R32G32_FLOAT, + offsetof( VertexShape2D, UV ) ); - return std::move( desc ); + return std::move( desc ); } // ================================ // @@ -39,5 +42,26 @@ const AssetPath& GetLayoutName< VertexShape2D > () } +// ================================ // +// +template <> InputLayoutDescriptor CreateLayoutDescriptor< VertexText2D >() +{ + InputLayoutDescriptor desc; + desc.AddEntry( AttributeSemantic::Position, ResourceFormat::RESOURCE_FORMAT_R32G32_FLOAT, + offsetof( VertexText2D, Position ) ); + desc.AddEntry( AttributeSemantic::Texcoord, ResourceFormat::RESOURCE_FORMAT_R32G32_FLOAT, + offsetof( VertexText2D, AtlasCoords ) ); + desc.AddEntry( AttributeSemantic::Texcoord, ResourceFormat::RESOURCE_FORMAT_R32G32_FLOAT, + offsetof( VertexText2D, UV ) ); + + return std::move( desc ); +} + +// ================================ // +// +template <> const AssetPath& GetLayoutName< VertexText2D >() { return VertexText2D_LayoutName; } + + + } // gui } // sw diff --git a/swGUI/Core/Media/Geometry/Layouts/VertexShape2D.h b/swGUI/Core/Media/Geometry/Layouts/VertexShape2D.h index eff88a97..68855580 100644 --- a/swGUI/Core/Media/Geometry/Layouts/VertexShape2D.h +++ b/swGUI/Core/Media/Geometry/Layouts/VertexShape2D.h @@ -34,6 +34,26 @@ template<> const AssetPath& GetLayoutName< VertexShape2D > (); +/**@brief Text 2D vertex structure supporting texturing. +@ingroup Geometries*/ +struct VertexText2D +{ + DirectX::XMFLOAT2 Position; + DirectX::XMFLOAT2 AtlasCoords; + DirectX::XMFLOAT2 UV; +}; + + +// ================================ // +// +template<> +InputLayoutDescriptor CreateLayoutDescriptor< VertexText2D >(); + +// ================================ // +// +template<> +const AssetPath& GetLayoutName< VertexText2D >(); + } // gui } // sw diff --git a/swGUI/Core/Media/Geometry/RectangleGeometry.cpp b/swGUI/Core/Media/Geometry/RectangleGeometry.cpp index 3b4d3726..d13ebf69 100644 --- a/swGUI/Core/Media/Geometry/RectangleGeometry.cpp +++ b/swGUI/Core/Media/Geometry/RectangleGeometry.cpp @@ -53,23 +53,16 @@ void RectangleGeometry::SetThickness ( float thickness ) // ================================ // // -bool RectangleGeometry::HitTest ( const Point& point ) +bool RectangleGeometry::HitTest ( const Point& point ) const { - if( point.x < 0.0 || point.x > m_width ) - return false; - - if( point.y < 0.0 || point.y > m_height ) - return false; - - return true; + return Rect{ 0.0, m_width, 0.0, m_height }.Intersects( point ); } // ================================ // // -bool RectangleGeometry::HitTest ( const Rect& rectangle ) +bool RectangleGeometry::HitTest ( const Rect& rectangle ) const { - assert( !"Implement me" ); - return false; + return Rect{ 0.0, m_width, 0.0, m_height }.Intersects( rectangle ); } // ================================ // diff --git a/swGUI/Core/Media/Geometry/RectangleGeometry.h b/swGUI/Core/Media/Geometry/RectangleGeometry.h index b411002f..259bc65d 100644 --- a/swGUI/Core/Media/Geometry/RectangleGeometry.h +++ b/swGUI/Core/Media/Geometry/RectangleGeometry.h @@ -37,8 +37,8 @@ class RectangleGeometry : public Geometry public: // Inherited via Geometry - virtual bool HitTest ( const Point& point ) override; - virtual bool HitTest ( const Rect& rectangle ) override; + virtual bool HitTest ( const Point& point ) const override; + virtual bool HitTest ( const Rect& rectangle ) const override; virtual GeometryData Generate () override; virtual BufferRange BufferData () override; virtual filesystem::Path ShaderFunctionFile () override; diff --git a/swGUI/Core/Media/Geometry/TextGeometry.cpp b/swGUI/Core/Media/Geometry/TextGeometry.cpp new file mode 100644 index 00000000..3c57a91b --- /dev/null +++ b/swGUI/Core/Media/Geometry/TextGeometry.cpp @@ -0,0 +1,129 @@ +/** +@file TextGeometry.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ +#include "swGUI/Core/stdafx.h" + +#include "TextGeometry.h" + +#include "swGUI/Core/Media/Geometry/Layouts/VertexShape2D.h" + +#include "swCommonLib/Common/Buffers/IndexedGeometryBuffer.h" +#include "swCommonLib/Common/Converters.h" +#include "swCommonLib/Common/fmt.h" + +#include "swGeometrics/BasicShapes/CoordsUV/PlanarUV.h" +#include "swGeometrics/GeometricsCore/Generators/Generator.h" + + + + +namespace sw { +namespace gui +{ + +// ================================ // +// +TextGeometry::TextGeometry( FontAssetPtr font ) + : Geometry( Geometry::ConstantBufferMode::Disable ) + , m_font( font ) {} + +// ================================ // + +void TextGeometry::SetText( const std::wstring& text ) +{ + m_text = text; + InvalidateGeometry(); +} + +// ================================ // + +void TextGeometry::SetFont( FontAssetPtr font ) +{ + m_font = font; + InvalidateGeometry(); +} + +// ================================ // +// +void TextGeometry::SetWidth( float width ) +{ + m_width = width; + InvalidateGeometry(); +} + +// ================================ // +// +void TextGeometry::SetHeight( float height ) +{ + m_height = height; + InvalidateGeometry(); +} + + +// ================================ // +// +bool TextGeometry::HitTest( const Point& point ) const +{ + return Rect{ 0.0, m_width, 0.0, m_height }.Intersects( point ); +} + +// ================================ // +// +bool TextGeometry::HitTest( const Rect& rectangle ) const +{ + return Rect{ 0.0, m_width, 0.0, m_height }.Intersects( rectangle ); +} + +// ================================ // +// +GeometryData TextGeometry::Generate () +{ + auto arranger = TextArranger::CreateFrom( m_font ); + arranger.Bounds = Rect{ 0.0, m_width, 0.0, m_height }; + + auto geometry = arranger.GenerateGeometryTextured( m_text, m_font, true ); + + GeometryData geomData( geometry.Get().Verticies.MoveToRawBuffer(), geometry.Get().Indicies.MoveToRawBuffer() ); + // The roles are reversed. Fill is background and border is text. + geomData.FillIdxEnd = (uint32)arranger.NumBorderIndicies(); + geomData.BorderIdxEnd = (uint32)geometry.Get().Indicies.GetSize(); + geomData.ExtendedIB = true; + geomData.Topology = PrimitiveTopology::Triangles; + + return std::move( geomData ); +} + +// ================================ // +// +BufferRange TextGeometry::BufferData () +{ + // Rectangle doesn't use contants buffer. + return BufferRange(); +} + +// ================================ // +// +filesystem::Path TextGeometry::ShaderFunctionFile () +{ + return "$(CoreGUI-Shader-Dir)/Geometry/ForwardAttributes.vsh"; +} + +// ================================ // +// +std::string TextGeometry::GeometryName () +{ + return fmt::format( "/TextGeometry{}", m_font->GetAssetPath().GetInternalPath() ); +} + +// ================================ // +// +AssetPath TextGeometry::ConstantsName () +{ + // Rectangle doesn't use contants buffer. + return AssetPath(); +} + +} // gui +} // sw diff --git a/swGUI/Core/Media/Geometry/TextGeometry.h b/swGUI/Core/Media/Geometry/TextGeometry.h new file mode 100644 index 00000000..66054432 --- /dev/null +++ b/swGUI/Core/Media/Geometry/TextGeometry.h @@ -0,0 +1,60 @@ +#pragma once +/** +@file TextGeometry.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include "swGUI/Core/Media/Geometry/Geometry.h" +#include "swGraphicAPI/Assets/TextAsset/Text.h" + + +namespace sw { +namespace gui +{ + +/**@brief Generates Text. +@ingroup Geometries*/ +class TextGeometry : public Geometry +{ +private: +protected: + + FontAssetPtr m_font; + std::wstring m_text; // Text to display. + + float m_width; + float m_height; + +public: + + explicit TextGeometry( FontAssetPtr font ); + virtual ~TextGeometry() = default; + +public: + + void SetText( const std::wstring& text ); + const std::wstring& GetText() const { return m_text; } + + void SetFont( FontAssetPtr font ); + FontAssetPtr GetFont() const { return m_font; } + + void SetWidth( float width ); + void SetHeight( float height ); + +public: + + // Inherited via Geometry + virtual bool HitTest( const Point& point ) const override; + virtual bool HitTest( const Rect& rectangle ) const override; + virtual GeometryData Generate() override; + virtual BufferRange BufferData() override; + virtual filesystem::Path ShaderFunctionFile() override; + virtual std::string GeometryName() override; + virtual AssetPath ConstantsName() override; +}; + +DEFINE_PTR_TYPE( TextGeometry ) + +} // namespace gui +} // namespace sw diff --git a/swGUI/Core/System/CommonTypes/CommonTypes.h b/swGUI/Core/System/CommonTypes/CommonTypes.h index 4303f7c7..bc7ca270 100644 --- a/swGUI/Core/System/CommonTypes/CommonTypes.h +++ b/swGUI/Core/System/CommonTypes/CommonTypes.h @@ -12,7 +12,7 @@ #include "Thickness.h" - +#include "swGeometrics/GeometricsCore/Math/Types.h" namespace sw { @@ -29,33 +29,7 @@ typedef DirectX::XMFLOAT2 Size2D; typedef DirectX::XMFLOAT2 Point; typedef DirectX::XMFLOAT4 Color; - -/**@brief Rectangle structure.*/ -struct Rect -{ - float Left; - float Right; - float Top; - float Bottom; - - // ================================ // - // - float GetWidth () { return Right - Left; } - float GetHeight () { return Top - Bottom; } - - bool Intersects ( const Position& pos ) - { - if( pos.x < Left ) - return false; - if( pos.x > Right ) - return false; - if( pos.y < Bottom ) - return false; - if( pos.y > Top ) - return false; - return true; - } -}; +using Rect = Rect2d; } // gui } // sw diff --git a/swGUI/Core/System/Rendering/Drawings/Drawing.cpp b/swGUI/Core/System/Rendering/Drawings/Drawing.cpp index 968d3c96..6f0f909c 100644 --- a/swGUI/Core/System/Rendering/Drawings/Drawing.cpp +++ b/swGUI/Core/System/Rendering/Drawings/Drawing.cpp @@ -8,9 +8,11 @@ #include "Drawing.h" +#include "swGraphicAPI/ResourceManager/ResourceManagerAPI.h" +#include "swGUI/Core/System/Rendering/Shading/ShaderProvider.h" + #include "swGUI/Core/Media/Brushes/Brush.h" #include "swGUI/Core/Media/Geometry/Geometry.h" - #include "swGUI/Core/Media/Geometry/Layouts/VertexShape2D.h" #include "swGUI/Core/System/Rendering/RenderingHelpers.h" @@ -219,7 +221,7 @@ bool Drawing::UpdateGeometryConstants ( ResourceManagerAPI rm, Geometry* geome // ================================ // // template< typename VertexStruct > -ShaderInputLayoutPtr CreateLayout ( ResourceManagerAPI rm, ShaderProvider* sp ) +ShaderInputLayoutPtr Drawing::CreateLayout( ResourceManagerAPI rm, ShaderProvider* sp ) { auto layout = rm.GetCached< ShaderInputLayout >( GetLayoutName< VertexStruct >() ); if( !layout ) @@ -235,13 +237,7 @@ ShaderInputLayoutPtr CreateLayout ( ResourceManagerAPI rm, ShaderProvid // bool Drawing::CreateAndSetLayout ( ResourceManagerAPI rm, ShaderProvider* sp, Geometry* geometry ) { - if( !m_geometryData.Layout ) - { - m_geometryData.Layout = CreateLayout< VertexShape2D >( rm, sp ); - return true; - } - - return false; + return CreateAndSetLayoutForVertexType< VertexShape2D >( rm, sp, geometry ); } //====================================================================================// diff --git a/swGUI/Core/System/Rendering/Drawings/Drawing.h b/swGUI/Core/System/Rendering/Drawings/Drawing.h index 1359f957..325c299c 100644 --- a/swGUI/Core/System/Rendering/Drawings/Drawing.h +++ b/swGUI/Core/System/Rendering/Drawings/Drawing.h @@ -98,6 +98,10 @@ class Drawing : public IDrawing bool UpdateGeometryConstants ( ResourceManagerAPI rm, Geometry* geometry ); bool CreateAndSetLayout ( ResourceManagerAPI rm, ShaderProvider* sp, Geometry* geometry ); + template< typename VertexType > + bool CreateAndSetLayoutForVertexType( ResourceManagerAPI rm, ShaderProvider* sp, Geometry* geometry ); + template < typename VertexStruct > + ShaderInputLayoutPtr CreateLayout ( ResourceManagerAPI rm, ShaderProvider* sp ); ///@} ///@name Rendering functions. @@ -138,6 +142,22 @@ class Drawing : public IDrawing DEFINE_PTR_TYPE( Drawing ) -} // gui + +// ================================ // +// + +template < typename VertexType > +inline bool Drawing::CreateAndSetLayoutForVertexType( ResourceManagerAPI rm, ShaderProvider* sp, Geometry* geometry ) +{ + if( !m_geometryData.Layout ) + { + m_geometryData.Layout = CreateLayout< VertexShape2D >( rm, sp ); + return true; + } + + return false; +} + +} // namespace gui } // sw diff --git a/swGUI/Core/System/Rendering/Drawings/GeometryDrawing.cpp b/swGUI/Core/System/Rendering/Drawings/GeometryDrawing.cpp index dacac3ce..f2ef65f4 100644 --- a/swGUI/Core/System/Rendering/Drawings/GeometryDrawing.cpp +++ b/swGUI/Core/System/Rendering/Drawings/GeometryDrawing.cpp @@ -7,7 +7,8 @@ #include "GeometryDrawing.h" - +#include "swGraphicAPI/ResourceManager/ResourceManagerAPI.h" +#include "swGUI/Core/System/Rendering/Shading/ShaderProvider.h" namespace sw { diff --git a/swGUI/Core/System/Rendering/Drawings/IDrawing.h b/swGUI/Core/System/Rendering/Drawings/IDrawing.h index 642ae07c..18980910 100644 --- a/swGUI/Core/System/Rendering/Drawings/IDrawing.h +++ b/swGUI/Core/System/Rendering/Drawings/IDrawing.h @@ -24,7 +24,7 @@ namespace gui { -/**@brief Base class for rendering entities. +/**@brief Base class for rendering entities. Drawing object gives Visual it's appearance. @ingroup Drawing*/ class IDrawing : public Object { @@ -40,7 +40,20 @@ class IDrawing : public Object private: - virtual void RebuildResources ( ResourceManagerAPI resourceManager, ShaderProvider* sp ) = 0; + /**@brief Changing parameters of Drawing objects may require reloading some of subresources. + + @ref IDrawing::RebuildResources will be called by @ref RenderingSystem before rendering IDrawing + on screen. RenderingSystem defers Resources update until it is necessary. That means that changing + parameters of IDrawing object should only mark some Resources as invalid and reload them only + when IDrawing::RebuildResources is called. + This way if swGUI user updates model mulitple times in one animation frame, RenderingSystem won't + suffer performance penalty.*/ + virtual void RebuildResources ( sw::ResourceManagerAPI resourceManager, ShaderProvider* sp ) = 0; + + /**@brief Allows to implement custom rendering logic for different types of visual objects. + For example rendering Text has some aspects that are different from standard geometry. + + IDrawing::Render function is called by @ref RenderingSystem each time part of screen must be redrawn.*/ virtual void Render ( IRenderer* renderer ) = 0; }; diff --git a/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp b/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp index 8fb2157a..189fb931 100644 --- a/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp +++ b/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp @@ -7,10 +7,55 @@ #include "TextDrawing.h" +#include "swGUI/Core/Media/Geometry/Layouts/VertexShape2D.h" + + namespace sw { namespace gui { +// ================================ // + +TextDrawing::TextDrawing( BrushPtr brush, BrushPtr pen, GeometryPtr text ) : GeometryDrawing( brush, pen, text ) {} + +// ================================ // + +void TextDrawing::Render( IRenderer* renderer ) +{ + // TODO: Check if it is correct for text + GeometryDrawing::Render( renderer ); +} + +// ================================ // + +void TextDrawing::RebuildResources( ResourceManagerAPI rm, ShaderProvider* sp ) +{ + // TODO: Rebuild font + + + + bool result = true; + + auto brush = GetBrush().get(); + auto pen = GetPen().get(); + auto geometry = GetGeometry().get(); + + // Geometry updates + result = CreateAndSetLayoutForVertexType< VertexText2D >( rm, sp, geometry ) && result; + result = UpdateVertexShader( sp, geometry ) && result; + result = UpdateGeometry( rm, geometry ) && result; + result = UpdateGeometryConstants( rm, geometry ) && result; + + // Brush updates + result = UpdateBrushShader( sp, brush ) && result; + result = UpdateBrushTexture( rm, brush ) && result; + result = UpdateBrushConstants( rm, brush ) && result; + + // Pen updates + result = UpdatePenShader( sp, pen ) && result; + result = UpdatePenTexture( rm, pen ) && result; + result = UpdatePenConstants( rm, pen ) && result; +} -} // gui +} // namespace gui } // sw diff --git a/swGUI/Core/System/Rendering/Drawings/TextDrawing.h b/swGUI/Core/System/Rendering/Drawings/TextDrawing.h index a53407b8..bce79040 100644 --- a/swGUI/Core/System/Rendering/Drawings/TextDrawing.h +++ b/swGUI/Core/System/Rendering/Drawings/TextDrawing.h @@ -5,10 +5,10 @@ @copyright File is part of Sleeping Wombat Libraries. */ -#include "Drawing.h" +#include "GeometryDrawing.h" #include "swGUI/Core/Media/Brushes/Brush.h" -#include "swGUI/Core/Media/Geometry/Geometry.h" +#include "swGUI/Core/Media/Geometry/TextGeometry.h" namespace sw { @@ -18,20 +18,15 @@ namespace gui /**@brief Draws text and it's background. @ingroup Drawing*/ -class TextDrawing : public Drawing +class TextDrawing : public GeometryDrawing { - RTTR_ENABLE( Drawing ); + RTTR_ENABLE( GeometryDrawing ); RTTR_REGISTRATION_FRIEND private: - BrushPtr m_brush; ///< Brush used to fill background. - BrushPtr m_pen; ///< Brush used to draw text. - GeometryPtr m_backgroundGeometry; ///< Geometry to draw background. - GeometryPtr m_textGeometry; ///< Geometry to draw Text Glyphs. - public: - explicit TextDrawing ( BrushPtr brush, BrushPtr pen, GeometryPtr bakcground, GeometryPtr text ); + explicit TextDrawing ( BrushPtr brush, BrushPtr pen, GeometryPtr text ); virtual void Render ( IRenderer* renderer ) override; @@ -39,9 +34,8 @@ class TextDrawing : public Drawing public: - const BrushPtr& GetBrush () const { return m_brush; } - const BrushPtr& GetPen () const { return m_pen; } - const GeometryPtr& GetGeometry () const { return m_textGeometry; } + const TextGeometryPtr& GetTextGeometry() const { return std::static_pointer_cast< TextGeometry >( GetGeometry() ); } + }; DEFINE_PTR_TYPE( TextDrawing ) diff --git a/swGUI/Core/System/Rendering/RenderingSystem.cpp b/swGUI/Core/System/Rendering/RenderingSystem.cpp index b5b070b4..2319f51d 100644 --- a/swGUI/Core/System/Rendering/RenderingSystem.cpp +++ b/swGUI/Core/System/Rendering/RenderingSystem.cpp @@ -123,6 +123,8 @@ void RenderingSystem::SetSystemConstants ( IRenderer* renderer, const Rende // void RenderingSystem::DrawVisual ( IRenderer* renderer, Visual* visual, const RenderingParams& params ) { + auto result = visual->UpdateDrawingResources( m_resourceManager, &m_shaderProvider ); + IDrawing* drawing = visual->QueryDrawing(); if( drawing ) { diff --git a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj b/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj index b9cb1239..88448447 100644 --- a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj +++ b/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj @@ -140,9 +140,11 @@ + + @@ -158,6 +160,7 @@ + @@ -215,9 +218,11 @@ + + @@ -230,6 +235,7 @@ + Create Create @@ -280,6 +286,9 @@ {7275758b-1abc-4b28-bb42-cbdbcd2584d1} + + {1d15dc68-41b7-4c76-8250-411582e5acbf} + diff --git a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj.filters b/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj.filters index 156d5277..5a4f73a6 100644 --- a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj.filters +++ b/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj.filters @@ -109,6 +109,9 @@ {b7199566-0673-43ab-9d50-9914c784bd14} + + {b27c9c50-875b-40af-942d-89819d5be873} + @@ -330,6 +333,15 @@ Core\System\Rendering\Drawings + + Core\Media\Geometry + + + Core\Controls\TextualControls + + + Core\Controls + @@ -485,6 +497,15 @@ Core\System\Rendering\Drawings + + Core\Media\Geometry + + + Core\Controls\TextualControls + + + Core\Controls + diff --git a/swGeometrics/GeometricsCore/Math/Types.h b/swGeometrics/GeometricsCore/Math/Types.h index 063f32ec..cc63c9fe 100644 --- a/swGeometrics/GeometricsCore/Math/Types.h +++ b/swGeometrics/GeometricsCore/Math/Types.h @@ -25,10 +25,10 @@ struct Rect2d float Bottom; public: - float GetWidth () { return Right - Left; } - float GetHeight () { return Top - Bottom; } + float GetWidth () const { return Right - Left; } + float GetHeight () const { return Top - Bottom; } - bool Intersects ( const Position2d& pos ) + bool Intersects ( const Position2d& pos ) const { if( pos.x < Left ) return false; @@ -40,6 +40,8 @@ struct Rect2d return false; return true; } + + bool Intersects( const Rect2d& other ) const; }; inline Position2d operator+( Position2d left, Position2d right ) { @@ -51,4 +53,30 @@ inline Position2d& operator+=( Position2d& left, Position2d right ) { return left; } +namespace impl +{ + +// ================================ // +// +inline bool valueInRange( float value, float min, float max ) { return ( value >= min ) && ( value <= max ); } + +} // namespace + +// ================================ // +// https://stackoverflow.com/a/306379 + +inline bool Rect2d::Intersects( const Rect2d& other ) const +{ + const Rect2d& A = *this; + const Rect2d& B = other; + + bool xOverlap = impl::valueInRange( A.Left, B.Left, B.Left + B.GetWidth() ) + || impl::valueInRange( B.Left, A.Left, A.Left + A.GetWidth() ); + + bool yOverlap = impl::valueInRange( A.Top, B.Top, B.Top + B.GetHeight() ) + || impl::valueInRange( B.Top, A.Top, A.Top + A.GetHeight() ); + + return xOverlap && yOverlap; +} + } diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp index a1239b96..22650a86 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp @@ -97,5 +97,13 @@ ImageRect FontLayout::GetGlyphCoords( wchar_t character ) const return ImageRect{ 0, 0, 0, 0 }; } -} // sw +// ================================ // +// Computing space character size +// Space width should be get form : https://www.mail-archive.com/freetype@nongnu.org/msg01384.html +float FontLayout::SpaceWidth() const { return (float)Glyphs.at( L'0' ).AdvanceX; } + +// ================================ // + +float FontLayout::NewLineSize() const { return (float)Glyphs.at( L'0' ).Height; } +} // sw diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h index fb165b52..eb81d407 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h @@ -23,7 +23,7 @@ class FontAsset; class ResourceManager; typedef std::pair< wchar_t, wchar_t > KerningPair; - +typedef uint8 FontSizeType; /**@brief Struct contains describing individual characters in font. @ingroup Text*/ @@ -50,6 +50,9 @@ struct FontLayout uint32 GetMaxWidthWithPadding() const; ImageRect GetGlyphCoords( wchar_t character ) const; + + float SpaceWidth() const; + float NewLineSize() const; }; @@ -61,12 +64,12 @@ struct FontInitData : public IAssetCreateInfo public: TexturePtr FontAtlas; - uint32 FontSize; + FontSizeType FontSize; FontLayout Layout; public: - explicit FontInitData ( uint32 fontSize ) + explicit FontInitData( FontSizeType fontSize ) : FontAtlas( nullptr ) , FontSize( fontSize ) {} @@ -88,11 +91,11 @@ struct FontLoaderData : public IAssetLoadInfo /**Characters that will be rendered to texture atlas.*/ std::wstring CharacterSet; - uint32 FontSize; + FontSizeType FontSize; bool GenerateMipmaps; public: - explicit FontLoaderData ( uint32 fontSize ) + explicit FontLoaderData( FontSizeType fontSize ) : FontSize( fontSize ) , GenerateMipmaps( false ) , CharacterSet( DefaultCharacterSet() ) diff --git a/swGraphicAPI/Assets/TextAsset/Text.cpp b/swGraphicAPI/Assets/TextAsset/Text.cpp index 3af7d9f5..49532494 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.cpp +++ b/swGraphicAPI/Assets/TextAsset/Text.cpp @@ -18,7 +18,18 @@ namespace sw // ================================ // -std::vector< Position2d > TextArranger::ArrangeText( const std::wstring& text, const FontLayout& layout ) const +TextArranger TextArranger::CreateFrom( const FontAssetPtr font ) +{ + TextArranger arranger; + arranger.SpaceSize = font->GetLayout().SpaceWidth(); + arranger.NewLineSize = font->GetLayout().NewLineSize(); + + return arranger; +} + +// ================================ // + +std::vector< Position2d > TextArranger::ArrangeText( const std::wstring& text, const FontLayout& layout ) const { std::vector< Position2d > letters; letters.reserve( text.length() ); diff --git a/swGraphicAPI/Assets/TextAsset/Text.h b/swGraphicAPI/Assets/TextAsset/Text.h index 5931967d..5a295377 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.h +++ b/swGraphicAPI/Assets/TextAsset/Text.h @@ -21,7 +21,7 @@ namespace sw /**@brief Decides how text should be aligned. @ingroup Text*/ -enum class TextAlignment +enum class TextAlignment : u8 { Left, Center, @@ -60,6 +60,9 @@ class TextArranger , Bounds( { 0.0f, 0.0f, 0.0f, 0.0f } ) {} + /**@brief Creates Arranger setting some default values from FontAsset.*/ + static TextArranger CreateFrom( const FontAssetPtr font ); + public: std::vector< Position2d > ArrangeText( const std::wstring& text, const FontLayout& layout ) const; std::vector< Position2d > ArrangeLine( std::wstring_view text, const FontLayout& layout, Position2d startPosition ) const; @@ -76,6 +79,8 @@ class TextArranger public: Nullable< geom::IndexedGeometryBuffer< geom::VertexShape2D, Index32 > > GenerateGeometry( const std::wstring& text, const FontAssetPtr font, bool genBackground ) const; Nullable< geom::IndexedGeometryBuffer< geom::VertexText2D, Index32 > > GenerateGeometryTextured( const std::wstring& text, const FontAssetPtr font, bool genBackground ) const; + + Size NumBorderIndicies() const { return 6; } }; From f4f9d1c089946b968a901389ce6b79971e837b49 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sat, 9 Nov 2024 19:54:45 +0100 Subject: [PATCH 29/96] Implement ConsoleLogger; simple logging macros --- swCommonLib/Common/Logging/ConsoleLogger.h | 40 ++++++ swCommonLib/Common/Logging/Logger.cpp | 25 ++++ swCommonLib/Common/Logging/Logger.h | 114 ++++++++++++++---- swCommonLib/Common/fmt.h | 1 + .../Visual2015/CommonBase/CommonBase.vcxproj | 2 + .../CommonBase/CommonBase.vcxproj.filters | 6 + .../Controls/TextualControls/TextBlock.cpp | 14 ++- .../Core/Controls/TextualControls/TextBlock.h | 3 +- swGUI/Core/Media/Geometry/TextGeometry.cpp | 2 +- swGUI/Core/System/GUISystem.cpp | 6 + .../System/Rendering/Drawings/TextDrawing.h | 2 +- .../Core/System/Rendering/RenderingSystem.cpp | 6 + .../Visual2015/CoreGUI/CoreGUI.vcxproj | 3 + .../Prototypes/PrototyperGUI/Application.cpp | 23 ++++ 14 files changed, 219 insertions(+), 28 deletions(-) create mode 100644 swCommonLib/Common/Logging/ConsoleLogger.h create mode 100644 swCommonLib/Common/Logging/Logger.cpp diff --git a/swCommonLib/Common/Logging/ConsoleLogger.h b/swCommonLib/Common/Logging/ConsoleLogger.h new file mode 100644 index 00000000..f4cc50c2 --- /dev/null +++ b/swCommonLib/Common/Logging/ConsoleLogger.h @@ -0,0 +1,40 @@ +#pragma once +/** +@file ConsoleLogger.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include + +#include "Logger.h" + +#include "swCommonLib/Common/fmt.h" + + +namespace sw +{ + +/**@brief Logger that writes messages to console. +@ingroup Logging*/ +class ConsoleLogger : public ILogger +{ +public: + ConsoleLogger() = default; + ~ConsoleLogger() = default; + + + void Log ( LogLevel level, const char* messagee ); +}; + +// ================================ // + +void ConsoleLogger::Log( LogLevel level, const char* message ) +{ + using std::chrono::system_clock; + using std::chrono::time_point; + time_point< system_clock > timestamp = system_clock::now(); + fmt::println( "{} [{:%Y-%m-%d %H:%M:%S}] {}", LogLevelToString( level ), timestamp, message ); +} + +} // sw diff --git a/swCommonLib/Common/Logging/Logger.cpp b/swCommonLib/Common/Logging/Logger.cpp new file mode 100644 index 00000000..374549a5 --- /dev/null +++ b/swCommonLib/Common/Logging/Logger.cpp @@ -0,0 +1,25 @@ +/** +@file Logger.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include "swCommonLib/Common/Logging/Logger.h" + +namespace sw +{ +std::unique_ptr < ILogger > ILogger::s_logger = std::make_unique< NullLogger >(); + + +// ================================ // + +ILogger& ILogger::Logger() +{ + if( !s_logger ) + ILogger::s_logger = std::make_unique< NullLogger >(); + return *ILogger::s_logger; +} + + +} // sw + diff --git a/swCommonLib/Common/Logging/Logger.h b/swCommonLib/Common/Logging/Logger.h index e175cec1..00f541dd 100644 --- a/swCommonLib/Common/Logging/Logger.h +++ b/swCommonLib/Common/Logging/Logger.h @@ -6,47 +6,113 @@ */ #include +#include +#include "swCommonLib/Common/TypesDefinitions.h" namespace sw { -namespace detail +/**@brief Logging levels. +@ingroup Logging*/ +enum class LogLevel { - class LoggerImpl; -} + Trace, + Debug, + Info, + Warning, + Error, + Critical +}; + +class NullLogger; +class ILogger; +DEFINE_UPTR_TYPE( ILogger ); /**@brief This class is interface to write logger independent system. -Use your favourite logger internally.*/ -class Logger +Use your favourite logger internally. +@ingroup Logging*/ +class ILogger { -private: +protected: + static std::unique_ptr< ILogger > s_logger; + +public: + explicit ILogger() = default; + virtual ~ILogger() = 0 {}; + + + void Trace ( const std::string& message ) { Log( LogLevel::Trace, message.c_str() ); } + void Debug ( const std::string& message ) { Log( LogLevel::Debug, message.c_str() ); } + void Info ( const std::string& message ) { Log( LogLevel::Info, message.c_str() ); } + void Warning ( const std::string& message ) { Log( LogLevel::Warning, message.c_str() ); } + void Error ( const std::string& message ) { Log( LogLevel::Error, message.c_str() ); } + void Critical ( const std::string& message ) { Log( LogLevel::Critical, message.c_str() ); } + + void Trace ( const char* message ) { Log( LogLevel::Trace, message ); } + void Debug ( const char* message ) { Log( LogLevel::Debug, message ); } + void Info ( const char* message ) { Log( LogLevel::Info, message ); } + void Warning ( const char* message ) { Log( LogLevel::Warning, message ); } + void Error ( const char* message ) { Log( LogLevel::Error, message ); } + void Critical ( const char* message ) { Log( LogLevel::Critical, message ); } + + virtual void Log ( LogLevel level, const char* message ) = 0; + void Log ( LogLevel level, const std::string& message ) { Log( level, message.c_str() ); } + +public: + + static void SetLogger( std::unique_ptr< ILogger > logger ) { s_logger = std::move( logger ); } + static ILogger& Logger(); +}; - detail::LoggerImpl* m_impl; +/**@brief Logger for discarding on logs. +@ingroup Logging*/ +class NullLogger : public ILogger +{ +private: protected: public: - explicit Logger () = default; - ~Logger () = default; - - - void Trace ( const std::string& message ); - void Debug ( const std::string& message ); - void Info ( const std::string& message ); - void Warning ( const std::string& message ); - void Error ( const std::string& message ); - void Critical ( const std::string& message ); - - void Trace ( const char* message ); - void Debug ( const char* message ); - void Info ( const char* message ); - void Warning ( const char* message ); - void Error ( const char* message ); - void Critical ( const char* message ); + NullLogger() = default; + ~NullLogger() = default; + + void Log( LogLevel level, const char* message ) override {} }; +// ================================ // + +inline const char* LogLevelToString( LogLevel level ) +{ + switch( level ) + { + case LogLevel::Trace: + return "Trace"; + case LogLevel::Debug: + return "Debug"; + case LogLevel::Info: + return "Info"; + case LogLevel::Warning: + return "Warning"; + case LogLevel::Error: + return "Error"; + case LogLevel::Critical: + return "Critical"; + default: + return "Undefined"; + } +} + +#define LOG_MESSAGE( LEVEL, MESSAGE ) sw::ILogger::Logger().Log( LEVEL, MESSAGE ); + +#define LOG_TRACE( MESSAGE ) LOG_MESSAGE( sw::LogLevel::Trace, MESSAGE ) +#define LOG_DEBUG( MESSAGE ) LOG_MESSAGE( sw::LogLevel::Debug, MESSAGE ) +#define LOG_INFO( MESSAGE ) LOG_MESSAGE( sw::LogLevel::Info, MESSAGE ) +#define LOG_WARN( MESSAGE ) LOG_MESSAGE( sw::LogLevel::Warning, MESSAGE ) +#define LOG_ERROR( MESSAGE ) LOG_MESSAGE( sw::LogLevel::Error, MESSAGE ) +#define LOG_CRITICAL( MESSAGE ) LOG_MESSAGE( sw::LogLevel::Critical, MESSAGE ) + } // sw diff --git a/swCommonLib/Common/fmt.h b/swCommonLib/Common/fmt.h index e1a51e37..f895ac3d 100644 --- a/swCommonLib/Common/fmt.h +++ b/swCommonLib/Common/fmt.h @@ -11,4 +11,5 @@ #define FMT_UNICODE 0 #include "swCommonLib/External/fmt/format.h" +#include "swCommonLib/External/fmt/chrono.h" diff --git a/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj b/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj index e623f982..4ae54f45 100644 --- a/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj +++ b/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj @@ -24,6 +24,7 @@ + @@ -57,6 +58,7 @@ + diff --git a/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj.filters b/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj.filters index 9b6425b7..bc82fd11 100644 --- a/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj.filters +++ b/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj.filters @@ -84,6 +84,9 @@ Common\Converters + + Common\Logging + @@ -245,5 +248,8 @@ Common\Buffers + + Common\Logging + \ No newline at end of file diff --git a/swGUI/Core/Controls/TextualControls/TextBlock.cpp b/swGUI/Core/Controls/TextualControls/TextBlock.cpp index f01ade3b..beaf9163 100644 --- a/swGUI/Core/Controls/TextualControls/TextBlock.cpp +++ b/swGUI/Core/Controls/TextualControls/TextBlock.cpp @@ -54,7 +54,10 @@ ReturnResult TextBlock::UpdateDrawingResources( ResourceManagerAPI& api, Shad auto font = api.Load< FontAsset >( "$(FontAssets)/arial.ttf", &init ); ReturnIfInvalid( font ); - SetGeometry( std::make_shared< TextGeometry >( font.Get() ) ); + auto geometry = std::make_shared< TextGeometry >( font.Get() ); + geometry->SetText( m_text ); + + SetGeometry( geometry ); } return Success::True; @@ -91,6 +94,15 @@ void TextBlock::SetForeground( BrushPtr pen ) // ================================ // // +void TextBlock::SetText( const std::wstring& text ) +{ + m_text = text; + if( m_drawing ) + m_drawing->GetTextGeometry()->SetText( text ); +} + +// ================================ // + void TextBlock::SetGeometry( GeometryPtr geom ) { // Create new drawing if m_drawing is nullptr or geometry changed. diff --git a/swGUI/Core/Controls/TextualControls/TextBlock.h b/swGUI/Core/Controls/TextualControls/TextBlock.h index cd4b9985..17ab7f75 100644 --- a/swGUI/Core/Controls/TextualControls/TextBlock.h +++ b/swGUI/Core/Controls/TextualControls/TextBlock.h @@ -58,6 +58,7 @@ class TextBlock : public FrameworkElement TextAlignment m_textAlignment; FontSizeType m_fontSize; + std::wstring m_text; public: @@ -85,7 +86,7 @@ class TextBlock : public FrameworkElement void SetFontWeight( FontWeight fontWeight ); void SetText( const std::wstring& text ); - std::wstring GetText() const; + std::wstring GetText() const { return m_text; } GeometryPtr GetGeometry() const { return m_drawing->GetGeometry(); } diff --git a/swGUI/Core/Media/Geometry/TextGeometry.cpp b/swGUI/Core/Media/Geometry/TextGeometry.cpp index 3c57a91b..8e0bb785 100644 --- a/swGUI/Core/Media/Geometry/TextGeometry.cpp +++ b/swGUI/Core/Media/Geometry/TextGeometry.cpp @@ -31,7 +31,7 @@ TextGeometry::TextGeometry( FontAssetPtr font ) // ================================ // -void TextGeometry::SetText( const std::wstring& text ) +void TextGeometry::SetText( const std::wstring& text ) { m_text = text; InvalidateGeometry(); diff --git a/swGUI/Core/System/GUISystem.cpp b/swGUI/Core/System/GUISystem.cpp index 33d0484e..0cbb47e3 100644 --- a/swGUI/Core/System/GUISystem.cpp +++ b/swGUI/Core/System/GUISystem.cpp @@ -5,6 +5,9 @@ */ #include "swGUI/Core/stdafx.h" +#include "swCommonLib/Common/Logging/Logger.h" +#include "swCommonLib/Common/Logging/ConsoleLogger.h" + #include "GUISystem.h" @@ -158,6 +161,9 @@ void GUISystem::CloseLogic () /**@brief Invoke this function in application entry point (main).*/ ReturnResult GUISystem::Init() { + // @todo If user changed logger, we should honour this decision and not override it. + sw::ILogger::SetLogger( std::make_unique< sw::ConsoleLogger >() ); + ReturnResult result = Success::True; result = result && Initialize(); // Initialize subsystems. diff --git a/swGUI/Core/System/Rendering/Drawings/TextDrawing.h b/swGUI/Core/System/Rendering/Drawings/TextDrawing.h index bce79040..ad9d99b4 100644 --- a/swGUI/Core/System/Rendering/Drawings/TextDrawing.h +++ b/swGUI/Core/System/Rendering/Drawings/TextDrawing.h @@ -34,7 +34,7 @@ class TextDrawing : public GeometryDrawing public: - const TextGeometryPtr& GetTextGeometry() const { return std::static_pointer_cast< TextGeometry >( GetGeometry() ); } + const TextGeometryPtr GetTextGeometry() const { return std::static_pointer_cast< TextGeometry >( GetGeometry() ); } }; diff --git a/swGUI/Core/System/Rendering/RenderingSystem.cpp b/swGUI/Core/System/Rendering/RenderingSystem.cpp index 2319f51d..c54951df 100644 --- a/swGUI/Core/System/Rendering/RenderingSystem.cpp +++ b/swGUI/Core/System/Rendering/RenderingSystem.cpp @@ -10,6 +10,7 @@ #include "RenderingHelpers.h" #include "swCommonLib/Common/Buffers/StackBuffer.h" +#include "swCommonLib/Common/Logging/Logger.h" #include "swGUI/Core/System/HostWindow.h" @@ -124,6 +125,11 @@ void RenderingSystem::SetSystemConstants ( IRenderer* renderer, const Rende void RenderingSystem::DrawVisual ( IRenderer* renderer, Visual* visual, const RenderingParams& params ) { auto result = visual->UpdateDrawingResources( m_resourceManager, &m_shaderProvider ); + if( !result.IsValid() ) + { + LOG_WARN( fmt::format( "Failed to update IDrawing resources for Visual: {}", result.GetErrorReason() ) ); + return; + } IDrawing* drawing = visual->QueryDrawing(); if( drawing ) diff --git a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj b/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj index 88448447..0018d4d1 100644 --- a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj +++ b/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj @@ -274,6 +274,9 @@ + + {9abcbab4-05b4-47c5-b5d8-f201559fd096} + {b70c60c2-29eb-4302-80ef-9d396749d545} diff --git a/swGUI/Prototypes/PrototyperGUI/Application.cpp b/swGUI/Prototypes/PrototyperGUI/Application.cpp index a7fed28b..e604ccd1 100644 --- a/swGUI/Prototypes/PrototyperGUI/Application.cpp +++ b/swGUI/Prototypes/PrototyperGUI/Application.cpp @@ -2,6 +2,7 @@ #include "swGUI/Core/Controls/Shapes/Rectangle.h" #include "swGUI/Core/Controls/Shapes/Ellipse.h" +#include "swGUI/Core/Controls/TextualControls/TextBlock.h" #include "swGUI/Core/Media/Brushes/SolidColorBrush.h" #include "swGUI/Core/Media/Brushes/LinearGradientBrush.h" @@ -63,6 +64,24 @@ void AddEllipse ( HostWindow* host, BrushPtr brush, BrushPtr stroke, float host->AddChild( std::move( ellipseControl ) ); } +// ================================ // +// +void AddText ( HostWindow* host, BrushPtr brush, BrushPtr pen, float width, float height, Position pos, const std::wstring& text ) +{ + TextBlockOPtr textBlock = TextBlockOPtr( new TextBlock() ); + + textBlock->SetBackground( brush ); + textBlock->SetForeground( pen ); + + textBlock->SetHeight( height ); + textBlock->SetWidth( width ); + + textBlock->SetOffset( pos ); + textBlock->SetText( text ); + + host->AddChild( std::move( textBlock ) ); +} + // ================================ // // @@ -120,6 +139,10 @@ void AddControls ( HostWindow* host ) stroke = std::make_shared< SolidColorBrush >( Color( 0.0, 0.0, 0.0, 1.0 ) ); AddRectangle( host, gradientBrush, stroke, 120, 768, 2, Position( 750, 0 ) ); + + auto background = std::make_shared< SolidColorBrush >( Color( 1.0, 0.0, 0.0, 1.0 ) ); + auto pen = std::make_shared< SolidColorBrush >( Color( 0.0, 1.0, 0.0, 1.0 ) ); + AddText( host, background, pen, 200, 200, Position( 100, 500 ), L"Hello World" ); } From d3ed9260f923896cce0d645a6d0c101183066835 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sun, 10 Nov 2024 15:08:26 +0100 Subject: [PATCH 30/96] Fix compilation of mocks --- swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.cpp | 4 ++-- swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.cpp b/swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.cpp index 1f297a4c..c71a4fe8 100644 --- a/swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.cpp +++ b/swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.cpp @@ -31,7 +31,7 @@ FakeGeometry::FakeGeometry( Geometry::ConstantBufferMode cbMode ) // ================================ // // -bool FakeGeometry::HitTest ( const Point& point ) +bool FakeGeometry::HitTest ( const Point& point ) const { assert( !"Implement me" ); return false; @@ -39,7 +39,7 @@ bool FakeGeometry::HitTest ( const Point& point ) // ================================ // // -bool FakeGeometry::HitTest ( const Rect& rectangle ) +bool FakeGeometry::HitTest ( const Rect& rectangle ) const { assert( !"Implement me" ); return false; diff --git a/swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.h b/swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.h index af231fca..58b0bf12 100644 --- a/swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.h +++ b/swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.h @@ -43,8 +43,8 @@ class FakeGeometry : public Geometry public: - virtual bool HitTest ( const Point& point ) override; - virtual bool HitTest ( const Rect& rectangle ) override; + virtual bool HitTest ( const Point& point ) const override; + virtual bool HitTest ( const Rect& rectangle ) const override; virtual GeometryData Generate () override; virtual BufferRange BufferData () override; From d831110b17840b1f742e62a33051ee368e0119c3 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sun, 10 Nov 2024 17:52:20 +0100 Subject: [PATCH 31/96] Fix FontLoader to handle case when Atlas arleady exists --- .../Assets/TextAsset/Loader/FontLoader.cpp | 24 ++++++++++----- .../ResourceManager/ResourceManagerAPI.cpp | 4 +++ .../ResourceManager/ResourceManagerAPI.h | 4 ++- .../Tests/TestText/TestFontLoader.cpp | 30 +++++++++++++++++++ 4 files changed, 53 insertions(+), 9 deletions(-) diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp index aeec8fa4..af00e3cd 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp @@ -101,16 +101,20 @@ LoadingResult FreeTypeLoader::Load( const LoadPath& filePath, TypeID resou FontInitData fontDesc( loadInfo->FontSize ); - fontDesc.Layout.Padding = 1; - fontDesc.Layout.Glyphs = BuildGlyphs( freeType.Get(), loadInfo->CharacterSet ).Get(); - fontDesc.Layout.Kerning = BuildKerning( freeType.Get(), loadInfo->CharacterSet ).Get(); - fontDesc.FontAtlas = RenderAtlas( freeType, atlasPath, fontDesc.Layout, context ).Get(); + try + { + fontDesc.Layout.Padding = 1; + fontDesc.Layout.Glyphs = BuildGlyphs( freeType.Get(), loadInfo->CharacterSet ).Get(); + fontDesc.Layout.Kerning = BuildKerning( freeType.Get(), loadInfo->CharacterSet ).Get(); + fontDesc.FontAtlas = RenderAtlas( freeType, atlasPath, fontDesc.Layout, context ).Get(); - auto result = context.CreateGenericAsset( fontAssetPath, loadInfo->GetAssetType(), std::move( fontDesc ) ); - if( result.IsValid() ) + auto result = context.CreateGenericAsset( fontAssetPath, loadInfo->GetAssetType(), std::move( fontDesc ) ); return LoadingResult( result.Get() ); - else - return LoadingResult( result.GetError() ); + } + catch( const RuntimeException& ex ) + { + return LoaderException::Create( "FreeTypeLoader", ex.ErrorMessage(), filePath, resourceType ); + } } // ================================ // @@ -124,6 +128,10 @@ ReturnResult FreeTypeLoader::Prefetch( const LoadPath& filePath, // Nullable< TexturePtr > FreeTypeLoader::RenderAtlas( const FreeTypeLibrary& freeType, const AssetPath& filePath, FontLayout& fontLayout, RMLoaderAPI factory ) { + auto cached = factory.GetCached< Texture >( filePath ); + if( cached ) + return cached; + auto glyphsPerRow = (u32)std::ceil( sqrt( (float)fontLayout.Glyphs.size() ) ); uint32 padding = 1; diff --git a/swGraphicAPI/ResourceManager/ResourceManagerAPI.cpp b/swGraphicAPI/ResourceManager/ResourceManagerAPI.cpp index 6431b49e..7bbe0217 100644 --- a/swGraphicAPI/ResourceManager/ResourceManagerAPI.cpp +++ b/swGraphicAPI/ResourceManager/ResourceManagerAPI.cpp @@ -24,6 +24,7 @@ ResourceManagerAPI::ResourceManagerAPI( ResourceManager* resourceManager ) // ================================ // // + ResourcePointer ResourceManagerAPI::GetGeneric ( const AssetPath& name, TypeID type ) { return m_resourceManager->GetGeneric( name, type ); @@ -31,6 +32,7 @@ ResourcePointer ResourceManagerAPI::GetGeneric // ================================ // // + ResourcePointer ResourceManagerAPI::GetCachedGeneric ( const AssetPath& name, TypeID type ) { /// @todo Call creation from cache, when caching mechanism is ready. @@ -39,6 +41,7 @@ ResourcePointer ResourceManagerAPI::GetCachedGeneric // ================================ // // + sw::Nullable< ResourcePointer > ResourceManagerAPI::LoadGeneric ( const AssetPath& assetName, const IAssetLoadInfo* desc, TypeID type ) { return m_resourceManager->LoadGeneric( assetName, desc, type ); @@ -46,6 +49,7 @@ sw::Nullable< ResourcePointer > ResourceManagerAPI::LoadGeneric ( const // ================================ // // + Nullable< ResourcePointer > ResourceManagerAPI::CreateGenericAsset ( const AssetPath& name, TypeID assetType, IAssetCreateInfo&& createInfo ) { return m_resourceManager->CreateGenericAsset( name, assetType, std::move( createInfo ) ); diff --git a/swGraphicAPI/ResourceManager/ResourceManagerAPI.h b/swGraphicAPI/ResourceManager/ResourceManagerAPI.h index 581d9863..75a160b3 100644 --- a/swGraphicAPI/ResourceManager/ResourceManagerAPI.h +++ b/swGraphicAPI/ResourceManager/ResourceManagerAPI.h @@ -64,7 +64,9 @@ class ResourceManagerAPI must be prepared for it. Don't use LoadGeneric to load assets from file that you are loading. Load Generic should be used to load - assets referenced by file, but placed in other files.*/ + assets referenced by file, but placed in other files. + + @todo This function can return nullptr if Asset won't be found. Use Nullable instead.*/ ResourcePointer GetCachedGeneric ( const AssetPath& name, TypeID type ); /**@copydoc ResourceManager::LoadGeneric*/ diff --git a/swGraphicAPI/Tests/TestText/TestFontLoader.cpp b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp index d6c426cf..c09afa2f 100644 --- a/swGraphicAPI/Tests/TestText/TestFontLoader.cpp +++ b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp @@ -5,6 +5,8 @@ @copyright File is part of Sleeping Wombat Libraries. */ +#include + #include "swCommonLib\TestUtils\CatchUtils\ExtendedMacros.h" #include "swCommonLib/Common/Converters/Convert.h" @@ -155,3 +157,31 @@ TEST_CASE( "GraphicAPI.Loaders.Font.SameFont.2Sizes", "[GraphicAPI][FontLoader][ CHECK( font.Get()->GetFontAtlas() != font2.Get()->GetFontAtlas()); } +// ================================ // +// +TEST_CASE( "GraphicAPI.Loaders.Correctness.ExitingAtlas", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) +{ + // Don't register FontCreator. Loader will create atlas, but won't be able to create FontAsset. + // This way we are able to check how loader behaves when atals exists in the second pass. + auto rm = CreateResourceManagerWithMocksAndDefaults(); + rm->RegisterLoader( std::make_shared< FreeTypeLoader >() ); + + auto pm = rm->GetPathsManager(); + pm->RegisterAlias( "$(FontAssets)", "$(TestAssets)/fonts/" ); + + auto api = ResourceManagerAPI( rm.get() ); + + FontLoaderData init( 16 ); + + auto font = api.Load< FontAsset >( "$(FontAssets)/arial.ttf", &init ); + REQUIRE_INVALID( font ); + REQUIRE( std::regex_match( font.GetErrorReason(), std::regex( ".*Asset creator.*FontAsset.*not registered.*" ) ) ); + + // Register creator so Loader will be able to create FontAsset this time, + // but it must handle existing atlas correctly. + rm->RegisterAssetCreator( FontCreator::CreateCreator() ); + + auto font2 = api.Load< FontAsset >( "$(FontAssets)/arial.ttf", &init ); + REQUIRE_IS_VALID( font2 ); +} + From 11440c6eceb05ae582ea0fd298b5ea8efa17f780 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sun, 10 Nov 2024 18:13:03 +0100 Subject: [PATCH 32/96] Fix FontLoader: attempting to load font for the second time with the same size --- .../Assets/TextAsset/Loader/FontLoader.cpp | 10 ++++--- .../Tests/TestText/TestFontLoader.cpp | 27 ++++++++++++++++++- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp index af00e3cd..a759345c 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp @@ -92,13 +92,17 @@ LoadingResult FreeTypeLoader::Load( const LoadPath& filePath, TypeID resou auto loadInfo = static_cast< const FontLoaderData* >( assetDesc ); + AssetPath atlasPath = AssetPath( filePath.GetFileTranslated(), fmt::format( "/Atlas{}", loadInfo->ResourceKey() ) ); + AssetPath fontAssetPath = AssetPath( filePath.GetFileTranslated(), loadInfo->ResourceKey() ); + + auto cached = context.GetCachedGeneric( fontAssetPath, resourceType ); + if( cached ) + return LoadingResult( cached ); + auto freeType = FreeTypeLibrary::Create(); ReturnIfInvalid( freeType ); ReturnIfInvalid( freeType.Get().CreateFace( filePath, loadInfo->FontSize ) ); - AssetPath atlasPath = AssetPath( filePath.GetFileTranslated(), fmt::format( "/Atlas{}", loadInfo->ResourceKey() ) ); - AssetPath fontAssetPath = AssetPath( filePath.GetFileTranslated(), loadInfo->ResourceKey() ); - FontInitData fontDesc( loadInfo->FontSize ); try diff --git a/swGraphicAPI/Tests/TestText/TestFontLoader.cpp b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp index c09afa2f..1ae4a732 100644 --- a/swGraphicAPI/Tests/TestText/TestFontLoader.cpp +++ b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp @@ -139,7 +139,7 @@ TEST_CASE( "GraphicAPI.Loaders.Font.Arial", "[GraphicAPI][FontLoader][FreeTypeLo // ================================ // // -TEST_CASE( "GraphicAPI.Loaders.Font.SameFont.2Sizes", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) +TEST_CASE( "GraphicAPI.Loaders.SameFont.2Sizes", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) { auto rm = CreateResourceManagerWithFonts(); auto api = ResourceManagerAPI( rm.get() ); @@ -157,6 +157,31 @@ TEST_CASE( "GraphicAPI.Loaders.Font.SameFont.2Sizes", "[GraphicAPI][FontLoader][ CHECK( font.Get()->GetFontAtlas() != font2.Get()->GetFontAtlas()); } +// ================================ // +// Single file can be used to create many different Assets. In case of fonts we can have different sizes of the same +// font loaded. ResourceManager doesn't have mechanisms for this, so FontLoader uses hack and never registers +// any font without internal path. +// The consequence is that second attempt to load asset won't fetch it from cache, but will call Loader again. +// Better mechanisms for this should be implemented in ResourceManager, but for now we must make sure that +// Loader can handle this situation correctly. +TEST_CASE( "GraphicAPI.Loaders.SameFont.SecondLoading", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) +{ + auto rm = CreateResourceManagerWithFonts(); + auto api = ResourceManagerAPI( rm.get() ); + + FontLoaderData init( 16 ); + + auto font = api.Load< FontAsset >( "$(FontAssets)/arial.ttf", &init ); + REQUIRE_IS_VALID( font ); + + FontLoaderData init2( 16 ); + + auto font2 = api.Load< FontAsset >( "$(FontAssets)/arial.ttf", &init2 ); + REQUIRE_IS_VALID( font ); + + CHECK( font.Get() == font2.Get() ); +} + // ================================ // // TEST_CASE( "GraphicAPI.Loaders.Correctness.ExitingAtlas", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) From e8546b7ac6ddde792536428511712fb86ff77251 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sun, 10 Nov 2024 18:17:02 +0100 Subject: [PATCH 33/96] TextBlock is able to load font (work in progress - shaders don't work) --- .../Controls/TextualControls/TextBlock.cpp | 5 +++-- .../Core/Controls/TextualControls/TextBlock.h | 2 +- swGUI/Core/Controls/Visual.h | 3 +-- swGUI/Core/System/GUISystem.cpp | 4 ++++ .../Core/System/Rendering/RenderingSystem.cpp | 2 +- swGUI/Prototypes/AppResources/arial.ttf | Bin 0 -> 367112 bytes 6 files changed, 10 insertions(+), 6 deletions(-) create mode 100644 swGUI/Prototypes/AppResources/arial.ttf diff --git a/swGUI/Core/Controls/TextualControls/TextBlock.cpp b/swGUI/Core/Controls/TextualControls/TextBlock.cpp index beaf9163..323ed833 100644 --- a/swGUI/Core/Controls/TextualControls/TextBlock.cpp +++ b/swGUI/Core/Controls/TextualControls/TextBlock.cpp @@ -45,19 +45,20 @@ IDrawing* TextBlock::QueryDrawing() const // ================================ // -ReturnResult TextBlock::UpdateDrawingResources( ResourceManagerAPI& api, ShaderProvider* sp ) +ReturnResult TextBlock::UpdateDrawingResources( ResourceManagerAPI& api ) { if( FontNeedsUpdate() ) { // TODO: take FontWeight and FontStyle into account FontLoaderData init( 16 ); - auto font = api.Load< FontAsset >( "$(FontAssets)/arial.ttf", &init ); + auto font = api.Load< FontAsset >( "$(Application-Dir)/arial.ttf", &init ); ReturnIfInvalid( font ); auto geometry = std::make_shared< TextGeometry >( font.Get() ); geometry->SetText( m_text ); SetGeometry( geometry ); + FontUpdated(); } return Success::True; diff --git a/swGUI/Core/Controls/TextualControls/TextBlock.h b/swGUI/Core/Controls/TextualControls/TextBlock.h index 17ab7f75..a2490a46 100644 --- a/swGUI/Core/Controls/TextualControls/TextBlock.h +++ b/swGUI/Core/Controls/TextualControls/TextBlock.h @@ -105,7 +105,7 @@ class TextBlock : public FrameworkElement virtual bool HitTest( const Point& point ) override; virtual IDrawing* QueryDrawing() const; - virtual ReturnResult UpdateDrawingResources( sw::ResourceManagerAPI& resourceManager, ShaderProvider* sp ) override; + virtual ReturnResult UpdateDrawingResources( sw::ResourceManagerAPI& resourceManager ) override; }; DEFINE_OPTR_TYPE( TextBlock ); diff --git a/swGUI/Core/Controls/Visual.h b/swGUI/Core/Controls/Visual.h index 2a358534..1717ffdd 100644 --- a/swGUI/Core/Controls/Visual.h +++ b/swGUI/Core/Controls/Visual.h @@ -18,7 +18,6 @@ namespace sw { namespace gui { -class ShaderProvider; class sw::ResourceManagerAPI; @@ -77,7 +76,7 @@ class Visual : public DependencyObject This could be avoided if all 3 parameters would be avaiable on @ref TextDrawing level, but such a solution would force repeating all parameters in TextDrawing and TextBlock and would prevent from creating higher level abstractions that use simpler bulding blocks.*/ - virtual ReturnResult UpdateDrawingResources( sw::ResourceManagerAPI& resourceManager, ShaderProvider* sp ){ return Success::True; }; + virtual ReturnResult UpdateDrawingResources( sw::ResourceManagerAPI& resourceManager ){ return Success::True; }; Position GetVisualOffset () const { return m_offset; } Size2D GetSize () const { return m_size; } diff --git a/swGUI/Core/System/GUISystem.cpp b/swGUI/Core/System/GUISystem.cpp index 0cbb47e3..1036b146 100644 --- a/swGUI/Core/System/GUISystem.cpp +++ b/swGUI/Core/System/GUISystem.cpp @@ -16,6 +16,8 @@ #include "swGraphicAPI/ResourceManager/ResourceManager.h" #include "swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.h" +#include "swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h" +#include "swGraphicAPI/Assets/TextAsset/Loader/FontAssetCreator.h" #include "swInputLibrary/InputCore/Debugging/EventCapture.h" @@ -334,6 +336,8 @@ ReturnResult GUISystem::ResourceManagerInitImpl ( ResourceManager* resourceMan // GUI needs Textures loader to work. ///< @todo What to do if user adds his own Texture loader? We must avoid conflicts between them. resourceManager->RegisterLoader( std::make_shared< SoilTextureLoader >() ); + resourceManager->RegisterLoader( std::make_shared< FreeTypeLoader >() ); + resourceManager->RegisterAssetCreator( FontCreator::CreateCreator() ); return Success::True; } diff --git a/swGUI/Core/System/Rendering/RenderingSystem.cpp b/swGUI/Core/System/Rendering/RenderingSystem.cpp index c54951df..a8def583 100644 --- a/swGUI/Core/System/Rendering/RenderingSystem.cpp +++ b/swGUI/Core/System/Rendering/RenderingSystem.cpp @@ -124,7 +124,7 @@ void RenderingSystem::SetSystemConstants ( IRenderer* renderer, const Rende // void RenderingSystem::DrawVisual ( IRenderer* renderer, Visual* visual, const RenderingParams& params ) { - auto result = visual->UpdateDrawingResources( m_resourceManager, &m_shaderProvider ); + auto result = visual->UpdateDrawingResources( m_resourceManager ); if( !result.IsValid() ) { LOG_WARN( fmt::format( "Failed to update IDrawing resources for Visual: {}", result.GetErrorReason() ) ); diff --git a/swGUI/Prototypes/AppResources/arial.ttf b/swGUI/Prototypes/AppResources/arial.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ff0815cd8c64b0a245ec780eb8d21867509155b5 GIT binary patch literal 367112 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≺9Wiv@#qpl#qL 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≪P+Tw+*$qa@!i>|Uj$m6(YG+< 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 Date: Sun, 10 Nov 2024 19:55:08 +0100 Subject: [PATCH 34/96] Add opacity shaders for text; 2 Textures can be bound to pipeline at the same time --- .../Controls/TextualControls/TextBlock.cpp | 2 + swGUI/Core/Media/Geometry/TextGeometry.cpp | 5 +- swGUI/Core/Shaders/hlsl/Brush/ImageBrush.psh | 2 +- .../hlsl/Geometry/ForwardWithOpacity.vsh | 25 ++++++ .../Shaders/hlsl/Layouts/VertexText2D.vsh | 19 ++++ swGUI/Core/Shaders/hlsl/Templates/Opacity.psh | 58 ++++++++++++ swGUI/Core/Shaders/hlsl/Templates/Opacity.vsh | 77 ++++++++++++++++ .../System/Rendering/Drawings/Drawing.cpp | 90 +++++++++++++++---- .../Core/System/Rendering/Drawings/Drawing.h | 15 +++- .../System/Rendering/Drawings/TextDrawing.cpp | 28 +++--- .../Rendering/Shading/ShaderProvider.cpp | 18 ++++ .../System/Rendering/Shading/ShaderProvider.h | 2 + .../Visual2015/CoreGUI/CoreGUI.vcxproj | 24 +++++ .../CoreGUI/CoreGUI.vcxproj.filters | 12 +++ .../Prototypes/PrototyperGUI/Application.cpp | 6 +- .../PrototyperGUI/Sizeofs/Sizeofs.cpp | 4 + 16 files changed, 343 insertions(+), 44 deletions(-) create mode 100644 swGUI/Core/Shaders/hlsl/Geometry/ForwardWithOpacity.vsh create mode 100644 swGUI/Core/Shaders/hlsl/Layouts/VertexText2D.vsh create mode 100644 swGUI/Core/Shaders/hlsl/Templates/Opacity.psh create mode 100644 swGUI/Core/Shaders/hlsl/Templates/Opacity.vsh diff --git a/swGUI/Core/Controls/TextualControls/TextBlock.cpp b/swGUI/Core/Controls/TextualControls/TextBlock.cpp index 323ed833..3abae416 100644 --- a/swGUI/Core/Controls/TextualControls/TextBlock.cpp +++ b/swGUI/Core/Controls/TextualControls/TextBlock.cpp @@ -56,6 +56,8 @@ ReturnResult TextBlock::UpdateDrawingResources( ResourceManagerAPI& api ) auto geometry = std::make_shared< TextGeometry >( font.Get() ); geometry->SetText( m_text ); + geometry->SetWidth( GetSize().x ); + geometry->SetHeight( GetSize().y ); SetGeometry( geometry ); FontUpdated(); diff --git a/swGUI/Core/Media/Geometry/TextGeometry.cpp b/swGUI/Core/Media/Geometry/TextGeometry.cpp index 8e0bb785..13bbbc80 100644 --- a/swGUI/Core/Media/Geometry/TextGeometry.cpp +++ b/swGUI/Core/Media/Geometry/TextGeometry.cpp @@ -82,6 +82,7 @@ GeometryData TextGeometry::Generate () { auto arranger = TextArranger::CreateFrom( m_font ); arranger.Bounds = Rect{ 0.0, m_width, 0.0, m_height }; + arranger.WrapText = true; auto geometry = arranger.GenerateGeometryTextured( m_text, m_font, true ); @@ -92,7 +93,7 @@ GeometryData TextGeometry::Generate () geomData.ExtendedIB = true; geomData.Topology = PrimitiveTopology::Triangles; - return std::move( geomData ); + return geomData; } // ================================ // @@ -107,7 +108,7 @@ BufferRange TextGeometry::BufferData () // filesystem::Path TextGeometry::ShaderFunctionFile () { - return "$(CoreGUI-Shader-Dir)/Geometry/ForwardAttributes.vsh"; + return "$(CoreGUI-Shader-Dir)/Geometry/ForwardWithOpacity.vsh"; } // ================================ // diff --git a/swGUI/Core/Shaders/hlsl/Brush/ImageBrush.psh b/swGUI/Core/Shaders/hlsl/Brush/ImageBrush.psh index c4ab70c8..66d0c8c8 100644 --- a/swGUI/Core/Shaders/hlsl/Brush/ImageBrush.psh +++ b/swGUI/Core/Shaders/hlsl/Brush/ImageBrush.psh @@ -14,7 +14,7 @@ cbuffer ImageBrushConsts : register( b2 ) uint Stretch; } -Texture2D image; +Texture2D image : register(t0); // ================================ // // diff --git a/swGUI/Core/Shaders/hlsl/Geometry/ForwardWithOpacity.vsh b/swGUI/Core/Shaders/hlsl/Geometry/ForwardWithOpacity.vsh new file mode 100644 index 00000000..4775f667 --- /dev/null +++ b/swGUI/Core/Shaders/hlsl/Geometry/ForwardWithOpacity.vsh @@ -0,0 +1,25 @@ + + +// ================================ // +// +float4 GeometryFunctionPos ( float4 pos, float2 maskUV, float2 tex ) +{ + return pos; +} + +// ================================ // +// +float2 GeometryFunctionAtlas ( float4 pos, float2 maskUV, float2 tex ) +{ + return maskUV; +} + +// ================================ // +// +float2 GeometryFunctionTex ( float4 pos, float2 maskUV, float2 tex ) +{ + return tex; +} + + + diff --git a/swGUI/Core/Shaders/hlsl/Layouts/VertexText2D.vsh b/swGUI/Core/Shaders/hlsl/Layouts/VertexText2D.vsh new file mode 100644 index 00000000..4b6c7453 --- /dev/null +++ b/swGUI/Core/Shaders/hlsl/Layouts/VertexText2D.vsh @@ -0,0 +1,19 @@ + + +struct InputVS +{ + float4 Pos : POSITION; + float2 Atlas : TEXCOORD; + float2 Tex : TEXCOORD; +}; + +struct OutputVS +{ + float4 Pos : SV_POSITION; +}; + +OutputVS main ( InputVS input ) +{ + OutputVS output = (OutputVS)0; + return output; +} diff --git a/swGUI/Core/Shaders/hlsl/Templates/Opacity.psh b/swGUI/Core/Shaders/hlsl/Templates/Opacity.psh new file mode 100644 index 00000000..91431d0f --- /dev/null +++ b/swGUI/Core/Shaders/hlsl/Templates/Opacity.psh @@ -0,0 +1,58 @@ + + +// ================================ // +// +struct OutputVS +{ + linear float4 Pos : SV_Position; + noperspective float2 Mask : TEXCOORD; + noperspective float2 Tex : TEXCOORD; +}; + +// ================================ // +// +cbuffer RenderingSystemConsts : register( b0 ) +{ + float2 _swViewportSize; +} + +// ================================ // +// +cbuffer VisualConsts : register( b1 ) +{ + float2 _swVisualOffset; + float2 _swVisualSize; +} + +Texture2D opacityMask : register(t1); + +// ================================ // +// +SamplerState OpacitySampler +{ + Filter = LINEAR; + AddressU = Wrap; + AddressV = Wrap; +}; + +// ================================ // +// +float2 swTransformToDirectX ( float2 tex ) +{ + float2 directxTex = tex; + directxTex.y = 1.0 - directxTex.y; + + return directxTex; +} + +#UserCode + +// ================================ // +// +float4 main ( OutputVS input ) : SV_Target +{ + float4 color = BrushFunction( input.Pos, input.Tex ); + float4 opacity = opacityMask.Sample(OpacitySampler, input.Mask); + color.z = color.z * opacity.z; + return color; +} diff --git a/swGUI/Core/Shaders/hlsl/Templates/Opacity.vsh b/swGUI/Core/Shaders/hlsl/Templates/Opacity.vsh new file mode 100644 index 00000000..cd0e2b29 --- /dev/null +++ b/swGUI/Core/Shaders/hlsl/Templates/Opacity.vsh @@ -0,0 +1,77 @@ + + +// ================================ // +// +struct InputVS +{ + float4 Pos : POSITION; + float2 Mask : TEXCOORD; + float2 Tex : TEXCOORD; +}; + +// ================================ // +// +struct OutputVS +{ + linear float4 Pos : SV_Position; + noperspective float2 Mask: TEXCOORD; + noperspective float2 Tex : TEXCOORD; +}; + +// ================================ // +// +cbuffer RenderingSystemConsts : register( b0 ) +{ + float2 _swViewportSize; +} + +// ================================ // +// +cbuffer VisualConsts : register( b1 ) +{ + float2 _swVisualOffset; + float2 _swVisualSize; +} + +#UserCode + +// ================================ // +// +float4 swTransformVertex ( float2 pos ) +{ + // GUI uses coordinates system with y-axis directed to bottom. + // We have to inverse offset for directX. + float2 offset = _swVisualOffset; + offset.y = -offset.y; + + float2 offsetedPos = pos + offset; + + // Rescale object from screen size to [-1.0, 1.0] range. + float2 halfViewportSize = _swViewportSize / 2.0f; + + float4 vertex = { 0.0, 0.0, 0.5, 1.0 }; + vertex.xy = offsetedPos / halfViewportSize; + vertex.z = 0.5; + vertex.w = 1.0; + + // Move top left corner to point [-1.0, 1.0]. + vertex.xy = vertex.xy + float2( -1.0, 1.0 ); + + return vertex; +} + + +// ================================ // +// +OutputVS main ( InputVS input ) +{ + OutputVS output = (OutputVS)0; + + output.Pos = GeometryFunctionPos(input.Pos, input.Mask, input.Tex); + output.Mask = GeometryFunctionAtlas(input.Pos, input.Mask, input.Tex); + output.Tex = GeometryFunctionTex(input.Pos, input.Mask, input.Tex); + + output.Pos = swTransformVertex( output.Pos.xy ); + + return output; +} diff --git a/swGUI/Core/System/Rendering/Drawings/Drawing.cpp b/swGUI/Core/System/Rendering/Drawings/Drawing.cpp index 6f0f909c..b287e16a 100644 --- a/swGUI/Core/System/Rendering/Drawings/Drawing.cpp +++ b/swGUI/Core/System/Rendering/Drawings/Drawing.cpp @@ -64,6 +64,14 @@ bool Drawing::UpdateBrushShader ( ShaderProvider* sp, Brush* brush ) return UpdateShaderImpl( sp, brush, m_brushData ); } +// ================================ // +// + +bool Drawing::UpdateBrushShader ( ShaderProvider* sp, Brush* brush, filesystem::Path shaderTemplate ) +{ + return UpdateShaderImpl( sp, brush, m_brushData, shaderTemplate ); +} + // ================================ // // bool Drawing::UpdateBrushTexture ( ResourceManagerAPI rm, Brush* brush ) @@ -71,6 +79,15 @@ bool Drawing::UpdateBrushTexture ( ResourceManagerAPI rm, Brush* brush ) return UpdateTextureImpl( rm, brush, m_brushData ); } +// ================================ // + +bool Drawing::UpdateBrushOpacityMask ( ResourceManagerAPI rm, TexturePtr mask ) +{ + auto prev = m_brushData.Texture[ 1 ]; + m_brushData.Texture[ 1 ] = mask; + return mask != prev; +} + // ================================ // // bool Drawing::UpdateBrushConstants ( ResourceManagerAPI rm, Brush* brush ) @@ -104,6 +121,14 @@ bool Drawing::UpdatePenShader ( ShaderProvider* sp, Brush* pen ) return UpdateShaderImpl( sp, pen, m_penData ); } +// ================================ // +// + +bool Drawing::UpdatePenShader ( ShaderProvider* sp, Brush* pen, filesystem::Path shaderTemplate ) +{ + return UpdateShaderImpl( sp, pen, m_penData, shaderTemplate ); +} + // ================================ // // bool Drawing::UpdatePenTexture ( ResourceManagerAPI rm, Brush* pen ) @@ -111,6 +136,16 @@ bool Drawing::UpdatePenTexture ( ResourceManagerAPI rm, Brush* pen ) return UpdateTextureImpl( rm, pen, m_penData ); } +// ================================ // +// + +bool Drawing::UpdatePenOpacityMask ( ResourceManagerAPI rm, TexturePtr mask ) +{ + auto prev = m_penData.Texture[ 1 ]; + m_penData.Texture[ 1 ] = mask; + return mask != prev; +} + // ================================ // // bool Drawing::UpdatePenConstants ( ResourceManagerAPI rm, Brush* pen ) @@ -141,16 +176,24 @@ bool Drawing::UpdatePenConstants ( ResourceManagerAPI rm, Brush* pen ) // bool Drawing::UpdateVertexShader ( ShaderProvider* sp, Geometry* geometry ) { - if( geometry->NeedsShaderUpdate() ) - { - auto brushFunPath = geometry->ShaderFunctionFile(); - m_geometryData.VertexShader = sp->GenerateVS( sp->GetBasicVSTemplate(), brushFunPath ); + return UpdateVertexShader( sp, geometry, sp->GetBasicVSTemplate() ); +} - geometry->ShaderUpdated(); - return true; - } +// ================================ // +// - return false; +bool Drawing::UpdateVertexShader ( ShaderProvider* sp, Geometry* geometry, filesystem::Path shaderTemplate ) +{ + if( geometry->NeedsShaderUpdate() ) + { + auto brushFunPath = geometry->ShaderFunctionFile(); + m_geometryData.VertexShader = sp->GenerateVS( shaderTemplate, brushFunPath ); + + geometry->ShaderUpdated(); + return true; + } + + return false; } // ================================ // @@ -246,18 +289,26 @@ bool Drawing::CreateAndSetLayout ( ResourceManagerAPI rm, ShaderProvider* sp // ================================ // // -bool Drawing::UpdateShaderImpl ( ShaderProvider* sp, Brush* brush, impl::BrushRenderingData& brushData ) + +bool Drawing::UpdateShaderImpl( ShaderProvider* sp, Brush* brush, impl::BrushRenderingData& brushData, filesystem::Path shaderTemplate ) { - if( brush->NeedsShaderUpdate() ) - { - auto brushFunPath = brush->ShaderFunctionFile(); - brushData.PixelShader = sp->GeneratePS( sp->GetBasicPSTemplate(), brushFunPath ); + if( brush->NeedsShaderUpdate() ) + { + auto brushFunPath = brush->ShaderFunctionFile(); + brushData.PixelShader = sp->GeneratePS( shaderTemplate, brushFunPath ); - brush->ShaderUpdated(); - return true; - } + brush->ShaderUpdated(); + return true; + } - return false; + return false; +} + +// ================================ // +// +bool Drawing::UpdateShaderImpl ( ShaderProvider* sp, Brush* brush, impl::BrushRenderingData& brushData ) +{ + return UpdateShaderImpl( sp, brush, brushData, sp->GetBasicPSTemplate() ); } // ================================ // @@ -271,7 +322,7 @@ bool Drawing::UpdateTextureImpl ( ResourceManagerAPI rm, Brush* brush, impl: // If texture was alredy loaded it will use it. ///@todo WPF supports not only textures loaded from disk, but also textures from resources ///referenced by URL. We should change this implementation in future probably. - brushData.Texture = rm.LoadTexture( textureSource ).Get(); /// @todo What in case of error? + brushData.Texture[0] = rm.LoadTexture( textureSource ).Get(); /// @todo What in case of error? brush->TextureUpdated(); return true; @@ -370,7 +421,8 @@ void Drawing::RenderImpl ( IRenderer* renderer, impl::GeometryRenderingDat setShaderCmd.PixelShader = brush.PixelShader.Ptr(); RenderingHelper::ClearTextureState( setShaderCmd ); - helper.SetTexture( setShaderCmd, brush.Texture.Ptr(), 0, (uint8)ShaderType::PixelShader ); + for( auto i = 0; i < std::size( brush.Texture ); i++ ) + helper.SetTexture( setShaderCmd, brush.Texture[ i ].Ptr(), i, (uint8)ShaderType::PixelShader ); renderer->SetShaderState( setShaderCmd ); helper.BindBuffer( brush.BrushConstants.Ptr(), 2, (uint8)ShaderType::PixelShader ); diff --git a/swGUI/Core/System/Rendering/Drawings/Drawing.h b/swGUI/Core/System/Rendering/Drawings/Drawing.h index 325c299c..de0c1367 100644 --- a/swGUI/Core/System/Rendering/Drawings/Drawing.h +++ b/swGUI/Core/System/Rendering/Drawings/Drawing.h @@ -47,12 +47,15 @@ struct GeometryRenderingData }; +const u8 NumBrushTextures = 2; + + /**@brief Represents brush using graphic API structures.*/ struct BrushRenderingData { - PixelShaderPtr PixelShader; ///< Pixel Shader. - BufferPtr BrushConstants; ///< Constant buffer bound to Pixel Shader. - TexturePtr Texture; ///< Optional texture bound to Pixel Shader. + PixelShaderPtr PixelShader; ///< Pixel Shader. + BufferPtr BrushConstants; ///< Constant buffer bound to Pixel Shader. + TexturePtr Texture[ NumBrushTextures ]; ///< Optional texture bound to Pixel Shader. }; @@ -86,14 +89,19 @@ class Drawing : public IDrawing bool DefaultRebuildResources ( ResourceManagerAPI rm, ShaderProvider* sp, Brush* brush, Brush* pen, Geometry* geometry ); bool UpdateBrushShader ( ShaderProvider* sp, Brush* brush ); + bool UpdateBrushShader ( ShaderProvider* sp, Brush* brush, filesystem::Path shaderTemplate ); bool UpdateBrushTexture ( ResourceManagerAPI rm, Brush* brush ); + bool UpdateBrushOpacityMask ( ResourceManagerAPI rm, TexturePtr mask ); bool UpdateBrushConstants ( ResourceManagerAPI rm, Brush* brush ); bool UpdatePenShader ( ShaderProvider* sp, Brush* pen ); + bool UpdatePenShader ( ShaderProvider* sp, Brush* pen, filesystem::Path shaderTemplate ); bool UpdatePenTexture ( ResourceManagerAPI rm, Brush* pen ); + bool UpdatePenOpacityMask ( ResourceManagerAPI rm, TexturePtr mask ); bool UpdatePenConstants ( ResourceManagerAPI rm, Brush* pen ); bool UpdateVertexShader ( ShaderProvider* sp, Geometry* geometry ); + bool UpdateVertexShader ( ShaderProvider* sp, Geometry* geometry, filesystem::Path shaderTemplate ); bool UpdateGeometry ( ResourceManagerAPI rm, Geometry* geometry ); bool UpdateGeometryConstants ( ResourceManagerAPI rm, Geometry* geometry ); @@ -125,6 +133,7 @@ class Drawing : public IDrawing private: + bool UpdateShaderImpl ( ShaderProvider* sp, Brush* brush, impl::BrushRenderingData& brushData, filesystem::Path shaderTemplate ); bool UpdateShaderImpl ( ShaderProvider* sp, Brush* brush, impl::BrushRenderingData& brushData ); bool UpdateTextureImpl ( ResourceManagerAPI rm, Brush* brush, impl::BrushRenderingData& brushData ); diff --git a/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp b/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp index 189fb931..b1b81d89 100644 --- a/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp +++ b/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp @@ -30,31 +30,27 @@ void TextDrawing::Render( IRenderer* renderer ) void TextDrawing::RebuildResources( ResourceManagerAPI rm, ShaderProvider* sp ) { - // TODO: Rebuild font - - - - bool result = true; - auto brush = GetBrush().get(); auto pen = GetPen().get(); auto geometry = GetGeometry().get(); // Geometry updates - result = CreateAndSetLayoutForVertexType< VertexText2D >( rm, sp, geometry ) && result; - result = UpdateVertexShader( sp, geometry ) && result; - result = UpdateGeometry( rm, geometry ) && result; - result = UpdateGeometryConstants( rm, geometry ) && result; + CreateAndSetLayoutForVertexType< VertexText2D >( rm, sp, geometry ); + UpdateVertexShader( sp, geometry, sp->GetOpacityVSTemplate() ); + UpdateGeometry( rm, geometry ); + UpdateGeometryConstants( rm, geometry ); // Brush updates - result = UpdateBrushShader( sp, brush ) && result; - result = UpdateBrushTexture( rm, brush ) && result; - result = UpdateBrushConstants( rm, brush ) && result; + UpdateBrushShader( sp, brush, sp->GetOpacityPSTemplate() ); + UpdateBrushTexture( rm, brush ); + UpdateBrushConstants( rm, brush ); + UpdateBrushOpacityMask( rm, nullptr ); // Pen updates - result = UpdatePenShader( sp, pen ) && result; - result = UpdatePenTexture( rm, pen ) && result; - result = UpdatePenConstants( rm, pen ) && result; + UpdatePenShader( sp, pen, sp->GetOpacityPSTemplate() ); + UpdatePenTexture( rm, pen ); + UpdatePenConstants( rm, pen ); + UpdatePenOpacityMask( rm, GetTextGeometry()->GetFont()->GetFontAtlas() ); } } // namespace gui diff --git a/swGUI/Core/System/Rendering/Shading/ShaderProvider.cpp b/swGUI/Core/System/Rendering/Shading/ShaderProvider.cpp index 1c223d2d..23283742 100644 --- a/swGUI/Core/System/Rendering/Shading/ShaderProvider.cpp +++ b/swGUI/Core/System/Rendering/Shading/ShaderProvider.cpp @@ -23,6 +23,8 @@ namespace impl { const filesystem::Path gBasicPSTemplatePath = "$(CoreGUI-Shader-Dir)/Templates/Basic.psh"; const filesystem::Path gBasicVSTemplatePath = "$(CoreGUI-Shader-Dir)/Templates/Basic.vsh"; + const filesystem::Path gOpacityPSTemplatePath = "$(CoreGUI-Shader-Dir)/Templates/Opacity.psh"; + const filesystem::Path gOpacityVSTemplatePath = "$(CoreGUI-Shader-Dir)/Templates/Opacity.vsh"; } @@ -47,6 +49,22 @@ const filesystem::Path& ShaderProvider::GetBasicVSTemplate () const return impl::gBasicVSTemplatePath; } +// ================================ // +// + +const filesystem::Path& ShaderProvider::GetOpacityPSTemplate() const +{ + return impl::gOpacityPSTemplatePath; +} + +// ================================ // +// + +const filesystem::Path& ShaderProvider::GetOpacityVSTemplate() const +{ + return impl::gOpacityVSTemplatePath; +} + // ================================ // // At this moment PixelShader and VertexShader generation works the same, // so we can use common function. diff --git a/swGUI/Core/System/Rendering/Shading/ShaderProvider.h b/swGUI/Core/System/Rendering/Shading/ShaderProvider.h index 7e4fcd9c..638b8ce1 100644 --- a/swGUI/Core/System/Rendering/Shading/ShaderProvider.h +++ b/swGUI/Core/System/Rendering/Shading/ShaderProvider.h @@ -39,6 +39,8 @@ class ShaderProvider const filesystem::Path& GetBasicPSTemplate () const; const filesystem::Path& GetBasicVSTemplate () const; + const filesystem::Path& GetOpacityPSTemplate () const; + const filesystem::Path& GetOpacityVSTemplate () const; public: diff --git a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj b/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj index 0018d4d1..4ecba214 100644 --- a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj +++ b/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj @@ -328,6 +328,12 @@ true true + + true + true + true + true + true Document @@ -335,6 +341,12 @@ true true + + true + true + true + true + true Document @@ -349,6 +361,18 @@ true true + + true + true + true + true + + + true + true + true + true + diff --git a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj.filters b/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj.filters index 5a4f73a6..1692d21b 100644 --- a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj.filters +++ b/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj.filters @@ -540,5 +540,17 @@ Core\Shaders\hlsl\Brush + + Core\Shaders\hlsl\Layouts + + + Core\Shaders\hlsl\Geometry + + + Core\Shaders\hlsl\Templates + + + Core\Shaders\hlsl\Templates + \ No newline at end of file diff --git a/swGUI/Prototypes/PrototyperGUI/Application.cpp b/swGUI/Prototypes/PrototyperGUI/Application.cpp index e604ccd1..f5e749bf 100644 --- a/swGUI/Prototypes/PrototyperGUI/Application.cpp +++ b/swGUI/Prototypes/PrototyperGUI/Application.cpp @@ -140,9 +140,9 @@ void AddControls ( HostWindow* host ) AddRectangle( host, gradientBrush, stroke, 120, 768, 2, Position( 750, 0 ) ); - auto background = std::make_shared< SolidColorBrush >( Color( 1.0, 0.0, 0.0, 1.0 ) ); - auto pen = std::make_shared< SolidColorBrush >( Color( 0.0, 1.0, 0.0, 1.0 ) ); - AddText( host, background, pen, 200, 200, Position( 100, 500 ), L"Hello World" ); + //auto background = std::make_shared< SolidColorBrush >( Color( 1.0, 1.0, 1.0, 1.0 ) ); + // auto pen = std::make_shared< SolidColorBrush >( Color( 1.0, 1.0, 1.0, 1.0 ) ); + // AddText( host, background, pen, 200, 200, Position( 100, 500 ), L"Hello World" ); } diff --git a/swGUI/Prototypes/PrototyperGUI/Sizeofs/Sizeofs.cpp b/swGUI/Prototypes/PrototyperGUI/Sizeofs/Sizeofs.cpp index bf6eaea4..2895e663 100644 --- a/swGUI/Prototypes/PrototyperGUI/Sizeofs/Sizeofs.cpp +++ b/swGUI/Prototypes/PrototyperGUI/Sizeofs/Sizeofs.cpp @@ -15,10 +15,12 @@ #include "swGUI/Core/System/GUISystem.h" #include "swGUI/Core/Controls/UIElement.h" +#include "swGUI/Core/Controls/FrameworkElement.h" #include "swGUI/Core/Controls/Visual.h" #include "swGUI/Core/Controls/Shapes/Rectangle.h" #include "swGUI/Core/Controls/Shapes/Ellipse.h" +#include "swGUI/Core/Controls/TextualControls/TextBlock.h" #include "swGUI/Core/System/DataBinding/BindingInfo.h" @@ -59,6 +61,7 @@ void PrintGUIElementsSizeofs () PrintSizeofType< sw::gui::DependencyObject >( std::cout ); PrintSizeofType< sw::gui::Visual >( std::cout ); PrintSizeofType< sw::gui::UIElement >( std::cout ); + PrintSizeofType< sw::gui::FrameworkElement >( std::cout ); PrintSizeofType< sw::gui::HostWindow >( std::cout ); std::cout << std::endl; @@ -75,6 +78,7 @@ void PrintControlsSizeofs () PrintSizeofType< sw::gui::Shape >( std::cout ); PrintSizeofType< sw::gui::Rectangle >( std::cout ); PrintSizeofType< sw::gui::Ellipse >( std::cout ); + PrintSizeofType< sw::gui::TextBlock >( std::cout ); std::cout << std::endl; } From 224b6440ef78386f86c8ee866ed42bd1af820540 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sun, 10 Nov 2024 20:44:18 +0100 Subject: [PATCH 35/96] Dispaly correctly text background --- swGUI/Core/Media/Geometry/Layouts/VertexShape2D.h | 2 +- .../Shaders/hlsl/Geometry/ForwardWithOpacity.vsh | 2 +- swGUI/Core/Shaders/hlsl/Layouts/VertexText2D.vsh | 2 +- swGUI/Core/Shaders/hlsl/Templates/Opacity.psh | 2 +- swGUI/Core/Shaders/hlsl/Templates/Opacity.vsh | 6 +++--- swGUI/Core/System/Rendering/Drawings/Drawing.cpp | 2 +- swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp | 12 ++++++++++-- swGUI/Prototypes/PrototyperGUI/Application.cpp | 8 ++++---- .../Types/VertexLayouts/VertexShape2D.h | 2 +- swGraphicAPI/Assets/TextAsset/Text.inl | 2 +- 10 files changed, 24 insertions(+), 16 deletions(-) diff --git a/swGUI/Core/Media/Geometry/Layouts/VertexShape2D.h b/swGUI/Core/Media/Geometry/Layouts/VertexShape2D.h index 68855580..59d1e03e 100644 --- a/swGUI/Core/Media/Geometry/Layouts/VertexShape2D.h +++ b/swGUI/Core/Media/Geometry/Layouts/VertexShape2D.h @@ -39,8 +39,8 @@ const AssetPath& GetLayoutName< VertexShape2D > (); struct VertexText2D { DirectX::XMFLOAT2 Position; - DirectX::XMFLOAT2 AtlasCoords; DirectX::XMFLOAT2 UV; + DirectX::XMFLOAT2 AtlasCoords; }; diff --git a/swGUI/Core/Shaders/hlsl/Geometry/ForwardWithOpacity.vsh b/swGUI/Core/Shaders/hlsl/Geometry/ForwardWithOpacity.vsh index 4775f667..b4c68d31 100644 --- a/swGUI/Core/Shaders/hlsl/Geometry/ForwardWithOpacity.vsh +++ b/swGUI/Core/Shaders/hlsl/Geometry/ForwardWithOpacity.vsh @@ -9,7 +9,7 @@ float4 GeometryFunctionPos ( float4 pos, float2 maskUV, float2 tex ) // ================================ // // -float2 GeometryFunctionAtlas ( float4 pos, float2 maskUV, float2 tex ) +float2 GeometryFunctionMask ( float4 pos, float2 maskUV, float2 tex ) { return maskUV; } diff --git a/swGUI/Core/Shaders/hlsl/Layouts/VertexText2D.vsh b/swGUI/Core/Shaders/hlsl/Layouts/VertexText2D.vsh index 4b6c7453..20083fea 100644 --- a/swGUI/Core/Shaders/hlsl/Layouts/VertexText2D.vsh +++ b/swGUI/Core/Shaders/hlsl/Layouts/VertexText2D.vsh @@ -3,8 +3,8 @@ struct InputVS { float4 Pos : POSITION; + float2 Tex : TEXCOORD; float2 Atlas : TEXCOORD; - float2 Tex : TEXCOORD; }; struct OutputVS diff --git a/swGUI/Core/Shaders/hlsl/Templates/Opacity.psh b/swGUI/Core/Shaders/hlsl/Templates/Opacity.psh index 91431d0f..7e79f0b4 100644 --- a/swGUI/Core/Shaders/hlsl/Templates/Opacity.psh +++ b/swGUI/Core/Shaders/hlsl/Templates/Opacity.psh @@ -5,8 +5,8 @@ struct OutputVS { linear float4 Pos : SV_Position; - noperspective float2 Mask : TEXCOORD; noperspective float2 Tex : TEXCOORD; + noperspective float2 Mask : TEXCOORD; }; // ================================ // diff --git a/swGUI/Core/Shaders/hlsl/Templates/Opacity.vsh b/swGUI/Core/Shaders/hlsl/Templates/Opacity.vsh index cd0e2b29..eb7108b3 100644 --- a/swGUI/Core/Shaders/hlsl/Templates/Opacity.vsh +++ b/swGUI/Core/Shaders/hlsl/Templates/Opacity.vsh @@ -5,8 +5,8 @@ struct InputVS { float4 Pos : POSITION; - float2 Mask : TEXCOORD; float2 Tex : TEXCOORD; + float2 Mask : TEXCOORD; }; // ================================ // @@ -14,8 +14,8 @@ struct InputVS struct OutputVS { linear float4 Pos : SV_Position; - noperspective float2 Mask: TEXCOORD; noperspective float2 Tex : TEXCOORD; + noperspective float2 Mask: TEXCOORD; }; // ================================ // @@ -68,7 +68,7 @@ OutputVS main ( InputVS input ) OutputVS output = (OutputVS)0; output.Pos = GeometryFunctionPos(input.Pos, input.Mask, input.Tex); - output.Mask = GeometryFunctionAtlas(input.Pos, input.Mask, input.Tex); + output.Mask = GeometryFunctionMask(input.Pos, input.Mask, input.Tex); output.Tex = GeometryFunctionTex(input.Pos, input.Mask, input.Tex); output.Pos = swTransformVertex( output.Pos.xy ); diff --git a/swGUI/Core/System/Rendering/Drawings/Drawing.cpp b/swGUI/Core/System/Rendering/Drawings/Drawing.cpp index b287e16a..9bcdea10 100644 --- a/swGUI/Core/System/Rendering/Drawings/Drawing.cpp +++ b/swGUI/Core/System/Rendering/Drawings/Drawing.cpp @@ -218,7 +218,7 @@ bool Drawing::UpdateGeometry ( ResourceManagerAPI rm, Geometry* geometry ) if( !vertexBuffer || !indexBuffer ) { auto indexSize = data.ExtendedIB ? sizeof( Index32 ) : sizeof( Index16 ); - auto vertexSize = sizeof( VertexShape2D ); + auto vertexSize = data.VertexBuffer.GetType().get_sizeof(); vertexBuffer = rm.CreateVertexBuffer( vbName, data.VertexBuffer, (uint32)vertexSize ).Get(); /// @todo What in case of error? indexBuffer = rm.CreateIndexBuffer( ibName, data.IndexBuffer, (uint32)indexSize ).Get(); /// @todo What in case of error? diff --git a/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp b/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp index b1b81d89..79a6aae4 100644 --- a/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp +++ b/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp @@ -23,7 +23,15 @@ TextDrawing::TextDrawing( BrushPtr brush, BrushPtr pen, GeometryPtr text ) : Geo void TextDrawing::Render( IRenderer* renderer ) { // TODO: Check if it is correct for text - GeometryDrawing::Render( renderer ); + //GeometryDrawing::Render( renderer ); + + UpdateGeometryCBContent( renderer, GetGeometry().get() ); + + UpdateBrushCBContent( renderer, GetBrush().get() ); + RenderFill( renderer ); + + UpdatePenCBContent( renderer, GetPen().get() ); + RenderBorder( renderer ); } // ================================ // @@ -41,7 +49,7 @@ void TextDrawing::RebuildResources( ResourceManagerAPI rm, ShaderProv UpdateGeometryConstants( rm, geometry ); // Brush updates - UpdateBrushShader( sp, brush, sp->GetOpacityPSTemplate() ); + UpdateBrushShader( sp, brush, sp->GetBasicPSTemplate() ); UpdateBrushTexture( rm, brush ); UpdateBrushConstants( rm, brush ); UpdateBrushOpacityMask( rm, nullptr ); diff --git a/swGUI/Prototypes/PrototyperGUI/Application.cpp b/swGUI/Prototypes/PrototyperGUI/Application.cpp index f5e749bf..72688320 100644 --- a/swGUI/Prototypes/PrototyperGUI/Application.cpp +++ b/swGUI/Prototypes/PrototyperGUI/Application.cpp @@ -105,7 +105,7 @@ void AddControls ( HostWindow* host ) brush = std::make_shared< SolidColorBrush >( Color( 0.0, 0.0, 1.0, 1.0 ) ); stroke = std::make_shared< SolidColorBrush >( Color( 0.0, 0.0, 0.0, 1.0 ) ); - AddEllipse( host, stroke, brush, 100, 200, 8, Position( 200, 300 ) ); + AddEllipse( host, stroke, brush, 100, 200, 8, Position( 200, 150 ) ); auto gradientBrush = std::make_shared< LinearGradientBrush >(); gradientBrush->AddGradientStop( GradientStop( 0xFFFF0000, 0.0f ) ); @@ -140,9 +140,9 @@ void AddControls ( HostWindow* host ) AddRectangle( host, gradientBrush, stroke, 120, 768, 2, Position( 750, 0 ) ); - //auto background = std::make_shared< SolidColorBrush >( Color( 1.0, 1.0, 1.0, 1.0 ) ); - // auto pen = std::make_shared< SolidColorBrush >( Color( 1.0, 1.0, 1.0, 1.0 ) ); - // AddText( host, background, pen, 200, 200, Position( 100, 500 ), L"Hello World" ); + auto background = std::make_shared< SolidColorBrush >( Color( 0.5, 0.5, 0.5, 1.0 ) ); + auto pen = std::make_shared< SolidColorBrush >( Color( 0.0, 1.0, 0.0, 1.0 ) ); + AddText( host, background, pen, 200, 200, Position( 50, 600 ), L"Hello World" ); } diff --git a/swGeometrics/GeometricsCore/Types/VertexLayouts/VertexShape2D.h b/swGeometrics/GeometricsCore/Types/VertexLayouts/VertexShape2D.h index dc60917e..ebd5f5fd 100644 --- a/swGeometrics/GeometricsCore/Types/VertexLayouts/VertexShape2D.h +++ b/swGeometrics/GeometricsCore/Types/VertexLayouts/VertexShape2D.h @@ -23,8 +23,8 @@ struct VertexShape2D struct VertexText2D { DirectX::XMFLOAT2 Position; - DirectX::XMFLOAT2 AtlasCoords; DirectX::XMFLOAT2 UV; + DirectX::XMFLOAT2 AtlasCoords; }; diff --git a/swGraphicAPI/Assets/TextAsset/Text.inl b/swGraphicAPI/Assets/TextAsset/Text.inl index 27d973da..82f85673 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.inl +++ b/swGraphicAPI/Assets/TextAsset/Text.inl @@ -211,7 +211,7 @@ inline void TextGeometryGenerator< VertexType, IndexType, TextAcc >::Gen while( curVertex < numVerts ) { AddTriangleCW( idxBuffer, startIdx, curVertex, curVertex + 1, curVertex + 2 ); - AddTriangleCW( idxBuffer, startIdx, curVertex + 1, curVertex + 2, curVertex + 3 ); + AddTriangleCW( idxBuffer, startIdx, curVertex + 1, curVertex + 3, curVertex + 2 ); curVertex += 4; } From f3962c3e28c90150738ba9a9630a1fe32d7ce373 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Mon, 11 Nov 2024 00:16:35 +0100 Subject: [PATCH 36/96] Add MapErr to ReturnResult --- swCommonLib/Common/Exceptions/Exception.h | 6 ++++++ swCommonLib/Common/Exceptions/Nullable.h | 14 ++++++++++++++ swCommonLib/Common/Exceptions/ResultImpl.h | 1 + .../Common/Macros/DefineFmtFormatter.h | 19 +++++++++++++++---- .../Tests/TestHelpers/TestDefineFormatter.cpp | 12 ++++++++++++ .../Tests/TestHelpers/TestNullable.cpp | 12 ++++++++++++ 6 files changed, 60 insertions(+), 4 deletions(-) diff --git a/swCommonLib/Common/Exceptions/Exception.h b/swCommonLib/Common/Exceptions/Exception.h index 033abd6d..aa0715f6 100644 --- a/swCommonLib/Common/Exceptions/Exception.h +++ b/swCommonLib/Common/Exceptions/Exception.h @@ -9,6 +9,7 @@ #include "swCommonLib/Common/TypesDefinitions.h" #include "swCommonLib/Common/RTTR.h" +#include "swCommonLib/Common/Macros/DefineFmtFormatter.h" #include #include @@ -81,3 +82,8 @@ DEFINE_PTR_TYPE( RuntimeException ) } // sw + +DEFINE_FMT_FORMATTER( sw::Exception, "{}", ErrorMessage() ); +DEFINE_FMT_FORMATTER_PTR( sw::ExceptionPtr, "{}", ErrorMessage() ); +DEFINE_FMT_FORMATTER( sw::RuntimeException, "{}", ErrorMessage() ); +DEFINE_FMT_FORMATTER_PTR( sw::RuntimeExceptionPtr, "{}", ErrorMessage() ); diff --git a/swCommonLib/Common/Exceptions/Nullable.h b/swCommonLib/Common/Exceptions/Nullable.h index 8eb42724..39b64cf9 100644 --- a/swCommonLib/Common/Exceptions/Nullable.h +++ b/swCommonLib/Common/Exceptions/Nullable.h @@ -12,6 +12,7 @@ #include #include #include +#include #include "ResultImpl.h" @@ -135,6 +136,10 @@ class Nullable< void > Otherwise it returns Exception.*/ template< typename RetType > Nullable< RetType > Ok ( RetType&& onSuccess ) const; + + /**@brief Takes lambda mapping error to different error. It allows to add context + to exception returned from called function.*/ + Nullable< void > MapErr ( const std::function< Nullable< void >( typename ErrorType ) >& mapper ); }; Nullable< void > operator&& ( const Nullable< void >& that, const Nullable< void >& second ); @@ -314,4 +319,13 @@ inline typename Nullable< void >::ErrorType Nullable< void >::GetError () const return Error; } +// ================================ // +// +inline ReturnResult Nullable< void >::MapErr( const std::function< ReturnResult( typename ErrorType ) >& mapper ) +{ + if( !IsValid() ) + return mapper( Error ); + return Success::True; +} + } // sw diff --git a/swCommonLib/Common/Exceptions/ResultImpl.h b/swCommonLib/Common/Exceptions/ResultImpl.h index f2b0cf19..8727d010 100644 --- a/swCommonLib/Common/Exceptions/ResultImpl.h +++ b/swCommonLib/Common/Exceptions/ResultImpl.h @@ -112,6 +112,7 @@ class ResultBase ContentType&& Get () &&; operator ContentType&& () && = delete; + }; diff --git a/swCommonLib/Common/Macros/DefineFmtFormatter.h b/swCommonLib/Common/Macros/DefineFmtFormatter.h index 8310197d..1ae3d954 100644 --- a/swCommonLib/Common/Macros/DefineFmtFormatter.h +++ b/swCommonLib/Common/Macros/DefineFmtFormatter.h @@ -13,11 +13,10 @@ #define MAKE_STR( x ) _MAKE_STR( x ) #define _APPEND_INST( member ) d.member +#define _APPEND_POINTER( member ) d->member -/**@brief Defines formatter for fmt library. -Use this macro outside namespace.*/ -#define DEFINE_FMT_FORMATTER( ClassType, FormatString, ... ) \ +#define _DEFINE_FMT_FORMATTER( ClassType, APPEND_FUN, FormatString, ... ) \ template<> \ struct ::fmt::formatter< ClassType > \ { \ @@ -26,10 +25,22 @@ struct ::fmt::formatter< ClassType > \ \ template< typename FormatContext > \ auto format( const ClassType& d, FormatContext& ctx ) const { \ - return format_to( ctx.out(), FormatString, FOR_EACH( _APPEND_INST ,__VA_ARGS__ ) ); \ + return format_to( ctx.out(), FormatString, FOR_EACH( APPEND_FUN ,__VA_ARGS__ ) ); \ } \ }; +/**@brief Defines formatter for fmt library. +Use this macro outside namespace.*/ +#define DEFINE_FMT_FORMATTER( ClassType, FormatString, ... ) \ +_DEFINE_FMT_FORMATTER( ClassType, _APPEND_INST, FormatString, __VA_ARGS__ ) + +/**@brief Defines formatter for fmt library using pointer to type. +Use this macro outside namespace.*/ +#define DEFINE_FMT_FORMATTER_PTR( ClassType, FormatString, ... ) \ +_DEFINE_FMT_FORMATTER( ClassType, _APPEND_POINTER, FormatString, __VA_ARGS__ ) + + + #define _FORMAT_STRING_STRUCT_ENTRY( member ) member={} diff --git a/swCommonLib/Tests/TestHelpers/TestDefineFormatter.cpp b/swCommonLib/Tests/TestHelpers/TestDefineFormatter.cpp index 0ce137b1..e50c321a 100644 --- a/swCommonLib/Tests/TestHelpers/TestDefineFormatter.cpp +++ b/swCommonLib/Tests/TestHelpers/TestDefineFormatter.cpp @@ -29,7 +29,10 @@ struct Test1 // std::string ToString () const { return str; } }; + DEFINE_FMT_FORMATTER( Test1, "{}", ToString() ); +DEFINE_PTR_TYPE( Test1 ) +DEFINE_FMT_FORMATTER_PTR( Test1Ptr, "{}", ToString() ); // ================================ // @@ -68,6 +71,15 @@ TEST_CASE( "Common.Helpers.Macros.DEFINE_FMT_FORMATTER.UseMemberFunction", "[Ver CHECK( fmt::format( "{}", test ) == "Test passed" ); } +// ================================ // +// +TEST_CASE( "Common.Helpers.Macros.DEFINE_FMT_FORMATTER_PTR.UseMemberFunction", "[Version]" ) +{ + Test1 test = { "Test passed" }; + auto testPtr = std::make_shared< Test1 >( test ); + CHECK( fmt::format( "{}", testPtr ) == "Test passed" ); +} + // ================================ // // TEST_CASE( "Common.Helpers.Macros.DEFINE_FMT_FORMATTER.UseMember", "[Version]" ) diff --git a/swCommonLib/Tests/TestHelpers/TestNullable.cpp b/swCommonLib/Tests/TestHelpers/TestNullable.cpp index 4f6c9a82..c41144d9 100644 --- a/swCommonLib/Tests/TestHelpers/TestNullable.cpp +++ b/swCommonLib/Tests/TestHelpers/TestNullable.cpp @@ -9,6 +9,7 @@ #include "swCommonLib/Common/Exceptions/ErrorsCollector.h" #include "swCommonLib/Common/Exceptions/ExceptionsList.h" #include "swCommonLib/Common/Exceptions/Nullable.h" +#include "swCommonLib/Common/fmt.h" #include "swCommonLib/TestUtils/TestClassHierarchy/Animals/Mammals/Dog.h" @@ -200,6 +201,17 @@ TEST_CASE( "Common.Helpers.Exceptions.Nullable.Ok.Invalid", "[Nullable]" ) CHECK( nullable.GetErrorReason() == "Something wrong..." ); } +// ================================ // +// +TEST_CASE( "Common.Helpers.Exceptions.Nullable.MapErr", "[Nullable]" ) +{ + ReturnResult invalid( "Something wrong..." ); + ReturnResult mappedErr = invalid.MapErr( []( auto e ) { return fmt::format( "Failure: {}", e ); } ); + + CHECK( mappedErr.IsValid() == false ); + CHECK( mappedErr.GetErrorReason() == "Failure: Something wrong..." ); +} + //====================================================================================// // Test Nullable impl helpers From ff06c582013aade2f6206b448ab49e7ad3e35776 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Mon, 11 Nov 2024 00:24:35 +0100 Subject: [PATCH 37/96] MapErr for Nullable --- swCommonLib/Common/Exceptions/Nullable.h | 13 ++++++++++++ .../Tests/TestHelpers/TestNullable.cpp | 20 +++++++++++++++---- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/swCommonLib/Common/Exceptions/Nullable.h b/swCommonLib/Common/Exceptions/Nullable.h index 39b64cf9..556aeef1 100644 --- a/swCommonLib/Common/Exceptions/Nullable.h +++ b/swCommonLib/Common/Exceptions/Nullable.h @@ -99,6 +99,10 @@ class Nullable : public impl::ResultBase< ContentType, ExceptionPtr > static Nullable FromError ( const std::string& reason ); static Nullable FromError (); +public: + /**@brief Takes lambda mapping error to different error. It allows to add context + to exception returned from called function.*/ + Nullable< ContentType > MapErr ( const std::function< Nullable< ContentType >( typename ErrorType ) >& mapper ); }; @@ -217,6 +221,15 @@ inline Nullable< ContentType > Nullable< ContentType >::FromError () return Nullable< ContentType >(); } +// ================================ // +// +template< typename ContentType > +inline Nullable< ContentType > Nullable< ContentType >::MapErr( const std::function< Nullable< ContentType >( typename ErrorType ) >& mapper ) +{ + if( !IsValid() ) + return mapper( Error ); + return *this; +} //====================================================================================// // Specialization for void diff --git a/swCommonLib/Tests/TestHelpers/TestNullable.cpp b/swCommonLib/Tests/TestHelpers/TestNullable.cpp index c41144d9..cda8a70d 100644 --- a/swCommonLib/Tests/TestHelpers/TestNullable.cpp +++ b/swCommonLib/Tests/TestHelpers/TestNullable.cpp @@ -164,7 +164,19 @@ TEST_CASE( "Common.Helpers.Exceptions.Nullable.Move.Exception", "[Nullable]" ) // ================================ // // -TEST_CASE( "Common.Helpers.Exceptions.Nullable.operator&&", "[Nullable]" ) +TEST_CASE( "Common.Helpers.Exceptions.Nullable.MapErr", "[Nullable]" ) +{ + Nullable< Dog* > nullableDog( "Something wrong..." ); + auto mappedErr = nullableDog.MapErr( []( auto e ) { return fmt::format( "Failure: {}", e ); } ); + + REQUIRE( mappedErr.IsValid() == false ); + CHECK( mappedErr.GetErrorReason() == "Failure: Something wrong..." ); + CHECK( mappedErr.GetError() != nullptr ); +} + +// ================================ // +// +TEST_CASE( "Common.Helpers.Exceptions.ReturnResult.operator&&", "[Nullable]" ) { ReturnResult invalid( "Something wrong..." ); ReturnResult valid = Success::True; @@ -180,7 +192,7 @@ TEST_CASE( "Common.Helpers.Exceptions.Nullable.operator&&", "[Nullable]" ) // ================================ // // -TEST_CASE( "Common.Helpers.Exceptions.Nullable.Ok.OnSuccess", "[Nullable]" ) +TEST_CASE( "Common.Helpers.Exceptions.ReturnResult.Ok.OnSuccess", "[Nullable]" ) { ReturnResult valid = Success::True; @@ -191,7 +203,7 @@ TEST_CASE( "Common.Helpers.Exceptions.Nullable.Ok.OnSuccess", "[Nullable]" ) // ================================ // // -TEST_CASE( "Common.Helpers.Exceptions.Nullable.Ok.Invalid", "[Nullable]" ) +TEST_CASE( "Common.Helpers.Exceptions.ReturnResult.Ok.Invalid", "[Nullable]" ) { ReturnResult invalid( "Something wrong..." ); @@ -203,7 +215,7 @@ TEST_CASE( "Common.Helpers.Exceptions.Nullable.Ok.Invalid", "[Nullable]" ) // ================================ // // -TEST_CASE( "Common.Helpers.Exceptions.Nullable.MapErr", "[Nullable]" ) +TEST_CASE( "Common.Helpers.Exceptions.ReturnResult.MapErr", "[Nullable]" ) { ReturnResult invalid( "Something wrong..." ); ReturnResult mappedErr = invalid.MapErr( []( auto e ) { return fmt::format( "Failure: {}", e ); } ); From 2bc6c5d3660eb4e83fa8d99f259bf4c6fa46c93d Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Mon, 11 Nov 2024 00:31:02 +0100 Subject: [PATCH 38/96] Drawing has ability to return errors instead of silently ignoring them --- .../Media/Geometry/Layouts/VertexShape2D.h | 4 +- .../System/Rendering/Drawings/Drawing.cpp | 118 ++++++++---------- .../Core/System/Rendering/Drawings/Drawing.h | 82 +++++++----- 3 files changed, 105 insertions(+), 99 deletions(-) diff --git a/swGUI/Core/Media/Geometry/Layouts/VertexShape2D.h b/swGUI/Core/Media/Geometry/Layouts/VertexShape2D.h index 59d1e03e..76598c33 100644 --- a/swGUI/Core/Media/Geometry/Layouts/VertexShape2D.h +++ b/swGUI/Core/Media/Geometry/Layouts/VertexShape2D.h @@ -47,12 +47,12 @@ struct VertexText2D // ================================ // // template<> -InputLayoutDescriptor CreateLayoutDescriptor< VertexText2D >(); +InputLayoutDescriptor CreateLayoutDescriptor< VertexText2D >(); // ================================ // // template<> -const AssetPath& GetLayoutName< VertexText2D >(); +const AssetPath& GetLayoutName< VertexText2D >(); } // gui } // sw diff --git a/swGUI/Core/System/Rendering/Drawings/Drawing.cpp b/swGUI/Core/System/Rendering/Drawings/Drawing.cpp index 9bcdea10..d787d97e 100644 --- a/swGUI/Core/System/Rendering/Drawings/Drawing.cpp +++ b/swGUI/Core/System/Rendering/Drawings/Drawing.cpp @@ -8,6 +8,7 @@ #include "Drawing.h" +#include "swCommonLib/Common/Exceptions/ErrorsCollector.h" #include "swGraphicAPI/ResourceManager/ResourceManagerAPI.h" #include "swGUI/Core/System/Rendering/Shading/ShaderProvider.h" @@ -34,32 +35,32 @@ Drawing::Drawing() // ================================ // // -bool Drawing::DefaultRebuildResources ( ResourceManagerAPI rm, ShaderProvider* sp, Brush* brush, Brush* pen, Geometry* geometry ) +ReturnResult Drawing::DefaultRebuildResources ( ResourceManagerAPI rm, ShaderProvider* sp, Brush* brush, Brush* pen, Geometry* geometry ) { - bool result = true; + ErrorsCollector results; // Geometry updates - result = CreateAndSetLayout( rm, sp, geometry ) && result; - result = UpdateVertexShader( sp, geometry ) && result; - result = UpdateGeometry( rm, geometry ) && result; - result = UpdateGeometryConstants( rm, geometry ) && result; + results.Add( CreateAndSetLayout( rm, sp, geometry ) ); + results.Add( UpdateVertexShader( sp, geometry ) ); + results.Add( UpdateGeometry( rm, geometry ) ); + results.Add( UpdateGeometryConstants( rm, geometry ) ); // Brush updates - result = UpdateBrushShader( sp, brush ) && result; - result = UpdateBrushTexture( rm, brush ) && result; - result = UpdateBrushConstants( rm, brush ) && result; + results.Add( UpdateBrushShader( sp, brush ) ); + results.Add( UpdateBrushTexture( rm, brush ) ); + results.Add( UpdateBrushConstants( rm, brush ) ); // Pen updates - result = UpdatePenShader( sp, pen ) && result; - result = UpdatePenTexture( rm, pen ) && result; - result = UpdatePenConstants( rm, pen ) && result; + results.Add( UpdatePenShader( sp, pen ) ); + results.Add( UpdatePenTexture( rm, pen ) ); + results.Add( UpdatePenConstants( rm, pen ) ); - return result; + return results; } // ================================ // // -bool Drawing::UpdateBrushShader ( ShaderProvider* sp, Brush* brush ) +ReturnResult Drawing::UpdateBrushShader ( ShaderProvider* sp, Brush* brush ) { return UpdateShaderImpl( sp, brush, m_brushData ); } @@ -67,30 +68,29 @@ bool Drawing::UpdateBrushShader ( ShaderProvider* sp, Brush* brush ) // ================================ // // -bool Drawing::UpdateBrushShader ( ShaderProvider* sp, Brush* brush, filesystem::Path shaderTemplate ) +ReturnResult Drawing::UpdateBrushShader ( ShaderProvider* sp, Brush* brush, filesystem::Path shaderTemplate ) { return UpdateShaderImpl( sp, brush, m_brushData, shaderTemplate ); } // ================================ // // -bool Drawing::UpdateBrushTexture ( ResourceManagerAPI rm, Brush* brush ) +ReturnResult Drawing::UpdateBrushTexture ( ResourceManagerAPI rm, Brush* brush ) { return UpdateTextureImpl( rm, brush, m_brushData ); } // ================================ // -bool Drawing::UpdateBrushOpacityMask ( ResourceManagerAPI rm, TexturePtr mask ) +ReturnResult Drawing::UpdateBrushOpacityMask ( ResourceManagerAPI rm, TexturePtr mask ) { - auto prev = m_brushData.Texture[ 1 ]; m_brushData.Texture[ 1 ] = mask; - return mask != prev; + return Success::True; } // ================================ // // -bool Drawing::UpdateBrushConstants ( ResourceManagerAPI rm, Brush* brush ) +ReturnResult Drawing::UpdateBrushConstants ( ResourceManagerAPI rm, Brush* brush ) { if( ( !m_brushData.BrushConstants && brush->UsesConstantBuffer() ) || brush->NeedsBufferChange() ) @@ -108,15 +108,15 @@ bool Drawing::UpdateBrushConstants ( ResourceManagerAPI rm, Brush* brush ) brush->BufferChanged(); m_brushData.BrushConstants = constantsBuffer; - return true; + return Success::True; } - return false; + return Success::True; } // ================================ // // -bool Drawing::UpdatePenShader ( ShaderProvider* sp, Brush* pen ) +ReturnResult Drawing::UpdatePenShader ( ShaderProvider* sp, Brush* pen ) { return UpdateShaderImpl( sp, pen, m_penData ); } @@ -124,14 +124,14 @@ bool Drawing::UpdatePenShader ( ShaderProvider* sp, Brush* pen ) // ================================ // // -bool Drawing::UpdatePenShader ( ShaderProvider* sp, Brush* pen, filesystem::Path shaderTemplate ) +ReturnResult Drawing::UpdatePenShader ( ShaderProvider* sp, Brush* pen, filesystem::Path shaderTemplate ) { return UpdateShaderImpl( sp, pen, m_penData, shaderTemplate ); } // ================================ // // -bool Drawing::UpdatePenTexture ( ResourceManagerAPI rm, Brush* pen ) +ReturnResult Drawing::UpdatePenTexture ( ResourceManagerAPI rm, Brush* pen ) { return UpdateTextureImpl( rm, pen, m_penData ); } @@ -139,16 +139,15 @@ bool Drawing::UpdatePenTexture ( ResourceManagerAPI rm, Brush* pen ) // ================================ // // -bool Drawing::UpdatePenOpacityMask ( ResourceManagerAPI rm, TexturePtr mask ) +ReturnResult Drawing::UpdatePenOpacityMask ( ResourceManagerAPI rm, TexturePtr mask ) { - auto prev = m_penData.Texture[ 1 ]; m_penData.Texture[ 1 ] = mask; - return mask != prev; + return Success::True; } // ================================ // // -bool Drawing::UpdatePenConstants ( ResourceManagerAPI rm, Brush* pen ) +ReturnResult Drawing::UpdatePenConstants ( ResourceManagerAPI rm, Brush* pen ) { if( ( !m_penData.BrushConstants && pen->UsesConstantBuffer() ) || pen->NeedsBufferChange() ) @@ -166,15 +165,15 @@ bool Drawing::UpdatePenConstants ( ResourceManagerAPI rm, Brush* pen ) pen->BufferChanged(); m_penData.BrushConstants = constantsBuffer; - return true; + return Success::True; } - return false; + return Success::True; } // ================================ // // -bool Drawing::UpdateVertexShader ( ShaderProvider* sp, Geometry* geometry ) +ReturnResult Drawing::UpdateVertexShader ( ShaderProvider* sp, Geometry* geometry ) { return UpdateVertexShader( sp, geometry, sp->GetBasicVSTemplate() ); } @@ -182,7 +181,7 @@ bool Drawing::UpdateVertexShader ( ShaderProvider* sp, Geometry* geometry ) // ================================ // // -bool Drawing::UpdateVertexShader ( ShaderProvider* sp, Geometry* geometry, filesystem::Path shaderTemplate ) +ReturnResult Drawing::UpdateVertexShader ( ShaderProvider* sp, Geometry* geometry, filesystem::Path shaderTemplate ) { if( geometry->NeedsShaderUpdate() ) { @@ -190,15 +189,15 @@ bool Drawing::UpdateVertexShader ( ShaderProvider* sp, Geometry* geometry, f m_geometryData.VertexShader = sp->GenerateVS( shaderTemplate, brushFunPath ); geometry->ShaderUpdated(); - return true; + return Success::True; } - return false; + return Success::True; } // ================================ // // -bool Drawing::UpdateGeometry ( ResourceManagerAPI rm, Geometry* geometry ) +ReturnResult Drawing::UpdateGeometry ( ResourceManagerAPI rm, Geometry* geometry ) { if( geometry->NeedsGeometryUpdate() ) { @@ -233,15 +232,15 @@ bool Drawing::UpdateGeometry ( ResourceManagerAPI rm, Geometry* geometry ) m_geometryData.ExtendedIB = data.ExtendedIB; geometry->GeometryUpdated(); - return true; + return Success::True; } - return false; + return Success::True; } // ================================ // // -bool Drawing::UpdateGeometryConstants ( ResourceManagerAPI rm, Geometry* geometry ) +ReturnResult Drawing::UpdateGeometryConstants ( ResourceManagerAPI rm, Geometry* geometry ) { if( !m_geometryData.GeometryConstants && geometry->UsesConstantBuffer() ) { @@ -255,30 +254,15 @@ bool Drawing::UpdateGeometryConstants ( ResourceManagerAPI rm, Geometry* geome } m_geometryData.GeometryConstants = constantsBuffer; - return true; + return Success::True; } - return false; + return Success::True; } // ================================ // // -template< typename VertexStruct > -ShaderInputLayoutPtr Drawing::CreateLayout( ResourceManagerAPI rm, ShaderProvider* sp ) -{ - auto layout = rm.GetCached< ShaderInputLayout >( GetLayoutName< VertexStruct >() ); - if( !layout ) - { - layout = rm.CreateLayout( GetLayoutName< VertexStruct >(), CreateLayoutDescriptor< VertexStruct >() ).Get(); /// @todo What in case of error? - } - - return layout; -} - - -// ================================ // -// -bool Drawing::CreateAndSetLayout ( ResourceManagerAPI rm, ShaderProvider* sp, Geometry* geometry ) +ReturnResult Drawing::CreateAndSetLayout ( ResourceManagerAPI rm, ShaderProvider* sp, Geometry* geometry ) { return CreateAndSetLayoutForVertexType< VertexShape2D >( rm, sp, geometry ); } @@ -290,7 +274,7 @@ bool Drawing::CreateAndSetLayout ( ResourceManagerAPI rm, ShaderProvider* sp // ================================ // // -bool Drawing::UpdateShaderImpl( ShaderProvider* sp, Brush* brush, impl::BrushRenderingData& brushData, filesystem::Path shaderTemplate ) +ReturnResult Drawing::UpdateShaderImpl( ShaderProvider* sp, Brush* brush, impl::BrushRenderingData& brushData, filesystem::Path shaderTemplate ) { if( brush->NeedsShaderUpdate() ) { @@ -298,22 +282,22 @@ bool Drawing::UpdateShaderImpl( ShaderProvider* sp, Brush* brush, impl::BrushR brushData.PixelShader = sp->GeneratePS( shaderTemplate, brushFunPath ); brush->ShaderUpdated(); - return true; + return Success::True; } - return false; + return Success::True; } // ================================ // // -bool Drawing::UpdateShaderImpl ( ShaderProvider* sp, Brush* brush, impl::BrushRenderingData& brushData ) +ReturnResult Drawing::UpdateShaderImpl ( ShaderProvider* sp, Brush* brush, impl::BrushRenderingData& brushData ) { return UpdateShaderImpl( sp, brush, brushData, sp->GetBasicPSTemplate() ); } // ================================ // // -bool Drawing::UpdateTextureImpl ( ResourceManagerAPI rm, Brush* brush, impl::BrushRenderingData& brushData ) +ReturnResult Drawing::UpdateTextureImpl ( ResourceManagerAPI rm, Brush* brush, impl::BrushRenderingData& brushData ) { if( brush->NeedsTextureUpdate() ) { @@ -325,10 +309,10 @@ bool Drawing::UpdateTextureImpl ( ResourceManagerAPI rm, Brush* brush, impl: brushData.Texture[0] = rm.LoadTexture( textureSource ).Get(); /// @todo What in case of error? brush->TextureUpdated(); - return true; + return Success::True; } - return false; + return Success::True; } @@ -387,7 +371,7 @@ void Drawing::RenderBorder ( IRenderer* renderer ) // ================================ // // -void Drawing::UpdateCBContentImpl ( IRenderer* renderer, Brush* brush, impl::BrushRenderingData& brushData ) +ReturnResult Drawing::UpdateCBContentImpl ( IRenderer* renderer, Brush* brush, impl::BrushRenderingData& brushData ) { if( brush->UsesConstantBuffer() ) { @@ -396,11 +380,12 @@ void Drawing::UpdateCBContentImpl ( IRenderer* renderer, Brush* brush, impl:: /// @todo Error handling } + return Success::True; } // ================================ // // -void Drawing::UpdateCBContentImpl ( IRenderer* renderer, Buffer* buffer, BufferRange bufferData ) +ReturnResult Drawing::UpdateCBContentImpl( IRenderer* renderer, Buffer* buffer, BufferRange bufferData ) { UpdateBufferCommand cmd; cmd.Buffer = buffer; @@ -408,6 +393,7 @@ void Drawing::UpdateCBContentImpl ( IRenderer* renderer, Buffer* buffer, Buff cmd.Size = (uint32)bufferData.DataSize; renderer->UpdateBuffer( cmd ); + return Success::True; } // ================================ // diff --git a/swGUI/Core/System/Rendering/Drawings/Drawing.h b/swGUI/Core/System/Rendering/Drawings/Drawing.h index de0c1367..2673b5c1 100644 --- a/swGUI/Core/System/Rendering/Drawings/Drawing.h +++ b/swGUI/Core/System/Rendering/Drawings/Drawing.h @@ -12,6 +12,7 @@ #include "swGUI/Core/System/Rendering/Shading/ShaderProvider.h" #include "swCommonLib/Common/Buffers/BufferRange.h" +#include "swCommonLib/Common/Logging/Logger.h" namespace sw { @@ -86,30 +87,30 @@ class Drawing : public IDrawing /// Derived classes should use these API functions to set rendering state. /// They shouldn't have direct access to rendering structures. ///@{ - bool DefaultRebuildResources ( ResourceManagerAPI rm, ShaderProvider* sp, Brush* brush, Brush* pen, Geometry* geometry ); - - bool UpdateBrushShader ( ShaderProvider* sp, Brush* brush ); - bool UpdateBrushShader ( ShaderProvider* sp, Brush* brush, filesystem::Path shaderTemplate ); - bool UpdateBrushTexture ( ResourceManagerAPI rm, Brush* brush ); - bool UpdateBrushOpacityMask ( ResourceManagerAPI rm, TexturePtr mask ); - bool UpdateBrushConstants ( ResourceManagerAPI rm, Brush* brush ); - - bool UpdatePenShader ( ShaderProvider* sp, Brush* pen ); - bool UpdatePenShader ( ShaderProvider* sp, Brush* pen, filesystem::Path shaderTemplate ); - bool UpdatePenTexture ( ResourceManagerAPI rm, Brush* pen ); - bool UpdatePenOpacityMask ( ResourceManagerAPI rm, TexturePtr mask ); - bool UpdatePenConstants ( ResourceManagerAPI rm, Brush* pen ); - - bool UpdateVertexShader ( ShaderProvider* sp, Geometry* geometry ); - bool UpdateVertexShader ( ShaderProvider* sp, Geometry* geometry, filesystem::Path shaderTemplate ); - bool UpdateGeometry ( ResourceManagerAPI rm, Geometry* geometry ); - bool UpdateGeometryConstants ( ResourceManagerAPI rm, Geometry* geometry ); - - bool CreateAndSetLayout ( ResourceManagerAPI rm, ShaderProvider* sp, Geometry* geometry ); + ReturnResult DefaultRebuildResources ( ResourceManagerAPI rm, ShaderProvider* sp, Brush* brush, Brush* pen, Geometry* geometry ); + + ReturnResult UpdateBrushShader ( ShaderProvider* sp, Brush* brush ); + ReturnResult UpdateBrushShader ( ShaderProvider* sp, Brush* brush, filesystem::Path shaderTemplate ); + ReturnResult UpdateBrushTexture ( ResourceManagerAPI rm, Brush* brush ); + ReturnResult UpdateBrushOpacityMask ( ResourceManagerAPI rm, TexturePtr mask ); + ReturnResult UpdateBrushConstants ( ResourceManagerAPI rm, Brush* brush ); + + ReturnResult UpdatePenShader ( ShaderProvider* sp, Brush* pen ); + ReturnResult UpdatePenShader ( ShaderProvider* sp, Brush* pen, filesystem::Path shaderTemplate ); + ReturnResult UpdatePenTexture ( ResourceManagerAPI rm, Brush* pen ); + ReturnResult UpdatePenOpacityMask ( ResourceManagerAPI rm, TexturePtr mask ); + ReturnResult UpdatePenConstants ( ResourceManagerAPI rm, Brush* pen ); + + ReturnResult UpdateVertexShader ( ShaderProvider* sp, Geometry* geometry ); + ReturnResult UpdateVertexShader ( ShaderProvider* sp, Geometry* geometry, filesystem::Path shaderTemplate ); + ReturnResult UpdateGeometry ( ResourceManagerAPI rm, Geometry* geometry ); + ReturnResult UpdateGeometryConstants ( ResourceManagerAPI rm, Geometry* geometry ); + + ReturnResult CreateAndSetLayout ( ResourceManagerAPI rm, ShaderProvider* sp, Geometry* geometry ); template< typename VertexType > - bool CreateAndSetLayoutForVertexType( ResourceManagerAPI rm, ShaderProvider* sp, Geometry* geometry ); + ReturnResult CreateAndSetLayoutForVertexType( ResourceManagerAPI rm, ShaderProvider* sp, Geometry* geometry ); template < typename VertexStruct > - ShaderInputLayoutPtr CreateLayout ( ResourceManagerAPI rm, ShaderProvider* sp ); + sw::Nullable< ShaderInputLayoutPtr > CreateLayout( ResourceManagerAPI rm, ShaderProvider* sp ); ///@} ///@name Rendering functions. @@ -133,12 +134,12 @@ class Drawing : public IDrawing private: - bool UpdateShaderImpl ( ShaderProvider* sp, Brush* brush, impl::BrushRenderingData& brushData, filesystem::Path shaderTemplate ); - bool UpdateShaderImpl ( ShaderProvider* sp, Brush* brush, impl::BrushRenderingData& brushData ); - bool UpdateTextureImpl ( ResourceManagerAPI rm, Brush* brush, impl::BrushRenderingData& brushData ); + ReturnResult UpdateShaderImpl ( ShaderProvider* sp, Brush* brush, impl::BrushRenderingData& brushData, filesystem::Path shaderTemplate ); + ReturnResult UpdateShaderImpl ( ShaderProvider* sp, Brush* brush, impl::BrushRenderingData& brushData ); + ReturnResult UpdateTextureImpl ( ResourceManagerAPI rm, Brush* brush, impl::BrushRenderingData& brushData ); - void UpdateCBContentImpl ( IRenderer* renderer, Brush* brush, impl::BrushRenderingData& brushData ); - void UpdateCBContentImpl ( IRenderer* renderer, Buffer* buffer, BufferRange bufferData ); + ReturnResult UpdateCBContentImpl ( IRenderer* renderer, Brush* brush, impl::BrushRenderingData& brushData ); + ReturnResult UpdateCBContentImpl ( IRenderer* renderer, Buffer* buffer, BufferRange bufferData ); void RenderImpl ( IRenderer* renderer, impl::GeometryRenderingData& geom, impl::BrushRenderingData& brush, uint32 start, uint32 end ); @@ -156,15 +157,34 @@ DEFINE_PTR_TYPE( Drawing ) // template < typename VertexType > -inline bool Drawing::CreateAndSetLayoutForVertexType( ResourceManagerAPI rm, ShaderProvider* sp, Geometry* geometry ) +inline ReturnResult Drawing::CreateAndSetLayoutForVertexType( ResourceManagerAPI rm, ShaderProvider* sp, + Geometry* geometry ) { if( !m_geometryData.Layout ) { - m_geometryData.Layout = CreateLayout< VertexShape2D >( rm, sp ); - return true; + auto result = CreateLayout< VertexType >( rm, sp ); + ReturnIfInvalid( result ); + + m_geometryData.Layout = result.Get(); + } + + return Success::True; +} + +// ================================ // +// + +template < typename VertexStruct > +sw::Nullable< ShaderInputLayoutPtr > Drawing::CreateLayout( ResourceManagerAPI rm, ShaderProvider* sp ) +{ + auto layout = rm.GetCached< ShaderInputLayout >( GetLayoutName< VertexStruct >() ); + if( !layout ) + { + return rm.CreateLayout( GetLayoutName< VertexStruct >(), CreateLayoutDescriptor< VertexStruct >() ) + .MapErr( []( auto e ) { return fmt::format( "Failed to create layout for vertex type: {}. {}", GetLayoutName< VertexStruct >(), e ); } ); } - return false; + return layout; } } // namespace gui From 00740bc6889b8f3e2d59538d16fee35388a86ffa Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Mon, 11 Nov 2024 00:49:00 +0100 Subject: [PATCH 39/96] Reproduce bug with failure when creating Input Layout having 2x texcoords --- .../Rendering/Drawings/GeometryDrawing.cpp | 4 ++- .../System/Rendering/Drawings/TextDrawing.cpp | 30 +++++++++++-------- .../TestCreators/TestLayoutCreator.cpp | 16 ++++++++++ 3 files changed, 37 insertions(+), 13 deletions(-) diff --git a/swGUI/Core/System/Rendering/Drawings/GeometryDrawing.cpp b/swGUI/Core/System/Rendering/Drawings/GeometryDrawing.cpp index f2ef65f4..d37e9e46 100644 --- a/swGUI/Core/System/Rendering/Drawings/GeometryDrawing.cpp +++ b/swGUI/Core/System/Rendering/Drawings/GeometryDrawing.cpp @@ -40,7 +40,9 @@ void GeometryDrawing::Render ( IRenderer* renderer ) // void GeometryDrawing::RebuildResources ( ResourceManagerAPI rm, ShaderProvider* sp ) { - DefaultRebuildResources( rm, sp, m_brush.get(), m_pen.get(), m_geometry.get() ); + auto result = DefaultRebuildResources( rm, sp, m_brush.get(), m_pen.get(), m_geometry.get() ); + if( !result.IsValid() ) + LOG_ERROR( fmt::format( "Error during rebuilding resources for geometry drawing.", result.GetError() ) ); } diff --git a/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp b/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp index 79a6aae4..c9fa2df4 100644 --- a/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp +++ b/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp @@ -8,6 +8,7 @@ #include "TextDrawing.h" #include "swGUI/Core/Media/Geometry/Layouts/VertexShape2D.h" +#include "swCommonLib/Common/Logging/Logger.h" namespace sw { @@ -38,27 +39,32 @@ void TextDrawing::Render( IRenderer* renderer ) void TextDrawing::RebuildResources( ResourceManagerAPI rm, ShaderProvider* sp ) { + ErrorsCollector results; + auto brush = GetBrush().get(); auto pen = GetPen().get(); auto geometry = GetGeometry().get(); // Geometry updates - CreateAndSetLayoutForVertexType< VertexText2D >( rm, sp, geometry ); - UpdateVertexShader( sp, geometry, sp->GetOpacityVSTemplate() ); - UpdateGeometry( rm, geometry ); - UpdateGeometryConstants( rm, geometry ); + results.Add( CreateAndSetLayoutForVertexType< VertexText2D >( rm, sp, geometry ) ); + results.Add( UpdateVertexShader( sp, geometry, sp->GetOpacityVSTemplate() ) ); + results.Add( UpdateGeometry( rm, geometry ) ); + results.Add( UpdateGeometryConstants( rm, geometry ) ); // Brush updates - UpdateBrushShader( sp, brush, sp->GetBasicPSTemplate() ); - UpdateBrushTexture( rm, brush ); - UpdateBrushConstants( rm, brush ); - UpdateBrushOpacityMask( rm, nullptr ); + results.Add( UpdateBrushShader( sp, brush, sp->GetBasicPSTemplate() ) ); + results.Add( UpdateBrushTexture( rm, brush ) ); + results.Add( UpdateBrushConstants( rm, brush ) ); + results.Add( UpdateBrushOpacityMask( rm, nullptr ) ); // Pen updates - UpdatePenShader( sp, pen, sp->GetOpacityPSTemplate() ); - UpdatePenTexture( rm, pen ); - UpdatePenConstants( rm, pen ); - UpdatePenOpacityMask( rm, GetTextGeometry()->GetFont()->GetFontAtlas() ); + results.Add( UpdatePenShader( sp, pen, sp->GetOpacityPSTemplate() ) ); + results.Add( UpdatePenTexture( rm, pen ) ); + results.Add( UpdatePenConstants( rm, pen ) ); + results.Add( UpdatePenOpacityMask( rm, GetTextGeometry()->GetFont()->GetFontAtlas() ) ); + + if( !results.IsValid() ) + LOG_ERROR( fmt::format( "Error during rebuilding resources for text drawing: {}", results.GetException() ) ); } } // namespace gui diff --git a/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestLayoutCreator.cpp b/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestLayoutCreator.cpp index ee42d5b5..b8ff0210 100644 --- a/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestLayoutCreator.cpp +++ b/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestLayoutCreator.cpp @@ -118,3 +118,19 @@ TEST_CASE( "GraphicAPI.DX11.LayoutCreator.Create.Semantic.PointSize", "[GraphicA REQUIRE( result.Get() != nullptr ); } +// ================================ // +// +TEST_CASE( "GraphicAPI.DX11.LayoutCreator.Create.Semantic.2xTexcoord", "[GraphicAPI]" ) +{ + AssetsFactory factory; + + InputLayoutDescriptor init; + init.AddEntry( AttributeSemantic::Position, ResourceFormat::RESOURCE_FORMAT_R32G32B32_FLOAT, 0 ); + init.AddEntry( AttributeSemantic::Texcoord, ResourceFormat::RESOURCE_FORMAT_R32G32_FLOAT, 12 ); + init.AddEntry( AttributeSemantic::Texcoord, ResourceFormat::RESOURCE_FORMAT_R32G32_FLOAT, 20 ); + + auto result = factory.CreateAsset( "::/Layout", TypeID::get< ShaderInputLayout >(), std::move( init ) ); + REQUIRE_IS_VALID( result ); + + REQUIRE( result.Get() != nullptr ); +} From ba8b8d591fb07aff0c9a44e2bbfa188f696ae420 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Mon, 11 Nov 2024 00:59:03 +0100 Subject: [PATCH 40/96] Use precompiled header in TestResources.DX11 --- .../TestResources/TestResources.DX11.vcxproj | 27 ++++++++------ .../TestResources.DX11.vcxproj.filters | 8 +++++ .../TestResources.DX11/TestBlendingState.cpp | 3 +- .../TestCreators/TestBlendingStateCreator.cpp | 3 +- .../TestCreators/TestBufferCreator.cpp | 3 +- .../TestDepthStencilStateCreator.cpp | 3 +- .../TestCreators/TestLayoutCreator.cpp | 4 +-- .../TestRasterizerStateCreator.cpp | 3 +- .../TestCreators/TestRenderTargetCreator.cpp | 3 +- .../TestCreators/TestShaderCreator.cpp | 3 +- .../TestCreators/TestTextureCreator.cpp | 3 +- .../TestLoaders/TestRenderTargetLoader.cpp | 1 + .../TestLoaders/TestShaderLoader.cpp | 2 +- .../Tests/TestResources.DX11/stdafx.cpp | 7 ++++ .../Tests/TestResources.DX11/stdafx.h | 36 +++++++++++++++++++ 15 files changed, 79 insertions(+), 30 deletions(-) create mode 100644 swGraphicAPI/Tests/TestResources.DX11/stdafx.cpp create mode 100644 swGraphicAPI/Tests/TestResources.DX11/stdafx.h diff --git a/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestResources/TestResources.DX11.vcxproj b/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestResources/TestResources.DX11.vcxproj index f65309b4..b1490a41 100644 --- a/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestResources/TestResources.DX11.vcxproj +++ b/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestResources/TestResources.DX11.vcxproj @@ -20,6 +20,12 @@ + + Create + Create + Create + Create + @@ -40,6 +46,9 @@ {9f71f0da-1d72-4e96-93b7-5ac2c9cb6ede} + + + {22358F79-365C-477A-B485-1746C79EF6AA} Win32Proj @@ -72,12 +81,10 @@ true Unicode - - @@ -109,11 +116,11 @@ - - + Use Level3 Disabled WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + swGraphicAPI/Tests/TestResources.DX11/stdafx.h Console @@ -122,11 +129,11 @@ - - + Use Level3 Disabled _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + swGraphicAPI/Tests/TestResources.DX11/stdafx.h Console @@ -136,12 +143,12 @@ Level3 - - + Use MaxSpeed true true WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + swGraphicAPI/Tests/TestResources.DX11/stdafx.h Console @@ -153,12 +160,12 @@ Level3 - - + Use MaxSpeed true true NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + swGraphicAPI/Tests/TestResources.DX11/stdafx.h Console diff --git a/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestResources/TestResources.DX11.vcxproj.filters b/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestResources/TestResources.DX11.vcxproj.filters index 22425fdc..36c4fabe 100644 --- a/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestResources/TestResources.DX11.vcxproj.filters +++ b/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestResources/TestResources.DX11.vcxproj.filters @@ -35,6 +35,9 @@ Tests\TestLoaders + + Tests + @@ -47,4 +50,9 @@ {f06c9516-1a7c-449c-a40b-c8ac070afd54} + + + Tests + + \ No newline at end of file diff --git a/swGraphicAPI/Tests/TestResources.DX11/TestBlendingState.cpp b/swGraphicAPI/Tests/TestResources.DX11/TestBlendingState.cpp index 6981096f..9eb6783b 100644 --- a/swGraphicAPI/Tests/TestResources.DX11/TestBlendingState.cpp +++ b/swGraphicAPI/Tests/TestResources.DX11/TestBlendingState.cpp @@ -1,3 +1,4 @@ +#include "swGraphicAPI/Tests/TestResources.DX11/stdafx.h" #include "swCommonLib/External/Catch/catch.hpp" /** @file TestBlendingState.cpp @@ -5,8 +6,6 @@ @copyright File is part of Sleeping Wombat Libraries. */ - - #include "swGraphicAPI/MockAssets/GraphicAPI.h" diff --git a/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestBlendingStateCreator.cpp b/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestBlendingStateCreator.cpp index d3177523..a63d97e8 100644 --- a/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestBlendingStateCreator.cpp +++ b/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestBlendingStateCreator.cpp @@ -1,12 +1,11 @@ +#include "swGraphicAPI/Tests/TestResources.DX11/stdafx.h" #include "swCommonLib/External/Catch/catch.hpp" - /** @file TestBlendingStateCreator.cpp @author nieznanysprawiciel @copyright File is part of Sleeping Wombat Libraries. */ - #include "swGraphicAPI/ResourceManager/AssetCreators/AssetsFactory.h" #include "swGraphicAPI/ResourceManager/AssetCreators/PipelineStates/BlendingStateCreator.h" diff --git a/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestBufferCreator.cpp b/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestBufferCreator.cpp index bc66d085..08738f7d 100644 --- a/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestBufferCreator.cpp +++ b/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestBufferCreator.cpp @@ -1,12 +1,11 @@ +#include "swGraphicAPI/Tests/TestResources.DX11/stdafx.h" #include "swCommonLib/External/Catch/catch.hpp" - /** @file TestBufferCreator.cpp @author nieznanysprawiciel @copyright File is part of Sleeping Wombat Libraries. */ - #include "swGraphicAPI/ResourceManager/AssetCreators/AssetsFactory.h" #include "swGraphicAPI/ResourceManager/AssetCreators/Buffers/BufferCreator.h" diff --git a/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestDepthStencilStateCreator.cpp b/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestDepthStencilStateCreator.cpp index 59fbdb16..53a08b82 100644 --- a/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestDepthStencilStateCreator.cpp +++ b/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestDepthStencilStateCreator.cpp @@ -1,12 +1,11 @@ +#include "swGraphicAPI/Tests/TestResources.DX11/stdafx.h" #include "swCommonLib/External/Catch/catch.hpp" - /** @file TestDepthStencilStateCreator.cpp @author nieznanysprawiciel @copyright File is part of Sleeping Wombat Libraries. */ - #include "swGraphicAPI/ResourceManager/AssetCreators/AssetsFactory.h" #include "swGraphicAPI/ResourceManager/AssetCreators/PipelineStates/DepthStencilStateCreator.h" diff --git a/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestLayoutCreator.cpp b/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestLayoutCreator.cpp index b8ff0210..7524e310 100644 --- a/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestLayoutCreator.cpp +++ b/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestLayoutCreator.cpp @@ -1,14 +1,12 @@ +#include "swGraphicAPI/Tests/TestResources.DX11/stdafx.h" #include "swCommonLib/External/Catch/catch.hpp" - /** @file TestLayoutCreator.cpp @author nieznanysprawiciel @copyright File is part of Sleeping Wombat Libraries. */ - #include "swGraphicAPI/ResourceManager/AssetCreators/AssetsFactory.h" - #include "swGraphicAPI/ResourceManager/AssetCreators/Shaders/LayoutCreator.h" #include "swGraphicAPI/Resources/Shaders/LayoutInitData.h" diff --git a/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestRasterizerStateCreator.cpp b/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestRasterizerStateCreator.cpp index 84f21ab4..7437e127 100644 --- a/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestRasterizerStateCreator.cpp +++ b/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestRasterizerStateCreator.cpp @@ -1,12 +1,11 @@ +#include "swGraphicAPI/Tests/TestResources.DX11/stdafx.h" #include "swCommonLib/External/Catch/catch.hpp" - /** @file TestRasterizerStateCreator.cpp @author nieznanysprawiciel @copyright File is part of Sleeping Wombat Libraries. */ - #include "swGraphicAPI/ResourceManager/AssetCreators/AssetsFactory.h" #include "swGraphicAPI/ResourceManager/AssetCreators/PipelineStates/RasterizerStateCreator.h" diff --git a/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestRenderTargetCreator.cpp b/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestRenderTargetCreator.cpp index ec175ed3..a81db873 100644 --- a/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestRenderTargetCreator.cpp +++ b/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestRenderTargetCreator.cpp @@ -1,12 +1,11 @@ +#include "swGraphicAPI/Tests/TestResources.DX11/stdafx.h" #include "swCommonLib/External/Catch/catch.hpp" - /** @file TestTextureCreator.cpp @author nieznanysprawiciel @copyright File is part of Sleeping Wombat Libraries. */ - #include "swGraphicAPI/ResourceManager/AssetCreators/AssetsFactory.h" #include "swGraphicAPI/ResourceManager/AssetCreators/Textures/RenderTargetCreator.h" diff --git a/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestShaderCreator.cpp b/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestShaderCreator.cpp index ebac439a..8ac7feba 100644 --- a/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestShaderCreator.cpp +++ b/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestShaderCreator.cpp @@ -1,12 +1,11 @@ +#include "swGraphicAPI/Tests/TestResources.DX11/stdafx.h" #include "swCommonLib/External/Catch/catch.hpp" - /** @file TestShaderCreator.cpp @author nieznanysprawiciel @copyright File is part of Sleeping Wombat Libraries. */ - #include "swGraphicAPI/ResourceManager/AssetCreators/AssetsFactory.h" #include "swGraphicAPI/ResourceManager/AssetCreators/Shaders/ShaderCreator.h" diff --git a/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestTextureCreator.cpp b/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestTextureCreator.cpp index 159b217f..f07aec82 100644 --- a/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestTextureCreator.cpp +++ b/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestTextureCreator.cpp @@ -1,12 +1,11 @@ +#include "swGraphicAPI/Tests/TestResources.DX11/stdafx.h" #include "swCommonLib/External/Catch/catch.hpp" - /** @file TestTextureCreator.cpp @author nieznanysprawiciel @copyright File is part of Sleeping Wombat Libraries. */ - #include "swGraphicAPI/ResourceManager/AssetCreators/AssetsFactory.h" #include "swGraphicAPI/ResourceManager/AssetCreators/Textures/TextureCreator.h" diff --git a/swGraphicAPI/Tests/TestResources.DX11/TestLoaders/TestRenderTargetLoader.cpp b/swGraphicAPI/Tests/TestResources.DX11/TestLoaders/TestRenderTargetLoader.cpp index d401fc0b..65671ed1 100644 --- a/swGraphicAPI/Tests/TestResources.DX11/TestLoaders/TestRenderTargetLoader.cpp +++ b/swGraphicAPI/Tests/TestResources.DX11/TestLoaders/TestRenderTargetLoader.cpp @@ -1,3 +1,4 @@ +#include "swGraphicAPI/Tests/TestResources.DX11/stdafx.h" #include "swCommonLib/External/Catch/catch.hpp" /** @file TestRenderTargetLoader.cpp diff --git a/swGraphicAPI/Tests/TestResources.DX11/TestLoaders/TestShaderLoader.cpp b/swGraphicAPI/Tests/TestResources.DX11/TestLoaders/TestShaderLoader.cpp index be355bf7..e39eabb8 100644 --- a/swGraphicAPI/Tests/TestResources.DX11/TestLoaders/TestShaderLoader.cpp +++ b/swGraphicAPI/Tests/TestResources.DX11/TestLoaders/TestShaderLoader.cpp @@ -1,3 +1,4 @@ +#include "swGraphicAPI/Tests/TestResources.DX11/stdafx.h" #include "swCommonLib/External/Catch/catch.hpp" /** @file TestShaderLoader.cpp @@ -6,7 +7,6 @@ */ #include "swGraphicAPI/Resources/Shaders/Exceptions/CompilationException.h" - #include "swGraphicAPI/MockAssets/GraphicAPI.h" diff --git a/swGraphicAPI/Tests/TestResources.DX11/stdafx.cpp b/swGraphicAPI/Tests/TestResources.DX11/stdafx.cpp new file mode 100644 index 00000000..29f14d40 --- /dev/null +++ b/swGraphicAPI/Tests/TestResources.DX11/stdafx.cpp @@ -0,0 +1,7 @@ +/** +@file stdafx.cpp +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include "swGraphicAPI/Tests/TestResources.DX11/stdafx.h" diff --git a/swGraphicAPI/Tests/TestResources.DX11/stdafx.h b/swGraphicAPI/Tests/TestResources.DX11/stdafx.h new file mode 100644 index 00000000..cd24e97b --- /dev/null +++ b/swGraphicAPI/Tests/TestResources.DX11/stdafx.h @@ -0,0 +1,36 @@ +/** +@file stdafx.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + + +#include "swCommonLib/Common/Buffers/BufferTyped.h" +#include "swCommonLib/TestUtils/CatchUtils/ExtendedMacros.h" +#include "swCommonLib/System/File.h" +#include "swGraphicAPI/MockAssets/Utils.h" +#include "swCommonLib/Common/Buffers/BufferTyped.h" + +#include "swGraphicAPI/Resources/MeshResources.h" +#include "swGraphicAPI/MockAssets/GraphicAPI.h" + +#include "swGraphicAPI/ResourceManager/ResourceManager.h" +#include "swGraphicAPI/ResourceManager/ResourceManagerAPI.h" + + +#include "swGraphicAPI/ResourceManager/AssetCreators/AssetsFactory.h" + +#include "swGraphicAPI/ResourceManager/AssetCreators/Textures/TextureCreator.h" +#include "swGraphicAPI/Resources/Textures/TextureInitData.h" +#include "swGraphicAPI/ResourceManager/AssetCreators/PipelineStates/RasterizerStateCreator.h" +#include "swGraphicAPI/Resources/PipelineStates/RasterizerState.h" +#include "swGraphicAPI/ResourceManager/AssetCreators/AssetsFactory.h" +#include "swGraphicAPI/ResourceManager/AssetCreators/Shaders/LayoutCreator.h" +#include "swGraphicAPI/Resources/Shaders/LayoutInitData.h" +#include "swGraphicAPI/ResourceManager/AssetCreators/Buffers/BufferCreator.h" +#include "swGraphicAPI/Resources/Buffers/BufferInitData.h" +#include "swGraphicAPI/ResourceManager/Loaders/RenderTargetLoader.h" + +#include "swGraphicAPI/Resources/Shaders/Exceptions/CompilationException.h" +#include "swGraphicAPI/ImageGenerators/CheckerboardGenerator.h" + From e6f04a3f246791579b263ffdcefb3a080d6c0094 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Mon, 11 Nov 2024 01:16:13 +0100 Subject: [PATCH 41/96] Fix problem with creating Layout with duplicated attributes semantics --- .../DX11API/DX11Resources/DX11InputLayout.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/swGraphicAPI/DX11API/DX11Resources/DX11InputLayout.cpp b/swGraphicAPI/DX11API/DX11Resources/DX11InputLayout.cpp index 741aefbd..bda7fe29 100644 --- a/swGraphicAPI/DX11API/DX11Resources/DX11InputLayout.cpp +++ b/swGraphicAPI/DX11API/DX11Resources/DX11InputLayout.cpp @@ -72,7 +72,7 @@ class DX11LayoutTranslator private: D3D11_INPUT_ELEMENT_DESC CreateRow ( const char* semanticName, ResourceFormat format, unsigned int inputSlot, unsigned int byteOffset, bool perInstance, unsigned int instanceDataStep ) const; - Size CountSemantic ( const char* semanticName ) const; + Size CountSemantic ( LayoutVec elements, const char* semanticName ) const; private: @@ -110,7 +110,11 @@ DX11LayoutTranslator::LayoutVec DX11LayoutTranslator::Translate ( const InputLa LayoutVec elements; for( auto& element : layoutDesc.GetEntries() ) + { elements.push_back( Translate( element ) ); + auto& last = elements.back(); + last.SemanticIndex = (UINT)CountSemantic( elements, last.SemanticName ) - 1; + } return elements; } @@ -163,16 +167,16 @@ D3D11_INPUT_ELEMENT_DESC DX11LayoutTranslator::CreateRow ( const char* semanti inputElement.InputSlotClass = D3D11_INPUT_CLASSIFICATION::D3D11_INPUT_PER_INSTANCE_DATA; else inputElement.InputSlotClass = D3D11_INPUT_CLASSIFICATION::D3D11_INPUT_PER_VERTEX_DATA; - inputElement.SemanticIndex = (UINT)CountSemantic( semanticName ); + inputElement.SemanticIndex = (UINT)0; // Will be updated later, because here we don't have context of all entries return inputElement; } // ================================ // // -Size DX11LayoutTranslator::CountSemantic ( const char* semanticName ) const +Size DX11LayoutTranslator::CountSemantic ( LayoutVec elements, const char* semanticName ) const { - return std::count_if( m_inputElement.begin(), m_inputElement.end(), [ semanticName ]( const D3D11_INPUT_ELEMENT_DESC& element ) + return std::count_if( elements.begin(), elements.end(), [ semanticName ]( const D3D11_INPUT_ELEMENT_DESC& element ) { return strcmp( element.SemanticName, semanticName ) == 0; } ); From af9a008e77534d302e330f5745c593ed1625250f Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Mon, 11 Nov 2024 12:55:36 +0100 Subject: [PATCH 42/96] Fix Layout tests in GUI --- swGUI/Tests/TestRenderingSystem.DX11/TestLayouts.cpp | 4 +++- swGUI/Tests/TestRenderingSystem/TestLayouts.cpp | 3 ++- swGraphicAPI/Tests/TestResources.DX11/main.cpp | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/swGUI/Tests/TestRenderingSystem.DX11/TestLayouts.cpp b/swGUI/Tests/TestRenderingSystem.DX11/TestLayouts.cpp index d69a56ee..5ca46413 100644 --- a/swGUI/Tests/TestRenderingSystem.DX11/TestLayouts.cpp +++ b/swGUI/Tests/TestRenderingSystem.DX11/TestLayouts.cpp @@ -7,6 +7,8 @@ #include "swGUI/TestFramework/Testers/Rendering/DrawingTester.h" #include "swGUI/TestFramework/Utils/Mocks/Rendering/FakeDrawing.h" +#include "swCommonLib/TestUtils/CatchUtils/ExtendedMacros.h" + using namespace sw; @@ -21,7 +23,7 @@ TEST_CASE( "GUI.Rendering.DX11.Drawing.Layout.VertexShape2D", "[GUISystem][Rende TestFramework* framework = GetGlobalTestFramework(); FakeDrawingPtr drawing = std::make_shared< FakeDrawing >(); - REQUIRE( drawing->CreateAndSetLayout( framework->GetResourceManagerAPI(), framework->GetRenderingSystem()->GetShaderProvider(), nullptr ) == true ); + REQUIRE_IS_VALID( drawing->CreateAndSetLayout( framework->GetResourceManagerAPI(), framework->GetRenderingSystem()->GetShaderProvider(), nullptr ) ); auto& renderingData = CLASS_TESTER( Drawing )::GetGeometryRenderingData( drawing.get() ); CHECK( renderingData.Layout != nullptr ); diff --git a/swGUI/Tests/TestRenderingSystem/TestLayouts.cpp b/swGUI/Tests/TestRenderingSystem/TestLayouts.cpp index 062e1989..23f49d0d 100644 --- a/swGUI/Tests/TestRenderingSystem/TestLayouts.cpp +++ b/swGUI/Tests/TestRenderingSystem/TestLayouts.cpp @@ -7,6 +7,7 @@ #include "swGUI/TestFramework/Testers/Rendering/DrawingTester.h" #include "swGUI/TestFramework/Utils/Mocks/Rendering/FakeDrawing.h" +#include "swCommonLib/TestUtils/CatchUtils/ExtendedMacros.h" using namespace sw; @@ -21,7 +22,7 @@ TEST_CASE( "GUI.Rendering.Drawing.Layout.VertexShape2D", "[GUISystem][RenderingS TestFramework framework( 0, nullptr ); framework.Init(); FakeDrawingPtr drawing = std::make_shared< FakeDrawing >(); - REQUIRE( drawing->CreateAndSetLayout( framework.GetResourceManagerAPI(), framework.GetRenderingSystem()->GetShaderProvider(), nullptr ) == true ); + REQUIRE_IS_VALID( drawing->CreateAndSetLayout( framework.GetResourceManagerAPI(), framework.GetRenderingSystem()->GetShaderProvider(), nullptr ) ); auto& renderingData = CLASS_TESTER( Drawing )::GetGeometryRenderingData( drawing.get() ); CHECK( renderingData.Layout != nullptr ); diff --git a/swGraphicAPI/Tests/TestResources.DX11/main.cpp b/swGraphicAPI/Tests/TestResources.DX11/main.cpp index 9f318699..980c0e6e 100644 --- a/swGraphicAPI/Tests/TestResources.DX11/main.cpp +++ b/swGraphicAPI/Tests/TestResources.DX11/main.cpp @@ -1,3 +1,4 @@ +#include "swGraphicAPI/Tests/TestResources.DX11/stdafx.h" #include "swGraphicAPI/MockAssets/GraphicAPI.h" Graphic& graphic = GetGraphic(); From a1c04c08a8e183d618f04eb099a4df6daa99a94b Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Mon, 11 Nov 2024 14:54:43 +0100 Subject: [PATCH 43/96] Add PerformanceCheck; Console and file output; Bind F1 and F2 to HostWindow for statistic dump --- .../Common/Profile/PerformanceCheck.cpp | 174 ++++++++++++++++++ swCommonLib/Common/Profile/PerformanceCheck.h | 146 +++++++++++++++ .../Visual2015/CommonBase/CommonBase.vcxproj | 2 + .../CommonBase/CommonBase.vcxproj.filters | 9 + swGUI/Core/System/GUISystem.cpp | 16 +- swGUI/Core/System/HostWindow.cpp | 24 ++- swGUI/Core/System/HostWindow.h | 10 +- .../Visual2015/CoreGUI/CoreGUI.vcxproj | 9 +- .../Visual2015/CoreGUI/CoreGUIConfig.props | 26 --- .../Visual2015/PrototyperConfig.props | 9 + .../Tests/TestGUISystem/TestGUISystem.vcxproj | 5 +- 11 files changed, 394 insertions(+), 36 deletions(-) create mode 100644 swCommonLib/Common/Profile/PerformanceCheck.cpp create mode 100644 swCommonLib/Common/Profile/PerformanceCheck.h delete mode 100644 swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUIConfig.props diff --git a/swCommonLib/Common/Profile/PerformanceCheck.cpp b/swCommonLib/Common/Profile/PerformanceCheck.cpp new file mode 100644 index 00000000..9b8ea850 --- /dev/null +++ b/swCommonLib/Common/Profile/PerformanceCheck.cpp @@ -0,0 +1,174 @@ +/** +@file PerformanceCheck.cpp +@brief This file is part of the graphic engine SWEngine. +*/ + +#include "PerformanceCheck.h" + +#include +#include +#include +#include +#include + +///<@todo Don't use windows.h here. Build platform specific libraries. +#include + +#undef min +#undef max +#undef CreateDirectory + +#include "swCommonLib/Common/MemoryLeaks.h" +#include "swCommonLib/System/Path.h" +#include "swCommonLib/System/Dir.h" + + +namespace sw +{ + +PerformanceCheck& GetPerformanceCheck() +{ + static PerformanceCheck performanceCheck; + return performanceCheck; +} + +const int floatPrintPrecision = 8; ///< Number of decimal places to be displayed for floats. + +/**@brief Function called at the beginning of task execution. Saves the current time. + +@param[in] index Index of the task in the m_samples array.*/ +void PerformanceCheck::StartPerformanceCheck(unsigned int index) +{ + if (index < m_samples.size()) + { + _LARGE_INTEGER currentTime; + QueryPerformanceCounter(¤tTime); + m_samples[index].LastStartTime = currentTime.QuadPart; + } +} + +/**@brief Function called at the end of task execution. Updates all statistics. + +@param[in] index Index of the task in the m_samples array.*/ +void PerformanceCheck::EndPerformanceCheck(unsigned int index) +{ + if (index < m_samples.size()) + { + _LARGE_INTEGER currentTime; + QueryPerformanceCounter(¤tTime); + + uint64 timeSpent = currentTime.QuadPart - m_samples[index].LastStartTime; + m_samples[index].WholeTime += timeSpent; + + if (timeSpent > m_samples[index].MaxTime) + m_samples[index].MaxTime = timeSpent; + if (timeSpent < m_samples[index].MinTime) + m_samples[index].MinTime = timeSpent; + + m_samples[index].NumExecutions++; + } +} + +/**@brief Registers the task name for performance measurement. + +@param[in] taskName Name of the task +@return Returns the task identifier, which can be used later to refer to the time measuring functions.*/ +unsigned int PerformanceCheck::RegisterTaskName(const char* taskName) +{ + _PerformanceData newTask; + newTask.TaskName = taskName; + newTask.MaxTime = 0; + newTask.MinTime = std::numeric_limits::max(); + newTask.NumExecutions = 0; + newTask.WholeTime = 0; + + m_samples.push_back(newTask); + return (unsigned int)(m_samples.size() - 1); +} + +void PerformanceCheck::PrintConsolePerformanceStatisticsAsync() +{ + std::future< void > printAsync = std::async( PrintConsole, m_samples ); +} + +/**@brief Asynchronously prints statistics to the specified file. + +Since the statistics are saved in a separate thread, too frequent calls to this function may cause them to overlap. + +@param[in] outputFile File to which the statistics should be written.*/ +void PerformanceCheck::PrintPerformanceStatisticsAsync(const std::string& outputFile) +{ + std::future< void > printAsync = std::async( PrintToFile, outputFile, m_samples ); +} + +/**@brief Actual printing function.*/ +void PerformanceCheck::PrintToFile(const std::string& outputFile, std::vector<_PerformanceData> data_copy) +{ + filesystem::Dir::CreateDirectory( ( filesystem::Path::WorkingDirectory() / outputFile ) ); + + std::fstream output; + output.open(outputFile.c_str(), std::fstream::out | std::fstream::app); + if (!output.good()) + return; + + Print( output, data_copy ); + + output.close(); +} + +// ================================ // + +void PerformanceCheck::PrintConsole( std::vector< _PerformanceData > data_copy ) +{ + Print( std::cout, data_copy ); +} + +// ================================ // + +void PerformanceCheck::Print( std::ostream& output, std::vector< _PerformanceData > data_copy ) +{ + LARGE_INTEGER counterFreq; + QueryPerformanceFrequency( &counterFreq ); + + const auto dataWidth = 16; + const auto recordWidth = 32; + + output << std::setw( recordWidth ) << "Performance test:"; + output << std::setw( dataWidth ) << "Average (ms)"; + output << std::setw( dataWidth ) << "Minimum (ms)"; + output << std::setw( dataWidth ) << "Maximum (ms)"; + output << std::setw( dataWidth ) << "Whole Time (ms)"; + output << std::setw( dataWidth ) << "Num executions"; + output << std::endl; + + + for (auto taskData : data_copy) + { + output.width( recordWidth ); + output << std::left; + output << taskData.TaskName; + output.width(0); + output << std::fixed; + output << std::setw(dataWidth)<< std::setprecision(floatPrintPrecision) << 1000 * taskData.WholeTime / double(taskData.NumExecutions * counterFreq.QuadPart); + output << std::setw(dataWidth) << std::setprecision(floatPrintPrecision) << 1000 * taskData.MinTime / double(counterFreq.QuadPart); + output << std::setw(dataWidth) << std::setprecision(floatPrintPrecision) << 1000 * taskData.MaxTime / double(counterFreq.QuadPart); + output << std::setw(dataWidth) << std::setprecision(floatPrintPrecision) << 1000 * taskData.WholeTime / double(counterFreq.QuadPart); + output << taskData.NumExecutions << std::endl; + } + output << std::endl; +} + +// ================================ // + +void PerformanceCheck::ClearSamples() +{ + for (auto& sample : m_samples) + { + sample.MaxTime = 0; + sample.MinTime = std::numeric_limits::max(); + sample.WholeTime = 0; + sample.NumExecutions = 0; + } +} + +} // namespace sw diff --git a/swCommonLib/Common/Profile/PerformanceCheck.h b/swCommonLib/Common/Profile/PerformanceCheck.h new file mode 100644 index 00000000..fc76f275 --- /dev/null +++ b/swCommonLib/Common/Profile/PerformanceCheck.h @@ -0,0 +1,146 @@ +#pragma once +/**@file PerformanceCheck.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +@brief Contains the declaration of the PerformanceCheck class, which is used to measure the time spent on executing selected tasks. +*/ + +#include +#include +#include "swCommonLib/Common/TypesDefinitions.h" + + + + +namespace sw +{ + + +/**@brief Structure that stores performance data for a single measured task.*/ +struct _PerformanceData +{ + uint64 LastStartTime; /// m_samples; + +public: + PerformanceCheck() = default; + ~PerformanceCheck() = default; + + void StartPerformanceCheck ( unsigned int index ); + void EndPerformanceCheck ( unsigned int index ); + void ClearSamples (); + + unsigned int RegisterTaskName ( const char* taskName ); + + void PrintConsolePerformanceStatisticsAsync (); + void PrintPerformanceStatisticsAsync ( const std::string& outputFile ); + +private: + static void PrintToFile ( const std::string& outputFile, std::vector< _PerformanceData > data_copy ); + static void PrintConsole ( std::vector<_PerformanceData> data_copy ); + static void Print ( std::ostream& out, std::vector< _PerformanceData > data_copy ); +}; + + +#ifdef PERFORMANCE_CHECK + +PerformanceCheck& GetPerformanceCheck(); + +#define REGISTER_PERFORMANCE_CHECK( name ) static unsigned int __performance_task_id ## name = GetPerformanceCheck().RegisterTaskName( # name ); + +#define START_PERFORMANCE_CHECK( name ) \ +static unsigned int __performance_task_id ## name = GetPerformanceCheck().RegisterTaskName( # name ); \ +GetPerformanceCheck().StartPerformanceCheck( __performance_task_id ## name ); + + +#define END_PERFORMANCE_CHECK( name ) GetPerformanceCheck().EndPerformanceCheck( __performance_task_id ## name ); +#define PRINT_STATISTICS( s ) GetPerformanceCheck().PrintPerformanceStatisticsAsync( s ); +#define PRINT_STATISTICS_CONSOLE() GetPerformanceCheck().PrintConsolePerformanceStatisticsAsync(); +#define PERFORMACE_CHECK_CLEAR_SAMPLES GetPerformanceCheck().ClearSamples(); + +#else + +#define START_PERFORMANCE_CHECK( x ) +#define END_PERFORMANCE_CHECK( x ) +#define REGISTER_PERFORMANCE_CHECK( x ) +#define PRINT_STATISTICS( s ) +#define PRINT_STATISTICS_CONSOLE() +#define PERFORMACE_CHECK_CLEAR_SAMPLES + +#endif + + +} // sw diff --git a/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj b/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj index 4ae54f45..3c7e7347 100644 --- a/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj +++ b/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj @@ -29,6 +29,7 @@ + @@ -75,6 +76,7 @@ + diff --git a/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj.filters b/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj.filters index bc82fd11..ec9b6418 100644 --- a/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj.filters +++ b/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj.filters @@ -40,6 +40,9 @@ {f0fcd031-f63d-4102-98a8-3ff30ae6411d} + + {3604edbf-f45e-4f1b-93b5-4a804216b273} + @@ -87,6 +90,9 @@ Common\Logging + + Common\Profile + @@ -251,5 +257,8 @@ Common\Logging + + Common\Profile + \ No newline at end of file diff --git a/swGUI/Core/System/GUISystem.cpp b/swGUI/Core/System/GUISystem.cpp index 1036b146..6efdb6bf 100644 --- a/swGUI/Core/System/GUISystem.cpp +++ b/swGUI/Core/System/GUISystem.cpp @@ -7,6 +7,7 @@ #include "swCommonLib/Common/Logging/Logger.h" #include "swCommonLib/Common/Logging/ConsoleLogger.h" +#include "swCommonLib/Common/Profile/PerformanceCheck.h" #include "GUISystem.h" @@ -25,7 +26,6 @@ #include - namespace sw { namespace gui { @@ -106,6 +106,8 @@ int GUISystem::MainLoop() @return Returns true if application should end. Otherwise returns false.*/ bool GUISystem::MainLoopCore() { + START_PERFORMANCE_CHECK( MAIN_LOOP_RUN ) + // Process native events. bool end = m_nativeGUI->MainLoop( m_guiConfig.UseBlockingMode ); if( end ) return true; @@ -118,20 +120,27 @@ bool GUISystem::MainLoopCore() OnIdle( frameTime ); RenderGUI( frameTime ); + END_PERFORMANCE_CHECK( MAIN_LOOP_RUN ) return false; } /**@brief Processes messages and passes them to focused window.*/ void GUISystem::HandleEvents ( const FrameTime& frameTime ) { + START_PERFORMANCE_CHECK( HANDLE_EVENTS ) + for( auto window : m_windows ) window->HandleInput( frameTime ); + + END_PERFORMANCE_CHECK( HANDLE_EVENTS ) } // ================================ // // void GUISystem::RenderGUI ( const FrameTime& frameTime ) { + START_PERFORMANCE_CHECK( RENDER ) + if( m_guiConfig.RedrawOnlyFocused && m_focusedWindow ) { m_renderingSystem->RenderTree( m_focusedWindow ); @@ -146,6 +155,8 @@ void GUISystem::RenderGUI ( const FrameTime& frameTime ) window->GetSwapChain()->Present( GetSyncInterval() ); } } + + END_PERFORMANCE_CHECK( RENDER ) } // ================================ // @@ -163,6 +174,8 @@ void GUISystem::CloseLogic () /**@brief Invoke this function in application entry point (main).*/ ReturnResult GUISystem::Init() { + START_PERFORMANCE_CHECK( GUI_INIT ) + // @todo If user changed logger, we should honour this decision and not override it. sw::ILogger::SetLogger( std::make_unique< sw::ConsoleLogger >() ); @@ -173,6 +186,7 @@ ReturnResult GUISystem::Init() m_clock.Start(); // Start clock as last in initialization. + END_PERFORMANCE_CHECK( GUI_INIT ) return result; } diff --git a/swGUI/Core/System/HostWindow.cpp b/swGUI/Core/System/HostWindow.cpp index 7d172ff1..4b30125c 100644 --- a/swGUI/Core/System/HostWindow.cpp +++ b/swGUI/Core/System/HostWindow.cpp @@ -9,6 +9,10 @@ #include "HostWindow.h" #include "swCommonLib/Common/Converters.h" +#include "swCommonLib/Common/Profile/PerformanceCheck.h" +#include "swCommonLib/Common/Logging/Logger.h" +#include "CommonTypes/CommonTypes.h" + #include "swGraphicAPI/Rendering/IGraphicAPIInitializer.h" #include "swGraphicAPI/ResourceManager/ResourceManager.h" @@ -16,7 +20,6 @@ #include "swInputLibrary/InputCore/Helpers/InputDispatcher.h" -#include "CommonTypes/CommonTypes.h" // Temporary @@ -29,6 +32,7 @@ RTTR_REGISTRATION rttr::registration::class_< sw::gui::HostWindow >( "sw::gui::HostWindow" ); } +static const char* PERFORMANCE_STATISTICS_FILE_PATH = "logs/performance.txt"; namespace sw { @@ -88,6 +92,24 @@ Size HostWindow::GetMemorySize () return size; } +// ================================ // + +void HostWindow::OnKeyDown ( UIElement* sender, KeyEventArgs* e ) +{ + switch( e->Key ) + { + case input::Keyboard::PhysicalKeys::KEY_F1: + PRINT_STATISTICS_CONSOLE(); + PRINT_STATISTICS( PERFORMANCE_STATISTICS_FILE_PATH ); + break; + case input::Keyboard::PhysicalKeys::KEY_F2: + PERFORMACE_CHECK_CLEAR_SAMPLES; + LOG_INFO( "Performance statistics - clearing samples." ); + default: + break; + } +} + /**@brief Removes control from GUI system.*/ void HostWindow::RemoveControl ( UIElement* control ) { diff --git a/swGUI/Core/System/HostWindow.h b/swGUI/Core/System/HostWindow.h index efd6c452..f1c37513 100644 --- a/swGUI/Core/System/HostWindow.h +++ b/swGUI/Core/System/HostWindow.h @@ -45,7 +45,7 @@ class HostWindow : public UIElement ResourceManager* m_resourceManager; ResourcePtr< RenderTarget > m_renderTarget; - ResourcePtr< SwapChain > m_swapChain; + ResourcePtr< SwapChain > m_swapChain; HostLogic m_hostLogic; @@ -62,7 +62,7 @@ class HostWindow : public UIElement const std::string& GetControlName ( const UIElement* control ) const; - ResourcePtr< RenderTarget > GetRenderTarget (); + ResourcePtr< RenderTarget > GetRenderTarget (); ResourcePtr< SwapChain > GetSwapChain (); INativeWindow* GetNativeWindow (); @@ -71,9 +71,13 @@ class HostWindow : public UIElement virtual HostWindow* GetHost () const override; public: - + ///@name HostWindow diagnostic + ///@{ Size GetMemorySize (); + /**@brief Saves performance statistics.*/ + virtual void OnKeyDown ( UIElement* sender, KeyEventArgs* e ) override; + ///@} public: ///@name GUI system interaction ///@{ diff --git a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj b/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj index 4ecba214..cd9bcc6f 100644 --- a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj +++ b/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj @@ -71,7 +71,14 @@ - + + + + + PERFORMANCE_CHECK;%(PreprocessorDefinitions) + + + Use diff --git a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUIConfig.props b/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUIConfig.props deleted file mode 100644 index 81ff9b67..00000000 --- a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUIConfig.props +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CoreGUI - $(LibDir)$(CoreGUIName)\ - $(SourceDir)$(CoreGUIName)\ - $(CoreGUIName)_$(Configuration)_$(PlatformShortName)_$(PlatformToolset) - $(BuildDir)$(CoreGUIName)_$(Configuration)_$(PlatformShortName)_$(PlatformToolset)\ - - - $(CoreGUIBuildDir) - $(CoreGUIFileName) - $(CoreGUILibDir) - - - - Use - - - - - swGUI/Core/stdafx.h - - - \ No newline at end of file diff --git a/swGUI/ProjectDir/Visual2015/PrototyperConfig.props b/swGUI/ProjectDir/Visual2015/PrototyperConfig.props index 3b541207..1143b069 100644 --- a/swGUI/ProjectDir/Visual2015/PrototyperConfig.props +++ b/swGUI/ProjectDir/Visual2015/PrototyperConfig.props @@ -17,6 +17,15 @@ + + $(WorkDir) + WindowsLocalDebugger + + + + + + $(BinaryIntermediateDir) $(BinaryFileName) diff --git a/swGUI/ProjectDir/Visual2015/Tests/TestGUISystem/TestGUISystem.vcxproj b/swGUI/ProjectDir/Visual2015/Tests/TestGUISystem/TestGUISystem.vcxproj index f3d8ac33..2b2998d6 100644 --- a/swGUI/ProjectDir/Visual2015/Tests/TestGUISystem/TestGUISystem.vcxproj +++ b/swGUI/ProjectDir/Visual2015/Tests/TestGUISystem/TestGUISystem.vcxproj @@ -57,6 +57,7 @@ + @@ -64,19 +65,15 @@ - - - - From e05f60d02614adb55ac280da26c98588c19dc596 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Mon, 11 Nov 2024 16:13:28 +0100 Subject: [PATCH 44/96] Fix problem with TextGeometry exceeding resonable buffer size --- swCommonLib/Common/Profile/PerformanceCheck.cpp | 1 + swGUI/Core/Media/Geometry/TextGeometry.cpp | 3 ++- swGUI/Core/System/GUISystem.cpp | 13 +++++++++++-- .../Utils/Mocks/Rendering/FakeDrawing.h | 1 + .../TestRenderingSystem.DX11/TestLayouts.cpp | 13 +++++++++++++ swGUI/Tests/TestRenderingSystem/TestLayouts.cpp | 16 ++++++++++++++++ 6 files changed, 44 insertions(+), 3 deletions(-) diff --git a/swCommonLib/Common/Profile/PerformanceCheck.cpp b/swCommonLib/Common/Profile/PerformanceCheck.cpp index 9b8ea850..22875db3 100644 --- a/swCommonLib/Common/Profile/PerformanceCheck.cpp +++ b/swCommonLib/Common/Profile/PerformanceCheck.cpp @@ -133,6 +133,7 @@ void PerformanceCheck::Print( std::ostream& output, std::vector< _PerformanceDat const auto dataWidth = 16; const auto recordWidth = 32; + output << std::left; output << std::setw( recordWidth ) << "Performance test:"; output << std::setw( dataWidth ) << "Average (ms)"; output << std::setw( dataWidth ) << "Minimum (ms)"; diff --git a/swGUI/Core/Media/Geometry/TextGeometry.cpp b/swGUI/Core/Media/Geometry/TextGeometry.cpp index 13bbbc80..543f7735 100644 --- a/swGUI/Core/Media/Geometry/TextGeometry.cpp +++ b/swGUI/Core/Media/Geometry/TextGeometry.cpp @@ -85,11 +85,12 @@ GeometryData TextGeometry::Generate () arranger.WrapText = true; auto geometry = arranger.GenerateGeometryTextured( m_text, m_font, true ); + auto numIndicies = geometry.Get().Indicies.ElementsCount(); GeometryData geomData( geometry.Get().Verticies.MoveToRawBuffer(), geometry.Get().Indicies.MoveToRawBuffer() ); // The roles are reversed. Fill is background and border is text. geomData.FillIdxEnd = (uint32)arranger.NumBorderIndicies(); - geomData.BorderIdxEnd = (uint32)geometry.Get().Indicies.GetSize(); + geomData.BorderIdxEnd = (uint32)numIndicies; geomData.ExtendedIB = true; geomData.Topology = PrimitiveTopology::Triangles; diff --git a/swGUI/Core/System/GUISystem.cpp b/swGUI/Core/System/GUISystem.cpp index 6efdb6bf..e8ec1ed2 100644 --- a/swGUI/Core/System/GUISystem.cpp +++ b/swGUI/Core/System/GUISystem.cpp @@ -143,17 +143,26 @@ void GUISystem::RenderGUI ( const FrameTime& frameTime ) if( m_guiConfig.RedrawOnlyFocused && m_focusedWindow ) { + START_PERFORMANCE_CHECK( RENDER_TREE ) m_renderingSystem->RenderTree( m_focusedWindow ); + END_PERFORMANCE_CHECK( RENDER_TREE ) + + START_PERFORMANCE_CHECK( SWAPCHAIN_PRESENT ) m_focusedWindow->GetSwapChain()->Present( GetSyncInterval() ); + END_PERFORMANCE_CHECK( SWAPCHAIN_PRESENT ) } if( !m_guiConfig.RedrawOnlyFocused ) { + START_PERFORMANCE_CHECK( RENDER_TREE ) for( auto window : m_windows ) - { m_renderingSystem->RenderTree( window ); + END_PERFORMANCE_CHECK( RENDER_TREE ) + + START_PERFORMANCE_CHECK( SWAPCHAIN_PRESENT ) + for( auto window : m_windows ) window->GetSwapChain()->Present( GetSyncInterval() ); - } + END_PERFORMANCE_CHECK( SWAPCHAIN_PRESENT ) } END_PERFORMANCE_CHECK( RENDER ) diff --git a/swGUI/TestFramework/Utils/Mocks/Rendering/FakeDrawing.h b/swGUI/TestFramework/Utils/Mocks/Rendering/FakeDrawing.h index 5563e553..04562bdb 100644 --- a/swGUI/TestFramework/Utils/Mocks/Rendering/FakeDrawing.h +++ b/swGUI/TestFramework/Utils/Mocks/Rendering/FakeDrawing.h @@ -37,6 +37,7 @@ class FakeDrawing : public Drawing using Drawing::UpdateGeometryConstants; using Drawing::CreateAndSetLayout; + using Drawing::CreateAndSetLayoutForVertexType; public: diff --git a/swGUI/Tests/TestRenderingSystem.DX11/TestLayouts.cpp b/swGUI/Tests/TestRenderingSystem.DX11/TestLayouts.cpp index 5ca46413..3aa7782a 100644 --- a/swGUI/Tests/TestRenderingSystem.DX11/TestLayouts.cpp +++ b/swGUI/Tests/TestRenderingSystem.DX11/TestLayouts.cpp @@ -3,6 +3,7 @@ #include "swGUI/TestFramework/DX11/TestFramework.DX11.h" #include "swGUI/Core/System/Rendering/Drawings/Drawing.h" +#include "swGUI/Core/Media/Geometry/Layouts/VertexShape2D.h" #include "swGUI/TestFramework/Testers/Rendering/DrawingTester.h" #include "swGUI/TestFramework/Utils/Mocks/Rendering/FakeDrawing.h" @@ -29,4 +30,16 @@ TEST_CASE( "GUI.Rendering.DX11.Drawing.Layout.VertexShape2D", "[GUISystem][Rende CHECK( renderingData.Layout != nullptr ); } +// ================================ // +// +TEST_CASE( "GUI.Rendering.DX11.Drawing.Layout.VertexText2D", "[GUISystem][RenderingSystem][Drawing]" ) +{ + TestFramework* framework = GetGlobalTestFramework(); + FakeDrawingPtr drawing = std::make_shared< FakeDrawing >(); + REQUIRE_IS_VALID( drawing->CreateAndSetLayoutForVertexType< VertexText2D >( + framework->GetResourceManagerAPI(), framework->GetRenderingSystem()->GetShaderProvider(), nullptr ) ); + + auto& renderingData = CLASS_TESTER( Drawing )::GetGeometryRenderingData( drawing.get() ); + CHECK( renderingData.Layout != nullptr ); +} diff --git a/swGUI/Tests/TestRenderingSystem/TestLayouts.cpp b/swGUI/Tests/TestRenderingSystem/TestLayouts.cpp index 23f49d0d..1215d822 100644 --- a/swGUI/Tests/TestRenderingSystem/TestLayouts.cpp +++ b/swGUI/Tests/TestRenderingSystem/TestLayouts.cpp @@ -3,6 +3,7 @@ #include "swGUI/TestFramework/TestFramework.h" #include "swGUI/Core/System/Rendering/Drawings/Drawing.h" +#include "swGUI/Core/Media/Geometry/Layouts/VertexShape2D.h" #include "swGUI/TestFramework/Testers/Rendering/DrawingTester.h" #include "swGUI/TestFramework/Utils/Mocks/Rendering/FakeDrawing.h" @@ -28,4 +29,19 @@ TEST_CASE( "GUI.Rendering.Drawing.Layout.VertexShape2D", "[GUISystem][RenderingS CHECK( renderingData.Layout != nullptr ); } +// ================================ // +// +TEST_CASE( "GUI.Rendering.Drawing.Layout.VertexText2D", "[GUISystem][RenderingSystem][Drawing]" ) +{ + TestFramework framework( 0, nullptr ); + framework.Init(); + FakeDrawingPtr drawing = std::make_shared< FakeDrawing >(); + + REQUIRE_IS_VALID( drawing->CreateAndSetLayoutForVertexType< VertexText2D >( + framework.GetResourceManagerAPI(), framework.GetRenderingSystem()->GetShaderProvider(), nullptr ) ); + + auto& renderingData = CLASS_TESTER( Drawing )::GetGeometryRenderingData( drawing.get() ); + CHECK( renderingData.Layout != nullptr ); +} + From acfc6b66c99d4b6b040cc64731addb22654c90a7 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Mon, 11 Nov 2024 22:24:26 +0100 Subject: [PATCH 45/96] Add colors definition from WPF --- swGUI/Core/Media/Colors.h | 166 ++++++++++++++++++++++++++++++++++++++ swGUI/Core/Media/Media.h | 4 + 2 files changed, 170 insertions(+) create mode 100644 swGUI/Core/Media/Colors.h diff --git a/swGUI/Core/Media/Colors.h b/swGUI/Core/Media/Colors.h new file mode 100644 index 00000000..4d5881fa --- /dev/null +++ b/swGUI/Core/Media/Colors.h @@ -0,0 +1,166 @@ +#pragma once +/** +@file Colors.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include "swCommonLib/Common/TypesDefinitions.h" +#include "swGUI/Core/System/CommonTypes/CommonTypes.h" + + +namespace sw { +namespace gui +{ + +/**@brief Predefined colors according to: +https://learn.microsoft.com/en-us/dotnet/api/system.windows.media.colors?view=windowsdesktop-8.0*/ +enum class Colors : uint32 +{ + AliceBlue = 0xFFF0F8FF, + AntiqueWhite = 0xFFFAEBD7, + Aqua = 0xFF00FFFF, + Aquamarine = 0xFF7FFFD4, + Azure = 0xFFF0FFFF, + Beige = 0xFFF5F5DC, + Bisque = 0xFFFFE4C4, + Black = 0xFF000000, + BlanchedAlmond = 0xFFFFEBCD, + Blue = 0xFF0000FF, + BlueViolet = 0xFF8A2BE2, + Brown = 0xFFA52A2A, + BurlyWood = 0xFFDEB887, + CadetBlue = 0xFF5F9EA0, + Chartreuse = 0xFF7FFF00, + Chocolate = 0xFFD2691E, + Coral = 0xFFFF7F50, + CornflowerBlue = 0xFF6495ED, + Cornsilk = 0xFFFFF8DC, + Crimson = 0xFFDC143C, + Cyan = 0xFF00FFFF, + DarkBlue = 0xFF00008B, + DarkCyan = 0xFF008B8B, + DarkGoldenrod = 0xFFB8860B, + DarkGray = 0xFFA9A9A9, + DarkGreen = 0xFF006400, + DarkKhaki = 0xFFBDB76B, + DarkMagenta = 0xFF8B008B, + DarkOliveGreen = 0xFF556B2F, + DarkOrange = 0xFFFF8C00, + DarkOrchid = 0xFF9932CC, + DarkRed = 0xFF8B0000, + DarkSalmon = 0xFFE9967A, + DarkSeaGreen = 0xFF8FBC8F, + DarkSlateBlue = 0xFF483D8B, + DarkSlateGray = 0xFF2F4F4F, + DarkTurquoise = 0xFF00CED1, + DarkViolet = 0xFF9400D3, + DeepPink = 0xFFFF1493, + DeepSkyBlue = 0xFF00BFFF, + DimGray = 0xFF696969, + DodgerBlue = 0xFF1E90FF, + Firebrick = 0xFFB22222, + FloralWhite = 0xFFFFFAF0, + ForestGreen = 0xFF228B22, + Fuchsia = 0xFFFF00FF, + Gainsboro = 0xFFDCDCDC, + GhostWhite = 0xFFF8F8FF, + Gold = 0xFFFFD700, + Goldenrod = 0xFFDAA520, + Gray = 0xFF808080, + Green = 0xFF008000, + GreenYellow = 0xFFADFF2F, + Honeydew = 0xFFF0FFF0, + HotPink = 0xFFFF69B4, + IndianRed = 0xFFCD5C5C, + Indigo = 0xFF4B0082, + Ivory = 0xFFFFFFF0, + Khaki = 0xFFF0E68C, + Lavender = 0xFFE6E6FA, + LavenderBlush = 0xFFFFF0F5, + LawnGreen = 0xFF7CFC00, + LemonChiffon = 0xFFFFFACD, + LightBlue = 0xFFADD8E6, + LightCoral = 0xFFF08080, + LightCyan = 0xFFE0FFFF, + LightGoldenrodYellow = 0xFFFAFAD2, + LightGray = 0xFFD3D3D3, + LightGreen = 0xFF90EE90, + LightPink = 0xFFFFB6C1, + LightSalmon = 0xFFFFA07A, + LightSeaGreen = 0xFF20B2AA, + LightSkyBlue = 0xFF87CEFA, + LightSlateGray = 0xFF778899, + LightSteelBlue = 0xFFB0C4DE, + LightYellow = 0xFFFFFFE0, + Lime = 0xFF00FF00, + LimeGreen = 0xFF32CD32, + Linen = 0xFFFAF0E6, + Magenta = 0xFFFF00FF, + Maroon = 0xFF800000, + MediumAquamarine = 0xFF66CDAA, + MediumBlue = 0xFF0000CD, + MediumOrchid = 0xFFBA55D3, + MediumPurple = 0xFF9370DB, + MediumSeaGreen = 0xFF3CB371, + MediumSlateBlue = 0xFF7B68EE, + MediumSpringGreen = 0xFF00FA9A, + MediumTurquoise = 0xFF48D1CC, + MediumVioletRed = 0xFFC71585, + MidnightBlue = 0xFF191970, + MintCream = 0xFFF5FFFA, + MistyRose = 0xFFFFE4E1, + Moccasin = 0xFFFFE4B5, + NavajoWhite = 0xFFFFDEAD, + Navy = 0xFF000080, + OldLace = 0xFFFDF5E6, + Olive = 0xFF808000, + OliveDrab = 0xFF6B8E23, + Orange = 0xFFFFA500, + OrangeRed = 0xFFFF4500, + Orchid = 0xFFDA70D6, + PaleGoldenrod = 0xFFEEE8AA, + PaleGreen = 0xFF98FB98, + PaleTurquoise = 0xFFAFEEEE, + PaleVioletRed = 0xFFDB7093, + PapayaWhip = 0xFFFFEFD5, + PeachPuff = 0xFFFFDAB9, + Peru = 0xFFCD853F, + Pink = 0xFFFFC0CB, + Plum = 0xFFDDA0DD, + PowderBlue = 0xFFB0E0E6, + Purple = 0xFF800080, + Red = 0xFFFF0000, + RosyBrown = 0xFFBC8F8F, + RoyalBlue = 0xFF4169E1, + SaddleBrown = 0xFF8B4513, + Salmon = 0xFFFA8072, + SandyBrown = 0xFFF4A460, + SeaGreen = 0xFF2E8B57, + SeaShell = 0xFFFFF5EE, + Sienna = 0xFFA0522D, + Silver = 0xFFC0C0C0, + SkyBlue = 0xFF87CEEB, + SlateBlue = 0xFF6A5ACD, + SlateGray = 0xFF708090, + Snow = 0xFFFFFAFA, + SpringGreen = 0xFF00FF7F, + SteelBlue = 0xFF4682B4, + Tan = 0xFFD2B48C, + Teal = 0xFF008080, + Thistle = 0xFFD8BFD8, + Tomato = 0xFFFF6347, + Transparent = 0x00FFFFFF, + Turquoise = 0xFF40E0D0, + Violet = 0xFFEE82EE, + Wheat = 0xFFF5DEB3, + White = 0xFFFFFFFF, + WhiteSmoke = 0xFFF5F5F5, + Yellow = 0xFFFFFF00, + YellowGreen = 0xFF9ACD32 +}; + + + +} // namespace gui +} // namespace sw diff --git a/swGUI/Core/Media/Media.h b/swGUI/Core/Media/Media.h index d25c8112..06836011 100644 --- a/swGUI/Core/Media/Media.h +++ b/swGUI/Core/Media/Media.h @@ -14,6 +14,8 @@ // You can place includes here in future. +#include "Colors.h" + // Brushes #include "Brushes/SolidColorBrush.h" #include "Brushes/LinearGradientBrush.h" @@ -22,4 +24,6 @@ // Geometry #include "Geometry/RectangleGeometry.h" +#include "Geometry/EllipseGeometry.h" +#include "Geometry/TextGeometry.h" From f4365bfb381be083ee6f8645c4f685eedf71fa04 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Mon, 11 Nov 2024 23:07:06 +0100 Subject: [PATCH 46/96] Test text arrangment; Fix offset from top --- .../Visual2015/CoreGUI/CoreGUI.vcxproj | 4 +- .../CoreGUI/CoreGUI.vcxproj.filters | 3 + .../TextAsset/Loader/FontAssetInitData.cpp | 9 + .../TextAsset/Loader/FontAssetInitData.h | 1 + swGraphicAPI/Assets/TextAsset/Text.cpp | 3 +- .../Tests/TestText/TestText.vcxproj | 3 +- .../Tests/TestText/TestText.vcxproj.filters | 5 +- swGraphicAPI/Tests/TestText/TestArrange.cpp | 183 ++++++++++++++++++ .../{TestArranger.cpp => TestGeneration.cpp} | 2 +- 9 files changed, 206 insertions(+), 7 deletions(-) create mode 100644 swGraphicAPI/Tests/TestText/TestArrange.cpp rename swGraphicAPI/Tests/TestText/{TestArranger.cpp => TestGeneration.cpp} (99%) diff --git a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj b/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj index cd9bcc6f..0158e979 100644 --- a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj +++ b/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj @@ -71,14 +71,11 @@ - - PERFORMANCE_CHECK;%(PreprocessorDefinitions) - Use @@ -162,6 +159,7 @@ + diff --git a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj.filters b/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj.filters index 1692d21b..02b9b759 100644 --- a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj.filters +++ b/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj.filters @@ -342,6 +342,9 @@ Core\Controls + + Core\Media + diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp index 22650a86..a2c1af5d 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp @@ -69,6 +69,15 @@ uint32 FontLayout::GetMaxWidth() const return (*max).second.Width; } +// ================================ // + +uint32 FontLayout::GetMaxBearingY() const +{ + auto max = std::max_element( this->Glyphs.begin(), this->Glyphs.end(), + []( const auto& a, const auto& b ) { return a.second.BearingY < b.second.BearingY; } ); + return ( *max ).second.BearingY; +} + // ================================ // // diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h index eb81d407..c64c4b10 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h @@ -46,6 +46,7 @@ struct FontLayout public: uint32 GetMaxHeight() const; uint32 GetMaxWidth() const; + uint32 GetMaxBearingY() const; uint32 GetMaxHeightWithPadding() const; uint32 GetMaxWidthWithPadding() const; diff --git a/swGraphicAPI/Assets/TextAsset/Text.cpp b/swGraphicAPI/Assets/TextAsset/Text.cpp index 49532494..a68087b1 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.cpp +++ b/swGraphicAPI/Assets/TextAsset/Text.cpp @@ -34,7 +34,8 @@ std::vector< Position2d > TextArranger::ArrangeText( const std::wstring& text, std::vector< Position2d > letters; letters.reserve( text.length() ); - Position2d translate( this->Bounds.Left, this->Bounds.Top ); + // Offset position from top using max hight of the letter relative to baseline (bearingY). + Position2d translate( this->Bounds.Left, this->Bounds.Top - layout.GetMaxBearingY() ); Size charIdx = 0; while( charIdx < text.length() ) diff --git a/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj b/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj index 87c63ff7..27b0dc39 100644 --- a/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj +++ b/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj @@ -20,7 +20,8 @@ - + + diff --git a/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj.filters b/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj.filters index a48dcb9b..3649e4f1 100644 --- a/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj.filters +++ b/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj.filters @@ -13,7 +13,10 @@ Tests - + + Tests + + Tests diff --git a/swGraphicAPI/Tests/TestText/TestArrange.cpp b/swGraphicAPI/Tests/TestText/TestArrange.cpp new file mode 100644 index 00000000..c12da920 --- /dev/null +++ b/swGraphicAPI/Tests/TestText/TestArrange.cpp @@ -0,0 +1,183 @@ +#include "swCommonLib/External/Catch/catch.hpp" +/** +@file TestArrange.cpp +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include "swCommonLib/Common/Converters/Convert.h" +#include "swCommonLib/TestUtils/CatchUtils/ExtendedMacros.h" + +#include "swGraphicAPI/ResourceManager/ResourceManager.h" +#include "swGraphicAPI/ResourceManager/ResourceManagerAPI.h" + +#include "swGraphicAPI/Assets/TextAsset/FontAsset.h" +#include "swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h" +#include "swGraphicAPI/Tests/TestText/Utils.h" +#include + +using namespace sw; + + +const std::wstring sLoremIpsum = L"Lorem ipsum dolor sit amet, consectetur adipiscing elit. \ +Pellentesque pulvinar est id vehicula rutrum. Aliquam luctus consectetur erat consectetur\ + pretium. Morbi nec mi nec quam feugiat pharetra a consequat magna. Sed ac dui nec felis \ +iaculis ultricies. Vivamus a maximus massa. Duis feugiat justo quis eros vestibulum, non mattis\ + turpis tincidunt. Proin tristique, felis auctor placerat maximus, dui augue hendrerit risus, \ +consectetur molestie nisl quam ac dui. Aliquam et erat arcu. Nam at nisl dapibus sem fringilla \ +sodales sit amet in turpis. Vivamus interdum nunc vitae orci pretium aliquam. Vivamus ut \ +consectetur diam. Duis dictum auctor accumsan. Morbi a nibh leo. Nam elementum lorem sit \ +amet dignissim hendrerit."; + +const std::wstring sLoremIpsumWithNewlines = L"Lorem ipsum dolor sit amet, consectetur adipiscing elit. \n\ +Pellentesque pulvinar est id vehicula rutrum. Aliquam luctus consectetur erat consectetur\n\ + pretium. Morbi nec mi nec quam feugiat pharetra a consequat magna. Sed ac dui nec felis \n\ +iaculis ultricies. Vivamus a maximus massa. Duis feugiat justo quis eros vestibulum, non mattis\n\ + turpis tincidunt. Proin tristique, felis auctor placerat maximus, dui augue hendrerit risus, \n\ +consectetur molestie nisl quam ac dui. Aliquam et erat arcu. Nam at nisl dapibus sem fringilla \n\ +sodales sit amet in turpis. Vivamus interdum nunc vitae orci pretium aliquam. Vivamus ut \n\ +consectetur diam. Duis dictum auctor accumsan. Morbi a nibh leo. Nam elementum lorem sit \n\ +amet dignissim hendrerit."; + + + +bool AlmostEqual( float a, float b ) +{ + const float EPSILON = 0.00001f; + return fabs( a - b ) < EPSILON; +} + +// ================================ // +// +TEST_CASE( "GraphicAPI.Text.Arrange.WithBounds.AlignLeft", "[GraphicAPI][Text]" ) +{ + auto rm = CreateResourceManagerWithFonts(); + auto api = ResourceManagerAPI( rm.get() ); + + FontLoaderData init( 16 ); + + auto font = api.Load< FontAsset >( "$(FontAssets)/arial.ttf", &init ); + REQUIRE_IS_VALID( font ); + + TextArranger arranger; + arranger.Bounds = { 0.0f, 200.0f, 0.0f, 200.0f }; + arranger.WrapText = true; + arranger.TextAlign = TextAlignment::Left; + + auto geometry = arranger.GenerateGeometryTextured( sLoremIpsum, font.Get(), false ); + REQUIRE_IS_VALID( geometry ); + + auto& vertexBuf = geometry.Get().Verticies; + + Size numLeftAligned = 0; + Size numRightAligned = 0; + Size numRightOutside = 0; + Size numLeftOutside = 0; + Size numTopOutside = 0; + + for( auto idx = 0; idx < vertexBuf.ElementsCount(); idx++ ) + { + auto& vertex = vertexBuf[ idx ].Position; + numLeftAligned += AlmostEqual( vertex.x, 0.0 ) ? 1 : 0; + numRightAligned += AlmostEqual( vertex.x, 200.0 ) ? 1 : 0; + numRightOutside += vertex.x > arranger.Bounds.Right ? 1 : 0; + numLeftOutside += vertex.x < arranger.Bounds.Left ? 1 : 0; + numTopOutside += vertex.y > arranger.Bounds.Top ? 1 : 0; + } + + CHECK( numLeftAligned == 28 ); + CHECK( numRightAligned == 0 ); + CHECK( numRightOutside == 0 ); + CHECK( numLeftOutside == 0 ); + CHECK( numTopOutside == 0 ); +} + +// ================================ // +// +TEST_CASE( "GraphicAPI.Text.Arrange.WithBounds.AlignRight", "[GraphicAPI][Text]" ) +{ + auto rm = CreateResourceManagerWithFonts(); + auto api = ResourceManagerAPI( rm.get() ); + + FontLoaderData init( 16 ); + + auto font = api.Load< FontAsset >( "$(FontAssets)/arial.ttf", &init ); + REQUIRE_IS_VALID( font ); + + TextArranger arranger; + arranger.Bounds = { 0.0f, 200.0f, 0.0f, 200.0f }; + arranger.WrapText = true; + arranger.TextAlign = TextAlignment::Right; + + auto geometry = arranger.GenerateGeometryTextured( sLoremIpsum, font.Get(), false ); + REQUIRE_IS_VALID( geometry ); + + auto& vertexBuf = geometry.Get().Verticies; + + Size numLeftAligned = 0; + Size numRightAligned = 0; + Size numRightOutside = 0; + Size numLeftOutside = 0; + Size numTopOutside = 0; + + for( auto idx = 0; idx < vertexBuf.ElementsCount(); idx++ ) + { + auto& vertex = vertexBuf[ idx ].Position; + numLeftAligned += AlmostEqual( vertex.x, 0.0 ) ? 1 : 0; + numRightAligned += AlmostEqual( vertex.x, 200.0 ) ? 1 : 0; + numRightOutside += vertex.x > arranger.Bounds.Right ? 1 : 0; + numLeftOutside += vertex.x < arranger.Bounds.Left ? 1 : 0; + numTopOutside += vertex.y > arranger.Bounds.Top ? 1 : 0; + } + + CHECK( numLeftAligned == 0 ); + CHECK( numRightAligned == 28 ); + CHECK( numRightOutside == 0 ); + CHECK( numLeftOutside == 0 ); + CHECK( numTopOutside == 0 ); +} + +// ================================ // +// +TEST_CASE( "GraphicAPI.Text.Arrange.WithBounds.Justify", "[GraphicAPI][Text]" ) +{ + auto rm = CreateResourceManagerWithFonts(); + auto api = ResourceManagerAPI( rm.get() ); + + FontLoaderData init( 16 ); + + auto font = api.Load< FontAsset >( "$(FontAssets)/arial.ttf", &init ); + REQUIRE_IS_VALID( font ); + + TextArranger arranger; + arranger.Bounds = { 0.0f, 200.0f, 0.0f, 200.0f }; + arranger.WrapText = true; + arranger.TextAlign = TextAlignment::Justify; + + auto geometry = arranger.GenerateGeometryTextured( sLoremIpsum, font.Get(), false ); + REQUIRE_IS_VALID( geometry ); + + auto& vertexBuf = geometry.Get().Verticies; + + Size numLeftAligned = 0; + Size numRightAligned = 0; + Size numRightOutside = 0; + Size numLeftOutside = 0; + Size numTopOutside = 0; + + for( auto idx = 0; idx < vertexBuf.ElementsCount(); idx++ ) + { + auto& vertex = vertexBuf[ idx ].Position; + numLeftAligned += AlmostEqual( vertex.x, 0.0 ) ? 1 : 0; + numRightAligned += AlmostEqual( vertex.x, 200.0 ) ? 1 : 0; + numRightOutside += vertex.x > arranger.Bounds.Right ? 1 : 0; + numLeftOutside += vertex.x < arranger.Bounds.Left ? 1 : 0; + numTopOutside += vertex.y > arranger.Bounds.Top ? 1 : 0; + } + + CHECK( numLeftAligned == 28 ); + CHECK( numRightAligned == 28 ); + CHECK( numRightOutside == 0 ); + CHECK( numLeftOutside == 0 ); + CHECK( numTopOutside == 0 ); +} diff --git a/swGraphicAPI/Tests/TestText/TestArranger.cpp b/swGraphicAPI/Tests/TestText/TestGeneration.cpp similarity index 99% rename from swGraphicAPI/Tests/TestText/TestArranger.cpp rename to swGraphicAPI/Tests/TestText/TestGeneration.cpp index 382f5ced..946623b6 100644 --- a/swGraphicAPI/Tests/TestText/TestArranger.cpp +++ b/swGraphicAPI/Tests/TestText/TestGeneration.cpp @@ -1,6 +1,6 @@ #include "swCommonLib/External/Catch/catch.hpp" /** -@file TestArranger.cpp +@file TestGeneration.cpp @author nieznanysprawiciel @copyright File is part of Sleeping Wombat Libraries. */ From b7b7927850e0628c867b6b9de22124e1ac65b79e Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Tue, 12 Nov 2024 00:17:12 +0100 Subject: [PATCH 47/96] First working text rendering --- swGUI/Core/Media/Geometry/Layouts/VertexShape2D.cpp | 4 ++-- swGUI/Core/Shaders/hlsl/Templates/Opacity.psh | 6 +++--- swGUI/Core/Shaders/hlsl/Templates/Opacity.vsh | 8 ++++---- swGUI/Prototypes/PrototyperGUI/Application.cpp | 2 +- swGraphicAPI/Assets/TextAsset/Text.inl | 7 ++++--- 5 files changed, 14 insertions(+), 13 deletions(-) diff --git a/swGUI/Core/Media/Geometry/Layouts/VertexShape2D.cpp b/swGUI/Core/Media/Geometry/Layouts/VertexShape2D.cpp index 9b5ba250..6bf21d29 100644 --- a/swGUI/Core/Media/Geometry/Layouts/VertexShape2D.cpp +++ b/swGUI/Core/Media/Geometry/Layouts/VertexShape2D.cpp @@ -49,10 +49,10 @@ template <> InputLayoutDescriptor CreateLayoutDescriptor< VertexText2D >() InputLayoutDescriptor desc; desc.AddEntry( AttributeSemantic::Position, ResourceFormat::RESOURCE_FORMAT_R32G32_FLOAT, offsetof( VertexText2D, Position ) ); - desc.AddEntry( AttributeSemantic::Texcoord, ResourceFormat::RESOURCE_FORMAT_R32G32_FLOAT, - offsetof( VertexText2D, AtlasCoords ) ); desc.AddEntry( AttributeSemantic::Texcoord, ResourceFormat::RESOURCE_FORMAT_R32G32_FLOAT, offsetof( VertexText2D, UV ) ); + desc.AddEntry( AttributeSemantic::Texcoord, ResourceFormat::RESOURCE_FORMAT_R32G32_FLOAT, + offsetof( VertexText2D, AtlasCoords ) ); return std::move( desc ); } diff --git a/swGUI/Core/Shaders/hlsl/Templates/Opacity.psh b/swGUI/Core/Shaders/hlsl/Templates/Opacity.psh index 7e79f0b4..8d23695c 100644 --- a/swGUI/Core/Shaders/hlsl/Templates/Opacity.psh +++ b/swGUI/Core/Shaders/hlsl/Templates/Opacity.psh @@ -5,8 +5,8 @@ struct OutputVS { linear float4 Pos : SV_Position; - noperspective float2 Tex : TEXCOORD; - noperspective float2 Mask : TEXCOORD; + noperspective float2 Tex : TEXCOORD0; + noperspective float2 Mask : TEXCOORD1; }; // ================================ // @@ -53,6 +53,6 @@ float4 main ( OutputVS input ) : SV_Target { float4 color = BrushFunction( input.Pos, input.Tex ); float4 opacity = opacityMask.Sample(OpacitySampler, input.Mask); - color.z = color.z * opacity.z; + color.a = color.a * opacity.a; return color; } diff --git a/swGUI/Core/Shaders/hlsl/Templates/Opacity.vsh b/swGUI/Core/Shaders/hlsl/Templates/Opacity.vsh index eb7108b3..85939b5c 100644 --- a/swGUI/Core/Shaders/hlsl/Templates/Opacity.vsh +++ b/swGUI/Core/Shaders/hlsl/Templates/Opacity.vsh @@ -5,8 +5,8 @@ struct InputVS { float4 Pos : POSITION; - float2 Tex : TEXCOORD; - float2 Mask : TEXCOORD; + float2 Tex : TEXCOORD0; + float2 Mask : TEXCOORD1; }; // ================================ // @@ -14,8 +14,8 @@ struct InputVS struct OutputVS { linear float4 Pos : SV_Position; - noperspective float2 Tex : TEXCOORD; - noperspective float2 Mask: TEXCOORD; + noperspective float2 Tex : TEXCOORD0; + noperspective float2 Mask: TEXCOORD1; }; // ================================ // diff --git a/swGUI/Prototypes/PrototyperGUI/Application.cpp b/swGUI/Prototypes/PrototyperGUI/Application.cpp index 72688320..87e6cff2 100644 --- a/swGUI/Prototypes/PrototyperGUI/Application.cpp +++ b/swGUI/Prototypes/PrototyperGUI/Application.cpp @@ -141,7 +141,7 @@ void AddControls ( HostWindow* host ) AddRectangle( host, gradientBrush, stroke, 120, 768, 2, Position( 750, 0 ) ); auto background = std::make_shared< SolidColorBrush >( Color( 0.5, 0.5, 0.5, 1.0 ) ); - auto pen = std::make_shared< SolidColorBrush >( Color( 0.0, 1.0, 0.0, 1.0 ) ); + auto pen = std::make_shared< SolidColorBrush >( Color( 1.0, 1.0, 1.0, 1.0 ) ); AddText( host, background, pen, 200, 200, Position( 50, 600 ), L"Hello World" ); } diff --git a/swGraphicAPI/Assets/TextAsset/Text.inl b/swGraphicAPI/Assets/TextAsset/Text.inl index 82f85673..4eead160 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.inl +++ b/swGraphicAPI/Assets/TextAsset/Text.inl @@ -115,9 +115,10 @@ inline void TextGeometryGenerator< VertexType, IndexType, TextAcc >::Gen } auto& glyph = m_layout.Glyphs.at( wch ); - - PutLetterVertex( vertex, glyph, translate, idx ); - PutLetterUV( vertex, glyph, translate, idx ); + vertexIdx = GenerateBackground ? vertexIdx - 4 : vertexIdx; + + PutLetterVertex( vertex, glyph, translate, vertexIdx ); + PutLetterUV( vertex, glyph, translate, vertexIdx ); } // ================================ // From d06b5190d4a283b10f38e9aa37e4e3105555f2fd Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Tue, 12 Nov 2024 01:21:10 +0100 Subject: [PATCH 48/96] Implement ColorExt; Render full text to check arrangment --- swGUI/Core/Media/Brushes/SolidColorBrush.cpp | 9 ++++ swGUI/Core/Media/Brushes/SolidColorBrush.h | 2 + swGUI/Core/Media/Colors.h | 52 ++++++++++++++++++- swGUI/Core/Media/Geometry/TextGeometry.cpp | 1 + .../System/Rendering/Drawings/TextDrawing.cpp | 15 ------ .../System/Rendering/Drawings/TextDrawing.h | 4 +- .../Prototypes/PrototyperGUI/Application.cpp | 21 ++++++-- swGraphicAPI/Assets/TextAsset/Text.cpp | 4 +- swGraphicAPI/Assets/TextAsset/Text.h | 4 +- swGraphicAPI/Tests/TestText/TestArrange.cpp | 8 +-- 10 files changed, 88 insertions(+), 32 deletions(-) diff --git a/swGUI/Core/Media/Brushes/SolidColorBrush.cpp b/swGUI/Core/Media/Brushes/SolidColorBrush.cpp index e3b35c66..6ce88a87 100644 --- a/swGUI/Core/Media/Brushes/SolidColorBrush.cpp +++ b/swGUI/Core/Media/Brushes/SolidColorBrush.cpp @@ -28,6 +28,15 @@ SolidColorBrush::SolidColorBrush( const Color& color ) } +// ================================ // +// +SolidColorBrush::SolidColorBrush( ColorExt color ) + : Brush( Brush::ConstantBufferMode::Enable ) +{ + m_constants.Color = color.Into(); +} + + // ================================ // // BufferRange SolidColorBrush::BufferData () diff --git a/swGUI/Core/Media/Brushes/SolidColorBrush.h b/swGUI/Core/Media/Brushes/SolidColorBrush.h index 18c3d85f..7c56a042 100644 --- a/swGUI/Core/Media/Brushes/SolidColorBrush.h +++ b/swGUI/Core/Media/Brushes/SolidColorBrush.h @@ -10,6 +10,7 @@ #include "swCommonLib/Common/Buffers/StackBuffer.h" #include "swGUI/Core/System/CommonTypes/CommonTypes.h" +#include "swGUI/Core/Media/Colors.h" namespace sw { @@ -39,6 +40,7 @@ class SolidColorBrush : public Brush public: explicit SolidColorBrush (); explicit SolidColorBrush ( const Color& color ); + explicit SolidColorBrush ( ColorExt color ); ~SolidColorBrush () = default; void SetColor ( const Color& color ) { m_constants.Color = color; } diff --git a/swGUI/Core/Media/Colors.h b/swGUI/Core/Media/Colors.h index 4d5881fa..db7faf87 100644 --- a/swGUI/Core/Media/Colors.h +++ b/swGUI/Core/Media/Colors.h @@ -13,9 +13,10 @@ namespace sw { namespace gui { + /**@brief Predefined colors according to: https://learn.microsoft.com/en-us/dotnet/api/system.windows.media.colors?view=windowsdesktop-8.0*/ -enum class Colors : uint32 +enum class Colors : u32 { AliceBlue = 0xFFF0F8FF, AntiqueWhite = 0xFFFAEBD7, @@ -162,5 +163,54 @@ enum class Colors : uint32 + +/**@brief Color representation using 32-bit integer. + +@todo Currently name `Color` is already used as float4 color. +Maybe the names should be replaced.*/ +class ColorExt +{ +protected: + static const u32 RedMask = 0x00FF0000; + static const u32 GreenMask = 0x0000FF00; + static const u32 BlueMask = 0x000000FF; + static const u32 AlphaMask = 0xFF000000; + + static const u8 RedMaskShift = 16; + static const u8 GreenMaskShift = 8; + static const u8 BlueMaskShift = 0; + static const u8 AlphaMaskShift = 24; + +private: + u32 m_color; + +public: + ColorExt( u32 color ) : m_color( color ) {} + ColorExt( Colors color ) : m_color( (u32)color ) {} + + Color Into() const; + +public: + + u8 Red() const { return u8( ( m_color & ColorExt::RedMask ) >> ColorExt::RedMaskShift ); } + u8 Green() const { return u8( ( m_color & ColorExt::GreenMask ) >> ColorExt::GreenMaskShift ); } + u8 Blue() const { return u8( ( m_color & ColorExt::BlueMask ) >> ColorExt::BlueMaskShift ); } + u8 Alpha() const { return u8( ( m_color & ColorExt::AlphaMask ) >> ColorExt::AlphaMaskShift ); } + + float scRed() const { return (float)Red() / 256.f; } + float scGreen() const { return (float)Green() / 256.f; } + float scBlue() const { return (float)Blue() / 256.f; } + float scAlpha() const { return (float)Alpha() / 256.f; } + +}; + +// ================================ // + +inline Color ColorExt::Into() const +{ + return Color( scRed(), scGreen(), scBlue(), scAlpha() ); +} + + } // namespace gui } // namespace sw diff --git a/swGUI/Core/Media/Geometry/TextGeometry.cpp b/swGUI/Core/Media/Geometry/TextGeometry.cpp index 543f7735..cc2452b5 100644 --- a/swGUI/Core/Media/Geometry/TextGeometry.cpp +++ b/swGUI/Core/Media/Geometry/TextGeometry.cpp @@ -83,6 +83,7 @@ GeometryData TextGeometry::Generate () auto arranger = TextArranger::CreateFrom( m_font ); arranger.Bounds = Rect{ 0.0, m_width, 0.0, m_height }; arranger.WrapText = true; + arranger.TextAlign = TextAlignment::Left; auto geometry = arranger.GenerateGeometryTextured( m_text, m_font, true ); auto numIndicies = geometry.Get().Indicies.ElementsCount(); diff --git a/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp b/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp index c9fa2df4..b4221501 100644 --- a/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp +++ b/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp @@ -19,21 +19,6 @@ namespace gui TextDrawing::TextDrawing( BrushPtr brush, BrushPtr pen, GeometryPtr text ) : GeometryDrawing( brush, pen, text ) {} -// ================================ // - -void TextDrawing::Render( IRenderer* renderer ) -{ - // TODO: Check if it is correct for text - //GeometryDrawing::Render( renderer ); - - UpdateGeometryCBContent( renderer, GetGeometry().get() ); - - UpdateBrushCBContent( renderer, GetBrush().get() ); - RenderFill( renderer ); - - UpdatePenCBContent( renderer, GetPen().get() ); - RenderBorder( renderer ); -} // ================================ // diff --git a/swGUI/Core/System/Rendering/Drawings/TextDrawing.h b/swGUI/Core/System/Rendering/Drawings/TextDrawing.h index ad9d99b4..2d424235 100644 --- a/swGUI/Core/System/Rendering/Drawings/TextDrawing.h +++ b/swGUI/Core/System/Rendering/Drawings/TextDrawing.h @@ -28,9 +28,7 @@ class TextDrawing : public GeometryDrawing explicit TextDrawing ( BrushPtr brush, BrushPtr pen, GeometryPtr text ); - - virtual void Render ( IRenderer* renderer ) override; - virtual void RebuildResources ( ResourceManagerAPI rm, ShaderProvider* sp ); + virtual void RebuildResources ( ResourceManagerAPI rm, ShaderProvider* sp ) override; public: diff --git a/swGUI/Prototypes/PrototyperGUI/Application.cpp b/swGUI/Prototypes/PrototyperGUI/Application.cpp index 87e6cff2..d21f86f9 100644 --- a/swGUI/Prototypes/PrototyperGUI/Application.cpp +++ b/swGUI/Prototypes/PrototyperGUI/Application.cpp @@ -9,6 +9,8 @@ #include "swGUI/Core/Media/Brushes/AngleGradientBrush.h" #include "swGUI/Core/Media/Brushes/ImageBrush.h" +#include "swGUI/Core/Media/Colors.h" + #include "PrototyperUtils.h" @@ -19,6 +21,16 @@ using namespace sw::gui; +const std::wstring sLoremIpsum = L"Lorem ipsum dolor sit amet, consectetur adipiscing elit. \ +Pellentesque pulvinar est id vehicula rutrum. Aliquam luctus consectetur erat consectetur\ +pretium. Morbi nec mi nec quam feugiat pharetra a consequat magna. Sed ac dui nec felis \ +iaculis ultricies. Vivamus a maximus massa. Duis feugiat justo quis eros vestibulum, non mattis\ +turpis tincidunt. Proin tristique, felis auctor placerat maximus, dui augue hendrerit risus, \ +consectetur molestie nisl quam ac dui. Aliquam et erat arcu. Nam at nisl dapibus sem fringilla \ +sodales sit amet in turpis. Vivamus interdum nunc vitae orci pretium aliquam. Vivamus ut \ +consectetur diam. Duis dictum auctor accumsan. Morbi a nibh leo. Nam elementum lorem sit \ +amet dignissim hendrerit."; + // ================================ // // void MouseMoveEventReceived ( UIElement* sender, MouseMoveEventArgs* e ) @@ -139,10 +151,11 @@ void AddControls ( HostWindow* host ) stroke = std::make_shared< SolidColorBrush >( Color( 0.0, 0.0, 0.0, 1.0 ) ); AddRectangle( host, gradientBrush, stroke, 120, 768, 2, Position( 750, 0 ) ); - - auto background = std::make_shared< SolidColorBrush >( Color( 0.5, 0.5, 0.5, 1.0 ) ); - auto pen = std::make_shared< SolidColorBrush >( Color( 1.0, 1.0, 1.0, 1.0 ) ); - AddText( host, background, pen, 200, 200, Position( 50, 600 ), L"Hello World" ); + + auto background = std::make_shared< SolidColorBrush >( Colors::Transparent ); + auto pen = std::make_shared< SolidColorBrush >( Colors::White ); + //AddText( host, background, pen, 200, 200, Position( 50, 600 ), L"Hello World" ); + AddText( host, background, pen, 300, 200, Position( 50, 200 ), sLoremIpsum ); } diff --git a/swGraphicAPI/Assets/TextAsset/Text.cpp b/swGraphicAPI/Assets/TextAsset/Text.cpp index a68087b1..c1a6100d 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.cpp +++ b/swGraphicAPI/Assets/TextAsset/Text.cpp @@ -22,8 +22,6 @@ TextArranger TextArranger::CreateFrom( const FontAssetPtr font ) { TextArranger arranger; arranger.SpaceSize = font->GetLayout().SpaceWidth(); - arranger.NewLineSize = font->GetLayout().NewLineSize(); - return arranger; } @@ -47,7 +45,7 @@ std::vector< Position2d > TextArranger::ArrangeText( const std::wstring& text, charIdx += line.size(); letters.insert( letters.end(), line.begin(), line.end() ); - translate = Position2d( this->Bounds.Left, translate.y - this->NewLineSize ); + translate = Position2d( this->Bounds.Left, translate.y - this->Interline * layout.NewLineSize() ); if( this->CutOutOfBounds && translate.y < this->Bounds.Bottom ) break; diff --git a/swGraphicAPI/Assets/TextAsset/Text.h b/swGraphicAPI/Assets/TextAsset/Text.h index 5a295377..8a6ef867 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.h +++ b/swGraphicAPI/Assets/TextAsset/Text.h @@ -36,7 +36,7 @@ class TextArranger { public: float Interspace; - float NewLineSize; + float Interline; //< Multiplier to compute distance between lines. float SpaceSize; TextAlignment TextAlign; bool UseKerning; @@ -51,7 +51,7 @@ class TextArranger public: explicit TextArranger() : Interspace( 0.0f ) - , NewLineSize( 0.0f ) + , Interline( 1.5f ) , SpaceSize( 0.0f ) , TextAlign( TextAlignment::Left ) , UseKerning( true ) diff --git a/swGraphicAPI/Tests/TestText/TestArrange.cpp b/swGraphicAPI/Tests/TestText/TestArrange.cpp index c12da920..a601dbac 100644 --- a/swGraphicAPI/Tests/TestText/TestArrange.cpp +++ b/swGraphicAPI/Tests/TestText/TestArrange.cpp @@ -21,9 +21,9 @@ using namespace sw; const std::wstring sLoremIpsum = L"Lorem ipsum dolor sit amet, consectetur adipiscing elit. \ Pellentesque pulvinar est id vehicula rutrum. Aliquam luctus consectetur erat consectetur\ - pretium. Morbi nec mi nec quam feugiat pharetra a consequat magna. Sed ac dui nec felis \ +pretium. Morbi nec mi nec quam feugiat pharetra a consequat magna. Sed ac dui nec felis \ iaculis ultricies. Vivamus a maximus massa. Duis feugiat justo quis eros vestibulum, non mattis\ - turpis tincidunt. Proin tristique, felis auctor placerat maximus, dui augue hendrerit risus, \ +turpis tincidunt. Proin tristique, felis auctor placerat maximus, dui augue hendrerit risus, \ consectetur molestie nisl quam ac dui. Aliquam et erat arcu. Nam at nisl dapibus sem fringilla \ sodales sit amet in turpis. Vivamus interdum nunc vitae orci pretium aliquam. Vivamus ut \ consectetur diam. Duis dictum auctor accumsan. Morbi a nibh leo. Nam elementum lorem sit \ @@ -31,9 +31,9 @@ amet dignissim hendrerit."; const std::wstring sLoremIpsumWithNewlines = L"Lorem ipsum dolor sit amet, consectetur adipiscing elit. \n\ Pellentesque pulvinar est id vehicula rutrum. Aliquam luctus consectetur erat consectetur\n\ - pretium. Morbi nec mi nec quam feugiat pharetra a consequat magna. Sed ac dui nec felis \n\ +pretium. Morbi nec mi nec quam feugiat pharetra a consequat magna. Sed ac dui nec felis \n\ iaculis ultricies. Vivamus a maximus massa. Duis feugiat justo quis eros vestibulum, non mattis\n\ - turpis tincidunt. Proin tristique, felis auctor placerat maximus, dui augue hendrerit risus, \n\ +turpis tincidunt. Proin tristique, felis auctor placerat maximus, dui augue hendrerit risus, \n\ consectetur molestie nisl quam ac dui. Aliquam et erat arcu. Nam at nisl dapibus sem fringilla \n\ sodales sit amet in turpis. Vivamus interdum nunc vitae orci pretium aliquam. Vivamus ut \n\ consectetur diam. Duis dictum auctor accumsan. Morbi a nibh leo. Nam elementum lorem sit \n\ From afb89c24d1479b5e8bd05ed7c9248bb8862f7725 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Tue, 12 Nov 2024 17:42:46 +0100 Subject: [PATCH 49/96] Allow returning error from Geometry::Generate; Fix Nullable::MapErr for rvalues --- swCommonLib/Common/Exceptions/Nullable.h | 10 +++++----- swCommonLib/Tests/TestHelpers/TestNullable.cpp | 6 ++---- swGUI/Core/Media/Geometry/EllipseGeometry.cpp | 6 +++--- swGUI/Core/Media/Geometry/EllipseGeometry.h | 10 +++++----- swGUI/Core/Media/Geometry/Geometry.h | 8 ++++---- swGUI/Core/Media/Geometry/RectangleGeometry.cpp | 10 +++++----- swGUI/Core/Media/Geometry/RectangleGeometry.h | 11 ++++++----- swGUI/Core/Media/Geometry/TextGeometry.cpp | 12 +++++++----- swGUI/Core/Media/Geometry/TextGeometry.h | 11 ++++++----- swGUI/Core/System/Rendering/Drawings/Drawing.cpp | 4 +++- 10 files changed, 46 insertions(+), 42 deletions(-) diff --git a/swCommonLib/Common/Exceptions/Nullable.h b/swCommonLib/Common/Exceptions/Nullable.h index 556aeef1..2b4076b2 100644 --- a/swCommonLib/Common/Exceptions/Nullable.h +++ b/swCommonLib/Common/Exceptions/Nullable.h @@ -102,7 +102,7 @@ class Nullable : public impl::ResultBase< ContentType, ExceptionPtr > public: /**@brief Takes lambda mapping error to different error. It allows to add context to exception returned from called function.*/ - Nullable< ContentType > MapErr ( const std::function< Nullable< ContentType >( typename ErrorType ) >& mapper ); + Nullable< ContentType > MapErr ( const std::function< Nullable< ContentType >( typename ErrorType ) >& mapper ) &&; }; @@ -143,7 +143,7 @@ class Nullable< void > /**@brief Takes lambda mapping error to different error. It allows to add context to exception returned from called function.*/ - Nullable< void > MapErr ( const std::function< Nullable< void >( typename ErrorType ) >& mapper ); + Nullable< void > MapErr ( const std::function< Nullable< void >( typename ErrorType ) >& mapper ) &&; }; Nullable< void > operator&& ( const Nullable< void >& that, const Nullable< void >& second ); @@ -224,11 +224,11 @@ inline Nullable< ContentType > Nullable< ContentType >::FromError () // ================================ // // template< typename ContentType > -inline Nullable< ContentType > Nullable< ContentType >::MapErr( const std::function< Nullable< ContentType >( typename ErrorType ) >& mapper ) +inline Nullable< ContentType > Nullable< ContentType >::MapErr( const std::function< Nullable< ContentType >( typename ErrorType ) >& mapper ) && { if( !IsValid() ) return mapper( Error ); - return *this; + return Nullable< ContentType > ( std::move( this->Content ) ); } //====================================================================================// @@ -334,7 +334,7 @@ inline typename Nullable< void >::ErrorType Nullable< void >::GetError () const // ================================ // // -inline ReturnResult Nullable< void >::MapErr( const std::function< ReturnResult( typename ErrorType ) >& mapper ) +inline ReturnResult Nullable< void >::MapErr( const std::function< ReturnResult( typename ErrorType ) >& mapper ) && { if( !IsValid() ) return mapper( Error ); diff --git a/swCommonLib/Tests/TestHelpers/TestNullable.cpp b/swCommonLib/Tests/TestHelpers/TestNullable.cpp index cda8a70d..90efbd65 100644 --- a/swCommonLib/Tests/TestHelpers/TestNullable.cpp +++ b/swCommonLib/Tests/TestHelpers/TestNullable.cpp @@ -166,8 +166,7 @@ TEST_CASE( "Common.Helpers.Exceptions.Nullable.Move.Exception", "[Nullable]" ) // TEST_CASE( "Common.Helpers.Exceptions.Nullable.MapErr", "[Nullable]" ) { - Nullable< Dog* > nullableDog( "Something wrong..." ); - auto mappedErr = nullableDog.MapErr( []( auto e ) { return fmt::format( "Failure: {}", e ); } ); + auto mappedErr = Nullable< Dog* >( "Something wrong..." ).MapErr( []( auto e ) { return fmt::format( "Failure: {}", e ); } ); REQUIRE( mappedErr.IsValid() == false ); CHECK( mappedErr.GetErrorReason() == "Failure: Something wrong..." ); @@ -217,8 +216,7 @@ TEST_CASE( "Common.Helpers.Exceptions.ReturnResult.Ok.Invalid", "[Nullable]" ) // TEST_CASE( "Common.Helpers.Exceptions.ReturnResult.MapErr", "[Nullable]" ) { - ReturnResult invalid( "Something wrong..." ); - ReturnResult mappedErr = invalid.MapErr( []( auto e ) { return fmt::format( "Failure: {}", e ); } ); + ReturnResult mappedErr = ReturnResult( "Something wrong..." ).MapErr( []( auto e ) { return fmt::format( "Failure: {}", e ); } ); CHECK( mappedErr.IsValid() == false ); CHECK( mappedErr.GetErrorReason() == "Failure: Something wrong..." ); diff --git a/swGUI/Core/Media/Geometry/EllipseGeometry.cpp b/swGUI/Core/Media/Geometry/EllipseGeometry.cpp index e839b052..bec30df4 100644 --- a/swGUI/Core/Media/Geometry/EllipseGeometry.cpp +++ b/swGUI/Core/Media/Geometry/EllipseGeometry.cpp @@ -73,7 +73,7 @@ bool EllipseGeometry::HitTest ( const Rect& rectangle ) const // ================================ // // -GeometryData EllipseGeometry::Generate () +Nullable< GeometryData > EllipseGeometry::Generate() { geom::EllipseWithBorder< VertexShape2D, Index16 > ellipse; ellipse.Width = m_width; @@ -88,7 +88,7 @@ GeometryData EllipseGeometry::Generate () planarUV.MaxY = 0.0f; auto geometry = geom::Generate< geom::IndexedGeometryBuffer< VertexShape2D, Index16 > >( ellipse, geom::Translate2D< VertexShape2D >( m_width / 2, -m_height / 2 ), planarUV ); - /// @todo Error handling or logging. + ReturnIfInvalid( geometry ); GeometryData geomData( geometry.Get().Verticies.MoveToRawBuffer(), geometry.Get().Indicies.MoveToRawBuffer() ); geomData.FillIdxEnd = (uint32)ellipse.GetNumberFillIndicies(); @@ -101,7 +101,7 @@ GeometryData EllipseGeometry::Generate () // ================================ // // -BufferRange EllipseGeometry::BufferData () +BufferRange EllipseGeometry::BufferData() { // Rectangle doesn't use contants buffer. return BufferRange(); diff --git a/swGUI/Core/Media/Geometry/EllipseGeometry.h b/swGUI/Core/Media/Geometry/EllipseGeometry.h index b44726d9..826b6e01 100644 --- a/swGUI/Core/Media/Geometry/EllipseGeometry.h +++ b/swGUI/Core/Media/Geometry/EllipseGeometry.h @@ -39,12 +39,12 @@ class EllipseGeometry : public Geometry virtual bool HitTest ( const Point& point ) const override; virtual bool HitTest ( const Rect& rectangle ) const override; - virtual GeometryData Generate () override; - virtual BufferRange BufferData () override; + virtual Nullable< GeometryData > Generate () override; + virtual BufferRange BufferData () override; - virtual filesystem::Path ShaderFunctionFile () override; - virtual std::string GeometryName () override; - virtual AssetPath ConstantsName () override; + virtual filesystem::Path ShaderFunctionFile () override; + virtual std::string GeometryName () override; + virtual AssetPath ConstantsName () override; }; diff --git a/swGUI/Core/Media/Geometry/Geometry.h b/swGUI/Core/Media/Geometry/Geometry.h index ba3aa316..3f63c85b 100644 --- a/swGUI/Core/Media/Geometry/Geometry.h +++ b/swGUI/Core/Media/Geometry/Geometry.h @@ -117,12 +117,12 @@ class Geometry : public Object ///@{ /**@brief Generates geometry with current parameters.*/ - virtual GeometryData Generate () = 0; + virtual Nullable< GeometryData > Generate () = 0; /**@brief Returns BufferRange of new content of constant buffer. @note Geometry object is still owner of returned memory and it shouldn't be freed after return from this function. It is recommended to use @ref StackBuffer in Geometry implementation.*/ - virtual BufferRange BufferData () = 0; + virtual BufferRange BufferData () = 0; /**@brief Returns file name containing function used in Vertex Shader. @@ -136,14 +136,14 @@ class Geometry : public Object This way geometry can be generated once for multiple parameters of shape to avoid data transfers between CPU and GPU. You should override @ref Geometry::GeometryName function, to return the same name, if Vertex Buffer shouldn't be updated.*/ - virtual filesystem::Path ShaderFunctionFile () = 0; + virtual filesystem::Path ShaderFunctionFile () = 0; /**@brief Returns key used to store/find geometry buffers (VB and IB) in resources. This function should return name of buffer based on shape parameters. You can use the same geometry for different parameters and modify it in Vertex Shader. If you want to use the same buffer for different parameters ranges, return the same name from this function for these ranges.*/ - virtual std::string GeometryName () = 0; + virtual std::string GeometryName () = 0; /**@brief Returns key used to store/find contant buffer in resources.*/ diff --git a/swGUI/Core/Media/Geometry/RectangleGeometry.cpp b/swGUI/Core/Media/Geometry/RectangleGeometry.cpp index d13ebf69..b92e6abb 100644 --- a/swGUI/Core/Media/Geometry/RectangleGeometry.cpp +++ b/swGUI/Core/Media/Geometry/RectangleGeometry.cpp @@ -55,19 +55,19 @@ void RectangleGeometry::SetThickness ( float thickness ) // bool RectangleGeometry::HitTest ( const Point& point ) const { - return Rect{ 0.0, m_width, 0.0, m_height }.Intersects( point ); + return Rect{ 0.0, m_width, 0.0, -m_height }.Intersects( point ); } // ================================ // // bool RectangleGeometry::HitTest ( const Rect& rectangle ) const { - return Rect{ 0.0, m_width, 0.0, m_height }.Intersects( rectangle ); + return Rect{ 0.0, m_width, 0.0, -m_height }.Intersects( rectangle ); } // ================================ // // -GeometryData RectangleGeometry::Generate () +Nullable< GeometryData > RectangleGeometry::Generate() { geom::RectangleWithBorder< VertexShape2D, Index16 > rect; rect.TopLeftX = 0.0f; @@ -83,7 +83,7 @@ GeometryData RectangleGeometry::Generate () planarUV.MaxY = 0.0f; auto geometry = geom::Generate< geom::IndexedGeometryBuffer< VertexShape2D, Index16 > >( rect, planarUV ); - /// @todo Error handling or logging. + ReturnIfInvalid( geometry ); GeometryData geomData( geometry.Get().Verticies.MoveToRawBuffer(), geometry.Get().Indicies.MoveToRawBuffer() ); geomData.FillIdxEnd = (uint32)rect.GetNumberFillIndicies(); @@ -96,7 +96,7 @@ GeometryData RectangleGeometry::Generate () // ================================ // // -BufferRange RectangleGeometry::BufferData () +BufferRange RectangleGeometry::BufferData () { // Rectangle doesn't use contants buffer. return BufferRange(); diff --git a/swGUI/Core/Media/Geometry/RectangleGeometry.h b/swGUI/Core/Media/Geometry/RectangleGeometry.h index 259bc65d..43845d81 100644 --- a/swGUI/Core/Media/Geometry/RectangleGeometry.h +++ b/swGUI/Core/Media/Geometry/RectangleGeometry.h @@ -39,11 +39,12 @@ class RectangleGeometry : public Geometry // Inherited via Geometry virtual bool HitTest ( const Point& point ) const override; virtual bool HitTest ( const Rect& rectangle ) const override; - virtual GeometryData Generate () override; - virtual BufferRange BufferData () override; - virtual filesystem::Path ShaderFunctionFile () override; - virtual std::string GeometryName () override; - virtual AssetPath ConstantsName () override; + + virtual Nullable< GeometryData > Generate () override; + virtual BufferRange BufferData () override; + virtual filesystem::Path ShaderFunctionFile () override; + virtual std::string GeometryName () override; + virtual AssetPath ConstantsName () override; }; diff --git a/swGUI/Core/Media/Geometry/TextGeometry.cpp b/swGUI/Core/Media/Geometry/TextGeometry.cpp index cc2452b5..cb3638b2 100644 --- a/swGUI/Core/Media/Geometry/TextGeometry.cpp +++ b/swGUI/Core/Media/Geometry/TextGeometry.cpp @@ -66,26 +66,28 @@ void TextGeometry::SetHeight( float height ) // bool TextGeometry::HitTest( const Point& point ) const { - return Rect{ 0.0, m_width, 0.0, m_height }.Intersects( point ); + return Rect{ 0.0, m_width, 0.0, -m_height }.Intersects( point ); } // ================================ // // bool TextGeometry::HitTest( const Rect& rectangle ) const { - return Rect{ 0.0, m_width, 0.0, m_height }.Intersects( rectangle ); + return Rect{ 0.0, m_width, 0.0, -m_height }.Intersects( rectangle ); } // ================================ // // -GeometryData TextGeometry::Generate () +Nullable< GeometryData > TextGeometry::Generate() { auto arranger = TextArranger::CreateFrom( m_font ); - arranger.Bounds = Rect{ 0.0, m_width, 0.0, m_height }; + arranger.Bounds = Rect{ 0.0, m_width, 0.0, -m_height }; arranger.WrapText = true; arranger.TextAlign = TextAlignment::Left; auto geometry = arranger.GenerateGeometryTextured( m_text, m_font, true ); + ReturnIfInvalid( geometry ); + auto numIndicies = geometry.Get().Indicies.ElementsCount(); GeometryData geomData( geometry.Get().Verticies.MoveToRawBuffer(), geometry.Get().Indicies.MoveToRawBuffer() ); @@ -100,7 +102,7 @@ GeometryData TextGeometry::Generate () // ================================ // // -BufferRange TextGeometry::BufferData () +BufferRange TextGeometry::BufferData () { // Rectangle doesn't use contants buffer. return BufferRange(); diff --git a/swGUI/Core/Media/Geometry/TextGeometry.h b/swGUI/Core/Media/Geometry/TextGeometry.h index 66054432..5241d40c 100644 --- a/swGUI/Core/Media/Geometry/TextGeometry.h +++ b/swGUI/Core/Media/Geometry/TextGeometry.h @@ -47,11 +47,12 @@ class TextGeometry : public Geometry // Inherited via Geometry virtual bool HitTest( const Point& point ) const override; virtual bool HitTest( const Rect& rectangle ) const override; - virtual GeometryData Generate() override; - virtual BufferRange BufferData() override; - virtual filesystem::Path ShaderFunctionFile() override; - virtual std::string GeometryName() override; - virtual AssetPath ConstantsName() override; + + virtual Nullable< GeometryData > Generate() override; + virtual BufferRange BufferData() override; + virtual filesystem::Path ShaderFunctionFile() override; + virtual std::string GeometryName() override; + virtual AssetPath ConstantsName() override; }; DEFINE_PTR_TYPE( TextGeometry ) diff --git a/swGUI/Core/System/Rendering/Drawings/Drawing.cpp b/swGUI/Core/System/Rendering/Drawings/Drawing.cpp index d787d97e..879ed595 100644 --- a/swGUI/Core/System/Rendering/Drawings/Drawing.cpp +++ b/swGUI/Core/System/Rendering/Drawings/Drawing.cpp @@ -211,7 +211,9 @@ ReturnResult Drawing::UpdateGeometry ( ResourceManagerAPI rm, Geometry* geo /// @todo Optimise. We should generate data only if necessary. Introduce Asset for geometric /// data that will hold all information needed for rendering. - GeometryData data = geometry->Generate(); + auto result = geometry->Generate().MapErr( []( auto e ) { return fmt::format( "[Drawing] Failed to generate Geometry: {}", e ); } ); + ReturnIfInvalid( result ); + GeometryData& data = result.Get(); // Create new buffers if they didn't existed. if( !vertexBuffer || !indexBuffer ) From d70ffe0ad0159dff6d68d20de4ae439938878926 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Tue, 12 Nov 2024 18:00:31 +0100 Subject: [PATCH 50/96] Text rendered with background --- .../Prototypes/PrototyperGUI/Application.cpp | 19 ++++++------------- swGraphicAPI/Assets/TextAsset/Text.cpp | 4 ++-- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/swGUI/Prototypes/PrototyperGUI/Application.cpp b/swGUI/Prototypes/PrototyperGUI/Application.cpp index d21f86f9..7f5dd4e1 100644 --- a/swGUI/Prototypes/PrototyperGUI/Application.cpp +++ b/swGUI/Prototypes/PrototyperGUI/Application.cpp @@ -21,15 +21,9 @@ using namespace sw::gui; -const std::wstring sLoremIpsum = L"Lorem ipsum dolor sit amet, consectetur adipiscing elit. \ -Pellentesque pulvinar est id vehicula rutrum. Aliquam luctus consectetur erat consectetur\ -pretium. Morbi nec mi nec quam feugiat pharetra a consequat magna. Sed ac dui nec felis \ -iaculis ultricies. Vivamus a maximus massa. Duis feugiat justo quis eros vestibulum, non mattis\ -turpis tincidunt. Proin tristique, felis auctor placerat maximus, dui augue hendrerit risus, \ -consectetur molestie nisl quam ac dui. Aliquam et erat arcu. Nam at nisl dapibus sem fringilla \ -sodales sit amet in turpis. Vivamus interdum nunc vitae orci pretium aliquam. Vivamus ut \ -consectetur diam. Duis dictum auctor accumsan. Morbi a nibh leo. Nam elementum lorem sit \ -amet dignissim hendrerit."; +const std::wstring sLoremIpsum = L"Lorem ipsum is a dummy or placeholder text commonly used\ +in graphic design, publishing, and web development to fill empty spaces in a layout that do\ +not yet have content."; // ================================ // // @@ -152,10 +146,9 @@ void AddControls ( HostWindow* host ) AddRectangle( host, gradientBrush, stroke, 120, 768, 2, Position( 750, 0 ) ); - auto background = std::make_shared< SolidColorBrush >( Colors::Transparent ); - auto pen = std::make_shared< SolidColorBrush >( Colors::White ); - //AddText( host, background, pen, 200, 200, Position( 50, 600 ), L"Hello World" ); - AddText( host, background, pen, 300, 200, Position( 50, 200 ), sLoremIpsum ); + auto background = std::make_shared< SolidColorBrush >( Colors::White ); + auto pen = std::make_shared< SolidColorBrush >( Colors::Black ); + AddText( host, background, pen, 200, 200, Position( 50, 400 ), sLoremIpsum ); } diff --git a/swGraphicAPI/Assets/TextAsset/Text.cpp b/swGraphicAPI/Assets/TextAsset/Text.cpp index c1a6100d..360a67da 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.cpp +++ b/swGraphicAPI/Assets/TextAsset/Text.cpp @@ -284,9 +284,9 @@ TextArranger::GenerateGeometryTextured( const std::wstring& text, const FontAsse geom::PlanarUV< geom::VertexText2D > planarUV; planarUV.MinX = generator.Bounds.Left; - planarUV.MinY = generator.Bounds.Top; + planarUV.MaxY = generator.Bounds.Top; planarUV.MaxX = generator.Bounds.Right; - planarUV.MaxY = generator.Bounds.Bottom; + planarUV.MinY = generator.Bounds.Bottom; return geom::Generate< geom::IndexedGeometryBuffer< geom::VertexText2D, Index32 > >( generator, planarUV ); } From f7b2f32b64de59db41e49ead810646664d6a4a76 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Tue, 12 Nov 2024 18:09:03 +0100 Subject: [PATCH 51/96] Text playground project --- swGUI/GUI.sln | 11 ++ .../TextShowcase/TextShowcase.vcxproj | 169 ++++++++++++++++++ swGUI/Prototypes/TextShowcase/Application.cpp | 104 +++++++++++ swGUI/Prototypes/TextShowcase/Application.h | 34 ++++ .../TextShowcase/PrototyperUtils.cpp | 37 ++++ .../Prototypes/TextShowcase/PrototyperUtils.h | 25 +++ swGUI/Prototypes/TextShowcase/main.cpp | 13 ++ 7 files changed, 393 insertions(+) create mode 100644 swGUI/ProjectDir/Visual2015/Prototypes/TextShowcase/TextShowcase.vcxproj create mode 100644 swGUI/Prototypes/TextShowcase/Application.cpp create mode 100644 swGUI/Prototypes/TextShowcase/Application.h create mode 100644 swGUI/Prototypes/TextShowcase/PrototyperUtils.cpp create mode 100644 swGUI/Prototypes/TextShowcase/PrototyperUtils.h create mode 100644 swGUI/Prototypes/TextShowcase/main.cpp diff --git a/swGUI/GUI.sln b/swGUI/GUI.sln index e035ac23..a068f843 100644 --- a/swGUI/GUI.sln +++ b/swGUI/GUI.sln @@ -218,6 +218,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "fonts", "fonts", "{2CDA8A31 EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestText", "..\swGraphicAPI\ProjectsDir\Visual2015\Tests\TestText\TestText.vcxproj", "{1F535690-1AB1-47EA-961B-183C4DCF46D3}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TextShowcase", "ProjectDir\Visual2015\Prototypes\TextShowcase\TextShowcase.vcxproj", "{D5E21347-CDBD-4B7B-B7A6-C7F94DEE4913}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 @@ -690,6 +692,14 @@ Global {1F535690-1AB1-47EA-961B-183C4DCF46D3}.Release|x64.Build.0 = Release|x64 {1F535690-1AB1-47EA-961B-183C4DCF46D3}.Release|x86.ActiveCfg = Release|Win32 {1F535690-1AB1-47EA-961B-183C4DCF46D3}.Release|x86.Build.0 = Release|Win32 + {D5E21347-CDBD-4B7B-B7A6-C7F94DEE4913}.Debug|x64.ActiveCfg = Debug|x64 + {D5E21347-CDBD-4B7B-B7A6-C7F94DEE4913}.Debug|x64.Build.0 = Debug|x64 + {D5E21347-CDBD-4B7B-B7A6-C7F94DEE4913}.Debug|x86.ActiveCfg = Debug|Win32 + {D5E21347-CDBD-4B7B-B7A6-C7F94DEE4913}.Debug|x86.Build.0 = Debug|Win32 + {D5E21347-CDBD-4B7B-B7A6-C7F94DEE4913}.Release|x64.ActiveCfg = Release|x64 + {D5E21347-CDBD-4B7B-B7A6-C7F94DEE4913}.Release|x64.Build.0 = Release|x64 + {D5E21347-CDBD-4B7B-B7A6-C7F94DEE4913}.Release|x86.ActiveCfg = Release|Win32 + {D5E21347-CDBD-4B7B-B7A6-C7F94DEE4913}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -781,6 +791,7 @@ Global {9C1F5085-2B56-48A9-91CA-93D85CFBCCB6} = {F1C45F0A-5461-43D0-B73C-AF7994CBBAED} {2CDA8A31-2F49-43B3-82CD-271BE83EC203} = {E1A698D8-011C-4359-A108-C3B32B54A2C0} {1F535690-1AB1-47EA-961B-183C4DCF46D3} = {AD4FFF37-D748-47D4-AF31-78C2C7D87D42} + {D5E21347-CDBD-4B7B-B7A6-C7F94DEE4913} = {BBD5CA36-CFDA-417A-94F4-80E738794723} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {A341301D-630D-4C6A-B843-1A50FC78565A} diff --git a/swGUI/ProjectDir/Visual2015/Prototypes/TextShowcase/TextShowcase.vcxproj b/swGUI/ProjectDir/Visual2015/Prototypes/TextShowcase/TextShowcase.vcxproj new file mode 100644 index 00000000..fa2c8b43 --- /dev/null +++ b/swGUI/ProjectDir/Visual2015/Prototypes/TextShowcase/TextShowcase.vcxproj @@ -0,0 +1,169 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + {D5E21347-CDBD-4B7B-B7A6-C7F94DEE4913} + Win32Proj + TextShowcase + 10.0 + + + + Application + true + Unicode + v143 + + + Application + false + true + Unicode + v143 + + + Application + true + Unicode + v143 + + + Application + false + true + Unicode + v143 + + + + + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + + + Level3 + Disabled + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + Level3 + + + MaxSpeed + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + {44643d7f-1c71-41c1-b452-b2dc5e088a58} + + + {c6dab3ee-e9a7-47fc-9b33-a8f4250c219b} + + + {267292a0-c262-43e7-afb1-1f63439fd465} + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/swGUI/Prototypes/TextShowcase/Application.cpp b/swGUI/Prototypes/TextShowcase/Application.cpp new file mode 100644 index 00000000..d3e1ba73 --- /dev/null +++ b/swGUI/Prototypes/TextShowcase/Application.cpp @@ -0,0 +1,104 @@ +#include "Application.h" + +#include "swGUI/Core/Controls/Shapes/Rectangle.h" +#include "swGUI/Core/Controls/Shapes/Ellipse.h" +#include "swGUI/Core/Controls/TextualControls/TextBlock.h" + +#include "swGUI/Core/Media/Brushes/SolidColorBrush.h" +#include "swGUI/Core/Media/Brushes/LinearGradientBrush.h" +#include "swGUI/Core/Media/Brushes/AngleGradientBrush.h" +#include "swGUI/Core/Media/Brushes/ImageBrush.h" + +#include "swGUI/Core/Media/Colors.h" + +#include "PrototyperUtils.h" + +#include + + +using namespace sw::gui; + +const std::wstring sLoremIpsum = L"Lorem ipsum is a dummy or placeholder text commonly used \ +in graphic design, publishing, and web development to fill empty spaces in a layout that do \ +not yet have content."; + + +// ================================ // +// +void AddText ( HostWindow* host, BrushPtr brush, BrushPtr pen, float width, float height, Position pos, const std::wstring& text ) +{ + TextBlockOPtr textBlock = TextBlockOPtr( new TextBlock() ); + + textBlock->SetBackground( brush ); + textBlock->SetForeground( pen ); + + textBlock->SetHeight( height ); + textBlock->SetWidth( width ); + + textBlock->SetOffset( pos ); + textBlock->SetText( text ); + + host->AddChild( std::move( textBlock ) ); +} + + +// ================================ // +// +void AddControls ( HostWindow* host ) +{ + auto background = std::make_shared< SolidColorBrush >( Colors::Transparent ); + auto pen = std::make_shared< SolidColorBrush >( Colors::White ); + AddText( host, background, pen, 200, 200, Position( 50, 100 ), sLoremIpsum ); +} + + +// ================================ // +// +Application::Application ( int argc, char** argv, sw::gui::INativeGUI* gui ) + : sw::gui::GUISystem( argc, argv, gui ) +{} + + +/**@brief GUI subsystems initialization. + +If you need specific gui initialization in your application override this function. +You can set different GraphicApi or input api.*/ +sw::ReturnResult Application::Initialize() +{ + m_guiConfig.DebugGraphics = true; + + sw::ReturnResult result = sw::Success::True; + + result = result && DefaultInit( 1500, 768, "Text variation showcase" ); + result = result && OverridePaths(); + + return result; +} + +// ================================ // +// +sw::ReturnResult Application::OverridePaths () +{ + auto coreGUISourcePath = FindCoreGUISourcePath( m_nativeGUI->GetOS()->GetApplicationDir() ); + + m_pathsManager->RegisterAlias( "$(Application-Dir)", coreGUISourcePath / "Prototypes/AppResources/" ); + return m_pathsManager->OverrideAlias( "$(CoreGUI-Shader-Dir)", coreGUISourcePath / "Core/Shaders/hlsl" ); +} + +/**@brief Function is called when GUI initialization is completed. + +In this function you should initialize your application logic. +*/ +sw::ReturnResult Application::OnInitialized() +{ + AddControls( m_windows[ 0 ] ); + return sw::Success::True; +} + +/**@brief Function invoked when application is going to close itself.*/ +void Application::OnClosing() +{ } + +/**@brief */ +void Application::OnIdle( const sw::gui::FrameTime& frameTime ) +{ } diff --git a/swGUI/Prototypes/TextShowcase/Application.h b/swGUI/Prototypes/TextShowcase/Application.h new file mode 100644 index 00000000..16f033b8 --- /dev/null +++ b/swGUI/Prototypes/TextShowcase/Application.h @@ -0,0 +1,34 @@ +#pragma once +/** +@file Application.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + + +#include "swGUI/Core/System/GUISystem.h" + + + +/**@brief Application template class. + +User should implement virtual functions to use GUI.*/ +class Application : public sw::gui::GUISystem +{ +private: +protected: +public: + explicit Application ( int argc, char** argv, sw::gui::INativeGUI* gui ); + ~Application () = default; + +protected: + + virtual sw::ReturnResult Initialize () override; + virtual sw::ReturnResult OnInitialized () override; + virtual void OnClosing () override; + virtual void OnIdle ( const sw::gui::FrameTime& frameTime ) override; + + sw::ReturnResult OverridePaths (); + +}; + diff --git a/swGUI/Prototypes/TextShowcase/PrototyperUtils.cpp b/swGUI/Prototypes/TextShowcase/PrototyperUtils.cpp new file mode 100644 index 00000000..fa7ed792 --- /dev/null +++ b/swGUI/Prototypes/TextShowcase/PrototyperUtils.cpp @@ -0,0 +1,37 @@ +/** +@file PrototyperUtils.cpp +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include "PrototyperUtils.h" + + +namespace sw { +namespace gui +{ + +// ================================ // +// CoreGUI path should have swGUI in path. We look for this string in binaryPath. +filesystem::Path FindCoreGUISourcePath ( const filesystem::Path& binaryPath ) +{ + auto path = binaryPath; + auto fileName = path.GetFileName(); + + while( !fileName.empty() ) + { + if( fileName == "swGUI" ) + { + return path; + } + + path = path.GetParent(); + fileName = path.GetFileName(); + } + + return filesystem::Path(); +} + +} // gui +} // sw + diff --git a/swGUI/Prototypes/TextShowcase/PrototyperUtils.h b/swGUI/Prototypes/TextShowcase/PrototyperUtils.h new file mode 100644 index 00000000..17ad62b6 --- /dev/null +++ b/swGUI/Prototypes/TextShowcase/PrototyperUtils.h @@ -0,0 +1,25 @@ +#pragma once +/** +@file PrototyperUtils.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + + +#include "swCommonLib/System/Path.h" + + +namespace sw { +namespace gui +{ + + +// ================================ // +// +filesystem::Path FindCoreGUISourcePath ( const filesystem::Path& binaryPath ); + + +} // gui +} // sw + + diff --git a/swGUI/Prototypes/TextShowcase/main.cpp b/swGUI/Prototypes/TextShowcase/main.cpp new file mode 100644 index 00000000..5d483f29 --- /dev/null +++ b/swGUI/Prototypes/TextShowcase/main.cpp @@ -0,0 +1,13 @@ +#include "swGUI/Core/System/GUISystem.h" +#include "swGUI/Native/WinAPI/WinAPIGUI.h" + +#include "Application.h" + + +int main( int argc, char** argv ) +{ + Application app( argc, argv, sw::gui::WinAPIGUI::Create() ); + app.Init(); + + return app.MainLoop(); +} \ No newline at end of file From b7166e35fb1d3cbcb90556038bfac6fffe8e211f Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Tue, 12 Nov 2024 19:12:09 +0100 Subject: [PATCH 52/96] TextShowcase - examples with different alignment and brushes --- .../Controls/TextualControls/TextBlock.cpp | 23 ++++- .../Core/Controls/TextualControls/TextBlock.h | 7 +- swGUI/Core/Media/Geometry/TextGeometry.cpp | 29 +++++- swGUI/Core/Media/Geometry/TextGeometry.h | 9 ++ swGUI/Prototypes/TextShowcase/Application.cpp | 89 +++++++++++++++++-- swGraphicAPI/Assets/TextAsset/Text.cpp | 19 ++-- 6 files changed, 154 insertions(+), 22 deletions(-) diff --git a/swGUI/Core/Controls/TextualControls/TextBlock.cpp b/swGUI/Core/Controls/TextualControls/TextBlock.cpp index 3abae416..f5a6d6cc 100644 --- a/swGUI/Core/Controls/TextualControls/TextBlock.cpp +++ b/swGUI/Core/Controls/TextualControls/TextBlock.cpp @@ -28,7 +28,7 @@ namespace gui TextBlock::TextBlock() : m_invalidateFont( true ) - , m_fontSize( 12 ) + , m_fontSize( 16 ) , m_fontStyle( FontStyle::Normal ) , m_fontWeight( FontWeight::Normal ) , m_textAlignment( TextAlignment::Left ) @@ -50,7 +50,7 @@ ReturnResult TextBlock::UpdateDrawingResources( ResourceManagerAPI& api ) if( FontNeedsUpdate() ) { // TODO: take FontWeight and FontStyle into account - FontLoaderData init( 16 ); + FontLoaderData init( m_fontSize ); auto font = api.Load< FontAsset >( "$(Application-Dir)/arial.ttf", &init ); ReturnIfInvalid( font ); @@ -58,6 +58,7 @@ ReturnResult TextBlock::UpdateDrawingResources( ResourceManagerAPI& api ) geometry->SetText( m_text ); geometry->SetWidth( GetSize().x ); geometry->SetHeight( GetSize().y ); + geometry->SetAlignment( m_textAlignment ); SetGeometry( geometry ); FontUpdated(); @@ -94,6 +95,14 @@ void TextBlock::SetForeground( BrushPtr pen ) } } +// ================================ // + +void TextBlock::SetFontSize( uint32 size ) +{ + m_fontSize = size; + InvalidateFont(); +} + // ================================ // // @@ -106,6 +115,16 @@ void TextBlock::SetText( const std::wstring& text ) // ================================ // +void TextBlock::SetTextAlignment( TextAlignment alignment ) +{ + m_textAlignment = alignment; + if( m_drawing ) + m_drawing->GetTextGeometry()->SetAlignment( alignment ); + +} + +// ================================ // + void TextBlock::SetGeometry( GeometryPtr geom ) { // Create new drawing if m_drawing is nullptr or geometry changed. diff --git a/swGUI/Core/Controls/TextualControls/TextBlock.h b/swGUI/Core/Controls/TextualControls/TextBlock.h index a2490a46..ac07ef49 100644 --- a/swGUI/Core/Controls/TextualControls/TextBlock.h +++ b/swGUI/Core/Controls/TextualControls/TextBlock.h @@ -54,10 +54,10 @@ class TextBlock : public FrameworkElement std::string m_fontFamily; FontStyle m_fontStyle; FontWeight m_fontWeight; + FontSizeType m_fontSize; bool m_invalidateFont; TextAlignment m_textAlignment; - FontSizeType m_fontSize; std::wstring m_text; public: @@ -77,7 +77,7 @@ class TextBlock : public FrameworkElement std::string GetFontFamily() const { return m_fontFamily; } void SetFontSize( uint32 size ); - uint32 GetFontSize() const; + uint32 GetFontSize() const { return m_fontSize; } FontStyle GetFontStyle() const { return m_fontStyle; } void SetFontStyle( FontStyle fontStyle ); @@ -88,6 +88,9 @@ class TextBlock : public FrameworkElement void SetText( const std::wstring& text ); std::wstring GetText() const { return m_text; } + void SetTextAlignment( TextAlignment alignment ); + TextAlignment GetTextAlignment() const { return m_textAlignment; } + GeometryPtr GetGeometry() const { return m_drawing->GetGeometry(); } diff --git a/swGUI/Core/Media/Geometry/TextGeometry.cpp b/swGUI/Core/Media/Geometry/TextGeometry.cpp index cb3638b2..5a655108 100644 --- a/swGUI/Core/Media/Geometry/TextGeometry.cpp +++ b/swGUI/Core/Media/Geometry/TextGeometry.cpp @@ -23,11 +23,25 @@ namespace sw { namespace gui { +static Size s_counter = 0; + +// ================================ // + +Size TextGeometry::NextCounter() +{ + return ++s_counter; +} + // ================================ // // TextGeometry::TextGeometry( FontAssetPtr font ) : Geometry( Geometry::ConstantBufferMode::Disable ) - , m_font( font ) {} + , m_font( font ) + , m_width( 100.0f ) + , m_height( 100.0f ) + , m_textAlignment( TextAlignment::Left ) + , m_counter( NextCounter() ) +{} // ================================ // @@ -61,6 +75,14 @@ void TextGeometry::SetHeight( float height ) InvalidateGeometry(); } +// ================================ // + +void TextGeometry::SetAlignment( TextAlignment alignment ) +{ + m_textAlignment = alignment; + InvalidateGeometry(); +} + // ================================ // // @@ -83,7 +105,7 @@ Nullable< GeometryData > TextGeometry::Generate() auto arranger = TextArranger::CreateFrom( m_font ); arranger.Bounds = Rect{ 0.0, m_width, 0.0, -m_height }; arranger.WrapText = true; - arranger.TextAlign = TextAlignment::Left; + arranger.TextAlign = m_textAlignment; auto geometry = arranger.GenerateGeometryTextured( m_text, m_font, true ); ReturnIfInvalid( geometry ); @@ -119,7 +141,8 @@ filesystem::Path TextGeometry::ShaderFunctionFile () // std::string TextGeometry::GeometryName () { - return fmt::format( "/TextGeometry{}", m_font->GetAssetPath().GetInternalPath() ); + // TextGeometry needs unique buffer, that won't be shared with other components. + return fmt::format( "/TextGeometry/counter={}", m_counter ); } // ================================ // diff --git a/swGUI/Core/Media/Geometry/TextGeometry.h b/swGUI/Core/Media/Geometry/TextGeometry.h index 5241d40c..1b152f71 100644 --- a/swGUI/Core/Media/Geometry/TextGeometry.h +++ b/swGUI/Core/Media/Geometry/TextGeometry.h @@ -26,6 +26,10 @@ class TextGeometry : public Geometry float m_width; float m_height; + TextAlignment m_textAlignment; + + Size m_counter; //< Counter for unique buffer name. + public: explicit TextGeometry( FontAssetPtr font ); @@ -42,6 +46,8 @@ class TextGeometry : public Geometry void SetWidth( float width ); void SetHeight( float height ); + void SetAlignment( TextAlignment alignment ); + public: // Inherited via Geometry @@ -53,6 +59,9 @@ class TextGeometry : public Geometry virtual filesystem::Path ShaderFunctionFile() override; virtual std::string GeometryName() override; virtual AssetPath ConstantsName() override; + +private: + static Size NextCounter(); }; DEFINE_PTR_TYPE( TextGeometry ) diff --git a/swGUI/Prototypes/TextShowcase/Application.cpp b/swGUI/Prototypes/TextShowcase/Application.cpp index d3e1ba73..59df332f 100644 --- a/swGUI/Prototypes/TextShowcase/Application.cpp +++ b/swGUI/Prototypes/TextShowcase/Application.cpp @@ -20,12 +20,17 @@ using namespace sw::gui; const std::wstring sLoremIpsum = L"Lorem ipsum is a dummy or placeholder text commonly used \ in graphic design, publishing, and web development to fill empty spaces in a layout that do \ -not yet have content."; +not yet have content.\n\ +Lorem ipsum is typically a corrupted version of De finibus bonorum et malorum, \ +a 1st - century BC text by the Roman statesman and philosopher Cicero, with words altered, added, \ +and removed to make it nonsensical and improper Latin. \ +The first two words themselves are a truncation of dolorem ipsum( \"pain itself\" )."; + // ================================ // // -void AddText ( HostWindow* host, BrushPtr brush, BrushPtr pen, float width, float height, Position pos, const std::wstring& text ) +TextBlock* AddText ( HostWindow* host, BrushPtr brush, BrushPtr pen, float width, float height, Position pos, const std::wstring& text ) { TextBlockOPtr textBlock = TextBlockOPtr( new TextBlock() ); @@ -38,7 +43,9 @@ void AddText ( HostWindow* host, BrushPtr brush, BrushPtr pen, float width, f textBlock->SetOffset( pos ); textBlock->SetText( text ); + auto ptr = textBlock.get(); host->AddChild( std::move( textBlock ) ); + return ptr; } @@ -46,9 +53,81 @@ void AddText ( HostWindow* host, BrushPtr brush, BrushPtr pen, float width, f // void AddControls ( HostWindow* host ) { - auto background = std::make_shared< SolidColorBrush >( Colors::Transparent ); - auto pen = std::make_shared< SolidColorBrush >( Colors::White ); - AddText( host, background, pen, 200, 200, Position( 50, 100 ), sLoremIpsum ); + { + auto background = std::make_shared< SolidColorBrush >( Colors::Transparent ); + auto pen = std::make_shared< SolidColorBrush >( Colors::White ); + AddText( host, background, pen, 300, 300, Position( 50, 50 ), sLoremIpsum ); + } + { + auto background = std::make_shared< SolidColorBrush >( Colors::WhiteSmoke ); + auto pen = std::make_shared< SolidColorBrush >( Colors::Black ); + auto textBlock = AddText( host, background, pen, 300, 300, Position( 400, 50 ), sLoremIpsum ); + textBlock->SetTextAlignment( sw::TextAlignment::Justify ); + } + { + auto background = std::make_shared< SolidColorBrush >( Colors::WhiteSmoke ); + auto pen = std::make_shared< SolidColorBrush >( Colors::Black ); + auto textBlock = AddText( host, background, pen, 300, 300, Position( 750, 50 ), sLoremIpsum ); + textBlock->SetTextAlignment( sw::TextAlignment::Right ); + } + { + auto background = std::make_shared< SolidColorBrush >( Colors::WhiteSmoke ); + auto pen = std::make_shared< SolidColorBrush >( Colors::Black ); + auto textBlock = AddText( host, background, pen, 300, 300, Position( 1100, 50 ), sLoremIpsum ); + textBlock->SetTextAlignment( sw::TextAlignment::Center ); + } + + { + auto pen = std::make_shared< ImageBrush >(); + pen->SetTexture( "$(Application-Dir)/pool-water-texture.jpg" ); + + auto background = std::make_shared< SolidColorBrush >( Colors::Transparent ); + auto textBlock = AddText( host, background, pen, 300, 300, Position( 50, 350 ), L"ABO" ); + textBlock->SetTextAlignment( sw::TextAlignment::Justify ); + textBlock->SetFontSize( 80 ); + } + + + { + auto background = std::make_shared< ImageBrush >(); + background->SetTexture( "$(Application-Dir)/pool-water-texture.jpg" ); + + auto pen = std::make_shared< SolidColorBrush >( Colors::WhiteSmoke ); + auto textBlock = AddText( host, background, pen, 300, 300, Position( 50, 450 ), sLoremIpsum ); + textBlock->SetTextAlignment( sw::TextAlignment::Justify ); + } + { + auto pen = std::make_shared< ImageBrush >(); + pen->SetTexture( "$(Application-Dir)/pool-water-texture.jpg" ); + + auto background = std::make_shared< SolidColorBrush >( Colors::WhiteSmoke ); + auto textBlock = AddText( host, background, pen, 300, 300, Position( 400, 450 ), sLoremIpsum ); + textBlock->SetTextAlignment( sw::TextAlignment::Justify ); + } + { + auto pen = std::make_shared< AngleGradientBrush >(); + pen->SetGradientCenter( Point( 0.5f, 0.5f ) ); + pen->AddGradientStop( GradientStop( 0xFFFF0000, 0.0f ) ); + pen->AddGradientStop( GradientStop( 0xFFFFFF00, 0.3f ) ); + pen->AddGradientStop( GradientStop( 0xFF00FFFF, 0.7f ) ); + pen->AddGradientStop( GradientStop( 0xFF0000FF, 1.0f ) ); + + auto background = std::make_shared< SolidColorBrush >( Colors::Transparent ); + auto textBlock = AddText( host, background, pen, 300, 300, Position( 750, 450 ), sLoremIpsum ); + textBlock->SetTextAlignment( sw::TextAlignment::Left ); + } + { + auto pen = std::make_shared< LinearGradientBrush >(); + pen->SetGradientAxis( Point( 0.0f, 0.0f ), Point( 1.0f, 1.0f ) ); + pen->AddGradientStop( GradientStop( 0xFFFF0000, 0.0f ) ); + pen->AddGradientStop( GradientStop( 0xFF00FF00, 0.4f ) ); + pen->AddGradientStop( GradientStop( 0xFF0000FF, 0.7f ) ); + pen->AddGradientStop( GradientStop( 0xFFFFFF00, 1.0f ) ); + + auto background = std::make_shared< SolidColorBrush >( Colors::Transparent ); + auto textBlock = AddText( host, background, pen, 300, 300, Position( 1100, 450 ), sLoremIpsum ); + textBlock->SetTextAlignment( sw::TextAlignment::Left ); + } } diff --git a/swGraphicAPI/Assets/TextAsset/Text.cpp b/swGraphicAPI/Assets/TextAsset/Text.cpp index 360a67da..094629f6 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.cpp +++ b/swGraphicAPI/Assets/TextAsset/Text.cpp @@ -119,7 +119,7 @@ void TextArranger::ApplyAlignement( const FontLayout& layout, std if( letters.empty() || text.length() < letters.size() ) return; - Size charIdx = letters.size() - 1; + Size lastCharIdx = letters.size() - 1; float textWidth = TextWidth( letters, text.data(), layout ); float remainingSpace = this->Bounds.Right - this->Bounds.Left - textWidth; @@ -150,20 +150,19 @@ void TextArranger::ApplyAlignement( const FontLayout& layout, std case TextAlignment::Justify: { // Find all spaces which will be extended. - auto numSpaces = std::count_if( text.begin(), text.begin() + charIdx, [](wchar_t c) { return IsWhitespace(c); }); + auto numSpaces = std::count_if( text.begin(), text.begin() + lastCharIdx, [](wchar_t c) { return IsWhitespace(c); }); // Distribute remaining space equally between all spaces. // (Besides last one: we have one place less between than number of chars) - float offset = remainingSpace / ( numSpaces - 1 ); + float offsetPerSpace = remainingSpace / ( numSpaces - 1 ); + float curOffset = 0.0f; - for( Size charIdx = 0; charIdx < text.length(); charIdx++ ) + for( Size i = 0; i < letters.size(); i++ ) { - if( IsWhitespace( text[ charIdx ] ) ) - { - for( Size i = 0; i < letters.size(); i++ ) - if( IsWhitespace( text[ i ] ) ) - letters[ i ].x += offset; - } + if( IsWhitespace( text[ i ] ) ) + curOffset += offsetPerSpace; + + letters[ i ].x += curOffset; } break; } From f875d253bca0dda93e85d97172d55be3ad78ebeb Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Wed, 13 Nov 2024 01:11:21 +0100 Subject: [PATCH 53/96] Fix justification broken due to line width mis-computation --- swGUI/Prototypes/TextShowcase/Application.cpp | 2 +- swGraphicAPI/Assets/TextAsset/Text.cpp | 83 ++++++++++++++----- swGraphicAPI/Assets/TextAsset/Text.h | 6 ++ swGraphicAPI/Assets/TextAsset/Text.inl | 14 +--- 4 files changed, 72 insertions(+), 33 deletions(-) diff --git a/swGUI/Prototypes/TextShowcase/Application.cpp b/swGUI/Prototypes/TextShowcase/Application.cpp index 59df332f..3cf43ac5 100644 --- a/swGUI/Prototypes/TextShowcase/Application.cpp +++ b/swGUI/Prototypes/TextShowcase/Application.cpp @@ -100,7 +100,7 @@ void AddControls ( HostWindow* host ) auto pen = std::make_shared< ImageBrush >(); pen->SetTexture( "$(Application-Dir)/pool-water-texture.jpg" ); - auto background = std::make_shared< SolidColorBrush >( Colors::WhiteSmoke ); + auto background = std::make_shared< SolidColorBrush >( Colors::Transparent ); auto textBlock = AddText( host, background, pen, 300, 300, Position( 400, 450 ), sLoremIpsum ); textBlock->SetTextAlignment( sw::TextAlignment::Justify ); } diff --git a/swGraphicAPI/Assets/TextAsset/Text.cpp b/swGraphicAPI/Assets/TextAsset/Text.cpp index 094629f6..c10451da 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.cpp +++ b/swGraphicAPI/Assets/TextAsset/Text.cpp @@ -150,11 +150,12 @@ void TextArranger::ApplyAlignement( const FontLayout& layout, std case TextAlignment::Justify: { // Find all spaces which will be extended. - auto numSpaces = std::count_if( text.begin(), text.begin() + lastCharIdx, [](wchar_t c) { return IsWhitespace(c); }); + auto numSpaces = std::count_if( text.begin(), text.begin() + lastCharIdx, [](wchar_t c) { return IsWhitespace(c); }); + auto trailingSpaces = CountTrailingWhitespaces( std::wstring_view( text.data(), lastCharIdx ) ); // Distribute remaining space equally between all spaces. // (Besides last one: we have one place less between than number of chars) - float offsetPerSpace = remainingSpace / ( numSpaces - 1 ); + float offsetPerSpace = remainingSpace / ( numSpaces - trailingSpaces ); float curOffset = 0.0f; for( Size i = 0; i < letters.size(); i++ ) @@ -175,28 +176,18 @@ void TextArranger::ApplyAlignement( const FontLayout& layout, std float TextArranger::TextWidth( const std::vector< Position2d >& letters, const std::wstring& text, const FontLayout& layout ) const { - Size charIdx = letters.size() - 1; - Position2d last = letters[ charIdx ]; - float adjustLast = 0.0; + Size lastCharIdx = letters.size() - 1; + Size trailingSpaces = CountTrailingWhitespaces( std::wstring_view( text.c_str(), letters.size() ) ); + i64 lastNonSpace = (i64)lastCharIdx - (i64)trailingSpaces; - if( IsSpace( text[ charIdx ] ) ) - { - // If last character was space, we want to adjust to last character before. - adjustLast = -( this->SpaceSize + this->Interspace ); - } - else if( IsNewline( text[ charIdx ] ) ) - { - // Ignore newline, since last character is already in correct position. - float adjustLast = 0.0; - } - else - { - // Normal character. We need to move forward to right edge. - auto& glyph = layout.Glyphs.at( text[ charIdx ] ); - adjustLast = (float)glyph.Width - (float)glyph.BearingX; - } + if( lastNonSpace < 0 ) + return 0.0f; // No characters in text (only spaces or newlines) - return letters.back().x - letters.front().x + adjustLast; + // We need to find right edge of the last non whitespace character in line. + auto lastRightEdge = TopRightVertex( layout.Glyphs.at( text[ lastNonSpace ] ), letters[ lastNonSpace ] ).x; + auto firstLeftEdge = TopLeftVertex( layout.Glyphs.at( text[ 0 ] ), letters[ 0 ] ).x; + + return lastRightEdge - firstLeftEdge; } // ================================ // @@ -256,6 +247,54 @@ Rect2d TextArranger::ComputeTextBounds( const std::vector< Position // ================================ // +Size TextArranger::CountTrailingWhitespaces( const std::wstring_view& text ) +{ + for( auto iter = text.rbegin(); iter != text.rend(); iter++ ) + { + if( !IsWhitespace( *iter ) ) + return std::distance( text.rbegin(), iter ); + } + + return 0; +} + +// ================================ // + +Position2d TextArranger::TopLeftVertex( const Glyph& glyph, Position2d position ) +{ + Position2d bearing = Position2d( (float)glyph.BearingX, (float)glyph.BearingY ); + return position + bearing; +} + +// ================================ // + +Position2d TextArranger::TopRightVertex( const Glyph& glyph, Position2d position ) +{ + Position2d bearing = Position2d( (float)glyph.BearingX, (float)glyph.BearingY ); + Position2d quadTopRight = Position2d( (float)glyph.Width, 0.f ); + return quadTopRight + position + bearing; +} + +// ================================ // + +Position2d TextArranger::BottomLeftVertex( const Glyph& glyph, Position2d position ) +{ + Position2d bearing = Position2d( (float)glyph.BearingX, (float)glyph.BearingY ); + Position2d quadBottomLeft = Position2d( 0.f, -(float)glyph.Height ); + return quadBottomLeft + position + bearing; +} + +// ================================ // + +Position2d TextArranger::BottomRightVertex( const Glyph& glyph, Position2d position ) +{ + Position2d bearing = Position2d( (float)glyph.BearingX, (float)glyph.BearingY ); + Position2d quadBottomRight = Position2d( (float)glyph.Width, -(float)glyph.Height ); + return quadBottomRight + position + bearing; +} + +// ================================ // + Nullable< geom::IndexedGeometryBuffer< geom::VertexShape2D, Index32 > > TextArranger::GenerateGeometry( const std::wstring& text, const FontAssetPtr font, bool genBackground ) const { diff --git a/swGraphicAPI/Assets/TextAsset/Text.h b/swGraphicAPI/Assets/TextAsset/Text.h index 8a6ef867..f0501aca 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.h +++ b/swGraphicAPI/Assets/TextAsset/Text.h @@ -75,6 +75,12 @@ class TextArranger static bool IsSpace( wchar_t character ); static Size EstimateLineLength( std::wstring_view text ); static Rect2d ComputeTextBounds( const std::vector< Position2d >& letters ); + static Size CountTrailingWhitespaces( const std::wstring_view& text ); + + static Position2d TopLeftVertex( const Glyph& glyph, Position2d pos ); + static Position2d TopRightVertex( const Glyph& glyph, Position2d pos ); + static Position2d BottomLeftVertex( const Glyph& glyph, Position2d pos ); + static Position2d BottomRightVertex( const Glyph& glyph, Position2d pos ); public: Nullable< geom::IndexedGeometryBuffer< geom::VertexShape2D, Index32 > > GenerateGeometry( const std::wstring& text, const FontAssetPtr font, bool genBackground ) const; diff --git a/swGraphicAPI/Assets/TextAsset/Text.inl b/swGraphicAPI/Assets/TextAsset/Text.inl index 4eead160..7a372beb 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.inl +++ b/swGraphicAPI/Assets/TextAsset/Text.inl @@ -147,25 +147,19 @@ inline void TextGeometryGenerator< VertexType, IndexType, TextAcc >::PutLetterVertex( VertexType& vertex, const Glyph& glyph, Position2d position, Size vertexIdx ) const { - Position2d bearing = Position2d( (float)glyph.BearingX, (float)glyph.BearingY ); - switch ( vertexIdx % 4 ) { case 0: - Position2d quadTopLeft = Position2d( 0.f, 0.f ); - TextAcc::GetPos( vertex ) = quadTopLeft + position + bearing; + TextAcc::GetPos( vertex ) = TextArranger::TopLeftVertex( glyph, position ); break; case 1: - Position2d quadTopRight = Position2d( (float)glyph.Width, 0.f ); - TextAcc::GetPos( vertex ) = quadTopRight + position + bearing; + TextAcc::GetPos( vertex ) = TextArranger::TopRightVertex( glyph, position ); break; case 2: - Position2d quadBottomLeft = Position2d( 0.f, -(float)glyph.Height ); - TextAcc::GetPos( vertex ) = quadBottomLeft + position + bearing; + TextAcc::GetPos( vertex ) = TextArranger::BottomLeftVertex( glyph, position ); break; case 3: - Position2d quadBottomRight = Position2d( (float)glyph.Width, -(float)glyph.Height ); - TextAcc::GetPos( vertex ) = quadBottomRight + position + bearing; + TextAcc::GetPos( vertex ) = TextArranger::BottomRightVertex( glyph, position ); break; } } From 825a0bf68f26a02ab3b535562f170075cc632e22 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Wed, 13 Nov 2024 11:02:15 +0100 Subject: [PATCH 54/96] Fix FakeGeometry compilation --- swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.cpp | 4 ++-- swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.cpp b/swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.cpp index c71a4fe8..a54438a4 100644 --- a/swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.cpp +++ b/swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.cpp @@ -47,7 +47,7 @@ bool FakeGeometry::HitTest ( const Rect& rectangle ) const // ================================ // // -GeometryData FakeGeometry::Generate () +Nullable< GeometryData > FakeGeometry::Generate() { BufferTyped< VertexShape2D > vertexBuffer( 4 ); BufferTyped< Index16 > indexBuffer( 6 ); @@ -59,7 +59,7 @@ GeometryData FakeGeometry::Generate () // ================================ // // -BufferRange FakeGeometry::BufferData () +BufferRange FakeGeometry::BufferData () { return m_buffer.GetView(); } diff --git a/swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.h b/swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.h index 58b0bf12..df45b5ab 100644 --- a/swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.h +++ b/swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.h @@ -46,8 +46,8 @@ class FakeGeometry : public Geometry virtual bool HitTest ( const Point& point ) const override; virtual bool HitTest ( const Rect& rectangle ) const override; - virtual GeometryData Generate () override; - virtual BufferRange BufferData () override; + virtual Nullable< GeometryData > Generate () override; + virtual BufferRange BufferData () override; virtual filesystem::Path ShaderFunctionFile () override; virtual std::string GeometryName () override; From 0dabc8338377d5e5d052584d16eccb45904bbbbe Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Wed, 13 Nov 2024 11:40:38 +0100 Subject: [PATCH 55/96] Fix padding on right side when justifying --- swGraphicAPI/Assets/TextAsset/Text.cpp | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/swGraphicAPI/Assets/TextAsset/Text.cpp b/swGraphicAPI/Assets/TextAsset/Text.cpp index c10451da..859bd1a5 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.cpp +++ b/swGraphicAPI/Assets/TextAsset/Text.cpp @@ -92,6 +92,18 @@ std::vector< Position2d > TextArranger::ArrangeLine( std::wstring_ letters.push_back( translate ); translate += Position2d( this->Interspace + glyph.AdvanceX, 0.f ); + + // Conditionally wrapping text for known characters. For unknown characters we assume, that the next + // character will be correct and wrapping will happen than. + // We need to know glyph vertex right edge, so this logic can't be moved after. + if( this->WrapText && TopRightVertex( glyph, translate ).x + layout.Padding > this->Bounds.Right ) + { + // Text crossed right bound. We need to break line. + // Removing all characters since last space. Next call to ArrangeLine will handle those characters + // again. + letters.erase( letters.begin() + ( lastSpace + 1 ), letters.end() ); + break; + } } else { @@ -99,14 +111,6 @@ std::vector< Position2d > TextArranger::ArrangeLine( std::wstring_ letters.push_back( translate ); translate += Position2d( this->SpaceSize + this->Interspace, 0.f ); } - - if( this->WrapText && translate.x > this->Bounds.Right ) - { - // Text crossed right bound. We need to break line. - // Removing all characters since last space. Next call to ArrangeLine will handle those characters again. - letters.erase( letters.begin() + (lastSpace + 1), letters.end() ); - break; - } } return letters; @@ -184,8 +188,9 @@ float TextArranger::TextWidth( const std::vector< Position2d >& le return 0.0f; // No characters in text (only spaces or newlines) // We need to find right edge of the last non whitespace character in line. - auto lastRightEdge = TopRightVertex( layout.Glyphs.at( text[ lastNonSpace ] ), letters[ lastNonSpace ] ).x; - auto firstLeftEdge = TopLeftVertex( layout.Glyphs.at( text[ 0 ] ), letters[ 0 ] ).x; + auto lastRightEdge = TopRightVertex( layout.Glyphs.at( text[ lastNonSpace ] ), letters[ lastNonSpace ] ).x + layout.Padding; + // We don't take TopLeftVertex, because it's translated by bearingX, which causes natural padding. + auto firstLeftEdge = letters[ 0 ].x; return lastRightEdge - firstLeftEdge; } From 5b5ec5e4eaa6cb17988e6ed9a3d66bbe5cdd0bc8 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Wed, 13 Nov 2024 11:46:08 +0100 Subject: [PATCH 56/96] Don't justify last line of paragraph or whole text --- swGraphicAPI/Assets/TextAsset/Text.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/swGraphicAPI/Assets/TextAsset/Text.cpp b/swGraphicAPI/Assets/TextAsset/Text.cpp index 859bd1a5..804754f1 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.cpp +++ b/swGraphicAPI/Assets/TextAsset/Text.cpp @@ -153,6 +153,13 @@ void TextArranger::ApplyAlignement( const FontLayout& layout, std case TextAlignment::Justify: { + // The last line in paragraph is not justified. Should be aligned left. + // Assumption: text contains not only one line, but whole text starting from this line. + // The second condition checks cases when text doesn't end with newline and it last character + // in whole text. + if( IsNewline( text[ lastCharIdx ] ) || letters.size() == text.length() ) + return; + // Find all spaces which will be extended. auto numSpaces = std::count_if( text.begin(), text.begin() + lastCharIdx, [](wchar_t c) { return IsWhitespace(c); }); auto trailingSpaces = CountTrailingWhitespaces( std::wstring_view( text.data(), lastCharIdx ) ); From 734b0f4e56d7b9b11df7455887777af2492c89fd Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Wed, 13 Nov 2024 12:00:06 +0100 Subject: [PATCH 57/96] Snap to pixels option in arranger --- swGraphicAPI/Assets/TextAsset/Text.cpp | 17 ++++++++++++++--- swGraphicAPI/Assets/TextAsset/Text.h | 3 +++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/swGraphicAPI/Assets/TextAsset/Text.cpp b/swGraphicAPI/Assets/TextAsset/Text.cpp index 804754f1..8815b921 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.cpp +++ b/swGraphicAPI/Assets/TextAsset/Text.cpp @@ -47,6 +47,8 @@ std::vector< Position2d > TextArranger::ArrangeText( const std::wstring& text, letters.insert( letters.end(), line.begin(), line.end() ); translate = Position2d( this->Bounds.Left, translate.y - this->Interline * layout.NewLineSize() ); + // @todo Should check bottom edge of the text, not advance position. + // It should take into account that letters have different sizes and stick out in different way. if( this->CutOutOfBounds && translate.y < this->Bounds.Bottom ) break; } @@ -140,14 +142,14 @@ void TextArranger::ApplyAlignement( const FontLayout& layout, std { float offset = remainingSpace / 2.0f; for( auto& letter : letters ) - letter.x += offset; + letter.x = MoveToPixelGrid( offset + letter.x ); break; } case TextAlignment::Right: { for( auto& letter : letters ) - letter.x += remainingSpace; + letter.x = MoveToPixelGrid( remainingSpace + letter.x ); break; } @@ -174,7 +176,7 @@ void TextArranger::ApplyAlignement( const FontLayout& layout, std if( IsWhitespace( text[ i ] ) ) curOffset += offsetPerSpace; - letters[ i ].x += curOffset; + letters[ i ].x = MoveToPixelGrid( curOffset + letters[ i ].x ); } break; } @@ -204,6 +206,15 @@ float TextArranger::TextWidth( const std::vector< Position2d >& le // ================================ // +float TextArranger::MoveToPixelGrid( float value ) const +{ + if( this->SnapToPixel ) + return std::round( value ); + return value; +} + +// ================================ // + bool TextArranger::IsWhitespace ( wchar_t character ) { if( character == L' ' || character == L'\n' || character == L'\r' ) diff --git a/swGraphicAPI/Assets/TextAsset/Text.h b/swGraphicAPI/Assets/TextAsset/Text.h index f0501aca..96443d10 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.h +++ b/swGraphicAPI/Assets/TextAsset/Text.h @@ -46,6 +46,7 @@ class TextArranger bool WrapText; /**Text crossing lower Bound won't be generated.*/ bool CutOutOfBounds; + bool SnapToPixel; //< Avoids letters blurring if they are not aligned to pixel grid. Rect2d Bounds; public: @@ -57,6 +58,7 @@ class TextArranger , UseKerning( true ) , WrapText( false ) , CutOutOfBounds( false ) + , SnapToPixel( true ) , Bounds( { 0.0f, 0.0f, 0.0f, 0.0f } ) {} @@ -69,6 +71,7 @@ class TextArranger void ApplyAlignement( const FontLayout& layout, std::vector< Position2d >& letters, std::wstring_view text ) const; float TextWidth( const std::vector< Position2d >& letters, const std::wstring& text, const FontLayout& layout ) const; + float MoveToPixelGrid( float value ) const; static bool IsWhitespace( wchar_t character ); static bool IsNewline( wchar_t character ); From 338690f9b20c378c9c91c32844b981af47ee21f5 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Wed, 13 Nov 2024 13:10:07 +0100 Subject: [PATCH 58/96] Fix tests for TextArranger alignment --- .../TextAsset/Loader/FontAssetInitData.cpp | 17 +++++ .../TextAsset/Loader/FontAssetInitData.h | 2 + swGraphicAPI/Assets/TextAsset/Text.cpp | 20 ++--- swGraphicAPI/Assets/TextAsset/Text.h | 2 +- swGraphicAPI/Tests/TestText/TestArrange.cpp | 76 ++++++++++--------- 5 files changed, 70 insertions(+), 47 deletions(-) diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp index a2c1af5d..d70f87f9 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp @@ -94,6 +94,23 @@ uint32 FontLayout::GetMaxWidthWithPadding() const return GetMaxWidth() + 2 * Padding; } +// ================================ // + +uint32 FontLayout::GetMaxHightAboveBaseline() const +{ + return GetMaxBearingY(); +} + +// ================================ // + +uint32 FontLayout::GetMaxHightBelowBaseline() const +{ + auto max = std::max_element( this->Glyphs.begin(), this->Glyphs.end(), + []( const auto& a, const auto& b ) + { return a.second.Height - a.second.BearingY < b.second.Height - b.second.BearingY; } ); + return ( *max ).second.Height - ( *max ).second.BearingY; +} + // ================================ // // diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h index c64c4b10..72b82d8b 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h @@ -49,6 +49,8 @@ struct FontLayout uint32 GetMaxBearingY() const; uint32 GetMaxHeightWithPadding() const; uint32 GetMaxWidthWithPadding() const; + uint32 GetMaxHightAboveBaseline() const; //< Allow to compute how much font sticks out above baseline. + uint32 GetMaxHightBelowBaseline() const; //< Allow to compute how much font sticks out below baseline. ImageRect GetGlyphCoords( wchar_t character ) const; diff --git a/swGraphicAPI/Assets/TextAsset/Text.cpp b/swGraphicAPI/Assets/TextAsset/Text.cpp index 8815b921..d5102ff4 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.cpp +++ b/swGraphicAPI/Assets/TextAsset/Text.cpp @@ -47,9 +47,8 @@ std::vector< Position2d > TextArranger::ArrangeText( const std::wstring& text, letters.insert( letters.end(), line.begin(), line.end() ); translate = Position2d( this->Bounds.Left, translate.y - this->Interline * layout.NewLineSize() ); - // @todo Should check bottom edge of the text, not advance position. - // It should take into account that letters have different sizes and stick out in different way. - if( this->CutOutOfBounds && translate.y < this->Bounds.Bottom ) + // Check maximal bottom edge of the text for the most sticking out letter. + if( this->CutOutOfBounds && translate.y - layout.GetMaxHightBelowBaseline() < this->Bounds.Bottom ) break; } @@ -249,7 +248,7 @@ Size TextArranger::EstimateLineLength( std::wstring_view text ) { // ================================ // -Rect2d TextArranger::ComputeTextBounds( const std::vector< Position2d >& letters ) { +Rect2d TextArranger::ComputeTextBounds( const std::vector< Position2d >& letters, const FontLayout& layout ) { if( letters.empty() ) // PlanarUV requires non-zero size. return Rect2d{ 0.f, 0.000001f, 0.f, 0.000001f }; @@ -259,11 +258,12 @@ Rect2d TextArranger::ComputeTextBounds( const std::vector< Position auto [ minY, maxY ] = std::minmax_element( letters.begin(), letters.end(), []( auto& pos1, auto& pos2 ) { return pos1.y < pos2.y; } ); - auto bb = Rect2d{ minX->x, maxX->x, minY->y, maxY->y }; + auto bb = Rect2d{ minX->x, maxX->x, maxY->y + layout.GetMaxHightAboveBaseline(), + minY->y - layout.GetMaxHightBelowBaseline() }; // PlanarUV requires non-zero size. - bb.Right = bb.Right - bb.Left == 0.0f ? 0.000001f : bb.Right; - bb.Bottom = bb.Top - bb.Bottom == 0.0f ? 0.000001f : bb.Bottom; + bb.Right = bb.Right - bb.Left == 0.0f ? bb.Left + 0.000001f : bb.Right; + bb.Bottom = bb.Top - bb.Bottom == 0.0f ? bb.Bottom - 0.000001f : bb.Bottom; return bb; } @@ -278,7 +278,7 @@ Size TextArranger::CountTrailingWhitespaces( const std::wstring_v return std::distance( text.rbegin(), iter ); } - return 0; + return text.length(); } // ================================ // @@ -322,7 +322,7 @@ Nullable< geom::IndexedGeometryBuffer< geom::VertexShape2D, Index32 > > TextArranger::GenerateGeometry( const std::wstring& text, const FontAssetPtr font, bool genBackground ) const { auto letters = this->ArrangeText( text, font->GetLayout() ); - auto textBB = ComputeTextBounds( letters ); + auto textBB = ComputeTextBounds( letters, font->GetLayout() ); TextGeometryGenerator< geom::VertexShape2D, Index32, geom::TextAcc< geom::VertexShape2D > > generator( std::move( letters ), font, text ); generator.GenerateBackground = genBackground; @@ -337,7 +337,7 @@ Nullable< geom::IndexedGeometryBuffer< geom::VertexText2D, Index32 > > TextArranger::GenerateGeometryTextured( const std::wstring& text, const FontAssetPtr font, bool genBackground ) const { auto letters = this->ArrangeText( text, font->GetLayout() ); - auto textBB = ComputeTextBounds( letters ); + auto textBB = ComputeTextBounds( letters, font->GetLayout() ); TextGeometryGenerator< geom::VertexText2D, Index32, geom::TexturedTextAcc< geom::VertexText2D > > generator( std::move( letters ), font, text); generator.GenerateBackground = genBackground; diff --git a/swGraphicAPI/Assets/TextAsset/Text.h b/swGraphicAPI/Assets/TextAsset/Text.h index 96443d10..e551a219 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.h +++ b/swGraphicAPI/Assets/TextAsset/Text.h @@ -77,7 +77,7 @@ class TextArranger static bool IsNewline( wchar_t character ); static bool IsSpace( wchar_t character ); static Size EstimateLineLength( std::wstring_view text ); - static Rect2d ComputeTextBounds( const std::vector< Position2d >& letters ); + static Rect2d ComputeTextBounds( const std::vector< Position2d >& letters, const FontLayout& layout ); static Size CountTrailingWhitespaces( const std::wstring_view& text ); static Position2d TopLeftVertex( const Glyph& glyph, Position2d pos ); diff --git a/swGraphicAPI/Tests/TestText/TestArrange.cpp b/swGraphicAPI/Tests/TestText/TestArrange.cpp index a601dbac..c2525209 100644 --- a/swGraphicAPI/Tests/TestText/TestArrange.cpp +++ b/swGraphicAPI/Tests/TestText/TestArrange.cpp @@ -19,25 +19,13 @@ using namespace sw; -const std::wstring sLoremIpsum = L"Lorem ipsum dolor sit amet, consectetur adipiscing elit. \ -Pellentesque pulvinar est id vehicula rutrum. Aliquam luctus consectetur erat consectetur\ -pretium. Morbi nec mi nec quam feugiat pharetra a consequat magna. Sed ac dui nec felis \ -iaculis ultricies. Vivamus a maximus massa. Duis feugiat justo quis eros vestibulum, non mattis\ -turpis tincidunt. Proin tristique, felis auctor placerat maximus, dui augue hendrerit risus, \ -consectetur molestie nisl quam ac dui. Aliquam et erat arcu. Nam at nisl dapibus sem fringilla \ -sodales sit amet in turpis. Vivamus interdum nunc vitae orci pretium aliquam. Vivamus ut \ -consectetur diam. Duis dictum auctor accumsan. Morbi a nibh leo. Nam elementum lorem sit \ -amet dignissim hendrerit."; - -const std::wstring sLoremIpsumWithNewlines = L"Lorem ipsum dolor sit amet, consectetur adipiscing elit. \n\ -Pellentesque pulvinar est id vehicula rutrum. Aliquam luctus consectetur erat consectetur\n\ -pretium. Morbi nec mi nec quam feugiat pharetra a consequat magna. Sed ac dui nec felis \n\ -iaculis ultricies. Vivamus a maximus massa. Duis feugiat justo quis eros vestibulum, non mattis\n\ -turpis tincidunt. Proin tristique, felis auctor placerat maximus, dui augue hendrerit risus, \n\ -consectetur molestie nisl quam ac dui. Aliquam et erat arcu. Nam at nisl dapibus sem fringilla \n\ -sodales sit amet in turpis. Vivamus interdum nunc vitae orci pretium aliquam. Vivamus ut \n\ -consectetur diam. Duis dictum auctor accumsan. Morbi a nibh leo. Nam elementum lorem sit \n\ -amet dignissim hendrerit."; +const std::wstring sLoremIpsum = L"Lorem ipsum is a dummy or placeholder text commonly used \ +in graphic design, publishing, and web development to fill empty spaces in a layout that do \ +not yet have content.\n\ +Lorem ipsum is typically a corrupted version of De finibus bonorum et malorum, \ +a 1st - century BC text by the Roman statesman and philosopher Cicero, with words altered, added, \ +and removed to make it nonsensical and improper Latin. \ +The first two words themselves are a truncation of dolorem ipsum( \"pain itself\" )."; @@ -47,6 +35,12 @@ bool AlmostEqual( float a, float b ) return fabs( a - b ) < EPSILON; } +bool PixelEqual( float a, float b ) +{ + const float EPSILON = 0.6f; + return fabs( a - b ) <= EPSILON; +} + // ================================ // // TEST_CASE( "GraphicAPI.Text.Arrange.WithBounds.AlignLeft", "[GraphicAPI][Text]" ) @@ -59,8 +53,8 @@ TEST_CASE( "GraphicAPI.Text.Arrange.WithBounds.AlignLeft", "[GraphicAPI][Text]" auto font = api.Load< FontAsset >( "$(FontAssets)/arial.ttf", &init ); REQUIRE_IS_VALID( font ); - TextArranger arranger; - arranger.Bounds = { 0.0f, 200.0f, 0.0f, 200.0f }; + auto arranger = TextArranger::CreateFrom( font ); + arranger.Bounds = { 0.0f, 300.0f, 0.0f, -300.0f }; arranger.WrapText = true; arranger.TextAlign = TextAlignment::Left; @@ -68,6 +62,7 @@ TEST_CASE( "GraphicAPI.Text.Arrange.WithBounds.AlignLeft", "[GraphicAPI][Text]" REQUIRE_IS_VALID( geometry ); auto& vertexBuf = geometry.Get().Verticies; + CHECK( vertexBuf.ElementsCount() == 4 * sLoremIpsum.length() ); Size numLeftAligned = 0; Size numRightAligned = 0; @@ -77,16 +72,17 @@ TEST_CASE( "GraphicAPI.Text.Arrange.WithBounds.AlignLeft", "[GraphicAPI][Text]" for( auto idx = 0; idx < vertexBuf.ElementsCount(); idx++ ) { + if( TextArranger::IsWhitespace( sLoremIpsum[ idx / 4 ] ) ) + continue; + auto& vertex = vertexBuf[ idx ].Position; - numLeftAligned += AlmostEqual( vertex.x, 0.0 ) ? 1 : 0; - numRightAligned += AlmostEqual( vertex.x, 200.0 ) ? 1 : 0; + numLeftAligned += PixelEqual( vertex.x, 0.5 ) ? 1 : 0; numRightOutside += vertex.x > arranger.Bounds.Right ? 1 : 0; numLeftOutside += vertex.x < arranger.Bounds.Left ? 1 : 0; numTopOutside += vertex.y > arranger.Bounds.Top ? 1 : 0; } - CHECK( numLeftAligned == 28 ); - CHECK( numRightAligned == 0 ); + CHECK( numLeftAligned == 30 ); CHECK( numRightOutside == 0 ); CHECK( numLeftOutside == 0 ); CHECK( numTopOutside == 0 ); @@ -104,8 +100,8 @@ TEST_CASE( "GraphicAPI.Text.Arrange.WithBounds.AlignRight", "[GraphicAPI][Text]" auto font = api.Load< FontAsset >( "$(FontAssets)/arial.ttf", &init ); REQUIRE_IS_VALID( font ); - TextArranger arranger; - arranger.Bounds = { 0.0f, 200.0f, 0.0f, 200.0f }; + auto arranger = TextArranger::CreateFrom( font ); + arranger.Bounds = { 0.0f, 300.0f, 0.0f, -300.0f }; arranger.WrapText = true; arranger.TextAlign = TextAlignment::Right; @@ -113,6 +109,7 @@ TEST_CASE( "GraphicAPI.Text.Arrange.WithBounds.AlignRight", "[GraphicAPI][Text]" REQUIRE_IS_VALID( geometry ); auto& vertexBuf = geometry.Get().Verticies; + CHECK( vertexBuf.ElementsCount() == 4 * sLoremIpsum.length() ); Size numLeftAligned = 0; Size numRightAligned = 0; @@ -122,16 +119,19 @@ TEST_CASE( "GraphicAPI.Text.Arrange.WithBounds.AlignRight", "[GraphicAPI][Text]" for( auto idx = 0; idx < vertexBuf.ElementsCount(); idx++ ) { + if( TextArranger::IsWhitespace( sLoremIpsum[ idx / 4 ] ) ) + continue; + auto& vertex = vertexBuf[ idx ].Position; - numLeftAligned += AlmostEqual( vertex.x, 0.0 ) ? 1 : 0; - numRightAligned += AlmostEqual( vertex.x, 200.0 ) ? 1 : 0; + numLeftAligned += PixelEqual( vertex.x, 0.5 ) ? 1 : 0; + numRightAligned += PixelEqual( vertex.x, 299.5 ) ? 1 : 0; numRightOutside += vertex.x > arranger.Bounds.Right ? 1 : 0; numLeftOutside += vertex.x < arranger.Bounds.Left ? 1 : 0; numTopOutside += vertex.y > arranger.Bounds.Top ? 1 : 0; } CHECK( numLeftAligned == 0 ); - CHECK( numRightAligned == 28 ); + CHECK( numRightAligned == 30 ); CHECK( numRightOutside == 0 ); CHECK( numLeftOutside == 0 ); CHECK( numTopOutside == 0 ); @@ -149,8 +149,8 @@ TEST_CASE( "GraphicAPI.Text.Arrange.WithBounds.Justify", "[GraphicAPI][Text]" ) auto font = api.Load< FontAsset >( "$(FontAssets)/arial.ttf", &init ); REQUIRE_IS_VALID( font ); - TextArranger arranger; - arranger.Bounds = { 0.0f, 200.0f, 0.0f, 200.0f }; + auto arranger = TextArranger::CreateFrom( font ); + arranger.Bounds = { 0.0f, 300.0f, 0.0f, -300.0f }; arranger.WrapText = true; arranger.TextAlign = TextAlignment::Justify; @@ -158,6 +158,7 @@ TEST_CASE( "GraphicAPI.Text.Arrange.WithBounds.Justify", "[GraphicAPI][Text]" ) REQUIRE_IS_VALID( geometry ); auto& vertexBuf = geometry.Get().Verticies; + CHECK( vertexBuf.ElementsCount() == 4 * sLoremIpsum.length() ); Size numLeftAligned = 0; Size numRightAligned = 0; @@ -167,16 +168,19 @@ TEST_CASE( "GraphicAPI.Text.Arrange.WithBounds.Justify", "[GraphicAPI][Text]" ) for( auto idx = 0; idx < vertexBuf.ElementsCount(); idx++ ) { + if( TextArranger::IsWhitespace( sLoremIpsum[ idx / 4 ] ) ) + continue; + auto& vertex = vertexBuf[ idx ].Position; - numLeftAligned += AlmostEqual( vertex.x, 0.0 ) ? 1 : 0; - numRightAligned += AlmostEqual( vertex.x, 200.0 ) ? 1 : 0; + numLeftAligned += PixelEqual( vertex.x, 0.5 ) ? 1 : 0; + numRightAligned += PixelEqual( vertex.x, 299.5 ) ? 1 : 0; numRightOutside += vertex.x > arranger.Bounds.Right ? 1 : 0; numLeftOutside += vertex.x < arranger.Bounds.Left ? 1 : 0; numTopOutside += vertex.y > arranger.Bounds.Top ? 1 : 0; } - CHECK( numLeftAligned == 28 ); - CHECK( numRightAligned == 28 ); + CHECK( numLeftAligned == 30 ); + CHECK( numRightAligned == 26 ); // We have 2 paragraphs, each last line is not justified. CHECK( numRightOutside == 0 ); CHECK( numLeftOutside == 0 ); CHECK( numTopOutside == 0 ); From aa594e4807d81aa5dbea333f6bf0a2b1f0c01fcf Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Wed, 13 Nov 2024 14:45:48 +0100 Subject: [PATCH 59/96] DependencyProperty for TextBlock --- .../Controls/TextualControls/TextBlock.cpp | 81 ++++++++++++++----- .../Core/Controls/TextualControls/TextBlock.h | 8 +- .../System/DataBinding/DependencyObject.h | 3 +- .../System/DataBinding/DependencyObject.inl | 12 ++- .../System/DataBinding/DependencyProperty.cpp | 5 +- 5 files changed, 81 insertions(+), 28 deletions(-) diff --git a/swGUI/Core/Controls/TextualControls/TextBlock.cpp b/swGUI/Core/Controls/TextualControls/TextBlock.cpp index f5a6d6cc..aa444677 100644 --- a/swGUI/Core/Controls/TextualControls/TextBlock.cpp +++ b/swGUI/Core/Controls/TextualControls/TextBlock.cpp @@ -17,13 +17,28 @@ RTTR_REGISTRATION { rttr::registration::class_< sw::gui::TextBlock >( "sw::gui::TextBlock" ) .property( "Background", &sw::gui::TextBlock::GetBackground, &sw::gui::TextBlock::SetBackground ) - .property( "Foreground", &sw::gui::TextBlock::GetForeground, &sw::gui::TextBlock::SetForeground ); + .property( "Foreground", &sw::gui::TextBlock::GetForeground, &sw::gui::TextBlock::SetForeground ) + .property( "FontFamily", &sw::gui::TextBlock::GetFontFamily, &sw::gui::TextBlock::SetFontFamily ) + .property( "FontStyle", &sw::gui::TextBlock::GetFontStyle, &sw::gui::TextBlock::SetFontStyle ) + .property( "FontWeight", &sw::gui::TextBlock::GetFontWeight, &sw::gui::TextBlock::SetFontWeight ) + .property( "FontSize", &sw::gui::TextBlock::GetFontSize, &sw::gui::TextBlock::SetFontSize ) + .property( "TextAlignment", &sw::gui::TextBlock::GetTextAlignment, &sw::gui::TextBlock::SetTextAlignment ) + .property( "Text", &sw::gui::TextBlock::GetText, &sw::gui::TextBlock::SetText ); } namespace sw { namespace gui { +static DependencyProperty sBackground = DependencyProperty::Register( "Background", TypeID::get< TextBlock >() ); +static DependencyProperty sForeground = DependencyProperty::Register( "Foreground", TypeID::get< TextBlock >() ); +static DependencyProperty sFontFamily = DependencyProperty::Register( "FontFamily", TypeID::get< TextBlock >() ); +static DependencyProperty sFontStyle = DependencyProperty::Register( "FontStyle", TypeID::get< TextBlock >() ); +static DependencyProperty sFontWeight = DependencyProperty::Register( "FontWeight", TypeID::get< TextBlock >() ); +static DependencyProperty sFontSize = DependencyProperty::Register( "FontSize", TypeID::get< TextBlock >() ); +static DependencyProperty sTextAlignment = DependencyProperty::Register( "TextAlignment", TypeID::get< TextBlock >() ); +static DependencyProperty sText = DependencyProperty::Register( "Text", TypeID::get< TextBlock >() ); + // ================================ // TextBlock::TextBlock() @@ -72,12 +87,13 @@ ReturnResult TextBlock::UpdateDrawingResources( ResourceManagerAPI& api ) void TextBlock::SetBackground( BrushPtr brush ) { - m_background = brush; - - // Create new Drawing only if it previously existed. Drawing doesn't exist if Geometry is not set. - if( m_drawing && m_background != m_drawing->GetBrush() ) + if( DependencyObject::SetValue( sBackground, brush, &TextBlock::m_background ) ) { - m_drawing = std::make_shared< TextDrawing >( m_background, m_drawing->GetPen(), m_drawing->GetGeometry() ); + // Create new Drawing only if it previously existed. Drawing doesn't exist if Geometry is not set. + if( m_drawing && m_background != m_drawing->GetBrush() ) + { + m_drawing = std::make_shared< TextDrawing >( m_background, m_drawing->GetPen(), m_drawing->GetGeometry() ); + } } } @@ -86,40 +102,65 @@ void TextBlock::SetBackground( BrushPtr brush ) void TextBlock::SetForeground( BrushPtr pen ) { - m_pen = pen; - - // Create new Drawing only if i previously existed. Drawing doesn't exist if Geometry is not set. - if( m_drawing && m_pen != m_drawing->GetPen() ) + if( DependencyObject::SetValue( sForeground, pen, &TextBlock::m_pen ) ) { - m_drawing = std::make_shared< TextDrawing >( m_drawing->GetBrush(), m_pen, m_drawing->GetGeometry() ); + // Create new Drawing only if i previously existed. Drawing doesn't exist if Geometry is not set. + if( m_drawing && m_pen != m_drawing->GetPen() ) + { + m_drawing = std::make_shared< TextDrawing >( m_drawing->GetBrush(), m_pen, m_drawing->GetGeometry() ); + } } } // ================================ // -void TextBlock::SetFontSize( uint32 size ) +void TextBlock::SetFontFamily( const std::string& fontFamily ) +{ + if( DependencyObject::SetValue( sFontFamily, fontFamily, &TextBlock::m_fontFamily ) ) + InvalidateFont(); +} + +// ================================ // + +void TextBlock::SetFontSize( FontSizeType size ) +{ + if( DependencyObject::SetValue( sFontSize, size, &TextBlock::m_fontSize ) ) + InvalidateFont(); +} + +// ================================ // + +void TextBlock::SetFontStyle( FontStyle fontStyle ) { - m_fontSize = size; - InvalidateFont(); + if( DependencyObject::SetValue( sFontStyle, fontStyle, &TextBlock::m_fontStyle ) ) + InvalidateFont(); } // ================================ // // +void TextBlock::SetFontWeight( FontWeight fontWeight ) +{ + if( DependencyObject::SetValue( sFontWeight, fontWeight, &TextBlock::m_fontWeight ) ) + InvalidateFont(); +} + +// ================================ // + void TextBlock::SetText( const std::wstring& text ) { - m_text = text; - if( m_drawing ) - m_drawing->GetTextGeometry()->SetText( text ); + if( DependencyObject::SetValue( sText, text, &TextBlock::m_text ) ) + if( m_drawing ) + m_drawing->GetTextGeometry()->SetText( text ); } // ================================ // void TextBlock::SetTextAlignment( TextAlignment alignment ) { - m_textAlignment = alignment; - if( m_drawing ) - m_drawing->GetTextGeometry()->SetAlignment( alignment ); + if( DependencyObject::SetValue( sTextAlignment, alignment, &TextBlock::m_textAlignment ) ) + if( m_drawing ) + m_drawing->GetTextGeometry()->SetAlignment( alignment ); } diff --git a/swGUI/Core/Controls/TextualControls/TextBlock.h b/swGUI/Core/Controls/TextualControls/TextBlock.h index ac07ef49..140684fa 100644 --- a/swGUI/Core/Controls/TextualControls/TextBlock.h +++ b/swGUI/Core/Controls/TextualControls/TextBlock.h @@ -74,10 +74,10 @@ class TextBlock : public FrameworkElement BrushPtr GetForeground() const { return m_pen; } void SetFontFamily( const std::string& fontFamily ); - std::string GetFontFamily() const { return m_fontFamily; } + const std::string& GetFontFamily() const { return m_fontFamily; } - void SetFontSize( uint32 size ); - uint32 GetFontSize() const { return m_fontSize; } + void SetFontSize( FontSizeType size ); + FontSizeType GetFontSize() const { return m_fontSize; } FontStyle GetFontStyle() const { return m_fontStyle; } void SetFontStyle( FontStyle fontStyle ); @@ -86,7 +86,7 @@ class TextBlock : public FrameworkElement void SetFontWeight( FontWeight fontWeight ); void SetText( const std::wstring& text ); - std::wstring GetText() const { return m_text; } + const std::wstring& GetText() const { return m_text; } void SetTextAlignment( TextAlignment alignment ); TextAlignment GetTextAlignment() const { return m_textAlignment; } diff --git a/swGUI/Core/System/DataBinding/DependencyObject.h b/swGUI/Core/System/DataBinding/DependencyObject.h index 722df633..6f23cbc3 100644 --- a/swGUI/Core/System/DataBinding/DependencyObject.h +++ b/swGUI/Core/System/DataBinding/DependencyObject.h @@ -61,8 +61,9 @@ class DependencyObject : public Object template< typename ClassType, typename PropertyType > using FieldMemberPtr = PropertyType ( ClassType::* ); + /**@brief Sets dependency property value and returns bool flag indicating if values changed.*/ template< typename ClassType, typename PropertyType > - void SetValue ( const DependencyProperty& prop, PropertyType value, FieldMemberPtr< ClassType, PropertyType > fieldPtr ); + bool SetValue ( const DependencyProperty& prop, PropertyType value, FieldMemberPtr< ClassType, PropertyType > fieldPtr ); private: diff --git a/swGUI/Core/System/DataBinding/DependencyObject.inl b/swGUI/Core/System/DataBinding/DependencyObject.inl index 79e08254..4f3615da 100644 --- a/swGUI/Core/System/DataBinding/DependencyObject.inl +++ b/swGUI/Core/System/DataBinding/DependencyObject.inl @@ -1,4 +1,10 @@ #pragma once +/** +@file DependencyObject.inl +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + #include "DependencyObject.h" @@ -10,10 +16,12 @@ namespace gui // ================================ // // template< typename ClassType, typename PropertyType > -inline void DependencyObject::SetValue ( const DependencyProperty& prop, +inline bool DependencyObject::SetValue ( const DependencyProperty& prop, PropertyType value, FieldMemberPtr< ClassType, PropertyType > fieldPtr ) { + assert( prop.Property.get_type() == TypeID::get< PropertyType >() ); + // Prevent from infinite loop in case of TwoWay binding mode. if( value != GetValue( fieldPtr ) ) { @@ -23,7 +31,9 @@ inline void DependencyObject::SetValue ( const DependencyProperty& prop, if( bindingInfo ) bindingInfo->PropagateToSource(); + return true; } + return false; } diff --git a/swGUI/Core/System/DataBinding/DependencyProperty.cpp b/swGUI/Core/System/DataBinding/DependencyProperty.cpp index f4d4a5f8..7d493076 100644 --- a/swGUI/Core/System/DataBinding/DependencyProperty.cpp +++ b/swGUI/Core/System/DataBinding/DependencyProperty.cpp @@ -5,7 +5,7 @@ */ #include "swGUI/Core/stdafx.h" - +#include "swCommonLib/Common/Exceptions/Common/InvalidCodeLogicException.h" #include "DependencyProperty.h" #include @@ -19,7 +19,8 @@ namespace gui // DependencyProperty DependencyProperty::Register ( rttr::property& property ) { - assert( property.is_valid() ); + if( !property.is_valid() ) + throw InvalidCodeLogicException::Create( "Registering DependencyProperty: rttr property is not valid.", __FILE__, __LINE__ ); return DependencyProperty( property ); } From 1f4be22954f2685c925b996c611599fb6556ed9a Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Wed, 13 Nov 2024 14:56:39 +0100 Subject: [PATCH 60/96] Add rttr definitions of some enums --- swGUI/Core/Controls/TextualControls/TextBlock.cpp | 9 +++++++++ swGraphicAPI/Assets/TextAsset/FontAsset.cpp | 12 ++++++++++++ swGraphicAPI/Assets/TextAsset/Text.cpp | 9 +++++++++ 3 files changed, 30 insertions(+) diff --git a/swGUI/Core/Controls/TextualControls/TextBlock.cpp b/swGUI/Core/Controls/TextualControls/TextBlock.cpp index aa444677..2838986b 100644 --- a/swGUI/Core/Controls/TextualControls/TextBlock.cpp +++ b/swGUI/Core/Controls/TextualControls/TextBlock.cpp @@ -15,6 +15,15 @@ RTTR_REGISTRATION { + rttr::registration::enumeration< sw::gui::FontWeight >( "sw::gui::FontWeight" )( + rttr::value( "Light", sw::gui::FontWeight::Light ), + rttr::value( "Normal", sw::gui::FontWeight::Normal ), + rttr::value( "UltraBold", sw::gui::FontWeight::UltraBold ) ); + + rttr::registration::enumeration< sw::gui::FontStyle >( "sw::gui::FontStyle" )( + rttr::value( "Normal", sw::gui::FontStyle::Normal ), + rttr::value( "Italic", sw::gui::FontStyle::Italic ) ); + rttr::registration::class_< sw::gui::TextBlock >( "sw::gui::TextBlock" ) .property( "Background", &sw::gui::TextBlock::GetBackground, &sw::gui::TextBlock::SetBackground ) .property( "Foreground", &sw::gui::TextBlock::GetForeground, &sw::gui::TextBlock::SetForeground ) diff --git a/swGraphicAPI/Assets/TextAsset/FontAsset.cpp b/swGraphicAPI/Assets/TextAsset/FontAsset.cpp index 22b691f9..caf81ef9 100644 --- a/swGraphicAPI/Assets/TextAsset/FontAsset.cpp +++ b/swGraphicAPI/Assets/TextAsset/FontAsset.cpp @@ -9,9 +9,17 @@ +RTTR_REGISTRATION +{ + rttr::registration::class_< sw::FontAsset >( "sw::FontAsset" ) + .property( "FontSize", &sw::FontAsset::m_fontSize ); +} + namespace sw { +// ================================ // + FontAsset::FontAsset( AssetPath filePath, FontInitData&& initData ) : Resource( filePath ) , m_fontSize( initData.FontSize ) @@ -19,11 +27,15 @@ FontAsset::FontAsset( AssetPath filePath, FontInitData&& initData ) , m_layout( std::move( initData.Layout) ) {} +// ================================ // + const Glyph& FontAsset::GetGlyph( wchar_t character ) const { return this->m_layout.Glyphs.at( character ); } +// ================================ // + float FontAsset::GetKerning( wchar_t first, wchar_t second ) const { return this->m_layout.Kerning.at( std::make_pair( first, second ) ); diff --git a/swGraphicAPI/Assets/TextAsset/Text.cpp b/swGraphicAPI/Assets/TextAsset/Text.cpp index d5102ff4..33d2fdc2 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.cpp +++ b/swGraphicAPI/Assets/TextAsset/Text.cpp @@ -11,6 +11,15 @@ #include "Text.h" +RTTR_REGISTRATION +{ + rttr::registration::enumeration< sw::TextAlignment >( "sw::TextAlignment" )( + rttr::value( "Left", sw::TextAlignment::Left ), + rttr::value( "Center", sw::TextAlignment::Center ), + rttr::value( "Right", sw::TextAlignment::Right ), + rttr::value( "Justify", sw::TextAlignment::Justify ) ); +} + namespace sw { From 23d3308f0ea51970833191c2773fed639426e7be Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Wed, 13 Nov 2024 16:33:49 +0100 Subject: [PATCH 61/96] Fix TwoWay binding --- .../Core/System/DataBinding/BindingsList.cpp | 6 ++-- .../Utils/ClassesUI/DependencyPropsClass.cpp | 6 +++- .../Utils/ClassesUI/DependencyPropsClass.h | 5 ++++ .../TestDependencyObjectBinding.cpp | 29 ++++++++++++++++++- 4 files changed, 42 insertions(+), 4 deletions(-) diff --git a/swGUI/Core/System/DataBinding/BindingsList.cpp b/swGUI/Core/System/DataBinding/BindingsList.cpp index b902ef64..14c74976 100644 --- a/swGUI/Core/System/DataBinding/BindingsList.cpp +++ b/swGUI/Core/System/DataBinding/BindingsList.cpp @@ -72,11 +72,13 @@ ReturnResult BindingsList::AddBinding ( BindingPtr binding ) // void BindingsList::AddBindingLink ( const BindingInfoPtr& binding ) { - auto sourcePropInfo = FindBinding( binding->GetProperty() ); + // We are the source of the Binding soe our BIndingInfo object should be reverse of the target. + auto sourceProperty = binding->GetBinding()->GetSourceProperty(); + auto sourcePropInfo = FindBinding( sourceProperty ); // If BindingInfo object didn't exist, we create new one with empty binding. if( sourcePropInfo == nullptr ) - sourcePropInfo = std::make_shared< BindingInfo >( binding->GetProperty() ); + sourcePropInfo = std::make_shared< BindingInfo >( sourceProperty ); sourcePropInfo->AddBindingLink( binding ); m_bindings.push_back( sourcePropInfo ); diff --git a/swGUI/TestFramework/Utils/ClassesUI/DependencyPropsClass.cpp b/swGUI/TestFramework/Utils/ClassesUI/DependencyPropsClass.cpp index 6af1b403..a3ad2041 100644 --- a/swGUI/TestFramework/Utils/ClassesUI/DependencyPropsClass.cpp +++ b/swGUI/TestFramework/Utils/ClassesUI/DependencyPropsClass.cpp @@ -10,7 +10,9 @@ RTTR_REGISTRATION { rttr::registration::class_< sw::gui::DependencyPropsClass >( "sw::gui::DependencyPropsClass" ) .property( "NumberItems", &sw::gui::DependencyPropsClass::GetNumberItems, &sw::gui::DependencyPropsClass::SetNumberItems ) - .property( "ContainerName", &sw::gui::DependencyPropsClass::GetContainerName, &sw::gui::DependencyPropsClass::SetContainerName ); + .property( "ContainerName", &sw::gui::DependencyPropsClass::GetContainerName, &sw::gui::DependencyPropsClass::SetContainerName ) + .property( "RandomName", &sw::gui::DependencyPropsClass::GetRandomName, &sw::gui::DependencyPropsClass::SetRandomName ); + ; } @@ -22,6 +24,7 @@ namespace gui DependencyProperty DependencyPropsClass::sNumberItemsProperty = DependencyProperty::Register( "NumberItems", TypeID::get< DependencyPropsClass >() ); DependencyProperty DependencyPropsClass::sContainerNameProperty = DependencyProperty::Register( "ContainerName", TypeID::get< DependencyPropsClass >() ); +DependencyProperty DependencyPropsClass::sRandomNameProperty = DependencyProperty::Register( "RandomName", TypeID::get< DependencyPropsClass >() ); @@ -30,6 +33,7 @@ DependencyProperty DependencyPropsClass::sContainerNameProperty = DependencyProp DependencyPropsClass::DependencyPropsClass() : m_numberItems( 3 ) , m_containerName( "Name" ) + , m_randomName( "Blaaa" ) {} diff --git a/swGUI/TestFramework/Utils/ClassesUI/DependencyPropsClass.h b/swGUI/TestFramework/Utils/ClassesUI/DependencyPropsClass.h index 9e38513b..c95de1d0 100644 --- a/swGUI/TestFramework/Utils/ClassesUI/DependencyPropsClass.h +++ b/swGUI/TestFramework/Utils/ClassesUI/DependencyPropsClass.h @@ -27,11 +27,13 @@ class DependencyPropsClass : public DependencyObject static DependencyProperty sNumberItemsProperty; static DependencyProperty sContainerNameProperty; + static DependencyProperty sRandomNameProperty; private: uint32 m_numberItems; std::string m_containerName; + std::string m_randomName; public: @@ -45,6 +47,9 @@ class DependencyPropsClass : public DependencyObject const std::string& GetContainerName () const { return m_containerName; } void SetContainerName ( const std::string& value ) { DependencyObject::SetValue( sContainerNameProperty, value, &DependencyPropsClass::m_containerName ); } + + const std::string& GetRandomName () const { return m_randomName; } + void SetRandomName ( const std::string& value ) { DependencyObject::SetValue( sRandomNameProperty, value, &DependencyPropsClass::m_randomName ); } }; diff --git a/swGUI/Tests/TestBindings/TestDependencyObject/TestDependencyObjectBinding.cpp b/swGUI/Tests/TestBindings/TestDependencyObject/TestDependencyObjectBinding.cpp index df691a32..b4d42244 100644 --- a/swGUI/Tests/TestBindings/TestDependencyObject/TestDependencyObjectBinding.cpp +++ b/swGUI/Tests/TestBindings/TestDependencyObject/TestDependencyObjectBinding.cpp @@ -141,6 +141,34 @@ TEST_CASE( "Binding_DependencyObject_TwoWayBinding", "[GUI][BindingSystem]" ) CHECK( child->GetContainerName() == "Value number 2" ); } +// ================================ // +// +TEST_CASE( "Binding.DependencyObject.TwoWayBinding.DifferentName", "[GUI][BindingSystem]" ) +{ + std::unique_ptr< gui::DependencyPropsClass > root = std::make_unique< gui::DependencyPropsClass >(); + std::unique_ptr< gui::DependencyPropsClass > child = std::make_unique< gui::DependencyPropsClass >(); + + root->SetDataContext( child.get() ); + auto initContainerName = root->GetContainerName(); + auto initRandomName = child->GetRandomName(); + + auto binding = gui::Binding::Create( "RandomName", root.get(), "ContainerName", gui::BindingMode::TwoWay ); + REQUIRE( root->AddBinding( binding ).IsValid() ); + + // To target direction. + CHECK_NOTHROW( child->SetContainerName( "Newly set value" ) ); + CHECK( root->GetRandomName() == "Newly set value" ); + CHECK( root->GetContainerName() == initContainerName ); // Shouldn't change. + CHECK( child->GetContainerName() == "Newly set value" ); + CHECK( child->GetRandomName() == initRandomName ); + + // To source direction. + CHECK_NOTHROW( root->SetRandomName( "Value number 2" ) ); + CHECK( root->GetRandomName() == "Value number 2" ); + CHECK( root->GetContainerName() == initContainerName ); // Shouldn't change. + CHECK( child->GetContainerName() == "Value number 2" ); + CHECK( child->GetRandomName() == initRandomName ); +} // ================================ // // Circular dependancies shouldn't cause dead lock. @@ -172,4 +200,3 @@ TEST_CASE( "Binding_DependencyObject_CircularDependencies_TwoWay", "[GUI][Bindin CHECK( child3->GetNumberItems() == 394 ); CHECK( child4->GetNumberItems() == 394 ); } - From b0d23b4ee915d81e52eba9d612c2397b2c68f989 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Wed, 13 Nov 2024 16:42:35 +0100 Subject: [PATCH 62/96] Binding Text to time counter --- .../TextShowcase/TextShowcase.vcxproj | 1 + swGUI/Prototypes/TextShowcase/Application.cpp | 22 ++++++++++++-- swGUI/Prototypes/TextShowcase/Application.h | 29 +++++++++++++++++++ swGUI/Prototypes/TextShowcase/ViewModel.cpp | 20 +++++++++++++ 4 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 swGUI/Prototypes/TextShowcase/ViewModel.cpp diff --git a/swGUI/ProjectDir/Visual2015/Prototypes/TextShowcase/TextShowcase.vcxproj b/swGUI/ProjectDir/Visual2015/Prototypes/TextShowcase/TextShowcase.vcxproj index fa2c8b43..2846d3f1 100644 --- a/swGUI/ProjectDir/Visual2015/Prototypes/TextShowcase/TextShowcase.vcxproj +++ b/swGUI/ProjectDir/Visual2015/Prototypes/TextShowcase/TextShowcase.vcxproj @@ -158,6 +158,7 @@ + diff --git a/swGUI/Prototypes/TextShowcase/Application.cpp b/swGUI/Prototypes/TextShowcase/Application.cpp index 3cf43ac5..4d4fe1c4 100644 --- a/swGUI/Prototypes/TextShowcase/Application.cpp +++ b/swGUI/Prototypes/TextShowcase/Application.cpp @@ -10,6 +10,7 @@ #include "swGUI/Core/Media/Brushes/ImageBrush.h" #include "swGUI/Core/Media/Colors.h" +#include "swCommonLib/Common/Logging/Logger.h" #include "PrototyperUtils.h" @@ -51,7 +52,7 @@ TextBlock* AddText ( HostWindow* host, BrushPtr brush, BrushPtr pen, float wi // ================================ // // -void AddControls ( HostWindow* host ) +void Application::AddControls ( HostWindow* host ) { { auto background = std::make_shared< SolidColorBrush >( Colors::Transparent ); @@ -87,6 +88,20 @@ void AddControls ( HostWindow* host ) textBlock->SetFontSize( 80 ); } + { + auto pen = std::make_shared< SolidColorBrush >( Colors::BurlyWood ); + auto background = std::make_shared< SolidColorBrush >( Colors::Transparent ); + auto textBlock = AddText( host, background, pen, 300, 100, Position( 350, 350 ), L"" ); + textBlock->SetTextAlignment( sw::TextAlignment::Justify ); + textBlock->SetFontSize( 60 ); + textBlock->SetDataContext( &m_viewModel ); + + auto binding = Binding::Create( "Text", textBlock, "TimeCounter", BindingMode::TwoWay ); + auto result = textBlock->AddBinding( binding ); + if( !result.IsValid() ) + LOG_ERROR( fmt::format( "Binding failed: {}", result.GetErrorReason() ) ); + } + { auto background = std::make_shared< ImageBrush >(); @@ -135,6 +150,7 @@ void AddControls ( HostWindow* host ) // Application::Application ( int argc, char** argv, sw::gui::INativeGUI* gui ) : sw::gui::GUISystem( argc, argv, gui ) + , m_viewModel( ViewModel() ) {} @@ -180,4 +196,6 @@ void Application::OnClosing() /**@brief */ void Application::OnIdle( const sw::gui::FrameTime& frameTime ) -{ } +{ + m_viewModel.SetTimeCounter( std::to_wstring( frameTime.Time ) ); +} diff --git a/swGUI/Prototypes/TextShowcase/Application.h b/swGUI/Prototypes/TextShowcase/Application.h index 16f033b8..538cf74a 100644 --- a/swGUI/Prototypes/TextShowcase/Application.h +++ b/swGUI/Prototypes/TextShowcase/Application.h @@ -7,8 +7,32 @@ #include "swGUI/Core/System/GUISystem.h" +#include "swGUI/Core/System/DataBinding/DependencyObject.h" +#include "swGUI/Core/System/DataBinding/DependencyProperty.h" +/**@brief View of content that will be bound as DataContext to present information.*/ +class ViewModel : public sw::gui::DependencyObject +{ + RTTR_ENABLE( sw::gui::DependencyObject ) + RTTR_REGISTRATION_FRIEND + +private: + static sw::gui::DependencyProperty sTimeCounter; + +private: + + std::wstring m_timeCounter; + +public: + + explicit ViewModel() = default; + + const std::wstring& GetTimeCounter() const { return m_timeCounter; } + void SetTimeCounter( const std::wstring& value ) { SetValue( sTimeCounter, value, &ViewModel::m_timeCounter ); } + +}; + /**@brief Application template class. @@ -17,6 +41,9 @@ class Application : public sw::gui::GUISystem { private: protected: + + ViewModel m_viewModel; + public: explicit Application ( int argc, char** argv, sw::gui::INativeGUI* gui ); ~Application () = default; @@ -30,5 +57,7 @@ class Application : public sw::gui::GUISystem sw::ReturnResult OverridePaths (); + void AddControls ( sw::gui::HostWindow* host ); + }; diff --git a/swGUI/Prototypes/TextShowcase/ViewModel.cpp b/swGUI/Prototypes/TextShowcase/ViewModel.cpp new file mode 100644 index 00000000..35287953 --- /dev/null +++ b/swGUI/Prototypes/TextShowcase/ViewModel.cpp @@ -0,0 +1,20 @@ +/** +@file ViewModel.cpp +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include "Application.h" + + +RTTR_REGISTRATION +{ + rttr::registration::class_< ViewModel >( "ViewModel" ) + .property( "TimeCounter", &ViewModel::GetTimeCounter, &ViewModel::SetTimeCounter ); +} + + +using namespace sw::gui; + + +DependencyProperty ViewModel::sTimeCounter = DependencyProperty::Register( "TimeCounter", TypeID::get< ViewModel >() ); From ad7573fca170232a1a4d960ee6b9534a09890503 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Thu, 14 Nov 2024 23:36:01 +0100 Subject: [PATCH 63/96] Add UpdateData and Resize functions to IBuffer interface and Dx11 api --- .../DX11API/DX11Resources/DX11Buffer.cpp | 107 +++++++++++++++--- .../DX11API/DX11Resources/DX11Buffer.h | Bin 2078 -> 2410 bytes .../MockAPI/MockResources/MockBuffer.cpp | 18 +++ .../MockAPI/MockResources/MockBuffer.h | Bin 1646 -> 1990 bytes swGraphicAPI/Resources/Buffers/IBuffer.h | 26 ++++- 5 files changed, 131 insertions(+), 20 deletions(-) diff --git a/swGraphicAPI/DX11API/DX11Resources/DX11Buffer.cpp b/swGraphicAPI/DX11API/DX11Resources/DX11Buffer.cpp index dec03450..72e17dec 100644 --- a/swGraphicAPI/DX11API/DX11Resources/DX11Buffer.cpp +++ b/swGraphicAPI/DX11API/DX11Resources/DX11Buffer.cpp @@ -7,9 +7,13 @@ #include "DX11Buffer.h" #include "DX11Initializer/DX11ConstantsMapper.h" +#include "swGraphicAPI/DX11API/DX11Initializer/DX11Utils.h" #include "swCommonLib/Common/Converters.h" #include "swCommonLib/Common/Exceptions/Nullable.h" +#include "swCommonLib/Common/fmt.h" + +#include @@ -55,7 +59,6 @@ sw::Nullable< Buffer* > DX11Buffer::CreateFromMemory ( const AssetPath& name, else if( bufferInfo.BufferType == BufferType::ConstantBuffer ) bindFlag = ResourceBinding::RB_ConstantsBuffer; - // Wypeniamy deskryptor bufora D3D11_BUFFER_DESC bufferDesc; ZeroMemory( &bufferDesc, sizeof( bufferDesc ) ); bufferDesc.Usage = DX11ConstantsMapper::Get( bufferInfo.Usage ); @@ -66,7 +69,7 @@ sw::Nullable< Buffer* > DX11Buffer::CreateFromMemory ( const AssetPath& name, D3D11_SUBRESOURCE_DATA initData; if( data ) { - // Jeeli bufor nie istnieje to do funkcji tworzcej bufor powinnimy poda nullptr. + // If the buffer does not exist, we should pass nullptr to the buffer creation function. ZeroMemory( &initData, sizeof( initData ) ); initData.pSysMem = data; initDataPtr = &initData; @@ -76,32 +79,31 @@ sw::Nullable< Buffer* > DX11Buffer::CreateFromMemory ( const AssetPath& name, ID3D11Buffer* newBuffer; result = device->CreateBuffer( &bufferDesc, initDataPtr, &newBuffer ); if( FAILED( result ) ) - return "[DX11Buffer] Buffer creation failed."; + return fmt::format( "[DX11Buffer] Buffer creation failed. {}", DX11Utils::ErrorString( result ) ); DX11Buffer* newBufferObject = new DX11Buffer( name, bufferInfo, newBuffer ); return newBufferObject; } +/**@brief Copies the buffer memory and returns it in a MemoryChunk. -/**@brief Kopiuje pami bufora i zwraca w MemoryChunku. - -Funkcja zwraca zawarto bufora. Pami jest kopiowana dwukrotnie. -Najpierw na GPU do tymczasowego bufora, a potem po zmapowaniu na pami RAM, -odbywa si kopiowanie do MemoryChunka. +The function returns the buffer content. The memory is copied twice. +First to a temporary buffer on the GPU, and then after mapping to RAM, +it is copied to a MemoryChunk. -@todo Nie trzeba by wykonywa kopiowania na GPU, gdyby bufor by stworzony z flag -D3D11_USAGE_STAGING lub D3D11_USAGE_DEFAULT. Trzeba sprawdzi flagi i robi kopiowanie tylko, gdy to konieczne. +@todo It would not be necessary to perform copying on the GPU if the buffer was created with the flags +D3D11_USAGE_STAGING or D3D11_USAGE_DEFAULT. The flags need to be checked and copying should be done only when necessary. -@attention Funkcja nie nadaje si do wykonania wielowtkowego. Uywa DeviceContextu do kopiowania danych -w zwizku z czym wymaga synchronizacji z innymi funkcjami renderujcymi. -*/ +@attention The function is not suitable for multithreading. It uses DeviceContext for copying data, +therefore it requires synchronization with other rendering functions. +@todo Maybe function should take Renderer as a parameter than?*/ MemoryChunk DX11Buffer::CopyData() { - // Trzeba stworzy nowy bufor + // Trzeba stworzy� nowy bufor D3D11_BUFFER_DESC bufferDesc; ZeroMemory( &bufferDesc, sizeof( bufferDesc ) ); bufferDesc.Usage = D3D11_USAGE::D3D11_USAGE_STAGING; - //bufferDesc.BindFlags = D3D11_BIND_FLAG::D3D11_BIND_SHADER_RESOURCE; // Przy fladze usage::staging nie mona bindowa zasobu do potoku graficznego. + //bufferDesc.BindFlags = D3D11_BIND_FLAG::D3D11_BIND_SHADER_RESOURCE; // With usage::staging flag, the resource cannot be bound to the graphics pipeline. bufferDesc.ByteWidth = m_elementSize * m_elementCount; bufferDesc.CPUAccessFlags = D3D11_CPU_ACCESS_READ; @@ -111,7 +113,7 @@ MemoryChunk DX11Buffer::CopyData() if( FAILED( result ) ) return MemoryChunk(); - // Kopiowanie zawartoci midzy buforami + // Copying the contents between buffers device_context->CopyResource( newBuffer, m_buffer.Get() ); D3D11_MAPPED_SUBRESOURCE data; @@ -128,6 +130,79 @@ MemoryChunk DX11Buffer::CopyData() return std::move( memoryChunk ); } +// ================================ // + +ReturnResult DX11Buffer::UpdateData( BufferRange data, PtrOffset offset ) +{ + // Buffer must be updatable. + if( m_descriptor.Usage == ResourceUsage::Static || m_descriptor.Usage == ResourceUsage::Staging ) + return fmt::format( "Buffer not updatable. Create with ResourceUsage Default or Dynamic. (Current: {})", + Convert::ToString( m_descriptor.Usage ) ); + + auto bufferSize = m_elementSize * m_elementCount; + if( offset + data.DataSize > bufferSize ) + return fmt::format( "Update: Data size exceeds Buffer size. Buffer size: {}, Data size: {}, Offset: {}", bufferSize, + data.DataSize, offset ); + + if( m_descriptor.Usage == ResourceUsage::Dynamic ) + { + D3D11_MAPPED_SUBRESOURCE updateData; + HRESULT result = device_context->Map( m_buffer.Get(), 0, D3D11_MAP_WRITE_DISCARD, 0, &updateData ); + if( SUCCEEDED( result ) ) + { + memcpy( (uint8*)updateData.pData + offset, data.DataPtr, data.DataSize ); + device_context->Unmap( m_buffer.Get(), 0 ); + + return Success::True; + } + else + return fmt::format( "Failed to map Buffer: {}", DX11Utils::ErrorString( result ) ); + } + else + { + // ResourceUsage::Default + D3D11_BOX destRegion; + destRegion.left = (UINT)offset; + destRegion.right = (UINT)( data.DataSize + offset ); + destRegion.top = 0; + destRegion.bottom = 0; + destRegion.front = 0; + destRegion.back = 0; + + device_context->UpdateSubresource( m_buffer.Get(), 0, &destRegion, data.DataPtr, 0, 0 ); + return Success::True; + } + + return Success::True; +} + +// ================================ // + +ReturnResult DX11Buffer::Resize( BufferRange newData ) +{ + auto bufferSize = m_elementSize * m_elementCount; + if( newData.DataSize <= bufferSize ) + { + // No need to resize. TODO: consider if we shoudl ever scale buffers down. + return UpdateData( newData, 0 ); + } + + if( newData.DataSize / m_elementSize > std::numeric_limits< uint32 >::max() ) + return "Expected size exceeds maximum Buffer element count."; + + BufferInfo newDesc = m_descriptor; + newDesc.NumElements = uint32( newData.DataSize / m_elementSize ); + + auto result = DX11Buffer::CreateFromMemory( GetAssetPath(), newData.DataPtr, newDesc ); + ReturnIfInvalid( result ); + + // Replacing pointer should automatically release the old Buffer. + m_buffer = static_cast< DX11Buffer* >( result.Get() )->Get(); + m_descriptor = newDesc; + + return Success::True; +} + } // sw diff --git a/swGraphicAPI/DX11API/DX11Resources/DX11Buffer.h b/swGraphicAPI/DX11API/DX11Resources/DX11Buffer.h index ed501eda696840902985fa8b085dbe5bc64dfdd9..fc95a8a100740181b844a3ffc4b0903213e47945 100644 GIT binary patch delta 340 zcmbOy@JeU_M?EhC7lQ&6mN8^96fu-AlrkhTtr^(*!EZXD9<3Qv`Hi3Xo;ZK$){a9xDc#RmI?$3iS&<7v}+$m&5(1z<||BlYg@- F0|0*yIrabm delta 10 RcmaDQG*4gw$7CN)IRF-T16cq7 diff --git a/swGraphicAPI/MockAPI/MockResources/MockBuffer.cpp b/swGraphicAPI/MockAPI/MockResources/MockBuffer.cpp index 1431924c..293e9fee 100644 --- a/swGraphicAPI/MockAPI/MockResources/MockBuffer.cpp +++ b/swGraphicAPI/MockAPI/MockResources/MockBuffer.cpp @@ -48,4 +48,22 @@ MemoryChunk MockBuffer::CopyData () return std::move( memoryChunk ); } +// ================================ // + +ReturnResult MockBuffer::UpdateData( BufferRange data, PtrOffset offset ) +{ + // Buffer must be updatable. + if( m_descriptor.Usage == ResourceUsage::Static || m_descriptor.Usage == ResourceUsage::Staging ) + return fmt::format( "Buffer not updatable. Create with ResourceUsage Default or Dynamic. (Current: {})", + Convert::ToString( m_descriptor.Usage ) ); + return Success::True; +} + +// ================================ // + +ReturnResult MockBuffer::Resize( BufferRange newData ) +{ + return Success::True; +} + } // sw \ No newline at end of file diff --git a/swGraphicAPI/MockAPI/MockResources/MockBuffer.h b/swGraphicAPI/MockAPI/MockResources/MockBuffer.h index a6b17b148c1d62a08e5f17182020bc3469a1aa09..fd8c4230149e1ddbd5a5a8ee08cc968011a1fa35 100644 GIT binary patch delta 314 zcmaFIbBupO09!pT0~dn=6qYe$G88eCFqASRGUNcof*4Z4yds7?FuNEilLHjtM1i3U z1q>-b9VI~3E?_zlDz5=F!wIM-4G2?#CI!kR_S`moC)$wG0=lmKpN%&d=AV5sw;~a7d9|Sf4 diff --git a/swGraphicAPI/Resources/Buffers/IBuffer.h b/swGraphicAPI/Resources/Buffers/IBuffer.h index cc52cb09..8ef8aa4b 100644 --- a/swGraphicAPI/Resources/Buffers/IBuffer.h +++ b/swGraphicAPI/Resources/Buffers/IBuffer.h @@ -7,9 +7,10 @@ #include "swGraphicAPI/Resources/ResourceObject.h" #include "swGraphicAPI/Rendering/GraphicAPIConstants.h" -#include "ResourcePtr.h" +#include "swGraphicAPI/Resources/ResourcePtr.h" #include "swCommonLib/Common/MemoryChunk.h" +#include "swCommonLib/Common/Buffers/BufferRange.h" #include "swCommonLib/System/Path.h" @@ -70,8 +71,12 @@ struct BufferInfo bool Use4BytesIndex; ///< Index buffer consists of 4 bytes instead of 2 bytes indicies. ///@} - BufferInfo() + explicit BufferInfo() : DataType( rttr::type::get_by_name( "" ) ) // Set invalid type. + , NumElements( 0 ) + , ElementSize( 0 ) + , Usage( ResourceUsage::Default ) + , BufferType( BufferType::ConstantBuffer ) {} }; @@ -89,8 +94,21 @@ class IBuffer : public Resource explicit IBuffer ( const AssetPath& assetPath ) : Resource( assetPath ) {} virtual ~IBuffer () = default; public: - virtual MemoryChunk CopyData () = 0; /// Date: Fri, 15 Nov 2024 00:21:55 +0100 Subject: [PATCH 64/96] Updatable TextDrawing --- swCommonLib/Common/Buffers/BufferRaw.h | 3 ++ .../System/Rendering/Drawings/Drawing.cpp | 39 ++++++++++++++++--- swGUI/Prototypes/TextShowcase/Application.cpp | 2 +- swGraphicAPI/Resources/Buffers/Buffer.cpp | 2 +- swGraphicAPI/Resources/Buffers/Buffer.h | 13 ++++--- 5 files changed, 46 insertions(+), 13 deletions(-) diff --git a/swCommonLib/Common/Buffers/BufferRaw.h b/swCommonLib/Common/Buffers/BufferRaw.h index 8853b4e5..4d741c27 100644 --- a/swCommonLib/Common/Buffers/BufferRaw.h +++ b/swCommonLib/Common/Buffers/BufferRaw.h @@ -7,6 +7,7 @@ #include "swCommonLib/Common/TypesDefinitions.h" #include "swCommonLib/Common/RTTR.h" +#include "swCommonLib/Common/Buffers/BufferRange.h" #include @@ -52,6 +53,8 @@ class BufferRaw const uint8* GetData () const { return reinterpret_cast< const uint8* >( m_data ); } bool IsValid () const { return m_data != nullptr; } + BufferRange AsRange () const { return BufferRange( m_data, m_size ); } + public: template< typename ContentType, class Aloc > friend class BufferTyped; diff --git a/swGUI/Core/System/Rendering/Drawings/Drawing.cpp b/swGUI/Core/System/Rendering/Drawings/Drawing.cpp index 879ed595..dc9d9d26 100644 --- a/swGUI/Core/System/Rendering/Drawings/Drawing.cpp +++ b/swGUI/Core/System/Rendering/Drawings/Drawing.cpp @@ -215,15 +215,44 @@ ReturnResult Drawing::UpdateGeometry ( ResourceManagerAPI rm, Geometry* geo ReturnIfInvalid( result ); GeometryData& data = result.Get(); - // Create new buffers if they didn't existed. - if( !vertexBuffer || !indexBuffer ) + // Create new buffers if they didn't exist. + if( !vertexBuffer ) + { + auto vertexSize = data.VertexBuffer.GetType().get_sizeof(); + auto result = rm.CreateVertexBuffer( vbName, data.VertexBuffer, (uint32)vertexSize ); + ReturnIfInvalid( result ); + + vertexBuffer = result.Get(); + } + else if( data.VertexBuffer.GetSize() > vertexBuffer->GetBytesSize() ) + { + ReturnIfInvalid( vertexBuffer->Resize( data.VertexBuffer.AsRange() ) ); + } + else + { + // Buffer is large enough for the new data. + // Note that we never resize buffer to smaller size. Maybe we should? + ReturnIfInvalid( vertexBuffer->UpdateData( data.VertexBuffer.AsRange(), 0 ) ); + } + + if( !indexBuffer ) { auto indexSize = data.ExtendedIB ? sizeof( Index32 ) : sizeof( Index16 ); - auto vertexSize = data.VertexBuffer.GetType().get_sizeof(); + auto result = rm.CreateIndexBuffer( ibName, data.IndexBuffer, (uint32)indexSize ); + ReturnIfInvalid( result ); - vertexBuffer = rm.CreateVertexBuffer( vbName, data.VertexBuffer, (uint32)vertexSize ).Get(); /// @todo What in case of error? - indexBuffer = rm.CreateIndexBuffer( ibName, data.IndexBuffer, (uint32)indexSize ).Get(); /// @todo What in case of error? + indexBuffer = result.Get(); } + else if( data.IndexBuffer.GetSize() > indexBuffer->GetBytesSize() ) + { + ReturnIfInvalid( indexBuffer->Resize( data.IndexBuffer.AsRange() ) ); + } + else + { + // Buffer is large enough for the new data. + // Note that we never resize buffer to smaller size. Maybe we should? + ReturnIfInvalid( indexBuffer->UpdateData( data.IndexBuffer.AsRange(), 0 ) ); + } m_geometryData.VertexBuffer = vertexBuffer; m_geometryData.IndexBuffer = indexBuffer; diff --git a/swGUI/Prototypes/TextShowcase/Application.cpp b/swGUI/Prototypes/TextShowcase/Application.cpp index 4d4fe1c4..e7e8dcdd 100644 --- a/swGUI/Prototypes/TextShowcase/Application.cpp +++ b/swGUI/Prototypes/TextShowcase/Application.cpp @@ -91,7 +91,7 @@ void Application::AddControls ( HostWindow* host ) { auto pen = std::make_shared< SolidColorBrush >( Colors::BurlyWood ); auto background = std::make_shared< SolidColorBrush >( Colors::Transparent ); - auto textBlock = AddText( host, background, pen, 300, 100, Position( 350, 350 ), L"" ); + auto textBlock = AddText( host, background, pen, 400, 100, Position( 350, 350 ), L"" ); textBlock->SetTextAlignment( sw::TextAlignment::Justify ); textBlock->SetFontSize( 60 ); textBlock->SetDataContext( &m_viewModel ); diff --git a/swGraphicAPI/Resources/Buffers/Buffer.cpp b/swGraphicAPI/Resources/Buffers/Buffer.cpp index 1864d534..6b222526 100644 --- a/swGraphicAPI/Resources/Buffers/Buffer.cpp +++ b/swGraphicAPI/Resources/Buffers/Buffer.cpp @@ -39,7 +39,7 @@ namespace sw // ================================ // // -Buffer::Buffer( const AssetPath& assetPath, unsigned int elementSize, unsigned int elementCount ) +Buffer::Buffer( const AssetPath& assetPath, uint32 elementSize, uint32 elementCount ) : IBuffer( assetPath ) , m_elementSize( elementSize ) , m_elementCount( elementCount ) diff --git a/swGraphicAPI/Resources/Buffers/Buffer.h b/swGraphicAPI/Resources/Buffers/Buffer.h index 0282c561..c3366ea4 100644 --- a/swGraphicAPI/Resources/Buffers/Buffer.h +++ b/swGraphicAPI/Resources/Buffers/Buffer.h @@ -27,17 +27,18 @@ class Buffer : public IBuffer RTTR_ENABLE( IBuffer ) protected: - unsigned int m_elementSize; ///< Element size. - unsigned int m_elementCount; ///< Number of elements. + uint32 m_elementSize; ///< Element size. + uint32 m_elementCount; ///< Number of elements. virtual ~Buffer () = default; public: - explicit Buffer ( const AssetPath& assetPath, unsigned int elementSize, unsigned int elementCount ); + explicit Buffer ( const AssetPath& assetPath, uint32 elementSize, uint32 elementCount ); - inline unsigned int GetStride () const { return m_elementSize; } - inline unsigned int GetElementSize () const { return m_elementSize; } - inline unsigned int GetElementCount () const { return m_elementCount; } + inline uint32 GetStride () const { return m_elementSize; } + inline uint32 GetElementSize () const { return m_elementSize; } + inline uint32 GetElementCount () const { return m_elementCount; } + inline Size GetBytesSize () const { return m_elementCount * m_elementSize; } }; DEFINE_RESOURCE_PTR_TYPE( Buffer ); From 0c8a7f79374173d23d2d4dd5c721aac8a5819e5f Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Fri, 15 Nov 2024 01:26:24 +0100 Subject: [PATCH 65/96] Fix memory leak when resizing Resources --- swGUI/Prototypes/TextShowcase/Application.cpp | 1 + .../DX11API/DX11Resources/DX11Buffer.cpp | 24 +++++++++++------- .../DX11API/DX11Resources/DX11Buffer.h | Bin 2410 -> 2714 bytes 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/swGUI/Prototypes/TextShowcase/Application.cpp b/swGUI/Prototypes/TextShowcase/Application.cpp index e7e8dcdd..a4ae3d25 100644 --- a/swGUI/Prototypes/TextShowcase/Application.cpp +++ b/swGUI/Prototypes/TextShowcase/Application.cpp @@ -161,6 +161,7 @@ You can set different GraphicApi or input api.*/ sw::ReturnResult Application::Initialize() { m_guiConfig.DebugGraphics = true; + m_guiConfig.UseBlockingMode = false; sw::ReturnResult result = sw::Success::True; diff --git a/swGraphicAPI/DX11API/DX11Resources/DX11Buffer.cpp b/swGraphicAPI/DX11API/DX11Resources/DX11Buffer.cpp index 72e17dec..29e4eba3 100644 --- a/swGraphicAPI/DX11API/DX11Resources/DX11Buffer.cpp +++ b/swGraphicAPI/DX11API/DX11Resources/DX11Buffer.cpp @@ -46,10 +46,9 @@ DX11Buffer::~DX11Buffer() m_buffer = nullptr; } - // ================================ // // -sw::Nullable< Buffer* > DX11Buffer::CreateFromMemory ( const AssetPath& name, const uint8* data, const BufferInfo& bufferInfo ) +sw::Nullable< ID3D11Buffer* > DX11Buffer::CreateFromMemoryImpl ( const AssetPath& name, const uint8* data, const BufferInfo& bufferInfo ) { ResourceBinding bindFlag; if( bufferInfo.BufferType == BufferType::VertexBuffer ) @@ -80,9 +79,15 @@ sw::Nullable< Buffer* > DX11Buffer::CreateFromMemory ( const AssetPath& name, result = device->CreateBuffer( &bufferDesc, initDataPtr, &newBuffer ); if( FAILED( result ) ) return fmt::format( "[DX11Buffer] Buffer creation failed. {}", DX11Utils::ErrorString( result ) ); + return newBuffer; +} - DX11Buffer* newBufferObject = new DX11Buffer( name, bufferInfo, newBuffer ); - return newBufferObject; +// ================================ // +// +sw::Nullable< Buffer* > DX11Buffer::CreateFromMemory ( const AssetPath& name, const uint8* data, const BufferInfo& bufferInfo ) +{ + auto result = CreateFromMemoryImpl( name, data, bufferInfo ); + return new DX11Buffer( name, bufferInfo, result.Get() ); } /**@brief Copies the buffer memory and returns it in a MemoryChunk. @@ -165,9 +170,9 @@ ReturnResult DX11Buffer::UpdateData( BufferRange data, PtrOffset offset ) destRegion.left = (UINT)offset; destRegion.right = (UINT)( data.DataSize + offset ); destRegion.top = 0; - destRegion.bottom = 0; + destRegion.bottom = 1; destRegion.front = 0; - destRegion.back = 0; + destRegion.back = 1; device_context->UpdateSubresource( m_buffer.Get(), 0, &destRegion, data.DataPtr, 0, 0 ); return Success::True; @@ -183,7 +188,7 @@ ReturnResult DX11Buffer::Resize( BufferRange newData ) auto bufferSize = m_elementSize * m_elementCount; if( newData.DataSize <= bufferSize ) { - // No need to resize. TODO: consider if we shoudl ever scale buffers down. + // No need to resize. TODO: consider if we should ever scale buffers down. return UpdateData( newData, 0 ); } @@ -193,12 +198,13 @@ ReturnResult DX11Buffer::Resize( BufferRange newData ) BufferInfo newDesc = m_descriptor; newDesc.NumElements = uint32( newData.DataSize / m_elementSize ); - auto result = DX11Buffer::CreateFromMemory( GetAssetPath(), newData.DataPtr, newDesc ); + auto result = DX11Buffer::CreateFromMemoryImpl( GetAssetPath(), newData.DataPtr, newDesc ); ReturnIfInvalid( result ); // Replacing pointer should automatically release the old Buffer. - m_buffer = static_cast< DX11Buffer* >( result.Get() )->Get(); + m_buffer = result.Get(); m_descriptor = newDesc; + m_elementCount = newDesc.NumElements; return Success::True; } diff --git a/swGraphicAPI/DX11API/DX11Resources/DX11Buffer.h b/swGraphicAPI/DX11API/DX11Resources/DX11Buffer.h index fc95a8a100740181b844a3ffc4b0903213e47945..b3e8c28074ba9007025a0f0bafc60c275871764d 100644 GIT binary patch delta 53 zcmaDQG)r`Y59eej78!O01~8obmsNZ6Ic5n~Eg;`+vMrl3yC*{~Ljgn1E;#@i`~&C! From abb070b54d99a33f3f9c4622e7cb0fdade1c5ccc Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Fri, 15 Nov 2024 01:33:36 +0100 Subject: [PATCH 66/96] Enable vsync for non-blocking mode --- swGUI/Prototypes/TextShowcase/Application.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/swGUI/Prototypes/TextShowcase/Application.cpp b/swGUI/Prototypes/TextShowcase/Application.cpp index a4ae3d25..3adb5629 100644 --- a/swGUI/Prototypes/TextShowcase/Application.cpp +++ b/swGUI/Prototypes/TextShowcase/Application.cpp @@ -162,6 +162,7 @@ sw::ReturnResult Application::Initialize() { m_guiConfig.DebugGraphics = true; m_guiConfig.UseBlockingMode = false; + m_guiConfig.UseVSync = true; sw::ReturnResult result = sw::Success::True; From f35a06646f2de00cbd7b29f6ac857be4e68cd561 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Fri, 15 Nov 2024 11:38:11 +0100 Subject: [PATCH 67/96] Tests - check Drawing ReturnResults --- .../Tests/TestRenderingSystem/TestDrawing.cpp | 45 ++++++++++--------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/swGUI/Tests/TestRenderingSystem/TestDrawing.cpp b/swGUI/Tests/TestRenderingSystem/TestDrawing.cpp index b367b016..00485e7d 100644 --- a/swGUI/Tests/TestRenderingSystem/TestDrawing.cpp +++ b/swGUI/Tests/TestRenderingSystem/TestDrawing.cpp @@ -1,5 +1,6 @@ #include "swCommonLib/External/Catch/catch.hpp" +#include "swCommonLib/TestUtils/CatchUtils/ExtendedMacros.h" #include "swGUI/TestFramework/TestFramework.h" #include "swGUI/Core/System/Rendering/Drawings/Drawing.h" @@ -29,7 +30,7 @@ TEST_CASE( "GUI.Rendering.Drawing.Brush.UpdateShader", "[GUISystem][RenderingSys // Set first shader brush->SetShaderFunction( "shaders/FakeBrush.ps" ); - drawing->UpdateBrushShader( framework.GetRenderingSystem()->GetShaderProvider(), brush.get() ); + REQUIRE_IS_VALID( drawing->UpdateBrushShader( framework.GetRenderingSystem()->GetShaderProvider(), brush.get() ) ); auto& renderingData = CLASS_TESTER( Drawing )::GetBrushRenderingData( drawing.get() ); @@ -40,7 +41,7 @@ TEST_CASE( "GUI.Rendering.Drawing.Brush.UpdateShader", "[GUISystem][RenderingSys brush->SetShaderFunction( "shaders/FakeBrush2.ps" ); REQUIRE( brush->NeedsShaderUpdate() == true ); // Update request should be set. - drawing->UpdateBrushShader( framework.GetRenderingSystem()->GetShaderProvider(), brush.get() ); + REQUIRE_IS_VALID( drawing->UpdateBrushShader( framework.GetRenderingSystem()->GetShaderProvider(), brush.get() ) ); CHECK( renderingData.PixelShader != nullptr ); // Shader was loaded. CHECK( renderingData.PixelShader != prevShader ); // Shader is different then previous shader. @@ -59,7 +60,7 @@ TEST_CASE( "GUI.Rendering.Drawing.Pen.UpdateShader", "[GUISystem][RenderingSyste // Set first shader pen->SetShaderFunction( "shaders/FakeBrush.ps" ); - drawing->UpdatePenShader( framework.GetRenderingSystem()->GetShaderProvider(), pen.get() ); + REQUIRE_IS_VALID( drawing->UpdatePenShader( framework.GetRenderingSystem()->GetShaderProvider(), pen.get() ) ); auto& renderingData = CLASS_TESTER( Drawing )::GetPenRenderingData( drawing.get() ); @@ -70,7 +71,7 @@ TEST_CASE( "GUI.Rendering.Drawing.Pen.UpdateShader", "[GUISystem][RenderingSyste pen->SetShaderFunction( "shaders/FakeBrush2.ps" ); REQUIRE( pen->NeedsShaderUpdate() == true ); // Update request should be set. - drawing->UpdatePenShader( framework.GetRenderingSystem()->GetShaderProvider(), pen.get() ); + REQUIRE_IS_VALID( drawing->UpdatePenShader( framework.GetRenderingSystem()->GetShaderProvider(), pen.get() ) ); CHECK( renderingData.PixelShader != nullptr ); // Shader was loaded. CHECK( renderingData.PixelShader != prevShader ); // Shader is different then previous shader. @@ -89,7 +90,7 @@ TEST_CASE( "GUI.Rendering.Drawing.Geometry.UpdateShader", "[GUISystem][Rendering // Set first shader geom->SetShaderFunction( "shaders/FakeGeom.vs" ); - drawing->UpdateVertexShader( framework.GetRenderingSystem()->GetShaderProvider(), geom.get() ); + REQUIRE_IS_VALID( drawing->UpdateVertexShader( framework.GetRenderingSystem()->GetShaderProvider(), geom.get() ) ); auto& renderingData = CLASS_TESTER( Drawing )::GetGeometryRenderingData( drawing.get() ); @@ -100,7 +101,7 @@ TEST_CASE( "GUI.Rendering.Drawing.Geometry.UpdateShader", "[GUISystem][Rendering geom->SetShaderFunction( "shaders/FakeGeom2.vs" ); REQUIRE( geom->NeedsShaderUpdate() == true ); // Update request should be set. - drawing->UpdateVertexShader( framework.GetRenderingSystem()->GetShaderProvider(), geom.get() ); + REQUIRE_IS_VALID( drawing->UpdateVertexShader( framework.GetRenderingSystem()->GetShaderProvider(), geom.get() ) ); CHECK( renderingData.VertexShader != nullptr ); // Shader was loaded. CHECK( renderingData.VertexShader != prevShader ); // Shader is different then previous shader. @@ -126,14 +127,14 @@ TEST_CASE( "GUI.Rendering.Drawing.Brush.UpdateTexture", "[GUISystem][RenderingSy brush->SetTextureFile( "textures/Tex1.png" ); REQUIRE( brush->NeedsTextureUpdate() == true ); // Update request should be set. - drawing->UpdateBrushTexture( framework.GetResourceManagerAPI(), brush.get() ); + REQUIRE_IS_VALID( drawing->UpdateBrushTexture( framework.GetResourceManagerAPI(), brush.get() ) ); CHECK( renderingData.Texture != nullptr ); CHECK( brush->NeedsTextureUpdate() == false ); brush->SetTextureFile( "textures/Tex2.png" ); REQUIRE( brush->NeedsTextureUpdate() == true ); // Update request should be set. - drawing->UpdateBrushTexture( framework.GetResourceManagerAPI(), brush.get() ); + REQUIRE_IS_VALID( drawing->UpdateBrushTexture( framework.GetResourceManagerAPI(), brush.get() ) ); CHECK( renderingData.Texture != nullptr ); CHECK( brush->NeedsTextureUpdate() == false ); } @@ -152,14 +153,14 @@ TEST_CASE( "GUI.Rendering.Drawing.Pen.UpdateTexture", "[GUISystem][RenderingSyst pen->SetTextureFile( "textures/Tex1.png" ); REQUIRE( pen->NeedsTextureUpdate() == true ); // Update request should be set. - drawing->UpdatePenTexture( framework.GetResourceManagerAPI(), pen.get() ); + REQUIRE_IS_VALID( drawing->UpdatePenTexture( framework.GetResourceManagerAPI(), pen.get() ) ); CHECK( renderingData.Texture != nullptr ); CHECK( pen->NeedsTextureUpdate() == false ); pen->SetTextureFile( "textures/Tex2.png" ); REQUIRE( pen->NeedsTextureUpdate() == true ); // Update request should be set. - drawing->UpdatePenTexture( framework.GetResourceManagerAPI(), pen.get() ); + REQUIRE_IS_VALID( drawing->UpdatePenTexture( framework.GetResourceManagerAPI(), pen.get() ) ); CHECK( renderingData.Texture != nullptr ); CHECK( pen->NeedsTextureUpdate() == false ); } @@ -181,7 +182,7 @@ TEST_CASE( "GUI.Rendering.Drawing.Brush.UpdateConstants", "[GUISystem][Rendering auto& renderingData = CLASS_TESTER( Drawing )::GetBrushRenderingData( drawing.get() ); REQUIRE( renderingData.BrushConstants == nullptr ); - drawing->UpdateBrushConstants( framework.GetResourceManagerAPI(), brush.get() ); + REQUIRE_IS_VALID( drawing->UpdateBrushConstants( framework.GetResourceManagerAPI(), brush.get() ) ); CHECK( renderingData.BrushConstants != nullptr ); } @@ -198,7 +199,7 @@ TEST_CASE( "GUI.Rendering.Drawing.Pen.UpdateConstants", "[GUISystem][RenderingSy auto& renderingData = CLASS_TESTER( Drawing )::GetPenRenderingData( drawing.get() ); REQUIRE( renderingData.BrushConstants == nullptr ); - drawing->UpdatePenConstants( framework.GetResourceManagerAPI(), pen.get() ); + REQUIRE_IS_VALID( drawing->UpdatePenConstants( framework.GetResourceManagerAPI(), pen.get() ) ); CHECK( renderingData.BrushConstants != nullptr ); } @@ -215,7 +216,7 @@ TEST_CASE( "GUI.Rendering.Drawing.Geometry.UpdateConstants", "[GUISystem][Render auto& renderingData = CLASS_TESTER( Drawing )::GetGeometryRenderingData( drawing.get() ); REQUIRE( renderingData.GeometryConstants == nullptr ); - drawing->UpdateGeometryConstants( framework.GetResourceManagerAPI(), geom.get() ); + REQUIRE_IS_VALID( drawing->UpdateGeometryConstants( framework.GetResourceManagerAPI(), geom.get() ) ); CHECK( renderingData.GeometryConstants != nullptr ); } @@ -232,7 +233,7 @@ TEST_CASE( "GUI.Rendering.Drawing.Brush.ChangeConstantsBuffer", "[GUISystem][Ren auto& renderingData = CLASS_TESTER( Drawing )::GetBrushRenderingData( drawing.get() ); REQUIRE( renderingData.BrushConstants == nullptr ); - drawing->UpdateBrushConstants( framework.GetResourceManagerAPI(), brush.get() ); + REQUIRE_IS_VALID( drawing->UpdateBrushConstants( framework.GetResourceManagerAPI(), brush.get() ) ); auto prevBuff = renderingData.BrushConstants; CHECK( prevBuff != nullptr ); @@ -240,7 +241,7 @@ TEST_CASE( "GUI.Rendering.Drawing.Brush.ChangeConstantsBuffer", "[GUISystem][Ren brush->ChangeConstsBuffer( "NewBuffer" ); CHECK( brush->NeedsBufferChange() == true ); - drawing->UpdateBrushConstants( framework.GetResourceManagerAPI(), brush.get() ); + REQUIRE_IS_VALID( drawing->UpdateBrushConstants( framework.GetResourceManagerAPI(), brush.get() ) ); CHECK( prevBuff != renderingData.BrushConstants ); CHECK( brush->NeedsBufferChange() == false ); @@ -258,7 +259,7 @@ TEST_CASE( "GUI.Rendering.Drawing.Pen.ChangeConstantsBuffer", "[GUISystem][Rende auto& renderingData = CLASS_TESTER( Drawing )::GetPenRenderingData( drawing.get() ); REQUIRE( renderingData.BrushConstants == nullptr ); - drawing->UpdatePenConstants( framework.GetResourceManagerAPI(), pen.get() ); + REQUIRE_IS_VALID( drawing->UpdatePenConstants( framework.GetResourceManagerAPI(), pen.get() ) ); auto prevBuff = renderingData.BrushConstants; CHECK( prevBuff != nullptr ); @@ -266,7 +267,7 @@ TEST_CASE( "GUI.Rendering.Drawing.Pen.ChangeConstantsBuffer", "[GUISystem][Rende pen->ChangeConstsBuffer( "NewBuffer" ); CHECK( pen->NeedsBufferChange() == true ); - drawing->UpdatePenConstants( framework.GetResourceManagerAPI(), pen.get() ); + REQUIRE_IS_VALID( drawing->UpdatePenConstants( framework.GetResourceManagerAPI(), pen.get() ) ); CHECK( prevBuff != renderingData.BrushConstants ); CHECK( pen->NeedsBufferChange() == false ); @@ -293,7 +294,7 @@ TEST_CASE( "GUI.Rendering.Drawing.Geometry.UpdateGeometry", "[GUISystem][Renderi REQUIRE( geom->NeedsGeometryUpdate() == true ); // Initialization of geometry. - drawing->UpdateGeometry( framework.GetResourceManagerAPI(), geom.get() ); + REQUIRE_IS_VALID( drawing->UpdateGeometry( framework.GetResourceManagerAPI(), geom.get() ) ); CHECK( renderingData.VertexBuffer != nullptr ); CHECK( renderingData.IndexBuffer != nullptr ); @@ -306,7 +307,7 @@ TEST_CASE( "GUI.Rendering.Drawing.Geometry.UpdateGeometry", "[GUISystem][Renderi geom->ChangeGeometry( "NewGeom" ); CHECK( geom->NeedsGeometryUpdate() == true ); - drawing->UpdateGeometry( framework.GetResourceManagerAPI(), geom.get() ); + REQUIRE_IS_VALID( drawing->UpdateGeometry( framework.GetResourceManagerAPI(), geom.get() ) ); CHECK( renderingData.VertexBuffer != nullptr ); CHECK( renderingData.IndexBuffer != nullptr ); @@ -327,17 +328,17 @@ TEST_CASE( "GUI.Rendering.Drawing.Geometry.UpdateGeometry.UseExisting", "[GUISys auto& renderingData = CLASS_TESTER( Drawing )::GetGeometryRenderingData( drawing.get() ); geom->ChangeGeometry( "Geometry1" ); - drawing->UpdateGeometry( framework.GetResourceManagerAPI(), geom.get() ); + REQUIRE_IS_VALID( drawing->UpdateGeometry( framework.GetResourceManagerAPI(), geom.get() ) ); auto vb = renderingData.VertexBuffer; auto ib = renderingData.IndexBuffer; geom->ChangeGeometry( "Geometry2" ); - drawing->UpdateGeometry( framework.GetResourceManagerAPI(), geom.get() ); + REQUIRE_IS_VALID( drawing->UpdateGeometry( framework.GetResourceManagerAPI(), geom.get() ) ); // Use Geometry1 again. geom->ChangeGeometry( "Geometry1" ); - drawing->UpdateGeometry( framework.GetResourceManagerAPI(), geom.get() ); + REQUIRE_IS_VALID( drawing->UpdateGeometry( framework.GetResourceManagerAPI(), geom.get() ) ); CHECK( renderingData.VertexBuffer == vb ); CHECK( renderingData.IndexBuffer == ib ); From b3c019f4169e7b45b7cfe275c353f871531904b0 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Fri, 15 Nov 2024 11:45:12 +0100 Subject: [PATCH 68/96] Test compilation of opacity vertex shader --- .../TestGeometryShaderCompilation.cpp | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/swGUI/Tests/TestRenderingSystem.DX11/TestGeometryShaderCompilation.cpp b/swGUI/Tests/TestRenderingSystem.DX11/TestGeometryShaderCompilation.cpp index 60f47dc7..8536cc03 100644 --- a/swGUI/Tests/TestRenderingSystem.DX11/TestGeometryShaderCompilation.cpp +++ b/swGUI/Tests/TestRenderingSystem.DX11/TestGeometryShaderCompilation.cpp @@ -33,3 +33,23 @@ TEST_CASE( "GUI.Rendering.DX11.Geometry.ShaderCompilation.ForwardAttributes", "[ CHECK( renderingData.VertexShader != nullptr ); } +// ================================ // +// Test default shader for forwarding attributes. +TEST_CASE( "GUI.Rendering.DX11.Geometry.ShaderCompilation.ForwardWithOpacity", "[GUISystem][RenderingSystem][Drawing]" ) +{ + TestFramework* framework = GetGlobalTestFramework(); + + FakeDrawingPtr drawing = std::make_shared< FakeDrawing >(); + FakeGeometryPtr geom = std::make_shared< FakeGeometry >( Geometry::ConstantBufferMode::Disable ); + ShaderProvider* sp = framework->GetRenderingSystem()->GetShaderProvider(); + + geom->SetShaderFunction( "$(CoreGUI-Shader-Dir)/Geometry/ForwardWithOpacity.vsh" ); + + drawing->UpdateVertexShader( sp, geom.get(), sp->GetOpacityVSTemplate() ); + + auto& renderingData = CLASS_TESTER( Drawing )::GetGeometryRenderingData( drawing.get() ); + + INFO( "[Default ForwardWithOpacity.vsh] Shader compilation failed." ); + CHECK( renderingData.VertexShader != nullptr ); +} + From 40ea6e248d14badb5a4474a59357a8a2319fc9c3 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Fri, 15 Nov 2024 15:02:16 +0100 Subject: [PATCH 69/96] Start with TextControls project --- .../Core/Controls/TextualControls/TextBlock.h | 2 +- swGUI/GUI.sln | 11 ++ .../Templates/Visual2015/TestTemplate.vcxproj | 24 +-- .../Tests/TestControls/TestControls.vcxproj | 169 ++++++++++++++++++ swGUI/TestFramework/TestFramework.h | 17 ++ swGUI/Tests/TestControls/TestTextBlock.cpp | 75 ++++++++ swGUI/Tests/TestControls/main.cpp | 2 + .../TestGeometryShaderCompilation.cpp | 5 +- .../TestWindowRendering.cpp | 18 -- 9 files changed, 285 insertions(+), 38 deletions(-) create mode 100644 swGUI/ProjectDir/Visual2015/Tests/TestControls/TestControls.vcxproj create mode 100644 swGUI/Tests/TestControls/TestTextBlock.cpp create mode 100644 swGUI/Tests/TestControls/main.cpp diff --git a/swGUI/Core/Controls/TextualControls/TextBlock.h b/swGUI/Core/Controls/TextualControls/TextBlock.h index 140684fa..44600cd3 100644 --- a/swGUI/Core/Controls/TextualControls/TextBlock.h +++ b/swGUI/Core/Controls/TextualControls/TextBlock.h @@ -92,7 +92,7 @@ class TextBlock : public FrameworkElement TextAlignment GetTextAlignment() const { return m_textAlignment; } - GeometryPtr GetGeometry() const { return m_drawing->GetGeometry(); } + GeometryPtr GetGeometry() const { return m_drawing ? m_drawing->GetGeometry() : nullptr; } protected: diff --git a/swGUI/GUI.sln b/swGUI/GUI.sln index a068f843..f4a22ae5 100644 --- a/swGUI/GUI.sln +++ b/swGUI/GUI.sln @@ -220,6 +220,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestText", "..\swGraphicAPI EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TextShowcase", "ProjectDir\Visual2015\Prototypes\TextShowcase\TextShowcase.vcxproj", "{D5E21347-CDBD-4B7B-B7A6-C7F94DEE4913}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestControls", "ProjectDir\Visual2015\Tests\TestControls\TestControls.vcxproj", "{68A29892-2C39-4068-AE0F-5021D29B8CE5}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 @@ -700,6 +702,14 @@ Global {D5E21347-CDBD-4B7B-B7A6-C7F94DEE4913}.Release|x64.Build.0 = Release|x64 {D5E21347-CDBD-4B7B-B7A6-C7F94DEE4913}.Release|x86.ActiveCfg = Release|Win32 {D5E21347-CDBD-4B7B-B7A6-C7F94DEE4913}.Release|x86.Build.0 = Release|Win32 + {68A29892-2C39-4068-AE0F-5021D29B8CE5}.Debug|x64.ActiveCfg = Debug|x64 + {68A29892-2C39-4068-AE0F-5021D29B8CE5}.Debug|x64.Build.0 = Debug|x64 + {68A29892-2C39-4068-AE0F-5021D29B8CE5}.Debug|x86.ActiveCfg = Debug|Win32 + {68A29892-2C39-4068-AE0F-5021D29B8CE5}.Debug|x86.Build.0 = Debug|Win32 + {68A29892-2C39-4068-AE0F-5021D29B8CE5}.Release|x64.ActiveCfg = Release|x64 + {68A29892-2C39-4068-AE0F-5021D29B8CE5}.Release|x64.Build.0 = Release|x64 + {68A29892-2C39-4068-AE0F-5021D29B8CE5}.Release|x86.ActiveCfg = Release|Win32 + {68A29892-2C39-4068-AE0F-5021D29B8CE5}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -792,6 +802,7 @@ Global {2CDA8A31-2F49-43B3-82CD-271BE83EC203} = {E1A698D8-011C-4359-A108-C3B32B54A2C0} {1F535690-1AB1-47EA-961B-183C4DCF46D3} = {AD4FFF37-D748-47D4-AF31-78C2C7D87D42} {D5E21347-CDBD-4B7B-B7A6-C7F94DEE4913} = {BBD5CA36-CFDA-417A-94F4-80E738794723} + {68A29892-2C39-4068-AE0F-5021D29B8CE5} = {CAC5582E-F5A0-42EA-85DE-325A7C0651D8} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {A341301D-630D-4C6A-B843-1A50FC78565A} diff --git a/swGUI/ProjectDir/Templates/Visual2015/TestTemplate.vcxproj b/swGUI/ProjectDir/Templates/Visual2015/TestTemplate.vcxproj index 9169495d..d13074f4 100644 --- a/swGUI/ProjectDir/Templates/Visual2015/TestTemplate.vcxproj +++ b/swGUI/ProjectDir/Templates/Visual2015/TestTemplate.vcxproj @@ -1,6 +1,5 @@  - Debug @@ -70,26 +69,29 @@ true Unicode + + + + + + + - - - - @@ -164,18 +166,6 @@ true - - $(ProjectName) - $(LibDir)$(TestName)\ - $(SourceDir)$(TestName)\ - $(TestName) - $(BuildDir)$(TestName)_$(Configuration)_$(PlatformShortName)_$(PlatformToolset)\ - - - $(TestBuildDir) - $(TestFileName) - $(TestBuildDir) - diff --git a/swGUI/ProjectDir/Visual2015/Tests/TestControls/TestControls.vcxproj b/swGUI/ProjectDir/Visual2015/Tests/TestControls/TestControls.vcxproj new file mode 100644 index 00000000..88360288 --- /dev/null +++ b/swGUI/ProjectDir/Visual2015/Tests/TestControls/TestControls.vcxproj @@ -0,0 +1,169 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + + {9abcbab4-05b4-47c5-b5d8-f201559fd096} + + + {59fa8028-2346-4246-854f-14dcfab6ab56} + + + {c6dab3ee-e9a7-47fc-9b33-a8f4250c219b} + + + {95122780-02bb-4a2e-83e6-8c088f2332dd} + + + + + + + + {68A29892-2C39-4068-AE0F-5021D29B8CE5} + Win32Proj + 10.0 + TestControls + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + + + Level3 + Disabled + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + Level3 + + + MaxSpeed + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + + \ No newline at end of file diff --git a/swGUI/TestFramework/TestFramework.h b/swGUI/TestFramework/TestFramework.h index fba85709..4b04be6f 100644 --- a/swGUI/TestFramework/TestFramework.h +++ b/swGUI/TestFramework/TestFramework.h @@ -9,6 +9,7 @@ #include "swGUI/Core/System/GUISystem.h" #include "swInputLibrary/InputCore/Debugging/EventCapture.h" +#include "swCommonLib/TestUtils/CatchUtils/ExtendedMacros.h" /**@defgroup GUITestFramework TestFramework @@ -164,6 +165,22 @@ class TestFramework : public GUISystem }; +// ================================ // +// +struct FrameworkCleaner +{ + TestFramework* Framework; + + // ================================ // + // + FrameworkCleaner( TestFramework* framework ) : Framework( framework ) {} + + // ================================ // + // + ~FrameworkCleaner() { Framework->Clean(); } +}; + + } // gui } // sw diff --git a/swGUI/Tests/TestControls/TestTextBlock.cpp b/swGUI/Tests/TestControls/TestTextBlock.cpp new file mode 100644 index 00000000..7293de3f --- /dev/null +++ b/swGUI/Tests/TestControls/TestTextBlock.cpp @@ -0,0 +1,75 @@ +#include "swCommonLib/External/Catch/catch.hpp" + +#include "swGUI/TestFramework/TestFramework.h" +#include "swGUI/TestFramework/DX11/TestFramework.DX11.h" +#include "swGUI/Native/MockNativeGUI/MockGUI.h" + +#include "swGUI/Core/Controls/TextualControls/TextBlock.h" +#include "swGUI/Core/Media/Brushes/SolidColorBrush.h" + + +using namespace sw; +using namespace sw::gui; + +//====================================================================================// +// Helper functions +//====================================================================================// + +// ================================ // +// +TextBlock* AddText( HostWindow* host, BrushPtr brush, BrushPtr pen, float width, float height, Position pos, + const std::wstring& text ) +{ + TextBlockOPtr textBlock = TextBlockOPtr( new TextBlock() ); + + textBlock->SetBackground( brush ); + textBlock->SetForeground( pen ); + + textBlock->SetHeight( height ); + textBlock->SetWidth( width ); + + textBlock->SetOffset( pos ); + textBlock->SetText( text ); + + auto ptr = textBlock.get(); + host->AddChild( std::move( textBlock ) ); + return ptr; +} + +const std::wstring sLoremIpsum = L"Lorem ipsum is a dummy or placeholder text commonly used \ +in graphic design, publishing, and web development to fill empty spaces in a layout that do \ +not yet have content.\n\ +Lorem ipsum is typically a corrupted version of De finibus bonorum et malorum, \ +a 1st - century BC text by the Roman statesman and philosopher Cicero, with words altered, added, \ +and removed to make it nonsensical and improper Latin. \ +The first two words themselves are a truncation of dolorem ipsum( \"pain itself\" )."; + + +//====================================================================================// +// Tests +//====================================================================================// + +// ================================ // +// +TEST_CASE( "GUI.Controls.TextBlock", "[GUISystem][Controls][Text]" ) +{ + TestFramework* framework = GetGlobalTestFramework(); + FrameworkCleaner cleaner( framework ); + + MockGUI* mockNativeGUI = static_cast< MockGUI* >( framework->GetNativeGUI() ); + + auto window = framework->CreateNativeHostWindow( 400, 400, "Test Window" ).Get(); + + auto background = std::make_shared< SolidColorBrush >( Colors::WhiteSmoke ); + auto pen = std::make_shared< SolidColorBrush >( Colors::Black ); + + auto text = AddText( window, background, pen, 300, 300, Position( 0, 40 ), sLoremIpsum ); + REQUIRE( text->GetGeometry() != nullptr ); + + // Window must be focused to be rendered. + mockNativeGUI->SendChangeFocus( window->GetNativeWindow(), true ); + + // Run single frame. If something was wrong it should fails here. + framework->MainLoopCore(); +} + diff --git a/swGUI/Tests/TestControls/main.cpp b/swGUI/Tests/TestControls/main.cpp new file mode 100644 index 00000000..34f9cea1 --- /dev/null +++ b/swGUI/Tests/TestControls/main.cpp @@ -0,0 +1,2 @@ +#define CATCH_CONFIG_MAIN // This tells Catch to provide a main() - only do this in one cpp file +#include "swCommonLib/External/Catch/catch.hpp" diff --git a/swGUI/Tests/TestRenderingSystem.DX11/TestGeometryShaderCompilation.cpp b/swGUI/Tests/TestRenderingSystem.DX11/TestGeometryShaderCompilation.cpp index 8536cc03..125e93b2 100644 --- a/swGUI/Tests/TestRenderingSystem.DX11/TestGeometryShaderCompilation.cpp +++ b/swGUI/Tests/TestRenderingSystem.DX11/TestGeometryShaderCompilation.cpp @@ -1,6 +1,7 @@ #include "swCommonLib/External/Catch/catch.hpp" #include "swGUI/TestFramework/DX11/TestFramework.DX11.h" +#include "swCommonLib/TestUtils/CatchUtils/ExtendedMacros.h" #include "swGUI/TestFramework/Testers/Rendering/DrawingTester.h" #include "swGUI/TestFramework/Utils/Mocks/Rendering/FakeDrawing.h" @@ -25,7 +26,7 @@ TEST_CASE( "GUI.Rendering.DX11.Geometry.ShaderCompilation.ForwardAttributes", "[ FakeGeometryPtr geom = std::make_shared< FakeGeometry >( Geometry::ConstantBufferMode::Disable ); geom->SetShaderFunction( "$(CoreGUI-Shader-Dir)/Geometry/ForwardAttributes.vsh" ); - drawing->UpdateVertexShader( framework->GetRenderingSystem()->GetShaderProvider(), geom.get() ); + REQUIRE_IS_VALID( drawing->UpdateVertexShader( framework->GetRenderingSystem()->GetShaderProvider(), geom.get() ) ); auto& renderingData = CLASS_TESTER( Drawing )::GetGeometryRenderingData( drawing.get() ); @@ -45,7 +46,7 @@ TEST_CASE( "GUI.Rendering.DX11.Geometry.ShaderCompilation.ForwardWithOpacity", " geom->SetShaderFunction( "$(CoreGUI-Shader-Dir)/Geometry/ForwardWithOpacity.vsh" ); - drawing->UpdateVertexShader( sp, geom.get(), sp->GetOpacityVSTemplate() ); + REQUIRE_IS_VALID( drawing->UpdateVertexShader( sp, geom.get(), sp->GetOpacityVSTemplate() ) ); auto& renderingData = CLASS_TESTER( Drawing )::GetGeometryRenderingData( drawing.get() ); diff --git a/swGUI/Tests/TestRenderingSystem.DX11/TestWindowRendering.cpp b/swGUI/Tests/TestRenderingSystem.DX11/TestWindowRendering.cpp index 84e163db..15bc57b8 100644 --- a/swGUI/Tests/TestRenderingSystem.DX11/TestWindowRendering.cpp +++ b/swGUI/Tests/TestRenderingSystem.DX11/TestWindowRendering.cpp @@ -41,24 +41,6 @@ void AddRectangle ( HostWindow* host, BrushPtr brush, BrushPtr stroke, floa host->AddChild( std::move( rectangleControl ) ); } -// ================================ // -// -struct FrameworkCleaner -{ - TestFramework* Framework; - - // ================================ // - // - FrameworkCleaner( TestFramework* framework ) - : Framework( framework ) - {} - - // ================================ // - // - ~FrameworkCleaner() - { Framework->Clean(); } -}; - //====================================================================================// // Test cases //====================================================================================// From 01293821da496f3594f66232adf27d0242d43678 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Fri, 15 Nov 2024 17:06:16 +0100 Subject: [PATCH 70/96] Create FontPicker for finding fonts based on family weight and style --- .clang-format | 3 +- .../Controls/TextualControls/TextBlock.cpp | 9 -- .../Core/Controls/TextualControls/TextBlock.h | 20 +---- swGUI/TestResources/fonts/arial.ttf | Bin 0 -> 367112 bytes swGUI/Tests/TestControls/TestTextBlock.cpp | 12 +-- .../Assets/TextAsset/Loader/FontLoader.cpp | 10 +++ .../Assets/TextAsset/Loader/FontPicker.cpp | 73 +++++++++++++++ .../Assets/TextAsset/Loader/FontPicker.h | 83 ++++++++++++++++++ .../Assets/TextAsset/Loader/FreeType.h | 4 + .../Tests/TestText/TestText.vcxproj | 1 + .../Tests/TestText/TestText.vcxproj.filters | 3 + .../Visual2015/TextAsset/TextAsset.vcxproj | 2 + .../TextAsset/TextAsset.vcxproj.filters | 6 ++ .../Tests/TestText/TestFontPicker.cpp | 43 +++++++++ 14 files changed, 235 insertions(+), 34 deletions(-) create mode 100644 swGUI/TestResources/fonts/arial.ttf create mode 100644 swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp create mode 100644 swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h create mode 100644 swGraphicAPI/Tests/TestText/TestFontPicker.cpp diff --git a/.clang-format b/.clang-format index 6f5b805a..74fb4d97 100644 --- a/.clang-format +++ b/.clang-format @@ -37,7 +37,8 @@ BraceWrapping: # Add a space after @property, \@property (readonly) instead of \@property(readonly). ObjCSpaceAfterProperty: true # Offset of access specifiers (public, private, etc.) -AccessModifierOffset: -4 +AccessModifierOffset: 0 +IndentAccessModifiers: true # Alignment after opening brackets (opening parentheses, opening angle brackets, opening square brackets): Align, DontAlign, AlwaysBreak (always wrap after opening brackets) AlignAfterOpenBracket: Align # When assigning consecutively, align all equal signs diff --git a/swGUI/Core/Controls/TextualControls/TextBlock.cpp b/swGUI/Core/Controls/TextualControls/TextBlock.cpp index 2838986b..aa444677 100644 --- a/swGUI/Core/Controls/TextualControls/TextBlock.cpp +++ b/swGUI/Core/Controls/TextualControls/TextBlock.cpp @@ -15,15 +15,6 @@ RTTR_REGISTRATION { - rttr::registration::enumeration< sw::gui::FontWeight >( "sw::gui::FontWeight" )( - rttr::value( "Light", sw::gui::FontWeight::Light ), - rttr::value( "Normal", sw::gui::FontWeight::Normal ), - rttr::value( "UltraBold", sw::gui::FontWeight::UltraBold ) ); - - rttr::registration::enumeration< sw::gui::FontStyle >( "sw::gui::FontStyle" )( - rttr::value( "Normal", sw::gui::FontStyle::Normal ), - rttr::value( "Italic", sw::gui::FontStyle::Italic ) ); - rttr::registration::class_< sw::gui::TextBlock >( "sw::gui::TextBlock" ) .property( "Background", &sw::gui::TextBlock::GetBackground, &sw::gui::TextBlock::SetBackground ) .property( "Foreground", &sw::gui::TextBlock::GetForeground, &sw::gui::TextBlock::SetForeground ) diff --git a/swGUI/Core/Controls/TextualControls/TextBlock.h b/swGUI/Core/Controls/TextualControls/TextBlock.h index 44600cd3..fe77bb2b 100644 --- a/swGUI/Core/Controls/TextualControls/TextBlock.h +++ b/swGUI/Core/Controls/TextualControls/TextBlock.h @@ -9,31 +9,15 @@ #include "swGUI/Core/Media/Brushes/Brush.h" #include "swGUI/Core/System/Rendering/Drawings/TextDrawing.h" + #include "swGraphicAPI/Assets/TextAsset/Text.h" +#include "swGraphicAPI/Assets/TextAsset/FontPicker.h" namespace sw { namespace gui { -/**@brief Font style. -@ingroup Text*/ -enum class FontStyle : u8 -{ - Normal, - Italic, - // Oblique -}; - -/**@brief Font thickness. -@ingroup Text*/ -enum class FontWeight : u8 -{ - Light, - Normal, - UltraBold, -}; - /**@brief Simple Text presenter. @ingroup Text @ingroup Controls*/ diff --git a/swGUI/TestResources/fonts/arial.ttf b/swGUI/TestResources/fonts/arial.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ff0815cd8c64b0a245ec780eb8d21867509155b5 GIT binary patch literal 367112 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≺9Wiv@#qpl#qL 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≪P+Tw+*$qa@!i>|Uj$m6(YG+< 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 framework->GetNativeGUI() ); - auto window = framework->CreateNativeHostWindow( 400, 400, "Test Window" ).Get(); + + // Window must be focused to be rendered. + mockNativeGUI->SendChangeFocus( window->GetNativeWindow(), true ); auto background = std::make_shared< SolidColorBrush >( Colors::WhiteSmoke ); auto pen = std::make_shared< SolidColorBrush >( Colors::Black ); auto text = AddText( window, background, pen, 300, 300, Position( 0, 40 ), sLoremIpsum ); + REQUIRE( text->QueryDrawing() != nullptr ); REQUIRE( text->GetGeometry() != nullptr ); - // Window must be focused to be rendered. - mockNativeGUI->SendChangeFocus( window->GetNativeWindow(), true ); - // Run single frame. If something was wrong it should fails here. - framework->MainLoopCore(); + REQUIRE_NOTHROW( framework->MainLoopCore() ); } diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp index a759345c..b2902038 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp @@ -313,4 +313,14 @@ void FreeTypeLibrary::RenderGlyph( const Glyph& glyph, Im } } +// ================================ // + +FontSearchEntry FreeTypeLibrary::Metadata() const +{ + return FontSearchEntry{ + this->Face->family_name, this->Face->style_name, + ( this->Face->style_flags & FT_STYLE_FLAG_BOLD ) ? FontWeight::UltraBold : FontWeight::Normal, + ( this->Face->style_flags & FT_STYLE_FLAG_ITALIC ) ? FontStyle::Italic : FontStyle::Normal, LoadPath( AssetPath(), AssetPath() ) }; +} + } diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp new file mode 100644 index 00000000..68a10697 --- /dev/null +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp @@ -0,0 +1,73 @@ +/** +@file FontPicker.cpp +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ +#include "swGraphicAPI/Assets/TextAsset/stdafx.h" + +#include "swCommonLib/Common/RTTR.h" +#include "swGraphicAPI/Assets/TextAsset/Loader/FreeType.h" + + +#include "FontPicker.h" + + +RTTR_REGISTRATION +{ + rttr::registration::enumeration< sw::FontWeight >( "sw::FontWeight" )( + rttr::value( "Light", sw::FontWeight::Light ), + rttr::value( "Normal", sw::FontWeight::Normal ), + rttr::value( "UltraBold", sw::FontWeight::UltraBold ) ); + + rttr::registration::enumeration< sw::FontStyle >( "sw::FontStyle" )( + rttr::value( "Normal", sw::FontStyle::Normal ), + rttr::value( "Italic", sw::FontStyle::Italic ) ); +} + +namespace sw +{ +// ================================ // + +void FontPicker::RegisterSearchPath( const filesystem::Path& path ) +{ + m_searchPaths.push_back( path ); +} + +// ================================ // + +Nullable< FontSearchEntry > FontPicker::FindFontFile( PathsManager* pm, const std::string& fontFamily, + FontWeight weight, FontStyle style ) const +{ + return Nullable< FontSearchEntry >(); +} + +// ================================ // + +Nullable< std::vector< FontSearchEntry > > FontPicker::ListFonts( PathsManager* pm ) const +{ + return Nullable< std::vector< FontSearchEntry > >(); +} + +// ================================ // + +Nullable< std::vector< FontSearchEntry > > FontPicker::ListFontVariants( PathsManager* pm, const std::string& fontFamily ) const +{ + return Nullable< std::vector< FontSearchEntry > >(); +} + +// ================================ // + +Nullable< FontSearchEntry > FontPicker::FontMetadata( PathsManager* pm, const filesystem::Path& path ) const +{ + auto freeType = FreeTypeLibrary::Create(); + ReturnIfInvalid( freeType ); + + auto loadPath = LoadPath( AssetPath( path, "" ), pm ); + ReturnIfInvalid( freeType.Get().CreateFace( loadPath, 3 ) ); + + auto meta = freeType.Get().Metadata(); + meta.Path = loadPath; + return meta; +} + +} // sw diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h new file mode 100644 index 00000000..016eeee1 --- /dev/null +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h @@ -0,0 +1,83 @@ +#pragma once +/** +@file FontPicker.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + +#include "swCommonLib/Common/TypesDefinitions.h" + +#include "swGraphicAPI/ResourceManager/PathTranslators/PathsManager.h" + +#include + + +namespace sw +{ + +/**@brief Font style. +@ingroup Text*/ +enum class FontStyle : u8 +{ + Normal, + Italic, + // Oblique +}; + +/**@brief Font thickness. +@ingroup Text*/ +enum class FontWeight : u8 +{ + Light, + Normal, + UltraBold, +}; + +/**@brief Data structure retuned by @ref FontPicker. +@ingroup Text*/ +struct FontSearchEntry +{ +public: + std::string Family; + std::string StyleName; //< String name of the style retrieved from font metadata. + + FontWeight Weight; + FontStyle Style; + + LoadPath Path; +}; + + +/**@brief Finds @ref Font file that fits best to given parameters. + +There are 2 reasons for existance of this class: +1) We want to be able to search Fonts in different directories, in system directories among others. +In most cases we don't know path of the file, we know only font family, weight and style. +2) There is non trivial mapping between font family, weight and style to file path. File name can't be +derived from those parameters. We have to search through directories and check file metadata to match +desired font. + +@ingroup Text*/ +class FontPicker +{ +private: + + std::vector< filesystem::Path > m_searchPaths; + +protected: +public: + explicit FontPicker() = default; + ~FontPicker() = default; + + void RegisterSearchPath( const filesystem::Path& path ); + +public: + Nullable< FontSearchEntry > FindFontFile( PathsManager* pm, const std::string& fontFamily, FontWeight weight, FontStyle style ) const; + Nullable< std::vector< FontSearchEntry > > ListFonts( PathsManager* pm ) const; + Nullable< std::vector< FontSearchEntry > > ListFontVariants( PathsManager* pm, const std::string& fontFamily ) const; + Nullable< FontSearchEntry > FontMetadata( PathsManager* pm, const filesystem::Path& path ) const; +}; + + + +} // sw diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h b/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h index cdf253fc..dc7f77b5 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h @@ -22,6 +22,8 @@ static const char* ftErrorString( FT_Error error ) #include "swCommonLib/Common/Exceptions/Nullable.h" #include "swCommonLib/Common/Buffers/ImageRegion.h" #include "swGeometrics/GeometricsCore/Math/Types.h" +#include "swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h" + namespace sw { @@ -48,6 +50,8 @@ class FreeTypeLibrary /**Renders Glyph to bitmap in selected rectangle.*/ void RenderGlyph ( const Glyph& glyph, ImageRegion< u32 >& image ) const; + + FontSearchEntry Metadata () const; }; diff --git a/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj b/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj index 27b0dc39..1d386a31 100644 --- a/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj +++ b/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj @@ -21,6 +21,7 @@ + diff --git a/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj.filters b/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj.filters index 3649e4f1..d7d6404a 100644 --- a/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj.filters +++ b/swGraphicAPI/ProjectsDir/Visual2015/Tests/TestText/TestText.vcxproj.filters @@ -19,6 +19,9 @@ Tests + + Tests + diff --git a/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj b/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj index d7ec4490..55349a53 100644 --- a/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj +++ b/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj @@ -37,6 +37,7 @@ + @@ -44,6 +45,7 @@ + diff --git a/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj.filters b/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj.filters index ae4fd37d..a8f0d75e 100644 --- a/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj.filters +++ b/swGraphicAPI/ProjectsDir/Visual2015/TextAsset/TextAsset.vcxproj.filters @@ -13,6 +13,9 @@ Loader + + Loader + @@ -33,6 +36,9 @@ Loader + + Loader + diff --git a/swGraphicAPI/Tests/TestText/TestFontPicker.cpp b/swGraphicAPI/Tests/TestText/TestFontPicker.cpp new file mode 100644 index 00000000..53763799 --- /dev/null +++ b/swGraphicAPI/Tests/TestText/TestFontPicker.cpp @@ -0,0 +1,43 @@ +#include "swCommonLib/External/Catch/catch.hpp" +/** +@file TestFontPicker.cpp +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + + +#include "swCommonLib/Common/Converters/Convert.h" +#include "swCommonLib\TestUtils\CatchUtils\ExtendedMacros.h" + +#include "swGraphicAPI/ResourceManager/ResourceManager.h" +#include "swGraphicAPI/ResourceManager/ResourceManagerAPI.h" + +#include "swGraphicAPI/Assets/TextAsset/FontAsset.h" +#include "swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h" +#include "swGraphicAPI/Tests/TestText/Utils.h" + +using namespace sw; + + +// ================================ // +// +TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.Metadata", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) +{ + auto rm = CreateResourceManagerWithFonts(); + auto api = ResourceManagerAPI( rm.get() ); + + FontPicker picker; + picker.RegisterSearchPath( "$(FontAssets)" ); + + auto meta = picker.FontMetadata( rm->GetPathsManager(), "$(FontAssets)/arial.ttf" ); + REQUIRE_IS_VALID( meta ); + CHECK( meta.Get().Family == "Arial" ); + CHECK( meta.Get().Style == FontStyle::Normal ); + CHECK( meta.Get().Weight == FontWeight::Normal ); + + auto meta2 = picker.FontMetadata( rm->GetPathsManager(), "$(FontAssets)/ELICEN.ttf" ); + REQUIRE( meta2.IsValid() ); + CHECK( meta2.Get().Family == "ELICEN" ); + CHECK( meta2.Get().Style == FontStyle::Normal ); + CHECK( meta2.Get().Weight == FontWeight::Normal ); +} From ea8be70bb48b947fdaafd49fe6b1f239c901c76f Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Fri, 15 Nov 2024 19:00:44 +0100 Subject: [PATCH 71/96] Use filesystem::path; List fonts in FontPicker --- swCommonLib/System/Dir.cpp | 17 ++ swCommonLib/System/Dir.h | 5 +- swCommonLib/System/Path.h | 145 ++++++------------ swCommonLib/Tests/FileSystemTest/PathTest.cpp | 6 +- .../FileSystemTest/TestNormalizePath.cpp | 2 +- .../Core/Controls/TextualControls/TextBlock.h | 2 +- .../Assets/TextAsset/Loader/FontPicker.cpp | 17 +- .../PathTranslators/AssetPath.cpp | 2 +- .../PathTranslators/PathsManager.cpp | 4 +- .../Tests/TestText/TestFontPicker.cpp | 17 ++ .../SerializerJson/SerializerJSON.cpp | 1 + .../SerializerXML/SerializerXML.cpp | 1 + 12 files changed, 108 insertions(+), 111 deletions(-) diff --git a/swCommonLib/System/Dir.cpp b/swCommonLib/System/Dir.cpp index 4d5839c7..9febb751 100644 --- a/swCommonLib/System/Dir.cpp +++ b/swCommonLib/System/Dir.cpp @@ -23,4 +23,21 @@ bool Dir::CreateDirectory ( const filesystem::Path& path ) return std::filesystem::create_directories( path.String() ); } +// ================================ // + +std::vector< Path > Dir::ListFiles( const filesystem::Path& path ) +{ + if( std::filesystem::exists( path.String() ) ) + { + std::vector< Path > files; + for( auto const& dir_entry : std::filesystem::directory_iterator{ path.GetStdPath() } ) + { + if( dir_entry.is_regular_file() ) + files.push_back( filesystem::Path( dir_entry.path() ) ); + } + return files; + } + return std::vector< Path >(); +} + } diff --git a/swCommonLib/System/Dir.h b/swCommonLib/System/Dir.h index 1efe0eec..59d2582c 100644 --- a/swCommonLib/System/Dir.h +++ b/swCommonLib/System/Dir.h @@ -7,7 +7,7 @@ #include "Path.h" - +#include namespace filesystem { @@ -23,7 +23,8 @@ class Dir ~Dir() = default; - static bool CreateDirectory ( const filesystem::Path& path ); + static bool CreateDirectory ( const filesystem::Path& path ); + static std::vector< Path > ListFiles ( const filesystem::Path& path ); }; diff --git a/swCommonLib/System/Path.h b/swCommonLib/System/Path.h index ae7f5b64..5d58121a 100644 --- a/swCommonLib/System/Path.h +++ b/swCommonLib/System/Path.h @@ -1,14 +1,13 @@ #pragma once /** @file Path.h -@author nieznanysprawiciel -@copyright Plik jest czci silnika graficznego SWEngine. +@author +@copyright This file is part of the SWEngine graphics engine. -Implementacja klasy Path. Poniewa Path nie znajduje si jeszcze w standardzie c++, ale -zostanie do niego wczone dopiero wraz z c++17, to potrzebny jest ten wrapper. -Na razie implementacje dla rnych kompilatorw umieszczaj t klas w rnych namespacach, -wic nie da si tego zaimplementowac w peni przenonie. -*/ +Implementation of the Path class. Since Path is not yet part of the C++ standard, +but will be included with C++17, this wrapper is needed. +Currently, implementations for different compilers place this class in different namespaces, +so it cannot be implemented fully portably.*/ // Supress deprecation warning. We nned to remember to use @@ -16,8 +15,8 @@ #define _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING -//#include -#include "Filesystem/filesystem/path.h" +#include +//#include "Filesystem/filesystem/path.h" #include #include @@ -29,12 +28,10 @@ namespace filesystem { -//namespace experimental = std::tr2::sys; - class Path { private: - path_impl m_path; + std::filesystem::path m_path; public: @@ -57,7 +54,6 @@ class Path bool operator<= ( const Path& other ) const; bool operator> ( const Path& other ) const; bool operator>= ( const Path& other ) const; - //bool Compare ( const Path& path1, const Path& path2 ); friend Path operator/ ( const Path& path1, const Path& path2 ); @@ -73,7 +69,7 @@ class Path void Normalize (); void MakeAbsolute (); Path ChangeExtension ( const std::string& extension ) const; - + Path RelativeTo ( const Path& base ) const; //bool HasRoot () const; bool HasFileName () const; @@ -94,18 +90,15 @@ class Path public: ///@note This function may change or disapear in future. - const std::vector< std::string >& GetTokens () const; - - Path ClipFromRoot ( int num ) const; + std::vector< std::string > GetTokens() const; + const std::filesystem::path GetStdPath() const; }; // ================================ // // template< class Source > -inline Path::Path ( const Source& source ) - : m_path( path_impl( source ) ) -{} +inline Path::Path ( const Source& source ) : m_path( std::filesystem::path( source ) ) {} // ================================ // // @@ -120,7 +113,7 @@ inline Path::Path ( const std::wstring& path ) //std::wstring_convert< ConvertType, wchar_t > converter; //auto pathStr = converter.to_bytes( path ); - m_path = path_impl( path ); + m_path = std::filesystem::path( path ); } // ================================ // @@ -165,59 +158,52 @@ inline bool Path::operator!= ( const Path& other ) const // inline bool Path::operator< ( const Path& other ) const { - return m_path.str() < other.m_path.str(); + return m_path < other.m_path; } // ================================ // // inline bool Path::operator<= ( const Path& other ) const { - return m_path.str() <= other.m_path.str(); + return m_path <= other.m_path; } // ================================ // // inline bool Path::operator> ( const Path& other ) const { - return m_path.str() > other.m_path.str(); + return m_path > other.m_path; } // ================================ // // inline bool Path::operator>= ( const Path& other ) const { - return m_path.str() >= other.m_path.str(); + return m_path >= other.m_path; } -///**@brief Porwnuje cieki. Przed porwnaniem cieki s normalizowane. -//Paths must exist on file system.*/ -//inline bool Path::Compare ( const Path& path1, const Path& path2 ) -//{ -// return experimental::equivalent( path1.m_path, path2.m_path ); -//} - /**@brief */ inline std::string Path::String() const { - return m_path.str(); + return m_path.string(); } /**@brief */ inline std::wstring Path::WString() const { - return m_path.wstr(); + return m_path.wstring(); } /**@brief */ inline std::string Path::GetFileName() const { - return m_path.filename(); + return m_path.filename().string(); } /**@brief */ inline std::string Path::GetExtension() const { - return m_path.extension(); + return m_path.extension().string(); } /**@brief */ @@ -236,56 +222,17 @@ inline Path Path::GetDirectory() const } /**@brief Normalizes path. -@attention Obecna implementacja moe nie dziaa do koca.*/ +@attention The current implementation may not work completely.*/ inline void Path::Normalize() { - auto& tokens = m_path.get_tokens(); - std::string normalized = ""; - - // Avoid reallocating string all the time. - size_t maxLen = 0; - for( auto& token : tokens ) - maxLen += token.size(); - - normalized.reserve( maxLen ); - normalized = *tokens.crbegin(); - - size_t tokensToOmit = 0; - for( auto i = ++tokens.crbegin(); i != tokens.crend(); ++i ) - { - if( *i == ".." ) - { - tokensToOmit++; - } - else - { - if( tokensToOmit == 0 ) - { - // Add token to path from back to beginning. - normalized = *i + "/" + normalized; - } - else - { - tokensToOmit--; - } - } - } - - // Add all .. signs that remained to the beginning. - while( tokensToOmit > 0 ) - { - normalized = "../" + normalized; - tokensToOmit--; - } - - m_path = path_impl( normalized ); + m_path = m_path.lexically_normal(); } // ================================ // // inline void Path::MakeAbsolute () { - m_path.make_absolute(); + m_path = std::filesystem::absolute( m_path ); } // ================================ // @@ -293,18 +240,19 @@ inline void Path::MakeAbsolute () inline Path Path::ChangeExtension( const std::string& extension ) const { auto ext = m_path.extension(); - auto filename = m_path.filename(); + auto filename = m_path.filename().string(); if( filename == "." || filename == ".." ) return Path( *this ); - auto startPos = filename.rfind( ext ); - if( startPos != std::string::npos ) - { - filename.replace( startPos, filename.length(), extension ); - return m_path.parent_path() / filename; - } - return Path( *this ); + return std::filesystem::path( m_path ).replace_extension( std::filesystem::path( extension ) ); +} + +// ================================ // + +inline Path Path::RelativeTo( const Path& base ) const +{ + return m_path.lexically_relative( base.m_path ); } ///**@brief */ @@ -346,14 +294,14 @@ inline bool Path::IsAbsolut() const /**@brief Check if file exists.*/ inline bool Path::Exists() const { - return m_path.exists(); + return std::filesystem::exists( m_path ); } // ================================ // // inline Path Path::WorkingDirectory() { - return path_impl::getcwd(); + return std::filesystem::current_path(); } /**@brief */ @@ -366,24 +314,21 @@ inline Path operator/( const Path& path1, const Path& path2 ) // ================================ // // -inline const std::vector< std::string >& Path::GetTokens () const +inline std::vector< std::string > Path::GetTokens () const { - return m_path.get_tokens(); -} + std::vector< std::string > tokens; + for( auto it = m_path.begin(); it != m_path.end(); ++it ) + tokens.push_back( it->string() ); -// ================================ // -// -inline Path Path::ClipFromRoot ( int num ) const -{ - return Path( m_path.clip_from_root( num ) ); + return tokens; } ///**@brief Returns standard library path. //Use only if you must.*/ -//inline const experimental::path& Path::GetStdPath() const -//{ -// return m_path; -//} +inline const std::filesystem::path Path::GetStdPath() const +{ + return m_path; +} } diff --git a/swCommonLib/Tests/FileSystemTest/PathTest.cpp b/swCommonLib/Tests/FileSystemTest/PathTest.cpp index 74087ac4..ad769519 100644 --- a/swCommonLib/Tests/FileSystemTest/PathTest.cpp +++ b/swCommonLib/Tests/FileSystemTest/PathTest.cpp @@ -47,12 +47,12 @@ TEST_CASE( "Path - Aquire Extension" ) CHECK( path6.GetExtension() == "" ); CHECK( path7.GetExtension() == "" ); CHECK( path8.GetExtension() == "" ); - CHECK( path9.GetExtension() == ".hidden" ); + CHECK( path9.GetExtension() == "" ); } // ================================ // // -TEST_CASE( "Path.ChnageExtension" ) +TEST_CASE( "Path.ChangeExtension" ) { filesystem::Path path1( "/foo/bar.txt" ); filesystem::Path path2( "/foo/bar." ); @@ -69,6 +69,6 @@ TEST_CASE( "Path.ChnageExtension" ) CHECK( path7.ChangeExtension( ".png" ) == "/foo/." ); CHECK( path8.ChangeExtension( ".png" ) == "/foo/.." ); - CHECK( path9.ChangeExtension( ".png" ) == "/foo/.png" ); + CHECK( path9.ChangeExtension( ".png" ) == "/foo/.hidden.png" ); } diff --git a/swCommonLib/Tests/FileSystemTest/TestNormalizePath.cpp b/swCommonLib/Tests/FileSystemTest/TestNormalizePath.cpp index 91ba3cae..99ba55f1 100644 --- a/swCommonLib/Tests/FileSystemTest/TestNormalizePath.cpp +++ b/swCommonLib/Tests/FileSystemTest/TestNormalizePath.cpp @@ -99,6 +99,6 @@ TEST_CASE( "Filesystem.Normalize.RamainingDots.DotsOnly" ) filesystem::Path path( "../../" ); path.Normalize(); - CHECK( path == "../../" ); + CHECK( path == filesystem::Path( "../../" ) ); } diff --git a/swGUI/Core/Controls/TextualControls/TextBlock.h b/swGUI/Core/Controls/TextualControls/TextBlock.h index fe77bb2b..803cf8c4 100644 --- a/swGUI/Core/Controls/TextualControls/TextBlock.h +++ b/swGUI/Core/Controls/TextualControls/TextBlock.h @@ -11,7 +11,7 @@ #include "swGUI/Core/System/Rendering/Drawings/TextDrawing.h" #include "swGraphicAPI/Assets/TextAsset/Text.h" -#include "swGraphicAPI/Assets/TextAsset/FontPicker.h" +#include "swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h" namespace sw { diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp index 68a10697..089efeb8 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp @@ -6,6 +6,7 @@ #include "swGraphicAPI/Assets/TextAsset/stdafx.h" #include "swCommonLib/Common/RTTR.h" +#include "swCommonLib/System/Dir.h" #include "swGraphicAPI/Assets/TextAsset/Loader/FreeType.h" @@ -45,7 +46,21 @@ Nullable< FontSearchEntry > FontPicker::FindFontFile( PathsManager* pm, cons Nullable< std::vector< FontSearchEntry > > FontPicker::ListFonts( PathsManager* pm ) const { - return Nullable< std::vector< FontSearchEntry > >(); + std::vector< FontSearchEntry > entries; + + for( auto path : m_searchPaths ) + { + auto dir = pm->Translate( path ); + auto files = filesystem::Dir::ListFiles( dir ); + for( auto file : files ) + { + auto meta = FontMetadata( pm, file ); + if( meta.IsValid() ) + entries.push_back( meta.Get() ); + } + } + + return entries; } // ================================ // diff --git a/swGraphicAPI/ResourceManager/PathTranslators/AssetPath.cpp b/swGraphicAPI/ResourceManager/PathTranslators/AssetPath.cpp index 54012e84..623449f6 100644 --- a/swGraphicAPI/ResourceManager/PathTranslators/AssetPath.cpp +++ b/swGraphicAPI/ResourceManager/PathTranslators/AssetPath.cpp @@ -26,7 +26,7 @@ Nullable< AssetPath > AssetPath::FromString ( const std::string& assetPath ) if( std::regex_match( assetPath, match, sAssetPathRegex ) ) { // Ignore first match, it represents full match, that is full string. - return AssetPath( match[ 1 ], match[ 2 ] ); + return AssetPath( match[ 1 ].str(), match[ 2 ].str() ); } return std::make_shared< RuntimeException >( "String can't be converted to AssetPath." ); diff --git a/swGraphicAPI/ResourceManager/PathTranslators/PathsManager.cpp b/swGraphicAPI/ResourceManager/PathTranslators/PathsManager.cpp index 75771e2a..e37819b6 100644 --- a/swGraphicAPI/ResourceManager/PathTranslators/PathsManager.cpp +++ b/swGraphicAPI/ResourceManager/PathTranslators/PathsManager.cpp @@ -26,7 +26,7 @@ filesystem::Path PathsManager::Translate ( const filesystem::Path& path ) con // Absolut paths don't need translation. if( path.IsRelative() ) { - const auto& segments = path.GetTokens(); + const auto segments = path.GetTokens(); if( segments.size() > 0 ) { const auto& alias = segments[ 0 ]; @@ -35,7 +35,7 @@ filesystem::Path PathsManager::Translate ( const filesystem::Path& path ) con auto iter = m_aliases.find( alias ); if( iter != m_aliases.end() ) { - filesystem::Path relativePart = path.ClipFromRoot( 1 ); + filesystem::Path relativePart = path.RelativeTo( filesystem::Path( alias ) ); return iter->second / relativePart; } } diff --git a/swGraphicAPI/Tests/TestText/TestFontPicker.cpp b/swGraphicAPI/Tests/TestText/TestFontPicker.cpp index 53763799..9f479a80 100644 --- a/swGraphicAPI/Tests/TestText/TestFontPicker.cpp +++ b/swGraphicAPI/Tests/TestText/TestFontPicker.cpp @@ -41,3 +41,20 @@ TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.Metadata", "[GraphicAPI][FontLoad CHECK( meta2.Get().Style == FontStyle::Normal ); CHECK( meta2.Get().Weight == FontWeight::Normal ); } + +// ================================ // +// +TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.ListFonts", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) +{ + auto rm = CreateResourceManagerWithFonts(); + auto api = ResourceManagerAPI( rm.get() ); + + FontPicker picker; + picker.RegisterSearchPath( "$(FontAssets)" ); + + auto list = picker.ListFonts( rm->GetPathsManager() ); + REQUIRE_IS_VALID( list ); + + auto& files = list.Get(); + CHECK( files.size() == 3 ); +} diff --git a/swSerialization/Serializers/SerializerJson/SerializerJSON.cpp b/swSerialization/Serializers/SerializerJson/SerializerJSON.cpp index 7d8f77a3..a94540b1 100644 --- a/swSerialization/Serializers/SerializerJson/SerializerJSON.cpp +++ b/swSerialization/Serializers/SerializerJson/SerializerJSON.cpp @@ -20,6 +20,7 @@ #include "ErrorCodes.h" #include +#include diff --git a/swSerialization/Serializers/SerializerXML/SerializerXML.cpp b/swSerialization/Serializers/SerializerXML/SerializerXML.cpp index 7844f25f..8c9ff6c3 100644 --- a/swSerialization/Serializers/SerializerXML/SerializerXML.cpp +++ b/swSerialization/Serializers/SerializerXML/SerializerXML.cpp @@ -14,6 +14,7 @@ #include "swSerialization/External/RapidXML/rapidxml_print.hpp" #include +#include namespace sw From 92d620112e5de8dc639830f350ed1aef18a3bec5 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sat, 16 Nov 2024 00:33:32 +0100 Subject: [PATCH 72/96] Revert Path implementation to custom; change namespace to sw::fs to avoid collisions --- .clang-format | 4 +- .../Common/FileNotFoundException.cpp | 2 +- .../Exceptions/Common/FileNotFoundException.h | 10 +- .../Common/Profile/PerformanceCheck.cpp | 2 +- swCommonLib/HierarchicalChunkedFormat/HCF.cpp | 6 +- swCommonLib/HierarchicalChunkedFormat/HCF.h | 6 +- .../Internal/ImplHCF.cpp | 6 +- .../Internal/ImplHCF.h | 6 +- swCommonLib/System/Dir.cpp | 19 ++- swCommonLib/System/Dir.h | 10 +- swCommonLib/System/File.cpp | 78 +++++----- swCommonLib/System/File.h | 31 ++-- .../System/Filesystem/filesystem/path.h | 2 +- swCommonLib/System/Path.h | 136 ++++++++++++------ swCommonLib/System/Path.h.rej | 61 ++++++++ swCommonLib/Tests/FileSystemTest/PathTest.cpp | 38 ++--- .../FileSystemTest/TestNormalizePath.cpp | 20 +-- .../Core/Media/Brushes/AngleGradientBrush.cpp | 2 +- swGUI/Core/Media/Brushes/AngleGradientBrush.h | 2 +- swGUI/Core/Media/Brushes/Brush.h | 2 +- swGUI/Core/Media/Brushes/ImageBrush.cpp | 2 +- swGUI/Core/Media/Brushes/ImageBrush.h | 2 +- .../Media/Brushes/LinearGradientBrush.cpp | 2 +- .../Core/Media/Brushes/LinearGradientBrush.h | 2 +- swGUI/Core/Media/Brushes/SolidColorBrush.cpp | 2 +- swGUI/Core/Media/Brushes/SolidColorBrush.h | 2 +- swGUI/Core/Media/Geometry/EllipseGeometry.cpp | 2 +- swGUI/Core/Media/Geometry/EllipseGeometry.h | 2 +- swGUI/Core/Media/Geometry/Geometry.h | 2 +- .../Core/Media/Geometry/RectangleGeometry.cpp | 2 +- swGUI/Core/Media/Geometry/RectangleGeometry.h | 2 +- swGUI/Core/Media/Geometry/TextGeometry.cpp | 2 +- swGUI/Core/Media/Geometry/TextGeometry.h | 2 +- .../System/Rendering/Drawings/Drawing.cpp | 8 +- .../Core/System/Rendering/Drawings/Drawing.h | 8 +- .../Rendering/Shading/ShaderProvider.cpp | 38 ++--- .../System/Rendering/Shading/ShaderProvider.h | 16 +-- swGUI/Native/INativeOS.h | 4 +- swGUI/Native/MockNativeGUI/MockOS.cpp | 8 +- swGUI/Native/MockNativeGUI/MockOS.h | 4 +- swGUI/Native/WinAPI/WindowsOS.cpp | 6 +- swGUI/Native/WinAPI/WindowsOS.h | 4 +- .../PrototyperGUI/PrototyperUtils.cpp | 4 +- .../PrototyperGUI/PrototyperUtils.h | 2 +- .../TextShowcase/PrototyperUtils.cpp | 4 +- .../Prototypes/TextShowcase/PrototyperUtils.h | 2 +- swGUI/TestFramework/TestFramework.cpp | 4 +- swGUI/TestFramework/TestFramework.h | 2 +- .../Utils/Mocks/Media/FakeBrush.cpp | 2 +- .../Utils/Mocks/Media/FakeBrush.h | 2 +- .../Utils/Mocks/Media/FakeGeometry.cpp | 2 +- .../Utils/Mocks/Media/FakeGeometry.h | 2 +- .../Assets/TextAsset/Loader/FontPicker.cpp | 6 +- .../Assets/TextAsset/Loader/FontPicker.h | 6 +- .../DX11Resources/DX11ComputeShader.cpp | Bin 3500 -> 3484 bytes .../DX11API/DX11Resources/DX11ComputeShader.h | Bin 2342 -> 2326 bytes .../DX11API/DX11Resources/DX11PixelShader.cpp | Bin 3960 -> 3944 bytes .../DX11API/DX11Resources/DX11PixelShader.h | Bin 2266 -> 2250 bytes .../DX11Resources/DX11RenderTarget.cpp | Bin 24496 -> 24448 bytes .../DX11Resources/DX11VertexShader.cpp | Bin 3562 -> 3546 bytes .../DX11API/DX11Resources/DX11VertexShader.h | Bin 2260 -> 2244 bytes .../SoilTextureLoader/SoilTextureLoader.cpp | 2 +- .../SoilTextureLoader/SoilTextureLoader.h | 2 +- .../swMaterialLoader/swMaterialLoader.cpp | 4 +- .../swMaterialLoader/swMaterialLoader.h | 2 +- .../MockResources/MockComputeShader.cpp | Bin 2754 -> 2738 bytes .../MockAPI/MockResources/MockComputeShader.h | Bin 1730 -> 1714 bytes .../MockAPI/MockResources/MockPixelShader.cpp | Bin 3022 -> 3006 bytes .../MockAPI/MockResources/MockPixelShader.h | Bin 1702 -> 1686 bytes .../MockResources/MockRenderTarget.cpp | Bin 7238 -> 7190 bytes .../MockResources/MockVertexShader.cpp | Bin 2498 -> 2482 bytes .../MockAPI/MockResources/MockVertexShader.h | Bin 1764 -> 1748 bytes swGraphicAPI/MockAssets/MockAssetLoader.cpp | 2 +- .../AssetCreators/Shaders/ShaderCreator.inl | 2 +- .../ResourceManager/AsyncLoad/LoadBarrier.cpp | 12 +- .../ResourceManager/AsyncLoad/LoadBarrier.h | 14 +- .../Exceptions/ResourceManagerException.cpp | 2 +- .../Exceptions/ResourceManagerException.h | 4 +- .../ResourceManager/Loaders/ShaderLoader.cpp | 2 +- .../PathTranslators/AssetPath.h | 12 +- .../PathTranslators/LoadPath.h | 18 +-- .../PathTranslators/PathsManager.cpp | 10 +- .../PathTranslators/PathsManager.h | 10 +- .../ResourceManager/ResourceManager.cpp | 2 +- .../ResourceManager/ResourceManager.h | 2 +- swGraphicAPI/Resources/Resource.cpp | 2 +- swGraphicAPI/Resources/ResourceObject.h | 2 +- swGraphicAPI/Resources/Shaders/IShader.h | 2 +- swGraphicAPI/Resources/Textures/Texture.h | 2 +- .../TestMaterial/TestSWMaterialSaver.cpp | 2 +- .../TestResourceManager/LoadBarrierTest.cpp | 4 +- .../TestResourceManager/TestAssetsFactory.cpp | 2 +- .../TestResourceManager/TestLoadPath.cpp | 6 +- .../TestCreators/TestShaderCreator.cpp | 4 +- swSerialization/Serialization/Serialization.h | 6 +- .../Serialization/Serialization.inl | 8 +- .../Serializers/SerializerJson/Serializer.cpp | 2 +- .../SerializerJson/SerializerJSON.cpp | 2 +- .../Serializers/SerializerXML/Serializer.cpp | 2 +- .../SerializerXML/SerializerXML.cpp | 2 +- 100 files changed, 438 insertions(+), 315 deletions(-) create mode 100644 swCommonLib/System/Path.h.rej diff --git a/.clang-format b/.clang-format index 74fb4d97..0fc5f5b3 100644 --- a/.clang-format +++ b/.clang-format @@ -37,8 +37,8 @@ BraceWrapping: # Add a space after @property, \@property (readonly) instead of \@property(readonly). ObjCSpaceAfterProperty: true # Offset of access specifiers (public, private, etc.) -AccessModifierOffset: 0 -IndentAccessModifiers: true +AccessModifierOffset: -4 +IndentAccessModifiers: false # Alignment after opening brackets (opening parentheses, opening angle brackets, opening square brackets): Align, DontAlign, AlwaysBreak (always wrap after opening brackets) AlignAfterOpenBracket: Align # When assigning consecutively, align all equal signs diff --git a/swCommonLib/Common/Exceptions/Common/FileNotFoundException.cpp b/swCommonLib/Common/Exceptions/Common/FileNotFoundException.cpp index e59085ea..2a232c91 100644 --- a/swCommonLib/Common/Exceptions/Common/FileNotFoundException.cpp +++ b/swCommonLib/Common/Exceptions/Common/FileNotFoundException.cpp @@ -13,7 +13,7 @@ namespace sw // ================================ // // -FileNotFoundException::FileNotFoundException ( filesystem::Path filePath ) +FileNotFoundException::FileNotFoundException ( fs::Path filePath ) : m_path( std::move( filePath ) ) {} diff --git a/swCommonLib/Common/Exceptions/Common/FileNotFoundException.h b/swCommonLib/Common/Exceptions/Common/FileNotFoundException.h index 7fcacd5d..f3df9ee1 100644 --- a/swCommonLib/Common/Exceptions/Common/FileNotFoundException.h +++ b/swCommonLib/Common/Exceptions/Common/FileNotFoundException.h @@ -24,25 +24,25 @@ class FileNotFoundException : public Exception private: protected: - filesystem::Path m_path; + fs::Path m_path; public: - explicit FileNotFoundException ( filesystem::Path filePath ); + explicit FileNotFoundException ( fs::Path filePath ); virtual ~FileNotFoundException () = default; public: virtual std::string ErrorMessage () const; - const filesystem::Path& GetFilePath () const { return m_path; } + const fs::Path& GetFilePath () const { return m_path; } public: - static FileNotFoundExceptionPtr Create ( filesystem::Path filePath ); + static FileNotFoundExceptionPtr Create ( fs::Path filePath ); }; // ================================ // // -inline FileNotFoundExceptionPtr FileNotFoundException::Create ( filesystem::Path filePath ) +inline FileNotFoundExceptionPtr FileNotFoundException::Create ( fs::Path filePath ) { return std::make_shared< FileNotFoundException >( std::move( filePath ) ); } diff --git a/swCommonLib/Common/Profile/PerformanceCheck.cpp b/swCommonLib/Common/Profile/PerformanceCheck.cpp index 22875db3..6c110ae6 100644 --- a/swCommonLib/Common/Profile/PerformanceCheck.cpp +++ b/swCommonLib/Common/Profile/PerformanceCheck.cpp @@ -104,7 +104,7 @@ void PerformanceCheck::PrintPerformanceStatisticsAsync(const std::string& output /**@brief Actual printing function.*/ void PerformanceCheck::PrintToFile(const std::string& outputFile, std::vector<_PerformanceData> data_copy) { - filesystem::Dir::CreateDirectory( ( filesystem::Path::WorkingDirectory() / outputFile ) ); + fs::Dir::CreateDirectory( ( fs::Path::WorkingDirectory() / outputFile ) ); std::fstream output; output.open(outputFile.c_str(), std::fstream::out | std::fstream::app); diff --git a/swCommonLib/HierarchicalChunkedFormat/HCF.cpp b/swCommonLib/HierarchicalChunkedFormat/HCF.cpp index 5c0e089f..da89a87a 100644 --- a/swCommonLib/HierarchicalChunkedFormat/HCF.cpp +++ b/swCommonLib/HierarchicalChunkedFormat/HCF.cpp @@ -24,7 +24,7 @@ namespace sw // ================================ // // -bool HCF::LoadFile ( const filesystem::Path& filePath, bool readOnly ) +bool HCF::LoadFile ( const fs::Path& filePath, bool readOnly ) { return m_impl.LoadFile( filePath, readOnly ); } @@ -38,14 +38,14 @@ bool HCF::Load ( DataPtr data, Size size ) // ================================ // // -bool HCF::WriteFile ( const filesystem::Path& filePath ) +bool HCF::WriteFile ( const fs::Path& filePath ) { return m_impl.WriteFile( filePath ); } // ================================ // // -bool HCF::OpenFile ( const filesystem::Path& filePath, WriteMode mode ) +bool HCF::OpenFile ( const fs::Path& filePath, WriteMode mode ) { return m_impl.OpenFile( filePath, WriteMode::DirectToFile == mode ? true : false ); } diff --git a/swCommonLib/HierarchicalChunkedFormat/HCF.h b/swCommonLib/HierarchicalChunkedFormat/HCF.h index 7eed7e13..d90a2663 100644 --- a/swCommonLib/HierarchicalChunkedFormat/HCF.h +++ b/swCommonLib/HierarchicalChunkedFormat/HCF.h @@ -56,16 +56,16 @@ class HCF ///@name Loading and saving ///@{ - bool LoadFile ( const filesystem::Path& filePath, bool readOnly ); + bool LoadFile ( const fs::Path& filePath, bool readOnly ); bool Load ( DataPtr data, Size size ); /**@brief Saves content to file. @see HCF::OpenFile*/ - bool WriteFile ( const filesystem::Path& filePath ); + bool WriteFile ( const fs::Path& filePath ); /**@brief Opens file for writing. This functions allows to use WriteMode::DirectToFile. If you use Indirect mode, there's no need to call this function.*/ - bool OpenFile ( const filesystem::Path& filePath, WriteMode mode ); + bool OpenFile ( const fs::Path& filePath, WriteMode mode ); ///@} Chunk GetRootChunk (); diff --git a/swCommonLib/HierarchicalChunkedFormat/Internal/ImplHCF.cpp b/swCommonLib/HierarchicalChunkedFormat/Internal/ImplHCF.cpp index 55ca649a..c2f96c3c 100644 --- a/swCommonLib/HierarchicalChunkedFormat/Internal/ImplHCF.cpp +++ b/swCommonLib/HierarchicalChunkedFormat/Internal/ImplHCF.cpp @@ -55,7 +55,7 @@ Chunk ImplHCF::GetRootChunk() // ================================ // // -bool ImplHCF::OpenFile ( const filesystem::Path& filePath, bool writeDirect ) +bool ImplHCF::OpenFile ( const fs::Path& filePath, bool writeDirect ) { m_file = fopen( filePath.String().c_str(), "wb" ); @@ -80,7 +80,7 @@ bool ImplHCF::OpenFile ( const filesystem::Path& filePath, bool writeDirect ) // ================================ // // -bool ImplHCF::WriteFile ( const filesystem::Path& filePath ) +bool ImplHCF::WriteFile ( const fs::Path& filePath ) { if( m_directWrite ) { @@ -103,7 +103,7 @@ bool ImplHCF::WriteFile ( const filesystem::Path& filePath ) // ================================ // // -bool ImplHCF::LoadFile ( const filesystem::Path& filePath, bool readOnly ) +bool ImplHCF::LoadFile ( const fs::Path& filePath, bool readOnly ) { m_fileReadOnly = readOnly; m_directWrite = false; diff --git a/swCommonLib/HierarchicalChunkedFormat/Internal/ImplHCF.h b/swCommonLib/HierarchicalChunkedFormat/Internal/ImplHCF.h index 648a1ea8..0d3a41c8 100644 --- a/swCommonLib/HierarchicalChunkedFormat/Internal/ImplHCF.h +++ b/swCommonLib/HierarchicalChunkedFormat/Internal/ImplHCF.h @@ -55,9 +55,9 @@ class ImplHCF Chunk GetRootChunk (); Chunk CreateRootChunk (); - bool OpenFile ( const filesystem::Path& filePath, bool writeDirect ); - bool WriteFile ( const filesystem::Path& filePath ); - bool LoadFile ( const filesystem::Path& filePath, bool readOnly ); + bool OpenFile ( const fs::Path& filePath, bool writeDirect ); + bool WriteFile ( const fs::Path& filePath ); + bool LoadFile ( const fs::Path& filePath, bool readOnly ); Attribute AddGlobalAttribute ( AttributeType type, const DataPtr data, Size dataSize ); Attribute AddAttribute ( AttributeReprPtr& list, AttributeType type, const DataPtr data, Size dataSize ); diff --git a/swCommonLib/System/Dir.cpp b/swCommonLib/System/Dir.cpp index 9febb751..ada8123f 100644 --- a/swCommonLib/System/Dir.cpp +++ b/swCommonLib/System/Dir.cpp @@ -8,14 +8,14 @@ #include - -namespace filesystem +namespace sw { +namespace fs { // ================================ // // -bool Dir::CreateDirectory ( const filesystem::Path& path ) +bool Dir::CreateDirectory ( const fs::Path& path ) { if( path.HasFileName() ) return std::filesystem::create_directories( path.GetParent().String() ); @@ -25,7 +25,7 @@ bool Dir::CreateDirectory ( const filesystem::Path& path ) // ================================ // -std::vector< Path > Dir::ListFiles( const filesystem::Path& path ) +std::vector< Path > Dir::ListFiles( const fs::Path& path ) { if( std::filesystem::exists( path.String() ) ) { @@ -33,11 +33,20 @@ std::vector< Path > Dir::ListFiles( const filesystem::Path& path ) for( auto const& dir_entry : std::filesystem::directory_iterator{ path.GetStdPath() } ) { if( dir_entry.is_regular_file() ) - files.push_back( filesystem::Path( dir_entry.path() ) ); + files.push_back( fs::Path( dir_entry.path() ) ); } return files; } return std::vector< Path >(); } +/**@brief Returns standard library path. +Use only if you must.*/ +std::filesystem::path Path::GetStdPath() const +{ + return std::filesystem::path( m_path.wstr() ); +} + +} + } diff --git a/swCommonLib/System/Dir.h b/swCommonLib/System/Dir.h index 59d2582c..3a48bf64 100644 --- a/swCommonLib/System/Dir.h +++ b/swCommonLib/System/Dir.h @@ -9,7 +9,9 @@ #include -namespace filesystem + +namespace sw { +namespace fs { @@ -23,9 +25,9 @@ class Dir ~Dir() = default; - static bool CreateDirectory ( const filesystem::Path& path ); - static std::vector< Path > ListFiles ( const filesystem::Path& path ); + static bool CreateDirectory ( const sw::fs::Path& path ); + static std::vector< Path > ListFiles ( const sw::fs::Path& path ); }; - +} } diff --git a/swCommonLib/System/File.cpp b/swCommonLib/System/File.cpp index fb5d7e3f..bdcc9abd 100644 --- a/swCommonLib/System/File.cpp +++ b/swCommonLib/System/File.cpp @@ -14,87 +14,87 @@ #include -namespace fs = std::filesystem; +namespace sw { +namespace fs +{ // ================================ // // -fs::path GetStdPath( const filesystem::Path& path ) +std::filesystem::path GetStdPath( const Path& path ) { - return fs::path( path.WString() ); + return std::filesystem::path( path.WString() ); } - // ================================ // // -filesystem::File::File ( const Path& path ) - : m_filePath( path ) -{ } +File::File( const Path& path ) : m_filePath( path ) {} // ================================ // // -filesystem::File::File ( Path&& path ) - : m_filePath( std::move( path ) ) -{} +File::File( Path&& path ) : m_filePath( std::move( path ) ) {} /**@brief */ -bool filesystem::File::Exists () const +bool File::Exists() const { - return m_filePath.Exists(); + return m_filePath.Exists(); } /**@brief */ -Size filesystem::File::FileSize () const +Size File::FileSize() const { - return fs::file_size( GetStdPath( m_filePath ) ); + return std::filesystem::file_size( GetStdPath( m_filePath ) ); } /**@brief */ -bool filesystem::File::Remove () +bool File::Remove() { - return fs::remove( GetStdPath( m_filePath ) ); + return std::filesystem::remove( GetStdPath( m_filePath ) ); } /**@brief */ -bool filesystem::File::Move ( const Path& newPath ) +bool File::Move( const Path& newPath ) { - std::error_code error; - fs::rename( GetStdPath( m_filePath ), GetStdPath( newPath ), error ); - - if( error ) - return false; - return true; + std::error_code error; + std::filesystem::rename( GetStdPath( m_filePath ), GetStdPath( newPath ), error ); + + if( error ) + return false; + return true; } /**@brief */ -bool filesystem::File::Copy ( const Path& newPath ) +bool File::Copy( const Path& newPath ) { - return fs::copy_file( GetStdPath( m_filePath ), GetStdPath( newPath ) ); + return std::filesystem::copy_file( GetStdPath( m_filePath ), GetStdPath( newPath ) ); } // ================================ // // -std::string filesystem::File::Load ( const Path& path ) +std::string File::Load( const Path& path ) { - std::ifstream file( path.String() ); - std::stringstream buffer; - buffer << file.rdbuf(); + std::ifstream file( path.String() ); + std::stringstream buffer; + buffer << file.rdbuf(); - return buffer.str(); + return buffer.str(); } // ================================ // // -bool filesystem::File::Save ( const Path& path, const std::string& content ) +bool File::Save( const Path& path, const std::string& content ) { - Dir::CreateDirectory( path ); + Dir::CreateDirectory( path ); - std::ofstream file( path.String() ); - if( file.is_open() ) - { - file << content; - return true; - } + std::ofstream file( path.String() ); + if( file.is_open() ) + { + file << content; + return true; + } - return false; + return false; } + +} // fs +} // namespace sw diff --git a/swCommonLib/System/File.h b/swCommonLib/System/File.h index 68d65951..0481260e 100644 --- a/swCommonLib/System/File.h +++ b/swCommonLib/System/File.h @@ -11,10 +11,10 @@ #include -namespace filesystem +namespace sw { +namespace fs { - /**@brief File abstraction layer. Encapsulates experimental c++ features. Provides interface for operations on files. @@ -23,27 +23,26 @@ class File { private: - Path m_filePath; + Path m_filePath; protected: public: - explicit File ( const Path& path ); - explicit File ( Path&& path ); - ~File () = default; - - bool Exists () const; - Size FileSize () const; + explicit File( const Path& path ); + explicit File( Path&& path ); + ~File() = default; - bool Remove (); - bool Move ( const Path& newPath ); - bool Copy ( const Path& newPath ); + bool Exists() const; + Size FileSize() const; + bool Remove(); + bool Move( const Path& newPath ); + bool Copy( const Path& newPath ); public: - static std::string Load ( const Path& path ); - static bool Save ( const Path& path, const std::string& content ); + static std::string Load( const Path& path ); + static bool Save( const Path& path, const std::string& content ); }; -} // filesystem - +} // namespace fs +} // namespace sw diff --git a/swCommonLib/System/Filesystem/filesystem/path.h b/swCommonLib/System/Filesystem/filesystem/path.h index 33f8c293..3d3b3865 100644 --- a/swCommonLib/System/Filesystem/filesystem/path.h +++ b/swCommonLib/System/Filesystem/filesystem/path.h @@ -83,7 +83,7 @@ class path_impl { return ""; // Ignore special cases - if( name == "." || name == ".." ) + if( name == "." || name == ".." || name[ 0 ] == '.' ) return ""; return name.substr(pos); diff --git a/swCommonLib/System/Path.h b/swCommonLib/System/Path.h index 5d58121a..637e2f4e 100644 --- a/swCommonLib/System/Path.h +++ b/swCommonLib/System/Path.h @@ -16,7 +16,7 @@ so it cannot be implemented fully portably.*/ #include -//#include "Filesystem/filesystem/path.h" +#include "Filesystem/filesystem/path.h" #include #include @@ -25,13 +25,18 @@ so it cannot be implemented fully portably.*/ #include "swCommonLib/Common/Macros/DefineFmtFormatter.h" -namespace filesystem +namespace sw { +namespace fs { + +/**@brief Wrapper for Path. +Class can't use std::filesystem::path, because in some places library use Resources names +that contain illigal signs.*/ class Path { private: - std::filesystem::path m_path; + ::filesystem::path_impl m_path; public: @@ -69,7 +74,7 @@ class Path void Normalize (); void MakeAbsolute (); Path ChangeExtension ( const std::string& extension ) const; - Path RelativeTo ( const Path& base ) const; + //bool HasRoot () const; bool HasFileName () const; @@ -85,20 +90,23 @@ class Path static Path WorkingDirectory(); public: - //const experimental::path& GetStdPath () const; + std::filesystem::path GetStdPath () const; public: ///@note This function may change or disapear in future. - std::vector< std::string > GetTokens() const; - const std::filesystem::path GetStdPath() const; + const std::vector< std::string >& GetTokens () const; + + Path ClipFromRoot ( int num ) const; }; // ================================ // // template< class Source > -inline Path::Path ( const Source& source ) : m_path( std::filesystem::path( source ) ) {} +inline Path::Path ( const Source& source ) + : m_path( ::filesystem::path_impl( source ) ) +{} // ================================ // // @@ -113,7 +121,7 @@ inline Path::Path ( const std::wstring& path ) //std::wstring_convert< ConvertType, wchar_t > converter; //auto pathStr = converter.to_bytes( path ); - m_path = std::filesystem::path( path ); + m_path = ::filesystem::path_impl( path ); } // ================================ // @@ -158,52 +166,61 @@ inline bool Path::operator!= ( const Path& other ) const // inline bool Path::operator< ( const Path& other ) const { - return m_path < other.m_path; + return m_path.str() < other.m_path.str(); } // ================================ // // inline bool Path::operator<= ( const Path& other ) const { - return m_path <= other.m_path; + return m_path.str() <= other.m_path.str(); } // ================================ // // inline bool Path::operator> ( const Path& other ) const { - return m_path > other.m_path; + return m_path.str() > other.m_path.str(); } // ================================ // // inline bool Path::operator>= ( const Path& other ) const { - return m_path >= other.m_path; + return m_path.str() >= other.m_path.str(); } +///**@brief Por�wnuje �cie�ki. Przed por�wnaniem �cie�ki s� normalizowane. +//Paths must exist on file system.*/ +//inline bool Path::Compare ( const Path& path1, const Path& path2 ) +//{ +// return experimental::equivalent( path1.m_path, path2.m_path ); +//} + /**@brief */ inline std::string Path::String() const { - return m_path.string(); + return m_path.str(); } /**@brief */ inline std::wstring Path::WString() const { - return m_path.wstring(); + return m_path.wstr(); } /**@brief */ inline std::string Path::GetFileName() const { - return m_path.filename().string(); + return m_path.filename(); } /**@brief */ inline std::string Path::GetExtension() const { - return m_path.extension().string(); + if( !HasFileName() ) + return ""; + return m_path.extension(); } /**@brief */ @@ -222,17 +239,56 @@ inline Path Path::GetDirectory() const } /**@brief Normalizes path. -@attention The current implementation may not work completely.*/ +@attention Obecna implementacja mo�e nie dzia�a� do ko�ca.*/ inline void Path::Normalize() { - m_path = m_path.lexically_normal(); + auto& tokens = m_path.get_tokens(); + std::string normalized = ""; + + // Avoid reallocating string all the time. + size_t maxLen = 0; + for( auto& token : tokens ) + maxLen += token.size(); + + normalized.reserve( maxLen ); + normalized = *tokens.crbegin(); + + size_t tokensToOmit = 0; + for( auto i = ++tokens.crbegin(); i != tokens.crend(); ++i ) + { + if( *i == ".." ) + { + tokensToOmit++; + } + else + { + if( tokensToOmit == 0 ) + { + // Add token to path from back to beginning. + normalized = *i + "/" + normalized; + } + else + { + tokensToOmit--; + } + } + } + + // Add all .. signs that remained to the beginning. + while( tokensToOmit > 0 ) + { + normalized = "../" + normalized; + tokensToOmit--; + } + + m_path = ::filesystem::path_impl( normalized ); } // ================================ // // inline void Path::MakeAbsolute () { - m_path = std::filesystem::absolute( m_path ); + m_path.make_absolute(); } // ================================ // @@ -240,19 +296,18 @@ inline void Path::MakeAbsolute () inline Path Path::ChangeExtension( const std::string& extension ) const { auto ext = m_path.extension(); - auto filename = m_path.filename().string(); + auto filename = m_path.filename(); if( filename == "." || filename == ".." ) return Path( *this ); - return std::filesystem::path( m_path ).replace_extension( std::filesystem::path( extension ) ); -} - -// ================================ // - -inline Path Path::RelativeTo( const Path& base ) const -{ - return m_path.lexically_relative( base.m_path ); + auto startPos = filename.rfind( ext ); + if( startPos != std::string::npos ) + { + filename.replace( startPos, filename.length(), extension ); + return m_path.parent_path() / filename; + } + return Path( *this ); } ///**@brief */ @@ -294,14 +349,14 @@ inline bool Path::IsAbsolut() const /**@brief Check if file exists.*/ inline bool Path::Exists() const { - return std::filesystem::exists( m_path ); + return m_path.exists(); } // ================================ // // inline Path Path::WorkingDirectory() { - return std::filesystem::current_path(); + return ::filesystem::path_impl::getcwd(); } /**@brief */ @@ -314,23 +369,20 @@ inline Path operator/( const Path& path1, const Path& path2 ) // ================================ // // -inline std::vector< std::string > Path::GetTokens () const +inline const std::vector< std::string >& Path::GetTokens () const { - std::vector< std::string > tokens; - for( auto it = m_path.begin(); it != m_path.end(); ++it ) - tokens.push_back( it->string() ); - - return tokens; + return m_path.get_tokens(); } -///**@brief Returns standard library path. -//Use only if you must.*/ -inline const std::filesystem::path Path::GetStdPath() const +// ================================ // +// +inline Path Path::ClipFromRoot ( int num ) const { - return m_path; + return Path( m_path.clip_from_root( num ) ); } +} } -DEFINE_FMT_FORMATTER( filesystem::Path, "{}", String() ); +DEFINE_FMT_FORMATTER( sw::fs::Path, "{}", String() ); diff --git a/swCommonLib/System/Path.h.rej b/swCommonLib/System/Path.h.rej new file mode 100644 index 00000000..b8b90fc6 --- /dev/null +++ b/swCommonLib/System/Path.h.rej @@ -0,0 +1,61 @@ +diff a/swCommonLib/System/Path.h b/swCommonLib/System/Path.h (rejected hunks) +@@ -222,56 +222,17 @@ + } + + /**@brief Normalizes path. +-@attention Obecna implementacja mo�e nie dzia�a� do ko�ca.*/ ++@attention The current implementation may not work completely.*/ + inline void Path::Normalize() + { +- auto& tokens = m_path.get_tokens(); +- std::string normalized = ""; +- +- // Avoid reallocating string all the time. +- size_t maxLen = 0; +- for( auto& token : tokens ) +- maxLen += token.size(); +- +- normalized.reserve( maxLen ); +- normalized = *tokens.crbegin(); +- +- size_t tokensToOmit = 0; +- for( auto i = ++tokens.crbegin(); i != tokens.crend(); ++i ) +- { +- if( *i == ".." ) +- { +- tokensToOmit++; +- } +- else +- { +- if( tokensToOmit == 0 ) +- { +- // Add token to path from back to beginning. +- normalized = *i + "/" + normalized; +- } +- else +- { +- tokensToOmit--; +- } +- } +- } +- +- // Add all .. signs that remained to the beginning. +- while( tokensToOmit > 0 ) +- { +- normalized = "../" + normalized; +- tokensToOmit--; +- } +- +- m_path = path_impl( normalized ); ++ m_path = m_path.lexically_normal(); + } + + // ================================ // + // + inline void Path::MakeAbsolute () + { +- m_path.make_absolute(); ++ m_path = std::filesystem::absolute( m_path ); + } + + // ================================ // diff --git a/swCommonLib/Tests/FileSystemTest/PathTest.cpp b/swCommonLib/Tests/FileSystemTest/PathTest.cpp index ad769519..1bbe6d9b 100644 --- a/swCommonLib/Tests/FileSystemTest/PathTest.cpp +++ b/swCommonLib/Tests/FileSystemTest/PathTest.cpp @@ -10,10 +10,10 @@ TEST_CASE( "Path - Comparision operator" ) { - filesystem::Path reference( "assets/wombat.jpg" ); - filesystem::Path difference( "assets/wombat2.jpg" ); + sw::fs::Path reference( "assets/wombat.jpg" ); + sw::fs::Path difference( "assets/wombat2.jpg" ); - filesystem::Path newPath( reference ); + sw::fs::Path newPath( reference ); CHECK( reference == newPath ); CHECK( reference.String() == newPath.String() ); @@ -29,15 +29,15 @@ TEST_CASE( "Path - Comparision operator" ) // Path should return right result for examples from http://en.cppreference.com/w/cpp/experimental/fs/path/extension TEST_CASE( "Path - Aquire Extension" ) { - filesystem::Path path1( "/foo/bar.txt" ); - filesystem::Path path2( "/foo/bar." ); - filesystem::Path path3( "/foo/bar" ); - filesystem::Path path4( "/foo/bar.txt/bar.cc" ); - filesystem::Path path5( "/foo/bar.txt/bar." ); - filesystem::Path path6( "/foo/bar.txt/bar" ); - filesystem::Path path7( "/foo/." ); - filesystem::Path path8( "/foo/.." ); - filesystem::Path path9( "/foo/.hidden" ); + sw::fs::Path path1( "/foo/bar.txt" ); + sw::fs::Path path2( "/foo/bar." ); + sw::fs::Path path3( "/foo/bar" ); + sw::fs::Path path4( "/foo/bar.txt/bar.cc" ); + sw::fs::Path path5( "/foo/bar.txt/bar." ); + sw::fs::Path path6( "/foo/bar.txt/bar" ); + sw::fs::Path path7( "/foo/." ); + sw::fs::Path path8( "/foo/.." ); + sw::fs::Path path9( "/foo/.hidden" ); CHECK( path1.GetExtension() == ".txt" ); CHECK( path2.GetExtension() == "." ); @@ -54,13 +54,13 @@ TEST_CASE( "Path - Aquire Extension" ) // TEST_CASE( "Path.ChangeExtension" ) { - filesystem::Path path1( "/foo/bar.txt" ); - filesystem::Path path2( "/foo/bar." ); - filesystem::Path path3( "/foo/bar" ); - filesystem::Path path4( "/foo/bar.txt/bar.cc" ); - filesystem::Path path7( "/foo/." ); - filesystem::Path path8( "/foo/.." ); - filesystem::Path path9( "/foo/.hidden" ); + sw::fs::Path path1( "/foo/bar.txt" ); + sw::fs::Path path2( "/foo/bar." ); + sw::fs::Path path3( "/foo/bar" ); + sw::fs::Path path4( "/foo/bar.txt/bar.cc" ); + sw::fs::Path path7( "/foo/." ); + sw::fs::Path path8( "/foo/.." ); + sw::fs::Path path9( "/foo/.hidden" ); CHECK( path1.ChangeExtension( ".png" ) == "/foo/bar.png"); CHECK( path2.ChangeExtension( ".png" ) == "/foo/bar.png" ); diff --git a/swCommonLib/Tests/FileSystemTest/TestNormalizePath.cpp b/swCommonLib/Tests/FileSystemTest/TestNormalizePath.cpp index 99ba55f1..8488936b 100644 --- a/swCommonLib/Tests/FileSystemTest/TestNormalizePath.cpp +++ b/swCommonLib/Tests/FileSystemTest/TestNormalizePath.cpp @@ -16,7 +16,7 @@ // TEST_CASE( "Filesystem.Normalize.1Dot" ) { - filesystem::Path path( "assets/../wombat.jpg" ); + sw::fs::Path path( "assets/../wombat.jpg" ); path.Normalize(); CHECK( path == "wombat.jpg" ); @@ -26,7 +26,7 @@ TEST_CASE( "Filesystem.Normalize.1Dot" ) // TEST_CASE( "Filesystem.Normalize.2Dots" ) { - filesystem::Path path( "some-dir/dir2/assets/../../wombat.jpg" ); + sw::fs::Path path( "some-dir/dir2/assets/../../wombat.jpg" ); path.Normalize(); CHECK( path == "some-dir/wombat.jpg" ); @@ -36,7 +36,7 @@ TEST_CASE( "Filesystem.Normalize.2Dots" ) // TEST_CASE( "Filesystem.Normalize.2Dots.Separate.OnRoot" ) { - filesystem::Path path( "some-dir/../dir2/assets/../wombat.jpg" ); + sw::fs::Path path( "some-dir/../dir2/assets/../wombat.jpg" ); path.Normalize(); CHECK( path == "dir2/wombat.jpg" ); @@ -46,7 +46,7 @@ TEST_CASE( "Filesystem.Normalize.2Dots.Separate.OnRoot" ) // TEST_CASE( "Filesystem.Normalize.2Dots.Separate" ) { - filesystem::Path path( "some-dir/dir2/../assets/../wombat.jpg" ); + sw::fs::Path path( "some-dir/dir2/../assets/../wombat.jpg" ); path.Normalize(); CHECK( path == "some-dir/wombat.jpg" ); @@ -56,7 +56,7 @@ TEST_CASE( "Filesystem.Normalize.2Dots.Separate" ) // TEST_CASE( "Filesystem.Normalize.RamainingDots.1Dot" ) { - filesystem::Path path( "../wombat.jpg" ); + sw::fs::Path path( "../wombat.jpg" ); path.Normalize(); CHECK( path == "../wombat.jpg" ); @@ -66,7 +66,7 @@ TEST_CASE( "Filesystem.Normalize.RamainingDots.1Dot" ) // TEST_CASE( "Filesystem.Normalize.RamainingDots.2Dots" ) { - filesystem::Path path( "../../wombat.jpg" ); + sw::fs::Path path( "../../wombat.jpg" ); path.Normalize(); CHECK( path == "../../wombat.jpg" ); @@ -76,7 +76,7 @@ TEST_CASE( "Filesystem.Normalize.RamainingDots.2Dots" ) // TEST_CASE( "Filesystem.Normalize.RamainingDots.2Dots.NameBetween" ) { - filesystem::Path path( "../dir/../wombat.jpg" ); + sw::fs::Path path( "../dir/../wombat.jpg" ); path.Normalize(); CHECK( path == "../wombat.jpg" ); @@ -86,7 +86,7 @@ TEST_CASE( "Filesystem.Normalize.RamainingDots.2Dots.NameBetween" ) // TEST_CASE( "Filesystem.Normalize.RamainingDots.3Dots.NameBetween" ) { - filesystem::Path path( "../dir/../../wombat.jpg" ); + sw::fs::Path path( "../dir/../../wombat.jpg" ); path.Normalize(); CHECK( path == "../../wombat.jpg" ); @@ -96,9 +96,9 @@ TEST_CASE( "Filesystem.Normalize.RamainingDots.3Dots.NameBetween" ) // TEST_CASE( "Filesystem.Normalize.RamainingDots.DotsOnly" ) { - filesystem::Path path( "../../" ); + sw::fs::Path path( "../../" ); path.Normalize(); - CHECK( path == filesystem::Path( "../../" ) ); + CHECK( path == sw::fs::Path( "../../" ) ); } diff --git a/swGUI/Core/Media/Brushes/AngleGradientBrush.cpp b/swGUI/Core/Media/Brushes/AngleGradientBrush.cpp index efd6f5fa..a2edb8bf 100644 --- a/swGUI/Core/Media/Brushes/AngleGradientBrush.cpp +++ b/swGUI/Core/Media/Brushes/AngleGradientBrush.cpp @@ -32,7 +32,7 @@ BufferRange AngleGradientBrush::BufferData () // ================================ // // -filesystem::Path AngleGradientBrush::ShaderFunctionFile () +fs::Path AngleGradientBrush::ShaderFunctionFile () { return "$(CoreGUI-Shader-Dir)/Brush/AngleGradientBrush.psh"; } diff --git a/swGUI/Core/Media/Brushes/AngleGradientBrush.h b/swGUI/Core/Media/Brushes/AngleGradientBrush.h index 705116b5..3355126a 100644 --- a/swGUI/Core/Media/Brushes/AngleGradientBrush.h +++ b/swGUI/Core/Media/Brushes/AngleGradientBrush.h @@ -44,7 +44,7 @@ class AngleGradientBrush : public GradientBrush virtual BufferRange BufferData () override; - virtual filesystem::Path ShaderFunctionFile () override; + virtual fs::Path ShaderFunctionFile () override; void SetGradientCenter ( Point center ); diff --git a/swGUI/Core/Media/Brushes/Brush.h b/swGUI/Core/Media/Brushes/Brush.h index 826ed2bf..82816131 100644 --- a/swGUI/Core/Media/Brushes/Brush.h +++ b/swGUI/Core/Media/Brushes/Brush.h @@ -74,7 +74,7 @@ class Brush : public Object /**@brief Returns file name containing function used in Pixel Shader. Pixel Shader is combined from shader template and function defined by Brush.*/ - virtual filesystem::Path ShaderFunctionFile () = 0; + virtual fs::Path ShaderFunctionFile () = 0; /**@brief Name of texture to find in resources.*/ virtual AssetPath TextureSource () = 0; diff --git a/swGUI/Core/Media/Brushes/ImageBrush.cpp b/swGUI/Core/Media/Brushes/ImageBrush.cpp index ef89a2ba..3c86ac5d 100644 --- a/swGUI/Core/Media/Brushes/ImageBrush.cpp +++ b/swGUI/Core/Media/Brushes/ImageBrush.cpp @@ -53,7 +53,7 @@ BufferRange ImageBrush::BufferData () // ================================ // // -filesystem::Path ImageBrush::ShaderFunctionFile () +fs::Path ImageBrush::ShaderFunctionFile () { return "$(CoreGUI-Shader-Dir)/Brush/ImageBrush.psh"; } diff --git a/swGUI/Core/Media/Brushes/ImageBrush.h b/swGUI/Core/Media/Brushes/ImageBrush.h index 4107fac1..8f553aba 100644 --- a/swGUI/Core/Media/Brushes/ImageBrush.h +++ b/swGUI/Core/Media/Brushes/ImageBrush.h @@ -60,7 +60,7 @@ class ImageBrush : public Brush public: virtual BufferRange BufferData () override; - virtual filesystem::Path ShaderFunctionFile () override; + virtual fs::Path ShaderFunctionFile () override; virtual AssetPath TextureSource () override; virtual AssetPath ConstantsName () override; }; diff --git a/swGUI/Core/Media/Brushes/LinearGradientBrush.cpp b/swGUI/Core/Media/Brushes/LinearGradientBrush.cpp index 99608ef7..f63732c2 100644 --- a/swGUI/Core/Media/Brushes/LinearGradientBrush.cpp +++ b/swGUI/Core/Media/Brushes/LinearGradientBrush.cpp @@ -33,7 +33,7 @@ BufferRange LinearGradientBrush::BufferData () // ================================ // // -filesystem::Path LinearGradientBrush::ShaderFunctionFile () +fs::Path LinearGradientBrush::ShaderFunctionFile () { return "$(CoreGUI-Shader-Dir)/Brush/LinearGradientBrush.psh"; } diff --git a/swGUI/Core/Media/Brushes/LinearGradientBrush.h b/swGUI/Core/Media/Brushes/LinearGradientBrush.h index 2729037e..b2f616f8 100644 --- a/swGUI/Core/Media/Brushes/LinearGradientBrush.h +++ b/swGUI/Core/Media/Brushes/LinearGradientBrush.h @@ -45,7 +45,7 @@ class LinearGradientBrush : public GradientBrush virtual BufferRange BufferData () override; - virtual filesystem::Path ShaderFunctionFile () override; + virtual fs::Path ShaderFunctionFile () override; void SetGradientAxis ( Point start, Point end ); diff --git a/swGUI/Core/Media/Brushes/SolidColorBrush.cpp b/swGUI/Core/Media/Brushes/SolidColorBrush.cpp index 6ce88a87..80177874 100644 --- a/swGUI/Core/Media/Brushes/SolidColorBrush.cpp +++ b/swGUI/Core/Media/Brushes/SolidColorBrush.cpp @@ -46,7 +46,7 @@ BufferRange SolidColorBrush::BufferData () // ================================ // // -filesystem::Path SolidColorBrush::ShaderFunctionFile () +fs::Path SolidColorBrush::ShaderFunctionFile () { return "$(CoreGUI-Shader-Dir)/Brush/SolidColorBrush.psh"; } diff --git a/swGUI/Core/Media/Brushes/SolidColorBrush.h b/swGUI/Core/Media/Brushes/SolidColorBrush.h index 7c56a042..5c21dae0 100644 --- a/swGUI/Core/Media/Brushes/SolidColorBrush.h +++ b/swGUI/Core/Media/Brushes/SolidColorBrush.h @@ -49,7 +49,7 @@ class SolidColorBrush : public Brush public: virtual BufferRange BufferData () override; - virtual filesystem::Path ShaderFunctionFile () override; + virtual fs::Path ShaderFunctionFile () override; virtual AssetPath TextureSource () override; virtual AssetPath ConstantsName () override; }; diff --git a/swGUI/Core/Media/Geometry/EllipseGeometry.cpp b/swGUI/Core/Media/Geometry/EllipseGeometry.cpp index bec30df4..d16138ea 100644 --- a/swGUI/Core/Media/Geometry/EllipseGeometry.cpp +++ b/swGUI/Core/Media/Geometry/EllipseGeometry.cpp @@ -109,7 +109,7 @@ BufferRange EllipseGeometry::BufferData() // ================================ // // -filesystem::Path EllipseGeometry::ShaderFunctionFile () +fs::Path EllipseGeometry::ShaderFunctionFile () { return "$(CoreGUI-Shader-Dir)/Geometry/ForwardAttributes.vsh"; } diff --git a/swGUI/Core/Media/Geometry/EllipseGeometry.h b/swGUI/Core/Media/Geometry/EllipseGeometry.h index 826b6e01..393eeaad 100644 --- a/swGUI/Core/Media/Geometry/EllipseGeometry.h +++ b/swGUI/Core/Media/Geometry/EllipseGeometry.h @@ -42,7 +42,7 @@ class EllipseGeometry : public Geometry virtual Nullable< GeometryData > Generate () override; virtual BufferRange BufferData () override; - virtual filesystem::Path ShaderFunctionFile () override; + virtual fs::Path ShaderFunctionFile () override; virtual std::string GeometryName () override; virtual AssetPath ConstantsName () override; diff --git a/swGUI/Core/Media/Geometry/Geometry.h b/swGUI/Core/Media/Geometry/Geometry.h index 3f63c85b..14e5a1ae 100644 --- a/swGUI/Core/Media/Geometry/Geometry.h +++ b/swGUI/Core/Media/Geometry/Geometry.h @@ -136,7 +136,7 @@ class Geometry : public Object This way geometry can be generated once for multiple parameters of shape to avoid data transfers between CPU and GPU. You should override @ref Geometry::GeometryName function, to return the same name, if Vertex Buffer shouldn't be updated.*/ - virtual filesystem::Path ShaderFunctionFile () = 0; + virtual fs::Path ShaderFunctionFile () = 0; /**@brief Returns key used to store/find geometry buffers (VB and IB) in resources. diff --git a/swGUI/Core/Media/Geometry/RectangleGeometry.cpp b/swGUI/Core/Media/Geometry/RectangleGeometry.cpp index b92e6abb..e5bfdea5 100644 --- a/swGUI/Core/Media/Geometry/RectangleGeometry.cpp +++ b/swGUI/Core/Media/Geometry/RectangleGeometry.cpp @@ -104,7 +104,7 @@ BufferRange RectangleGeometry::BufferData () // ================================ // // -filesystem::Path RectangleGeometry::ShaderFunctionFile () +fs::Path RectangleGeometry::ShaderFunctionFile () { return "$(CoreGUI-Shader-Dir)/Geometry/ForwardAttributes.vsh"; } diff --git a/swGUI/Core/Media/Geometry/RectangleGeometry.h b/swGUI/Core/Media/Geometry/RectangleGeometry.h index 43845d81..9c723cde 100644 --- a/swGUI/Core/Media/Geometry/RectangleGeometry.h +++ b/swGUI/Core/Media/Geometry/RectangleGeometry.h @@ -42,7 +42,7 @@ class RectangleGeometry : public Geometry virtual Nullable< GeometryData > Generate () override; virtual BufferRange BufferData () override; - virtual filesystem::Path ShaderFunctionFile () override; + virtual fs::Path ShaderFunctionFile () override; virtual std::string GeometryName () override; virtual AssetPath ConstantsName () override; diff --git a/swGUI/Core/Media/Geometry/TextGeometry.cpp b/swGUI/Core/Media/Geometry/TextGeometry.cpp index 5a655108..d7519392 100644 --- a/swGUI/Core/Media/Geometry/TextGeometry.cpp +++ b/swGUI/Core/Media/Geometry/TextGeometry.cpp @@ -132,7 +132,7 @@ BufferRange TextGeometry::BufferData () // ================================ // // -filesystem::Path TextGeometry::ShaderFunctionFile () +fs::Path TextGeometry::ShaderFunctionFile () { return "$(CoreGUI-Shader-Dir)/Geometry/ForwardWithOpacity.vsh"; } diff --git a/swGUI/Core/Media/Geometry/TextGeometry.h b/swGUI/Core/Media/Geometry/TextGeometry.h index 1b152f71..29bde1d2 100644 --- a/swGUI/Core/Media/Geometry/TextGeometry.h +++ b/swGUI/Core/Media/Geometry/TextGeometry.h @@ -56,7 +56,7 @@ class TextGeometry : public Geometry virtual Nullable< GeometryData > Generate() override; virtual BufferRange BufferData() override; - virtual filesystem::Path ShaderFunctionFile() override; + virtual fs::Path ShaderFunctionFile() override; virtual std::string GeometryName() override; virtual AssetPath ConstantsName() override; diff --git a/swGUI/Core/System/Rendering/Drawings/Drawing.cpp b/swGUI/Core/System/Rendering/Drawings/Drawing.cpp index dc9d9d26..cc16a8c9 100644 --- a/swGUI/Core/System/Rendering/Drawings/Drawing.cpp +++ b/swGUI/Core/System/Rendering/Drawings/Drawing.cpp @@ -68,7 +68,7 @@ ReturnResult Drawing::UpdateBrushShader ( ShaderProvider* sp, Brush* brush ) // ================================ // // -ReturnResult Drawing::UpdateBrushShader ( ShaderProvider* sp, Brush* brush, filesystem::Path shaderTemplate ) +ReturnResult Drawing::UpdateBrushShader ( ShaderProvider* sp, Brush* brush, fs::Path shaderTemplate ) { return UpdateShaderImpl( sp, brush, m_brushData, shaderTemplate ); } @@ -124,7 +124,7 @@ ReturnResult Drawing::UpdatePenShader ( ShaderProvider* sp, Brush* pen ) // ================================ // // -ReturnResult Drawing::UpdatePenShader ( ShaderProvider* sp, Brush* pen, filesystem::Path shaderTemplate ) +ReturnResult Drawing::UpdatePenShader ( ShaderProvider* sp, Brush* pen, fs::Path shaderTemplate ) { return UpdateShaderImpl( sp, pen, m_penData, shaderTemplate ); } @@ -181,7 +181,7 @@ ReturnResult Drawing::UpdateVertexShader ( ShaderProvider* sp, Geometry* geo // ================================ // // -ReturnResult Drawing::UpdateVertexShader ( ShaderProvider* sp, Geometry* geometry, filesystem::Path shaderTemplate ) +ReturnResult Drawing::UpdateVertexShader ( ShaderProvider* sp, Geometry* geometry, fs::Path shaderTemplate ) { if( geometry->NeedsShaderUpdate() ) { @@ -305,7 +305,7 @@ ReturnResult Drawing::CreateAndSetLayout ( ResourceManagerAPI rm, ShaderProv // ================================ // // -ReturnResult Drawing::UpdateShaderImpl( ShaderProvider* sp, Brush* brush, impl::BrushRenderingData& brushData, filesystem::Path shaderTemplate ) +ReturnResult Drawing::UpdateShaderImpl( ShaderProvider* sp, Brush* brush, impl::BrushRenderingData& brushData, fs::Path shaderTemplate ) { if( brush->NeedsShaderUpdate() ) { diff --git a/swGUI/Core/System/Rendering/Drawings/Drawing.h b/swGUI/Core/System/Rendering/Drawings/Drawing.h index 2673b5c1..dbaa30d8 100644 --- a/swGUI/Core/System/Rendering/Drawings/Drawing.h +++ b/swGUI/Core/System/Rendering/Drawings/Drawing.h @@ -90,19 +90,19 @@ class Drawing : public IDrawing ReturnResult DefaultRebuildResources ( ResourceManagerAPI rm, ShaderProvider* sp, Brush* brush, Brush* pen, Geometry* geometry ); ReturnResult UpdateBrushShader ( ShaderProvider* sp, Brush* brush ); - ReturnResult UpdateBrushShader ( ShaderProvider* sp, Brush* brush, filesystem::Path shaderTemplate ); + ReturnResult UpdateBrushShader ( ShaderProvider* sp, Brush* brush, fs::Path shaderTemplate ); ReturnResult UpdateBrushTexture ( ResourceManagerAPI rm, Brush* brush ); ReturnResult UpdateBrushOpacityMask ( ResourceManagerAPI rm, TexturePtr mask ); ReturnResult UpdateBrushConstants ( ResourceManagerAPI rm, Brush* brush ); ReturnResult UpdatePenShader ( ShaderProvider* sp, Brush* pen ); - ReturnResult UpdatePenShader ( ShaderProvider* sp, Brush* pen, filesystem::Path shaderTemplate ); + ReturnResult UpdatePenShader ( ShaderProvider* sp, Brush* pen, fs::Path shaderTemplate ); ReturnResult UpdatePenTexture ( ResourceManagerAPI rm, Brush* pen ); ReturnResult UpdatePenOpacityMask ( ResourceManagerAPI rm, TexturePtr mask ); ReturnResult UpdatePenConstants ( ResourceManagerAPI rm, Brush* pen ); ReturnResult UpdateVertexShader ( ShaderProvider* sp, Geometry* geometry ); - ReturnResult UpdateVertexShader ( ShaderProvider* sp, Geometry* geometry, filesystem::Path shaderTemplate ); + ReturnResult UpdateVertexShader ( ShaderProvider* sp, Geometry* geometry, fs::Path shaderTemplate ); ReturnResult UpdateGeometry ( ResourceManagerAPI rm, Geometry* geometry ); ReturnResult UpdateGeometryConstants ( ResourceManagerAPI rm, Geometry* geometry ); @@ -134,7 +134,7 @@ class Drawing : public IDrawing private: - ReturnResult UpdateShaderImpl ( ShaderProvider* sp, Brush* brush, impl::BrushRenderingData& brushData, filesystem::Path shaderTemplate ); + ReturnResult UpdateShaderImpl ( ShaderProvider* sp, Brush* brush, impl::BrushRenderingData& brushData, fs::Path shaderTemplate ); ReturnResult UpdateShaderImpl ( ShaderProvider* sp, Brush* brush, impl::BrushRenderingData& brushData ); ReturnResult UpdateTextureImpl ( ResourceManagerAPI rm, Brush* brush, impl::BrushRenderingData& brushData ); diff --git a/swGUI/Core/System/Rendering/Shading/ShaderProvider.cpp b/swGUI/Core/System/Rendering/Shading/ShaderProvider.cpp index 23283742..abf65b9f 100644 --- a/swGUI/Core/System/Rendering/Shading/ShaderProvider.cpp +++ b/swGUI/Core/System/Rendering/Shading/ShaderProvider.cpp @@ -21,10 +21,10 @@ namespace gui namespace impl { - const filesystem::Path gBasicPSTemplatePath = "$(CoreGUI-Shader-Dir)/Templates/Basic.psh"; - const filesystem::Path gBasicVSTemplatePath = "$(CoreGUI-Shader-Dir)/Templates/Basic.vsh"; - const filesystem::Path gOpacityPSTemplatePath = "$(CoreGUI-Shader-Dir)/Templates/Opacity.psh"; - const filesystem::Path gOpacityVSTemplatePath = "$(CoreGUI-Shader-Dir)/Templates/Opacity.vsh"; + const fs::Path gBasicPSTemplatePath = "$(CoreGUI-Shader-Dir)/Templates/Basic.psh"; + const fs::Path gBasicVSTemplatePath = "$(CoreGUI-Shader-Dir)/Templates/Basic.vsh"; + const fs::Path gOpacityPSTemplatePath = "$(CoreGUI-Shader-Dir)/Templates/Opacity.psh"; + const fs::Path gOpacityVSTemplatePath = "$(CoreGUI-Shader-Dir)/Templates/Opacity.vsh"; } @@ -37,14 +37,14 @@ ShaderProvider::ShaderProvider ( ResourceManagerAPI resManager, const PathsMana // ================================ // // -const filesystem::Path& ShaderProvider::GetBasicPSTemplate () const +const fs::Path& ShaderProvider::GetBasicPSTemplate () const { return impl::gBasicPSTemplatePath; } // ================================ // // -const filesystem::Path& ShaderProvider::GetBasicVSTemplate () const +const fs::Path& ShaderProvider::GetBasicVSTemplate () const { return impl::gBasicVSTemplatePath; } @@ -52,7 +52,7 @@ const filesystem::Path& ShaderProvider::GetBasicVSTemplate () const // ================================ // // -const filesystem::Path& ShaderProvider::GetOpacityPSTemplate() const +const fs::Path& ShaderProvider::GetOpacityPSTemplate() const { return impl::gOpacityPSTemplatePath; } @@ -60,7 +60,7 @@ const filesystem::Path& ShaderProvider::GetOpacityPSTemplate() const // ================================ // // -const filesystem::Path& ShaderProvider::GetOpacityVSTemplate() const +const fs::Path& ShaderProvider::GetOpacityVSTemplate() const { return impl::gOpacityVSTemplatePath; } @@ -69,8 +69,8 @@ const filesystem::Path& ShaderProvider::GetOpacityVSTemplate() const // At this moment PixelShader and VertexShader generation works the same, // so we can use common function. template< typename ShaderType > -inline ResourcePtr< ShaderType > ShaderProvider::GenerateShader ( const filesystem::Path& templatePath, - const filesystem::Path& customFunPath ) const +inline ResourcePtr< ShaderType > ShaderProvider::GenerateShader ( const fs::Path& templatePath, + const fs::Path& customFunPath ) const { AssetPath tmpShaderFile( fmt::format( "$(TMP)/shaders/{}+{}", templatePath.GetFileName(), customFunPath.GetFileName() ), "main" ); @@ -84,37 +84,37 @@ inline ResourcePtr< ShaderType > ShaderProvider::GenerateShader ( cons return nullptr; /// @todo Better error handling. Maybe we should return Nullable. // Note: We save this shader only for debuggins purpose. Shader is created from string. - filesystem::File::Save( m_pathsManager->Translate( tmpShaderFile.GetFile() ), shaderSource ); + fs::File::Save( m_pathsManager->Translate( tmpShaderFile.GetFile() ), shaderSource ); return m_resourceManager.CreateShader< ShaderType >( tmpShaderFile, std::move( shaderSource ) ).Get(); } // ================================ // // -PixelShaderPtr ShaderProvider::GeneratePS ( const filesystem::Path& templatePath, - const filesystem::Path& brushFunPath ) const +PixelShaderPtr ShaderProvider::GeneratePS ( const fs::Path& templatePath, + const fs::Path& brushFunPath ) const { return GenerateShader< PixelShader >( templatePath, brushFunPath ); } // ================================ // // -VertexShaderPtr ShaderProvider::GenerateVS ( const filesystem::Path& templatePath, - const filesystem::Path& geomFunPath ) const +VertexShaderPtr ShaderProvider::GenerateVS ( const fs::Path& templatePath, + const fs::Path& geomFunPath ) const { return GenerateShader< VertexShader >( templatePath, geomFunPath ); } // ================================ // // -std::string ShaderProvider::BuildShaderSource ( const filesystem::Path& templatePath, - const filesystem::Path& brushFunPath ) const +std::string ShaderProvider::BuildShaderSource ( const fs::Path& templatePath, + const fs::Path& brushFunPath ) const { auto templateAbsPath = m_pathsManager->Translate( templatePath ); auto brushAbsPath = m_pathsManager->Translate( brushFunPath ); - auto templateSource = filesystem::File::Load( templateAbsPath ); - auto brushSource = filesystem::File::Load( brushAbsPath ); + auto templateSource = fs::File::Load( templateAbsPath ); + auto brushSource = fs::File::Load( brushAbsPath ); return m_shaderBuilder.BuildShader( templateSource, brushSource ); } diff --git a/swGUI/Core/System/Rendering/Shading/ShaderProvider.h b/swGUI/Core/System/Rendering/Shading/ShaderProvider.h index 638b8ce1..57966770 100644 --- a/swGUI/Core/System/Rendering/Shading/ShaderProvider.h +++ b/swGUI/Core/System/Rendering/Shading/ShaderProvider.h @@ -37,24 +37,24 @@ class ShaderProvider public: - const filesystem::Path& GetBasicPSTemplate () const; - const filesystem::Path& GetBasicVSTemplate () const; - const filesystem::Path& GetOpacityPSTemplate () const; - const filesystem::Path& GetOpacityVSTemplate () const; + const fs::Path& GetBasicPSTemplate () const; + const fs::Path& GetBasicVSTemplate () const; + const fs::Path& GetOpacityPSTemplate () const; + const fs::Path& GetOpacityVSTemplate () const; public: - PixelShaderPtr GeneratePS ( const filesystem::Path& templatePath, const filesystem::Path& brushFunPath ) const; - VertexShaderPtr GenerateVS ( const filesystem::Path& templatePath, const filesystem::Path& geomFunPath ) const; + PixelShaderPtr GeneratePS ( const fs::Path& templatePath, const fs::Path& brushFunPath ) const; + VertexShaderPtr GenerateVS ( const fs::Path& templatePath, const fs::Path& geomFunPath ) const; const PathsManager* GetPathsManager () const { return m_pathsManager; } private: template< typename ShaderType > - ResourcePtr< ShaderType > GenerateShader ( const filesystem::Path& templatePath, const filesystem::Path& customFunPath ) const; + ResourcePtr< ShaderType > GenerateShader ( const fs::Path& templatePath, const fs::Path& customFunPath ) const; - std::string BuildShaderSource ( const filesystem::Path& templatePath, const filesystem::Path& brushFunPath ) const; + std::string BuildShaderSource ( const fs::Path& templatePath, const fs::Path& brushFunPath ) const; }; diff --git a/swGUI/Native/INativeOS.h b/swGUI/Native/INativeOS.h index 3f093aba..234a1a07 100644 --- a/swGUI/Native/INativeOS.h +++ b/swGUI/Native/INativeOS.h @@ -26,8 +26,8 @@ class INativeOS public: - virtual filesystem::Path GetTempDir () const = 0; - virtual filesystem::Path GetApplicationDir () const = 0; + virtual fs::Path GetTempDir () const = 0; + virtual fs::Path GetApplicationDir () const = 0; }; diff --git a/swGUI/Native/MockNativeGUI/MockOS.cpp b/swGUI/Native/MockNativeGUI/MockOS.cpp index 49ac3f2b..687b105b 100644 --- a/swGUI/Native/MockNativeGUI/MockOS.cpp +++ b/swGUI/Native/MockNativeGUI/MockOS.cpp @@ -9,16 +9,16 @@ namespace gui // ================================ // // -filesystem::Path MockOS::GetTempDir () const +fs::Path MockOS::GetTempDir () const { - return filesystem::Path::WorkingDirectory() / "TMP"; + return fs::Path::WorkingDirectory() / "TMP"; } // ================================ // // -filesystem::Path MockOS::GetApplicationDir () const +fs::Path MockOS::GetApplicationDir () const { - return filesystem::Path::WorkingDirectory(); + return fs::Path::WorkingDirectory(); } diff --git a/swGUI/Native/MockNativeGUI/MockOS.h b/swGUI/Native/MockNativeGUI/MockOS.h index 89bbcbe5..2f626adf 100644 --- a/swGUI/Native/MockNativeGUI/MockOS.h +++ b/swGUI/Native/MockNativeGUI/MockOS.h @@ -26,8 +26,8 @@ class MockOS : public INativeOS public: - virtual filesystem::Path GetTempDir () const override; - virtual filesystem::Path GetApplicationDir () const override; + virtual fs::Path GetTempDir () const override; + virtual fs::Path GetApplicationDir () const override; }; diff --git a/swGUI/Native/WinAPI/WindowsOS.cpp b/swGUI/Native/WinAPI/WindowsOS.cpp index 66108d3f..93107292 100644 --- a/swGUI/Native/WinAPI/WindowsOS.cpp +++ b/swGUI/Native/WinAPI/WindowsOS.cpp @@ -13,7 +13,7 @@ namespace gui // ================================ // // -filesystem::Path WindowsOS::GetTempDir () const +fs::Path WindowsOS::GetTempDir () const { TCHAR lpTempPathBuffer[ MAX_PATH ]; auto dwRetVal = GetTempPath( MAX_PATH, lpTempPathBuffer ); @@ -26,7 +26,7 @@ filesystem::Path WindowsOS::GetTempDir () const // ================================ // // -filesystem::Path WindowsOS::GetApplicationDir () const +fs::Path WindowsOS::GetApplicationDir () const { TCHAR lpTempPathBuffer[ MAX_PATH ]; int bytes = GetModuleFileName( NULL, lpTempPathBuffer, MAX_PATH ); @@ -34,7 +34,7 @@ filesystem::Path WindowsOS::GetApplicationDir () const if( bytes == 0 ) return ""; - filesystem::Path path = lpTempPathBuffer; + fs::Path path = lpTempPathBuffer; return path.GetParent(); // Get rid of filename. } diff --git a/swGUI/Native/WinAPI/WindowsOS.h b/swGUI/Native/WinAPI/WindowsOS.h index 84dfead9..1f3d3f2b 100644 --- a/swGUI/Native/WinAPI/WindowsOS.h +++ b/swGUI/Native/WinAPI/WindowsOS.h @@ -24,8 +24,8 @@ class WindowsOS : public INativeOS public: - virtual filesystem::Path GetTempDir () const override; - virtual filesystem::Path GetApplicationDir () const override; + virtual fs::Path GetTempDir () const override; + virtual fs::Path GetApplicationDir () const override; }; diff --git a/swGUI/Prototypes/PrototyperGUI/PrototyperUtils.cpp b/swGUI/Prototypes/PrototyperGUI/PrototyperUtils.cpp index fa7ed792..65fedac1 100644 --- a/swGUI/Prototypes/PrototyperGUI/PrototyperUtils.cpp +++ b/swGUI/Prototypes/PrototyperGUI/PrototyperUtils.cpp @@ -13,7 +13,7 @@ namespace gui // ================================ // // CoreGUI path should have swGUI in path. We look for this string in binaryPath. -filesystem::Path FindCoreGUISourcePath ( const filesystem::Path& binaryPath ) +fs::Path FindCoreGUISourcePath ( const fs::Path& binaryPath ) { auto path = binaryPath; auto fileName = path.GetFileName(); @@ -29,7 +29,7 @@ filesystem::Path FindCoreGUISourcePath ( const filesystem::Path& binaryPath ) fileName = path.GetFileName(); } - return filesystem::Path(); + return fs::Path(); } } // gui diff --git a/swGUI/Prototypes/PrototyperGUI/PrototyperUtils.h b/swGUI/Prototypes/PrototyperGUI/PrototyperUtils.h index 17ad62b6..0b4365f4 100644 --- a/swGUI/Prototypes/PrototyperGUI/PrototyperUtils.h +++ b/swGUI/Prototypes/PrototyperGUI/PrototyperUtils.h @@ -16,7 +16,7 @@ namespace gui // ================================ // // -filesystem::Path FindCoreGUISourcePath ( const filesystem::Path& binaryPath ); +fs::Path FindCoreGUISourcePath ( const fs::Path& binaryPath ); } // gui diff --git a/swGUI/Prototypes/TextShowcase/PrototyperUtils.cpp b/swGUI/Prototypes/TextShowcase/PrototyperUtils.cpp index fa7ed792..bd3f1548 100644 --- a/swGUI/Prototypes/TextShowcase/PrototyperUtils.cpp +++ b/swGUI/Prototypes/TextShowcase/PrototyperUtils.cpp @@ -13,7 +13,7 @@ namespace gui // ================================ // // CoreGUI path should have swGUI in path. We look for this string in binaryPath. -filesystem::Path FindCoreGUISourcePath ( const filesystem::Path& binaryPath ) +fs::Path FindCoreGUISourcePath ( const fs::Path& binaryPath ) { auto path = binaryPath; auto fileName = path.GetFileName(); @@ -29,7 +29,7 @@ filesystem::Path FindCoreGUISourcePath ( const filesystem::Path& binaryPath ) fileName = path.GetFileName(); } - return filesystem::Path(); + return fs::Path(); } } // gui diff --git a/swGUI/Prototypes/TextShowcase/PrototyperUtils.h b/swGUI/Prototypes/TextShowcase/PrototyperUtils.h index 17ad62b6..0b4365f4 100644 --- a/swGUI/Prototypes/TextShowcase/PrototyperUtils.h +++ b/swGUI/Prototypes/TextShowcase/PrototyperUtils.h @@ -16,7 +16,7 @@ namespace gui // ================================ // // -filesystem::Path FindCoreGUISourcePath ( const filesystem::Path& binaryPath ); +fs::Path FindCoreGUISourcePath ( const fs::Path& binaryPath ); } // gui diff --git a/swGUI/TestFramework/TestFramework.cpp b/swGUI/TestFramework/TestFramework.cpp index c0a44663..2fdf99f4 100644 --- a/swGUI/TestFramework/TestFramework.cpp +++ b/swGUI/TestFramework/TestFramework.cpp @@ -105,7 +105,7 @@ namespace impl // ================================ // // CoreGUI path should have swGUI in path. We look for this string in binaryPath. -filesystem::Path FindCoreGUISourcePath ( const filesystem::Path& binaryPath ) +fs::Path FindCoreGUISourcePath ( const fs::Path& binaryPath ) { auto path = binaryPath; auto fileName = path.GetFileName(); @@ -121,7 +121,7 @@ filesystem::Path FindCoreGUISourcePath ( const filesystem::Path& binaryPath ) fileName = path.GetFileName(); } - return filesystem::Path(); + return fs::Path(); } } // impl diff --git a/swGUI/TestFramework/TestFramework.h b/swGUI/TestFramework/TestFramework.h index 4b04be6f..a1dbba85 100644 --- a/swGUI/TestFramework/TestFramework.h +++ b/swGUI/TestFramework/TestFramework.h @@ -92,7 +92,7 @@ namespace impl // ================================ // // -filesystem::Path FindCoreGUISourcePath ( const filesystem::Path& binaryPath ); +fs::Path FindCoreGUISourcePath ( const fs::Path& binaryPath ); } diff --git a/swGUI/TestFramework/Utils/Mocks/Media/FakeBrush.cpp b/swGUI/TestFramework/Utils/Mocks/Media/FakeBrush.cpp index 9cf061aa..d3c96e36 100644 --- a/swGUI/TestFramework/Utils/Mocks/Media/FakeBrush.cpp +++ b/swGUI/TestFramework/Utils/Mocks/Media/FakeBrush.cpp @@ -30,7 +30,7 @@ BufferRange FakeBrush::BufferData () // ================================ // // -filesystem::Path FakeBrush::ShaderFunctionFile () +fs::Path FakeBrush::ShaderFunctionFile () { return m_shaderFun; } diff --git a/swGUI/TestFramework/Utils/Mocks/Media/FakeBrush.h b/swGUI/TestFramework/Utils/Mocks/Media/FakeBrush.h index d96351fc..64794bbd 100644 --- a/swGUI/TestFramework/Utils/Mocks/Media/FakeBrush.h +++ b/swGUI/TestFramework/Utils/Mocks/Media/FakeBrush.h @@ -41,7 +41,7 @@ class FakeBrush : public Brush virtual BufferRange BufferData () override; - virtual filesystem::Path ShaderFunctionFile () override; + virtual fs::Path ShaderFunctionFile () override; virtual AssetPath TextureSource () override; virtual AssetPath ConstantsName () override; diff --git a/swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.cpp b/swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.cpp index a54438a4..93eb0d78 100644 --- a/swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.cpp +++ b/swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.cpp @@ -66,7 +66,7 @@ BufferRange FakeGeometry::BufferData () // ================================ // // -filesystem::Path FakeGeometry::ShaderFunctionFile () +fs::Path FakeGeometry::ShaderFunctionFile () { return m_shaderFun; } diff --git a/swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.h b/swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.h index df45b5ab..402b3df7 100644 --- a/swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.h +++ b/swGUI/TestFramework/Utils/Mocks/Media/FakeGeometry.h @@ -49,7 +49,7 @@ class FakeGeometry : public Geometry virtual Nullable< GeometryData > Generate () override; virtual BufferRange BufferData () override; - virtual filesystem::Path ShaderFunctionFile () override; + virtual fs::Path ShaderFunctionFile () override; virtual std::string GeometryName () override; virtual AssetPath ConstantsName () override; diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp index 089efeb8..da7f2141 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp @@ -29,7 +29,7 @@ namespace sw { // ================================ // -void FontPicker::RegisterSearchPath( const filesystem::Path& path ) +void FontPicker::RegisterSearchPath( const fs::Path& path ) { m_searchPaths.push_back( path ); } @@ -51,7 +51,7 @@ Nullable< std::vector< FontSearchEntry > > FontPicker::ListFonts( PathsManager* for( auto path : m_searchPaths ) { auto dir = pm->Translate( path ); - auto files = filesystem::Dir::ListFiles( dir ); + auto files = fs::Dir::ListFiles( dir ); for( auto file : files ) { auto meta = FontMetadata( pm, file ); @@ -72,7 +72,7 @@ Nullable< std::vector< FontSearchEntry > > FontPicker::ListFontVariants( PathsM // ================================ // -Nullable< FontSearchEntry > FontPicker::FontMetadata( PathsManager* pm, const filesystem::Path& path ) const +Nullable< FontSearchEntry > FontPicker::FontMetadata( PathsManager* pm, const fs::Path& path ) const { auto freeType = FreeTypeLibrary::Create(); ReturnIfInvalid( freeType ); diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h index 016eeee1..188cbeef 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h @@ -62,20 +62,20 @@ class FontPicker { private: - std::vector< filesystem::Path > m_searchPaths; + std::vector< fs::Path > m_searchPaths; protected: public: explicit FontPicker() = default; ~FontPicker() = default; - void RegisterSearchPath( const filesystem::Path& path ); + void RegisterSearchPath( const fs::Path& path ); public: Nullable< FontSearchEntry > FindFontFile( PathsManager* pm, const std::string& fontFamily, FontWeight weight, FontStyle style ) const; Nullable< std::vector< FontSearchEntry > > ListFonts( PathsManager* pm ) const; Nullable< std::vector< FontSearchEntry > > ListFontVariants( PathsManager* pm, const std::string& fontFamily ) const; - Nullable< FontSearchEntry > FontMetadata( PathsManager* pm, const filesystem::Path& path ) const; + Nullable< FontSearchEntry > FontMetadata( PathsManager* pm, const fs::Path& path ) const; }; diff --git a/swGraphicAPI/DX11API/DX11Resources/DX11ComputeShader.cpp b/swGraphicAPI/DX11API/DX11Resources/DX11ComputeShader.cpp index a4510f6f96ea69cd10d8afe64d84678b62cb203b..de047e99083cc7fceaf66cff166c9a2a76b37ff8 100644 GIT binary patch delta 14 VcmZ1@Jx6*&6bEDR=4=i}Rsbd&1aSZW delta 30 icmbOuy+(RN6o+6YLk>eKLoq`o5SIX1xtpUo99aQ_nFrkf diff --git a/swGraphicAPI/DX11API/DX11Resources/DX11ComputeShader.h b/swGraphicAPI/DX11API/DX11Resources/DX11ComputeShader.h index cd1e060786a57268fbb9291c0604bc4e2b94156a..e65479428c907b84a8ef618dea065e81e787d11e 100644 GIT binary patch delta 14 VcmZ1`G)-tj9Xn(3=6?3+i~uJX1nU3* delta 30 jcmbOxv`lD29lKyALk>eKLoq`o5SIX1xtr_Rr!xWogyslW diff --git a/swGraphicAPI/DX11API/DX11Resources/DX11PixelShader.cpp b/swGraphicAPI/DX11API/DX11Resources/DX11PixelShader.cpp index 1b3b93b85cb0834a6f81258d4921aa37903c5ff4..6e4bdaff732df0e590e0fd2eab7c6f9e6ef43bf3 100644 GIT binary patch delta 14 Vcmew%_d;%i5f@|eW@j!_Rsbv!1h)VH delta 30 icmaDM_d{-j5tm>lLk>eKLoq`o5SIX1xtoo-Oj!Yu4+tXw diff --git a/swGraphicAPI/DX11API/DX11Resources/DX11PixelShader.h b/swGraphicAPI/DX11API/DX11Resources/DX11PixelShader.h index 34acd98e9ed0470b6503d2824ab8f10b75ed53a0..b0b2a1e5301436db30428c0487f17a47e01885a9 100644 GIT binary patch delta 14 Vcmca5cuH`C3p-=+=1}%lMgS=?1j_&b delta 30 icmX>lcuR1D3%g(@Lk>eKLoq`o5SIX1xtm?tTNwd~zz8=0 diff --git a/swGraphicAPI/DX11API/DX11Resources/DX11RenderTarget.cpp b/swGraphicAPI/DX11API/DX11Resources/DX11RenderTarget.cpp index 5ba4f5c629d2c87a71320175abb8563365a14df6..c73b7ccd3fb9c34d89ef0fbe9974ca28a1b6a378 100644 GIT binary patch delta 38 pcmdn6pRr*-;|333#^T8r{d70C`C2hD7H_`j$IS#4kqVr~2LLK34srkh delta 86 zcmZqJ&$t1IJbVQ+8FCm>8HyPyfw%<7%ALH?Pj_>fuN5Pv)aH$T+)S9lU>&alrttv) DN#_|w diff --git a/swGraphicAPI/DX11API/DX11Resources/DX11VertexShader.cpp b/swGraphicAPI/DX11API/DX11Resources/DX11VertexShader.cpp index bbe09930a21a399d31ec6f49e098d6f2529a893f..cd8f3defe02a52d94453e1074f95eae1f25c52e5 100644 GIT binary patch delta 14 VcmaDQeM@@791h0f&1*SqSphG(1#JKT delta 30 jcmca5{YrYn91g)uh8%`ehGK?FAT9y2ayQTAuw?}RnHLDz diff --git a/swGraphicAPI/DX11API/DX11Resources/DX11VertexShader.h b/swGraphicAPI/DX11API/DX11Resources/DX11VertexShader.h index 2ae8e5bdc4e9544391b13ceb2f2e3febd6a060bb..9c9eb6ea2afe24cc3f3f494218cdfde6dfe7fc56 100644 GIT binary patch delta 14 Vcmca2ctmi64Lf7;W?%MpMgS->1hD`B delta 30 icmX>ictvo74ZC0_Lk>eKLoq`o5SIX1xtnd-+Zh3efCwD` diff --git a/swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.cpp b/swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.cpp index 0f4cfd02..4f2288d8 100644 --- a/swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.cpp +++ b/swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.cpp @@ -174,7 +174,7 @@ ReturnResult SoilTextureLoader::Prefetch ( const LoadPath& filePath, // ================================ // // -ReturnResult SoilTextureLoader::Save ( const filesystem::Path& filePath, const Image< u32 >& image ) +ReturnResult SoilTextureLoader::Save ( const fs::Path& filePath, const Image< u32 >& image ) { if( image.GetChannels() != 4 ) return ReturnResult( fmt::format( "Saving images with {} channels isn't supported", image.GetChannels() ) ); diff --git a/swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.h b/swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.h index 08848961..37a7466a 100644 --- a/swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.h +++ b/swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.h @@ -35,7 +35,7 @@ class SoilTextureLoader : public IAssetLoader virtual LoadingResult Load ( const LoadPath& filePath, TypeID resourceType, const IAssetLoadInfo* assetDesc, RMLoaderAPI factory ) override; virtual ReturnResult Prefetch ( const LoadPath& filePath, TypeID resourceType, const IAssetLoadInfo* assetDesc, RMLoaderAPI factory ) override; - static ReturnResult Save ( const filesystem::Path& filePath, const Image< u32 >& image ); + static ReturnResult Save ( const fs::Path& filePath, const Image< u32 >& image ); public: diff --git a/swGraphicAPI/Loaders/swMaterialLoader/swMaterialLoader.cpp b/swGraphicAPI/Loaders/swMaterialLoader/swMaterialLoader.cpp index f5e733ce..a60ef560 100644 --- a/swGraphicAPI/Loaders/swMaterialLoader/swMaterialLoader.cpp +++ b/swGraphicAPI/Loaders/swMaterialLoader/swMaterialLoader.cpp @@ -224,7 +224,7 @@ Nullable< AssetPath > SWMaterialLoader::DeserializeShader ( ID // If there's no entrypoint, default main function will be loaded. if( shaderFile ) - return AssetPath( shaderFile, filesystem::Path() ); + return AssetPath( shaderFile, fs::Path() ); } return "No shader."; @@ -436,7 +436,7 @@ Nullable< MaterialInitData > SWMaterialLoader::LoadAdditionalBuffers ( IDeseria // ================================ // // -void SWMaterialLoader::SaveMaterial ( const filesystem::Path& fileName, MaterialAsset* mat ) +void SWMaterialLoader::SaveMaterial ( const fs::Path& fileName, MaterialAsset* mat ) { ISerializer ser( std::make_unique< SerializationContext >() ); diff --git a/swGraphicAPI/Loaders/swMaterialLoader/swMaterialLoader.h b/swGraphicAPI/Loaders/swMaterialLoader/swMaterialLoader.h index bc1d56ac..fc060b89 100644 --- a/swGraphicAPI/Loaders/swMaterialLoader/swMaterialLoader.h +++ b/swGraphicAPI/Loaders/swMaterialLoader/swMaterialLoader.h @@ -56,7 +56,7 @@ class SWMaterialLoader : public IAssetLoader public: static Version GetVersion (); - void SaveMaterial ( const filesystem::Path& fileName, MaterialAsset* mat ); + void SaveMaterial ( const fs::Path& fileName, MaterialAsset* mat ); private: diff --git a/swGraphicAPI/MockAPI/MockResources/MockComputeShader.cpp b/swGraphicAPI/MockAPI/MockResources/MockComputeShader.cpp index 7da02ed520dc563e54dc10eaf678e537c13fdfd5..559e62b50050ff92920638135abb1c9f5a28d398 100644 GIT binary patch delta 14 VcmX>kx=D0H6+2_`=5BU#W&kNh1j7IT delta 30 icmdladPsCb6}w<2Lk>eKLoq`o5SIX1xtpum&6xp;v~0jpppLk>eKLoq`o5SIX1xtk4H8yNwB?g!5R diff --git a/swGraphicAPI/MockAPI/MockResources/MockPixelShader.cpp b/swGraphicAPI/MockAPI/MockResources/MockPixelShader.cpp index a15207fd82f668b3ef68b470604d21dee4d0ebc4..9c10d4c1b38501c9a1a2c25b142ddd1ba4b6361a 100644 GIT binary patch delta 14 VcmX>nzE6C^KMuy?&HSAEnE)<-1#tiX delta 30 jcmdldeolPDKMui6h8%`ehGK?FAT9y2ayS3y*v|w2o%#vf diff --git a/swGraphicAPI/MockAPI/MockResources/MockPixelShader.h b/swGraphicAPI/MockAPI/MockResources/MockPixelShader.h index f797498a90fa12273fd901e30bde11578761357b..4041d702c9793b031bb0d0ac3f3109305780e43b 100644 GIT binary patch delta 14 VcmZ3+JB@dP94lk-W_{LjMgSpd1N{I1 delta 30 icmbQnyNq{(9IId^Lk>eKLoq`o5SIX1xtrx#%NYT9cn4_! diff --git a/swGraphicAPI/MockAPI/MockResources/MockRenderTarget.cpp b/swGraphicAPI/MockAPI/MockResources/MockRenderTarget.cpp index 132bd13243283c8188a8dae4fb23bf4f06f1a16e..c08671d2c6998e5cc58477f09ced51bc63645c3c 100644 GIT binary patch delta 36 lcmX?RG0kGbH(ti#$!7(0H=FRuF+!OW_;rBH&1VHFxdHxa47~sV delta 84 zcmbPcam-@FH(tR^h8%`ehGK?FAT9y2awpFf(A})UC&!3Gs(@byi`3@10+rkVkyh(V25IbY>W@YyIOaLUE1Xch5 delta 30 jcmdlad`NhM5W8R|Lk>eKLoq`o5SIX1xtoRA=Q9BSe@h3# diff --git a/swGraphicAPI/MockAPI/MockResources/MockVertexShader.h b/swGraphicAPI/MockAPI/MockResources/MockVertexShader.h index f5a12d6dd54af6e95531476e8e09911cbcf28c7b..d37a9c1a2f1ceb8dae905afad65050fd185bb6ec 100644 GIT binary patch delta 22 dcmaFDdxdvH2rFwbgB63-WPLW-&26l4i~v#j21)<` delta 38 rcmcb@`-FEx2&-r&Lk>eKLoq`o5SIX1xeQheR+Ht~WH*(), std::move( createInfo ) ); if( !res.IsValid() ) diff --git a/swGraphicAPI/ResourceManager/AssetCreators/Shaders/ShaderCreator.inl b/swGraphicAPI/ResourceManager/AssetCreators/Shaders/ShaderCreator.inl index f285f6c4..14bcc6a2 100644 --- a/swGraphicAPI/ResourceManager/AssetCreators/Shaders/ShaderCreator.inl +++ b/swGraphicAPI/ResourceManager/AssetCreators/Shaders/ShaderCreator.inl @@ -53,7 +53,7 @@ inline Nullable< Resource* > ShaderCreator< ShaderObjectType >::Create ( cons if( type == TypeID::get< ShaderInitData >() ) { auto& init = static_cast< ShaderInitData&& >( createInfo ); - std::string code = filesystem::File::Load( assetName.GetFile() ); + std::string code = fs::File::Load( assetName.GetFile() ); return CreateShader( assetName, init.Type, code, init.EntryFunction ); } diff --git a/swGraphicAPI/ResourceManager/AsyncLoad/LoadBarrier.cpp b/swGraphicAPI/ResourceManager/AsyncLoad/LoadBarrier.cpp index 2f3c519e..78b3204c 100644 --- a/swGraphicAPI/ResourceManager/AsyncLoad/LoadBarrier.cpp +++ b/swGraphicAPI/ResourceManager/AsyncLoad/LoadBarrier.cpp @@ -14,7 +14,7 @@ namespace sw // ================================ // // -WaitingAsset::WaitingAsset ( const filesystem::Path& filePath ) +WaitingAsset::WaitingAsset ( const fs::Path& filePath ) : m_fileName( filePath ) , m_numWaiting( 0 ) , m_ready( false ) @@ -79,7 +79,7 @@ bool WaitingAsset::LoadingCompleted ( ExceptionPtr error ) // ================================ // // -bool WaitingAsset::Compare ( const filesystem::Path& filePath ) +bool WaitingAsset::Compare ( const fs::Path& filePath ) { return m_fileName == filePath; } @@ -99,7 +99,7 @@ LoadBarrier::~LoadBarrier() // ================================ // // -std::pair< WaitingAsset*, bool > LoadBarrier::RequestAsset ( const filesystem::Path& filePath ) +std::pair< WaitingAsset*, bool > LoadBarrier::RequestAsset ( const fs::Path& filePath ) { std::unique_lock< std::mutex > lock( m_lock ); @@ -148,21 +148,21 @@ ReturnResult LoadBarrier::WaitUntilLoaded ( WaitingAsset* asset ) // ================================ // // -void LoadBarrier::LoadingCompleted ( const filesystem::Path& filePath ) +void LoadBarrier::LoadingCompleted ( const fs::Path& filePath ) { LoadingFinishedImpl( filePath, nullptr ); } // ================================ // // -void LoadBarrier::LoadingFailed ( const filesystem::Path& filePath, ExceptionPtr error ) +void LoadBarrier::LoadingFailed ( const fs::Path& filePath, ExceptionPtr error ) { LoadingFinishedImpl( filePath, error ); } // ================================ // // -void LoadBarrier::LoadingFinishedImpl( const filesystem::Path& filePath, ExceptionPtr error ) +void LoadBarrier::LoadingFinishedImpl( const fs::Path& filePath, ExceptionPtr error ) { std::unique_lock< std::mutex > lock( m_lock ); diff --git a/swGraphicAPI/ResourceManager/AsyncLoad/LoadBarrier.h b/swGraphicAPI/ResourceManager/AsyncLoad/LoadBarrier.h index 55e35210..1dec439a 100644 --- a/swGraphicAPI/ResourceManager/AsyncLoad/LoadBarrier.h +++ b/swGraphicAPI/ResourceManager/AsyncLoad/LoadBarrier.h @@ -25,7 +25,7 @@ class WaitingAsset friend class LoadBarrier; private: - filesystem::Path m_fileName; + fs::Path m_fileName; std::atomic< uint16 > m_numWaiting; bool m_ready; @@ -36,7 +36,7 @@ class WaitingAsset public: WaitingAsset () = default; - WaitingAsset ( const filesystem::Path& filePath ); + WaitingAsset ( const fs::Path& filePath ); ~WaitingAsset (); @@ -58,7 +58,7 @@ class WaitingAsset bool LoadingCompleted ( ExceptionPtr error ); /**@brief Check if file is during laoding.*/ - bool Compare ( const filesystem::Path& filePath ); + bool Compare ( const fs::Path& filePath ); /**@brief Returns error or nullptr.*/ ExceptionPtr GetError () const { return m_error; } @@ -84,20 +84,20 @@ class LoadBarrier Otherwise new WaitingAsset object is created to block future loads. @return Function returns true if asset already existed. If WaitingAsset was created in this function call function returns true. Note: WaitingAsset should never be nullptr.*/ - std::pair< WaitingAsset*, bool > RequestAsset ( const filesystem::Path& filePath ); + std::pair< WaitingAsset*, bool > RequestAsset ( const fs::Path& filePath ); /**@brief Function waits until asset will be loaded.*/ ReturnResult WaitUntilLoaded ( WaitingAsset* asset ); /**@brief Notify all threads waiting for this asset.*/ - void LoadingCompleted ( const filesystem::Path& filePath ); + void LoadingCompleted ( const fs::Path& filePath ); /**@brief Notify all threads waiting for this asset that loading failed.*/ - void LoadingFailed ( const filesystem::Path& filePath, ExceptionPtr error ); + void LoadingFailed ( const fs::Path& filePath, ExceptionPtr error ); private: - void LoadingFinishedImpl ( const filesystem::Path& filePath, ExceptionPtr error ); + void LoadingFinishedImpl ( const fs::Path& filePath, ExceptionPtr error ); bool RemoveWaitingAsset ( WaitingAsset* asset ); diff --git a/swGraphicAPI/ResourceManager/Exceptions/ResourceManagerException.cpp b/swGraphicAPI/ResourceManager/Exceptions/ResourceManagerException.cpp index 29c25d76..0b129119 100644 --- a/swGraphicAPI/ResourceManager/Exceptions/ResourceManagerException.cpp +++ b/swGraphicAPI/ResourceManager/Exceptions/ResourceManagerException.cpp @@ -15,7 +15,7 @@ namespace sw // ================================ // // -ResourceManagerException::ResourceManagerException ( const std::string& error, const filesystem::Path& name, TypeID assetType ) +ResourceManagerException::ResourceManagerException ( const std::string& error, const fs::Path& name, TypeID assetType ) : RuntimeException( error ) , m_resourceName( name ) , m_resourceType( assetType ) diff --git a/swGraphicAPI/ResourceManager/Exceptions/ResourceManagerException.h b/swGraphicAPI/ResourceManager/Exceptions/ResourceManagerException.h index 81301bf2..b09e40b4 100644 --- a/swGraphicAPI/ResourceManager/Exceptions/ResourceManagerException.h +++ b/swGraphicAPI/ResourceManager/Exceptions/ResourceManagerException.h @@ -21,11 +21,11 @@ class ResourceManagerException : public RuntimeException private: protected: - filesystem::Path m_resourceName; + fs::Path m_resourceName; TypeID m_resourceType; public: - explicit ResourceManagerException ( const std::string& error, const filesystem::Path& name, TypeID assetType ); + explicit ResourceManagerException ( const std::string& error, const fs::Path& name, TypeID assetType ); virtual ~ResourceManagerException () = default; std::string ErrorMessage () const override; diff --git a/swGraphicAPI/ResourceManager/Loaders/ShaderLoader.cpp b/swGraphicAPI/ResourceManager/Loaders/ShaderLoader.cpp index 181eed05..388b79ff 100644 --- a/swGraphicAPI/ResourceManager/Loaders/ShaderLoader.cpp +++ b/swGraphicAPI/ResourceManager/Loaders/ShaderLoader.cpp @@ -69,7 +69,7 @@ LoadingResult ShaderLoader::Load ( const LoadPath& filePath, TypeID re { if( filePath.GetFile().Exists() ) { - std::string fileContent = filesystem::File::Load( filePath.GetFile() ); + std::string fileContent = fs::File::Load( filePath.GetFile() ); ShaderCodeInitData init( ShaderInitData::GetFromTypeID( resourceType ), std::move( fileContent ) ); diff --git a/swGraphicAPI/ResourceManager/PathTranslators/AssetPath.h b/swGraphicAPI/ResourceManager/PathTranslators/AssetPath.h index bdc546ea..555178fd 100644 --- a/swGraphicAPI/ResourceManager/PathTranslators/AssetPath.h +++ b/swGraphicAPI/ResourceManager/PathTranslators/AssetPath.h @@ -33,14 +33,14 @@ class AssetPath { private: - filesystem::Path m_filePath; ///< Path in filesystem. - filesystem::Path m_internalPath; ///< Internal path in asset file or simply asset name. + fs::Path m_filePath; ///< Path in filesystem. + fs::Path m_internalPath; ///< Internal path in asset file or simply asset name. protected: public: explicit AssetPath () = default; - explicit AssetPath ( filesystem::Path file, filesystem::Path internalPath ); + explicit AssetPath ( fs::Path file, fs::Path internalPath ); AssetPath ( const std::string& assetPath ); AssetPath ( const char* assetPath ); @@ -48,8 +48,8 @@ class AssetPath public: - const filesystem::Path& GetFile () const { return m_filePath; } - const filesystem::Path& GetInternalPath () const { return m_internalPath; } + const fs::Path& GetFile () const { return m_filePath; } + const fs::Path& GetInternalPath () const { return m_internalPath; } std::string String () const; @@ -83,7 +83,7 @@ namespace sw // ================================ // // -inline AssetPath::AssetPath ( filesystem::Path file, filesystem::Path internalPath ) +inline AssetPath::AssetPath ( fs::Path file, fs::Path internalPath ) : m_filePath( file ) , m_internalPath( internalPath ) {} diff --git a/swGraphicAPI/ResourceManager/PathTranslators/LoadPath.h b/swGraphicAPI/ResourceManager/PathTranslators/LoadPath.h index 072501a7..4a714bd0 100644 --- a/swGraphicAPI/ResourceManager/PathTranslators/LoadPath.h +++ b/swGraphicAPI/ResourceManager/PathTranslators/LoadPath.h @@ -36,11 +36,11 @@ class LoadPath /**@brief Gets file path ready to loading. Note that this path don't have aliases. If you want to build paths, better use not translated version.*/ - const filesystem::Path& GetFile () const { return m_translatedPath.GetFile(); } + const fs::Path& GetFile () const { return m_translatedPath.GetFile(); } - const filesystem::Path& GetInternalPath () const { return m_originalPath.GetInternalPath(); } - const filesystem::Path& GetFileTranslated () const { return m_translatedPath.GetFile(); } - const filesystem::Path& GetFileOriginal () const { return m_originalPath.GetFile(); } + const fs::Path& GetInternalPath () const { return m_originalPath.GetInternalPath(); } + const fs::Path& GetFileTranslated () const { return m_translatedPath.GetFile(); } + const fs::Path& GetFileOriginal () const { return m_originalPath.GetFile(); } const AssetPath& GetOriginalPath () const { return m_originalPath; } const AssetPath& GetTranslatedPath () const { return m_translatedPath; } @@ -48,7 +48,7 @@ class LoadPath public: /**@brief Extends internal path and returns new object.*/ - LoadPath operator/ ( const filesystem::Path& path ) const; + LoadPath operator/ ( const fs::Path& path ) const; public: @@ -56,7 +56,7 @@ class LoadPath public: - static filesystem::Path Translate ( const filesystem::Path& path, const PathsManager* pm ); + static fs::Path Translate ( const fs::Path& path, const PathsManager* pm ); static AssetPath Translate ( const AssetPath& name, const PathsManager* pm ); }; @@ -88,7 +88,7 @@ inline LoadPath::LoadPath ( AssetPath original, const PathsManager* pm ) // ================================ // // -inline LoadPath LoadPath::operator/ ( const filesystem::Path& path ) const +inline LoadPath LoadPath::operator/ ( const fs::Path& path ) const { auto newInternalPath = GetInternalPath() / path; return LoadPath( AssetPath( GetFileOriginal(), newInternalPath ), AssetPath( GetFileTranslated(), newInternalPath ) ); @@ -103,14 +103,14 @@ inline std::string LoadPath::Print () const // ================================ // // -inline filesystem::Path LoadPath::Translate ( const filesystem::Path& path, const PathsManager* pm ) +inline fs::Path LoadPath::Translate ( const fs::Path& path, const PathsManager* pm ) { auto translated = pm->Translate( path ); // @todo If working directory changes this code translates to another path. // Is this expected behavior in this case? if( translated.IsRelative() && !translated.IsEmpty() ) - translated = filesystem::Path::WorkingDirectory() / translated; + translated = fs::Path::WorkingDirectory() / translated; translated.Normalize(); diff --git a/swGraphicAPI/ResourceManager/PathTranslators/PathsManager.cpp b/swGraphicAPI/ResourceManager/PathTranslators/PathsManager.cpp index e37819b6..5cc55b10 100644 --- a/swGraphicAPI/ResourceManager/PathTranslators/PathsManager.cpp +++ b/swGraphicAPI/ResourceManager/PathTranslators/PathsManager.cpp @@ -21,7 +21,7 @@ std::regex gAliasFormat( "^\\$\\([_\\-.[:alnum:]]+\\)$" ); // ================================ // // -filesystem::Path PathsManager::Translate ( const filesystem::Path& path ) const +fs::Path PathsManager::Translate ( const fs::Path& path ) const { // Absolut paths don't need translation. if( path.IsRelative() ) @@ -35,7 +35,7 @@ filesystem::Path PathsManager::Translate ( const filesystem::Path& path ) con auto iter = m_aliases.find( alias ); if( iter != m_aliases.end() ) { - filesystem::Path relativePart = path.RelativeTo( filesystem::Path( alias ) ); + fs::Path relativePart = path.ClipFromRoot( 1 ); return iter->second / relativePart; } } @@ -47,7 +47,7 @@ filesystem::Path PathsManager::Translate ( const filesystem::Path& path ) con // ================================ // // -Nullable< filesystem::Path > PathsManager::FindAlias ( const std::string& alias ) const +Nullable< fs::Path > PathsManager::FindAlias ( const std::string& alias ) const { auto iter = m_aliases.find( alias ); @@ -59,7 +59,7 @@ Nullable< filesystem::Path > PathsManager::FindAlias ( const std::string& alia // ================================ // // -ReturnResult PathsManager::RegisterAlias ( const std::string& alias, const filesystem::Path& path ) +ReturnResult PathsManager::RegisterAlias ( const std::string& alias, const fs::Path& path ) { if( IsValidAlias( alias ) ) { @@ -90,7 +90,7 @@ bool PathsManager::IsValidAlias ( const std::string& alias ) // ================================ // // -ReturnResult PathsManager::OverrideAlias ( const std::string& alias, const filesystem::Path& path ) +ReturnResult PathsManager::OverrideAlias ( const std::string& alias, const fs::Path& path ) { if( IsValidAlias( alias ) ) { diff --git a/swGraphicAPI/ResourceManager/PathTranslators/PathsManager.h b/swGraphicAPI/ResourceManager/PathTranslators/PathsManager.h index 33d9d83a..11b84d65 100644 --- a/swGraphicAPI/ResourceManager/PathTranslators/PathsManager.h +++ b/swGraphicAPI/ResourceManager/PathTranslators/PathsManager.h @@ -26,7 +26,7 @@ class PathsManager private: protected: - std::map< std::string, filesystem::Path > m_aliases; + std::map< std::string, fs::Path > m_aliases; public: explicit PathsManager () = default; @@ -34,8 +34,8 @@ class PathsManager public: - filesystem::Path Translate ( const filesystem::Path& path ) const; - Nullable< filesystem::Path > FindAlias ( const std::string& alias ) const; + fs::Path Translate ( const fs::Path& path ) const; + Nullable< fs::Path > FindAlias ( const std::string& alias ) const; public: @@ -45,13 +45,13 @@ class PathsManager /**@brief Adds new alias. Alias must have valid format $(ALIAS_NAME). If alias already existed it won't be overwritten. @return If user provides existing or invalid alias, function returns false.*/ - ReturnResult RegisterAlias ( const std::string& alias, const filesystem::Path& path ); + ReturnResult RegisterAlias ( const std::string& alias, const fs::Path& path ); ///@} ///@name API for TestFramework. Don't use in normal applications. ///@{ - ReturnResult OverrideAlias ( const std::string& alias, const filesystem::Path& path ); + ReturnResult OverrideAlias ( const std::string& alias, const fs::Path& path ); ///@} diff --git a/swGraphicAPI/ResourceManager/ResourceManager.cpp b/swGraphicAPI/ResourceManager/ResourceManager.cpp index 515ab228..d97e360d 100644 --- a/swGraphicAPI/ResourceManager/ResourceManager.cpp +++ b/swGraphicAPI/ResourceManager/ResourceManager.cpp @@ -373,7 +373,7 @@ ReturnResult ResourceManager::AddGenericResource ( const AssetPath& name, // ================================ // // -filesystem::Path ResourceManager::Translate ( const filesystem::Path& path ) +fs::Path ResourceManager::Translate ( const fs::Path& path ) { return LoadPath::Translate( path, m_pathsManager.get() ); } diff --git a/swGraphicAPI/ResourceManager/ResourceManager.h b/swGraphicAPI/ResourceManager/ResourceManager.h index 87805748..7fabbb50 100644 --- a/swGraphicAPI/ResourceManager/ResourceManager.h +++ b/swGraphicAPI/ResourceManager/ResourceManager.h @@ -220,7 +220,7 @@ class ResourceManager ReturnResult AddGenericResource ( const AssetPath& name, TypeID assetType, ResourcePointer resource ); - filesystem::Path Translate ( const filesystem::Path& path ); + fs::Path Translate ( const fs::Path& path ); AssetPath Translate ( const AssetPath& name ); void RegisterBasicLoaders(); diff --git a/swGraphicAPI/Resources/Resource.cpp b/swGraphicAPI/Resources/Resource.cpp index 0a780fe4..eb037aca 100644 --- a/swGraphicAPI/Resources/Resource.cpp +++ b/swGraphicAPI/Resources/Resource.cpp @@ -308,7 +308,7 @@ AssetPath Resource::GetAssetPath () const // ================================ // // -filesystem::Path Resource::GetFilePath () const +fs::Path Resource::GetFilePath () const { return AssetPath::FromString( m_name ).Get().GetFile(); } diff --git a/swGraphicAPI/Resources/ResourceObject.h b/swGraphicAPI/Resources/ResourceObject.h index 66d6db6e..a8e8b927 100644 --- a/swGraphicAPI/Resources/ResourceObject.h +++ b/swGraphicAPI/Resources/ResourceObject.h @@ -94,7 +94,7 @@ class Resource : public Object virtual AssetPath GetAssetPath () const; /**@brief Returns Resource path in filesystem*/ - virtual filesystem::Path GetFilePath () const; + virtual fs::Path GetFilePath () const; public: diff --git a/swGraphicAPI/Resources/Shaders/IShader.h b/swGraphicAPI/Resources/Shaders/IShader.h index 1a1d0466..069c3cae 100644 --- a/swGraphicAPI/Resources/Shaders/IShader.h +++ b/swGraphicAPI/Resources/Shaders/IShader.h @@ -31,7 +31,7 @@ class IShader : public Resource virtual bool ReloadFromFile () = 0; virtual bool ReloadFromBinFile () = 0; - virtual void SaveShaderBinFile ( const filesystem::Path& fileName ) = 0; + virtual void SaveShaderBinFile ( const fs::Path& fileName ) = 0; }; } // sw diff --git a/swGraphicAPI/Resources/Textures/Texture.h b/swGraphicAPI/Resources/Textures/Texture.h index 0a5bb5a0..ba405d29 100644 --- a/swGraphicAPI/Resources/Textures/Texture.h +++ b/swGraphicAPI/Resources/Textures/Texture.h @@ -132,7 +132,7 @@ struct TextureInfo ///< Set value to 1 if you want to replace original texture with first mipmap. uint32 MemorySize; ///< Texture size in memory. - filesystem::Path FilePath; ///< Texture path or name. @deprecated Remove, after we get rid of old creation functions. + fs::Path FilePath; ///< Texture path or name. @deprecated Remove, after we get rid of old creation functions. // ================================ // // diff --git a/swGraphicAPI/Tests/TestMaterial/TestSWMaterialSaver.cpp b/swGraphicAPI/Tests/TestMaterial/TestSWMaterialSaver.cpp index be1620d1..e0282fab 100644 --- a/swGraphicAPI/Tests/TestMaterial/TestSWMaterialSaver.cpp +++ b/swGraphicAPI/Tests/TestMaterial/TestSWMaterialSaver.cpp @@ -34,7 +34,7 @@ namespace DirectX { // ================================ // // -filesystem::Path Translate ( ResourceManager* rm, filesystem::Path path ) +fs::Path Translate ( ResourceManager* rm, fs::Path path ) { return rm->GetPathsManager()->Translate( path ); } diff --git a/swGraphicAPI/Tests/TestResourceManager/LoadBarrierTest.cpp b/swGraphicAPI/Tests/TestResourceManager/LoadBarrierTest.cpp index 35c2fc61..095212f5 100644 --- a/swGraphicAPI/Tests/TestResourceManager/LoadBarrierTest.cpp +++ b/swGraphicAPI/Tests/TestResourceManager/LoadBarrierTest.cpp @@ -40,8 +40,8 @@ sw::LoadBarrier gLoadBarrier; std::vector< int > gOrderChecker; std::mutex gCheckerLock; -filesystem::Path assetFile( "assets/wombat.jpg" ); -filesystem::Path independentAsset( "assets/texture.jpg" ); +sw::fs::Path assetFile( "assets/wombat.jpg" ); +sw::fs::Path independentAsset( "assets/texture.jpg" ); bool threadsInternalResult[ numThreads ]; bool notNullWaitingAsset[ numThreads ]; diff --git a/swGraphicAPI/Tests/TestResourceManager/TestAssetsFactory.cpp b/swGraphicAPI/Tests/TestResourceManager/TestAssetsFactory.cpp index 223f5853..cfda96d6 100644 --- a/swGraphicAPI/Tests/TestResourceManager/TestAssetsFactory.cpp +++ b/swGraphicAPI/Tests/TestResourceManager/TestAssetsFactory.cpp @@ -45,7 +45,7 @@ struct FakeResourceInitData : public IAssetCreateInfo // ================================ // // -AssetPath Translate(ResourceManager* rm, filesystem::Path path) +AssetPath Translate(ResourceManager* rm, fs::Path path) { auto translatePath = rm->GetPathsManager()->Translate(path); return AssetPath(translatePath, ""); diff --git a/swGraphicAPI/Tests/TestResourceManager/TestLoadPath.cpp b/swGraphicAPI/Tests/TestResourceManager/TestLoadPath.cpp index 88a11a3c..15178d03 100644 --- a/swGraphicAPI/Tests/TestResourceManager/TestLoadPath.cpp +++ b/swGraphicAPI/Tests/TestResourceManager/TestLoadPath.cpp @@ -24,7 +24,7 @@ TEST_CASE( "GraphicAPI.ResourceManager.PathAliases.LoadPath.Constructor", "[Grap auto loadPath = LoadPath( path, rm->GetPathsManager() ); CHECK( loadPath.GetFileOriginal() == "$(MocksDir)/example.mock" ); - CHECK( loadPath.GetFileTranslated() == filesystem::Path::WorkingDirectory() / "mock/example.mock" ); + CHECK( loadPath.GetFileTranslated() == fs::Path::WorkingDirectory() / "mock/example.mock" ); } // ================================ // @@ -37,7 +37,7 @@ TEST_CASE( "GraphicAPI.ResourceManager.PathAliases.LoadPath.Normalization", "[Gr auto loadPath = LoadPath( path, rm->GetPathsManager() ); CHECK( loadPath.GetFileOriginal() == "$(MocksDir)/../example.mock" ); - CHECK( loadPath.GetFileTranslated() == filesystem::Path::WorkingDirectory() / "example.mock" ); + CHECK( loadPath.GetFileTranslated() == fs::Path::WorkingDirectory() / "example.mock" ); } // ================================ // @@ -63,6 +63,6 @@ TEST_CASE( "GraphicAPI.ResourceManager.PathAliases.LoadPath.TranslateRelative", auto loadPath = LoadPath( path, rm->GetPathsManager() ); CHECK( loadPath.GetFileOriginal() == "TestAssets/example.mock" ); - CHECK( loadPath.GetFileTranslated() == ( filesystem::Path::WorkingDirectory() / "TestAssets/example.mock" ).String() ); + CHECK( loadPath.GetFileTranslated() == ( fs::Path::WorkingDirectory() / "TestAssets/example.mock" ).String() ); } diff --git a/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestShaderCreator.cpp b/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestShaderCreator.cpp index 8ac7feba..c4ada9cd 100644 --- a/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestShaderCreator.cpp +++ b/swGraphicAPI/Tests/TestResources.DX11/TestCreators/TestShaderCreator.cpp @@ -20,7 +20,7 @@ using namespace sw; -AssetPath Translate(ResourceManager* rm, filesystem::Path path) +AssetPath Translate(ResourceManager* rm, fs::Path path) { auto translatePath = rm->GetPathsManager()->Translate(path); return AssetPath(translatePath, ""); @@ -125,7 +125,7 @@ TEST_CASE( "GraphicAPI.DX11.ShaderCreator.ComputeShader.Create.FromCode", "[Grap auto assetPath = Translate(rm.get(), "$(TestAssets)/shaders/hlsl/MinimalShader.vsh"); auto path = assetPath.GetFile(); - init.SourceCode = filesystem::File::Load( path ); + init.SourceCode = fs::File::Load( path ); auto result = factory.CreateAsset(assetPath, TypeID::get< VertexShader >(), std::move( init ) ); REQUIRE_IS_VALID( result ); diff --git a/swSerialization/Serialization/Serialization.h b/swSerialization/Serialization/Serialization.h index efb72e55..1f8539c7 100644 --- a/swSerialization/Serialization/Serialization.h +++ b/swSerialization/Serialization/Serialization.h @@ -115,7 +115,7 @@ class Serialization /**@brief Serialize object to file.*/ template< typename Type > - ReturnResult Serialize ( const filesystem::Path& filePath, const Type& object ); + ReturnResult Serialize ( const fs::Path& filePath, const Type& object ); /**@brief Serialize object to provided serializer. This serialization doesn't write it's output anywhere. @@ -127,11 +127,11 @@ class Serialization /**@brief Deserialize object from file. Object will be created internally.*/ template< typename Type > - Nullable< Type > Deserialize ( const filesystem::Path& filePath ); + Nullable< Type > Deserialize ( const fs::Path& filePath ); /**@brief Deserialize content from file into existing object.*/ template< typename Type > - ReturnResult Deserialize ( const filesystem::Path& filePath, Type& object ); + ReturnResult Deserialize ( const fs::Path& filePath, Type& object ); /**@brief Deserialize object from provided deserializer. Object will be created internally. diff --git a/swSerialization/Serialization/Serialization.inl b/swSerialization/Serialization/Serialization.inl index f3fb3b9e..e19bad1a 100644 --- a/swSerialization/Serialization/Serialization.inl +++ b/swSerialization/Serialization/Serialization.inl @@ -17,14 +17,14 @@ namespace sw // ================================ // // template< typename Type > -inline ReturnResult Serialization::Serialize ( const filesystem::Path& filePath, const Type& object ) +inline ReturnResult Serialization::Serialize ( const fs::Path& filePath, const Type& object ) { ISerializer ser( std::static_pointer_cast< ISerializationContext >( m_context ) ); auto result = Serialize< Type >( ser, object ); if( result.IsValid() ) { - filesystem::Dir::CreateDirectory( filePath ); + fs::Dir::CreateDirectory( filePath ); return ser.SaveFile( filePath.String(), WritingMode::Readable ); } @@ -49,7 +49,7 @@ inline ReturnResult Serialization::Serialize ( ISerializer& ser, const Type& // ================================ // // template< typename Type > -inline Nullable< Type > Serialization::Deserialize ( const filesystem::Path& filePath ) +inline Nullable< Type > Serialization::Deserialize ( const fs::Path& filePath ) { IDeserializer deser( std::static_pointer_cast< ISerializationContext >( m_context ) ); @@ -63,7 +63,7 @@ inline Nullable< Type > Serialization::Deserialize ( const filesystem:: // ================================ // // template< typename Type > -inline ReturnResult Serialization::Deserialize ( const filesystem::Path& filePath, Type& object ) +inline ReturnResult Serialization::Deserialize ( const fs::Path& filePath, Type& object ) { IDeserializer deser( std::static_pointer_cast< ISerializationContext >( m_context ) ); diff --git a/swSerialization/Serializers/SerializerJson/Serializer.cpp b/swSerialization/Serializers/SerializerJson/Serializer.cpp index b2f2cec2..2b6e2504 100644 --- a/swSerialization/Serializers/SerializerJson/Serializer.cpp +++ b/swSerialization/Serializers/SerializerJson/Serializer.cpp @@ -111,7 +111,7 @@ ISerializer::~ISerializer() ReturnResult ISerializer::SaveFile ( const std::string& fileName, WritingMode mode ) { // Ensure directory exists. - filesystem::Dir::CreateDirectory( fileName ); + fs::Dir::CreateDirectory( fileName ); std::ofstream file; file.open( fileName ); diff --git a/swSerialization/Serializers/SerializerJson/SerializerJSON.cpp b/swSerialization/Serializers/SerializerJson/SerializerJSON.cpp index a94540b1..f2ffd01d 100644 --- a/swSerialization/Serializers/SerializerJson/SerializerJSON.cpp +++ b/swSerialization/Serializers/SerializerJson/SerializerJSON.cpp @@ -103,7 +103,7 @@ SerializerJSON::SerializerJSON ( ISerializationContextPtr serContext ) ReturnResult SerializerJSON::SaveFile ( const std::string& fileName, WritingMode mode ) const { // Ensure directory exists. - filesystem::Dir::CreateDirectory( fileName ); + fs::Dir::CreateDirectory( fileName ); std::ofstream file; file.open( fileName ); diff --git a/swSerialization/Serializers/SerializerXML/Serializer.cpp b/swSerialization/Serializers/SerializerXML/Serializer.cpp index 8c475d8c..816291fa 100644 --- a/swSerialization/Serializers/SerializerXML/Serializer.cpp +++ b/swSerialization/Serializers/SerializerXML/Serializer.cpp @@ -72,7 +72,7 @@ ISerializer::~ISerializer() ReturnResult ISerializer::SaveFile ( const std::string& fileName, WritingMode mode ) { // Ensure directory exists. - filesystem::Dir::CreateDirectory( fileName ); + fs::Dir::CreateDirectory( fileName ); while( impl->valuesStack.size() > 1 ) this->Exit(); diff --git a/swSerialization/Serializers/SerializerXML/SerializerXML.cpp b/swSerialization/Serializers/SerializerXML/SerializerXML.cpp index 8c9ff6c3..d1f7cb63 100644 --- a/swSerialization/Serializers/SerializerXML/SerializerXML.cpp +++ b/swSerialization/Serializers/SerializerXML/SerializerXML.cpp @@ -69,7 +69,7 @@ SerializerXML::SerializerXML( ISerializationContextPtr serContext ) ReturnResult SerializerXML::SaveFile ( const std::string& fileName, WritingMode mode ) const { // Ensure directory exists. - filesystem::Dir::CreateDirectory( fileName ); + fs::Dir::CreateDirectory( fileName ); std::ofstream file; file.open( fileName, std::ios::out | std::ios::trunc ); From 636cf5477ce485d79782ed404dfdd874799b5e2d Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sat, 16 Nov 2024 00:56:25 +0100 Subject: [PATCH 73/96] Restructure font metadata --- swCommonLib/System/Path.h.rej | 61 ------------------- .../Assets/TextAsset/Loader/FontLoader.cpp | 9 +-- .../Assets/TextAsset/Loader/FontPicker.cpp | 11 +++- .../Assets/TextAsset/Loader/FontPicker.h | 18 +++++- .../Assets/TextAsset/Loader/FreeType.h | 2 +- .../Tests/TestText/TestFontPicker.cpp | 4 +- 6 files changed, 31 insertions(+), 74 deletions(-) delete mode 100644 swCommonLib/System/Path.h.rej diff --git a/swCommonLib/System/Path.h.rej b/swCommonLib/System/Path.h.rej deleted file mode 100644 index b8b90fc6..00000000 --- a/swCommonLib/System/Path.h.rej +++ /dev/null @@ -1,61 +0,0 @@ -diff a/swCommonLib/System/Path.h b/swCommonLib/System/Path.h (rejected hunks) -@@ -222,56 +222,17 @@ - } - - /**@brief Normalizes path. --@attention Obecna implementacja mo�e nie dzia�a� do ko�ca.*/ -+@attention The current implementation may not work completely.*/ - inline void Path::Normalize() - { -- auto& tokens = m_path.get_tokens(); -- std::string normalized = ""; -- -- // Avoid reallocating string all the time. -- size_t maxLen = 0; -- for( auto& token : tokens ) -- maxLen += token.size(); -- -- normalized.reserve( maxLen ); -- normalized = *tokens.crbegin(); -- -- size_t tokensToOmit = 0; -- for( auto i = ++tokens.crbegin(); i != tokens.crend(); ++i ) -- { -- if( *i == ".." ) -- { -- tokensToOmit++; -- } -- else -- { -- if( tokensToOmit == 0 ) -- { -- // Add token to path from back to beginning. -- normalized = *i + "/" + normalized; -- } -- else -- { -- tokensToOmit--; -- } -- } -- } -- -- // Add all .. signs that remained to the beginning. -- while( tokensToOmit > 0 ) -- { -- normalized = "../" + normalized; -- tokensToOmit--; -- } -- -- m_path = path_impl( normalized ); -+ m_path = m_path.lexically_normal(); - } - - // ================================ // - // - inline void Path::MakeAbsolute () - { -- m_path.make_absolute(); -+ m_path = std::filesystem::absolute( m_path ); - } - - // ================================ // diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp index b2902038..b6ff03a3 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp @@ -315,12 +315,13 @@ void FreeTypeLibrary::RenderGlyph( const Glyph& glyph, Im // ================================ // -FontSearchEntry FreeTypeLibrary::Metadata() const +FontMetadata FreeTypeLibrary::Metadata() const { - return FontSearchEntry{ + return FontMetadata{ this->Face->family_name, this->Face->style_name, - ( this->Face->style_flags & FT_STYLE_FLAG_BOLD ) ? FontWeight::UltraBold : FontWeight::Normal, - ( this->Face->style_flags & FT_STYLE_FLAG_ITALIC ) ? FontStyle::Italic : FontStyle::Normal, LoadPath( AssetPath(), AssetPath() ) }; + bool( this->Face->style_flags & FT_STYLE_FLAG_ITALIC ), + bool( this->Face->style_flags & FT_STYLE_FLAG_BOLD ) + }; } } diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp index da7f2141..f833ead9 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp @@ -52,7 +52,7 @@ Nullable< std::vector< FontSearchEntry > > FontPicker::ListFonts( PathsManager* { auto dir = pm->Translate( path ); auto files = fs::Dir::ListFiles( dir ); - for( auto file : files ) + for( auto& file : files ) { auto meta = FontMetadata( pm, file ); if( meta.IsValid() ) @@ -81,8 +81,13 @@ Nullable< FontSearchEntry > FontPicker::FontMetadata( PathsManag ReturnIfInvalid( freeType.Get().CreateFace( loadPath, 3 ) ); auto meta = freeType.Get().Metadata(); - meta.Path = loadPath; - return meta; + return FontSearchEntry + { + meta, + meta.IsBold ? FontWeight::UltraBold : FontWeight::Normal, + meta.IsItalic ? FontStyle::Italic : FontStyle::Normal, + loadPath + }; } } // sw diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h index 188cbeef..609af33c 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h @@ -33,14 +33,26 @@ enum class FontWeight : u8 UltraBold, }; -/**@brief Data structure retuned by @ref FontPicker. +/**@brief Structure storing Font metadata. @ingroup Text*/ -struct FontSearchEntry +struct FontMetadata { -public: std::string Family; std::string StyleName; //< String name of the style retrieved from font metadata. + /**@brief Indicates that Font is italic. Note that StyleName can contain more details about style.*/ + bool IsItalic; + /**@brief Indicates that Font is bold. Note that StyleName can contain more details about different + styles of bold. Those 3 fields should be mapped to @ref FontWeight and @ref FontStyle enums.*/ + bool IsBold; +}; + +/**@brief Data structure returned by @ref FontPicker. +@ingroup Text*/ +struct FontSearchEntry +{ + FontMetadata Metadata; + FontWeight Weight; FontStyle Style; diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h b/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h index dc7f77b5..1714ab9c 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h @@ -51,7 +51,7 @@ class FreeTypeLibrary /**Renders Glyph to bitmap in selected rectangle.*/ void RenderGlyph ( const Glyph& glyph, ImageRegion< u32 >& image ) const; - FontSearchEntry Metadata () const; + FontMetadata Metadata() const; }; diff --git a/swGraphicAPI/Tests/TestText/TestFontPicker.cpp b/swGraphicAPI/Tests/TestText/TestFontPicker.cpp index 9f479a80..45c03525 100644 --- a/swGraphicAPI/Tests/TestText/TestFontPicker.cpp +++ b/swGraphicAPI/Tests/TestText/TestFontPicker.cpp @@ -31,13 +31,13 @@ TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.Metadata", "[GraphicAPI][FontLoad auto meta = picker.FontMetadata( rm->GetPathsManager(), "$(FontAssets)/arial.ttf" ); REQUIRE_IS_VALID( meta ); - CHECK( meta.Get().Family == "Arial" ); + CHECK( meta.Get().Metadata.Family == "Arial" ); CHECK( meta.Get().Style == FontStyle::Normal ); CHECK( meta.Get().Weight == FontWeight::Normal ); auto meta2 = picker.FontMetadata( rm->GetPathsManager(), "$(FontAssets)/ELICEN.ttf" ); REQUIRE( meta2.IsValid() ); - CHECK( meta2.Get().Family == "ELICEN" ); + CHECK( meta2.Get().Metadata.Family == "ELICEN" ); CHECK( meta2.Get().Style == FontStyle::Normal ); CHECK( meta2.Get().Weight == FontWeight::Normal ); } From 159321b254b76006348e799699fcb11ff120aa87 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sat, 16 Nov 2024 01:03:42 +0100 Subject: [PATCH 74/96] Fix ListFonts test --- swGraphicAPI/MockAssets/Utils.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swGraphicAPI/MockAssets/Utils.h b/swGraphicAPI/MockAssets/Utils.h index 87330bc5..6dd6dfa8 100644 --- a/swGraphicAPI/MockAssets/Utils.h +++ b/swGraphicAPI/MockAssets/Utils.h @@ -34,7 +34,7 @@ inline std::unique_ptr< ResourceManager > CreateResourceManagerWithMocks () std::unique_ptr< ResourceManager > rm = std::make_unique< ResourceManager >(); auto pm = rm->GetPathsManager(); - pm->RegisterAlias( "$(TestAssets)", "" ); + pm->RegisterAlias( "$(TestAssets)", "." ); pm->RegisterAlias( "$(MocksDir)", "$(TestAssets)/mock/" ); pm->RegisterAlias( "$(TestWorkingDir)", "Working-Dir" ); From b2d4cec8f649444aaa5560440d652c2c4dbcab83 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sat, 16 Nov 2024 13:42:24 +0100 Subject: [PATCH 75/96] Attampt several fixes --- swCommonLib/System/Dir.cpp | 2 +- .../System/Filesystem/filesystem/path.h | 13 +++++-- swCommonLib/System/Path.h | 39 ++++++++++++------- swCommonLib/Tests/FileSystemTest/PathTest.cpp | 39 ++++++++++++++++++- .../FileSystemTest/TestNormalizePath.cpp | 36 +++++------------ swGraphicAPI/MockAssets/Utils.h | 2 +- .../PathTranslators/LoadPath.h | 4 +- .../TestResourceManager/TestLoadPath.cpp | 4 +- 8 files changed, 86 insertions(+), 53 deletions(-) diff --git a/swCommonLib/System/Dir.cpp b/swCommonLib/System/Dir.cpp index ada8123f..e7454e04 100644 --- a/swCommonLib/System/Dir.cpp +++ b/swCommonLib/System/Dir.cpp @@ -44,7 +44,7 @@ std::vector< Path > Dir::ListFiles( const fs::Path& path ) Use only if you must.*/ std::filesystem::path Path::GetStdPath() const { - return std::filesystem::path( m_path.wstr() ); + return std::filesystem::path( m_path.str() ); } } diff --git a/swCommonLib/System/Filesystem/filesystem/path.h b/swCommonLib/System/Filesystem/filesystem/path.h index 3d3b3865..1404054f 100644 --- a/swCommonLib/System/Filesystem/filesystem/path.h +++ b/swCommonLib/System/Filesystem/filesystem/path.h @@ -42,7 +42,7 @@ class path_impl { #endif }; - path_impl() : m_type(native_path), m_absolute(false) { } + path_impl() : m_type( posix_path ), m_absolute( false ) {} path_impl(const path_impl &path) : m_type(path.m_type), m_path(path.m_path), m_absolute(path.m_absolute) {} @@ -144,7 +144,8 @@ class path_impl { return oss.str(); } - void set(const std::string &str, path_type type = native_path) { + void set( const std::string& str, path_type type = posix_path ) + { m_type = type; if (type == windows_path) { m_path = tokenize(str, "/\\"); @@ -183,8 +184,8 @@ class path_impl { static path_impl getcwd(); #if defined(_WIN32) - std::wstring wstr( path_type type = native_path ) const; - void set( const std::wstring &wstring, path_type type = native_path ); + std::wstring wstr( path_type type = posix_path ) const; + void set( const std::wstring& wstring, path_type type = posix_path ); path_impl &operator=(const std::wstring &str) { set(str); return *this; } #endif @@ -199,6 +200,10 @@ class path_impl { std::string::size_type lastPos = 0; std::string::size_type pos = string.find_first_of( delim, lastPos ); + // We need to avoid pushing empty token, because it will cause problems later + if( string.empty() ) + return tokens; + while( lastPos != std::string::npos ) { if( pos != lastPos ) tokens.push_back( string.substr( lastPos, pos - lastPos ) ); diff --git a/swCommonLib/System/Path.h b/swCommonLib/System/Path.h index 637e2f4e..d197bb68 100644 --- a/swCommonLib/System/Path.h +++ b/swCommonLib/System/Path.h @@ -1,7 +1,7 @@ #pragma once /** @file Path.h -@author +@author nieznanysprawiciel @copyright This file is part of the SWEngine graphics engine. Implementation of the Path class. Since Path is not yet part of the C++ standard, @@ -18,6 +18,7 @@ so it cannot be implemented fully portably.*/ #include #include "Filesystem/filesystem/path.h" + #include #include @@ -44,6 +45,7 @@ class Path Path ( const Path& path ) = default; Path ( Path&& path ) = default; Path ( const std::wstring& path ); + Path ( const std::filesystem::path& path ); template< class Source > Path ( const Source& source ); @@ -71,8 +73,8 @@ class Path Path GetParent () const; Path GetDirectory () const; - void Normalize (); - void MakeAbsolute (); + Path Normalize () const; + Path MakeAbsolute () const; Path ChangeExtension ( const std::string& extension ) const; @@ -117,11 +119,14 @@ inline Path::Path() // inline Path::Path ( const std::wstring& path ) { - //typedef std::codecvt_utf8< wchar_t > ConvertType; - //std::wstring_convert< ConvertType, wchar_t > converter; - //auto pathStr = converter.to_bytes( path ); + m_path = ::filesystem::path_impl( Convert::ToString( path ) ); +} - m_path = ::filesystem::path_impl( path ); +// ================================ // + +inline Path::Path ( const std::filesystem::path& path ) +{ + m_path = ::filesystem::path_impl( path.string() ); } // ================================ // @@ -197,6 +202,14 @@ inline bool Path::operator>= ( const Path& other ) const // return experimental::equivalent( path1.m_path, path2.m_path ); //} +// ================================ // + +inline std::ostream& operator<<( std::ostream& os, const Path& value ) +{ + os << value.String(); + return os; +} + /**@brief */ inline std::string Path::String() const { @@ -206,7 +219,7 @@ inline std::string Path::String() const /**@brief */ inline std::wstring Path::WString() const { - return m_path.wstr(); + return Convert::FromString< std::wstring >( m_path.str() ); } /**@brief */ @@ -239,8 +252,8 @@ inline Path Path::GetDirectory() const } /**@brief Normalizes path. -@attention Obecna implementacja mo�e nie dzia�a� do ko�ca.*/ -inline void Path::Normalize() +@attention Current implementation might not work fully.*/ +inline Path Path::Normalize() const { auto& tokens = m_path.get_tokens(); std::string normalized = ""; @@ -281,14 +294,14 @@ inline void Path::Normalize() tokensToOmit--; } - m_path = ::filesystem::path_impl( normalized ); + return ::filesystem::path_impl( normalized ); } // ================================ // // -inline void Path::MakeAbsolute () +inline Path Path::MakeAbsolute () const { - m_path.make_absolute(); + return m_path.make_absolute(); } // ================================ // diff --git a/swCommonLib/Tests/FileSystemTest/PathTest.cpp b/swCommonLib/Tests/FileSystemTest/PathTest.cpp index 1bbe6d9b..6460086e 100644 --- a/swCommonLib/Tests/FileSystemTest/PathTest.cpp +++ b/swCommonLib/Tests/FileSystemTest/PathTest.cpp @@ -8,7 +8,7 @@ -TEST_CASE( "Path - Comparision operator" ) +TEST_CASE( "Path.ComparisionOperator" ) { sw::fs::Path reference( "assets/wombat.jpg" ); sw::fs::Path difference( "assets/wombat2.jpg" ); @@ -27,7 +27,7 @@ TEST_CASE( "Path - Comparision operator" ) // ================================ // // Path should return right result for examples from http://en.cppreference.com/w/cpp/experimental/fs/path/extension -TEST_CASE( "Path - Aquire Extension" ) +TEST_CASE( "Path.AquireExtension" ) { sw::fs::Path path1( "/foo/bar.txt" ); sw::fs::Path path2( "/foo/bar." ); @@ -72,3 +72,38 @@ TEST_CASE( "Path.ChangeExtension" ) CHECK( path9.ChangeExtension( ".png" ) == "/foo/.hidden.png" ); } +// ================================ // +// +TEST_CASE( "Path.Combine" ) +{ + sw::fs::Path path1( "/foo/bar" ); + sw::fs::Path path2( "/foo/bar/" ); + sw::fs::Path path3( "boa/bao" ); + sw::fs::Path path4( "" ); + sw::fs::Path path7( "/foo/." ); + sw::fs::Path path8( "/foo/.." ); + sw::fs::Path path9( "/foo/.hidden" ); + + CHECK( path1 / path3 == "/foo/bar/boa/bao" ); + CHECK( path1 / path4 == "/foo/bar/" ); // Because we add empty path `bar` is treated as directory. + CHECK( path4 / path3 == "boa/bao" ); + CHECK( path7 / path3 == "/foo/./boa/bao" ); + CHECK( path8 / path3 == "/foo/../boa/bao" ); + CHECK( path7 / path4 == "/foo/." ); + CHECK( path8 / path4 == "/foo/.." ); + CHECK( path2 / path3 == "/foo/bar/boa/bao" ); +} + +// ================================ // +// +TEST_CASE( "Path.ForbiddenChars" ) +{ + sw::fs::Path path1( "/foo:blaa" ); + sw::fs::Path path2( "/foo::blaa" ); + sw::fs::Path path3( "/foo?blaa=3" ); + + CHECK( path1 == "/foo:blaa" ); + CHECK( path2 == "/foo::blaa" ); + CHECK( path3 == "/foo?blaa=3" ); +} + diff --git a/swCommonLib/Tests/FileSystemTest/TestNormalizePath.cpp b/swCommonLib/Tests/FileSystemTest/TestNormalizePath.cpp index 8488936b..c37d12ed 100644 --- a/swCommonLib/Tests/FileSystemTest/TestNormalizePath.cpp +++ b/swCommonLib/Tests/FileSystemTest/TestNormalizePath.cpp @@ -17,9 +17,7 @@ TEST_CASE( "Filesystem.Normalize.1Dot" ) { sw::fs::Path path( "assets/../wombat.jpg" ); - path.Normalize(); - - CHECK( path == "wombat.jpg" ); + CHECK( path.Normalize() == "wombat.jpg" ); } // ================================ // @@ -27,9 +25,7 @@ TEST_CASE( "Filesystem.Normalize.1Dot" ) TEST_CASE( "Filesystem.Normalize.2Dots" ) { sw::fs::Path path( "some-dir/dir2/assets/../../wombat.jpg" ); - path.Normalize(); - - CHECK( path == "some-dir/wombat.jpg" ); + CHECK( path.Normalize() == "some-dir/wombat.jpg" ); } // ================================ // @@ -37,9 +33,7 @@ TEST_CASE( "Filesystem.Normalize.2Dots" ) TEST_CASE( "Filesystem.Normalize.2Dots.Separate.OnRoot" ) { sw::fs::Path path( "some-dir/../dir2/assets/../wombat.jpg" ); - path.Normalize(); - - CHECK( path == "dir2/wombat.jpg" ); + CHECK( path.Normalize() == "dir2/wombat.jpg" ); } // ================================ // @@ -47,9 +41,7 @@ TEST_CASE( "Filesystem.Normalize.2Dots.Separate.OnRoot" ) TEST_CASE( "Filesystem.Normalize.2Dots.Separate" ) { sw::fs::Path path( "some-dir/dir2/../assets/../wombat.jpg" ); - path.Normalize(); - - CHECK( path == "some-dir/wombat.jpg" ); + CHECK( path.Normalize() == "some-dir/wombat.jpg" ); } // ================================ // @@ -57,9 +49,7 @@ TEST_CASE( "Filesystem.Normalize.2Dots.Separate" ) TEST_CASE( "Filesystem.Normalize.RamainingDots.1Dot" ) { sw::fs::Path path( "../wombat.jpg" ); - path.Normalize(); - - CHECK( path == "../wombat.jpg" ); + CHECK( path.Normalize() == "../wombat.jpg" ); } // ================================ // @@ -67,9 +57,7 @@ TEST_CASE( "Filesystem.Normalize.RamainingDots.1Dot" ) TEST_CASE( "Filesystem.Normalize.RamainingDots.2Dots" ) { sw::fs::Path path( "../../wombat.jpg" ); - path.Normalize(); - - CHECK( path == "../../wombat.jpg" ); + CHECK( path.Normalize() == "../../wombat.jpg" ); } // ================================ // @@ -77,9 +65,7 @@ TEST_CASE( "Filesystem.Normalize.RamainingDots.2Dots" ) TEST_CASE( "Filesystem.Normalize.RamainingDots.2Dots.NameBetween" ) { sw::fs::Path path( "../dir/../wombat.jpg" ); - path.Normalize(); - - CHECK( path == "../wombat.jpg" ); + CHECK( path.Normalize() == "../wombat.jpg" ); } // ================================ // @@ -87,9 +73,7 @@ TEST_CASE( "Filesystem.Normalize.RamainingDots.2Dots.NameBetween" ) TEST_CASE( "Filesystem.Normalize.RamainingDots.3Dots.NameBetween" ) { sw::fs::Path path( "../dir/../../wombat.jpg" ); - path.Normalize(); - - CHECK( path == "../../wombat.jpg" ); + CHECK( path.Normalize() == "../../wombat.jpg" ); } // ================================ // @@ -97,8 +81,6 @@ TEST_CASE( "Filesystem.Normalize.RamainingDots.3Dots.NameBetween" ) TEST_CASE( "Filesystem.Normalize.RamainingDots.DotsOnly" ) { sw::fs::Path path( "../../" ); - path.Normalize(); - - CHECK( path == sw::fs::Path( "../../" ) ); + CHECK( path.Normalize() == sw::fs::Path( "../../" ) ); } diff --git a/swGraphicAPI/MockAssets/Utils.h b/swGraphicAPI/MockAssets/Utils.h index 6dd6dfa8..87330bc5 100644 --- a/swGraphicAPI/MockAssets/Utils.h +++ b/swGraphicAPI/MockAssets/Utils.h @@ -34,7 +34,7 @@ inline std::unique_ptr< ResourceManager > CreateResourceManagerWithMocks () std::unique_ptr< ResourceManager > rm = std::make_unique< ResourceManager >(); auto pm = rm->GetPathsManager(); - pm->RegisterAlias( "$(TestAssets)", "." ); + pm->RegisterAlias( "$(TestAssets)", "" ); pm->RegisterAlias( "$(MocksDir)", "$(TestAssets)/mock/" ); pm->RegisterAlias( "$(TestWorkingDir)", "Working-Dir" ); diff --git a/swGraphicAPI/ResourceManager/PathTranslators/LoadPath.h b/swGraphicAPI/ResourceManager/PathTranslators/LoadPath.h index 4a714bd0..b414ac43 100644 --- a/swGraphicAPI/ResourceManager/PathTranslators/LoadPath.h +++ b/swGraphicAPI/ResourceManager/PathTranslators/LoadPath.h @@ -112,9 +112,7 @@ inline fs::Path LoadPath::Translate ( const fs::Path& path, const Pa if( translated.IsRelative() && !translated.IsEmpty() ) translated = fs::Path::WorkingDirectory() / translated; - translated.Normalize(); - - return translated; + return translated.Normalize(); } // ================================ // diff --git a/swGraphicAPI/Tests/TestResourceManager/TestLoadPath.cpp b/swGraphicAPI/Tests/TestResourceManager/TestLoadPath.cpp index 15178d03..a00f620f 100644 --- a/swGraphicAPI/Tests/TestResourceManager/TestLoadPath.cpp +++ b/swGraphicAPI/Tests/TestResourceManager/TestLoadPath.cpp @@ -50,7 +50,7 @@ TEST_CASE( "GraphicAPI.ResourceManager.PathAliases.LoadPath.TranslateEmpty", "[G auto loadPath = LoadPath( path, rm->GetPathsManager() ); CHECK( loadPath.GetFileOriginal() == "" ); - CHECK( loadPath.GetFileTranslated().String() == "" ); + CHECK( loadPath.GetFileTranslated() == "" ); } // ================================ // @@ -63,6 +63,6 @@ TEST_CASE( "GraphicAPI.ResourceManager.PathAliases.LoadPath.TranslateRelative", auto loadPath = LoadPath( path, rm->GetPathsManager() ); CHECK( loadPath.GetFileOriginal() == "TestAssets/example.mock" ); - CHECK( loadPath.GetFileTranslated() == ( fs::Path::WorkingDirectory() / "TestAssets/example.mock" ).String() ); + CHECK( loadPath.GetFileTranslated() == fs::Path::WorkingDirectory() / "TestAssets/example.mock" ); } From 821ad3be9c226e95dcef05bf80ee444cd15f365f Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sat, 16 Nov 2024 14:00:47 +0100 Subject: [PATCH 76/96] Use std::filesystem again and fix failures in tests --- swCommonLib/System/Dir.cpp | 2 +- swCommonLib/System/Path.h | 127 +++++------------- swCommonLib/Tests/FileSystemTest/PathTest.cpp | 4 +- .../FileSystemTest/TestNormalizePath.cpp | 4 +- .../PathTranslators/PathsManager.cpp | 2 +- .../TestAssetsCreation.cpp | 2 +- 6 files changed, 40 insertions(+), 101 deletions(-) diff --git a/swCommonLib/System/Dir.cpp b/swCommonLib/System/Dir.cpp index e7454e04..149cc847 100644 --- a/swCommonLib/System/Dir.cpp +++ b/swCommonLib/System/Dir.cpp @@ -44,7 +44,7 @@ std::vector< Path > Dir::ListFiles( const fs::Path& path ) Use only if you must.*/ std::filesystem::path Path::GetStdPath() const { - return std::filesystem::path( m_path.str() ); + return std::filesystem::path( m_path.string() ); } } diff --git a/swCommonLib/System/Path.h b/swCommonLib/System/Path.h index d197bb68..f20596f2 100644 --- a/swCommonLib/System/Path.h +++ b/swCommonLib/System/Path.h @@ -16,7 +16,6 @@ so it cannot be implemented fully portably.*/ #include -#include "Filesystem/filesystem/path.h" #include @@ -31,13 +30,11 @@ namespace fs { -/**@brief Wrapper for Path. -Class can't use std::filesystem::path, because in some places library use Resources names -that contain illigal signs.*/ +/**@brief Wrapper for std path.*/ class Path { private: - ::filesystem::path_impl m_path; + std::filesystem::path m_path; public: @@ -45,7 +42,6 @@ class Path Path ( const Path& path ) = default; Path ( Path&& path ) = default; Path ( const std::wstring& path ); - Path ( const std::filesystem::path& path ); template< class Source > Path ( const Source& source ); @@ -76,7 +72,7 @@ class Path Path Normalize () const; Path MakeAbsolute () const; Path ChangeExtension ( const std::string& extension ) const; - + Path RelativeTo ( const Path& base ) const; //bool HasRoot () const; bool HasFileName () const; @@ -97,9 +93,7 @@ class Path public: ///@note This function may change or disapear in future. - const std::vector< std::string >& GetTokens () const; - - Path ClipFromRoot ( int num ) const; + std::vector< std::string > GetTokens () const; }; @@ -107,7 +101,7 @@ class Path // template< class Source > inline Path::Path ( const Source& source ) - : m_path( ::filesystem::path_impl( source ) ) + : m_path( std::filesystem::path( source ) ) {} // ================================ // @@ -119,14 +113,7 @@ inline Path::Path() // inline Path::Path ( const std::wstring& path ) { - m_path = ::filesystem::path_impl( Convert::ToString( path ) ); -} - -// ================================ // - -inline Path::Path ( const std::filesystem::path& path ) -{ - m_path = ::filesystem::path_impl( path.string() ); + m_path = std::filesystem::path( Convert::ToString( path ) ); } // ================================ // @@ -171,37 +158,30 @@ inline bool Path::operator!= ( const Path& other ) const // inline bool Path::operator< ( const Path& other ) const { - return m_path.str() < other.m_path.str(); + return m_path < other.m_path; } // ================================ // // inline bool Path::operator<= ( const Path& other ) const { - return m_path.str() <= other.m_path.str(); + return m_path <= other.m_path; } // ================================ // // inline bool Path::operator> ( const Path& other ) const { - return m_path.str() > other.m_path.str(); + return m_path > other.m_path; } // ================================ // // inline bool Path::operator>= ( const Path& other ) const { - return m_path.str() >= other.m_path.str(); + return m_path >= other.m_path; } -///**@brief Por�wnuje �cie�ki. Przed por�wnaniem �cie�ki s� normalizowane. -//Paths must exist on file system.*/ -//inline bool Path::Compare ( const Path& path1, const Path& path2 ) -//{ -// return experimental::equivalent( path1.m_path, path2.m_path ); -//} - // ================================ // inline std::ostream& operator<<( std::ostream& os, const Path& value ) @@ -213,27 +193,25 @@ inline std::ostream& operator<<( std::ostream& os, const Path& value ) /**@brief */ inline std::string Path::String() const { - return m_path.str(); + return m_path.string(); } /**@brief */ inline std::wstring Path::WString() const { - return Convert::FromString< std::wstring >( m_path.str() ); + return m_path.wstring(); } /**@brief */ inline std::string Path::GetFileName() const { - return m_path.filename(); + return m_path.filename().string(); } /**@brief */ inline std::string Path::GetExtension() const { - if( !HasFileName() ) - return ""; - return m_path.extension(); + return m_path.extension().string(); } /**@brief */ @@ -255,53 +233,14 @@ inline Path Path::GetDirectory() const @attention Current implementation might not work fully.*/ inline Path Path::Normalize() const { - auto& tokens = m_path.get_tokens(); - std::string normalized = ""; - - // Avoid reallocating string all the time. - size_t maxLen = 0; - for( auto& token : tokens ) - maxLen += token.size(); - - normalized.reserve( maxLen ); - normalized = *tokens.crbegin(); - - size_t tokensToOmit = 0; - for( auto i = ++tokens.crbegin(); i != tokens.crend(); ++i ) - { - if( *i == ".." ) - { - tokensToOmit++; - } - else - { - if( tokensToOmit == 0 ) - { - // Add token to path from back to beginning. - normalized = *i + "/" + normalized; - } - else - { - tokensToOmit--; - } - } - } - - // Add all .. signs that remained to the beginning. - while( tokensToOmit > 0 ) - { - normalized = "../" + normalized; - tokensToOmit--; - } - - return ::filesystem::path_impl( normalized ); + return m_path.lexically_normal(); } // ================================ // // inline Path Path::MakeAbsolute () const { - return m_path.make_absolute(); + return std::filesystem::absolute( m_path ); } // ================================ // @@ -309,18 +248,19 @@ inline Path Path::MakeAbsolute () const inline Path Path::ChangeExtension( const std::string& extension ) const { auto ext = m_path.extension(); - auto filename = m_path.filename(); + auto filename = m_path.filename().string(); if( filename == "." || filename == ".." ) return Path( *this ); - auto startPos = filename.rfind( ext ); - if( startPos != std::string::npos ) - { - filename.replace( startPos, filename.length(), extension ); - return m_path.parent_path() / filename; - } - return Path( *this ); + return std::filesystem::path( m_path ).replace_extension( std::filesystem::path( extension ) ); +} + +// ================================ // + +inline Path Path::RelativeTo( const Path& base ) const +{ + return m_path.lexically_relative( base.m_path ); } ///**@brief */ @@ -362,14 +302,14 @@ inline bool Path::IsAbsolut() const /**@brief Check if file exists.*/ inline bool Path::Exists() const { - return m_path.exists(); + return std::filesystem::exists( m_path ); } // ================================ // // inline Path Path::WorkingDirectory() { - return ::filesystem::path_impl::getcwd(); + return std::filesystem::current_path(); } /**@brief */ @@ -382,16 +322,13 @@ inline Path operator/( const Path& path1, const Path& path2 ) // ================================ // // -inline const std::vector< std::string >& Path::GetTokens () const +inline std::vector< std::string > Path::GetTokens () const { - return m_path.get_tokens(); -} + std::vector< std::string > tokens; + for( auto it = m_path.begin(); it != m_path.end(); ++it ) + tokens.push_back( it->string() ); -// ================================ // -// -inline Path Path::ClipFromRoot ( int num ) const -{ - return Path( m_path.clip_from_root( num ) ); + return tokens; } } diff --git a/swCommonLib/Tests/FileSystemTest/PathTest.cpp b/swCommonLib/Tests/FileSystemTest/PathTest.cpp index 6460086e..59093631 100644 --- a/swCommonLib/Tests/FileSystemTest/PathTest.cpp +++ b/swCommonLib/Tests/FileSystemTest/PathTest.cpp @@ -89,8 +89,8 @@ TEST_CASE( "Path.Combine" ) CHECK( path4 / path3 == "boa/bao" ); CHECK( path7 / path3 == "/foo/./boa/bao" ); CHECK( path8 / path3 == "/foo/../boa/bao" ); - CHECK( path7 / path4 == "/foo/." ); - CHECK( path8 / path4 == "/foo/.." ); + CHECK( path7 / path4 == "/foo/./" ); + CHECK( path8 / path4 == "/foo/../" ); CHECK( path2 / path3 == "/foo/bar/boa/bao" ); } diff --git a/swCommonLib/Tests/FileSystemTest/TestNormalizePath.cpp b/swCommonLib/Tests/FileSystemTest/TestNormalizePath.cpp index c37d12ed..7237b342 100644 --- a/swCommonLib/Tests/FileSystemTest/TestNormalizePath.cpp +++ b/swCommonLib/Tests/FileSystemTest/TestNormalizePath.cpp @@ -81,6 +81,8 @@ TEST_CASE( "Filesystem.Normalize.RamainingDots.3Dots.NameBetween" ) TEST_CASE( "Filesystem.Normalize.RamainingDots.DotsOnly" ) { sw::fs::Path path( "../../" ); - CHECK( path.Normalize() == sw::fs::Path( "../../" ) ); + // std::filesystem::path removes trailing slash. + // It is not convinient but acceptable behavior. + CHECK( path.Normalize() == sw::fs::Path( "../.." ) ); } diff --git a/swGraphicAPI/ResourceManager/PathTranslators/PathsManager.cpp b/swGraphicAPI/ResourceManager/PathTranslators/PathsManager.cpp index 5cc55b10..32349f83 100644 --- a/swGraphicAPI/ResourceManager/PathTranslators/PathsManager.cpp +++ b/swGraphicAPI/ResourceManager/PathTranslators/PathsManager.cpp @@ -35,7 +35,7 @@ fs::Path PathsManager::Translate ( const fs::Path& path ) const auto iter = m_aliases.find( alias ); if( iter != m_aliases.end() ) { - fs::Path relativePart = path.ClipFromRoot( 1 ); + fs::Path relativePart = path.RelativeTo( alias ); return iter->second / relativePart; } } diff --git a/swGraphicAPI/Tests/TestResourceManager/TestResourceManager/TestAssetsCreation.cpp b/swGraphicAPI/Tests/TestResourceManager/TestResourceManager/TestAssetsCreation.cpp index d5c1dff4..3b7dfe5b 100644 --- a/swGraphicAPI/Tests/TestResourceManager/TestResourceManager/TestAssetsCreation.cpp +++ b/swGraphicAPI/Tests/TestResourceManager/TestResourceManager/TestAssetsCreation.cpp @@ -67,7 +67,7 @@ TEST_CASE( "GraphicAPI.ResourceManager.CreateAsset.SingleAsset", "[GraphicAPI]" REQUIRE( result.IsValid() ); CHECK( result.Get() != nullptr ); - CHECK( rm.GetGeneric( "::RandomBuffer", TypeID::get< Buffer >() ) != nullptr ); + CHECK( rm.GetGeneric( "::/RandomBuffer", TypeID::get< Buffer >() ) != nullptr ); } // ================================ // From f8290aeeb59c9bf420145cafec33b15cf77e3b0d Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sat, 16 Nov 2024 14:05:00 +0100 Subject: [PATCH 77/96] Remove custom filesystem library --- .../Visual2015/CommonBase/CommonBase.vcxproj | 4 - .../CommonBase/CommonBase.vcxproj.filters | 15 -- swCommonLib/System/Filesystem/.gitignore | 7 - swCommonLib/System/Filesystem/CMakeLists.txt | 7 - swCommonLib/System/Filesystem/LICENSE | 36 --- .../Projects/Visual2015/Filesystem.sln | 28 -- .../Projects/Visual2015/Filesystem.vcxproj | 123 --------- .../Visual2015/Filesystem.vcxproj.filters | 33 --- swCommonLib/System/Filesystem/README.md | 9 - .../System/Filesystem/filesystem/fwd.h | 24 -- .../System/Filesystem/filesystem/path.cpp | 207 --------------- .../System/Filesystem/filesystem/path.h | 248 ------------------ .../System/Filesystem/filesystem/resolver.h | 72 ----- swCommonLib/System/Filesystem/path_demo.cpp | 48 ---- 14 files changed, 861 deletions(-) delete mode 100644 swCommonLib/System/Filesystem/.gitignore delete mode 100644 swCommonLib/System/Filesystem/CMakeLists.txt delete mode 100644 swCommonLib/System/Filesystem/LICENSE delete mode 100644 swCommonLib/System/Filesystem/Projects/Visual2015/Filesystem.sln delete mode 100644 swCommonLib/System/Filesystem/Projects/Visual2015/Filesystem.vcxproj delete mode 100644 swCommonLib/System/Filesystem/Projects/Visual2015/Filesystem.vcxproj.filters delete mode 100644 swCommonLib/System/Filesystem/README.md delete mode 100644 swCommonLib/System/Filesystem/filesystem/fwd.h delete mode 100644 swCommonLib/System/Filesystem/filesystem/path.cpp delete mode 100644 swCommonLib/System/Filesystem/filesystem/path.h delete mode 100644 swCommonLib/System/Filesystem/filesystem/resolver.h delete mode 100644 swCommonLib/System/Filesystem/path_demo.cpp diff --git a/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj b/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj index 3c7e7347..3a62f766 100644 --- a/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj +++ b/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj @@ -34,7 +34,6 @@ - @@ -88,9 +87,6 @@ - - - diff --git a/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj.filters b/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj.filters index ec9b6418..e24436b8 100644 --- a/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj.filters +++ b/swCommonLib/Projects/Visual2015/CommonBase/CommonBase.vcxproj.filters @@ -22,9 +22,6 @@ {c846e1e2-4296-4192-b226-3874455dc193} - - {8a21dd59-2a45-46e5-b3ec-17912109b0cf} - {1d235bb2-b3b8-46d7-bc00-c5300c1fcb32} @@ -63,9 +60,6 @@ Common\Multithreading - - System\Filesystem - Common @@ -167,15 +161,6 @@ Common\Multithreading - - System\Filesystem - - - System\Filesystem - - - System\Filesystem - Common\Exceptions diff --git a/swCommonLib/System/Filesystem/.gitignore b/swCommonLib/System/Filesystem/.gitignore deleted file mode 100644 index 62a6a443..00000000 --- a/swCommonLib/System/Filesystem/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -CMakeCache.txt -CMakeFiles -Makefile -cmake_install.cmake -path_demo - -/Projects/Visual2015/Output/ \ No newline at end of file diff --git a/swCommonLib/System/Filesystem/CMakeLists.txt b/swCommonLib/System/Filesystem/CMakeLists.txt deleted file mode 100644 index 8eda08d7..00000000 --- a/swCommonLib/System/Filesystem/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -cmake_minimum_required(VERSION 2.8) -project(path) -if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU") - # Enable C++11 mode on GCC / Clang - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") -endif() -add_executable(path_demo path_demo.cpp filesystem/path.h filesystem/resolver.h) diff --git a/swCommonLib/System/Filesystem/LICENSE b/swCommonLib/System/Filesystem/LICENSE deleted file mode 100644 index ccf4e978..00000000 --- a/swCommonLib/System/Filesystem/LICENSE +++ /dev/null @@ -1,36 +0,0 @@ -Copyright (c) 2016 Wenzel Jakob , All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -You are under no obligation whatsoever to provide any bug fixes, patches, or -upgrades to the features, functionality or performance of the source code -("Enhancements") to anyone; however, if you choose to make your Enhancements -available either publicly, or directly to the author of this software, without -imposing a separate written license agreement for such Enhancements, then you -hereby grant the following license: a non-exclusive, royalty-free perpetual -license to install, use, modify, prepare derivative works, incorporate into -other computer software, distribute, and sublicense such enhancements or -derivative works thereof, in binary and source code form. diff --git a/swCommonLib/System/Filesystem/Projects/Visual2015/Filesystem.sln b/swCommonLib/System/Filesystem/Projects/Visual2015/Filesystem.sln deleted file mode 100644 index 28396524..00000000 --- a/swCommonLib/System/Filesystem/Projects/Visual2015/Filesystem.sln +++ /dev/null @@ -1,28 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Filesystem", "Filesystem.vcxproj", "{FB15CE1E-7525-4846-B363-69CEDA50D039}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {FB15CE1E-7525-4846-B363-69CEDA50D039}.Debug|x64.ActiveCfg = Debug|x64 - {FB15CE1E-7525-4846-B363-69CEDA50D039}.Debug|x64.Build.0 = Debug|x64 - {FB15CE1E-7525-4846-B363-69CEDA50D039}.Debug|x86.ActiveCfg = Debug|Win32 - {FB15CE1E-7525-4846-B363-69CEDA50D039}.Debug|x86.Build.0 = Debug|Win32 - {FB15CE1E-7525-4846-B363-69CEDA50D039}.Release|x64.ActiveCfg = Release|x64 - {FB15CE1E-7525-4846-B363-69CEDA50D039}.Release|x64.Build.0 = Release|x64 - {FB15CE1E-7525-4846-B363-69CEDA50D039}.Release|x86.ActiveCfg = Release|Win32 - {FB15CE1E-7525-4846-B363-69CEDA50D039}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/swCommonLib/System/Filesystem/Projects/Visual2015/Filesystem.vcxproj b/swCommonLib/System/Filesystem/Projects/Visual2015/Filesystem.vcxproj deleted file mode 100644 index 42ee8eee..00000000 --- a/swCommonLib/System/Filesystem/Projects/Visual2015/Filesystem.vcxproj +++ /dev/null @@ -1,123 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - {FB15CE1E-7525-4846-B363-69CEDA50D039} - Win32Proj - 8.1 - - - - StaticLibrary - true - v140 - - - StaticLibrary - false - v140 - - - Application - true - v140 - - - Application - false - v140 - - - - - - - - - - - - - - - - - - - - - true - Output/$(Platform)/$(Configuration)\ - $(SolutionDir)Output/$(Platform)/$(Configuration)\ - - - true - Output/$(Platform)/$(Configuration)\ - $(SolutionDir)Output/$(Platform)/$(Configuration)\ - - - Output/$(Platform)\$(Configuration)\ - $(SolutionDir)Output/$(Platform)\$(Configuration)\ - - - Output/$(Platform)\$(Configuration)\ - $(SolutionDir)Output/$(Platform)\$(Configuration)\ - - - - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - Level3 - ProgramDatabase - Disabled - - - MachineX86 - true - Windows - - - - - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - MultiThreadedDLL - Level3 - ProgramDatabase - - - MachineX86 - true - Windows - true - true - - - - - - - - - - - - - - \ No newline at end of file diff --git a/swCommonLib/System/Filesystem/Projects/Visual2015/Filesystem.vcxproj.filters b/swCommonLib/System/Filesystem/Projects/Visual2015/Filesystem.vcxproj.filters deleted file mode 100644 index 0cf8baac..00000000 --- a/swCommonLib/System/Filesystem/Projects/Visual2015/Filesystem.vcxproj.filters +++ /dev/null @@ -1,33 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav - - - - - Header Files - - - Header Files - - - Header Files - - - - - Source Files - - - \ No newline at end of file diff --git a/swCommonLib/System/Filesystem/README.md b/swCommonLib/System/Filesystem/README.md deleted file mode 100644 index 118daf10..00000000 --- a/swCommonLib/System/Filesystem/README.md +++ /dev/null @@ -1,9 +0,0 @@ -#### filesystem/path.h: A simple class for manipulating paths on Linux/Windows/Mac OS - -This class is just a temporary workaround to avoid the heavy boost dependency -until `boost::filesystem` is integrated into the standard template library at -some point in the future. - - - -This fork separates platform specific definitins to .cpp file. diff --git a/swCommonLib/System/Filesystem/filesystem/fwd.h b/swCommonLib/System/Filesystem/filesystem/fwd.h deleted file mode 100644 index ba97e1ac..00000000 --- a/swCommonLib/System/Filesystem/filesystem/fwd.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - fwd.h -- Forward declarations for path.h and resolver.h - - Copyright (c) 2015 Wenzel Jakob - - All rights reserved. Use of this source code is governed by a - BSD-style license that can be found in the LICENSE file. -*/ - -#pragma once - -#if !defined(NAMESPACE_BEGIN) -#define NAMESPACE_BEGIN(name) namespace name { -#endif -#if !defined(NAMESPACE_END) -#define NAMESPACE_END(name) } -#endif - -NAMESPACE_BEGIN(filesystem) - -class path_impl; -class resolver; - -NAMESPACE_END(filesystem) diff --git a/swCommonLib/System/Filesystem/filesystem/path.cpp b/swCommonLib/System/Filesystem/filesystem/path.cpp deleted file mode 100644 index f02eba92..00000000 --- a/swCommonLib/System/Filesystem/filesystem/path.cpp +++ /dev/null @@ -1,207 +0,0 @@ -#include "path.h" - - -#if defined(_WIN32) -# include -#else -# include -#endif -#include - -#if defined(__linux) -# include -#endif - - - - - - -NAMESPACE_BEGIN(filesystem) - - - -// ================================ // -// -path_impl path_impl::make_absolute() const -{ -#if !defined(_WIN32) - char temp[ PATH_MAX ]; - if( realpath( str().c_str(), temp ) == NULL ) - throw std::runtime_error( "Internal error in realpath(): " + std::string( strerror( errno ) ) ); - return path( temp ); -#else - std::wstring value = wstr(), out( MAX_PATH, '\0' ); - DWORD length = GetFullPathNameW( value.c_str(), MAX_PATH, &out[ 0 ], NULL ); - if( length == 0 ) - throw std::runtime_error( "Internal error in GetFullPathNameW(): " + std::to_string( GetLastError() ) ); - return path_impl( out.substr( 0, length ) ); -#endif -} - - -// ================================ // -// -bool path_impl::exists() const -{ -#if defined(_WIN32) - return GetFileAttributesW( wstr().c_str() ) != INVALID_FILE_ATTRIBUTES; -#else - struct stat sb; - return stat( str().c_str(), &sb ) == 0; -#endif -} - - -// ================================ // -// -size_t path_impl::file_size() const -{ -#if defined(_WIN32) - struct _stati64 sb; - if( _wstati64( wstr().c_str(), &sb ) != 0 ) - throw std::runtime_error( "path::file_size(): cannot stat file \"" + str() + "\"!" ); -#else - struct stat sb; - if( stat( str().c_str(), &sb ) != 0 ) - throw std::runtime_error( "path::file_size(): cannot stat file \"" + str() + "\"!" ); -#endif - return (size_t)sb.st_size; -} - - -// ================================ // -// -bool path_impl::is_directory() const -{ -#if defined(_WIN32) - DWORD result = GetFileAttributesW( wstr().c_str() ); - if( result == INVALID_FILE_ATTRIBUTES ) - return false; - return ( result & FILE_ATTRIBUTE_DIRECTORY ) != 0; -#else - struct stat sb; - if( stat( str().c_str(), &sb ) ) - return false; - return S_ISDIR( sb.st_mode ); -#endif -} - - -// ================================ // -// -bool path_impl::is_file() const -{ -#if defined(_WIN32) - DWORD attr = GetFileAttributesW( wstr().c_str() ); - return ( attr != INVALID_FILE_ATTRIBUTES && ( attr & FILE_ATTRIBUTE_DIRECTORY ) == 0 ); -#else - struct stat sb; - if( stat( str().c_str(), &sb ) ) - return false; - return S_ISREG( sb.st_mode ); -#endif -} - - -// ================================ // -// -bool path_impl::remove_file() -{ -#if !defined(_WIN32) - return std::remove( str().c_str() ) == 0; -#else - return DeleteFileW( wstr().c_str() ) != 0; -#endif -} - - -// ================================ // -// -bool path_impl::resize_file( size_t target_length ) -{ -#if !defined(_WIN32) - return ::truncate( str().c_str(), (off_t)target_length ) == 0; -#else - HANDLE handle = CreateFileW( wstr().c_str(), GENERIC_WRITE, 0, nullptr, 0, FILE_ATTRIBUTE_NORMAL, nullptr ); - if( handle == INVALID_HANDLE_VALUE ) - return false; - LARGE_INTEGER size; - size.QuadPart = (LONGLONG)target_length; - if( SetFilePointerEx( handle, size, NULL, FILE_BEGIN ) == 0 ) - { - CloseHandle( handle ); - return false; - } - if( SetEndOfFile( handle ) == 0 ) - { - CloseHandle( handle ); - return false; - } - CloseHandle( handle ); - return true; -#endif -} - - -// ================================ // -// -path_impl path_impl::getcwd() -{ -#if !defined(_WIN32) - char temp[ PATH_MAX ]; - if( ::getcwd( temp, PATH_MAX ) == NULL ) - throw std::runtime_error( "Internal error in getcwd(): " + std::string( strerror( errno ) ) ); - return path( temp ); -#else - std::wstring temp( MAX_PATH, '\0' ); - if( !_wgetcwd( &temp[ 0 ], MAX_PATH ) ) - throw std::runtime_error( "Internal error in getcwd(): " + std::to_string( GetLastError() ) ); - return path_impl( temp.c_str() ); -#endif -} - -// ================================ // -// -std::wstring path_impl::wstr( path_type type ) const -{ - std::string temp = str( type ); - int size = MultiByteToWideChar( CP_UTF8, 0, &temp[ 0 ], (int)temp.size(), NULL, 0 ); - std::wstring result( size, 0 ); - MultiByteToWideChar( CP_UTF8, 0, &temp[ 0 ], (int)temp.size(), &result[ 0 ], size ); - return result; -} - - -// ================================ // -// -void path_impl::set( const std::wstring & wstring, path_type type ) -{ - std::string string; - if( !wstring.empty() ) - { - int size = WideCharToMultiByte( CP_UTF8, 0, &wstring[ 0 ], (int)wstring.size(), - NULL, 0, NULL, NULL ); - string.resize( size, 0 ); - WideCharToMultiByte( CP_UTF8, 0, &wstring[ 0 ], (int)wstring.size(), - &string[ 0 ], size, NULL, NULL ); - } - set( string, type ); -} - - - -// ================================ // -// -bool create_directory( const path_impl & p ) -{ -#if defined(_WIN32) - return CreateDirectoryW( p.wstr().c_str(), NULL ) != 0; -#else - return mkdir( p.str().c_str(), S_IRUSR | S_IWUSR | S_IXUSR ) == 0; -#endif -} - - -NAMESPACE_END(filesystem) - diff --git a/swCommonLib/System/Filesystem/filesystem/path.h b/swCommonLib/System/Filesystem/filesystem/path.h deleted file mode 100644 index 1404054f..00000000 --- a/swCommonLib/System/Filesystem/filesystem/path.h +++ /dev/null @@ -1,248 +0,0 @@ -/* - path.h -- A simple class for manipulating paths on Linux/Windows/Mac OS - - Copyright (c) 2015 Wenzel Jakob - - All rights reserved. Use of this source code is governed by a - BSD-style license that can be found in the LICENSE file. -*/ - -#pragma once - -#include "fwd.h" -#include -#include -#include -#include -#include -#include -#include -#include - - - -NAMESPACE_BEGIN(filesystem) - -/** - * \brief Simple class for manipulating paths on Linux/Windows/Mac OS - * - * This class is just a temporary workaround to avoid the heavy boost - * dependency until boost::filesystem is integrated into the standard template - * library at some point in the future. - */ -class path_impl { -public: - enum path_type { - windows_path = 0, - posix_path = 1, -#if defined(_WIN32) - native_path = windows_path -#else - native_path = posix_path -#endif - }; - - path_impl() : m_type( posix_path ), m_absolute( false ) {} - - path_impl(const path_impl &path) - : m_type(path.m_type), m_path(path.m_path), m_absolute(path.m_absolute) {} - - path_impl(path_impl &&path) - : m_type(path.m_type), m_path(std::move(path.m_path)), - m_absolute(path.m_absolute) {} - - path_impl(const char *string) { set(string); } - - path_impl(const std::string &string) { set(string); } - -#if defined(_WIN32) - path_impl(const std::wstring &wstring) { set(wstring); } - path_impl(const wchar_t *wstring) { set(wstring); } -#endif - - size_t length() const { return m_path.size(); } - - bool empty() const { return m_path.size() == 1 && m_path[ 0 ].empty(); } - - bool is_absolute() const { return m_absolute; } - - path_impl make_absolute() const; - - bool exists() const; - - size_t file_size() const; - - bool is_directory() const; - - bool is_file() const; - - std::string extension() const { - const std::string &name = filename(); - size_t pos = name.find_last_of("."); - if (pos == std::string::npos) - return ""; - - // Ignore special cases - if( name == "." || name == ".." || name[ 0 ] == '.' ) - return ""; - - return name.substr(pos); - } - - std::string filename() const { - if (empty()) - return ""; - const std::string &last = m_path[m_path.size()-1]; - return last; - } - - path_impl parent_path() const { - path_impl result; - result.m_absolute = m_absolute; - - if (m_path.empty()) { - if (!m_absolute) - result.m_path.push_back(".."); - } else { - size_t until = m_path.size() - 1; - for (size_t i = 0; i < until; ++i) - result.m_path.push_back(m_path[i]); - } - return result; - } - - path_impl operator/(const path_impl &other) const { - if (other.m_absolute) - throw std::runtime_error("path::operator/(): expected a relative path!"); - if (m_type != other.m_type) - throw std::runtime_error("path::operator/(): expected a path of the same type!"); - - path_impl result(*this); - - for (size_t i=0; i= 2 && std::isalpha(str[0]) && str[1] == ':'; - } else { - m_path = tokenize(str, "/"); - m_absolute = !str.empty() && str[0] == '/'; - } - } - - path_impl &operator=(const path_impl &path) { - m_type = path.m_type; - m_path = path.m_path; - m_absolute = path.m_absolute; - return *this; - } - - path_impl &operator=(path_impl &&path) { - if (this != &path) { - m_type = path.m_type; - m_path = std::move(path.m_path); - m_absolute = path.m_absolute; - } - return *this; - } - - friend std::ostream &operator<<(std::ostream &os, const path_impl &path) { - os << path.str(); - return os; - } - - bool remove_file(); - - bool resize_file( size_t target_length ); - - static path_impl getcwd(); - -#if defined(_WIN32) - std::wstring wstr( path_type type = posix_path ) const; - void set( const std::wstring& wstring, path_type type = posix_path ); - path_impl &operator=(const std::wstring &str) { set(str); return *this; } -#endif - - bool operator==(const path_impl &p) const { return p.m_path == m_path; } - bool operator!=(const path_impl &p) const { return p.m_path != m_path; } - -protected: - static std::vector tokenize(const std::string &string, const std::string &delim) - { - std::vector tokens; - - std::string::size_type lastPos = 0; - std::string::size_type pos = string.find_first_of( delim, lastPos ); - - // We need to avoid pushing empty token, because it will cause problems later - if( string.empty() ) - return tokens; - - while( lastPos != std::string::npos ) { - if( pos != lastPos ) - tokens.push_back( string.substr( lastPos, pos - lastPos ) ); - lastPos = pos; - if( lastPos == std::string::npos || lastPos + 1 == string.length() ) - break; - pos = string.find_first_of( delim, ++lastPos ); - } - - return tokens; - } - -protected: - std::vector m_path; - path_type m_type; - bool m_absolute; - - -public: - - /// Experimental - const std::vector< std::string >& get_tokens () const - { - return m_path; - } - - path_impl clip_from_root ( int num ) const - { - path_impl result; - result.m_absolute = num > 0 ? false : result.m_absolute; - result.m_type = m_type; - - for (size_t i = num; i < m_path.size(); ++i) - result.m_path.push_back(m_path[i]); - - return result; - } -}; - -bool create_directory( const path_impl& p ); - -NAMESPACE_END(filesystem) diff --git a/swCommonLib/System/Filesystem/filesystem/resolver.h b/swCommonLib/System/Filesystem/filesystem/resolver.h deleted file mode 100644 index e56897ca..00000000 --- a/swCommonLib/System/Filesystem/filesystem/resolver.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - resolver.h -- A simple class for cross-platform path resolution - - Copyright (c) 2015 Wenzel Jakob - - All rights reserved. Use of this source code is governed by a - BSD-style license that can be found in the LICENSE file. -*/ - -#pragma once - -#include "path.h" - -NAMESPACE_BEGIN(filesystem) - -/** - * \brief Simple class for resolving paths on Linux/Windows/Mac OS - * - * This convenience class looks for a file or directory given its name - * and a set of search paths. The implementation walks through the - * search paths in order and stops once the file is found. - */ -class resolver { -public: - typedef std::vector::iterator iterator; - typedef std::vector::const_iterator const_iterator; - - resolver() { - m_paths.push_back(path_impl::getcwd()); - } - - size_t size() const { return m_paths.size(); } - - iterator begin() { return m_paths.begin(); } - iterator end() { return m_paths.end(); } - - const_iterator begin() const { return m_paths.begin(); } - const_iterator end() const { return m_paths.end(); } - - void erase(iterator it) { m_paths.erase(it); } - - void prepend(const path_impl &path) { m_paths.insert(m_paths.begin(), path); } - void append(const path_impl &path) { m_paths.push_back(path); } - const path_impl &operator[](size_t index) const { return m_paths[index]; } - path_impl &operator[](size_t index) { return m_paths[index]; } - - path_impl resolve(const path_impl &value) const { - for (const_iterator it = m_paths.begin(); it != m_paths.end(); ++it) { - path_impl combined = *it / value; - if (combined.exists()) - return combined; - } - return value; - } - - friend std::ostream &operator<<(std::ostream &os, const resolver &r) { - os << "resolver[" << std::endl; - for (size_t i = 0; i < r.m_paths.size(); ++i) { - os << " \"" << r.m_paths[i] << "\""; - if (i + 1 < r.m_paths.size()) - os << ","; - os << std::endl; - } - os << "]"; - return os; - } - -private: - std::vector m_paths; -}; - -NAMESPACE_END(filesystem) diff --git a/swCommonLib/System/Filesystem/path_demo.cpp b/swCommonLib/System/Filesystem/path_demo.cpp deleted file mode 100644 index 266c661a..00000000 --- a/swCommonLib/System/Filesystem/path_demo.cpp +++ /dev/null @@ -1,48 +0,0 @@ -#include -#include "filesystem/path.h" -#include "filesystem/resolver.h" - -using namespace std; -using namespace filesystem; - -int main(int argc, char **argv) { -#if !defined(WIN32) - path path1("/dir 1/dir 2/"); -#else - path path1("C:\\dir 1\\dir 2\\"); -#endif - path path2("dir 3"); - - cout << path1.exists() << endl; - cout << path1 << endl; - cout << (path1/path2) << endl; - cout << (path1/path2).parent_path() << endl; - cout << (path1/path2).parent_path().parent_path() << endl; - cout << (path1/path2).parent_path().parent_path().parent_path() << endl; - cout << (path1/path2).parent_path().parent_path().parent_path().parent_path() << endl; - cout << path().parent_path() << endl; - cout << "some/path.ext:operator==() = " << (path("some/path.ext") == path("some/path.ext")) << endl; - cout << "some/path.ext:operator==() (unequal) = " << (path("some/path.ext") == path("another/path.ext")) << endl; - - cout << "nonexistant:exists = " << path("nonexistant").exists() << endl; - cout << "nonexistant:is_file = " << path("nonexistant").is_file() << endl; - cout << "nonexistant:is_directory = " << path("nonexistant").is_directory() << endl; - cout << "nonexistant:filename = " << path("nonexistant").filename() << endl; - cout << "nonexistant:extension = " << path("nonexistant").extension() << endl; - cout << "filesystem/path.h:exists = " << path("filesystem/path.h").exists() << endl; - cout << "filesystem/path.h:is_file = " << path("filesystem/path.h").is_file() << endl; - cout << "filesystem/path.h:is_directory = " << path("filesystem/path.h").is_directory() << endl; - cout << "filesystem/path.h:filename = " << path("filesystem/path.h").filename() << endl; - cout << "filesystem/path.h:extension = " << path("filesystem/path.h").extension() << endl; - cout << "filesystem/path.h:make_absolute = " << path("filesystem/path.h").make_absolute() << endl; - cout << "../filesystem:exists = " << path("../filesystem").exists() << endl; - cout << "../filesystem:is_file = " << path("../filesystem").is_file() << endl; - cout << "../filesystem:is_directory = " << path("../filesystem").is_directory() << endl; - cout << "../filesystem:extension = " << path("../filesystem").extension() << endl; - cout << "../filesystem:filename = " << path("../filesystem").filename() << endl; - cout << "../filesystem:make_absolute = " << path("../filesystem").make_absolute() << endl; - - cout << "resolve(filesystem/path.h) = " << resolver().resolve("filesystem/path.h") << endl; - cout << "resolve(nonexistant) = " << resolver().resolve("nonexistant") << endl; - return 0; -} From 878a3743a49b8e2f56520b3fd62b2f3db0eb1d81 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sat, 16 Nov 2024 14:26:33 +0100 Subject: [PATCH 78/96] Test FontPicker for incorrect files --- swGUI/GUI.sln | 3 +++ .../TestResources/fonts/incorrect.ttf | 0 swGraphicAPI/TestResources/fonts/not-font.txt | 0 .../Tests/TestText/TestFontPicker.cpp | 25 ++++++++++++++++++- 4 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 swGraphicAPI/TestResources/fonts/incorrect.ttf create mode 100644 swGraphicAPI/TestResources/fonts/not-font.txt diff --git a/swGUI/GUI.sln b/swGUI/GUI.sln index f4a22ae5..9c58487a 100644 --- a/swGUI/GUI.sln +++ b/swGUI/GUI.sln @@ -212,8 +212,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "hlsl", "hlsl", "{9C1F5085-2 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "fonts", "fonts", "{2CDA8A31-2F49-43B3-82CD-271BE83EC203}" ProjectSection(SolutionItems) = preProject + ..\swGraphicAPI\TestResources\fonts\arial.ttf = ..\swGraphicAPI\TestResources\fonts\arial.ttf ..\swGraphicAPI\TestResources\fonts\ELICEN.otf = ..\swGraphicAPI\TestResources\fonts\ELICEN.otf ..\swGraphicAPI\TestResources\fonts\ELICEN.ttf = ..\swGraphicAPI\TestResources\fonts\ELICEN.ttf + ..\swGraphicAPI\TestResources\fonts\incorrect.ttf = ..\swGraphicAPI\TestResources\fonts\incorrect.ttf + ..\swGraphicAPI\TestResources\fonts\not-font.txt = ..\swGraphicAPI\TestResources\fonts\not-font.txt EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestText", "..\swGraphicAPI\ProjectsDir\Visual2015\Tests\TestText\TestText.vcxproj", "{1F535690-1AB1-47EA-961B-183C4DCF46D3}" diff --git a/swGraphicAPI/TestResources/fonts/incorrect.ttf b/swGraphicAPI/TestResources/fonts/incorrect.ttf new file mode 100644 index 00000000..e69de29b diff --git a/swGraphicAPI/TestResources/fonts/not-font.txt b/swGraphicAPI/TestResources/fonts/not-font.txt new file mode 100644 index 00000000..e69de29b diff --git a/swGraphicAPI/Tests/TestText/TestFontPicker.cpp b/swGraphicAPI/Tests/TestText/TestFontPicker.cpp index 45c03525..cf3509d3 100644 --- a/swGraphicAPI/Tests/TestText/TestFontPicker.cpp +++ b/swGraphicAPI/Tests/TestText/TestFontPicker.cpp @@ -5,6 +5,7 @@ @copyright File is part of Sleeping Wombat Libraries. */ +#include #include "swCommonLib/Common/Converters/Convert.h" #include "swCommonLib\TestUtils\CatchUtils\ExtendedMacros.h" @@ -43,7 +44,7 @@ TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.Metadata", "[GraphicAPI][FontLoad } // ================================ // -// +// Test checks if FontPicker will be able to handle incorrect files in provided directories. TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.ListFonts", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) { auto rm = CreateResourceManagerWithFonts(); @@ -57,4 +58,26 @@ TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.ListFonts", "[GraphicAPI][FontLoa auto& files = list.Get(); CHECK( files.size() == 3 ); + + CHECK( std::find_if( files.begin(), files.end(), []( auto& file ) { return file.Metadata.Family == "Arial"; } ) + != files.end() ); + CHECK( std::find_if( files.begin(), files.end(), []( auto& file ) { return file.Metadata.Family == "ELICEN"; } ) + != files.end() ); +} + +// ================================ // +// +TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.Metadata.IncorrectFiles", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) +{ + auto rm = CreateResourceManagerWithFonts(); + auto api = ResourceManagerAPI( rm.get() ); + + FontPicker picker; + picker.RegisterSearchPath( "$(FontAssets)" ); + + auto meta = picker.FontMetadata( rm->GetPathsManager(), "$(FontAssets)/not-font.txt" ); + REQUIRE_INVALID( meta ); + + meta = picker.FontMetadata( rm->GetPathsManager(), "$(FontAssets)/incorrect.ttf" ); + REQUIRE_INVALID( meta ); } From 297fab4b0116e4d90f9e24fd5df8ba64956f3837 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sat, 16 Nov 2024 16:07:58 +0100 Subject: [PATCH 79/96] Parsing FontStyle string to extract enums --- .../Assets/TextAsset/Loader/FontPicker.cpp | 85 +++++++++++- .../Assets/TextAsset/Loader/FontPicker.h | 51 ++++++- .../Tests/TestText/TestFontPicker.cpp | 126 +++++++++++++++++- 3 files changed, 250 insertions(+), 12 deletions(-) diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp index f833ead9..d24b5eb2 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp @@ -9,19 +9,34 @@ #include "swCommonLib/System/Dir.h" #include "swGraphicAPI/Assets/TextAsset/Loader/FreeType.h" - #include "FontPicker.h" +#include + RTTR_REGISTRATION { rttr::registration::enumeration< sw::FontWeight >( "sw::FontWeight" )( + rttr::value( "Bold", sw::FontWeight::Bold ), + rttr::value( "DemiBold", sw::FontWeight::DemiBold ), + rttr::value( "SemiBold", sw::FontWeight::SemiBold ), rttr::value( "Light", sw::FontWeight::Light ), + rttr::value( "Medium", sw::FontWeight::Medium ), rttr::value( "Normal", sw::FontWeight::Normal ), - rttr::value( "UltraBold", sw::FontWeight::UltraBold ) ); + rttr::value( "Regular", sw::FontWeight::Regular ), + rttr::value( "Thin", sw::FontWeight::Thin ), + rttr::value( "Black", sw::FontWeight::Black ), + rttr::value( "Heavy", sw::FontWeight::Heavy ), + rttr::value( "ExtraBlack", sw::FontWeight::ExtraBlack ), + rttr::value( "UltraBlack", sw::FontWeight::UltraBlack ), + rttr::value( "ExtraBold", sw::FontWeight::ExtraBold ), + rttr::value( "UltraBold", sw::FontWeight::UltraBold ), + rttr::value( "ExtraLight", sw::FontWeight::ExtraLight ), + rttr::value( "UltraLight", sw::FontWeight::UltraLight ) ); rttr::registration::enumeration< sw::FontStyle >( "sw::FontStyle" )( rttr::value( "Normal", sw::FontStyle::Normal ), + rttr::value( "Oblique", sw::FontStyle::Oblique ), rttr::value( "Italic", sw::FontStyle::Italic ) ); } @@ -39,7 +54,16 @@ void FontPicker::RegisterSearchPath( const fs::Path& Nullable< FontSearchEntry > FontPicker::FindFontFile( PathsManager* pm, const std::string& fontFamily, FontWeight weight, FontStyle style ) const { - return Nullable< FontSearchEntry >(); + auto varaints = ListFontVariants( pm, fontFamily ); + ReturnIfInvalid( varaints ); + + for( auto& variant : varaints.Get() ) + { + if( variant.Weight == weight && variant.Style == style ) + return variant; + } + + return fmt::format( "Non of {} {} variants matches the chosen one.", varaints.Get().size(), fontFamily ); } // ================================ // @@ -67,7 +91,17 @@ Nullable< std::vector< FontSearchEntry > > FontPicker::ListFonts( PathsManager* Nullable< std::vector< FontSearchEntry > > FontPicker::ListFontVariants( PathsManager* pm, const std::string& fontFamily ) const { - return Nullable< std::vector< FontSearchEntry > >(); + auto allFonts = ListFonts( pm ); + ReturnIfInvalid( allFonts ); + + std::vector< FontSearchEntry > variants; + for( auto& font : allFonts.Get() ) + { + if( font.Metadata.Family == fontFamily ) + variants.push_back( font ); + } + + return variants; } // ================================ // @@ -81,13 +115,52 @@ Nullable< FontSearchEntry > FontPicker::FontMetadata( PathsManag ReturnIfInvalid( freeType.Get().CreateFace( loadPath, 3 ) ); auto meta = freeType.Get().Metadata(); + auto style = ParseFontStyle( meta.StyleName ); + auto weight = ParseFontWeight( meta.StyleName ); + return FontSearchEntry { meta, - meta.IsBold ? FontWeight::UltraBold : FontWeight::Normal, - meta.IsItalic ? FontStyle::Italic : FontStyle::Normal, + weight.IsValid() ? weight.Get() : FontWeight::Normal, + style.IsValid() ? style.Get() : FontStyle::Normal, loadPath }; } +// ================================ // +template< typename EnumType > +Nullable< EnumType > ExtractEnum( const std::string& styleName ) +{ + auto enumType = TypeID::get< EnumType >().get_enumeration(); + if( !enumType.is_valid() ) + return fmt::format( "Enum {} is not registered.", TypeID::get< EnumType >().get_name().to_string() ); + + std::vector< EnumType > candidates; + for( auto variant : enumType.get_names() ) + { + auto name = variant.to_string(); + if( styleName.find( name ) != std::string::npos ) + candidates.push_back( enumType.name_to_value( name ).get_value< EnumType >() ); + } + + if( candidates.empty() ) + return fmt::format( "No matching enum value for {}.", styleName ); + + return candidates[ 0 ]; +} + +// ================================ // + +Nullable< FontWeight > FontPicker::ParseFontWeight( const std::string& styleName ) +{ + return ExtractEnum< FontWeight >( styleName ); +} + +// ================================ // + +Nullable< FontStyle > FontPicker::ParseFontStyle( const std::string& styleName ) +{ + return ExtractEnum< FontStyle >( styleName ); +} + } // sw diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h index 609af33c..e447a422 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h @@ -10,27 +10,56 @@ #include "swGraphicAPI/ResourceManager/PathTranslators/PathsManager.h" #include +#include namespace sw { /**@brief Font style. +Not all types are supported by all fonts. + +@ref FontStyle::Condensed is additional variant that is not present in WPF. @ingroup Text*/ enum class FontStyle : u8 { Normal, Italic, - // Oblique + Oblique, + Condensed, }; /**@brief Font thickness. +Not all types are supported by all fonts. +Compatible with WPF types. @ingroup Text*/ enum class FontWeight : u8 { + Bold, + + DemiBold, + SemiBold, + Light, + + Medium, + Normal, + Regular, + + Thin, + + Black, + Heavy, + + ExtraBlack, + UltraBlack, + + ExtraBold, UltraBold, + + ExtraLight, + UltraLight }; /**@brief Structure storing Font metadata. @@ -88,8 +117,28 @@ class FontPicker Nullable< std::vector< FontSearchEntry > > ListFonts( PathsManager* pm ) const; Nullable< std::vector< FontSearchEntry > > ListFontVariants( PathsManager* pm, const std::string& fontFamily ) const; Nullable< FontSearchEntry > FontMetadata( PathsManager* pm, const fs::Path& path ) const; + +public: + static Nullable< FontWeight > ParseFontWeight( const std::string& styleName ); + static Nullable< FontStyle > ParseFontStyle( const std::string& styleName ); }; +// Formatting for Catch display +inline std::ostream& operator<<( std::ostream& stream, const FontStyle& value ) +{ + stream << Convert::ToString( value ); + return stream; +} + +inline std::ostream& operator<<( std::ostream& stream, const FontWeight& value ) +{ + stream << Convert::ToString( value ); + return stream; +} } // sw + +DEFINE_FMT_FORMATTER_ENUM( sw::FontWeight ); +DEFINE_FMT_FORMATTER_ENUM( sw::FontStyle ); + diff --git a/swGraphicAPI/Tests/TestText/TestFontPicker.cpp b/swGraphicAPI/Tests/TestText/TestFontPicker.cpp index cf3509d3..f2c7a416 100644 --- a/swGraphicAPI/Tests/TestText/TestFontPicker.cpp +++ b/swGraphicAPI/Tests/TestText/TestFontPicker.cpp @@ -22,7 +22,7 @@ using namespace sw; // ================================ // // -TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.Metadata", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) +TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.Metadata", "[GraphicAPI][FontLoader]" ) { auto rm = CreateResourceManagerWithFonts(); auto api = ResourceManagerAPI( rm.get() ); @@ -34,18 +34,18 @@ TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.Metadata", "[GraphicAPI][FontLoad REQUIRE_IS_VALID( meta ); CHECK( meta.Get().Metadata.Family == "Arial" ); CHECK( meta.Get().Style == FontStyle::Normal ); - CHECK( meta.Get().Weight == FontWeight::Normal ); + CHECK( meta.Get().Weight == FontWeight::Regular ); auto meta2 = picker.FontMetadata( rm->GetPathsManager(), "$(FontAssets)/ELICEN.ttf" ); REQUIRE( meta2.IsValid() ); CHECK( meta2.Get().Metadata.Family == "ELICEN" ); CHECK( meta2.Get().Style == FontStyle::Normal ); - CHECK( meta2.Get().Weight == FontWeight::Normal ); + CHECK( meta2.Get().Weight == FontWeight::Regular ); } // ================================ // // Test checks if FontPicker will be able to handle incorrect files in provided directories. -TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.ListFonts", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) +TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.ListFonts", "[GraphicAPI][FontLoader]" ) { auto rm = CreateResourceManagerWithFonts(); auto api = ResourceManagerAPI( rm.get() ); @@ -67,7 +67,7 @@ TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.ListFonts", "[GraphicAPI][FontLoa // ================================ // // -TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.Metadata.IncorrectFiles", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) +TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.Metadata.IncorrectFiles", "[GraphicAPI][FontLoader]" ) { auto rm = CreateResourceManagerWithFonts(); auto api = ResourceManagerAPI( rm.get() ); @@ -81,3 +81,119 @@ TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.Metadata.IncorrectFiles", "[Graph meta = picker.FontMetadata( rm->GetPathsManager(), "$(FontAssets)/incorrect.ttf" ); REQUIRE_INVALID( meta ); } + +// ================================ // +// +TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.ListFonts.MultiVariant", "[GraphicAPI][FontLoader]" ) +{ + auto rm = CreateResourceManagerWithFonts(); + auto api = ResourceManagerAPI( rm.get() ); + + FontPicker picker; + picker.RegisterSearchPath( "$(FontAssets)" ); + picker.RegisterSearchPath( "$(FontAssets)/multi-variant" ); + + auto list = picker.ListFonts( rm->GetPathsManager() ); + REQUIRE_IS_VALID( list ); + + auto& files = list.Get(); + CHECK( files.size() == 15 ); +} + +// ================================ // +// +TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.ParseStyle", "[GraphicAPI][FontLoader]" ) +{ + auto result = FontPicker::ParseFontStyle( "Regular" ); + REQUIRE_IS_VALID( result ); + CHECK( result.Get() == FontStyle::Normal ); + + result = FontPicker::ParseFontStyle( "Black Italic" ); + REQUIRE_IS_VALID( result ); + CHECK( result.Get() == FontStyle::Italic ); + + result = FontPicker::ParseFontStyle( "Black" ); + REQUIRE_IS_VALID( result ); + CHECK( result.Get() == FontStyle::Normal ); + + result = FontPicker::ParseFontStyle( "Bold Italic" ); + REQUIRE_IS_VALID( result ); + CHECK( result.Get() == FontStyle::Italic ); + + result = FontPicker::ParseFontStyle( "Bold" ); + REQUIRE_IS_VALID( result ); + CHECK( result.Get() == FontStyle::Normal ); + + result = FontPicker::ParseFontStyle( "ExtraLight" ); + REQUIRE_IS_VALID( result ); + CHECK( result.Get() == FontStyle::Normal ); + + result = FontPicker::ParseFontStyle( "Italic" ); + REQUIRE_IS_VALID( result ); + CHECK( result.Get() == FontStyle::Italic ); + + result = FontPicker::ParseFontStyle( "Light Italic" ); + REQUIRE_IS_VALID( result ); + CHECK( result.Get() == FontStyle::Italic ); + + result = FontPicker::ParseFontStyle( "Light" ); + REQUIRE_IS_VALID( result ); + CHECK( result.Get() == FontStyle::Normal ); + + result = FontPicker::ParseFontStyle( "Semibold Italic" ); + REQUIRE_IS_VALID( result ); + CHECK( result.Get() == FontStyle::Italic ); + + result = FontPicker::ParseFontStyle( "Semibold" ); + REQUIRE_IS_VALID( result ); + CHECK( result.Get() == FontStyle::Normal ); +} + +// ================================ // +// +TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.ParseWeight", "[GraphicAPI][FontLoader]" ) +{ + auto result = FontPicker::ParseFontWeight( "Regular" ); + REQUIRE_IS_VALID( result ); + CHECK( result.Get() == FontWeight::Normal ); + + result = FontPicker::ParseFontWeight( "Black Italic" ); + REQUIRE_IS_VALID( result ); + CHECK( result.Get() == FontWeight::Black ); + + result = FontPicker::ParseFontWeight( "Black" ); + REQUIRE_IS_VALID( result ); + CHECK( result.Get() == FontWeight::Black ); + + result = FontPicker::ParseFontWeight( "Bold Italic" ); + REQUIRE_IS_VALID( result ); + CHECK( result.Get() == FontWeight::Bold ); + + result = FontPicker::ParseFontWeight( "Bold" ); + REQUIRE_IS_VALID( result ); + CHECK( result.Get() == FontWeight::Bold ); + + result = FontPicker::ParseFontWeight( "ExtraLight" ); + REQUIRE_IS_VALID( result ); + CHECK( result.Get() == FontWeight::ExtraLight ); + + result = FontPicker::ParseFontWeight( "Italic" ); + REQUIRE_IS_VALID( result ); + CHECK( result.Get() == FontWeight::Normal ); + + result = FontPicker::ParseFontWeight( "Light Italic" ); + REQUIRE_IS_VALID( result ); + CHECK( result.Get() == FontWeight::Light ); + + result = FontPicker::ParseFontWeight( "Light" ); + REQUIRE_IS_VALID( result ); + CHECK( result.Get() == FontWeight::Light ); + + result = FontPicker::ParseFontWeight( "Semibold Italic" ); + REQUIRE_IS_VALID( result ); + CHECK( result.Get() == FontWeight::SemiBold ); + + result = FontPicker::ParseFontWeight( "Semibold" ); + REQUIRE_IS_VALID( result ); + CHECK( result.Get() == FontWeight::SemiBold ); +} From 92ec2ed41d8d47b2bc1cc838709b2fc30f28334f Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sat, 16 Nov 2024 23:54:07 +0100 Subject: [PATCH 80/96] Font weight and style picker --- swGUI/GUI.sln | 8 ++ .../Assets/TextAsset/Loader/FontLoader.cpp | 4 +- .../Assets/TextAsset/Loader/FontPicker.cpp | 63 +++++++++---- .../Assets/TextAsset/Loader/FontPicker.h | 83 +++++++++++------- .../Assets/TextAsset/Loader/FreeType.h | 17 +++- .../multi-variant/source-sans-pro.black.ttf | Bin 0 -> 118004 bytes .../source-sans-pro.extralight-italic.ttf | Bin 0 -> 120076 bytes .../source-sans-pro.semibold.ttf | Bin 0 -> 118804 bytes .../Tests/TestText/TestFontPicker.cpp | 20 +++-- 9 files changed, 137 insertions(+), 58 deletions(-) create mode 100644 swGraphicAPI/TestResources/fonts/multi-variant/source-sans-pro.black.ttf create mode 100644 swGraphicAPI/TestResources/fonts/multi-variant/source-sans-pro.extralight-italic.ttf create mode 100644 swGraphicAPI/TestResources/fonts/multi-variant/source-sans-pro.semibold.ttf diff --git a/swGUI/GUI.sln b/swGUI/GUI.sln index 9c58487a..6d8780c6 100644 --- a/swGUI/GUI.sln +++ b/swGUI/GUI.sln @@ -225,6 +225,13 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TextShowcase", "ProjectDir\ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestControls", "ProjectDir\Visual2015\Tests\TestControls\TestControls.vcxproj", "{68A29892-2C39-4068-AE0F-5021D29B8CE5}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "multi-variant", "multi-variant", "{E7B804D9-7066-4A74-8642-D2FD5FC01F80}" + ProjectSection(SolutionItems) = preProject + ..\swGraphicAPI\TestResources\fonts\multi-variant\source-sans-pro.black.ttf = ..\swGraphicAPI\TestResources\fonts\multi-variant\source-sans-pro.black.ttf + ..\swGraphicAPI\TestResources\fonts\multi-variant\source-sans-pro.extralight-italic.ttf = ..\swGraphicAPI\TestResources\fonts\multi-variant\source-sans-pro.extralight-italic.ttf + ..\swGraphicAPI\TestResources\fonts\multi-variant\source-sans-pro.semibold.ttf = ..\swGraphicAPI\TestResources\fonts\multi-variant\source-sans-pro.semibold.ttf + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 @@ -806,6 +813,7 @@ Global {1F535690-1AB1-47EA-961B-183C4DCF46D3} = {AD4FFF37-D748-47D4-AF31-78C2C7D87D42} {D5E21347-CDBD-4B7B-B7A6-C7F94DEE4913} = {BBD5CA36-CFDA-417A-94F4-80E738794723} {68A29892-2C39-4068-AE0F-5021D29B8CE5} = {CAC5582E-F5A0-42EA-85DE-325A7C0651D8} + {E7B804D9-7066-4A74-8642-D2FD5FC01F80} = {2CDA8A31-2F49-43B3-82CD-271BE83EC203} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {A341301D-630D-4C6A-B843-1A50FC78565A} diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp index b6ff03a3..7fe3be6a 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp @@ -315,9 +315,9 @@ void FreeTypeLibrary::RenderGlyph( const Glyph& glyph, Im // ================================ // -FontMetadata FreeTypeLibrary::Metadata() const +FTFontMetadata FreeTypeLibrary::Metadata() const { - return FontMetadata{ + return FTFontMetadata { this->Face->family_name, this->Face->style_name, bool( this->Face->style_flags & FT_STYLE_FLAG_ITALIC ), bool( this->Face->style_flags & FT_STYLE_FLAG_BOLD ) diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp index d24b5eb2..ce258d3f 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp @@ -59,7 +59,7 @@ Nullable< FontSearchEntry > FontPicker::FindFontFile( PathsManager* pm, cons for( auto& variant : varaints.Get() ) { - if( variant.Weight == weight && variant.Style == style ) + if( variant.Metadata.Weight == weight && variant.Metadata.Style == style ) return variant; } @@ -114,23 +114,32 @@ Nullable< FontSearchEntry > FontPicker::FontMetadata( PathsManag auto loadPath = LoadPath( AssetPath( path, "" ), pm ); ReturnIfInvalid( freeType.Get().CreateFace( loadPath, 3 ) ); - auto meta = freeType.Get().Metadata(); - auto style = ParseFontStyle( meta.StyleName ); - auto weight = ParseFontWeight( meta.StyleName ); + auto ftMeta = freeType.Get().Metadata(); + auto style = ParseFontStyle( ftMeta.StyleName ); + auto weight = ParseFontWeight( ftMeta.StyleName ); + + auto meta = ::sw::FontMetadata(); + meta.Family = std::move( ftMeta.Family ); + meta.StyleName = std::move( ftMeta.StyleName ); + meta.Weight = weight.IsValid() ? weight.Get() : FontWeight::Normal; + meta.Style = style.IsValid() ? style.Get() : FontStyle::Normal; return FontSearchEntry { meta, - weight.IsValid() ? weight.Get() : FontWeight::Normal, - style.IsValid() ? style.Get() : FontStyle::Normal, loadPath }; } // ================================ // + template< typename EnumType > -Nullable< EnumType > ExtractEnum( const std::string& styleName ) +Nullable< std::vector< EnumType > > ExtractEnum( const std::string& styleName ) { + std::string style = styleName; + for( auto& c : style ) + c = std::tolower( c ); + auto enumType = TypeID::get< EnumType >().get_enumeration(); if( !enumType.is_valid() ) return fmt::format( "Enum {} is not registered.", TypeID::get< EnumType >().get_name().to_string() ); @@ -139,28 +148,52 @@ Nullable< EnumType > ExtractEnum( const std::string& styleName ) for( auto variant : enumType.get_names() ) { auto name = variant.to_string(); - if( styleName.find( name ) != std::string::npos ) - candidates.push_back( enumType.name_to_value( name ).get_value< EnumType >() ); - } + for( auto& c : name ) + c = std::tolower( c ); - if( candidates.empty() ) - return fmt::format( "No matching enum value for {}.", styleName ); + if( style.find( name ) != std::string::npos ) + candidates.push_back( enumType.name_to_value( variant ).get_value< EnumType >() ); + } - return candidates[ 0 ]; + return candidates; } // ================================ // Nullable< FontWeight > FontPicker::ParseFontWeight( const std::string& styleName ) { - return ExtractEnum< FontWeight >( styleName ); + auto candidates = ExtractEnum< FontWeight >( styleName ); + ReturnIfInvalid( candidates ); + + switch( candidates.Get().size() ) + { + case 0: + return FontWeight::Normal; + case 1: + return candidates.Get().front(); + default: + std::sort( candidates.Get().begin(), candidates.Get().end() ); + return candidates.Get().back(); + } } // ================================ // Nullable< FontStyle > FontPicker::ParseFontStyle( const std::string& styleName ) { - return ExtractEnum< FontStyle >( styleName ); + auto candidates = ExtractEnum< FontStyle >( styleName ); + ReturnIfInvalid( candidates ); + + switch( candidates.Get().size() ) + { + case 0: + return FontStyle::Normal; + case 1: + return candidates.Get().front(); + default: + std::sort( candidates.Get().begin(), candidates.Get().end() ); + return candidates.Get().back(); + } } } // sw diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h index e447a422..5957e6ac 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h @@ -23,10 +23,10 @@ Not all types are supported by all fonts. @ingroup Text*/ enum class FontStyle : u8 { - Normal, - Italic, - Oblique, - Condensed, + Normal = 0, + Italic = 3, + Oblique = 1, + Condensed = 2, }; /**@brief Font thickness. @@ -35,57 +35,60 @@ Compatible with WPF types. @ingroup Text*/ enum class FontWeight : u8 { - Bold, + // u8 representation reflects order of precendens when chosing which weight to use. + Thin = 1, - DemiBold, - SemiBold, - - Light, - - Medium, + Light = 2, - Normal, - Regular, - - Thin, + // ExtraLight and UltraLight are eqivalent. + ExtraLight = 3, + UltraLight = 4, - Black, - Heavy, + // Normal and Regular are eqivalent. + Normal = 5, + Regular = 6, - ExtraBlack, - UltraBlack, + Medium = 7, - ExtraBold, - UltraBold, + Bold = 8, - ExtraLight, - UltraLight + // DemiBold and SemiBold are eqivalent. + DemiBold = 9, + SemiBold = 10, + + // Black and Heavy are eqivalent. + Black = 11, + Heavy = 12, + + // ExtraBlack and UltraBlack are eqivalent. + ExtraBlack = 13, + UltraBlack = 14, + + // ExtraBold and UltraBold are eqivalent. + ExtraBold = 15, + UltraBold = 16 }; /**@brief Structure storing Font metadata. + +Weight and Style are extracted from StyleName, which can contain more details about style +than enums can represent. The closest match is chosen. @ingroup Text*/ struct FontMetadata { std::string Family; std::string StyleName; //< String name of the style retrieved from font metadata. - /**@brief Indicates that Font is italic. Note that StyleName can contain more details about style.*/ - bool IsItalic; - /**@brief Indicates that Font is bold. Note that StyleName can contain more details about different - styles of bold. Those 3 fields should be mapped to @ref FontWeight and @ref FontStyle enums.*/ - bool IsBold; + FontWeight Weight; + FontStyle Style; }; /**@brief Data structure returned by @ref FontPicker. @ingroup Text*/ struct FontSearchEntry { - FontMetadata Metadata; - - FontWeight Weight; - FontStyle Style; - - LoadPath Path; + FontMetadata Metadata; + LoadPath Path; }; @@ -137,6 +140,18 @@ inline std::ostream& operator<<( std::ostream& stream, const FontWeight& value ) return stream; } +/**@brief Sorting helps determine which version should be chosen if there are multiple candidates.*/ +inline bool operator>( const FontWeight& left, const FontWeight& right ) +{ + return static_cast< u8 >( left ) > static_cast< u8 >( right ); +} + +/**@brief Sorting helps determine which version should be chosen if there are multiple candidates.*/ +inline bool operator>( const FontStyle& left, const FontStyle& right ) +{ + return static_cast< u8 >( left ) > static_cast< u8 >( right ); +} + } // sw DEFINE_FMT_FORMATTER_ENUM( sw::FontWeight ); diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h b/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h index 1714ab9c..151e2fe6 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h @@ -28,6 +28,21 @@ static const char* ftErrorString( FT_Error error ) namespace sw { +/**@brief Structure storing Font metadata. +@ingroup Text*/ +struct FTFontMetadata +{ + std::string Family; + std::string StyleName; //< String name of the style retrieved from font metadata. + + /**@brief Indicates that Font is italic. Note that StyleName can contain more details about style.*/ + bool IsItalic; + /**@brief Indicates that Font is bold. Note that StyleName can contain more details about different + styles of bold. Those 3 fields should be mapped to @ref FontWeight and @ref FontStyle enums.*/ + bool IsBold; +}; + + /**FT_Library object is not multithreaded, so the new one must be created for each new loading operation. This class serves as RAII guard to free resources after loading is done.*/ class FreeTypeLibrary @@ -51,7 +66,7 @@ class FreeTypeLibrary /**Renders Glyph to bitmap in selected rectangle.*/ void RenderGlyph ( const Glyph& glyph, ImageRegion< u32 >& image ) const; - FontMetadata Metadata() const; + FTFontMetadata Metadata() const; }; diff --git a/swGraphicAPI/TestResources/fonts/multi-variant/source-sans-pro.black.ttf b/swGraphicAPI/TestResources/fonts/multi-variant/source-sans-pro.black.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f3730088aca83280834bc4c11ab315b7f507b221 GIT binary patch literal 118004 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 Q_s>?kN|v9^e#|ic4>LOG761SM literal 0 HcmV?d00001 diff --git a/swGraphicAPI/TestResources/fonts/multi-variant/source-sans-pro.extralight-italic.ttf b/swGraphicAPI/TestResources/fonts/multi-variant/source-sans-pro.extralight-italic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7dc8c027886d9b45161501268c6e38a91593bdd5 GIT binary patch literal 120076 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 literal 0 HcmV?d00001 diff --git a/swGraphicAPI/TestResources/fonts/multi-variant/source-sans-pro.semibold.ttf b/swGraphicAPI/TestResources/fonts/multi-variant/source-sans-pro.semibold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..6562cbb2a71543791b613b821dc12c08010d4e35 GIT binary patch literal 118804 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 literal 0 HcmV?d00001 diff --git a/swGraphicAPI/Tests/TestText/TestFontPicker.cpp b/swGraphicAPI/Tests/TestText/TestFontPicker.cpp index f2c7a416..7b15b78c 100644 --- a/swGraphicAPI/Tests/TestText/TestFontPicker.cpp +++ b/swGraphicAPI/Tests/TestText/TestFontPicker.cpp @@ -33,14 +33,14 @@ TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.Metadata", "[GraphicAPI][FontLoad auto meta = picker.FontMetadata( rm->GetPathsManager(), "$(FontAssets)/arial.ttf" ); REQUIRE_IS_VALID( meta ); CHECK( meta.Get().Metadata.Family == "Arial" ); - CHECK( meta.Get().Style == FontStyle::Normal ); - CHECK( meta.Get().Weight == FontWeight::Regular ); + CHECK( meta.Get().Metadata.Style == FontStyle::Normal ); + CHECK( meta.Get().Metadata.Weight == FontWeight::Regular ); auto meta2 = picker.FontMetadata( rm->GetPathsManager(), "$(FontAssets)/ELICEN.ttf" ); REQUIRE( meta2.IsValid() ); CHECK( meta2.Get().Metadata.Family == "ELICEN" ); - CHECK( meta2.Get().Style == FontStyle::Normal ); - CHECK( meta2.Get().Weight == FontWeight::Regular ); + CHECK( meta2.Get().Metadata.Style == FontStyle::Normal ); + CHECK( meta2.Get().Metadata.Weight == FontWeight::Regular ); } // ================================ // @@ -97,7 +97,7 @@ TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.ListFonts.MultiVariant", "[Graphi REQUIRE_IS_VALID( list ); auto& files = list.Get(); - CHECK( files.size() == 15 ); + CHECK( files.size() == 6 ); } // ================================ // @@ -147,6 +147,14 @@ TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.ParseStyle", "[GraphicAPI][FontLo result = FontPicker::ParseFontStyle( "Semibold" ); REQUIRE_IS_VALID( result ); CHECK( result.Get() == FontStyle::Normal ); + + result = FontPicker::ParseFontStyle( "Condensed Bold" ); + REQUIRE_IS_VALID( result ); + CHECK( result.Get() == FontStyle::Normal ); + + result = FontPicker::ParseFontStyle( "Condensed Bold Italic" ); + REQUIRE_IS_VALID( result ); + CHECK( result.Get() == FontStyle::Italic ); } // ================================ // @@ -155,7 +163,7 @@ TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.ParseWeight", "[GraphicAPI][FontL { auto result = FontPicker::ParseFontWeight( "Regular" ); REQUIRE_IS_VALID( result ); - CHECK( result.Get() == FontWeight::Normal ); + CHECK( result.Get() == FontWeight::Regular ); result = FontPicker::ParseFontWeight( "Black Italic" ); REQUIRE_IS_VALID( result ); From 8da9a839cb4cb2f8d14f3b8bdb31227813884bb8 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sun, 17 Nov 2024 00:10:08 +0100 Subject: [PATCH 81/96] FontAsset keeps metadata --- swGraphicAPI/Assets/TextAsset/FontAsset.cpp | 3 +- swGraphicAPI/Assets/TextAsset/FontAsset.h | 5 ++- .../TextAsset/Loader/FontAssetInitData.h | 2 ++ .../Assets/TextAsset/Loader/FontLoader.cpp | 1 + .../Assets/TextAsset/Loader/FontPicker.cpp | 36 +++++++++++++------ .../Assets/TextAsset/Loader/FontPicker.h | 8 +++-- .../Tests/TestText/TestFontPicker.cpp | 8 ++--- 7 files changed, 44 insertions(+), 19 deletions(-) diff --git a/swGraphicAPI/Assets/TextAsset/FontAsset.cpp b/swGraphicAPI/Assets/TextAsset/FontAsset.cpp index caf81ef9..910b4d6a 100644 --- a/swGraphicAPI/Assets/TextAsset/FontAsset.cpp +++ b/swGraphicAPI/Assets/TextAsset/FontAsset.cpp @@ -12,7 +12,8 @@ RTTR_REGISTRATION { rttr::registration::class_< sw::FontAsset >( "sw::FontAsset" ) - .property( "FontSize", &sw::FontAsset::m_fontSize ); + .property( "FontSize", &sw::FontAsset::m_fontSize ) + .property( "Metadata", &sw::FontAsset::m_metadata ) BIND_AS_REF; } namespace sw diff --git a/swGraphicAPI/Assets/TextAsset/FontAsset.h b/swGraphicAPI/Assets/TextAsset/FontAsset.h index 433cec64..3aec3868 100644 --- a/swGraphicAPI/Assets/TextAsset/FontAsset.h +++ b/swGraphicAPI/Assets/TextAsset/FontAsset.h @@ -10,6 +10,7 @@ #include "swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h" #include "swGraphicAPI/Assets/TextAsset/Loader/Glyph.h" +#include "swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h" namespace sw @@ -36,7 +37,8 @@ class FontAsset : public Resource protected: TexturePtr m_fontAtlas; - uint32 m_fontSize; + FontSizeType m_fontSize; + FontMetadata m_metadata; FontLayout m_layout; @@ -49,6 +51,7 @@ class FontAsset : public Resource const Glyph& GetGlyph ( wchar_t character ) const; float GetKerning ( wchar_t first, wchar_t second ) const; const FontLayout& GetLayout () const { return m_layout; } + const FontMetadata& GetMetadata () const { return m_metadata; } const TexturePtr& GetFontAtlas () const { return m_fontAtlas; } private: diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h index 72b82d8b..0a6f3d06 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h @@ -15,6 +15,7 @@ #include "swGraphicAPI/ResourceManager/Loaders/IAssetLoadInfo.h" #include "swGraphicAPI/Assets/TextAsset/Loader/Glyph.h" +#include "swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h" namespace sw { @@ -68,6 +69,7 @@ struct FontInitData : public IAssetCreateInfo TexturePtr FontAtlas; FontSizeType FontSize; + FontMetadata Metadata; FontLayout Layout; diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp index 7fe3be6a..66eeb13a 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp @@ -111,6 +111,7 @@ LoadingResult FreeTypeLoader::Load( const LoadPath& filePath, TypeID resou fontDesc.Layout.Glyphs = BuildGlyphs( freeType.Get(), loadInfo->CharacterSet ).Get(); fontDesc.Layout.Kerning = BuildKerning( freeType.Get(), loadInfo->CharacterSet ).Get(); fontDesc.FontAtlas = RenderAtlas( freeType, atlasPath, fontDesc.Layout, context ).Get(); + fontDesc.Metadata = FontPicker::QueryMetadata( freeType ); auto result = context.CreateGenericAsset( fontAssetPath, loadInfo->GetAssetType(), std::move( fontDesc ) ); return LoadingResult( result.Get() ); diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp index ce258d3f..d09442b4 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp @@ -38,6 +38,12 @@ RTTR_REGISTRATION rttr::value( "Normal", sw::FontStyle::Normal ), rttr::value( "Oblique", sw::FontStyle::Oblique ), rttr::value( "Italic", sw::FontStyle::Italic ) ); + + rttr::registration::class_< sw::FontMetadata >( "sw::FontMetadata" ) + .property( "Family", &sw::FontMetadata::Family ) + .property( "StyleName", &sw::FontMetadata::StyleName ) + .property( "Style", &sw::FontMetadata::Style ) + .property( "Weight", &sw::FontMetadata::Weight ); } namespace sw @@ -78,7 +84,7 @@ Nullable< std::vector< FontSearchEntry > > FontPicker::ListFonts( PathsManager* auto files = fs::Dir::ListFiles( dir ); for( auto& file : files ) { - auto meta = FontMetadata( pm, file ); + auto meta = GetFontMetadata( pm, file ); if( meta.IsValid() ) entries.push_back( meta.Get() ); } @@ -106,7 +112,7 @@ Nullable< std::vector< FontSearchEntry > > FontPicker::ListFontVariants( PathsM // ================================ // -Nullable< FontSearchEntry > FontPicker::FontMetadata( PathsManager* pm, const fs::Path& path ) const +Nullable< FontSearchEntry > FontPicker::GetFontMetadata( PathsManager* pm, const fs::Path& path ) const { auto freeType = FreeTypeLibrary::Create(); ReturnIfInvalid( freeType ); @@ -114,21 +120,31 @@ Nullable< FontSearchEntry > FontPicker::FontMetadata( PathsManag auto loadPath = LoadPath( AssetPath( path, "" ), pm ); ReturnIfInvalid( freeType.Get().CreateFace( loadPath, 3 ) ); - auto ftMeta = freeType.Get().Metadata(); + auto meta = QueryMetadata( freeType.Get() ); + + return FontSearchEntry + { + meta, + loadPath + }; +} + +// ================================ // + +FontMetadata FontPicker::QueryMetadata( FreeTypeLibrary& freeType ) +{ + auto ftMeta = freeType.Metadata(); + auto style = ParseFontStyle( ftMeta.StyleName ); auto weight = ParseFontWeight( ftMeta.StyleName ); auto meta = ::sw::FontMetadata(); meta.Family = std::move( ftMeta.Family ); meta.StyleName = std::move( ftMeta.StyleName ); - meta.Weight = weight.IsValid() ? weight.Get() : FontWeight::Normal; - meta.Style = style.IsValid() ? style.Get() : FontStyle::Normal; + meta.Weight = weight.IsValid() ? weight.Get() : ftMeta.IsBold ? FontWeight::Bold : FontWeight::Normal; + meta.Style = style.IsValid() ? style.Get() : ftMeta.IsItalic ? FontStyle::Italic : FontStyle::Normal; - return FontSearchEntry - { - meta, - loadPath - }; + return meta; } // ================================ // diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h index 5957e6ac..35335d1e 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h @@ -91,6 +91,7 @@ struct FontSearchEntry LoadPath Path; }; +class FreeTypeLibrary; /**@brief Finds @ref Font file that fits best to given parameters. @@ -119,11 +120,12 @@ class FontPicker Nullable< FontSearchEntry > FindFontFile( PathsManager* pm, const std::string& fontFamily, FontWeight weight, FontStyle style ) const; Nullable< std::vector< FontSearchEntry > > ListFonts( PathsManager* pm ) const; Nullable< std::vector< FontSearchEntry > > ListFontVariants( PathsManager* pm, const std::string& fontFamily ) const; - Nullable< FontSearchEntry > FontMetadata( PathsManager* pm, const fs::Path& path ) const; + Nullable< FontSearchEntry > GetFontMetadata( PathsManager* pm, const fs::Path& path ) const; public: - static Nullable< FontWeight > ParseFontWeight( const std::string& styleName ); - static Nullable< FontStyle > ParseFontStyle( const std::string& styleName ); + static Nullable< FontWeight > ParseFontWeight( const std::string& styleName ); + static Nullable< FontStyle > ParseFontStyle( const std::string& styleName ); + static FontMetadata QueryMetadata( FreeTypeLibrary& freeType ); }; diff --git a/swGraphicAPI/Tests/TestText/TestFontPicker.cpp b/swGraphicAPI/Tests/TestText/TestFontPicker.cpp index 7b15b78c..0aa25834 100644 --- a/swGraphicAPI/Tests/TestText/TestFontPicker.cpp +++ b/swGraphicAPI/Tests/TestText/TestFontPicker.cpp @@ -30,13 +30,13 @@ TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.Metadata", "[GraphicAPI][FontLoad FontPicker picker; picker.RegisterSearchPath( "$(FontAssets)" ); - auto meta = picker.FontMetadata( rm->GetPathsManager(), "$(FontAssets)/arial.ttf" ); + auto meta = picker.GetFontMetadata( rm->GetPathsManager(), "$(FontAssets)/arial.ttf" ); REQUIRE_IS_VALID( meta ); CHECK( meta.Get().Metadata.Family == "Arial" ); CHECK( meta.Get().Metadata.Style == FontStyle::Normal ); CHECK( meta.Get().Metadata.Weight == FontWeight::Regular ); - auto meta2 = picker.FontMetadata( rm->GetPathsManager(), "$(FontAssets)/ELICEN.ttf" ); + auto meta2 = picker.GetFontMetadata( rm->GetPathsManager(), "$(FontAssets)/ELICEN.ttf" ); REQUIRE( meta2.IsValid() ); CHECK( meta2.Get().Metadata.Family == "ELICEN" ); CHECK( meta2.Get().Metadata.Style == FontStyle::Normal ); @@ -75,10 +75,10 @@ TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.Metadata.IncorrectFiles", "[Graph FontPicker picker; picker.RegisterSearchPath( "$(FontAssets)" ); - auto meta = picker.FontMetadata( rm->GetPathsManager(), "$(FontAssets)/not-font.txt" ); + auto meta = picker.GetFontMetadata( rm->GetPathsManager(), "$(FontAssets)/not-font.txt" ); REQUIRE_INVALID( meta ); - meta = picker.FontMetadata( rm->GetPathsManager(), "$(FontAssets)/incorrect.ttf" ); + meta = picker.GetFontMetadata( rm->GetPathsManager(), "$(FontAssets)/incorrect.ttf" ); REQUIRE_INVALID( meta ); } From d55a84b7fdc325f4a1c34a6366e66a1f5513f699 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sun, 17 Nov 2024 00:46:20 +0100 Subject: [PATCH 82/96] Test chosing proper closest Font --- .../Assets/TextAsset/Loader/FontPicker.cpp | 87 ++++++++++++++++++- .../Assets/TextAsset/Loader/FontPicker.h | 8 +- .../Tests/TestText/TestFontPicker.cpp | 41 +++++++++ 3 files changed, 132 insertions(+), 4 deletions(-) diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp index d09442b4..36ab7ce5 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp @@ -57,19 +57,40 @@ void FontPicker::RegisterSearchPath( const fs::Path& // ================================ // -Nullable< FontSearchEntry > FontPicker::FindFontFile( PathsManager* pm, const std::string& fontFamily, - FontWeight weight, FontStyle style ) const +Nullable< FontSearchEntry > FontPicker::ChooseFontFile( PathsManager* pm, const std::string& fontFamily, + FontWeight weight, FontStyle style, bool exact ) const { auto varaints = ListFontVariants( pm, fontFamily ); ReturnIfInvalid( varaints ); + std::map< FontSearchEntry*, std::pair< u16, u16 > > metric; + for( auto& variant : varaints.Get() ) { if( variant.Metadata.Weight == weight && variant.Metadata.Style == style ) return variant; + + metric[ &variant ] = + std::make_pair( ClosenessMetric( variant.Metadata.Weight ), ClosenessMetric( variant.Metadata.Style ) ); } - return fmt::format( "Non of {} {} variants matches the chosen one.", varaints.Get().size(), fontFamily ); + if( exact ) + return fmt::format( "Non of {} {} variants matches the chosen one.", varaints.Get().size(), fontFamily ); + + auto expected = std::make_pair( ClosenessMetric( weight ), ClosenessMetric( style ) ); + auto closestMatch = + std::min_element( metric.begin(), metric.end(), + [ &expected ]( const std::pair< FontSearchEntry*, std::pair< u16, u16 > >& left, + const std::pair< FontSearchEntry*, std::pair< u16, u16 > >& right ) + { + auto leftDist = std::abs( left.second.first - expected.first ) + + std::abs( left.second.second - expected.second ); + auto rightDist = std::abs( right.second.first - expected.first ) + + std::abs( right.second.second - expected.second ); + + return leftDist < rightDist; + } ); + return *(closestMatch->first); } // ================================ // @@ -149,6 +170,66 @@ FontMetadata FontPicker::QueryMetadata( FreeTypeLibra // ================================ // +u16 FontPicker::ClosenessMetric( FontWeight value ) +{ + // Values represent thicness of the Font according to: https://en.wikipedia.org/wiki/Font + // The assumption is: the closer the thickness, the better the match. + switch( value ) + { + case sw::FontWeight::Thin: + return 100; + case sw::FontWeight::ExtraLight: + case sw::FontWeight::UltraLight: + return 200; + case sw::FontWeight::Light: + return 300; + case sw::FontWeight::Normal: + case sw::FontWeight::Regular: + return 400; + case sw::FontWeight::Medium: + return 500; + case sw::FontWeight::DemiBold: + case sw::FontWeight::SemiBold: + return 600; + case sw::FontWeight::Bold: + return 700; + case sw::FontWeight::ExtraBold: + case sw::FontWeight::UltraBold: + return 800; + case sw::FontWeight::Black: + case sw::FontWeight::Heavy: + return 900; + case sw::FontWeight::ExtraBlack: + case sw::FontWeight::UltraBlack: + return 950; + default: + return (u16)60000; + } +} + +// ================================ // + +u16 FontPicker::ClosenessMetric( FontStyle value ) +{ + // Note: those are rather arbitrary numbers. + // Oblique is should be very close to Italic, but far away from Normal and Condensed. + switch( value ) + { + case sw::FontStyle::Normal: + return 100; + case sw::FontStyle::Oblique: + return 350; + case sw::FontStyle::Italic: + return 300; + case sw::FontStyle::Condensed: + return 900; + default: + return 60000; + } +} + +// ================================ // + template< typename EnumType > Nullable< std::vector< EnumType > > ExtractEnum( const std::string& styleName ) { diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h index 35335d1e..6288a3b0 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h @@ -117,7 +117,10 @@ class FontPicker void RegisterSearchPath( const fs::Path& path ); public: - Nullable< FontSearchEntry > FindFontFile( PathsManager* pm, const std::string& fontFamily, FontWeight weight, FontStyle style ) const; + /**@brief Finds Font file that meets the criteria. + @param exact If flag is enabled, the exact Font in the family will be chosen even if none meets the criteria. + Otherwise the closest file is chosen.*/ + Nullable< FontSearchEntry > ChooseFontFile( PathsManager* pm, const std::string& fontFamily, FontWeight weight, FontStyle style, bool exact ) const; Nullable< std::vector< FontSearchEntry > > ListFonts( PathsManager* pm ) const; Nullable< std::vector< FontSearchEntry > > ListFontVariants( PathsManager* pm, const std::string& fontFamily ) const; Nullable< FontSearchEntry > GetFontMetadata( PathsManager* pm, const fs::Path& path ) const; @@ -126,6 +129,9 @@ class FontPicker static Nullable< FontWeight > ParseFontWeight( const std::string& styleName ); static Nullable< FontStyle > ParseFontStyle( const std::string& styleName ); static FontMetadata QueryMetadata( FreeTypeLibrary& freeType ); + + static u16 ClosenessMetric( FontWeight value ); + static u16 ClosenessMetric( FontStyle value ); }; diff --git a/swGraphicAPI/Tests/TestText/TestFontPicker.cpp b/swGraphicAPI/Tests/TestText/TestFontPicker.cpp index 0aa25834..7340c9cf 100644 --- a/swGraphicAPI/Tests/TestText/TestFontPicker.cpp +++ b/swGraphicAPI/Tests/TestText/TestFontPicker.cpp @@ -100,6 +100,47 @@ TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.ListFonts.MultiVariant", "[Graphi CHECK( files.size() == 6 ); } +// ================================ // +// +TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.ChooseFont", "[GraphicAPI][FontLoader]" ) +{ + auto rm = CreateResourceManagerWithFonts(); + auto api = ResourceManagerAPI( rm.get() ); + + FontPicker picker; + picker.RegisterSearchPath( "$(FontAssets)" ); + picker.RegisterSearchPath( "$(FontAssets)/multi-variant" ); + + auto chosen = picker.ChooseFontFile( rm->GetPathsManager(), "Source Sans Pro", FontWeight::Black, FontStyle::Normal, true ); + REQUIRE_IS_VALID( chosen ); + CHECK( chosen.Get().Metadata.Family == "Source Sans Pro" ); + CHECK( chosen.Get().Metadata.Weight == FontWeight::Black ); + CHECK( chosen.Get().Metadata.Style == FontStyle::Normal ); + + chosen = picker.ChooseFontFile( rm->GetPathsManager(), "Source Sans Pro", FontWeight::Light, FontStyle::Italic, true ); + REQUIRE_INVALID( chosen ); + + chosen = picker.ChooseFontFile( rm->GetPathsManager(), "Source Sans Pro", FontWeight::Light, FontStyle::Italic, false ); + REQUIRE_IS_VALID( chosen ); + CHECK( chosen.Get().Metadata.Weight == FontWeight::ExtraLight ); + CHECK( chosen.Get().Metadata.Style == FontStyle::Italic ); + + chosen = picker.ChooseFontFile( rm->GetPathsManager(), "Source Sans Pro", FontWeight::SemiBold, FontStyle::Italic, false ); + REQUIRE_IS_VALID( chosen ); + CHECK( chosen.Get().Metadata.Weight == FontWeight::SemiBold ); + CHECK( chosen.Get().Metadata.Style == FontStyle::Normal ); + + chosen = picker.ChooseFontFile( rm->GetPathsManager(), "Source Sans Pro", FontWeight::Black, FontStyle::Italic, false ); + REQUIRE_IS_VALID( chosen ); + CHECK( chosen.Get().Metadata.Weight == FontWeight::Black ); + CHECK( chosen.Get().Metadata.Style == FontStyle::Normal ); + + chosen = picker.ChooseFontFile( rm->GetPathsManager(), "Source Sans Pro", FontWeight::Normal, FontStyle::Italic, false ); + REQUIRE_IS_VALID( chosen ); + CHECK( chosen.Get().Metadata.Weight == FontWeight::ExtraLight ); + CHECK( chosen.Get().Metadata.Style == FontStyle::Italic ); +} + // ================================ // // TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.ParseStyle", "[GraphicAPI][FontLoader]" ) From bd64fe42d46c8156de7ee39f712bf1872c672f81 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sun, 17 Nov 2024 01:17:24 +0100 Subject: [PATCH 83/96] Register System font path in GUI; Use FontPicker in TextBlock --- swGUI/Core/Controls/TextualControls/TextBlock.cpp | 13 +++++++++++-- swGUI/Core/System/GUISystem.cpp | 1 + swGUI/Native/INativeOS.h | 2 +- swGUI/Native/MockNativeGUI/MockOS.cpp | 8 ++++++++ swGUI/Native/MockNativeGUI/MockOS.h | 2 +- swGUI/Native/WinAPI/WindowsOS.cpp | 10 ++++++++++ swGUI/Native/WinAPI/WindowsOS.h | 2 +- swGraphicAPI/Assets/TextAsset/FontAsset.cpp | 1 + swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp | 12 ++++++++---- swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h | 1 + swGraphicAPI/ResourceManager/ResourceManagerAPI.cpp | 7 +++++++ swGraphicAPI/ResourceManager/ResourceManagerAPI.h | 2 ++ 12 files changed, 52 insertions(+), 9 deletions(-) diff --git a/swGUI/Core/Controls/TextualControls/TextBlock.cpp b/swGUI/Core/Controls/TextualControls/TextBlock.cpp index aa444677..d40b463a 100644 --- a/swGUI/Core/Controls/TextualControls/TextBlock.cpp +++ b/swGUI/Core/Controls/TextualControls/TextBlock.cpp @@ -8,6 +8,8 @@ #include "TextBlock.h" #include "swGraphicAPI/ResourceManager/ResourceManagerAPI.h" +#include "swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h" + #include "swGUI/Core/System/Rendering/Shading/ShaderProvider.h" #include "swGUI/Core/System/Rendering/Drawings/TextDrawing.h" @@ -64,9 +66,16 @@ ReturnResult TextBlock::UpdateDrawingResources( ResourceManagerAPI& api ) { if( FontNeedsUpdate() ) { - // TODO: take FontWeight and FontStyle into account + FontPicker picker; + picker.RegisterSearchPath( "$(Application-Dir)" ); + picker.RegisterSearchPath( "$(SystemFonts)" ); + + auto chosen = picker.ChooseFontFile( api.GetPathsManager(), m_fontFamily, m_fontWeight, m_fontStyle, false ); + ReturnIfInvalid( chosen ); // Maybe other default font could be used instead of returning error. + FontLoaderData init( m_fontSize ); - auto font = api.Load< FontAsset >( "$(Application-Dir)/arial.ttf", &init ); + //auto font = api.Load< FontAsset >( "$(Application-Dir)/arial.ttf", &init ); + auto font = api.Load< FontAsset >( chosen.Get().Path.GetOriginalPath(), &init ); ReturnIfInvalid( font ); auto geometry = std::make_shared< TextGeometry >( font.Get() ); diff --git a/swGUI/Core/System/GUISystem.cpp b/swGUI/Core/System/GUISystem.cpp index e8ec1ed2..4de6f5c1 100644 --- a/swGUI/Core/System/GUISystem.cpp +++ b/swGUI/Core/System/GUISystem.cpp @@ -324,6 +324,7 @@ ReturnResult GUISystem::DefaultInitCorePaths () result = result && m_pathsManager->RegisterAlias( "$(TMP)", m_nativeGUI->GetOS()->GetTempDir() ); result = result && m_pathsManager->RegisterAlias( "$(CoreGUI-Dir)", m_nativeGUI->GetOS()->GetApplicationDir() ); + result = result && m_pathsManager->RegisterAlias( "$(SystemFonts)", m_nativeGUI->GetOS()->GetSystemFontsDir() ); return result; } diff --git a/swGUI/Native/INativeOS.h b/swGUI/Native/INativeOS.h index 234a1a07..7ed56cc4 100644 --- a/swGUI/Native/INativeOS.h +++ b/swGUI/Native/INativeOS.h @@ -28,7 +28,7 @@ class INativeOS virtual fs::Path GetTempDir () const = 0; virtual fs::Path GetApplicationDir () const = 0; - + virtual fs::Path GetSystemFontsDir () const = 0; }; diff --git a/swGUI/Native/MockNativeGUI/MockOS.cpp b/swGUI/Native/MockNativeGUI/MockOS.cpp index 687b105b..739f9c57 100644 --- a/swGUI/Native/MockNativeGUI/MockOS.cpp +++ b/swGUI/Native/MockNativeGUI/MockOS.cpp @@ -21,6 +21,14 @@ fs::Path MockOS::GetApplicationDir () const return fs::Path::WorkingDirectory(); } +// ================================ // + +fs::Path MockOS::GetSystemFontsDir() const +{ + // @todo Can we think of better directory? + return fs::Path::WorkingDirectory(); +} + } // gui } // sw diff --git a/swGUI/Native/MockNativeGUI/MockOS.h b/swGUI/Native/MockNativeGUI/MockOS.h index 2f626adf..6d236c1a 100644 --- a/swGUI/Native/MockNativeGUI/MockOS.h +++ b/swGUI/Native/MockNativeGUI/MockOS.h @@ -28,7 +28,7 @@ class MockOS : public INativeOS virtual fs::Path GetTempDir () const override; virtual fs::Path GetApplicationDir () const override; - + virtual fs::Path GetSystemFontsDir () const override; }; diff --git a/swGUI/Native/WinAPI/WindowsOS.cpp b/swGUI/Native/WinAPI/WindowsOS.cpp index 93107292..b3e3c5c7 100644 --- a/swGUI/Native/WinAPI/WindowsOS.cpp +++ b/swGUI/Native/WinAPI/WindowsOS.cpp @@ -38,6 +38,16 @@ fs::Path WindowsOS::GetApplicationDir () const return path.GetParent(); // Get rid of filename. } +// ================================ // + +fs::Path WindowsOS::GetSystemFontsDir() const +{ + // In the future we shoudl check Registry: + // HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts + + return fs::Path( "C:\\Windows\\Fonts" ); +} + } // gui } // sw diff --git a/swGUI/Native/WinAPI/WindowsOS.h b/swGUI/Native/WinAPI/WindowsOS.h index 1f3d3f2b..18be60b8 100644 --- a/swGUI/Native/WinAPI/WindowsOS.h +++ b/swGUI/Native/WinAPI/WindowsOS.h @@ -26,7 +26,7 @@ class WindowsOS : public INativeOS virtual fs::Path GetTempDir () const override; virtual fs::Path GetApplicationDir () const override; - + virtual fs::Path GetSystemFontsDir () const override; }; diff --git a/swGraphicAPI/Assets/TextAsset/FontAsset.cpp b/swGraphicAPI/Assets/TextAsset/FontAsset.cpp index 910b4d6a..ab40359f 100644 --- a/swGraphicAPI/Assets/TextAsset/FontAsset.cpp +++ b/swGraphicAPI/Assets/TextAsset/FontAsset.cpp @@ -26,6 +26,7 @@ FontAsset::FontAsset( AssetPath filePath, FontInitData&& initData ) , m_fontSize( initData.FontSize ) , m_fontAtlas( initData.FontAtlas ) , m_layout( std::move( initData.Layout) ) + , m_metadata( initData.Metadata ) {} // ================================ // diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp index 36ab7ce5..12dd3afe 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp @@ -37,6 +37,8 @@ RTTR_REGISTRATION rttr::registration::enumeration< sw::FontStyle >( "sw::FontStyle" )( rttr::value( "Normal", sw::FontStyle::Normal ), rttr::value( "Oblique", sw::FontStyle::Oblique ), + rttr::value( "Condensed", sw::FontStyle::Condensed ), + rttr::value( "Narrow", sw::FontStyle::Narrow ), rttr::value( "Italic", sw::FontStyle::Italic ) ); rttr::registration::class_< sw::FontMetadata >( "sw::FontMetadata" ) @@ -60,12 +62,12 @@ void FontPicker::RegisterSearchPath( const fs::Path& Nullable< FontSearchEntry > FontPicker::ChooseFontFile( PathsManager* pm, const std::string& fontFamily, FontWeight weight, FontStyle style, bool exact ) const { - auto varaints = ListFontVariants( pm, fontFamily ); - ReturnIfInvalid( varaints ); + auto variants = ListFontVariants( pm, fontFamily ); + ReturnIfInvalid( variants ); std::map< FontSearchEntry*, std::pair< u16, u16 > > metric; - for( auto& variant : varaints.Get() ) + for( auto& variant : variants.Get() ) { if( variant.Metadata.Weight == weight && variant.Metadata.Style == style ) return variant; @@ -75,7 +77,7 @@ Nullable< FontSearchEntry > FontPicker::ChooseFontFile( PathsManager* pm, co } if( exact ) - return fmt::format( "Non of {} {} variants matches the chosen one.", varaints.Get().size(), fontFamily ); + return fmt::format( "Non of {} {} variants matches the chosen one.", variants.Get().size(), fontFamily ); auto expected = std::make_pair( ClosenessMetric( weight ), ClosenessMetric( style ) ); auto closestMatch = @@ -221,6 +223,8 @@ u16 FontPicker::ClosenessMetric( FontStyle value ) return 350; case sw::FontStyle::Italic: return 300; + case sw::FontStyle::Narrow: + return 800; case sw::FontStyle::Condensed: return 900; default: diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h index 6288a3b0..3309fd86 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h @@ -27,6 +27,7 @@ enum class FontStyle : u8 Italic = 3, Oblique = 1, Condensed = 2, + Narrow = 4 }; /**@brief Font thickness. diff --git a/swGraphicAPI/ResourceManager/ResourceManagerAPI.cpp b/swGraphicAPI/ResourceManager/ResourceManagerAPI.cpp index 7bbe0217..0b51c09e 100644 --- a/swGraphicAPI/ResourceManager/ResourceManagerAPI.cpp +++ b/swGraphicAPI/ResourceManager/ResourceManagerAPI.cpp @@ -278,6 +278,13 @@ Nullable< DepthStencilStatePtr > ResourceManagerAPI::CreateDepthStencilState return CreateAsset< DepthStencilState >( name, DepthStencilInfo( info ) ); } +// ================================ // + +PathsManager* ResourceManagerAPI::GetPathsManager() const +{ + return m_resourceManager->GetPathsManager(); +} + } // sw diff --git a/swGraphicAPI/ResourceManager/ResourceManagerAPI.h b/swGraphicAPI/ResourceManager/ResourceManagerAPI.h index 75a160b3..90cd5fd0 100644 --- a/swGraphicAPI/ResourceManager/ResourceManagerAPI.h +++ b/swGraphicAPI/ResourceManager/ResourceManagerAPI.h @@ -20,6 +20,7 @@ namespace sw { class ResourceManager; +class PathsManager; /**@brief ResourceManager API and additional functions. @@ -161,6 +162,7 @@ class ResourceManagerAPI ///@} + PathsManager* GetPathsManager () const; protected: From 933265edbbeadbeee6b25341e70c7794b83bf634 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sun, 17 Nov 2024 13:00:35 +0100 Subject: [PATCH 84/96] FontLoader can choose proper font file; Fix choosing eqivalent FontWeights --- .clang-format | 4 +- .../TextAsset/Loader/FontAssetInitData.cpp | 10 ++++- .../TextAsset/Loader/FontAssetInitData.h | 24 +++++++++++ .../Assets/TextAsset/Loader/FontLoader.cpp | 42 +++++++++++++++---- .../Assets/TextAsset/Loader/FontLoader.h | 9 +++- .../Assets/TextAsset/Loader/FontPicker.cpp | 2 +- .../Assets/TextAsset/Loader/FontPicker.h | 12 ++++++ .../ResourceManager/Loaders/RMLoaderAPI.h | 1 + .../Tests/TestText/TestFontLoader.cpp | 26 ++++++++++++ .../Tests/TestText/TestFontPicker.cpp | 6 ++- 10 files changed, 120 insertions(+), 16 deletions(-) diff --git a/.clang-format b/.clang-format index 0fc5f5b3..d7b56281 100644 --- a/.clang-format +++ b/.clang-format @@ -94,9 +94,7 @@ EmptyLineAfterAccessModifier: Leave # Describe the regular expression of the comment with special meaning, it should not be divided into multiple lines or changed in other ways # CommentPragmas:'^ IWYU pragma:' # The initialization list of the constructor is either all on the same line or on their own line -ConstructorInitializerAllOnOneLineOrOnePerLine: true -# The comfort list of constructors all wrap -AllowAllConstructorInitializersOnNextLine: false +AllowAllConstructorInitializersOnNextLine: true # The indentation width of the initialization list of the constructor ConstructorInitializerIndentWidth: 4 # The indentation width of the continued line diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp index d70f87f9..84958ef0 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp @@ -132,4 +132,12 @@ float FontLayout::SpaceWidth() const { return (float)Glyphs.at( L'0' ) float FontLayout::NewLineSize() const { return (float)Glyphs.at( L'0' ).Height; } -} // sw +// ================================ // + +std::string ChooseFontLoadData::ResourceKey() const +{ + return fmt::format( "/Font?fontSize={},family={},weight={},style={}", this->FontSize, this->FontFamily, + this->FontWeight, this->FontStyle ); +} + +} // namespace sw diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h index 0a6f3d06..0ea009d8 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h @@ -117,6 +117,30 @@ struct FontLoaderData : public IAssetLoadInfo }; +/**@brief Load font by providing parameters which will be resolved by FontPicker. +@ingroup Text*/ +struct ChooseFontLoadData : public FontLoaderData +{ + RTTR_ENABLE( FontLoaderData ); +public: + + std::string FontFamily; + FontWeight FontWeight; + FontStyle FontStyle; + bool MatchExact; + +public: + explicit ChooseFontLoadData( const std::string& fontFamuly, FontSizeType fontSize ) + : FontLoaderData( fontSize ) + , FontFamily( fontFamuly ) + , FontWeight( FontWeight::Normal ) + , FontStyle( FontStyle::Normal ) + , MatchExact( true ) + {} + +public: + virtual std::string ResourceKey() const override; +}; diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp index 66eeb13a..c31d3e73 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp @@ -60,6 +60,9 @@ Nullable< std::map > BuildKerning( const FreeTypeLibr return collector.Return( kerning ); } +// ================================ // + +FreeTypeLoader::FreeTypeLoader( FontPicker&& picker ) : m_fontPicker( std::move( picker ) ) {} // ================================ // // @@ -77,7 +80,11 @@ bool FreeTypeLoader::CanLoad( const AssetPath& filePath, TypeID r TypeID::get< Resource >() }; - return DefaultCanLoad( filePath, resourceType, allowedExtensions, allowedTypes ); + // Variant for ChooseFontLoadData descriptor. + if( filePath.GetFile().IsEmpty() ) + return CanLoadType( resourceType, allowedTypes ); + else + return DefaultCanLoad( filePath, resourceType, allowedExtensions, allowedTypes ); } // ================================ // @@ -87,13 +94,32 @@ LoadingResult FreeTypeLoader::Load( const LoadPath& filePath, TypeID resou if( assetDesc == nullptr ) return LoaderException::Create( "FreeTypeLoader", "Asset descriptor is null.", filePath, resourceType ); - if( assetDesc->get_type() != TypeID::get< FontLoaderData >() ) - return LoaderException::Create( "FreeTypeLoader", "Unsupported descriptor type [ " + assetDesc->get_type().get_name().to_string() + " ].", filePath, resourceType ); + if( assetDesc->get_type() != TypeID::get< FontLoaderData >() + && assetDesc->get_type() != TypeID::get< ChooseFontLoadData >() ) + { + return LoaderException::Create( + "FreeTypeLoader", "Unsupported descriptor type [ " + assetDesc->get_type().get_name().to_string() + " ].", + filePath, resourceType ); + } + + LoadPath fontPath = filePath; + if( assetDesc->get_type() == TypeID::get< ChooseFontLoadData >() ) + { + auto loadInfo = static_cast< const ChooseFontLoadData* >( assetDesc ); + auto chosen = + m_fontPicker.ChooseFontFile( context.GetPathsManager(), loadInfo->FontFamily, loadInfo->FontWeight, loadInfo->FontStyle, loadInfo->MatchExact ); + ReturnIfInvalid( chosen ); + + fontPath = chosen.Get().Path; + } auto loadInfo = static_cast< const FontLoaderData* >( assetDesc ); - AssetPath atlasPath = AssetPath( filePath.GetFileTranslated(), fmt::format( "/Atlas{}", loadInfo->ResourceKey() ) ); - AssetPath fontAssetPath = AssetPath( filePath.GetFileTranslated(), loadInfo->ResourceKey() ); + // Note: ResourceKey is taken from parent descriptor, because since we have exact file path, we don't need to distinguish + // between different styles and weights. The goal of havinf internal path is to avoid duplicate loading of the same font. + AssetPath atlasPath = + AssetPath( fontPath.GetFileTranslated(), fmt::format( "/Atlas{}", loadInfo->FontLoaderData::ResourceKey() ) ); + AssetPath fontAssetPath = AssetPath( fontPath.GetFileTranslated(), loadInfo->FontLoaderData::ResourceKey() ); auto cached = context.GetCachedGeneric( fontAssetPath, resourceType ); if( cached ) @@ -101,7 +127,7 @@ LoadingResult FreeTypeLoader::Load( const LoadPath& filePath, TypeID resou auto freeType = FreeTypeLibrary::Create(); ReturnIfInvalid( freeType ); - ReturnIfInvalid( freeType.Get().CreateFace( filePath, loadInfo->FontSize ) ); + ReturnIfInvalid( freeType.Get().CreateFace( fontPath, loadInfo->FontSize ) ); FontInitData fontDesc( loadInfo->FontSize ); @@ -118,7 +144,7 @@ LoadingResult FreeTypeLoader::Load( const LoadPath& filePath, TypeID resou } catch( const RuntimeException& ex ) { - return LoaderException::Create( "FreeTypeLoader", ex.ErrorMessage(), filePath, resourceType ); + return LoaderException::Create( "FreeTypeLoader", ex.ErrorMessage(), fontPath, resourceType ); } } @@ -154,7 +180,7 @@ Nullable< TexturePtr > FreeTypeLoader::RenderAtlas( const FreeTypeLibrary& //SoilTextureLoader::Save( filePath.GetFile().ChangeExtension( ".png" ), image ); TextureInitData texInfo( std::move( image ) ); - texInfo.MipMaps = MipMapsInfo( MipMapFilter::Lanczos3 ); + texInfo.MipMaps = MipMapsInfo(); texInfo.TextureUsage = TextureUsageInfo(); texInfo.Format = ResourceFormat::RESOURCE_FORMAT_R8G8B8A8_UNORM; diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h index 18cc1561..9b7c37df 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h @@ -10,6 +10,7 @@ #include "swGraphicAPI/ResourceManager/Loaders/IAssetLoadInfo.h" #include "swGraphicAPI/ResourceManager/Loaders/IAssetLoader.h" +#include "swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h" namespace sw @@ -26,9 +27,13 @@ class FreeTypeLibrary; class FreeTypeLoader : public IAssetLoader { protected: + + FontPicker m_fontPicker; + public: - explicit FreeTypeLoader () = default; - virtual ~FreeTypeLoader () = default; + explicit FreeTypeLoader () = default; + explicit FreeTypeLoader ( FontPicker&& picker ); + virtual ~FreeTypeLoader () = default; virtual bool CanLoad ( const AssetPath& filePath, TypeID resourceType ) override; virtual LoadingResult Load ( const LoadPath& filePath, TypeID resourceType, const IAssetLoadInfo* assetDesc, RMLoaderAPI context ) override; diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp index 12dd3afe..27017dea 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp @@ -69,7 +69,7 @@ Nullable< FontSearchEntry > FontPicker::ChooseFontFile( PathsManager* pm, co for( auto& variant : variants.Get() ) { - if( variant.Metadata.Weight == weight && variant.Metadata.Style == style ) + if( Eqivalent( variant.Metadata.Weight, weight ) && Eqivalent( variant.Metadata.Style, style ) ) return variant; metric[ &variant ] = diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h index 3309fd86..0a2fafe1 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h @@ -161,6 +161,18 @@ inline bool operator>( const FontStyle& left, const FontStyle& right ) return static_cast< u8 >( left ) > static_cast< u8 >( right ); } +/**@brief Checks if enum variants can be treated as equal.*/ +inline bool Eqivalent( const FontStyle& left, const FontStyle& right ) +{ + return FontPicker::ClosenessMetric( left ) == FontPicker::ClosenessMetric( right ); +} + +/**@brief Checks if enum variants can be treated as equal.*/ +inline bool Eqivalent( const FontWeight& left, const FontWeight& right ) +{ + return FontPicker::ClosenessMetric( left ) == FontPicker::ClosenessMetric( right ); +} + } // sw DEFINE_FMT_FORMATTER_ENUM( sw::FontWeight ); diff --git a/swGraphicAPI/ResourceManager/Loaders/RMLoaderAPI.h b/swGraphicAPI/ResourceManager/Loaders/RMLoaderAPI.h index 12a3b18f..62c3e85c 100644 --- a/swGraphicAPI/ResourceManager/Loaders/RMLoaderAPI.h +++ b/swGraphicAPI/ResourceManager/Loaders/RMLoaderAPI.h @@ -63,6 +63,7 @@ class RMLoaderAPI : protected ResourceManagerAPI using ResourceManagerAPI::LoadComputeShader; using ResourceManagerAPI::LoadShader; + using ResourceManagerAPI::GetPathsManager; }; diff --git a/swGraphicAPI/Tests/TestText/TestFontLoader.cpp b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp index 1ae4a732..1e121495 100644 --- a/swGraphicAPI/Tests/TestText/TestFontLoader.cpp +++ b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp @@ -210,3 +210,29 @@ TEST_CASE( "GraphicAPI.Loaders.Correctness.ExitingAtlas", "[GraphicAPI][FontLoad REQUIRE_IS_VALID( font2 ); } +// ================================ // +// +TEST_CASE( "GraphicAPI.Loaders.PickFont", "[GraphicAPI][FontLoader][FreeTypeLoader]" ) +{ + auto rm = CreateResourceManagerWithMocksAndDefaults(); + auto pm = rm->GetPathsManager(); + + FontPicker picker; + picker.RegisterSearchPath( "$(FontAssets)" ); + pm->RegisterAlias( "$(FontAssets)", "$(TestAssets)/fonts/" ); + + rm->RegisterLoader( std::make_shared< FreeTypeLoader >( std::move( picker ) ) ); + rm->RegisterAssetCreator( FontCreator::CreateCreator() ); + + ChooseFontLoadData init( "Arial", 16 ); + init.FontWeight = FontWeight::Normal; + init.FontStyle = FontStyle::Normal; + + auto api = ResourceManagerAPI( rm.get() ); + auto font = api.Load< FontAsset >( "", &init ); + REQUIRE_IS_VALID( font ); + + CHECK( font.Get()->GetMetadata().Family == "Arial" ); + CHECK( font.Get()->GetMetadata().Style == FontStyle::Normal ); + CHECK( font.Get()->GetMetadata().Weight == FontWeight::Regular ); // Regular is eqivalent to Normal +} diff --git a/swGraphicAPI/Tests/TestText/TestFontPicker.cpp b/swGraphicAPI/Tests/TestText/TestFontPicker.cpp index 7340c9cf..ac43a684 100644 --- a/swGraphicAPI/Tests/TestText/TestFontPicker.cpp +++ b/swGraphicAPI/Tests/TestText/TestFontPicker.cpp @@ -120,6 +120,10 @@ TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.ChooseFont", "[GraphicAPI][FontLo chosen = picker.ChooseFontFile( rm->GetPathsManager(), "Source Sans Pro", FontWeight::Light, FontStyle::Italic, true ); REQUIRE_INVALID( chosen ); + // DemiBold is eqivalent to SemiBold so exact match should be found. + chosen = picker.ChooseFontFile( rm->GetPathsManager(), "Source Sans Pro", FontWeight::DemiBold, FontStyle::Normal, true ); + REQUIRE_IS_VALID( chosen ); + chosen = picker.ChooseFontFile( rm->GetPathsManager(), "Source Sans Pro", FontWeight::Light, FontStyle::Italic, false ); REQUIRE_IS_VALID( chosen ); CHECK( chosen.Get().Metadata.Weight == FontWeight::ExtraLight ); @@ -191,7 +195,7 @@ TEST_CASE( "GraphicAPI.Loaders.Font.FontPicker.ParseStyle", "[GraphicAPI][FontLo result = FontPicker::ParseFontStyle( "Condensed Bold" ); REQUIRE_IS_VALID( result ); - CHECK( result.Get() == FontStyle::Normal ); + CHECK( result.Get() == FontStyle::Condensed ); result = FontPicker::ParseFontStyle( "Condensed Bold Italic" ); REQUIRE_IS_VALID( result ); From e2cbadd028f87eb9ea2ef9cd2e030262d403614d Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sun, 17 Nov 2024 14:10:19 +0100 Subject: [PATCH 85/96] Initialize FontPicker in GUI --- swGUI/Core/System/GUISystem.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/swGUI/Core/System/GUISystem.cpp b/swGUI/Core/System/GUISystem.cpp index 4de6f5c1..c10f229e 100644 --- a/swGUI/Core/System/GUISystem.cpp +++ b/swGUI/Core/System/GUISystem.cpp @@ -19,6 +19,7 @@ #include "swGraphicAPI/Loaders/SoilTextureLoader/SoilTextureLoader.h" #include "swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h" #include "swGraphicAPI/Assets/TextAsset/Loader/FontAssetCreator.h" +#include "swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h" #include "swInputLibrary/InputCore/Debugging/EventCapture.h" @@ -357,10 +358,13 @@ ReturnResult GUISystem::ResourceManagerInitImpl ( ResourceManager* resourceMan { m_pathsManager = m_resourceManager->GetPathsManager(); + FontPicker picker; + picker.RegisterSearchPath( "$(SystemFonts)" ); + // GUI needs Textures loader to work. ///< @todo What to do if user adds his own Texture loader? We must avoid conflicts between them. resourceManager->RegisterLoader( std::make_shared< SoilTextureLoader >() ); - resourceManager->RegisterLoader( std::make_shared< FreeTypeLoader >() ); + resourceManager->RegisterLoader( std::make_shared< FreeTypeLoader >( std::move( picker ) ) ); resourceManager->RegisterAssetCreator( FontCreator::CreateCreator() ); return Success::True; From d4d76ba15cb586c38e554a15a53b56663529f1ce Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sun, 17 Nov 2024 16:33:19 +0100 Subject: [PATCH 86/96] Fix FreeType memory leak; Reduce memory consumption per text --- swCommonLib/Common/Exceptions/Nullable.h | 4 +- .../Animals/Components/PhysicalProperties.h | 9 +++ .../Tests/TestHelpers/TestNullable.cpp | 23 ++++++ .../Assets/TextAsset/Loader/FontLoader.cpp | 79 +++++++++++++------ .../Assets/TextAsset/Loader/FreeType.h | 26 +++++- 5 files changed, 110 insertions(+), 31 deletions(-) diff --git a/swCommonLib/Common/Exceptions/Nullable.h b/swCommonLib/Common/Exceptions/Nullable.h index 2b4076b2..ab538ba0 100644 --- a/swCommonLib/Common/Exceptions/Nullable.h +++ b/swCommonLib/Common/Exceptions/Nullable.h @@ -199,7 +199,7 @@ inline Nullable< Type > Nullable< ContentType >::Move () // template< typename ContentType > inline Nullable< ContentType > Nullable< ContentType >::FromError ( const ErrorType& error ) -{ +{ Nullable< ContentType > ret; ret.Error = error; return ret; @@ -209,7 +209,7 @@ inline Nullable< ContentType > Nullable< ContentType >::FromError ( co // template< typename ContentType > inline Nullable< ContentType > Nullable< ContentType >::FromError ( const std::string& reason ) -{ +{ return FromError( std::make_shared< RuntimeException >( reason ) ); } diff --git a/swCommonLib/TestUtils/TestClassHierarchy/Animals/Components/PhysicalProperties.h b/swCommonLib/TestUtils/TestClassHierarchy/Animals/Components/PhysicalProperties.h index 9c1502c0..94cf8aba 100644 --- a/swCommonLib/TestUtils/TestClassHierarchy/Animals/Components/PhysicalProperties.h +++ b/swCommonLib/TestUtils/TestClassHierarchy/Animals/Components/PhysicalProperties.h @@ -26,6 +26,15 @@ struct PhysicalProperties {} }; +/**@brief Not-copyable object. +@ingroup TestClassHierarchy*/ +struct NotCopyable +{ + NotCopyable() = default; + NotCopyable( const NotCopyable& ) = delete; + NotCopyable( NotCopyable&& ) = default; + NotCopyable& operator=( const NotCopyable& ) = delete; +}; } // sw diff --git a/swCommonLib/Tests/TestHelpers/TestNullable.cpp b/swCommonLib/Tests/TestHelpers/TestNullable.cpp index 90efbd65..56146b6a 100644 --- a/swCommonLib/Tests/TestHelpers/TestNullable.cpp +++ b/swCommonLib/Tests/TestHelpers/TestNullable.cpp @@ -173,6 +173,29 @@ TEST_CASE( "Common.Helpers.Exceptions.Nullable.MapErr", "[Nullable]" ) CHECK( mappedErr.GetError() != nullptr ); } +Nullable< NotCopyable > CreateNotCopyable( bool move ) +{ + if( move ) + return std::move( NotCopyable() ); + else + return NotCopyable(); +} + +// ================================ // +// +TEST_CASE( "Common.Helpers.Exceptions.Nullable.NotCopyAble", "[Nullable]" ) +{ + auto mappedErr = + Nullable< NotCopyable >( "Something wrong..." ).MapErr( []( auto e ) { return fmt::format( "Failure: {}", e ); } ); + + REQUIRE( mappedErr.IsValid() == false ); + CHECK( mappedErr.GetErrorReason() == "Failure: Something wrong..." ); + CHECK( mappedErr.GetError() != nullptr ); + + auto result = CreateNotCopyable( true ); + REQUIRE( result.IsValid() == true ); +} + // ================================ // // TEST_CASE( "Common.Helpers.Exceptions.ReturnResult.operator&&", "[Nullable]" ) diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp index c31d3e73..cd90b7d5 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp @@ -134,8 +134,8 @@ LoadingResult FreeTypeLoader::Load( const LoadPath& filePath, TypeID resou try { fontDesc.Layout.Padding = 1; - fontDesc.Layout.Glyphs = BuildGlyphs( freeType.Get(), loadInfo->CharacterSet ).Get(); - fontDesc.Layout.Kerning = BuildKerning( freeType.Get(), loadInfo->CharacterSet ).Get(); + fontDesc.Layout.Glyphs = BuildGlyphs( freeType, loadInfo->CharacterSet ).Get(); + fontDesc.Layout.Kerning = BuildKerning( freeType, loadInfo->CharacterSet ).Get(); fontDesc.FontAtlas = RenderAtlas( freeType, atlasPath, fontDesc.Layout, context ).Get(); fontDesc.Metadata = FontPicker::QueryMetadata( freeType ); @@ -240,29 +240,57 @@ Image< u32 > FreeTypeLoader::RenderAtlasToBuffer( const FreeTypeL const auto FT_PrecisionMult = 6; +// ================================ // + +FreeTypeLibrary::~FreeTypeLibrary() +{ + if( this->FT ) + { + if( this->FT->Face ) + { + FT_Done_Face( this->FT->Face ); + this->FT->Face = nullptr; + } + + if( this->FT->Library ) + { + FT_Done_FreeType( this->FT->Library ); + this->FT->Library = nullptr; + } + } +} + +// ================================ // + +ReturnResult FreeTypeLibrary::CreateLibrary() +{ + auto error = FT_Init_FreeType( &this->FT->Library ); + if( error ) + return fmt::format( "Failed to initialize FreeType library. Error: {}", ftErrorString( error ) ); + return Success::True; +} + // ================================ // // Nullable FreeTypeLibrary::Create() { - FT_Library library; - auto error = FT_Init_FreeType( &library ); - if( error ) - return Nullable< FreeTypeLibrary >::FromError( fmt::format( "Failed to initialize FreeType library." ) ); - return FreeTypeLibrary( library ); + FreeTypeLibrary freeType; + ReturnIfInvalid( freeType.CreateLibrary() ); + return freeType; } // ================================ // // ReturnResult FreeTypeLibrary::CreateFace( const LoadPath& filePath, uint32 fontSize ) { - FT_Error error = FT_New_Face( this->Library, filePath.GetFile().String().c_str(), 0, &this->Face); + FT_Error error = FT_New_Face( this->FT->Library, filePath.GetFile().String().c_str(), 0, &this->FT->Face); if( error != FT_Err_Ok ) { return ReturnResult( fmt::format( "Failed to create face from font file: {}, error: {}", filePath.GetFile().String(), ftErrorString( error ) ) ); } - FT_Error error2 = FT_Set_Pixel_Sizes( this->Face, (FT_UInt)fontSize, (FT_UInt)fontSize ); + FT_Error error2 = FT_Set_Pixel_Sizes( this->FT->Face, (FT_UInt)fontSize, (FT_UInt)fontSize ); if( error2 != FT_Err_Ok ) { return ReturnResult( fmt::format( "Failed to set pixel size: {}, error: {}", @@ -276,9 +304,9 @@ ReturnResult FreeTypeLibrary::CreateFace( const LoadPath& filePat // Nullable FreeTypeLibrary::LoadGlyph( wchar_t character ) const { - FT_UInt gindex = FT_Get_Char_Index( this->Face, character ); + FT_UInt gindex = FT_Get_Char_Index( this->FT->Face, character ); - auto result = FT_Load_Glyph( this->Face, gindex, FT_LOAD_NO_BITMAP ); + auto result = FT_Load_Glyph( this->FT->Face, gindex, FT_LOAD_NO_BITMAP ); if( result != FT_Err_Ok ) return std::make_shared< RuntimeException> ( fmt::format("Error loading glyph for character '{}': {}", Convert::ToString( character ), ftErrorString( result ) ) ); @@ -287,13 +315,13 @@ Nullable FreeTypeLibrary::LoadGlyph( wchar_t character ) cons newGlyph.CharCode = character; newGlyph.GlyphIdx = gindex; - newGlyph.Height = this->Face->glyph->metrics.height >> FT_PrecisionMult; - newGlyph.Width = this->Face->glyph->metrics.width >> FT_PrecisionMult; + newGlyph.Height = this->FT->Face->glyph->metrics.height >> FT_PrecisionMult; + newGlyph.Width = this->FT->Face->glyph->metrics.width >> FT_PrecisionMult; - newGlyph.BearingX = this->Face->glyph->metrics.horiBearingX >> FT_PrecisionMult; - newGlyph.BearingY = this->Face->glyph->metrics.horiBearingY >> FT_PrecisionMult; - newGlyph.AdvanceX = this->Face->glyph->advance.x >> FT_PrecisionMult; - newGlyph.AdvanceY = this->Face->glyph->advance.y >> FT_PrecisionMult; + newGlyph.BearingX = this->FT->Face->glyph->metrics.horiBearingX >> FT_PrecisionMult; + newGlyph.BearingY = this->FT->Face->glyph->metrics.horiBearingY >> FT_PrecisionMult; + newGlyph.AdvanceX = this->FT->Face->glyph->advance.x >> FT_PrecisionMult; + newGlyph.AdvanceY = this->FT->Face->glyph->advance.y >> FT_PrecisionMult; return Nullable( newGlyph ); } @@ -304,10 +332,10 @@ Nullable FreeTypeLibrary::Kerning( wchar_t first, wchar_t sec { FT_Vector kerning; - auto leftGlyphIdx = FT_Get_Char_Index( this->Face, first ); - auto rightGlyphIdx = FT_Get_Char_Index( this->Face, second ); + auto leftGlyphIdx = FT_Get_Char_Index( this->FT->Face, first ); + auto rightGlyphIdx = FT_Get_Char_Index( this->FT->Face, second ); - auto result = FT_Get_Kerning( this->Face, + auto result = FT_Get_Kerning( this->FT->Face, leftGlyphIdx, rightGlyphIdx, FT_KERNING_DEFAULT, @@ -326,9 +354,9 @@ Nullable FreeTypeLibrary::Kerning( wchar_t first, wchar_t sec // void FreeTypeLibrary::RenderGlyph( const Glyph& glyph, ImageRegion< u32 >& image ) const { - FT_Load_Glyph( this->Face, glyph.GlyphIdx, FT_LOAD_RENDER ); + FT_Load_Glyph( this->FT->Face, glyph.GlyphIdx, FT_LOAD_RENDER ); - FT_Bitmap* bitmap = &this->Face->glyph->bitmap; + FT_Bitmap* bitmap = &this->FT->Face->glyph->bitmap; for( uint32 x = 0; x < image.GetWidth(); x++ ) { @@ -345,10 +373,11 @@ void FreeTypeLibrary::RenderGlyph( const Glyph& glyph, Im FTFontMetadata FreeTypeLibrary::Metadata() const { return FTFontMetadata { - this->Face->family_name, this->Face->style_name, - bool( this->Face->style_flags & FT_STYLE_FLAG_ITALIC ), - bool( this->Face->style_flags & FT_STYLE_FLAG_BOLD ) + this->FT->Face->family_name, this->FT->Face->style_name, + bool( this->FT->Face->style_flags & FT_STYLE_FLAG_ITALIC ), + bool( this->FT->Face->style_flags & FT_STYLE_FLAG_BOLD ) }; } } + diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h b/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h index 151e2fe6..e5affddd 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h @@ -42,18 +42,33 @@ struct FTFontMetadata bool IsBold; }; +namespace impl +{ + +/**@brief Those types must be allocated on heap, otherwise FreeType library will crash.*/ +struct FTTypes +{ + FT_Library Library; + FT_Face Face; +}; + +} + /**FT_Library object is not multithreaded, so the new one must be created for each new loading operation. This class serves as RAII guard to free resources after loading is done.*/ class FreeTypeLibrary { public: - FT_Library Library; - FT_Face Face; + + std::unique_ptr< impl::FTTypes > FT; public: - explicit FreeTypeLibrary ( FT_Library library ) : Library( library ), Face( nullptr ) {} - ~FreeTypeLibrary() = default; + explicit FreeTypeLibrary() + : FT( std::make_unique< impl::FTTypes >( impl::FTTypes{ nullptr, nullptr } ) ) + {} + FreeTypeLibrary ( FreeTypeLibrary&& freeType ) = default; + ~FreeTypeLibrary(); public: static Nullable Create(); @@ -67,6 +82,9 @@ class FreeTypeLibrary void RenderGlyph ( const Glyph& glyph, ImageRegion< u32 >& image ) const; FTFontMetadata Metadata() const; + +private: + ReturnResult CreateLibrary(); }; From 49ed28545dc443eb9be258fc6d0ef890377747bc Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sun, 17 Nov 2024 19:22:35 +0100 Subject: [PATCH 87/96] Use 8-bits textures for text atlas --- swCommonLib/Common/Buffers/Image.h | 39 ++++++++++++++++++- .../Assets/TextAsset/Loader/FontLoader.cpp | 21 +++++----- .../Assets/TextAsset/Loader/FontLoader.h | 2 +- .../Assets/TextAsset/Loader/FreeType.h | 2 +- 4 files changed, 52 insertions(+), 12 deletions(-) diff --git a/swCommonLib/Common/Buffers/Image.h b/swCommonLib/Common/Buffers/Image.h index f5894ad2..77319dfb 100644 --- a/swCommonLib/Common/Buffers/Image.h +++ b/swCommonLib/Common/Buffers/Image.h @@ -37,6 +37,7 @@ class Image , m_fallback( ContentType() ) { assert( m_buffer.ElementsCount() == m_width * m_height ); + assert( ( width * sizeof( ContentType ) ) % 4 == 0 ); } explicit Image( uint32 width, uint32 height ) @@ -44,7 +45,9 @@ class Image , m_width( width ) , m_height( height ) , m_fallback( ContentType() ) - {} + { + assert( ( width * sizeof( ContentType ) ) % 4 == 0 ); + } Image( const Image& image ) = default; Image( Image&& image ) = default; @@ -69,6 +72,7 @@ class Image public: ContentType& operator() ( uint32 x, uint32 y ); + const ContentType& operator() ( uint32 x, uint32 y ) const; void ZeroMemory () { m_buffer.ZeroMemory(); } /**Checks if there was no write attempt outside of image bounds.*/ @@ -77,6 +81,9 @@ class Image public: /**@brief Takes ownership of memory buffer.*/ BufferTyped< ContentType, Alloc > Move (); + + /**@brief Creates another image with all 4 channels.*/ + Image< u32 > ToRGBAImage () const; }; // ================================ // @@ -93,10 +100,40 @@ inline ContentType& Image::operator()( u // ================================ // // +template< typename ContentType, class Alloc > +inline const ContentType& Image< ContentType, Alloc >::operator()( uint32 x, uint32 y ) const +{ + if( x >= m_width || y >= m_height ) + return m_fallback; + return m_buffer[ y * m_width + x ]; +} + +// ================================ // +// + template inline BufferTyped Image::Move() { return std::move( this->m_buffer ); } +// ================================ // + +template< typename ContentType, class Alloc > +inline Image< u32 > Image< ContentType, Alloc >::ToRGBAImage() const +{ + Image< u32 > result( m_width, m_height ); + + for( uint32 y = 0; y < m_height; y++ ) + { + for( uint32 x = 0; x < m_width; x++ ) + { + const auto& pixel = (*this)( x, y ); + result( x, y ) = 0x00FFFFFF + ( (uint32)pixel << 24 ); + } + } + + return result; +} + } diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp index cd90b7d5..1f8c01bc 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp @@ -177,21 +177,24 @@ Nullable< TexturePtr > FreeTypeLoader::RenderAtlas( const FreeTypeLibrary& auto image = RenderAtlasToBuffer( freeType, fontLayout, altlasWidth, altlasHeight ); - //SoilTextureLoader::Save( filePath.GetFile().ChangeExtension( ".png" ), image ); + //auto file = sw::fs::Path::WorkingDirectory() / filePath.GetFile().ChangeExtension( ".png" ).GetFileName(); + //SoilTextureLoader::Save( file, image.ToRGBAImage() ); TextureInitData texInfo( std::move( image ) ); texInfo.MipMaps = MipMapsInfo(); texInfo.TextureUsage = TextureUsageInfo(); - texInfo.Format = ResourceFormat::RESOURCE_FORMAT_R8G8B8A8_UNORM; + texInfo.Format = ResourceFormat::RESOURCE_FORMAT_A8_UNORM; return factory.CreateAsset< Texture >( filePath, std::move(texInfo)); } // ================================ // // -Image< u32 > FreeTypeLoader::RenderAtlasToBuffer( const FreeTypeLibrary& freeType, FontLayout& fontLayout, uint32 width, uint32 height ) +Image< u8 > FreeTypeLoader::RenderAtlasToBuffer( const FreeTypeLibrary& freeType, FontLayout& fontLayout, uint32 width, uint32 height ) { - auto image = Image< u32 >( width, height ); + // Some fonts contain for example emoticons, which use rgb channels. + // In future we should handle this case. + auto image = Image< u8 >( width, height ); image.ZeroMemory(); uint8* currAddress = image.GetRawData(); @@ -213,7 +216,7 @@ Image< u32 > FreeTypeLoader::RenderAtlasToBuffer( const FreeTypeL glyph.Width, glyph.Height }; - auto region = ImageRegion< u32 >::From( image, rect ).Get(); + auto region = ImageRegion< u8 >::From( image, rect ).Get(); freeType.RenderGlyph( glyph, region ); @@ -352,18 +355,18 @@ Nullable FreeTypeLibrary::Kerning( wchar_t first, wchar_t sec // ================================ // // -void FreeTypeLibrary::RenderGlyph( const Glyph& glyph, ImageRegion< u32 >& image ) const +void FreeTypeLibrary::RenderGlyph( const Glyph& glyph, ImageRegion< u8 >& image ) const { FT_Load_Glyph( this->FT->Face, glyph.GlyphIdx, FT_LOAD_RENDER ); FT_Bitmap* bitmap = &this->FT->Face->glyph->bitmap; - for( uint32 x = 0; x < image.GetWidth(); x++ ) + for( uint32 y = 0; y < image.GetHeight(); y++ ) { - for( uint32 y = 0; y < image.GetHeight(); y++ ) + for( uint32 x = 0; x < image.GetWidth(); x++ ) { auto pixel = bitmap->buffer[ y * bitmap->width + x ]; - image( x, y ) = 0x00FFFFFF + ((u32)pixel << 24); + image( x, y ) = (u8)pixel; } } } diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h index 9b7c37df..585fd1fe 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.h @@ -42,7 +42,7 @@ class FreeTypeLoader : public IAssetLoader public: /**@brief Renders Texture Atlas. Modifies FontLayout by adding texture mapping.*/ Nullable< TexturePtr > RenderAtlas ( const FreeTypeLibrary& freeType, const AssetPath& filePath, FontLayout& initData, RMLoaderAPI factor ); - Image< u32 > RenderAtlasToBuffer ( const FreeTypeLibrary& freeType, FontLayout& initData, uint32 width, uint32 height ); + Image< u8 > RenderAtlasToBuffer ( const FreeTypeLibrary& freeType, FontLayout& initData, uint32 width, uint32 height ); }; diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h b/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h index e5affddd..48f368bf 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FreeType.h @@ -79,7 +79,7 @@ class FreeTypeLibrary Nullable< float > Kerning ( wchar_t first, wchar_t second ) const; /**Renders Glyph to bitmap in selected rectangle.*/ - void RenderGlyph ( const Glyph& glyph, ImageRegion< u32 >& image ) const; + void RenderGlyph ( const Glyph& glyph, ImageRegion< u8 >& image ) const; FTFontMetadata Metadata() const; From b48fa017b0a2e3715edea2c16af7eb35820de24d Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Mon, 18 Nov 2024 20:44:40 +0100 Subject: [PATCH 88/96] Use Image for kerning instead of std::map to reduce momory footprint --- swGraphicAPI/Assets/TextAsset/FontAsset.cpp | 2 +- .../TextAsset/Loader/FontAssetInitData.cpp | 9 +++++ .../TextAsset/Loader/FontAssetInitData.h | 13 +++++-- .../Assets/TextAsset/Loader/FontLoader.cpp | 38 +++++++++++-------- swGraphicAPI/Assets/TextAsset/Loader/Glyph.h | 9 ++--- swGraphicAPI/Assets/TextAsset/Text.cpp | 2 +- .../Tests/TestText/TestFontLoader.cpp | 6 +-- 7 files changed, 50 insertions(+), 29 deletions(-) diff --git a/swGraphicAPI/Assets/TextAsset/FontAsset.cpp b/swGraphicAPI/Assets/TextAsset/FontAsset.cpp index ab40359f..81e21b51 100644 --- a/swGraphicAPI/Assets/TextAsset/FontAsset.cpp +++ b/swGraphicAPI/Assets/TextAsset/FontAsset.cpp @@ -40,7 +40,7 @@ const Glyph& FontAsset::GetGlyph( wchar_t character ) const float FontAsset::GetKerning( wchar_t first, wchar_t second ) const { - return this->m_layout.Kerning.at( std::make_pair( first, second ) ); + return this->m_layout.GetKerning( first, second ); } } // sw diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp index 84958ef0..231082e3 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.cpp @@ -134,6 +134,15 @@ float FontLayout::NewLineSize() const { return (float)Glyphs.at( L'0' // ================================ // +float FontLayout::GetKerning( wchar_t first, wchar_t second ) const +{ + auto idx1 = Glyphs.at( first ).GlyphIdx; + auto idx2 = Glyphs.at( second ).GlyphIdx; + return Kerning( idx1, idx2 ); +} + +// ================================ // + std::string ChooseFontLoadData::ResourceKey() const { return fmt::format( "/Font?fontSize={},family={},weight={},style={}", this->FontSize, this->FontFamily, diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h index 0ea009d8..0177318b 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontAssetInitData.h @@ -34,16 +34,21 @@ struct FontLayout std::map< wchar_t, Glyph > Glyphs; /**Each character pair can be shifted individually to give text better look in terms of spacing. */ - std::map< KerningPair, float > Kerning; + Image< float > Kerning; /**Padding around glyph in texture atlas. It's used to prevent texture bleeding.*/ uint32 Padding; public: - explicit FontLayout() + explicit FontLayout( std::map< wchar_t, Glyph > glyphs, Image< float > kerning ) : Padding( 1 ) + , Glyphs( std::move( glyphs ) ) + , Kerning( std::move( kerning ) ) {} + FontLayout( FontLayout&& other ) = default; + FontLayout& operator=( FontLayout&& other ) = default; + public: uint32 GetMaxHeight() const; uint32 GetMaxWidth() const; @@ -54,6 +59,7 @@ struct FontLayout uint32 GetMaxHightBelowBaseline() const; //< Allow to compute how much font sticks out below baseline. ImageRect GetGlyphCoords( wchar_t character ) const; + float GetKerning( wchar_t first, wchar_t second ) const; float SpaceWidth() const; float NewLineSize() const; @@ -74,9 +80,10 @@ struct FontInitData : public IAssetCreateInfo FontLayout Layout; public: - explicit FontInitData( FontSizeType fontSize ) + explicit FontInitData( FontLayout&& layout, FontSizeType fontSize ) : FontAtlas( nullptr ) , FontSize( fontSize ) + , Layout( std::move( layout ) ) {} public: diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp index 1f8c01bc..6f9e0240 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontLoader.cpp @@ -30,11 +30,15 @@ Nullable< std::map > BuildGlyphs( const FreeTypeLibra ErrorsCollector collector; std::map glyphs; - for( auto character : charset ) + for( Size idx = 0; idx < charset.length(); idx++ ) { + auto character = charset[ idx ]; auto glyph = freeType.LoadGlyph( character ); if( collector.Success( glyph ) ) + { glyphs[ character ] = glyph.Get(); + glyphs[ character ].GlyphIdx = (uint16)idx; + } } return collector.Return( glyphs ); @@ -42,22 +46,22 @@ Nullable< std::map > BuildGlyphs( const FreeTypeLibra // ================================ // // -Nullable< std::map > BuildKerning( const FreeTypeLibrary& freeType, const std::wstring& charset ) +Nullable< Image< float > > BuildKerning( const FreeTypeLibrary& freeType, const std::wstring& charset ) { ErrorsCollector collector; - std::map kerning; + Image< float > kerning( (uint32)charset.length(), (uint32)charset.length() ); - for( auto first : charset ) + for( uint32 y = 0; y < charset.length(); y++ ) { - for( auto second : charset ) + for( uint32 x = 0; x < charset.length(); x++ ) { - auto kern = freeType.Kerning( first, second ); + auto kern = freeType.Kerning( charset[ x ], charset[ y ] ); if( collector.Success( kern ) ) - kerning[ std::make_pair( first, second ) ] = kern.Get(); + kerning( x, y ) = kern.Get(); } } - return collector.Return( kerning ); + return collector.Return( std::move( kerning ) ); } // ================================ // @@ -129,13 +133,15 @@ LoadingResult FreeTypeLoader::Load( const LoadPath& filePath, TypeID resou ReturnIfInvalid( freeType ); ReturnIfInvalid( freeType.Get().CreateFace( fontPath, loadInfo->FontSize ) ); - FontInitData fontDesc( loadInfo->FontSize ); - try { - fontDesc.Layout.Padding = 1; - fontDesc.Layout.Glyphs = BuildGlyphs( freeType, loadInfo->CharacterSet ).Get(); - fontDesc.Layout.Kerning = BuildKerning( freeType, loadInfo->CharacterSet ).Get(); + auto glyphs = BuildGlyphs( freeType, loadInfo->CharacterSet ).Get(); + auto kerning = BuildKerning( freeType, loadInfo->CharacterSet ).Get(); + + FontLayout fontLayout( glyphs, std::move( kerning ) ); + fontLayout.Padding = 1; + + FontInitData fontDesc( std::move( fontLayout ), loadInfo->FontSize ); fontDesc.FontAtlas = RenderAtlas( freeType, atlasPath, fontDesc.Layout, context ).Get(); fontDesc.Metadata = FontPicker::QueryMetadata( freeType ); @@ -222,7 +228,6 @@ Image< u8 > FreeTypeLoader::RenderAtlasToBuffer( const FreeTypeL glyph.TextureX = rect.X; glyph.TextureY = rect.Y; - glyph.Padding = fontLayout.Padding; curX += maxWidth; // No more space in current row, move to next. @@ -317,7 +322,8 @@ Nullable FreeTypeLibrary::LoadGlyph( wchar_t character ) cons auto newGlyph = Glyph(); newGlyph.CharCode = character; - newGlyph.GlyphIdx = gindex; + newGlyph.FtIdx = gindex; + newGlyph.GlyphIdx = 0; newGlyph.Height = this->FT->Face->glyph->metrics.height >> FT_PrecisionMult; newGlyph.Width = this->FT->Face->glyph->metrics.width >> FT_PrecisionMult; @@ -357,7 +363,7 @@ Nullable FreeTypeLibrary::Kerning( wchar_t first, wchar_t sec // void FreeTypeLibrary::RenderGlyph( const Glyph& glyph, ImageRegion< u8 >& image ) const { - FT_Load_Glyph( this->FT->Face, glyph.GlyphIdx, FT_LOAD_RENDER ); + FT_Load_Glyph( this->FT->Face, glyph.FtIdx, FT_LOAD_RENDER ); FT_Bitmap* bitmap = &this->FT->Face->glyph->bitmap; diff --git a/swGraphicAPI/Assets/TextAsset/Loader/Glyph.h b/swGraphicAPI/Assets/TextAsset/Loader/Glyph.h index c68537c2..9fee28ec 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/Glyph.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/Glyph.h @@ -10,8 +10,9 @@ namespace sw @ingroup Text*/ struct Glyph { - uint16 CharCode; - uint16 GlyphIdx; // Index of glyph in freetype font + wchar_t CharCode; + uint16 FtIdx; // Index of glyph in free type. + uint16 GlyphIdx; // Index of glyph in character set for which Font is created. Used to index Kerning table. uint32 Width; uint32 Height; @@ -26,12 +27,11 @@ struct Glyph uint32 TextureX; // x pixel coord of the bitmap's bottom-left corner uint32 TextureY; // y pixel coord of the bitmap's bottom-left corner - Size Padding; // Padding around glyph in texture atlas. It's used to prevent texture bleeding. - public: explicit Glyph() : CharCode( 0 ) , GlyphIdx( 0 ) + , FtIdx( 0 ) , Width( 0 ) , Height( 0 ) , AdvanceX( 0 ) @@ -40,7 +40,6 @@ struct Glyph , BearingY( 0 ) , TextureX( 0 ) , TextureY( 0 ) - , Padding( 0 ) {} ImageRect GetGlyphCoords() const; diff --git a/swGraphicAPI/Assets/TextAsset/Text.cpp b/swGraphicAPI/Assets/TextAsset/Text.cpp index 33d2fdc2..9d30811b 100644 --- a/swGraphicAPI/Assets/TextAsset/Text.cpp +++ b/swGraphicAPI/Assets/TextAsset/Text.cpp @@ -96,7 +96,7 @@ std::vector< Position2d > TextArranger::ArrangeLine( std::wstring_ if ( this->UseKerning && charIdx > 0 && !IsWhitespace( text[ charIdx - 1 ] ) ) { - auto kerShift = layout.Kerning.at( std::make_pair( text[ charIdx - 1 ], text[ charIdx ] ) ); + auto kerShift = layout.GetKerning( text[ charIdx - 1 ], text[ charIdx ] ); translate += Position2d( kerShift, 0.0 ); } diff --git a/swGraphicAPI/Tests/TestText/TestFontLoader.cpp b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp index 1e121495..72137055 100644 --- a/swGraphicAPI/Tests/TestText/TestFontLoader.cpp +++ b/swGraphicAPI/Tests/TestText/TestFontLoader.cpp @@ -57,7 +57,7 @@ TEST_CASE( "GraphicAPI.Loaders.Font.Format.ttf", "[GraphicAPI][FontLoader][FreeT auto numChars = FontLoaderData::DefaultCharacterSet().length(); CHECK( font.Get()->GetLayout().Glyphs.size() == numChars); - CHECK( font.Get()->GetLayout().Kerning.size() == numChars * numChars ); + CHECK( font.Get()->GetLayout().Kerning.ElementsCount() == numChars * numChars ); REQUIRE( font.Get()->GetFontAtlas() != nullptr ); CHECK( font.Get()->GetFontAtlas()->GetDescriptor().Height == 256 ); @@ -80,7 +80,7 @@ TEST_CASE( "GraphicAPI.Loaders.Font.Format.otf", "[GraphicAPI][FontLoader][FreeT auto numChars = FontLoaderData::DefaultCharacterSet().length(); CHECK( font.Get()->GetLayout().Glyphs.size() == numChars ); - CHECK( font.Get()->GetLayout().Kerning.size() == numChars * numChars ); + CHECK( font.Get()->GetLayout().Kerning.ElementsCount() == numChars * numChars ); REQUIRE( font.Get()->GetFontAtlas() != nullptr ); CHECK( font.Get()->GetFontAtlas()->GetDescriptor().Height == 512 ); @@ -103,7 +103,7 @@ TEST_CASE( "GraphicAPI.Loaders.Font.Arial", "[GraphicAPI][FontLoader][FreeTypeLo auto numChars = FontLoaderData::DefaultCharacterSet().length(); CHECK( font.Get()->GetLayout().Glyphs.size() == numChars ); - CHECK( font.Get()->GetLayout().Kerning.size() == numChars * numChars ); + CHECK( font.Get()->GetLayout().Kerning.ElementsCount() == numChars * numChars ); REQUIRE( font.Get()->GetFontAtlas() != nullptr ); CHECK( font.Get()->GetFontAtlas()->GetDescriptor().Height == 256 ); From bd151820402a01463aae318a6dcab54182923d0b Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Mon, 18 Nov 2024 22:58:07 +0100 Subject: [PATCH 89/96] TextBox tests in TestControl --- swGUI/Prototypes/AppResources/arial.ttf | Bin 367112 -> 0 bytes swGUI/TestFramework/TestFramework.cpp | 7 +- .../fonts/source-sans-pro.bold.ttf | Bin 0 -> 118604 bytes .../fonts/source-sans-pro.italic.ttf | Bin 0 -> 119264 bytes .../fonts/source-sans-pro.regular.ttf | Bin 0 -> 119080 bytes swGUI/Tests/TestControls/TestTextBlock.cpp | 121 +++++++++++++++++- 6 files changed, 124 insertions(+), 4 deletions(-) delete mode 100644 swGUI/Prototypes/AppResources/arial.ttf create mode 100644 swGUI/TestResources/fonts/source-sans-pro.bold.ttf create mode 100644 swGUI/TestResources/fonts/source-sans-pro.italic.ttf create mode 100644 swGUI/TestResources/fonts/source-sans-pro.regular.ttf diff --git a/swGUI/Prototypes/AppResources/arial.ttf b/swGUI/Prototypes/AppResources/arial.ttf deleted file mode 100644 index ff0815cd8c64b0a245ec780eb8d21867509155b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 367112 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≺9Wiv@#qpl#qL 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≪P+Tw+*$qa@!i>|Uj$m6(YG+< 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 ); - return m_pathsManager->OverrideAlias( "$(CoreGUI-Shader-Dir)", coreGUISourcePath / "Core/Shaders/hlsl" ); + ErrorsCollector results; + + results.Add( m_pathsManager->OverrideAlias( "$(CoreGUI-Shader-Dir)", coreGUISourcePath / "Core/Shaders/hlsl" ) ); + results.Add( m_pathsManager->OverrideAlias( "$(SystemFonts)", coreGUISourcePath / "TestResources/fonts" ) ); + + return results; } diff --git a/swGUI/TestResources/fonts/source-sans-pro.bold.ttf b/swGUI/TestResources/fonts/source-sans-pro.bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..62a0a4d9b37f4b0ed08f65a83bbd37ad5b634ee7 GIT binary patch literal 118604 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

Jn(Xilm=RB0`#DYctN2^$oC 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 literal 0 HcmV?d00001 diff --git a/swGUI/TestResources/fonts/source-sans-pro.italic.ttf b/swGUI/TestResources/fonts/source-sans-pro.italic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a2706c0e3240237aeccf55d297891d64b009619e GIT binary patch literal 119264 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 T-K$NE85z^nj~WW@2*UpXU0`v< literal 0 HcmV?d00001 diff --git a/swGUI/TestResources/fonts/source-sans-pro.regular.ttf b/swGUI/TestResources/fonts/source-sans-pro.regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ffe27865aaa6eaf96fefe0800afe02a3be71cb2f GIT binary patch literal 119080 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 Colors::Black ); auto text = AddText( window, background, pen, 300, 300, Position( 0, 40 ), sLoremIpsum ); - REQUIRE( text->QueryDrawing() != nullptr ); - REQUIRE( text->GetGeometry() != nullptr ); // Run single frame. If something was wrong it should fails here. REQUIRE_NOTHROW( framework->MainLoopCore() ); + + auto drawing = text->QueryDrawing(); + auto geometry = text->GetGeometry(); + auto font = std::static_pointer_cast< TextGeometry >( text->GetGeometry() )->GetFont(); + + REQUIRE( drawing != nullptr ); + REQUIRE( geometry != nullptr ); + + // Parameters don't change Geometry an Drawing. + text->SetText( L"New text" ); + text->SetTextAlignment( TextAlignment::Center ); + + REQUIRE_NOTHROW( framework->MainLoopCore() ); + + CHECK( text->QueryDrawing() == drawing ); + CHECK( text->GetGeometry() == geometry ); + + // Updates require Geometry re-creation + text->SetFontFamily( "Source Sans Pro" ); + REQUIRE_NOTHROW( framework->MainLoopCore() ); + + auto newDrawing = text->QueryDrawing(); + auto newGeometry = text->GetGeometry(); + auto newFont = std::static_pointer_cast< TextGeometry >( text->GetGeometry() )->GetFont(); + CHECK( newDrawing != drawing ); + CHECK( newGeometry != geometry ); + CHECK( newFont != font ); + CHECK( newFont->GetMetadata().Family == "Source Sans Pro" ); + CHECK( newFont->GetMetadata().Style == FontStyle::Normal ); + CHECK( newFont->GetMetadata().Weight == FontWeight::Regular ); + + + text->SetFontWeight( FontWeight::Bold ); + REQUIRE_NOTHROW( framework->MainLoopCore() ); + + drawing = text->QueryDrawing(); + geometry = text->GetGeometry(); + font = std::static_pointer_cast< TextGeometry >( text->GetGeometry() )->GetFont(); + CHECK( newDrawing != drawing ); + CHECK( newGeometry != geometry ); + CHECK( font != newFont ); + CHECK( font->GetMetadata().Family == "Source Sans Pro" ); + CHECK( font->GetMetadata().Style == FontStyle::Normal ); + CHECK( font->GetMetadata().Weight == FontWeight::Bold ); + + + text->SetFontStyle( FontStyle::Italic ); + text->SetFontWeight( FontWeight::Regular ); + REQUIRE_NOTHROW( framework->MainLoopCore() ); + + newDrawing = text->QueryDrawing(); + newGeometry = text->GetGeometry(); + newFont = std::static_pointer_cast< TextGeometry >( text->GetGeometry() )->GetFont(); + CHECK( newDrawing != drawing ); + CHECK( newGeometry != geometry ); + CHECK( newFont != font ); + CHECK( newFont->GetMetadata().Family == "Source Sans Pro" ); + CHECK( newFont->GetMetadata().Style == FontStyle::Italic ); + CHECK( Eqivalent( newFont->GetMetadata().Weight, FontWeight::Normal ) ); } +// ================================ // +// +TEST_CASE( "GUI.Controls.TextBlock.Resources.LazyLoading", "[GUISystem][Controls][Text]" ) +{ + TestFramework* framework = GetGlobalTestFramework(); + FrameworkCleaner cleaner( framework ); + + MockGUI* mockNativeGUI = static_cast< MockGUI* >( framework->GetNativeGUI() ); + auto window = framework->CreateNativeHostWindow( 400, 400, "Test Window" ).Get(); + + // Window must be focused to be rendered. + mockNativeGUI->SendChangeFocus( window->GetNativeWindow(), true ); + + auto background = std::make_shared< SolidColorBrush >( Colors::WhiteSmoke ); + auto pen = std::make_shared< SolidColorBrush >( Colors::Black ); + + auto text = AddText( window, background, pen, 300, 300, Position( 0, 40 ), sLoremIpsum ); + + // Run single frame. If something was wrong it should fails here. + REQUIRE_NOTHROW( framework->MainLoopCore() ); + + auto drawing = text->QueryDrawing(); + auto geometry = text->GetGeometry(); + auto font = std::static_pointer_cast< TextGeometry >( text->GetGeometry() )->GetFont(); + + REQUIRE( drawing != nullptr ); + REQUIRE( geometry != nullptr ); + + // Parameters don't change Geometry an Drawing. + text->SetText( L"New text" ); + text->SetTextAlignment( TextAlignment::Center ); + + CHECK( text->QueryDrawing() == drawing ); + CHECK( text->GetGeometry() == geometry ); + + text->SetFontFamily( "Source Sans Pro" ); + CHECK( text->GetGeometry() == geometry ); // Lazy re-loading expected. + + text->SetFontWeight( FontWeight::Bold ); + CHECK( text->GetGeometry() == geometry ); // Lazy re-loading expected. + CHECK( std::static_pointer_cast< TextGeometry >( text->GetGeometry() )->GetFont() == font ); + + text->SetFontStyle( FontStyle::Italic ); + CHECK( text->GetGeometry() == geometry ); // Lazy re-loading expected. + CHECK( std::static_pointer_cast< TextGeometry >( text->GetGeometry() )->GetFont() == font ); + text->SetFontStyle( FontStyle::Normal ); + + REQUIRE_NOTHROW( framework->MainLoopCore() ); + + // Updates should happen. + auto newFont = std::static_pointer_cast< TextGeometry >( text->GetGeometry() )->GetFont(); + CHECK( text->QueryDrawing() != drawing ); + CHECK( text->GetGeometry() != geometry ); + CHECK( newFont != font ); + CHECK( newFont->GetMetadata().Family == "Source Sans Pro" ); + CHECK( newFont->GetMetadata().Style == FontStyle::Normal ); + CHECK( newFont->GetMetadata().Weight == FontWeight::Bold ); +} From 2cd4dc51f1dcb878c5d2c065b65cfb7d28f9999b Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Mon, 18 Nov 2024 23:12:26 +0100 Subject: [PATCH 90/96] Test TextBlock with different brushes --- swGUI/Core/Media/Media.h | 1 + swGUI/TestFramework/TestFramework.cpp | 1 + swGUI/Tests/TestControls/TestTextBlock.cpp | 107 ++++++++++++++++++++- 3 files changed, 108 insertions(+), 1 deletion(-) diff --git a/swGUI/Core/Media/Media.h b/swGUI/Core/Media/Media.h index 06836011..aef73948 100644 --- a/swGUI/Core/Media/Media.h +++ b/swGUI/Core/Media/Media.h @@ -20,6 +20,7 @@ #include "Brushes/SolidColorBrush.h" #include "Brushes/LinearGradientBrush.h" #include "Brushes/RadialGradientBrush.h" +#include "Brushes/AngleGradientBrush.h" #include "Brushes/ImageBrush.h" // Geometry diff --git a/swGUI/TestFramework/TestFramework.cpp b/swGUI/TestFramework/TestFramework.cpp index f5bd9ec4..b72fa51d 100644 --- a/swGUI/TestFramework/TestFramework.cpp +++ b/swGUI/TestFramework/TestFramework.cpp @@ -98,6 +98,7 @@ ReturnResult TestFramework::OverridePaths () ErrorsCollector results; + results.Add( m_pathsManager->OverrideAlias( "$(CoreGUI-Dir)", coreGUISourcePath ) ); results.Add( m_pathsManager->OverrideAlias( "$(CoreGUI-Shader-Dir)", coreGUISourcePath / "Core/Shaders/hlsl" ) ); results.Add( m_pathsManager->OverrideAlias( "$(SystemFonts)", coreGUISourcePath / "TestResources/fonts" ) ); diff --git a/swGUI/Tests/TestControls/TestTextBlock.cpp b/swGUI/Tests/TestControls/TestTextBlock.cpp index b535355d..73b80da7 100644 --- a/swGUI/Tests/TestControls/TestTextBlock.cpp +++ b/swGUI/Tests/TestControls/TestTextBlock.cpp @@ -5,7 +5,7 @@ #include "swGUI/Native/MockNativeGUI/MockGUI.h" #include "swGUI/Core/Controls/TextualControls/TextBlock.h" -#include "swGUI/Core/Media/Brushes/SolidColorBrush.h" +#include "swGUI/Core/Media/Media.h" using namespace sw; @@ -188,3 +188,108 @@ TEST_CASE( "GUI.Controls.TextBlock.Resources.LazyLoading", "[GUISystem][Controls CHECK( newFont->GetMetadata().Style == FontStyle::Normal ); CHECK( newFont->GetMetadata().Weight == FontWeight::Bold ); } + +// ================================ // +// +TEST_CASE( "GUI.Controls.TextBlock.Brushes.Combinations", "[GUISystem][Controls][Text]" ) +{ + TestFramework* framework = GetGlobalTestFramework(); + FrameworkCleaner cleaner( framework ); + + MockGUI* mockNativeGUI = static_cast< MockGUI* >( framework->GetNativeGUI() ); + auto window = framework->CreateNativeHostWindow( 400, 400, "Test Window" ).Get(); + + // Window must be focused to be rendered. + mockNativeGUI->SendChangeFocus( window->GetNativeWindow(), true ); + + auto background = std::make_shared< SolidColorBrush >( Colors::WhiteSmoke ); + auto pen = std::make_shared< SolidColorBrush >( Colors::Black ); + + auto text = AddText( window, background, pen, 300, 300, Position( 0, 40 ), sLoremIpsum ); + + // Run single frame. If something was wrong it should fails here. + REQUIRE_NOTHROW( framework->MainLoopCore() ); + + auto angleBrush = std::make_shared< AngleGradientBrush >(); + angleBrush->SetGradientCenter( Point( 0.5f, 0.5f ) ); + angleBrush->AddGradientStop( GradientStop( 0xFFFF0000, 0.0f ) ); + angleBrush->AddGradientStop( GradientStop( 0xFFFFFF00, 0.3f ) ); + angleBrush->AddGradientStop( GradientStop( 0xFF00FFFF, 0.7f ) ); + angleBrush->AddGradientStop( GradientStop( 0xFF0000FF, 1.0f ) ); + + auto linearGradientBrush = std::make_shared< LinearGradientBrush >(); + linearGradientBrush->SetGradientAxis( Point( 0.0f, 0.0f ), Point( 1.0f, 1.0f ) ); + linearGradientBrush->AddGradientStop( GradientStop( 0xFFFF0000, 0.0f ) ); + linearGradientBrush->AddGradientStop( GradientStop( 0xFF00FF00, 0.4f ) ); + linearGradientBrush->AddGradientStop( GradientStop( 0xFF0000FF, 0.7f ) ); + linearGradientBrush->AddGradientStop( GradientStop( 0xFFFFFF00, 1.0f ) ); + + auto imageBrush = std::make_shared< ImageBrush >(); + imageBrush->SetTexture( "$(CoreGUI-Dir)/TestResources/textures/Tex1.png" ); + + auto solidBrush = std::make_shared< SolidColorBrush >( Colors::Aquamarine ); + + // SolidColorBrush text combinations + text->SetBackground( angleBrush ); + text->SetForeground( solidBrush ); + REQUIRE_NOTHROW( framework->MainLoopCore() ); + + text->SetBackground( linearGradientBrush ); + text->SetForeground( solidBrush ); + REQUIRE_NOTHROW( framework->MainLoopCore() ); + + text->SetBackground( imageBrush ); + text->SetForeground( solidBrush ); + REQUIRE_NOTHROW( framework->MainLoopCore() ); + + // AngleGradientBrush text combinations + text->SetBackground( angleBrush ); + text->SetForeground( angleBrush ); + REQUIRE_NOTHROW( framework->MainLoopCore() ); + + text->SetBackground( linearGradientBrush ); + text->SetForeground( angleBrush ); + REQUIRE_NOTHROW( framework->MainLoopCore() ); + + text->SetBackground( solidBrush ); + text->SetForeground( angleBrush ); + REQUIRE_NOTHROW( framework->MainLoopCore() ); + + text->SetBackground( imageBrush ); + text->SetForeground( angleBrush ); + REQUIRE_NOTHROW( framework->MainLoopCore() ); + + // LinearGradientBrush text combinations + text->SetBackground( angleBrush ); + text->SetForeground( linearGradientBrush ); + REQUIRE_NOTHROW( framework->MainLoopCore() ); + + text->SetBackground( linearGradientBrush ); + text->SetForeground( linearGradientBrush ); + REQUIRE_NOTHROW( framework->MainLoopCore() ); + + text->SetBackground( solidBrush ); + text->SetForeground( linearGradientBrush ); + REQUIRE_NOTHROW( framework->MainLoopCore() ); + + text->SetBackground( imageBrush ); + text->SetForeground( linearGradientBrush ); + REQUIRE_NOTHROW( framework->MainLoopCore() ); + + // ImageBrush text combinations + text->SetBackground( angleBrush ); + text->SetForeground( imageBrush ); + REQUIRE_NOTHROW( framework->MainLoopCore() ); + + text->SetBackground( linearGradientBrush ); + text->SetForeground( imageBrush ); + REQUIRE_NOTHROW( framework->MainLoopCore() ); + + text->SetBackground( solidBrush ); + text->SetForeground( imageBrush ); + REQUIRE_NOTHROW( framework->MainLoopCore() ); + + text->SetBackground( imageBrush ); + text->SetForeground( imageBrush ); + REQUIRE_NOTHROW( framework->MainLoopCore() ); +} From 75e3f05c90b64e49cc6ad106eec97f06e656eaad Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Mon, 18 Nov 2024 23:54:38 +0100 Subject: [PATCH 91/96] Return errors from shader compilation functions --- .../System/Rendering/Drawings/Drawing.cpp | 16 ++++++++++--- .../Rendering/Shading/ShaderProvider.cpp | 13 +++++----- .../System/Rendering/Shading/ShaderProvider.h | 8 +++---- .../TestShaderProvider.cpp | 24 ++++++++++--------- 4 files changed, 37 insertions(+), 24 deletions(-) diff --git a/swGUI/Core/System/Rendering/Drawings/Drawing.cpp b/swGUI/Core/System/Rendering/Drawings/Drawing.cpp index cc16a8c9..28370616 100644 --- a/swGUI/Core/System/Rendering/Drawings/Drawing.cpp +++ b/swGUI/Core/System/Rendering/Drawings/Drawing.cpp @@ -186,9 +186,14 @@ ReturnResult Drawing::UpdateVertexShader ( ShaderProvider* sp, Geometry* geo if( geometry->NeedsShaderUpdate() ) { auto brushFunPath = geometry->ShaderFunctionFile(); - m_geometryData.VertexShader = sp->GenerateVS( shaderTemplate, brushFunPath ); + auto result = sp->GenerateVS( shaderTemplate, brushFunPath ); + + // If shader failed to build, we don't want to repeat attempt in next loop. + geometry->ShaderUpdated(); - geometry->ShaderUpdated(); + ReturnIfInvalid( result ); + + m_geometryData.VertexShader = result.Get(); return Success::True; } @@ -310,9 +315,14 @@ ReturnResult Drawing::UpdateShaderImpl( ShaderProvider* sp, Brush* brush, impl if( brush->NeedsShaderUpdate() ) { auto brushFunPath = brush->ShaderFunctionFile(); - brushData.PixelShader = sp->GeneratePS( shaderTemplate, brushFunPath ); + auto result = sp->GeneratePS( shaderTemplate, brushFunPath ); + // If shader failed to build, we don't want to repeat attempt in next loop. brush->ShaderUpdated(); + + ReturnIfInvalid( result ); + + brushData.PixelShader = result.Get(); return Success::True; } diff --git a/swGUI/Core/System/Rendering/Shading/ShaderProvider.cpp b/swGUI/Core/System/Rendering/Shading/ShaderProvider.cpp index abf65b9f..b1a1ccc3 100644 --- a/swGUI/Core/System/Rendering/Shading/ShaderProvider.cpp +++ b/swGUI/Core/System/Rendering/Shading/ShaderProvider.cpp @@ -69,8 +69,9 @@ const fs::Path& ShaderProvider::GetOpacityVSTemplate() const // At this moment PixelShader and VertexShader generation works the same, // so we can use common function. template< typename ShaderType > -inline ResourcePtr< ShaderType > ShaderProvider::GenerateShader ( const fs::Path& templatePath, - const fs::Path& customFunPath ) const +inline +Nullable< ResourcePtr< ShaderType > > ShaderProvider::GenerateShader ( const fs::Path& templatePath, + const fs::Path& customFunPath ) const { AssetPath tmpShaderFile( fmt::format( "$(TMP)/shaders/{}+{}", templatePath.GetFileName(), customFunPath.GetFileName() ), "main" ); @@ -81,17 +82,17 @@ inline ResourcePtr< ShaderType > ShaderProvider::GenerateShader ( cons // Shader didn't exist, so we must build it. auto shaderSource = BuildShaderSource( templatePath, customFunPath ); if( shaderSource.empty() ) - return nullptr; /// @todo Better error handling. Maybe we should return Nullable. + return fmt::format( "Shader source is empty. Template: {}, Custom: {}", templatePath, customFunPath ); // Note: We save this shader only for debuggins purpose. Shader is created from string. fs::File::Save( m_pathsManager->Translate( tmpShaderFile.GetFile() ), shaderSource ); - return m_resourceManager.CreateShader< ShaderType >( tmpShaderFile, std::move( shaderSource ) ).Get(); + return m_resourceManager.CreateShader< ShaderType >( tmpShaderFile, std::move( shaderSource ) ); } // ================================ // // -PixelShaderPtr ShaderProvider::GeneratePS ( const fs::Path& templatePath, +Nullable< PixelShaderPtr > ShaderProvider::GeneratePS ( const fs::Path& templatePath, const fs::Path& brushFunPath ) const { return GenerateShader< PixelShader >( templatePath, brushFunPath ); @@ -99,7 +100,7 @@ PixelShaderPtr ShaderProvider::GeneratePS ( const fs::Path& templa // ================================ // // -VertexShaderPtr ShaderProvider::GenerateVS ( const fs::Path& templatePath, +Nullable< VertexShaderPtr > ShaderProvider::GenerateVS ( const fs::Path& templatePath, const fs::Path& geomFunPath ) const { return GenerateShader< VertexShader >( templatePath, geomFunPath ); diff --git a/swGUI/Core/System/Rendering/Shading/ShaderProvider.h b/swGUI/Core/System/Rendering/Shading/ShaderProvider.h index 57966770..940e820c 100644 --- a/swGUI/Core/System/Rendering/Shading/ShaderProvider.h +++ b/swGUI/Core/System/Rendering/Shading/ShaderProvider.h @@ -44,17 +44,17 @@ class ShaderProvider public: - PixelShaderPtr GeneratePS ( const fs::Path& templatePath, const fs::Path& brushFunPath ) const; - VertexShaderPtr GenerateVS ( const fs::Path& templatePath, const fs::Path& geomFunPath ) const; + Nullable< PixelShaderPtr > GeneratePS ( const fs::Path& templatePath, const fs::Path& brushFunPath ) const; + Nullable< VertexShaderPtr > GenerateVS ( const fs::Path& templatePath, const fs::Path& geomFunPath ) const; const PathsManager* GetPathsManager () const { return m_pathsManager; } private: template< typename ShaderType > - ResourcePtr< ShaderType > GenerateShader ( const fs::Path& templatePath, const fs::Path& customFunPath ) const; + Nullable< ResourcePtr< ShaderType > > GenerateShader ( const fs::Path& templatePath, const fs::Path& customFunPath ) const; - std::string BuildShaderSource ( const fs::Path& templatePath, const fs::Path& brushFunPath ) const; + std::string BuildShaderSource ( const fs::Path& templatePath, const fs::Path& brushFunPath ) const; }; diff --git a/swGUI/Tests/TestRenderingSystem/TestShaderProvider.cpp b/swGUI/Tests/TestRenderingSystem/TestShaderProvider.cpp index 3ca03791..f3fc2499 100644 --- a/swGUI/Tests/TestRenderingSystem/TestShaderProvider.cpp +++ b/swGUI/Tests/TestRenderingSystem/TestShaderProvider.cpp @@ -29,7 +29,8 @@ TEST_CASE( "GUI.ShaderProvider.GeneratePS", "[GUISystem][RenderingSystem]" ) ShaderProvider sp( framework.GetResourceManagerAPI(), framework.GetPathsManager() ); auto shader = sp.GeneratePS( "shaders/FakeTemplate.ps", "shaders/FakeBrush.ps" ); - CHECK( shader.Ptr() != nullptr ); + REQUIRE_IS_VALID( shader ); + CHECK( shader.Get().Ptr() != nullptr ); } // ================================ // @@ -40,7 +41,8 @@ TEST_CASE( "GUI.ShaderProvider.GenerateVS", "[GUISystem][RenderingSystem]" ) ShaderProvider sp( framework.GetResourceManagerAPI(), framework.GetPathsManager() ); auto shader = sp.GenerateVS( "shaders/FakeTemplate.vs", "shaders/FakeGeom.vs" ); - CHECK( shader.Ptr() != nullptr ); + REQUIRE_IS_VALID( shader ); + CHECK( shader.Get().Ptr() != nullptr ); } // ================================ // @@ -52,19 +54,19 @@ TEST_CASE( "GUI.ShaderProvider.GenerateVS.SecondTime", "[GUISystem][RenderingSys auto shader1 = sp.GenerateVS( "shaders/FakeTemplate.vs", "shaders/FakeGeom.vs" ); auto shader2 = sp.GenerateVS( "shaders/FakeTemplate.vs", "shaders/FakeGeom.vs" ); - CHECK( shader1 == shader2 ); + REQUIRE_IS_VALID( shader1 ); + REQUIRE_IS_VALID( shader2 ); + CHECK( shader1.Get() == shader2.Get() ); } // ================================ // -// ShaderProvider shouldn't generate the same shader twice. -TEST_CASE( "GUI.ShaderProvider.GeneratePS.SecondTime", "[GUISystem][RenderingSystem]" ) +// +TEST_CASE( "GUI.ShaderProvider.GeneratePS.ErrorHandling.NoCode", "[GUISystem][RenderingSystem]" ) { - TestFramework framework( 0, nullptr ); framework.Init(); + TestFramework framework( 0, nullptr ); + framework.Init(); ShaderProvider sp( framework.GetResourceManagerAPI(), framework.GetPathsManager() ); - auto shader1 = sp.GeneratePS( "shaders/FakeTemplate.ps", "shaders/FakeGeom.ps" ); - auto shader2 = sp.GeneratePS( "shaders/FakeTemplate.ps", "shaders/FakeGeom.ps" ); - CHECK( shader1 == shader2 ); + auto shader = sp.GeneratePS( "shaders/FakeTemplate-NotExisting.ps", "shaders/FakeBrush-NotExisting.ps" ); + REQUIRE_INVALID( shader ); } - - From 92cd04da3c0eacb4495b093f6eb283c06796a07f Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Wed, 20 Nov 2024 22:03:35 +0100 Subject: [PATCH 92/96] Test brush shaders combinations --- .../TestBrushShaderCompilation.cpp | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/swGUI/Tests/TestRenderingSystem.DX11/TestBrushShaderCompilation.cpp b/swGUI/Tests/TestRenderingSystem.DX11/TestBrushShaderCompilation.cpp index 0c33a351..e85ae28f 100644 --- a/swGUI/Tests/TestRenderingSystem.DX11/TestBrushShaderCompilation.cpp +++ b/swGUI/Tests/TestRenderingSystem.DX11/TestBrushShaderCompilation.cpp @@ -37,6 +37,24 @@ TEST_CASE( "GUI.Rendering.DX11.Brush.ShaderCompilation.SolidColorBrush", "[GUISy CHECK( renderingData.PixelShader != nullptr ); } +// ================================ // +// +TEST_CASE( "GUI.Rendering.DX11.Brush.ShaderCompilation.SolidColorBrush.Opacity", "[GUISystem][RenderingSystem][Drawing]" ) +{ + TestFramework* framework = GetGlobalTestFramework(); + + FakeDrawingPtr drawing = std::make_shared< FakeDrawing >(); + SolidColorBrushPtr brush = std::make_shared< SolidColorBrush >(); + ShaderProvider* sp = framework->GetRenderingSystem()->GetShaderProvider(); + + drawing->UpdateBrushShader( sp, brush.get(), sp->GetBasicPSTemplate() ); + + auto& renderingData = CLASS_TESTER( Drawing )::GetBrushRenderingData( drawing.get() ); + + INFO( "[SolidColorBrush] Brush Shader compilation failed." ); + CHECK( renderingData.PixelShader != nullptr ); +} + // ================================ // // TEST_CASE( "GUI.Rendering.DX11.Brush.ShaderCompilation.LinearGradientBrush", "[GUISystem][RenderingSystem][Drawing]" ) @@ -54,6 +72,24 @@ TEST_CASE( "GUI.Rendering.DX11.Brush.ShaderCompilation.LinearGradientBrush", "[G CHECK( renderingData.PixelShader != nullptr ); } +// ================================ // +// +TEST_CASE( "GUI.Rendering.DX11.Brush.ShaderCompilation.LinearGradientBrush.Opacity", "[GUISystem][RenderingSystem][Drawing]" ) +{ + TestFramework* framework = GetGlobalTestFramework(); + + FakeDrawingPtr drawing = std::make_shared< FakeDrawing >(); + LinearGradientBrushPtr brush = std::make_shared< LinearGradientBrush >(); + ShaderProvider* sp = framework->GetRenderingSystem()->GetShaderProvider(); + + drawing->UpdateBrushShader( sp, brush.get(), sp->GetBasicPSTemplate() ); + + auto& renderingData = CLASS_TESTER( Drawing )::GetBrushRenderingData( drawing.get() ); + + INFO( "[LinearGradientBrush] Brush Shader compilation failed." ); + CHECK( renderingData.PixelShader != nullptr ); +} + // ================================ // // TEST_CASE( "GUI.Rendering.DX11.Brush.ShaderCompilation.AngleGradientBrush", "[GUISystem][RenderingSystem][Drawing]" ) @@ -71,6 +107,24 @@ TEST_CASE( "GUI.Rendering.DX11.Brush.ShaderCompilation.AngleGradientBrush", "[GU CHECK( renderingData.PixelShader != nullptr ); } +// ================================ // +// +TEST_CASE( "GUI.Rendering.DX11.Brush.ShaderCompilation.AngleGradientBrush.Opacity", "[GUISystem][RenderingSystem][Drawing]" ) +{ + TestFramework* framework = GetGlobalTestFramework(); + + FakeDrawingPtr drawing = std::make_shared< FakeDrawing >(); + AngleGradientBrushPtr brush = std::make_shared< AngleGradientBrush >(); + ShaderProvider* sp = framework->GetRenderingSystem()->GetShaderProvider(); + + drawing->UpdateBrushShader( sp, brush.get(), sp->GetBasicPSTemplate() ); + + auto& renderingData = CLASS_TESTER( Drawing )::GetBrushRenderingData( drawing.get() ); + + INFO( "[AngleGradientBrush] Brush Shader compilation failed." ); + CHECK( renderingData.PixelShader != nullptr ); +} + // ================================ // // TEST_CASE( "GUI.Rendering.DX11.Brush.ShaderCompilation.ImageBrush", "[GUISystem][RenderingSystem][Drawing]" ) @@ -88,3 +142,20 @@ TEST_CASE( "GUI.Rendering.DX11.Brush.ShaderCompilation.ImageBrush", "[GUISystem] CHECK( renderingData.PixelShader != nullptr ); } +// ================================ // +// +TEST_CASE( "GUI.Rendering.DX11.Brush.ShaderCompilation.ImageBrush.Opacity", "[GUISystem][RenderingSystem][Drawing]" ) +{ + TestFramework* framework = GetGlobalTestFramework(); + + FakeDrawingPtr drawing = std::make_shared< FakeDrawing >(); + ImageBrushPtr brush = std::make_shared< ImageBrush >(); + ShaderProvider* sp = framework->GetRenderingSystem()->GetShaderProvider(); + + drawing->UpdateBrushShader( sp, brush.get(), sp->GetBasicPSTemplate() ); + + auto& renderingData = CLASS_TESTER( Drawing )::GetBrushRenderingData( drawing.get() ); + + INFO( "[ImageBrush] Brush Shader compilation failed." ); + CHECK( renderingData.PixelShader != nullptr ); +} From 5b937119ab5859df2845cc8cb87553a30a24d585 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Thu, 21 Nov 2024 22:49:39 +0100 Subject: [PATCH 93/96] Fix problems with not updating shaders after Drawing recreation (but problem with brushes still exists) --- swGUI/Core/System/Rendering/Drawings/Drawing.cpp | 11 ++++++----- swGUI/Core/System/Rendering/Drawings/DrawingGroup.h | 2 +- swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/swGUI/Core/System/Rendering/Drawings/Drawing.cpp b/swGUI/Core/System/Rendering/Drawings/Drawing.cpp index 28370616..ff79cdea 100644 --- a/swGUI/Core/System/Rendering/Drawings/Drawing.cpp +++ b/swGUI/Core/System/Rendering/Drawings/Drawing.cpp @@ -183,7 +183,7 @@ ReturnResult Drawing::UpdateVertexShader ( ShaderProvider* sp, Geometry* geo ReturnResult Drawing::UpdateVertexShader ( ShaderProvider* sp, Geometry* geometry, fs::Path shaderTemplate ) { - if( geometry->NeedsShaderUpdate() ) + if( !m_geometryData.VertexShader || geometry->NeedsShaderUpdate() ) { auto brushFunPath = geometry->ShaderFunctionFile(); auto result = sp->GenerateVS( shaderTemplate, brushFunPath ); @@ -312,7 +312,7 @@ ReturnResult Drawing::CreateAndSetLayout ( ResourceManagerAPI rm, ShaderProv ReturnResult Drawing::UpdateShaderImpl( ShaderProvider* sp, Brush* brush, impl::BrushRenderingData& brushData, fs::Path shaderTemplate ) { - if( brush->NeedsShaderUpdate() ) + if( !brushData.PixelShader || brush->NeedsShaderUpdate() ) { auto brushFunPath = brush->ShaderFunctionFile(); auto result = sp->GeneratePS( shaderTemplate, brushFunPath ); @@ -417,9 +417,10 @@ ReturnResult Drawing::UpdateCBContentImpl ( IRenderer* renderer, Brush* brush, if( brush->UsesConstantBuffer() ) { if( brushData.BrushConstants.Ptr() != nullptr ) - UpdateCBContentImpl( renderer, brushData.BrushConstants.Ptr(), brush->BufferData() ); - - /// @todo Error handling + { + auto result = UpdateCBContentImpl( renderer, brushData.BrushConstants.Ptr(), brush->BufferData() ); + ReturnIfInvalid( result ); + } } return Success::True; } diff --git a/swGUI/Core/System/Rendering/Drawings/DrawingGroup.h b/swGUI/Core/System/Rendering/Drawings/DrawingGroup.h index ada1b86a..c16dea75 100644 --- a/swGUI/Core/System/Rendering/Drawings/DrawingGroup.h +++ b/swGUI/Core/System/Rendering/Drawings/DrawingGroup.h @@ -1,6 +1,6 @@ #pragma once /** -@file CompositeDrawing.h +@file DrawingGroup.h @author nieznanysprawiciel @copyright File is part of Sleeping Wombat Libraries. */ diff --git a/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp b/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp index b4221501..34376759 100644 --- a/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp +++ b/swGUI/Core/System/Rendering/Drawings/TextDrawing.cpp @@ -49,7 +49,7 @@ void TextDrawing::RebuildResources( ResourceManagerAPI rm, ShaderProv results.Add( UpdatePenOpacityMask( rm, GetTextGeometry()->GetFont()->GetFontAtlas() ) ); if( !results.IsValid() ) - LOG_ERROR( fmt::format( "Error during rebuilding resources for text drawing: {}", results.GetException() ) ); + LOG_ERROR( fmt::format( "Error during rebuilding resources for TextDrawing: {}", results.GetException() ) ); } } // namespace gui From 253bd1892a4ebe73825457fe1983823430296d69 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sat, 23 Nov 2024 18:40:11 +0100 Subject: [PATCH 94/96] Use UpdateTraceker/UpdateCounter for Brushes and geometries; Bruses can be shared by controls --- swGUI/Core/Media/Brushes/Brush.cpp | 35 ++----- swGUI/Core/Media/Brushes/Brush.h | 36 ++++---- swGUI/Core/Media/Geometry/Geometry.cpp | 21 ++--- swGUI/Core/Media/Geometry/Geometry.h | 28 +++--- swGUI/Core/System/CommonTypes/UpdateTracker.h | 92 +++++++++++++++++++ .../System/Rendering/Drawings/Drawing.cpp | 82 +++++++---------- .../Core/System/Rendering/Drawings/Drawing.h | 11 +++ .../Visual2015/CoreGUI/CoreGUI.vcxproj | 1 + .../CoreGUI/CoreGUI.vcxproj.filters | 3 + .../Utils/Mocks/Media/FakeBrush.cpp | 2 +- .../Utils/Mocks/Media/FakeBrush.h | 1 - .../Tests/TestRenderingSystem/TestDrawing.cpp | 44 ++++----- 12 files changed, 220 insertions(+), 136 deletions(-) create mode 100644 swGUI/Core/System/CommonTypes/UpdateTracker.h diff --git a/swGUI/Core/Media/Brushes/Brush.cpp b/swGUI/Core/Media/Brushes/Brush.cpp index 1f27b67d..4f695957 100644 --- a/swGUI/Core/Media/Brushes/Brush.cpp +++ b/swGUI/Core/Media/Brushes/Brush.cpp @@ -8,6 +8,7 @@ #include "Brush.h" +#include "swGUI/Core/Media/Geometry/Geometry.h" @@ -19,9 +20,6 @@ namespace gui // Brush::Brush ( ConstantBufferMode enableCB ) : m_useConstantBuffer( enableCB == ConstantBufferMode::Enable ) - , m_invalidateConstants( false ) - , m_invalidateTexture( false ) - , m_changeCBuffer( false ) { InvalidateShader(); } @@ -31,57 +29,44 @@ Brush::Brush ( ConstantBufferMode enableCB ) // void Brush::InvalidateConstants () { - m_invalidateConstants = true; + m_constantsState.Invalidate(); } // ================================ // // void Brush::InvalidateShader () { - m_invalidateShader = true; + m_shaderState.Invalidate(); } // ================================ // // void Brush::InvalidateTexture () { - m_invalidateTexture = true; + m_textureState.Invalidate(); } // ================================ // // -void Brush::InvalidateConstsBuffer () +void Brush::ShaderUpdated ( UpdateTracker16& tracker ) { - m_changeCBuffer = true; + tracker.Synchronize( m_shaderState ); } // ================================ // // -void Brush::ShaderUpdated () +void Brush::TextureUpdated ( UpdateTracker16& tracker ) { - m_invalidateShader = false; + tracker.Synchronize( m_textureState ); } // ================================ // // -void Brush::TextureUpdated () +void Brush::ConstantsUpdated ( UpdateTracker16& tracker ) { - m_invalidateTexture = false; + tracker.Synchronize( m_constantsState ); } -// ================================ // -// -void Brush::ConstantsUpdated () -{ - m_invalidateConstants = false; -} - -// ================================ // -// -void Brush::BufferChanged () -{ - m_changeCBuffer = false; -} } // gui } // sw \ No newline at end of file diff --git a/swGUI/Core/Media/Brushes/Brush.h b/swGUI/Core/Media/Brushes/Brush.h index 82816131..2df67068 100644 --- a/swGUI/Core/Media/Brushes/Brush.h +++ b/swGUI/Core/Media/Brushes/Brush.h @@ -9,6 +9,8 @@ #include "swCommonLib/Common/Object.h" #include "swCommonLib/Common/Buffers/BufferRange.h" +#include "swGraphicAPI/ResourceManager/PathTranslators/AssetPath.h" +#include "swGUI/Core/System/CommonTypes/UpdateTracker.h" /**@defgroup Brushes Brushes @@ -16,14 +18,13 @@ @ingroup Media*/ + namespace sw { namespace gui { /**@brief Brush base class. -@todo Reimplement class to allow controls to share brushes. - @ingroup Brushes*/ class Brush : public Object { @@ -44,10 +45,10 @@ class Brush : public Object private: bool m_useConstantBuffer : 1; - bool m_invalidateConstants : 1; - bool m_changeCBuffer : 1; - bool m_invalidateShader : 1; - bool m_invalidateTexture : 1; + + UpdateCounter16 m_shaderState; + UpdateCounter16 m_textureState; + UpdateCounter16 m_constantsState; protected: @@ -57,7 +58,6 @@ class Brush : public Object void InvalidateConstants (); void InvalidateShader (); void InvalidateTexture (); - void InvalidateConstsBuffer (); ///@} @@ -73,10 +73,10 @@ class Brush : public Object /**@brief Returns file name containing function used in Pixel Shader. - Pixel Shader is combined from shader template and function defined by Brush.*/ + Pixel Shader is combined from shader template and function defined by the Brush.*/ virtual fs::Path ShaderFunctionFile () = 0; - /**@brief Name of texture to find in resources.*/ + /**@brief Name of texture to find in @ref ResourceManager.*/ virtual AssetPath TextureSource () = 0; /**@brief Returns key used to store/find contant buffer in resources.*/ @@ -87,17 +87,19 @@ class Brush : public Object ///@name RenderingSystem API ///@{ - void ShaderUpdated (); - void TextureUpdated (); - void ConstantsUpdated (); - void BufferChanged (); + void ShaderUpdated( UpdateTracker16& tracker ); + void TextureUpdated( UpdateTracker16& tracker ); + void ConstantsUpdated( UpdateTracker16& tracker ); protected: - bool NeedsShaderUpdate () const { return m_invalidateShader; } - bool NeedsTextureUpdate () const { return m_invalidateTexture; } - bool NeedsConstantsUpdate () const { return m_invalidateConstants; } - bool NeedsBufferChange () const { return m_changeCBuffer; } + const UpdateCounter16& ShaderState () const { return m_shaderState; } + const UpdateCounter16& TextureState () const { return m_textureState; } + const UpdateCounter16& ConstantsState () const { return m_constantsState; } + + bool NeedsShaderUpdate ( const UpdateTracker16& tracker ) const { return m_shaderState.NeedsUpdate( tracker ); } + bool NeedsTextureUpdate ( const UpdateTracker16& tracker ) const { return m_textureState.NeedsUpdate( tracker ); } + bool NeedsConstantsUpdate ( const UpdateTracker16& tracker ) const { return m_constantsState.NeedsUpdate( tracker ); } bool UsesConstantBuffer () const { return m_useConstantBuffer; } diff --git a/swGUI/Core/Media/Geometry/Geometry.cpp b/swGUI/Core/Media/Geometry/Geometry.cpp index 31848bb1..e82ae627 100644 --- a/swGUI/Core/Media/Geometry/Geometry.cpp +++ b/swGUI/Core/Media/Geometry/Geometry.cpp @@ -23,9 +23,6 @@ namespace gui Geometry::Geometry ( ConstantBufferMode cbMode ) : m_sharedBuffer( cbMode == ConstantBufferMode::UseShared ) , m_useConstantBuffer( cbMode != ConstantBufferMode::Disable ) - , m_invalidateGeometry( true ) - , m_invalidateConstants( true ) - , m_invalidateShader( true ) {} @@ -33,42 +30,42 @@ Geometry::Geometry ( ConstantBufferMode cbMode ) // void Geometry::InvalidateGeometry () { - m_invalidateGeometry = true; + m_geometryState.Invalidate(); } // ================================ // // void Geometry::InvalidateConstants () { - m_invalidateConstants = true; + m_constantsState.Invalidate(); } // ================================ // // void Geometry::InvalidateShader () { - m_invalidateShader = true; + m_shaderState.Invalidate(); } // ================================ // // -void Geometry::ShaderUpdated () +void Geometry::ShaderUpdated ( UpdateTracker16& tracker ) { - m_invalidateShader = false; + tracker.Synchronize( m_shaderState ); } // ================================ // // -void Geometry::GeometryUpdated () +void Geometry::GeometryUpdated ( UpdateTracker16& tracker ) { - m_invalidateGeometry = false; + tracker.Synchronize( m_geometryState ); } // ================================ // // -void Geometry::ConstantsUpdated () +void Geometry::ConstantsUpdated ( UpdateTracker16& tracker ) { - m_invalidateConstants = false; + tracker.Synchronize( m_constantsState ); } diff --git a/swGUI/Core/Media/Geometry/Geometry.h b/swGUI/Core/Media/Geometry/Geometry.h index 14e5a1ae..7edd9ba0 100644 --- a/swGUI/Core/Media/Geometry/Geometry.h +++ b/swGUI/Core/Media/Geometry/Geometry.h @@ -12,6 +12,7 @@ #include "swGraphicAPI/Rendering/GraphicAPIConstants.h" #include "swGUI/Core/System/CommonTypes/CommonTypes.h" +#include "swGUI/Core/System/CommonTypes/UpdateTracker.h" /**@defgroup Geometries Geometries @@ -68,7 +69,7 @@ class Geometry : public Object public: - enum class ConstantBufferMode + enum class ConstantBufferMode: u8 { Disable, ///< Buffer will not be used. UseShared, ///< Multiple Geometries will use single buffer. Update will happen every render. @@ -77,9 +78,10 @@ class Geometry : public Object private: - bool m_invalidateGeometry : 1; - bool m_invalidateConstants : 1; - bool m_invalidateShader : 1; + UpdateCounter16 m_shaderState; + UpdateCounter16 m_geometryState; + UpdateCounter16 m_constantsState; + bool m_useConstantBuffer : 1; bool m_sharedBuffer : 1; @@ -147,7 +149,7 @@ class Geometry : public Object /**@brief Returns key used to store/find contant buffer in resources.*/ - virtual AssetPath ConstantsName () = 0; + virtual AssetPath ConstantsName () = 0; ///@} @@ -156,13 +158,17 @@ class Geometry : public Object ///@name RenderingSystem API ///@{ - void ShaderUpdated (); - void GeometryUpdated (); - void ConstantsUpdated (); + void ShaderUpdated ( UpdateTracker16& tracker ); + void GeometryUpdated ( UpdateTracker16& tracker ); + void ConstantsUpdated ( UpdateTracker16& tracker ); + + const UpdateCounter16& ShaderState () const { return m_shaderState; } + const UpdateCounter16& GeometryState () const { return m_geometryState; } + const UpdateCounter16& ConstantsState () const { return m_constantsState; } - bool NeedsShaderUpdate () const { return m_invalidateShader; } - bool NeedsGeometryUpdate () const { return m_invalidateGeometry; } - bool NeedsConstantsUpdate() const { return m_invalidateConstants; } + bool NeedsShaderUpdate ( const UpdateTracker16& tracker ) const { return m_shaderState.NeedsUpdate( tracker ); } + bool NeedsGeometryUpdate ( const UpdateTracker16& tracker ) const { return m_geometryState.NeedsUpdate( tracker ); } + bool NeedsConstantsUpdate ( const UpdateTracker16& tracker ) const { return m_constantsState.NeedsUpdate( tracker ); } bool UsesSharedBuffer () const { return m_sharedBuffer; } bool UsesConstantBuffer () const { return m_useConstantBuffer; } diff --git a/swGUI/Core/System/CommonTypes/UpdateTracker.h b/swGUI/Core/System/CommonTypes/UpdateTracker.h new file mode 100644 index 00000000..66e24654 --- /dev/null +++ b/swGUI/Core/System/CommonTypes/UpdateTracker.h @@ -0,0 +1,92 @@ +#pragma once +/** +@file UpdateTracker.h +@author nieznanysprawiciel +@copyright File is part of Sleeping Wombat Libraries. +*/ + + +#include +#include + + +namespace sw { +namespace gui +{ + +template< typename CounterType > class UpdateCounter; + +/**@brief Tracks if Resource should be updated. Enables lazy re-loading and updating +of Resources. + +UpdateCounter is used to invalidate Resource. +UpdateTracker stores the last update number.*/ +template< typename CounterType > class UpdateTracker +{ + friend class UpdateCounter< CounterType >; + +protected: + CounterType m_updateCounter; + +public: + explicit UpdateTracker() + : m_updateCounter( 0 ) + { + static_assert( std::numeric_limits< CounterType >::is_integer, "UpdateTracker type must be integer type." ); + static_assert( !std::numeric_limits< CounterType >::is_signed, "UpdateTracker type must be unsigned." ); + } + UpdateTracker( const UpdateTracker& tracker ) = delete; + + void Synchronize( const UpdateCounter< CounterType >& counter ) { m_updateCounter = counter.m_updateCounter; } +}; + +/**@brief Check @ref UpdateTracker*/ +template< typename CounterType > class UpdateCounter : public UpdateTracker< CounterType > +{ +public: + void Invalidate() { m_updateCounter++; } + bool NeedsUpdate( const UpdateTracker< CounterType >& tracker ) const; + bool NeedsUpdateAndSync( UpdateTracker< CounterType >& tracker ) const; + + using UpdateTracker::UpdateTracker; +private: + using UpdateTracker::Synchronize; + UpdateCounter( const UpdateCounter& counter ) = delete; +}; + +typedef UpdateCounter< uint16 > UpdateCounter16; +typedef UpdateTracker< uint16 > UpdateTracker16; +typedef UpdateCounter< uint32 > UpdateCounter32; +typedef UpdateTracker< uint32 > UpdateTracker32; +typedef UpdateCounter< uint64 > UpdateCounter64; +typedef UpdateTracker< uint64 > UpdateTracker64; + + +// ================================ // + +template< typename CounterType > +inline bool UpdateCounter< CounterType >::NeedsUpdate( const UpdateTracker< CounterType >& tracker ) const +{ + // Tracker's counter should be always lower or equal to this counter. + // If it's not the case, then most probably counter has overflown + // and Tracker missed the update in one of previous frames. + // In this case the Resource should be updated. + // The chance of missing the update is very low equal to 1 / sizeof( CounterType ). + if( m_updateCounter < tracker.m_updateCounter ) + return true; + + return m_updateCounter > tracker.m_updateCounter; +} + +// ================================ // + +template< typename CounterType > +inline bool UpdateCounter< CounterType >::NeedsUpdateAndSync( UpdateTracker< CounterType >& tracker ) const +{ + bool needsUpdate = NeedsUpdate( tracker ); + tracker.Synchronize( *this ); + return needsUpdate; +} + +} // namespace gui +} // sw diff --git a/swGUI/Core/System/Rendering/Drawings/Drawing.cpp b/swGUI/Core/System/Rendering/Drawings/Drawing.cpp index ff79cdea..5ffa544c 100644 --- a/swGUI/Core/System/Rendering/Drawings/Drawing.cpp +++ b/swGUI/Core/System/Rendering/Drawings/Drawing.cpp @@ -92,26 +92,7 @@ ReturnResult Drawing::UpdateBrushOpacityMask ( ResourceManagerAPI rm, Texture // ReturnResult Drawing::UpdateBrushConstants ( ResourceManagerAPI rm, Brush* brush ) { - if( ( !m_brushData.BrushConstants && brush->UsesConstantBuffer() ) - || brush->NeedsBufferChange() ) - { - AssetPath name = brush->ConstantsName(); - - ResourcePtr< Buffer > constantsBuffer = rm.GetCached< Buffer >( name ); - if( !constantsBuffer ) - { - auto bufferRange = brush->BufferData(); - constantsBuffer = rm.CreateConstantsBuffer( name, bufferRange ).Get(); /// @todo What in case of error? - } - - if( brush->NeedsBufferChange() ) - brush->BufferChanged(); - - m_brushData.BrushConstants = constantsBuffer; - return Success::True; - } - - return Success::True; + return UpdateBrushBufferImpl( rm, brush, m_brushData ); } // ================================ // @@ -149,26 +130,34 @@ ReturnResult Drawing::UpdatePenOpacityMask ( ResourceManagerAPI rm, TexturePt // ReturnResult Drawing::UpdatePenConstants ( ResourceManagerAPI rm, Brush* pen ) { - if( ( !m_penData.BrushConstants && pen->UsesConstantBuffer() ) - || pen->NeedsBufferChange() ) - { - AssetPath name = pen->ConstantsName(); + return UpdateBrushBufferImpl( rm, pen, m_penData ); +} - ResourcePtr< Buffer > constantsBuffer = rm.GetCached< Buffer >( name ); - if( !constantsBuffer ) - { - auto bufferRange = pen->BufferData(); - constantsBuffer = rm.CreateConstantsBuffer( name, bufferRange ).Get(); /// @todo What in case of error? - } +// ================================ // - if( pen->NeedsBufferChange() ) - pen->BufferChanged(); +ReturnResult Drawing::UpdateBrushBufferImpl ( ResourceManagerAPI rm, Brush* brush, impl::BrushRenderingData& brushData ) +{ + if( ( !brushData.BrushConstants && brush->UsesConstantBuffer() ) || brush->NeedsConstantsUpdate( brushData.ConstantsState ) ) + { + AssetPath name = brush->ConstantsName(); + + ResourcePtr< Buffer > constantsBuffer = rm.GetCached< Buffer >( name ); + if( !constantsBuffer ) + { + auto bufferRange = brush->BufferData(); + auto buffer = rm.CreateConstantsBuffer( name, bufferRange ); + ReturnIfInvalid( buffer ); - m_penData.BrushConstants = constantsBuffer; + constantsBuffer = buffer.Get(); + } + + brush->ConstantsUpdated( brushData.ConstantsState ); + + brushData.BrushConstants = constantsBuffer; return Success::True; - } + } - return Success::True; + return Success::True; } // ================================ // @@ -183,13 +172,13 @@ ReturnResult Drawing::UpdateVertexShader ( ShaderProvider* sp, Geometry* geo ReturnResult Drawing::UpdateVertexShader ( ShaderProvider* sp, Geometry* geometry, fs::Path shaderTemplate ) { - if( !m_geometryData.VertexShader || geometry->NeedsShaderUpdate() ) + if( !m_geometryData.VertexShader || geometry->NeedsShaderUpdate( m_geometryData.ShaderState ) ) { auto brushFunPath = geometry->ShaderFunctionFile(); auto result = sp->GenerateVS( shaderTemplate, brushFunPath ); // If shader failed to build, we don't want to repeat attempt in next loop. - geometry->ShaderUpdated(); + geometry->ShaderUpdated( m_geometryData.ShaderState ); ReturnIfInvalid( result ); @@ -204,7 +193,7 @@ ReturnResult Drawing::UpdateVertexShader ( ShaderProvider* sp, Geometry* geo // ReturnResult Drawing::UpdateGeometry ( ResourceManagerAPI rm, Geometry* geometry ) { - if( geometry->NeedsGeometryUpdate() ) + if( geometry->NeedsGeometryUpdate( m_geometryData.GeometryState ) ) { std::string name = geometry->GeometryName(); @@ -267,7 +256,7 @@ ReturnResult Drawing::UpdateGeometry ( ResourceManagerAPI rm, Geometry* geo m_geometryData.BorderEnd = data.BorderIdxEnd; m_geometryData.ExtendedIB = data.ExtendedIB; - geometry->GeometryUpdated(); + geometry->GeometryUpdated( m_geometryData.GeometryState ); return Success::True; } @@ -312,13 +301,13 @@ ReturnResult Drawing::CreateAndSetLayout ( ResourceManagerAPI rm, ShaderProv ReturnResult Drawing::UpdateShaderImpl( ShaderProvider* sp, Brush* brush, impl::BrushRenderingData& brushData, fs::Path shaderTemplate ) { - if( !brushData.PixelShader || brush->NeedsShaderUpdate() ) + if( !brushData.PixelShader || brush->NeedsShaderUpdate( brushData.ShaderState ) ) { auto brushFunPath = brush->ShaderFunctionFile(); auto result = sp->GeneratePS( shaderTemplate, brushFunPath ); // If shader failed to build, we don't want to repeat attempt in next loop. - brush->ShaderUpdated(); + brush->ShaderUpdated( brushData.ShaderState ); ReturnIfInvalid( result ); @@ -340,7 +329,7 @@ ReturnResult Drawing::UpdateShaderImpl ( ShaderProvider* sp, Brush* brush, i // ReturnResult Drawing::UpdateTextureImpl ( ResourceManagerAPI rm, Brush* brush, impl::BrushRenderingData& brushData ) { - if( brush->NeedsTextureUpdate() ) + if( brush->NeedsTextureUpdate( brushData.TextureState ) ) { AssetPath textureSource = brush->TextureSource(); @@ -349,7 +338,7 @@ ReturnResult Drawing::UpdateTextureImpl ( ResourceManagerAPI rm, Brush* brus ///referenced by URL. We should change this implementation in future probably. brushData.Texture[0] = rm.LoadTexture( textureSource ).Get(); /// @todo What in case of error? - brush->TextureUpdated(); + brush->TextureUpdated( brushData.TextureState ); return Success::True; } @@ -385,14 +374,13 @@ void Drawing::UpdateGeometryCBContent ( IRenderer* renderer, Geometry* geom ) geom->UsesSharedBuffer() ) { UpdateCBContentImpl( renderer, m_geometryData.GeometryConstants.Ptr(), geom->BufferData() ); - geom->ConstantsUpdated(); + geom->ConstantsUpdated( m_geometryData.ConstantsState ); } else if( geom->UsesConstantBuffer() && - !geom->UsesSharedBuffer() && - geom->NeedsConstantsUpdate() ) + !geom->UsesSharedBuffer() && geom->NeedsConstantsUpdate( m_geometryData.ConstantsState ) ) { UpdateCBContentImpl( renderer, m_geometryData.GeometryConstants.Ptr(), geom->BufferData() ); - geom->ConstantsUpdated(); + geom->ConstantsUpdated( m_geometryData.ConstantsState ); } } diff --git a/swGUI/Core/System/Rendering/Drawings/Drawing.h b/swGUI/Core/System/Rendering/Drawings/Drawing.h index dbaa30d8..a569efe4 100644 --- a/swGUI/Core/System/Rendering/Drawings/Drawing.h +++ b/swGUI/Core/System/Rendering/Drawings/Drawing.h @@ -10,6 +10,7 @@ #include "swGraphicAPI/Resources/MeshResources.h" #include "swGUI/Core/System/Rendering/Shading/ShaderProvider.h" +#include "swGUI/Core/System/CommonTypes/UpdateTracker.h" #include "swCommonLib/Common/Buffers/BufferRange.h" #include "swCommonLib/Common/Logging/Logger.h" @@ -45,6 +46,10 @@ struct GeometryRenderingData uint32 BorderEnd; ///< End of border indicies in buffer. PrimitiveTopology Topology; ///< Geometry topology. bool ExtendedIB; ///< Index Buffer uses 4-bytes indicies. + + UpdateTracker16 ShaderState; ///< Shader update tracker. + UpdateTracker16 ConstantsState; ///< Constants update tracker. + UpdateTracker16 GeometryState; ///< Geometry update tracker. }; @@ -57,6 +62,10 @@ struct BrushRenderingData PixelShaderPtr PixelShader; ///< Pixel Shader. BufferPtr BrushConstants; ///< Constant buffer bound to Pixel Shader. TexturePtr Texture[ NumBrushTextures ]; ///< Optional texture bound to Pixel Shader. + + UpdateTracker16 ShaderState; ///< Shader update tracker. + UpdateTracker16 TextureState; ///< Texture update tracker. + UpdateTracker16 ConstantsState; ///< Constants update tracker. }; @@ -141,6 +150,8 @@ class Drawing : public IDrawing ReturnResult UpdateCBContentImpl ( IRenderer* renderer, Brush* brush, impl::BrushRenderingData& brushData ); ReturnResult UpdateCBContentImpl ( IRenderer* renderer, Buffer* buffer, BufferRange bufferData ); + ReturnResult UpdateBrushBufferImpl ( ResourceManagerAPI rm, Brush* brush, impl::BrushRenderingData& brushData ); + void RenderImpl ( IRenderer* renderer, impl::GeometryRenderingData& geom, impl::BrushRenderingData& brush, uint32 start, uint32 end ); public: diff --git a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj b/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj index 0158e979..c6f574e6 100644 --- a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj +++ b/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj @@ -171,6 +171,7 @@ + diff --git a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj.filters b/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj.filters index 02b9b759..de4775bf 100644 --- a/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj.filters +++ b/swGUI/ProjectDir/Visual2015/CoreGUI/CoreGUI.vcxproj.filters @@ -345,6 +345,9 @@ Core\Media + + Core\System\CommonTypes + diff --git a/swGUI/TestFramework/Utils/Mocks/Media/FakeBrush.cpp b/swGUI/TestFramework/Utils/Mocks/Media/FakeBrush.cpp index d3c96e36..e9230918 100644 --- a/swGUI/TestFramework/Utils/Mocks/Media/FakeBrush.cpp +++ b/swGUI/TestFramework/Utils/Mocks/Media/FakeBrush.cpp @@ -72,7 +72,7 @@ void FakeBrush::ChangeConstsBuffer ( const std::string& newBuffer ) if( m_cBuffer != newBuffer ) { m_cBuffer = newBuffer; - InvalidateConstsBuffer(); + InvalidateConstants(); } } diff --git a/swGUI/TestFramework/Utils/Mocks/Media/FakeBrush.h b/swGUI/TestFramework/Utils/Mocks/Media/FakeBrush.h index 64794bbd..18623e68 100644 --- a/swGUI/TestFramework/Utils/Mocks/Media/FakeBrush.h +++ b/swGUI/TestFramework/Utils/Mocks/Media/FakeBrush.h @@ -50,7 +50,6 @@ class FakeBrush : public Brush using Brush::NeedsShaderUpdate; using Brush::NeedsTextureUpdate; using Brush::NeedsConstantsUpdate; - using Brush::NeedsBufferChange; public: diff --git a/swGUI/Tests/TestRenderingSystem/TestDrawing.cpp b/swGUI/Tests/TestRenderingSystem/TestDrawing.cpp index 00485e7d..73a25962 100644 --- a/swGUI/Tests/TestRenderingSystem/TestDrawing.cpp +++ b/swGUI/Tests/TestRenderingSystem/TestDrawing.cpp @@ -39,13 +39,13 @@ TEST_CASE( "GUI.Rendering.Drawing.Brush.UpdateShader", "[GUISystem][RenderingSys // Change shader and check if ew shader was loaded. brush->SetShaderFunction( "shaders/FakeBrush2.ps" ); - REQUIRE( brush->NeedsShaderUpdate() == true ); // Update request should be set. + REQUIRE( brush->NeedsShaderUpdate( renderingData.ShaderState ) == true ); // Update request should be set. REQUIRE_IS_VALID( drawing->UpdateBrushShader( framework.GetRenderingSystem()->GetShaderProvider(), brush.get() ) ); CHECK( renderingData.PixelShader != nullptr ); // Shader was loaded. CHECK( renderingData.PixelShader != prevShader ); // Shader is different then previous shader. - CHECK( brush->NeedsShaderUpdate() == false ); // Update function should reset update flag. + CHECK( brush->NeedsShaderUpdate( renderingData.ShaderState ) == false ); // Update function should reset update flag. } // ================================ // @@ -69,13 +69,13 @@ TEST_CASE( "GUI.Rendering.Drawing.Pen.UpdateShader", "[GUISystem][RenderingSyste // Change shader and check if ew shader was loaded. pen->SetShaderFunction( "shaders/FakeBrush2.ps" ); - REQUIRE( pen->NeedsShaderUpdate() == true ); // Update request should be set. + REQUIRE( pen->NeedsShaderUpdate( renderingData.ShaderState ) == true ); // Update request should be set. REQUIRE_IS_VALID( drawing->UpdatePenShader( framework.GetRenderingSystem()->GetShaderProvider(), pen.get() ) ); CHECK( renderingData.PixelShader != nullptr ); // Shader was loaded. CHECK( renderingData.PixelShader != prevShader ); // Shader is different then previous shader. - CHECK( pen->NeedsShaderUpdate() == false ); // Update function should reset update flag. + CHECK( pen->NeedsShaderUpdate( renderingData.ShaderState ) == false ); // Update function should reset update flag. } // ================================ // @@ -99,13 +99,13 @@ TEST_CASE( "GUI.Rendering.Drawing.Geometry.UpdateShader", "[GUISystem][Rendering // Change shader and check if ew shader was loaded. geom->SetShaderFunction( "shaders/FakeGeom2.vs" ); - REQUIRE( geom->NeedsShaderUpdate() == true ); // Update request should be set. + REQUIRE( geom->NeedsShaderUpdate( renderingData.ShaderState ) == true ); // Update request should be set. REQUIRE_IS_VALID( drawing->UpdateVertexShader( framework.GetRenderingSystem()->GetShaderProvider(), geom.get() ) ); CHECK( renderingData.VertexShader != nullptr ); // Shader was loaded. CHECK( renderingData.VertexShader != prevShader ); // Shader is different then previous shader. - CHECK( geom->NeedsShaderUpdate() == false ); // Update function should reset update flag. + CHECK( geom->NeedsShaderUpdate(renderingData.ShaderState) == false ); // Update function should reset update flag. } @@ -125,18 +125,18 @@ TEST_CASE( "GUI.Rendering.Drawing.Brush.UpdateTexture", "[GUISystem][RenderingSy auto& renderingData = CLASS_TESTER( Drawing )::GetBrushRenderingData( drawing.get() ); brush->SetTextureFile( "textures/Tex1.png" ); - REQUIRE( brush->NeedsTextureUpdate() == true ); // Update request should be set. + REQUIRE( brush->NeedsTextureUpdate( renderingData.TextureState ) == true ); // Update request should be set. REQUIRE_IS_VALID( drawing->UpdateBrushTexture( framework.GetResourceManagerAPI(), brush.get() ) ); CHECK( renderingData.Texture != nullptr ); - CHECK( brush->NeedsTextureUpdate() == false ); + CHECK( brush->NeedsTextureUpdate( renderingData.TextureState ) == false ); brush->SetTextureFile( "textures/Tex2.png" ); - REQUIRE( brush->NeedsTextureUpdate() == true ); // Update request should be set. + REQUIRE( brush->NeedsTextureUpdate( renderingData.TextureState ) == true ); // Update request should be set. REQUIRE_IS_VALID( drawing->UpdateBrushTexture( framework.GetResourceManagerAPI(), brush.get() ) ); CHECK( renderingData.Texture != nullptr ); - CHECK( brush->NeedsTextureUpdate() == false ); + CHECK( brush->NeedsTextureUpdate( renderingData.TextureState ) == false ); } // ================================ // @@ -151,18 +151,18 @@ TEST_CASE( "GUI.Rendering.Drawing.Pen.UpdateTexture", "[GUISystem][RenderingSyst auto& renderingData = CLASS_TESTER( Drawing )::GetPenRenderingData( drawing.get() ); pen->SetTextureFile( "textures/Tex1.png" ); - REQUIRE( pen->NeedsTextureUpdate() == true ); // Update request should be set. + REQUIRE( pen->NeedsTextureUpdate( renderingData.TextureState ) == true ); // Update request should be set. REQUIRE_IS_VALID( drawing->UpdatePenTexture( framework.GetResourceManagerAPI(), pen.get() ) ); CHECK( renderingData.Texture != nullptr ); - CHECK( pen->NeedsTextureUpdate() == false ); + CHECK( pen->NeedsTextureUpdate( renderingData.TextureState ) == false ); pen->SetTextureFile( "textures/Tex2.png" ); - REQUIRE( pen->NeedsTextureUpdate() == true ); // Update request should be set. + REQUIRE( pen->NeedsTextureUpdate( renderingData.TextureState ) == true ); // Update request should be set. REQUIRE_IS_VALID( drawing->UpdatePenTexture( framework.GetResourceManagerAPI(), pen.get() ) ); CHECK( renderingData.Texture != nullptr ); - CHECK( pen->NeedsTextureUpdate() == false ); + CHECK( pen->NeedsTextureUpdate( renderingData.TextureState ) == false ); } @@ -239,12 +239,12 @@ TEST_CASE( "GUI.Rendering.Drawing.Brush.ChangeConstantsBuffer", "[GUISystem][Ren CHECK( prevBuff != nullptr ); brush->ChangeConstsBuffer( "NewBuffer" ); - CHECK( brush->NeedsBufferChange() == true ); + CHECK( brush->NeedsConstantsUpdate( renderingData.ConstantsState ) == true ); REQUIRE_IS_VALID( drawing->UpdateBrushConstants( framework.GetResourceManagerAPI(), brush.get() ) ); CHECK( prevBuff != renderingData.BrushConstants ); - CHECK( brush->NeedsBufferChange() == false ); + CHECK( brush->NeedsConstantsUpdate( renderingData.ConstantsState ) == false ); } // ================================ // @@ -265,12 +265,12 @@ TEST_CASE( "GUI.Rendering.Drawing.Pen.ChangeConstantsBuffer", "[GUISystem][Rende CHECK( prevBuff != nullptr ); pen->ChangeConstsBuffer( "NewBuffer" ); - CHECK( pen->NeedsBufferChange() == true ); + CHECK( pen->NeedsConstantsUpdate( renderingData.ConstantsState ) == true ); REQUIRE_IS_VALID( drawing->UpdatePenConstants( framework.GetResourceManagerAPI(), pen.get() ) ); CHECK( prevBuff != renderingData.BrushConstants ); - CHECK( pen->NeedsBufferChange() == false ); + CHECK( pen->NeedsConstantsUpdate( renderingData.ConstantsState ) == false ); } @@ -291,21 +291,21 @@ TEST_CASE( "GUI.Rendering.Drawing.Geometry.UpdateGeometry", "[GUISystem][Renderi auto& renderingData = CLASS_TESTER( Drawing )::GetGeometryRenderingData( drawing.get() ); REQUIRE( renderingData.VertexBuffer == nullptr ); REQUIRE( renderingData.IndexBuffer == nullptr ); - REQUIRE( geom->NeedsGeometryUpdate() == true ); + REQUIRE( geom->NeedsGeometryUpdate( renderingData.GeometryState ) == true ); // Initialization of geometry. REQUIRE_IS_VALID( drawing->UpdateGeometry( framework.GetResourceManagerAPI(), geom.get() ) ); CHECK( renderingData.VertexBuffer != nullptr ); CHECK( renderingData.IndexBuffer != nullptr ); - CHECK( geom->NeedsGeometryUpdate() == false ); + CHECK( geom->NeedsGeometryUpdate( renderingData.GeometryState ) == false ); // Change geometry and check if buffers were updated. auto vb = renderingData.VertexBuffer; auto ib = renderingData.IndexBuffer; geom->ChangeGeometry( "NewGeom" ); - CHECK( geom->NeedsGeometryUpdate() == true ); + CHECK( geom->NeedsGeometryUpdate( renderingData.GeometryState ) == true ); REQUIRE_IS_VALID( drawing->UpdateGeometry( framework.GetResourceManagerAPI(), geom.get() ) ); @@ -313,7 +313,7 @@ TEST_CASE( "GUI.Rendering.Drawing.Geometry.UpdateGeometry", "[GUISystem][Renderi CHECK( renderingData.IndexBuffer != nullptr ); CHECK( renderingData.VertexBuffer != vb ); // New buffers should be generated. CHECK( renderingData.IndexBuffer != ib ); // New buffers should be generated. - CHECK( geom->NeedsGeometryUpdate() == false ); + CHECK( geom->NeedsGeometryUpdate( renderingData.GeometryState ) == false ); } // ================================ // From 69936011804554cb2a1a6e3c0ef68c414a09fade Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sat, 23 Nov 2024 19:05:53 +0100 Subject: [PATCH 95/96] Cache Fonts metadata in FontPicker --- swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp | 6 ++++++ swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp index 27017dea..f6920ca1 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp @@ -107,9 +107,15 @@ Nullable< std::vector< FontSearchEntry > > FontPicker::ListFonts( PathsManager* auto files = fs::Dir::ListFiles( dir ); for( auto& file : files ) { + if( m_metadataCache.find( file ) != m_metadataCache.end() ) + continue; + auto meta = GetFontMetadata( pm, file ); if( meta.IsValid() ) + { entries.push_back( meta.Get() ); + m_metadataCache[ file ] = meta.Get().Metadata; + } } } diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h index 0a2fafe1..7a4cb3d5 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.h @@ -108,7 +108,9 @@ class FontPicker { private: - std::vector< fs::Path > m_searchPaths; + std::vector< fs::Path > m_searchPaths; + + mutable std::map< fs::Path, FontMetadata > m_metadataCache; protected: public: From 667dfc9e62e39ebfe29f27833a4dc73da8c20979 Mon Sep 17 00:00:00 2001 From: nieznanysprawiciel Date: Sun, 24 Nov 2024 12:23:23 +0100 Subject: [PATCH 96/96] Fix: Add cached enties to the list of fonts returned --- swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp index f6920ca1..d32f2bc7 100644 --- a/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp +++ b/swGraphicAPI/Assets/TextAsset/Loader/FontPicker.cpp @@ -108,7 +108,11 @@ Nullable< std::vector< FontSearchEntry > > FontPicker::ListFonts( PathsManager* for( auto& file : files ) { if( m_metadataCache.find( file ) != m_metadataCache.end() ) + { + FontSearchEntry cachedEntry{ m_metadataCache[ file ], LoadPath( AssetPath( file, "" ), pm ) }; + entries.push_back( cachedEntry ); continue; + } auto meta = GetFontMetadata( pm, file ); if( meta.IsValid() )

rF^0U|zO86^(cIKX*_kP|)QtLz^?lHrC1?(ewTl7W+$U z*Q6}mf^v7^Tez$(*I%jd-gDh&^y${NT=^5;52jynEWfqlkrA0^e>f0#TbJtCUq$$P ztHtfLHqKktKdWoomUWJ2{ywTKQGKwGexvZ$HM(cff`N}MUwxum z`uMxvPu-vK*KaF+`zRu3!LsF-t9;xS^$y?KWvx|hYm#O-{v?ubp(PH%g-*1m`>weddx7;~x z+~wE`nR%xlxYXRg>(p1dn}$>yG6n0lg}=WV{;_HCFM+S{7upOUth5G z^|Lz;`S0((Zp(?-)RcX3?WCmdFO%SH6?k_UVDouC!OYsm9GeqX%jNBTtvr zda>BizEEK==ikrxc6TFu8nM!iA-TT{D^4&G` z!@oS|Y1`%bkG`0`r`5b~Chr_|56=4({)VOQUYph9TyEpIP_K4!ca1wM?tLz1>pLHZ zz4!Ccb&Vd2Lm%K^d^t}Yo?bWox4P}N9Qdtuqsb3iUJ8qUYG9o0ovC*e?A`SE?bshq z_?v3aTyt{RD<>)?>Bsy1eEE%xs^yx^>iN^j^T(dQ<*o&r9>z}G!e4vm561@d+*bXg z&d%u{O&a>@$1g;CdyUm5zxLU-iU(U=_!wvC$#n0D%>QFw*2_CBLw9|!;>9+N)?a8I z*2mU(dX1uwGRKTbfP?`a?Xvo!FKv0?4cnD+u{+Lf>UHv={3G{T+a0~odfvyAez-LI ztJTQF6&G0 zC4AYw&WSnS6b^cO`WL zBhM9NOkA<*dGLe3g}>38>#w-&e8{K0ElOlFLQUMor#$law=iihKY9{LVfOC zf%$viI{ulouHR;Eopg1}u$nJq9o*P;RibsxJ*zAAJJqxK%YVaeSoo_l{py+u@7{9g z_ZI#GO}}d5-ttk*`QvqutsL6;zOI>7mw=D|D*SmquJL~KiMS6Phm(Hm+NI?K&xil< zRoC@H8{R*4MtH@)ihY`vgv}6L*2xRgUX6SB-Dm#Hd)@o>lC1P&8^$J`xpiEXKKrxd;wNfW|M~ZVcaOW*w7zU}^*jISl#j38R5b197a#wqCQxYAw@7-ZJ9Ma7}B8vT<1-TJl}_2j^8!?9=Pf zBfWm|zP>!+&-)8*+IR7;N#%P@n=+&W_PY`OzW+6QdbdflX1vk2&Xvfv`IqmSGP_Bw zqdA=83^|I^BMLLD=^_CvBacS>?O$QXg;AsrrwtpB;}+ z&uiDT=b^!!#=evB;Ol=>ySoT{7vI=reS6gEntSs+3x7=O;`!pekMG@CE&PF;`p-CA zE49;?Upk4t`~~5!>2J?8&6)k%!!_bZG@02h`R_g<@5O|M?mGMKuQiu^yJ{Ku&}rds z*Pqqm)?V7N_Uz@|T|Sw3V9ni;*{v$fXm?Y&{yB?N-U>yzw5-H*n|zhK>cE5LVi!Nx zxz9V{ZGU_)rw532XOeeOdi+>7=? zjrPK08u(0b_r=R;+|Lf=9I-TkNWyk9Mj-sykg}-*mS5`J( zXX#s%xbl{3iWg@JZqC^IvL>J~H#Y?~AM6GIw^PuzG*K`^1C+`*!@)x6Us+CSJYk8H@oS z1G=meem-xDf1uvF^T)c~^i=1k4?MnU^8TOZKQe6VZO?Z2^@AmKv9411YdWK4#qSC> z^&VPj$KtG)w)XjU>%6yjeLtx37r#C}DZ5eRG>o}~zn_-Y{_2)RAMKp|#+-R4RwZ;< zAKkiAYMc4p5C7uJYJPdxD)3#{4!W#O*Hx;s_@|@V^8FXid)NLwYvqh#p@ru^xpmRQ zl^)!D`OnWZ?L*;DTlnLwA0O^AZBFa*6Z^c}U~}lhzug?a{*tdp=MJ?S&a>csf5o_> zehvJC!DO$@jB&8Tadn2RV%E@rHRFH@SvjfcFow(-Ga+MW^SI{C={0R^7S;Eu=|cx} z8rlydb_D4QXR{VfS~P1C-=bObxSz=B=>zaFe*9IT)%B9i5RmmP7Wev8kD( z$N#r;o;5amB2GgQ<@4`bu4ZKhtW;^PO65Z4jfxD#&}1~f+rOVLvjQlSTcP$~rAf`n z&KQro87S&Z-BW=NC8Wc!WJVOI8- z^a-P6ye0a8e>;bWY0TKP8xfPie9MUHhIUNTM`vQ@50k$)tW*_)OUoX|H z^cAvF)BoG0gr6LEI4Y}z*7xCo7}Gc{*a`h?N9<47DV+PY!IU__2s zZ_mn^Iu)i@H!SM3?Ek1DT~n}W*;%u&C}(mRjq5*QFBs+BxR#`9Ra!P|Z;aYnqA&fo zvkHE7gQOjkr~YShS?LB2so{pmVrK5h@zo38fDv38hn5+cH?GN~Wn&EU9}HKosn|i4 zW{lZ)+>jSXN?7K00~_=>uBR)b{oT;c4aM<4(7ec0;+jmDVu+(Rq{L~!@{em;>6V3R z_D?kgWkvO0R%NAQ^>DWF?*A#r3-ILsEGCnu;Fz|I%vt~Kiko^PCF!87kDfYf#6PZ7 z*KnJ(?DWxN(k7HO2>ZADCUC(ihPZ!2nhzGwq)xt(uR39J>bM&>Ru)}}QW*UEZ(O=n zimp>=Doa%J8_G?U#sG&z2Ab7>o_En{{ZsaIO{EO#0)yM?zn{(P$IPP_xv4=33HrZR z?i2n6Gq|B2c*g%Kp(+2XgtGou31$DU5}NwIN@#3QLfUyulfmo;8&{-6jlsMlx0Qi; z2!1~pF1z+OT%1mGXd$pTqsy+r6idt0s#Fni;@E=ATaJ9jIOn<|b zi2o=kxV-p}DM`BgLu10d{_L2@f!^GoUGW#a`em>GofUWpa+pLP9PQ05=;hV-oy4u? z&Fh({-1@*aUVVpwKjPzK{|rF;K;lgAQ-i#ZSKjrZF>&xU9>0uVAlnZ8T##68Ej`ZgBj&=^rcSgBg_{HIuh+i-K zM&dWs88z1j|6YHHHxD*)bj@8vqVATKxLa1@?(GtH>r33_m$=(n;%;||yKjT<7O&u) ze=f@`kco38?k<(M!^aEq8D8Qp5_j?WUjO352vQh_e{|Ti4*1Vw6>VAy{vQ&qyYT-P z;Tn(sXN7Az{xfZxHV^+#3D=|ee_FVf;XkXhO?wmnF9=s5{&V))rtQK1--L_t!*~VQ z8T|iQxc$|)Kr>xGkl`Z;axBmIQOY?W-WU8NlG|5eV|vzhwaDK(J!WfJFk0K?vYC#|LmAJ6hjM-zRjyYB;x%r8gVh0i?s#~ zwO>pdk3NP0Lz3nn%NZbYp(Bvr8&hQU>bt#qNY}iYlZEfx!mG*FgC2kTZ@qanzxDX< ziPSsU=I3Wu^y=NhJ$im}!AWcUUL$6_jmM8n&p(zO?$$S*`V>*9*VDIn65=ymNqJK& z-Stgw{VTJLBbNF3&iSl49)E1I{DY@m~Ea88r7N5i-%ab|*t7BxF|4%V3z`L@yy!b$_f^{|29)3Bvmq zOmN@diQ&!N`j#TAThC9?@kvthhQ=f&>qGFHjJebirdyNyIT;5d3n zsN+6*31>X@g1m5RJt&Sv= zR~5&2k*})P%@@Bk%j*aWQ@a;zW27oGGcBvu`g;dabXro1q8jrFw z!`8#PsNP2TH4Dlsm+6F7u=>7pbP2UtqfvGt{gLf*$aF)jbSVbyInsuC_h6aXIR^2XLBj|^%>4*rEsSU<^ zNz81GvPDG)y%857g;uosF5_JyU;!`d=a=}1YrlMO-XB*r?)~qIJ_; zs^rYp-WbD(LE4(2&{M|FP@yX#9G5j=5CL(!k>C{-Q9sPk4e{O+QTC5&cO$iqQDmxB zh5vDucK9Bp-EFClaG9EwNt|W=CEnR>5%Dwb}}+r?4gpYp$>! z3hSe=Q3^{_Sf;`_@9`8r!cM;llkLjr7~=h!pAsBYTzpZc|vS z!nkHn`s=N*u?m}@usX0Amj3D+F1yxLVetyq_L;)ADQv&O4l0Zr6v+1tGhBA9n!;)*EM8%)74{Td9G^P0=M0x! ziw-m6t7*9GS_(!xuD<;-?Cb9yfI(lI_~P#R9t`vJ3n}_}kA4=zhFLY-)^qC-ndZ*D zROJ2`A4Jp7I+HGVoJlA3^7^4{Qs z`$-Tj+21)_m!2{5uqFA^Y$+Iq&E(i;8J?%;OJc}5ll9Kw-SQ&tOY(Q{XD|HCpS}>o zy7YyAx%JMG2v{>E55ufveQ$DJk4OZ)33sPE}?d2trR56 zc=IM%IQ-cq!ss0R-0pAU#Y4)q`i|Tq82A=)IQO9sK#H|<_`WOd@JKHPdm;X4eM^eY z0?OUg24kOLBZdzfQurGD?ZD5b732R=;fhBw9}zB8PBGG1jQVg#sgcfX_#%g==*-o) z^161UliiHQ4y6V&CI9XN{)9Q*>7=WSNwGuZ!+xy~qEs++7VX}N*5*ekmyH`Aa z9Tj7Vz@ioQnl=tur>IxXMNbqYRF->-V686m#hrmNg_lm z@yX>=ifJs@ig?mVJRPNkEE(SnlwPFP7{8IoNc|vD&=|DLtt|!z)iAILv0=D$v)z;m z%Nn)xLU|1pWnDoe+zT0(bx00dOOIGsUTuZ{P^0|J8q!usaju{YaUpzYgw=Q25hJn` zh1^6s%-m3N;}_z#3>HloT!|RFBKE(ag6dUD@MdjGK@<@p zlf#iI4ibo&FXqG->L}zxtMD@mkwl85O1~_Vl71YbcC&H>*W!jKe~PU!K`+f+1R#)4 z!9e1Uiq?*fdKh0+z>PJWFB|+a%oPWK)5Xikdc*-BWhR{N3XOMQ=*xWyLL;p{AH;lH zTeAq)Lm~}``KF-GcsY!CTEx?!j5q5T<-@br#q+)54NT#?jlkqTN{Yti4G7;NC&&$J z8$a;>hwx2toWeJYx2J_%jfhVnyGsIh{7II*b54KSz+rG_L0KAQrLclQTHwLLLIhDgW5oeT~%0l3ktFiPnXqm(Yg{;9BH zg*hQ}OMjINmtAYFuvQA|sIblo9q zDDkpAc`><{2%%LU67J25NW{FzNlY^A=&o&!za%qck6LXlti$8Jyke9R@}yX}QZ^X$&G zTY2O3Y<2IsywH)H*U{qEwjMl z-BO&h3iAwjeJ|gjmlsn6gE$|_X@L=i$w>1kel{&#x!98&5g0y?kcy9@{1Zz_#S|qd zO0@^AhMqxQC8c64IfODPYto2OFf{v@f^n?qwY#D}lzmd9kQM!4=N2ssdsL1dD?D^V zV)Cjl?g!$&z5p6pDj6NF8DNAdP&0G2gr_G(pn%vbg+hwGEk(pp=ugb~1DUGKIs4cN zD(UW!C`?~iY=?9x7hX?v9f_2$(d08iGR8YZw&tk7flgRz@yFx&_2k;_BCK7!5=9k$ z2zH2f1_=_}kSNp+wWlKtf=Nq9Q>a73h1Rw{2*@;}%3LKMpda_ZmUbV-rY2AImICvCt;6#1HtH2tQTpf(kD` zYFTm2P;pS4U^i%vm{{Rm;yz4>h?C%^N({#jX$dI%KA1USypw|RW{%Cce`&gS%2jfxL-AZy#Vq{nxNot(ReVZ^aH_ftK!K>^(4Tl z7(W?H3E^AF*%yHFiFuL7Z^exrKWxD=ZR1kIZvr!)4cE6xKjtEfm&9VS^MlRAJn2PsW$7u#Xh>slu)*%u-H!+%}PXyK98i;Rtiw0ynPks0x?^MSas8c+OvN zx52F+>2I<%iV51xZsP;Il-bP$+Y`t%thYKE%h+v|U|3K(ff_;YXeQ7h!d8hXgq4+o zscdnHx03(D18(#c6*1F^`X{!kWFA;_mBFOrfbj!h8q)XxLE4aBfhaV7&!vbH6AhZj zz@g~%@f+U`O7(FQ(0ZVV)W`4M4D?>(KF_!(KdykEcw0NaLwpj1?p{Rbd<> zN$gXF9Yfua*h#}BZB@_1#}pu?>m~UuFDEGqL0&=iastl3`akPsq{RWDit{<>WyXt2 z%W;D&^KeU<)s9MNwiuRAu$J|9R-w>{FyAUi1xQ#;_=hiDp#r~ZaNXhdnh+@lN-sg4 zst45DnXCAji)0P(Oc`7l}2Rg+J8X;2IFKvW`Mb6#o?=#RdLwA^NX1m z%bWGa0bq;)wnn|6vmGc)BmtDqJAk4tX^Eih*E@o)0!;#a7qk=T2gZFU;`QR5-w`8B z(a%GeG3pgvvR+ASB<>}~dMU9v3gc*0V$UmV9^#eQLc@i*HU0bk&zYS^&mtn(P6cT^Yo!9yAv@J=R#gco; zGCg#2QixV$$A61E_wSHwJO10UZO!wGLf$4~S(s$?=*Ls^U!0F8*^sfon+IG%and!< zc7_F#Z2e3hx@ju337cllKakykx(ictk-}n2(l-hHik!Fe=5B6~TUeZPtVG=I+`lZ& z`82GeMrHm1=e%-o)2`Et`OBIY6KxSW_KS((5zcvskmf}#(mDTYQMgaCAU*n^%CI`k z?wgXgU^VW|^z|n_+>PgwFv&XDYuzIiH33bH zOwg@w_vjt}`eT1mY@sKiV0Kg8?vCB=N!UNTMo^jynC6`FdRHS!Z|-R%Sx}tw0bV%~ zW#pW1D=sefKuwdFoR?(rPT0!lVG(c4>+=3mU7E|oaBn`=7jc=&91gcl#7zaHxR z@NoI8axefc>IkQu&WNHGdXLJnj``d8rr(GfRaDmlb69u6*4dHn*sUgNh2LXKBfASE7@|2jqQ6`q3PY>V7a@5$Qf{lvxW=N7b4 z<)vFZ`o`|_&*X%5^4m5RmFwj9Y_wf;AB)U(!UT7HBK$i&n>&Tu!VxU7cw<7pn8eKO z@fUrV$knoM_8_qqsPQxi7WJQ1U*y?cyeYZ(Gt{aO=R>Wp78j@JvPq`sMiYg}GMg;b zUxU1Q|HG!X4(_dRd;K|w{W;%)oD}f^&X@33^M0wk&-ZRgT914}3z@UqeCCtSmiluR z0bXXn{V>@sqV_2O`ZuJNjR#vWCvHTuP(6lbPCWJs1aI5ktFMXSXv3>N8#5CWEgTu^ z9_fvj9Kt(y6WJWpc*6=Q#Bs-98%*{z?JN9j8oBdk;bL9-Ot}8S|1X4#wrNSq)nB=$ zDc3^fdP=$0E7x}A`US2(M0{`v>2?y@RST^PI|Fsm(!_;3YL|aw!HCP0BC>=7!i!e-_P!JDKzaY%tq5WK>8i!@pd=V-wl(2#bJ3 z_${p$q!y_?@WJ?DFI$^#3&BXGgP0-5X#=BiJc`r?W*{Pp9k9X`@4=~58To$LJD34x zju1hF4-Qi1i4Yr%d$W{cAvBpGXgz6$VrJSP#1au|qODhn%%n}o&PHaW4olMnW561e zcKFyOqr+NY=36An;?_lUZz7~LnOr39r`Y--`asr$Lybo$wo6L$^x+cjOq?Xjco|O| zkf#JX*47R2Gzk(bx!XRZ&UtkmV?p8_t?@q+8sFO;gM|JUI^S~UD2GEM{>l`R$ue#g zHF^U+eqgA_;{qVHhRqvnttRbjBciHVt5eS$VJlw|BQ(|=Gir16b;~s|Sm)h};1LKF zSdXjR`1OKQLT(ro1;fZGew+|0axYBT$yki1Hz@E~tPpwB1?`Cd+&q z7%+pzIJ!C-!X1fUc&IzVuFAO?m?3}Lk(IJ^o8%ZULd7-6ay@RraA0z{0#%nS?w|zn(&1A-mP0vmh{+MiK zQD)8XJVe-9vz$f;l@rf{2#t&go%;cb$%(Rw#N(>K%v&Ejs~pVs6{ob zp`kHWJBDxd9o<69M_`(xBBnh;tONWnjcjc5@C%(?;>UIBAB$mnGZnA>L+! z__7mme-b}(KrW$}fVbN!?w_-`(EHtG3DKrPk;69}?xMevCNJGYT(^j@>|SKp2ul~O zCG;q_fVJHrxJV9zN_HHS8?v%>BDI^uC#d-jfj5`iIajn)?#6QwfODJA~ z*JtpIkkIDVxsx!=ws8WgW~8Y_;dbz3ch~luoI4vTUS_he`;x^J_*^U?zAy%AqEeMr zKxNd~6a<+ng3Sa^4$cijJoijkukH0U4@(HmYl)wEPfa8`xQUp!oXd` z$E;8gP?tLjB{e>ZN(!=1mIC=Sxfp9VIe}ek7Zr)nJ&}uRrVXl4xsQjvUG$(t7>@q= zH7KI=w3s3aQN9-ovZuuqK{!7^xiTAhkXG_i%wW`sz$gmPH+GPrD4=Et0%8hGx6mC# zBaYkP-vi34Qn==Gfz}3v_CRY6+7~n)G!^s?PN}qXf4oG(59ecK*@n7fKv2I2jv8E z2I#Y(IiM>+r-RZyd@+p}HPt}oFb%nK7Sc1a3D2!ZLhMlaiX$qr_kBpBtKGNR? zh2<;kbA|0z*ad}MR2X|X8DF&FvTL&xMr$9L2FFg)U$Wt{YaB&MY_P&+Dr~mG7Aou^ zg}tt@Hx>4w!ah;holu|2G&&hByVg@-eHAuCVfQF(fx@VSlkf4G!d_R{T7`Y6upbom zqr$SmC}mz|8ZNswPhkrcwnSk|6_&5CO$ytsurC!B0`<8}Bh+x&wTcR>s<2iHYp1Zz z3hSz{OodHX*rN)2LSZi{>@|g1!_B;e87{k4UtzZ?3_R7yb8Cg&r7&L8u zgX;>~xla{E1WT!2y1Ri_u0m)Fi>sSb@@$FN zq#&-NzhC|(Dt@q3`6MFO;J1$6X%PHG2)il0(@1~z)=My3!oCU8i&q%yLp>ulN*G?) z4#AG$XA>+?x=<^{fS<=>m7X@3hG*=S)9|Yg6}Y?t1OCzJ8Ce{DnFD@~sO1QpLaG#Y z1`8o6F#4|u{8}R)3PY951kfq-z8da1(SnXfq`~e~9Oj5K$SGe_H*u4|#=vai7T6Kg zEPHrG-dR_8OoD_K7+&$zFPaorbvPg+ML+_P%l;|?FT=C}{w6`{4UH&&UDJl@A{9A* zN7IJp;yyyiIFz-kU6Z=CBa^NaoOJL+n6#>Z{qty%a`<&qPBKzr!7=6jrBW_!RDp_V zUWqhQ880ULm>f%m>-XaDytm7gV6sr;QDV@}{;{VeVD%6*bvE9N5|njkD}Jm$rinvs zo95$vJy6z;`k+WnYY57s<9%(=TR{22h+}$0YXsU6v@s~_VoOkV?9`phj-4))p~8k6 zE<0?ROn*}p_OQYpRoL?idr4uRC~Tv`PAH6`kxZ8rOy-51v&4oeELCA!6t+WQ-zbcx zxH4=nv_%g{ z>$7b77jC^-3Klda&M%&Ib8c}_o~@Z&K9%H5DvB@8y+N_^*>pi364v13h?LvcC&& zhc#90FOfyJLH-l!WY$Q5QaLd%3v*0f{fj{OoLc_YSWNYy53z7X6*d(~v33b}uH7M) zR3TS6cY3h$Y8jrVV4IE=pzh+W$+-pL9=`$mC5+E^Zyj?h5BZT#4f(sc*j%{f@p~~* zAif&DpBD;xA0lJcIj4lJD`1>DlIm`LdM@GW1syl*Pa$U%cfeuOI1)c9T$I(12$$J8 z97A6oU&_{jYh&4XdxG*jM0o`|2eD?WtiHjE=xZSmm2T7!1^R|6A+xoI#Q>2*_pZXv zO+ux)2)+aTMoCR;px>A(2FcVoO%=I0VVR}1#s)JrU`!XK^{@<7{fI>itc2mPPF}xT zregY>TWD~gZN`xb#ld;R90!#^vSqQz&oTrM19lV)>|(JzO=`K>{^fNQaZR^Sg+XDqa+~En5f8sP)msBx3`HX~GH?!_IuOvJLatF5vg@P%D@%B&Yk3lesaFss zlcMRSnUqy~12YKSv^y-^a3a`-@Px%3)DLmx9ecqnD7>PuIK~E*&&_b#pa>fbcZ9Gi zDL=(A1!|rcK7b)2o4Co)xE^v^Uvl$qHH+kpC7JS>R=p}1N_c2+nd zNraN7kL(v_i+f56(%|)Oao+&ls9fjAwel|s%yvymc4$zU62A_+Do8ISR<%tR*yo~_ zaq|J0L$1QQc9k2Ogj0M`+8s(|luO*Vw$NC42KHQ_wxgVjk(OA+wpt|9M!bU1--}>v z(9YsSA;_!+uVQ0WK*O-`rKwht8T-!CMr&wcvB?m@E8AWZAx4NV&mu9i=Ecrk3-Lm$ zVIxr1786VG5v|k$V~Yv7B}epix0v83qF!Q~$iLiNgp1qui2Dcd`mL`iI=%sm?n&XN zCyI_+7Rch`*pW64l!k)Mkc>rcbNd;K+$y8i*&?ba!=Ha;a63q((-h0tDvHk`w@DGU z#>@(P=Q+YlH6$A$+FcuD;(A}43LQ$G@--~l5^-OMm$+ACyNqROzMVqhZ@0QZBSXsx z^Ct6?1+-`6l3y}%%_m}~fxP_8g;3i1O4lW3fC{FN55=aCkZ|(%jR^kQy8kEmj z`@4g(&+H9KA@(GGQi!F?E@tQ?Mm?3pCMbWDZzMKHVRIF>Qekf>>;r{;tgurGJEO3x z3d5%~(x6?j%nPS7WxB}K8`B*QLK*cydV|0MnGR@j#cYliZXVOtt5 zyXIC{lEPpEZTN!~v=QG7h25jD1q#y@_Kd<_P}nMky``{y3j0Q3M-_HLVOHpsWS+we zmtCu*uxbixr?3tR>#DFG3QJemRE5n}m``EPE9@nOy{WKw6=sJpC-YaqaM`t+6^5ai zQGOj1)=^=76gEI%uPKarFZnIEDQu_0eplFKg_T3YmU$^}xa=DBUJ|1vu8fao7fWoM z!X8lAg9>|EVb3e<6NPP5*e-?bRakBC0GUQT!v&jgg*8{$C58Q^FtP2R(BN<&CR8{% zvvX%fTEy_ctGCTbr8+0K0K*KbX(~gN(<#oMz55b}9C4yYc&s7@Bx2DVSDOtlT#wwyQHsA)co5zR@KOANSD@ho2xSje;^I8|lKaj*i)Z9> zi}7=j!HFv%&u2Hoy!hB`p<=m1m|O^T&j`_zkts+yJXf299+usGK(4O@KmV7`CsM>i z88T8NtV6)HT+@x1dY>-BPk$KZ*29Eexoh=4X2)Mwc$|#Qm>iIb0=gf$^2OQ>+LxQ6 z&F+pu2IaXD0)(^yAZLdH0&|DuFq{a)V<>34ImZ1Ts-Yet0xsQ=3YyX4{w5(&lvWKH znXAvtRr~+QoLL$TvF50Z%+)tCcYW>At)(*8u2km!|FuV@m*R9zoscdT-oznFRvS4X zmNf!W$@TR~?1yEEi;QTjn_Ka7;5SA>+EVnNtgp|3RsjX~^VJ81p`nij@)~G2(3PN! zYZd4$&<{Z8fxZLEfya7K)_LOWk5A(#`(wJ~Y>~uLji++9NMe*Wq`$`vmqXZ#NbFUG zv1gXpHihj}7~faMcTr(n{Vg%B{+40c&q|E_ti*JMJ)$rwm83r^m88FDw0ViuG+Y=e zDXg)=Cc?!Phz@Ov;j(LQD}PvXZ^UOT6NWh+SSdIVt%0EjAtUUrpG(m%JLl6_jhnKL zXKxQ4)i7Z<6->RLn ziwDS~0anm26%@-YZwf9&Cg=5x##W`YS?rn@aU@0G>Cv|cpWvyjiVL9$3eWx1I{RHJ zjoQ$+uy>?i=z_5MX}V$T2=8G<He7Zs4sBNYYhk$T zT4LY++<}aIFj+r|Nj>L$A2J0Y5SsgJa1io4Z{D;xs@X?+^j3OXcb=_7!tR{zV)rqR z{zZzOkQATKy9U_J7*@?LL?DDz&id6B53t<q6@hq^@F7q>7V2y--PM4YS^Cj4&8*930DJNBs@dCU{Fq#1_-k8c-z7k#=S0~|{ zs_WqBxEi>`N<8x6&cvVwE0tbz5d#egn+XqTxR=ZDxDy0_NY0+Z{bWdWO7k*UDVi*D7*$+*FT9#rz{EX%Cdl0|6WwIZk=DjZOkwIn~ z4HJ=wi~9kayeBY`&8A+-^a7cJ_iTz1<6a_Wm_U=EpTPW)TZG}<*4f8jxH=0bku6Ze%$^AE|dsC%y|JhT-F(1z9wKtXAMiw}eOmjF=s zd>!&HA3fm3S*~UBFOTrhzI6JMe?{YAobYfLV!W1r$!Eetu;u1I+vbj#-K&`N!CV}T(~K*k;YTGAXs9|rS!MRa5=>K35hLJ*elB4CWY~h zq(2ICGQMvW_M5^kDU4>G(qFjYlB`W)WNk9O7Rp~6h4ok1V1F}vGJ zWSFfiQG|>W87@nL8z!D}f7Omr{EFm~5VP>j1ADhqSYit`uW-|W=%WxqnqyPjhn)aq z3CbN}_%h~P5qEXzh5Hh_x{#$XRpt!FP&`&u4AaO@2H|I3{El1kW6CK8IA4?eWFcrh zU^*!I!6TrlplIJhVFg~~n~wWOL1%*Up8k&DC;0|la>7VrEE9=w&?T{H3d>X2Vuf+g zC;h#vuul}WQDMgvc2Z$>iy5|p;gTDW%lPUkjOr_iQ4pfb4qFTpV_lNi_X<0#FsWb< zoaPg!w@r#aR=lOVj%Mh_*2#OZzq4Ea&5f;?dka+)TP$=+Xs&q~VWP$U1g|@}bbMss z5FE4Fa%99Unde{3vAO+I&|snH!J6Q5-Tk)}wNBQDb5FYaxF?1 zBt}|g9Dd{WcS!cv;kIy88d2ym&xjd{*OtwG6XDHw}{}EOJz|T=VM>~VqA>o4|+r2bGZK-^es@zuVgp$_daMjP%^fo z_({e_mmKR!Y_#!Ij`bv#r7$o|BkU4|EmIf;A{pP?3R|PF-3t3sVTTn)wkN|P&qf*) zjU-k_Vf7Ujudvn%>!L8WG8uN9!X_!~O@+Oyuul|5{gVvK)fsd-#7a4d*}y|27H+t( zP7N;R)}eJYTy|}V^0!p^Ba_9se(5ohR8T=nH5+@^OS|-0HW+B)=rkzAPkZ(A*jKY& z+9I#s7xz2a6To0J3!CQ0d;D40c78}Sx5Yf{#YXz(b8^Bsa#h%^&yMk?_@~2rD~=2) z7rCH2Z-ZDq$Im7@PU$j5qlw6UX^j+X*3I~lqjF;+d6nXfVxOgd%^0Qfhbz+>i72}N zUySiK!PwYy-6jIud0oa0$ z-r)OxJsoE<3P#E19*5*g^92@q34tb{W9}t#C;zdm$pxs{@kmH3Kr3eXZv^FwZU$u% z(4UBTH{LT2a1bBA5x%Hs-9N%DTQ^;Hp@NgxDBMeIis5pIoeU)gu}D01PyjOgy`Zp{ z751sZ3KjN)!Wfr~&xbESmqVLpxP;CYCr9wOz&5%i{!EH~8uM3qgNhTrb>?n?FE$An zO7o-#v=Ct+9T&Vuizjb%F;05$Bph|-vd(tb2ZrmIwTghv@a*m3NqWugVwV$hPZhUb zkfLvq&--nM9dZPBHgP*U?#R6yo>^^?b8U!wo|e-xxj5fjyfL@n65y=UFsrVL?P@jW z+KTmeuP??s?7Q^GZX88;le>7ECt*kCic@C*(rUW^x6{k%g>HR+LZLHvFJN~<9cM1t zI+Mj24|y%N)8*FNZ|@E_ns!P;hw0V3>z{GoUE_d=lQe@SSA}4MR_)2_0-35uIEP9} z5P@!X*74yXa)h%n`&hy)-n?Y&fRkUGbH=@e;}^}nrE{d9dRS~>?nz5_7q>GqlnFza zqEa6ts9nw|sIimt21KXmg%|L=bL0g=BL#Em?gq=@7vsqqU^8tXh7E)ENyqt#>ZUTj(-EX^69=VT5-yYP zyk8CzIHe@A-{9W?U#CF1LPTDr_|D|9nd8P%E)%?=tUdW`fdo5PMwWP!{fk!_ygN#H2Qgc!40m~-5=9`wf25!;57lG}TWiZ`5 zf^l3x2Q4CyI-CherHk;mM+Bq}DN)=n$DxG>u}GNv)0&fXasb3vV!=3tzoV9B+Hzsd zN;5|p_EpOx7=*V8vY&_)d@sV*i`(WpaoAiGtc-8N4hOU|4v8oihOGw11L7*?%C*z3ncQ+qeXuKLl^d72M1`Cx-;X`>t7F#bYBRwN=XT|pQoV1pw+7)LM=7;(KP!q5md zQN;16r4Sgy$g-Bp=Vhibtt-N`hJY^MQ18Ye2}5x(lE_;$w^nGHX3dj{1$IB?L{*#!C++j8=rzOL3}L;6MM^Y()uFy( zOwQ!Vvk-r$sHa8T<^ulqXc)Edf=N-Wax9jScxJ{SH|n-%E@1LHWif{}lsC-FWjYWv z3g1mGJtHGvJ^$xJ8!5sFmF~5&X1Xdij`Y0yN_pFt_J`~sS9+_Q5!hx@e% ze;$>GuhP*{<|FcWH|;WS)! zt%kztC@fK79)N9!5zCy z@?3A-9~n-K{)K`g*11w)tnWC!{Uvq_=OMoHxRj zZ2cbj>##_7=v8C)#8$vz&Nv*r zvcGd>Y<1|${j50Wbq|LBgMxE|gUn^ok^bf?7v5c1JimnYmQYHfzX)G7@tjjgm#V-aE=cs_M{t*- zEV;edh`X_8Gc8RzM8&!&@Q7!)54LdT#EO*X(Rt$fLdX@A^qr zM2K%OmOC+cV60rHmndSnSqLs%6({c>gkqAmcpb$?_#6ge|0a>s;V!zRo{H-ITl_7C4T`qr<`FIP@T0@c01#z0vT0k<6MrbGza8d4%0+b9l+!6I#HlHzePvb#fg&k;#+4=tHg7fTCF zYVCoY39}do)=U%)dq*jHJ%)n0U&KXWk$ojs4pHtCVwJdGi@^cU%$296$s%1Luu=k~ zlsfsfDdpmjMiFuF*DaYDDRA;7C=24Kc##NSLMHM&blxMbFQtwVfmoP^lq&Au*J4nF zwK07L=Abph0HCa2Y1LB$rY|oDb5u7`j$%WBWf2>Zzy<+hW58M~(HKm1wZvqF57I!1 z{J=Xdw$YjPlKUV{gOt?-&mISD1^NVN3MedOe0@M)0cB-a4tgKx3efqWZ-DYEL%Zr* z4hr3>?`_bJK-Ym{CmgZUGNze*`M8I)-XVZdEB@UX^D7|Cy^d`n;kf%QfkAbR7#gTCrx5wji=JG zU1A(eNq>tCmjkDWnAnR7dsSft3S()>u#`__d|xT-h{AqSSh2!5$dh5Y^j3zgq_Eo* z7OOC7+NHk)g>h&lv7QQJ8A~ifVG9(dE9@&Wms<1+Z z9a0$AwaL7kRoJfz~DW`axp35nD?@@|LvHpp@j^RldpkZHM$S=Rf=f~ro z(fLE&{xBgerNBy`25j$Ilu!B)&yw`2Zv9T~bR7?sqb*6_C{`OlaGQRU-q95s(zc`R zUaP;OO}G2IMp(Pr{9Ung@{Mt%X1-)8CmTAXRKvkMmKsM?cPH!OB2k+%^U+2hA%QWBIV!Oes}3JP+$yA0M0a*r9U z2q0xiyhzz6@Qy?+%Ikcxrw@s-4WzWdHs?Sl zSxaTsN|t0J;l~z~In$zZ5}ufuG3_reqTTZMuT7$8GLVRrrTk_zVG3(rfI0Y?Mp34q z$L3=SdN}Va=)f!?*PBg-XK9T@aOpj`S-os5AVv7tK*K;et5}}06leq}`NmD4tm2WNkAp%#Cicjz0=f+M zH-o+gS`%~?Xf4pUL2HA)2U-_&Jt*WmAL~Bk65r>b4MAB+8-ucLESdiDclO@NNh2TU6Q zIt+9)=orwkpy{A#pyb~ZKq(6z#81kCblJ6$3L9g%?7}cs`s1gN{#a%bTcWUK3VTIi zYZS&(l3`gsGAv6-V#gGAQepT;hCh5A!yn4ez$op>uqZ17>!Ps93gg>Ke@hgG5rToO zP}pjP?NQiQ3j0Z6rxeDm(&T$^KL?oxR{}|lD}f}Is4$Phc-pP>m#(mx3Y)F4`R5MhTI|jy=}PEnY6SeZaNE<`*TFVS65-O)<`C$Q|P2CSAnQ4MfU*}?^i3BoM18=!20FK%4*MNi5GTVEhi*tN+N zxHv@?v@bV1V|n!w5(lL`Gf`?C8fdSIE>}u(YJLsO(ztFGX^}y)bCBCC$qmFU8v67R zflb5*!cR5fr@9in_&)NIf|nOJe81r?Av|Ve2ZaYiHe|1ADtw#~+7#TF_0qDJDOps; zvxdU|U)T6CWfRJ0w+lZOp^bA1ciM!^EGfUSjOPk06mhtt&^bWh;1yvRf-l6h$kW4vZ-#M2Y59uDqnFeuHQ=my6hmP1FEea3`pzbXDXlC>A)C=!oiZj4*bsrQ zR|2{a!-N;(pDSKoN&9UZY7W^v*)8+Y0(V?stG9E@8a( z3Ft1|?*`om`YY&HpqzO48uSY2x1hzK5cPaklmW&ZLX3mR=c|N!zAr>b?IO%`!(|sHaMIs&h4CFE_L{;_RtC0KVc#f>qaT^Z3569Yj1$B%K28uze-LpE zjLJ)ibyQeqg$+;`m6_7t{R(?PVNlN+@jb1ujSAbWu;U6lt+3D#Gc1&tMjBNWM#Y*; zm!__CNmEyeQJp3+s?#J!g_*>7tb)Y2{kX)QP}q8faU*i+Z>z$%5xK;^SJ+{N{j9Ka z3Uh+N$uue%F1uDoVf7V8p-cMfrm!Ij8=cScgI` zkZJJXRQVoW*cLY7DOh`;NAl185=H5sy9@#Sb6-I~|J)Vj_p5%`yA&?kW8Q^oWp3EpJ?{bV9xd5l+qtgCOt(KAhweo<*AAHN&3o9# zklb&DTl~WG8f(#@fUK3Kl#b3%X|NgM_G{hq5+it0-x=rH&a3-V;wF0=NGG z)&}Rg&UgDQP&-CI?Cv}#2?BBDMb1xY_89^^FFC?3%s%-rB`>W(aXwbp#UUUf=p3Gs z*EvG(oSmHaFzXaz=usYd4Cg8xW>6|-;lZ0XWe}e_5THGL*o_b$A(RFy^*FH%4{sww z&}(=+PWRgaDLng@MO2{Xc`eR${dz>C#rEqQk(RJ8&DmogvKHc8_gzv#LFV@&aj~`; z#lc`r0_99=S4?XMHwA;ROETsM4o4dIitGQvAQ z-S+`jlEOFIK|{osGo}Z496d_iHQW!v zS0ni1f`i}c?*XuC#*8*-lCH+DeEIVcR|djj2hTXaXA-2{*bX7X2>m}m;KJsUGpEcl z;umE;xtbbLvHU+-k?>5gbK_R*46=A_=%t>s_R?rk=OKe9L-6`z|svbtZ@ryh#PR&TI zFS)EH8iKJGW+`&m_ZxmpZc}#lz-VKdX8bG$A{)|jI4Ibu2BXzseNiv0{L830ix(R; z=7TkA&LJ@BDub;u(Tvt)x_Gz0j(*`^M$c)-*y!iRL{Hr{qhD$;pNBbT^!LXkL7x3h z68bR-3CAk@!a7NiZ*NC5_BKXi&m^#opbxK=gfC)}Awuyry4sDchNGVdp4M8h!okdS0QvUgoF=~gJYR{gB;RhVZHvB->E^xS`&W0Z z?tWnI#eRws074r>HsV+{9$~922kirjJ}fc-^ls2$p!a|>6ZeBgKpy}t1$_wgX3$4L zISzRW^j^^CKwkoV9<&1VMbMR?FN3}hx*U|U`APnW2F=}I=5c)@PK zy13175h%H9~5hfd{yHv*=%w`m)}g12*$6EVC>ihW0Mn% zQy+q{DGPSBVha?zTe15Udr~pJi4yi5#okkFk7D~2OGVjAyiFXJ-|Sy6*g(Z7x(Rlv zV$&6ysn{aLu2F2YVmxI~(zjJHv;YU&tr%K?gTd6xi8tPH`K^#*Va0|iHd3+4icM8) zv0@y5NLtn^h8;2-jHa)WU+j+IU^IOdY@cE@f)$KLu)^;R#VQmt>%qBBD`2k(PpP6P zW6$+tk#-wDX6DW6tStLQzrjC*NhJ*fdWZ;JUX%t4fl|j>64r?;xmvOKEZ8`T1!kU& zbx9Ye*i}J$9gcC%tb)zs!XptxfmwHKbkpZ>usm06Eq|lwBUX7s8Ozm1Slh_S_R>{> z(JRk@f3|*E&L}P<-)Lkh74)iOg!mwyq0=$uXFsE}ldIPF$ko)GIu+z{BRo!#~Y)>WyR1t>m*z zgH4JR7MM)ji|od}l)6ZF8qzf>W9J_*&*WcH)a?x1vVhbcxKSt71850;gFMl^L=DH- z`MVd(mA!c?=wb&%Y9lOb^nelO{$x<*0wdW7Q`#MrIYJ#qf}m%D_5 z6&%G)%M6gcB~)er^G1csOYZ?2T9@R!z|lmBFQ-Rwr`O=J$_xMtoicg*!sYfd;28Hf zFB{(&EYjn~X_vYw{Kqns}nq z8jWkk6P@U%B3iDqOgywRaO3HQ@d@+e#uE+2H#g4&<8}r0+no%?bN2{f_B;I12>Soe zn@L3r-%O@tkjE`2qPdE?7OfShF&eb1@b&Ovj`r z5*x~CU34W=Rk31uCJdgauri;GxRg;`U+NLipl*MA$vlGq-#34`F)x48Z(G!PM7wCx*(v0Q0QNfX`0>J}+@$ejB{YIEZQGo`15F zN?PfDy_cZ~&#m+IJ{4Z$Q4pD+Jg8PKr}M%2u9(A|Hlw6?!srQeif2xkHWsgauk;Q9 zb|>ciSJMr!`$;w-JJwNfB%>|5qk8#hUje`JvFr-Jz0x~^mt~EeSd1Mw-L7k#;nf>c zonnn{yx@G%M108lSiP-#F}Fp#F$sIwgo%aNONxOxU&{BG`zUe1%ae=Tz%771W623h z5->X7$Oe~f!gV!#hTvY*4*5Fm=JIKRd5tHni%oCFO=V*7XohAK;wVAGi+Y(04R1Md zn5zlgFg{2Yk3%664Hqp4rirf|j;%Fuaq90Sb3Yepy14!VU}Wozr_)U!M&<@;f*lK@ z5k(V7(QCB{GuDKm=;ekM9ZlKm(kzr1))jFSgGX_+ac z4wN13382G4GeF0Hb^&Em%LHXN*$s3m=qaFcKu-mo51I{H3K|Bz1{4dxB4wccL2b|+ z(50Y3&|5%zgWdre0%hOCaLYg$?jcZyV<*e>KM#t7Bg|agNKjV9g`lj&i$K`|E&<&N zItKJ3(6OMOfsP0L7IZS`9?&VE`$4CI9s(@{h548@6O^V`#h~p#aV%@36DZ^5dp{4f z8~k&8D<2WM{MH1;rZ_IYkzK{#Rf^rH{%%$5ImKR5tWq)NQsUsKS@`iYDH!EF!QzlQ z!I)mbPE_m+#m-XfJjK|oB`mE6BX6z4_&Dm8@Hl{jce^pR6`J;le8CBSj zte|Ypx`J^l`jz`uC%|*Qw*n^X<=ybf3i15b8A&0#2aV)u+g_btp6hXjve>Sy%kltm zOp45~o5t;e+savK?@ArC2eTe?f~7Sua+(V;XrH`fZ|dS@aN6gk<&{sW!E(D6Ijd98 z+r^KtJwGj&(<_+Tr&rGJv$E~a!Z@3-@~eb=dt<)$(j>zcyA{rWJkE{r=Y%p>hwb+< zxe|a6^E6oV9vRyE@=L$>lst=-c_#7@cGQ?ra#FrM9Oor&4BFTg1Y4xxQ)>b_`>eq- zeJ$82E4x{~jX59;6lAo_(+G2E!X>8Z90iPY*8bg-5kZbHOBD#0Rbd57bIpR^XWN(Ds9NVf4><#6Q>Z{h2?T!nwx($a?uvNTKPgOybD;N;X+a zqOCAF9uF54>|de@|A3!MIkKBfZ-2fZh)|+n!(d}}B?@X>SgC9*)VNH;zN6G0#Y~}_ z_a2XV@%^E&(F*QQ4TAdw*=ZpFdNHsLpj3Kv24(x|0?Ibi4fGz+Q$YEV$GJX^(2GH5 zI`}NmOK`s!bQEZr^PGh{8u$Fje}tcWE6b0`?|Mpv@6OtA{bm29n2 zY^P!@SqXbkvBQcbAx*+B#c}zK@s(g%iZRcE1M-L_YOf5ye;{g59s! zLyEnv*hq@*`H>fXRGbS&#kpYZ6yxV!u)d1*S8Rl07b`YfF&Jq$Vfm4l zIQWqlevc{kq+)9odq=TtihZIOmE^*YN^;>>fJ2!B#-76*&y1bdX|ha}8ph5?gRibb ziDqxfr|I$z^Uj3r)?t`>JPte`mJKbk_vWR(GAIsPs+-MAU(3Y<=+DdvH5{_%no#-p zMkis)p227eGSdf5PwFeFE-MojJYGvR3WWxbOM%39GzBoAAW<#X6xoq#WQMSj`Pw6J$&ewo)Sp6h_)jvd?Va9KWf1PkVd zxws7)gtEbD`PfjQ;5`j5n(1&gT@$uA$(f_oPB-xcECVEy;!XKpOZ9FVyYSxCcHXO%}1^6@+5i}REu zgvy#=L7?63LmWu-VIBk%U-p*pxXR3KYeJdDYkc;`U$*DjAEt&k27mcDFE#vOpK{-j z%IdhB%6Sd#t(8aHm45kK>58O1&B}fGfP*1oOaCvm$?7W%l~Ap(y1xYw|MN zWY}PtXTKB7L_EP?wukHw!Sfxk4nz~3BZxAe92ODzlo_0B#OIqWM>82rjQyzDM`_K{X;K^H>99LjJoUshGSp!+ks9{&; zzKL5)3X{c}b2N3)D(tIfN}H!ozlz8CXbfG#cG3W}jKBc9ZxV#Hj<5^rQa0rvtcXwn zU11G`ZRK(gmj%~>{8koxmlE3-!P2=IKFi)(c8g(@dd*1Gj;mG5hd7#MZ*a6uQ2bDM z3)|h-h3(Hpt8_8cIiII4_5;TmdYR{8;b>9!Q0A=eXw^MnJ0G8iO*lRZ+kY5a`vMz# zN}L&$xsZm`5hYI+pE zj?FswLiI>($F<gfSWQ8TJVe*=vIK z2SKOc?W!de7y^LvbM}U89AZANjhbQwO9!>^4X_s^4aoVU*Fm>h>X^?M6>Y``OUU>IpP?*UtM?7YIfZ5iwpuB&Ng7QAt@?)s% zD`HL!X9JjwBgdszDQOK~80w&Y;T1>K3=NaZ9H$#WhXC1o2Dj7;UV=^aXwG{CKcBHo z;egu*4U;Hed=~pz3RymDHTuep#uY%nBd!Vm^emUYB9tM0bwNAa*Vp6>;g&Y9r?kgK)MKDdi+&bF0#r`7Fa7 z73~)`rkr0`Qap9abWxa5$t0H?do=?0Z4GdOms0ZxaLYB^UhoWsQ2}j_&JU0ac5*kz zCpr=#EDM-#Yq+`R2U@NSlK@uav1cy28n4MFB(ur+Un&V*jh=aI3^aPD^9`na2z|fr zB=74+&X%D-ZM&o*<7W^=eQNZ2o5OM^8SG}W2_H={pe39zt#GC+Ii)b&T|AhGX+HI! z$rAUA7NM85#vO&pFc+@Nc#DkJ)p2s{vBEr)Ok56L8_fOk7`2@az+|Rzt?{tUR3atp z9i|js@my`S_OR?a2k2p3;q>Cd5*aG7@*Xy!wwokULnujXXza>l{4t&SH|Agpyi=t> zahRIbDe%7E+`sNk!R*uP))}66)<+I|j%rI=o?1peZ+%)>P(FFDc=U zKodOCdJ!kXN43B)rO9F1btd4e7#;@Gha;dg;+H(*pz5q!T`dsBRmT5X(gU2!jlXH$pFD>R zC%l8W#$PqXR0>7-?Z!uvhnbwNg?hZVrE0R4lrR!Kvb{1|=o`%gQ2P9vS zoN02BoE(#|XioN;g1iXb7}qz~NjW3mWjyde_=NgX*aV(FF`m|&vfxy!lto7b8kjye zCUxJku#-}bEA4;{F^|V?m&c*#u`}i*By~!1r{n_GL4yRpm$lFVPzLtMgh`yYDf}fR zCA9Lk2Aq*R5&!%11bS~1K4<_=>B$|j!Db%9#$!Lt4%k^UvOJ|rl55ydh`jI@`*N^6 znfgrAtgrJ-u)Z~A%pAx!=3DDD>rv!NI_A@izjZNhb96d`{VUGY!gZyoV0LlxQjUZr z-eU9uSDH?XMG95+^wClURR26?f>okzJg4u>Y=gBl$(agP)#iSw6@f4JJrefwJZHj; za}qvevW<|n8za3Qfd}P8bMOij5*<%NavmS9RFnl;qCFMBB6K_$gSGPk= z)ehAy?{hJq#ja7}!zoIJGuzoEhVx=`Pu=AKb06I)OE^fodjV4#EI6|rtMNC_v`6B# zD@G3OWY>$X0GAjEO#}ZYO}NtyAF~;mx#wr#TB`#7$lq*AW^jIl&M`Rmh|u;feIZ4M z8OGaWD}c#P76hYs$Y86{x}P^6Z?g-m!B}9eVKo(i_`3Q}QDs5ZdAx@DW>!JPI`Lpq92lbB=}Q&zT_}^ib>eGHzhGD6v&6&?HcAGZCLf@IU7<+?e8R8 zG3CIcrgJ{e~}C>{^7~6@=b^CY6)M(SDC+$ zQEWSqdj6;-oWVpnR~Od-T^l)0HY<49(elg2Jjc#f>R}Yi5UfKWs!F7R2ZtAwp$Bk#_YVwP|*0fSF@tEbg)6rqM`#1zLprRiG4-)`8vy zx&m|==myY-L90O5f^G)g2>L$g2cRE-QY88il;2I_I~@EQ2k(dm@)7VZpr3$J0-*ns z9Q<_9?YO6q#OD+*cpr4`mww6l=?zCC|0J}t%}{L*h`8nSB$z6;kRC~ zZxy2fwdCVh#cC9z0kwo};<(V(6r;{p!Uh$~Q*4rAS17hbu`AQEfi~`821Slf7~Zn(g$-72OFRmOfej6mST$(yGF51ifvJBpJE3TYntHl z!#tG}Z-!!+n{u!%ihZcqH;R3y*ips)P^?v=8%JBmh28%YJ6W;w6&tSD1jVK(R-)Kd zij^r=uGq_py{6b2#WpCmU$KLV(Y8qH<2c9Vx7sV#QL%i*1}Ju+VxttBqS!RW7Am$x zv8NP!RVs9z-rDESG_LE|V6pQn_c}s9y*lAL+wu%K6%TsK)VizhlMX_m$ zEm5pYv3nJJK(W1w{is-KvYWmpjtfiP73-i_AI17AHdL_@ioFEaANcwuTgx4n-#QyQ zVri$jj?0hp*Dt`_8#e`C_&vYRVH>YINcO5QRNNH?xiTp)dws}0wZIJt?2Qb{g{6nnW+#Tr=Vs*YIhBVJX6e)(nkVMZ-VN6}*d3E2SxD>Q)Fu3ob9r|f zXo0;6yNxr-;+{A(XJ0tyy;+%@4~g3A7TCeV;qvnj2VrX)?3tT2Ke+%4vN4sCvu!qv zk{Z;k&POT>ki=JD(UX;5vnjvwhlKo^HBNr)3%))fneW{CI$4zPV?`7xh%C6w7#0|I)*^P820|vuuLp}RtEl8-T z$XPveKc<@sYu53M`ZjBs^77tTu)QK|r>wQBnB<(wxrs}*lKd!|0*T?NjjM1sj`W=pZyLH7+jx zqMR6A*)Ry-%=|j`NL&tf0(=bt{pmP3%oSsg1RL22GiMY|9SZ~F>4h_=jh*_RnI#oq z9QSu-NI|2G>lk31G0I_%WICC295MOFdk#Dqn;$3?9mp3Wg0vS);KQ78im3C7#t*gz4ZbH=hR}A82{K{ z-LV1_yDVygwwNd5pu3Zqg0ANNOcN88v181A?drwJ5JNM#vM=fYF1Y!>0X z->7yb-+21gs4A!h|&{ka}dNCZ?Mhsr8v^0^JW&G}-;0FXbHu>unk;H9pBE zl`^SBC9K?gjncL;6AYylb1((rWPV}+CRk)2ELNfvb#G5!>w4=egI|=6_txl8Hl)dh z>F%~9RfeDZ>k@SbxwQGL^a>z@z>zu)B*f|vh^k6xb(I8+l^APvMLZW6UomW?Zp;w* zijfB^So}++><yOcCHIF7_w1>FwX9CSZuOHj^UwE=Ai3K=-U4_iCX#-I$>8ngo_ zi?<^vZI-%%(#S0nlv>kMKxvtj4SG4~*`URs=YamxxnByJi~CzZ`+?pDS^!F|$pFw7 zo%>fo2jiaBN<%<5fDQxQ3_1ezebCE5zW^Nvx)T(Vcw|2)g4D zyCvp>+LI#Cb3uzi*?-Rg?S}GT*@%{cE;-LsF!oP^-K_p@SL{W_sH+lxs}x(O7|UAt zB{(j>MeUSeCn|QHV*M1Ou2=kBq}b((nW;9!ompAP^`CN{JKiKrHWmv7&TPFk2)&xw^p%t6r;VD_@lj- z_}in{KEuzVuNWjf_;X@!@3)$XRvf{k-Y`h?%6eAO4nRdc7QfK zrCkvUHZ>4y1I4K|kOeElOKQTYd9Xw}Op!XAvuWm+rAOn6I+q@WphjJoJt)iGx(m@F zX|o~l?RS&0o4VEld!Mma3EQKw@a(hH#m~ayp*~;_dG6OeyC9r~n3;={40y=yn+2Pl zoHYv?h3o}ALfBpDiXNH!_oRmGt8sV8F6?3N4`v<;X6_5VL2HdAhvuiK{Zz=V4#Q9< zWJ`Go%OV%%l587Mz9GA0cZllaiaGJz=SMR|IKOY!((7U#*FA8M=tcHFqSw}1Q z08+>FF6jeVGz4)of^<84xns{AxJ6Z%@-`Ov6=`loxwXP-SaK6Ae#ox}t?F}W?h~d> z&tNWK9Ry66g>``xSTJF)9n6k!3Mo+%KBhA?n;#Z=QF?DeKpdw0tpb| zm7Vcg-1#gDWP)9-uGV-l1Vd{x<~y?!P~de0TCUW<_|PIf@OJ{O>=Lb_=U_(J;WqXNOV?N99W&8upv#&i*)#586Gx<^=%`|?J;$Fd!V=MSk zFy%}bJ9!>%%6K?sDe=5(;yD|&+Yf>=)6ZA^Ji}wJ=S9ThZibJIF(LjsrB!5PG&YDv z#%ss84>0Q42g?DnFVt+THtf$pk%h4RC)r2fKf{Dcjr$PnqiY@}PQlD_VF{N1Q50(e zKO*a8VVW)p^X0_cie70Z@48^-`+P{g{{){Z#Bl&Z=O36U^?N#6|3XDku;qlWG>&MP z>%i}Ggq-JTYO1GWfC-Y>TEhB0F~VpC*^7>8bq4fc%ZQY@8x*5E+(5Y!OUcG5cUtlw#=s#}r>D z6W)z~Io{{7rh2zHRdyo=QIBI02?sSIxx*M?^w`TxL9zLZ<{v}b`dX3! zmy*f`t|cacvhge>^abYLYm5OTLfMrAQ8EZeA7>da6HIipBXG-(RlEUq1ar_VqUkN1 zIf?0I;O0m#Wn#=pn!ua`kF7W|ScYe{(<-Y?`R-As=gJ#Da{E{BU7g6q7K@qTbfgU6 zX`JVls7awIQ1(+4(%JqJ@yAGx)knE=%iQUMt5Dn>KS(*ZJcewXtA*=;+@20|%ji;A zu6iBa$1&F904D;k9RjrnN$jHP4w7`>L*diC_`P8vodMtt2VVezoZq4dXa?v)Q1+RN zK-njkg0i2z7L=6%6?=r8!BWsUpf`ff2fZ0|Dd;Vrw}IXX`iO)78}vThzW}-n6taZ% z04SHvV=K)F``+h4`KG@Bx(^g;`^e9r%Rvu=LU|uSd$8UH^?_D^`a$0TZ3?;xlyy@D z8UWo4dIIQHP|8``KsnX;F(_N;C!oDRKLzC*`Z*}S315O<0=g4)4CuF@<3M+TP5|8v zItBE5P`(^{K{-bL5%eFR2SKU1JOo+>dKmP7K>q;cq7jzkFQDEetSdo%usj-oJ_O3W z+a3lz4)hUFPEQj*8I%Y`Nj4&vE&! z&Wh1gPV(DNv4M(Rs@P?U%~WibVmydI%76zE2tOV_AlPe)ZBlHDVt*(W=X1k0a$K+j zQmm6=Cn|P^VrMBfP_ZG3U8|U_*xic30L4l3TE%GiAoToT7p$A$fg>|h{-El0RR2sRnvj;WVoDNz?p8FbFxGI43yU}xD04nxhw zvXk)PvM^=?!oQV;-wl>l)|7m{65gWIC4ce{kMxgVu78xF8NyIpuDjb1KLNbh>CpH| zt{9#C)IywGaEwt4r8xGvat*cuR`ew9fB|`$P+P0FQCt6c^uq8>oY36ir>)h|2oMyA znIH~T`TZ7wIch@Aej9VUxTYGDzo<1f#gD;wiWxOrG|6*C(WqR<-YwNU7vn=38@jRa zi*6qM`CnMplqTUxhd}KQH-pss;TB6Sj(XjT<;_nwgIw=`IX){w=h>jFt6rc?U=Xw^ zDC`*`0nk36ok2sOCxi9{JsmU*+8gu&&_1B#GZ>WqM}USvX){y+IstS5C^Jm|{1knF zpL~kwlI@-aqi?}j1%h3r*aM0^qS#A{Emv%-V$|CRzXOW>qF57@i^S2~art5U>0+G~ zTdWvAK*BGCbxk-#d00jo_n*dEMXXdDJYd|e0rrmkDXaNe4BJ13y(ZPE~!h_qNlVQU!ofm8T?hen73N65aw z7cReS0(vnJ=g`lZgipU3GPCItn zhdduzL(m?Tf)gIQY(C;`wE1w*n`dqQ71OoeQO+(DyX>`_4`+Vl-NP7B2*I+hEP_?w zhaz|Z|ARR-3kH_f1m>o0uJP^*+BKzLSL|jXmk$V(?xa z<~6c6lpf8RmzZ5sy7r7cr`tys9;rY?MIG(R(r+tDtIsVx>@V_p5ASJJdN@!NU%J-6 zC$04G8AW^PJ)!)n0DLhYq4K-{@)Gi{4V4c^?SEOpgoQHKGHt8vs$V`%4I@D-;9mF3 z_SEpYoDF%YgQ{58umi}j^2*YShui0+1asET1+zI|@hw>V;3+=c{r`ujI6G*+xA{o# za$kDz(AwPMhKQoHB9K`bEc5JX0vGP(CLx&lUa+h|2ub2D9N2pUuUF|nyxGt-^3{ck zaIiUR8?)KNaK8pWABNnni}Tg*8*DLL@{~RAkNAy84_|kkUMoC24$mk!eNBhC%vX}D z-bRm|I%U#yqxblx9Y0zG&6h0tb(Aj~<>`(l@B#0iSHOw(z&#vtvu7~WL!Uv##IG7> zA?1<z^Xwd_T0AUqL2*u?>b0Yh4-yH-H! z7c!d<^9$M`z)VFq1mX0vT&+#ohT)#e7-7WfjgGfPFG$`^@#Gxye2!-{a>V>_>t#x$ z+>d^qy(L$PS=Xcu9Ww)$VPMj|rOR+p%1&S9;R`Z`>mT`Hk;lo=Rwb9~F+Zul!<4;Pk zm*+&QoAn^{1M4x@99=FlzHoHW^szH$Oqo6joO-8cAp9+c^EKYDk=y9Xt{H{YT8irC zV-rs*lz_>IOSGY5OsG4&Ct_Ov!ng$MAKpakTKrhDR1Hbm5DZ(!F=c$fFAqUcJKwrK2Z>ooa=ln5a&0cmh!pE+gH}X@vvD9bWI{qiZ=-}xUVri_W&v74N@9cL zURb0y1rL%FQc~jm30=LxgamI(_-c%RNqD{7K|xXRglVIBdKPQ&a+CwRXC7-g+A1|l z%3|Dkpv;Ch9ven)9M4dEqp`#j=7p7YHPLR2EvNSIf#F!p9q~ig;~9p=PmDtf4%Lu1 zOnfXguLf793a`&SE%0g;pgG-!Zl#ka+w}G01N3jsb9ME@-3;3*)O#X!+!5C7xoJ{> zjo*=*GV_iO0d|`4%XikTm1vL2+8k=0KMF%6*~OK~{@L*H0h4J1j&-nvBF>AR%MY!1 zdry07v8NLZd@i<5j%$vp9GHGWOy%ul<;A7=O3(JTCG{mIq9U3!r@!17e_zp`KP7R| zAIS}pCnTT1rGoh1F`=zDE}!3^I_+59)50XFXy2- z3#CRj)L1hYYI`Y@bO=NTjqcWlx#pe2LtKWFQn52lq%UYC z=t$5NpzORifKpkw4U`|0YS0y+J3uM@@;Q~48$oXb-2{3IC@e%GcY-q9OQ7_B1QhFP zj1|bwpqvUl1R4O{2bux8ACyxg-+}TCISR_Wz)CQZ2kMK%8X?el(91ympzJ|YK-oDq z0%g|=xd*f*=#!v`JMt_j;*PuodJ^bzP$*I(Z-YYp7g+_G1-c0| z2>J21KJmqooE>J2he=b{h<9o4}%T_<-)Wfpud3*1LfKss1hS*qiKx- z@me&P>dr*@%M#dUnzD#F^=lRpBL?ku4Id=h6FoBv24Z8RjiLwT>4;<`k#n6@=tbyb5TgNNbUa?aZqurF` zm+yp>0a~7e%~tGc#qLz>Ud5hP>^a3YDz;fMTJ=aA`xN_Cu^Po%qy30K9@r-7%T|mh z=L*(WvHptj=r#$sm#`-|F2B`Z zG1?kST4pPDwPI9GOIRwW#UGW^f>Ajw*h}ADXQ*47`T;(HSe^Bfv#USN7@g_JfOiL@)O0hh}@)aAU*jUA`RIEg?8x^}% zu}2hpLa~<=TdvrJiEjEvIWE6-rD9y=BY9h*7^WZ{43lI|-kwnGO~on|o0H`Fo9nn@ zH~go`REq-clWlLe{aBt5w6Tg{zug2|fOA`?7SOY&EiDcFx;8frDy14I*t?iR;-FeP ze}D}OrtPre%ER7E4TGsKpA~#Hf^I9nW<_wxVdxj^p-K7P&CpCe?kj0ly3SYDJ1r-> zD23aL+nZ|Egv*+)3vND)wFzDFOZRw6UJbsAuEQ!T^1)0Co0smN6$+PMoiuT20nT?W z&#ejOR1|dz+Euu3y0V}=1shr=2YdSGHnum^tgG2DpsZy| zW+rUQu&Wtup|B_bxn-j@T8mP=D|Pq(`~%OZNB#jnZki}pRBK^&vK&1YCuq!~#r?Fg zMY77D`&{A};jx!ZmCXk7kr57-IG;~JtsgUHu4WLKdZlyUOVN3_JYv-q9gqebkBfE! zqok6VMTN3k4JF_vhRMA~isRnd&zk#z7%_AEq1u8wBW{l8?Tw#pMgXU%h0zw%?aK9| z4Ro&M#QRJ1bm>>h| zu#_|o#q$@;^Blu+XiP=I`~_tcJu~fdv_cFHJ7CO#p+`POAZbQnRARzMCwSN}IvDIE zQ&=1X*Db7i$~cUqbT+|c*AHra`k4FIt&?HpQH)aINartRc`ypVCYb49WHGT6-qF)o zd?j$6uz4jY=%)c=vzHNpGPlN0@7b zF{T@bK(m~ClMP7MECoz6Muvm>Kq=|PgI)%Tc+F_Q56Y(25R@g`0rYCn4A2Fj82g%y z%1;92$OO_@X7Lu7U_27L4?t`G~Kq04@Lxf>_9r+OVeL=qj zWq9^EX!1rn-2%5rr*z34qk>JvyKI*VJ)gMYLjF6k{_Ie^l2>T1F~HqY}YrH!l7bDaKKjU^glDv|`UG_NHQ$ihZdV z#$QexHHvv5!AZQSjw_ktB?rq^>`cWl3Ubnd@sHz=qcBMy#v~4Qjbi^)jH5B}cb8%x zD@I+Bq~$xsIIa>b-Rp)u&T(P2tzsOii$BVS630D?<#9UdQ)K#r5n=nPG(c_~@ zc8hTNMQzL$pvEv5GiqIeZ$(hKoK(vSzKt%znz%G%dqeicO@oIjumtc*K=|}0_wjXD z{kXrlZ}$2;?xJ}SV0WKJtiyXRXs^tSpCT@E(sZ9^|k}HLS3Fu`a*fzWP}1*!?*YOqTd=yDZ-!bf_XXb#WzJrN5^H zxy#~vLD-Muw<(APhgl}N;w!oD=bzKtz)A0(^PR-*35J$b7Wa`rXPf1ff0I6k#g09V zoWvooOkcS4>J+P_TlN+dTyaN8M+LTTThN9qvVCrYpf~J;V}1jONI6?(?%d-mDC>hD zD|1WNz=-=wW5n%jlHP?Iq6a9wv>1JRiL|Q4d5tSdk8ZE#s@^!`3lCF(zs!5S?+!wPhOP5X ze5Nuynbt@Tw+t7F#RJ=Gn)|vEOJft?`$ma98JUu+v3X7vSO;7Z_T4LS{78V7#T!g{glgE8`wu4(E zPtf?OuP$it0b%D@dE%FwQsQ6NMaG}lyG1(5gg;i1rg%ETNIQtuevBd=Z-Qt1N72{A zf{Ocx4U4u$!ZllAF+(UIuQkdu9_x4Oim4Pjoy#bz)6KSUv7#x()d0M(E5jkO=FlNx z>>Bu95AsOYL=iR%_iWD)YxSfA;_M~_k9IMxzIvHSF+AX6|4hmDRJf^2<^`j=2&$7?TFYg1<_9E#qNy_@;|kEV}JZzJWlv4 zjcv)H)Wyko=j=vdoSVe-&B3PoGs0y>J-98)ev`kaG9sWMy9-W7EU@QbLz|sALV_Ez zJPI7PlZ-iU$tNWZ^HN{#9DJR=^J~`TE%~Z=S^;#k1H2#RWENc(6b0=?P|yaUp$*x6 zd^jVaMgH2}Ef9dp-Qp92_Dq=Zo#p*yX};~T({g^Ao9G?v%h@(B1=`!BU};57$v1m^ z`DMLZAastms3CU5vHP@uK6YJAA760uuiS!WO_yNK-qb~xQ;&>2@aMqRZAQ)daA`#g z$r~VKZb>Gd7ocfG7&%&lQv-Hp&nvL^46_!r4>Ff`!)b3EU>|fd^JCE!PG-hAnX!kO zybLJ2tOZ76rw8qS;IxHSLGQ0R`W#?;FgVLOB4e{)&O7sxnI&_;)E?ge$&sC$Q(2T+ zD^GTE%^GGY=jWLbw~dsp%90&nMqi3u@nPr(qq)=tIt}buGiIt*Ujjqv8)Hn zJ!_v!m4beO13UI*Hu49;=e3y;rYvZ@^Va%K#=i zmg{Q#j{uLZhDQ&x&o(!%9SaPbynFnRqnCObnEiqGwR8EzoLj{&dM6V&$Bc$3%gNQr z$Z}k$D9j%BOo7is)_k2~F^VaHWN{7;Y#DsYV z%UzQZilbezG~={6&DmKqwEyA+Cj=?T?a#oE9L~idCXE-E9vMQ_-kqN!AUYy&>0(AV z93`(c*coy8u$R0Gw%GT2ZZrJYe+@Lx-io7K9UtJ$%n4&<5XXv!{uI|ZQx_bxOI^kgjGon&2s^_?t@Iq=Q)YgsEjoKld%_LT9_&4giMfNL3ibH2ml z?3bGgF*~Y8uf|J*jlUO;g$YiBR4CNbV1k1k!J$t-B|gQQot%INjl0)7@4}XUg-OBZ zrhw{e`7BqdCudGbM&UAI`qBjBDBLaA1nWyH+k?TJW+*zhLfMTHFRiPXCGLAH;k@ODJoPsT?9G=J|!D z5U5NL|F@wCV&7+KtYo5#eey#lOgj^X<7+p}xj49v??$}^x5NY*ZUV93+(7NIJ9~YF zw&=!`G?*_*p}7Z;yBkrHauhG0E9THWkk~lQC|)+8W*xAN^3|?)1L_$FQFo}%-ozW= z5MESu%`tqB0ON-yW@f4govK)@$%EQopeA_6j|IOngFMa=C{!A-rxis&ojsVU@W8$J zEvFWMpNmxv_zdQ)kPYi)P~xwFegOJ5=r^EiK#zi=i;u9c-T;~g9vGoVxPE3M=n0^k zKsiQ4ShK`;J19RTu+xmNjeiQtcKsP>J5(F**=O$ng#{NE@I=_1?gnKwqJNKY4ukhQ zK`}=aq1DVjP>z~6<0qqLy8K3oDA+jXso(6MAlPihZgyPB*6oTtq}XGMaV|~5zM@#Q zVmlSvuh>Dw(Bz%4KF8%Z+jj}S?uzBAKYp6{RCZSue-jidQGZt{cCTU&DE6FU?7DgZz{H4v5ku5Lhz@ZKr(k? zGcLbX4VQ%7>A1KvhK#T70?n;6zDfed3!W{=@6N>;G<+U0@|ZNCc=V*Hg_n(;S~PlM z$@FnW=4*Hl`hScv3dff?WFo~u zLqoMP9DES^UpfbaGR^0MvOjK$pY+Fc`5{KT*cFb;Zwy|<-;0X5WpgW#y6c@|%O>s^ zWmA0W|Mp_}kIH3)Q!XQ&a=|dkluL8uOUi{VzjYb@3pUYl`K_lEdseakv|PN$Dwos# z?|jO8L2PkHJGOyaA-RJ+n7mpP;Xt9`@?QR)Z&y!asi zv=~2E@??tKiK8yS-HT9-ABial;z};UpgO2qygK<*}i&!1K(*LR%unJ4S z-D6=tT-js6R5Qmra>X<2rV2YCmjAvAT~js2f+J=$mjAR`@||jdL}01~lCo1RbV;=c z#%d94zT--^7Adw%vF{bju2>tS)NkR0+_GScvS638V2`pO4$K`{7M!dmB8T83yUqs= z!y9w8#s7?YiobA%S?u^%rQZ(Ak)k8uryI23mllkVG6Z`S(?Nm`8P?kr?sVW-a z$s0tMEC~^86z&B}LGcU5iV%#ZR?yMIz?hR8m~;3s-~I?nW&0>A(X#vdDi5bYg`aC~ z;V!^gs=1D_b0{N({S)j><{6EBvYfMcR|Q6|MAu?c?}PTxb)5$nJx5;sP6*2V;bpSjtcE+Je-QeTtsU*YXVZmUt8pk zttVif%fFIciLWF^JsP`m*v85V>{k63qjd~@5fKtA6?S^1Y`RXY>N7urdYXR zH!60oVh_T; z{n+h3Xyg>`k{JXi$OmQ`n^T^|_!*4$N>OQovP%}8_NNys#mo#hF>d}F;hBpW^(vV1 za&DAUG%P5tO-i>;Fme#bhOxHMoDY*rB{tcBEJu8vhgqWg`s{U-_CpWBf}_ zxlOY8mtCYKM=}M(l1PVNj`XODV^!0ZyUN^iUacu)$${x^8Y$9JoaIa4UIEvE))!rD z#r)SjNQC`SY=6iP8Rwcxz@hFA3jyFvscYd%(YFh*dPQGWUaaWLPA`I=d-2`k+u0C5 z$v*bUb-LKwKv_I@fnE%HALtCwWuQ#h1E5Pm9|e5?^bycUK%W5hf-l1-f<6h#%<#Sk z=+mHluMgrUT{d0vbrp}tgp zD0aJIcPsXuVw^{puwN)fqglZ?xg>FLa!IiB6&tSDm5R~CQ~WJdjI+mrJ)qblian>; zONz}wA20FFbzFYSlZvzB$0u5;n2$(3Et$;=7XH!eJvhDic3?S%aV6n@YvjahwG2Qr z=;>l5R>#lqv6DC9UdYQssuM%~^PGATA;4t39*tT=m6q zlEeWYu_9*K=Hwb=;8j{i)Rr zE0SmU$21t6l*M>1#8da$42RU1xR{f3B~`FuPWpgl7Y)Iu;*a?h7kx+w@)a{DK)CAT zO@nr?)m}VkN|>E!{LvVMFL}~5z`g3@OH(bcv~^e``!Pcw&v|TIf4IRwx8Nta6&Lfv z4>>{}hf^GGO0P<-XgDKfOtL8_kxeA{`x;VQ49T7yd0{yXYht{)A^24Mv7E%ka*`1A zbsv82CC^y~;$rAg!n>i*YKRj%<99YNl9C&$HdhJ7w?;zI*Hw~vxLmHa`HvI+cp96U z+J1yD;}X8)$%%XSsxRG~F<||I6HglbuhLE4aZG}9)yJQGwzQxBJl*6e`}GOq`uI{) z7;TqsJszt(q#ntW8!fq4eSG<4LF;OrV71=TeE)G(O)Am{ivtR?DX~hw7J)aHFUvQYH*qob!k0X;d6{1I@!hI?=`G^; zJr-Xn3-X-#H+(-ad_8^~P4j%heqVLmV6q)Tp6cT>ikN7ExNmZ*KrE;p>NuBHjb!!9pG^)L~EZ%r^Lop@dm$?=fb1k9h>v-hKz3Su7>D#E};qqm!qiGNq;}X8)dFJ2nZ7#XS zspqXAKeR$G-fDaUs}<_I)sSZUnIg_yxz}fKNY2H@oF6Y7+N4-*AbGSw|KFy&-)eJO zi~Y^2n^rZhNHeYGPz;yPm5aE@rGs$6K^u)8^j9a%NF0-p1sGS35c9tp|0RBLF=SUM z86#h_bfY2ov>HF@bHzm;5`uik;pbk}aMa~}ituJX^FaeEewE*(#tp@imQds>F4n4q zqOWQAxmPtDb@`tz{3)dzOfso)LmVsZ5`w-skLX_2aMb0UBfRk>HYIE^;=6VX!k0X& z{)TVR;R}K?i7mz293>W(jFboYa$6Jks)nO(nz?C=wDMTK$4ayCCC^*`hVKC7%h=r( zbu7NpKFIUIzu`O7@U2gGat9-Fu127eQ*p7JE|ic7aaO_*kvBTK-a&V02yrpQXcMA6 z+Y0(8UTz59i9fbTak1Pb1bxlI&%Ns7JwbRoUR=H`pJ@Ei7=$l*&Ucxr&)Q+GkX*8N z!B?sk_PK903}>G~$JFYyX4MQF%i&AhOF4;)`J(O%y)tY))4Mma(uXwMpIqIbB5_8- z7(B$@zR~L|I3={W7<#q|ZOUv|L*vyA!KdPnWhO3`nS`LPtMGHL`gqS1-i{ZSFY_Ob zKN^GZCC~LPQ}tOpOsV8JIo?XXEOCE)m3Oc!j|O5w?u1)%D=y}zOj6V|$!fZj+PsFA ze-##X6tmS?R>1rhiB`f;$`Mx^xFj@vaW5qIsxO`!YUMoOc=dsbZ>B|DEL-7Ao(KPi zFW)%Sb(18k$uMj*g|A4H(^B_0tQKwL2qzwrukn-Ii;FSdEve%BfiD;@Hw2%GKc+`q ztZNBDUuVaptUlfk)XK5TmpP8cAB{oylIP&R;rp26cwhr-AjVVamm#lJ4Q3>bNgV8c z{jNqF?)42El524>Ur$GKjk@OLhTv22$6Skxxt0+0wE;i(s*m>zwQ}w9Wv-*~M`IAa zguAL=&N5$3Dg(o zW{DF%1NgaoYo|-XF;|j8@*MOxe77lI1k*A)7GEhN@*MFud_OaMTQ>JvNniT*$5oTN zW#!_>^hHP6opI-0yWx;}6c@|-E5oOKCmhROoNTopPl>Y;#&a0QIla8gfjyjrV-F{; zfO4QO#_C@6#kE`Fa=f^FSr*ash>LlUl#wS*9NeouzWWT{n6cFu`flk40sRg?$+@_g z^PeR(Y{A8e#;+TKPsJb8AuhIH2|-_r@pG^Gc>n6;6y(3+O};m}j6v(;?eQ`%?Hylk znpukCyLRd&&E$EH6N02ZzKMpfr-9FEFeJX({Za;ELhXTDN>N;liJO=pHBihpLi>s5 z*cn&A{Fk;Uep!CvqEs)T=&L7w?o}WECc@wJGbx6z8-lS*2-Z?G770OL5&Yb%KHe?0 zBm?l~@?}Yi@7gg4-w2-m6F>K=k1v;xMQbSFcs&+hDGTzv*<}h^AK#9KuLl*Cc$r&2 zm^q9I^*!8DL*il%c!niX(l{zH;z$ulnLRRpKzU z1id@Fx*?bX36Y{M#wQ`@>pJ}0t3KY`(p*Y2mM=?FeAkXa_>$-CE>rbcI}8`}MQe$? zdDZq4O}Uf>dERII$-ny2+sE*g-YAipo-y>>QUaL&d+}dtNnFeU7ZoBkrZ-A3zT6Oe zD*jT`#S)Yd^feJb_o|QgpjtU~`7)=`_@glhU-G=tWvV`FhZ!z8t!K9TqL`5T;g;Nr zi}~S3^qB4LhOvw1c&o|&^y<{AhGQ700zc+1`UUHTJNG&Whwu^?d5x9awWRL66(oe# zR`Rem(3@wNKyGNZYzf1bEiQh?Bs6`A=@1;a*l}y$eV}f{Pc3Wx4QM%yLjb-9dp9FBg-DG`RUyLxBaWjh{5w;zqiv< z%g%Z6?9CtS@@LL}_ld_|ddRz|X2i^q@ze^r(*Vwlu=bah1 zr1bVZKX2X8>_y#|_E_@FzWZMJ^6q&PM~{2%&D+~P{n*h|ac$KCet zQ*Nnlx#Gi(KOD(lkox1LZ#7Ijdg$QAT_3#in&;k`dDqvo4pd+B%Fm&a!cqTh|9HQ? z-S4{W+^1LXYjRhEJ1TGVzSLysvg@1vvZ2uzw>@HCarc@@_goi#@yKr_mrpD1Uv+Yu z+m|$1bLd~ao8&x^`A56o?#cOV-1%*W+;i5%)lZ*#(@Fh8TYEn6&G)}xSf6KbsbK~+z|Id@YKXLDxniG$V zYH(8Wg}YDa^J@Oo+4r5*|KBO?9vPDUe%tKUBl;gW@r=3muj_QT}|z-1%Q#UNU|BZ@unG+_mSU&YKTRn|pKW zzviAftJ~S`ef$mo7+AR_eP7DkZ~yZj`!b*U@{jutRy98B@k@UA^?$lHKK$Mn8_u}7 zs?!twUH_g}e*HFY@r`G?_Y0rj*Cl_|E3Z75v1`VirQ^@~x%<`Kz1vU3>SQ zbhNzJ`vZpj(&7AZ?^S)^FMDXx!6)Wjxu)uYrk;my*?9V;lb;;+&gSW-y*l=SAAbCP z@|$Q~(g|9yY^b)837-mw1G1Fg4TG^$tP{l7et*>7XZ#@~MP%JfaAb;vpX zw<-V3Zq(tD(=r!LeCzDfNB6twicOoZ$w*KCpwXNESn%4UjU!VZY1y;exXZ8Ivdw>b zVAJal4t%rVm6-{-?_T=M!&g6Vm(HGXQQ5yvIWE8K(&tZ49x`vmw)t&eIoxFa8J_7^ z+}`1??|kd*la7v;U%Fsj!@M8v-uFv(=BsZ%_Qj-M-#R?=3-@{RX?e>o&Hw8Bi+)^xwfBmf7d^5( z@$L~1jqI_o=+=4Zv%^;}pIrU>l_Sr8W7kmY_Wi-VD`&0Fe)8ng+jo4k&G)~yx4Pa} zH2jO4u9vmGyQs~G>8E^?adp!>j*k20-tb#b9XS2OAD5?w+kBj#H~it2yI*-R`j7DsKUm%O=G=2`X!dsa$4Bz6 zO8Tbxvay$4J~p)Ut%}eaZ~R(aGU)36nK)3Q*$=A zdvM#YOP($t+B2^Elh@sqahlz>;qkYo4*&RpKOXFNZQGIYft*X4~ul;hHK7ye(1;7ul2R=zq#${_qVIQ=ewDwy&Jzg|DMTd`+bo;S1g+G(QS7O zK6U8JtKLoeXF|gJr{8+uiSc{Vj_-KV*%|ky-4++P;JoX<+`Fjcy~qEjW_H5??c+B+ zmHe+>6W@LC*{}BAylZxs=6wdu_BMNNas1SUgT83EwaH80%|CeJhHLKc&~oAWqyBAg zbw26KKHfK`9v(m9w=>W7RQ6hZV&gT5w;lJ)+VeIKdhn@r2@^jav+)0;>^k71DxUuf z2}Kbh6a{IaiAW8-`IC@B0wD=WXaXKbazG@>g%pa4qJW5^h={0&BFzRiL`ABKq9US* zA_5`;B1HiaDT4gJGrOMTN>AH0* z>ppgFPfmQp#-F|U@{XRHOIB8V{mv6lC%m)mo;D3HrhWazrY|45fBwNGs|zPTI;G*N z$KSoZT;sRBqi?FW@UE}x*ZgeW3p@I~7T2;<`r@NYYCrVl=h>C(=Z~Co^OvnJ4ao67 zQt!qsaer0mdhd)jKku*i!llmb3L2)gK3aKUl(raKaQfLh zf85^gt1h4SjC!`|H?5z(^48O1R(&%6qc7Ji9^JU`u|+pNI;h8QeNLafW2V{uxUX_< zef#)}5%<2HzGBC<9oCrky*lIA!0tabs(5wN>~0N@&p%<>x7x;2>o0tB{=+718+_RF zKt#l)k<&hInced3l{*?exgz7)cXroly1HY`qUd2iJ{MNG$>t4lYad>6eNkq=UNe6D zz0nO%ZF#u{$x3$HV`?DsL`#bq)%2!P) zWp}UiZ1sD(Umr8_xuU<8eSY%&l}%<{S=DQv+5Yb*r|o-k+@Rf~Kg&3l{Mvwr-mX=< z*@?pRQG=$I|7y)YLpEQWcKv6|J)T>(c&ESn_1qPE=jaR}Gbi@jdh({eA3j<* zzvSYX+IP=*YtgbNE;O0>=)8f)8@0OJ^S+1g{PxZR8)yG&_HV?mORsh|S_{ae1c=KDd<-}~oFa~pi|hTRazDH z8twBIw`teziLkJ#k}|=c+a@m?b%r4*ZL$k}S;Z54B!!k`;rL-d{c4l#8&xuulR#jiQ!>sc&C$wYR~e)q+@Y zRS4jsc7@{?2*p*U(f?}MTwNu#VgMK6ZLYpM{nKqOHX!ON1#n%XaDDvI$&)r$j?{Gx zbI~97<3%lC8yZfl(pf_|zUfa~e;#>im+%<<{iLK4Mzv~XP{PCLM3n5CJSuOf(C+j* zt>DAMK7dh%qeK^W&3Jd(xeERc52N#0ih#wLH{Bj6hwo8^jf6`$RDi1zAcwq!*pPD0 zzCL7Hpd8u}g|nPNDA9#`5qNjDna*v)!{|$Isn2wk55QChH9U;&9hey0UkAZy;m>N_5o-kb?k%F4{xVDEd6{)MtTmZeR?3eGloPt5$%V z8$k^Zqw`R*^XnU5KqvI}5I5`te~m(_f7O zl@Kz$P@=0vfSi_~hKJFUAk>~!H%!4G(EHVjG5C6MBMv3HS_a5z4QhCp`AkZW6*qJV zl+%VWiy@~s3BlDmKn~mkIUVs%tq9KvUlk~)9b+!zo%&8!+W(lu*+yLWk$L>1jy+GYIxX8ddKVF z3%B_K<#cAua40h4xl@1~m=$u&Ctim|raT)crz>NcqT^&Ky1E3&=>}?e*aEZ}-8ZIp zTedJzPIt!igdA!aUEKoY^Z+$HjGo!0**DCW0dac#^kfWf7fN*979a=H9@<0Czfr$(roM?l(A(3CF_~!aXq4!>JwQ$jsNrEn zT#NP1C(XVJl+&9r^`MJpAi81#)WiE6%?K31m4)@5i&&5v*kUn(#3}ZP?``i&A zXE z0LtG16#9xzahbZvYAWUC01AByl&(%j6h{T(SW@U&1*9xo^r;@Yk}S-4Nr|^8k4s9d zMOh>%F&1UDr1Y>TA4^IXi?UBr`dF0zB&C~0sVka=tZugXc1gM2qKuN14i@DeNoj3S z=1NLSi?Uo&T3D2IlG4_q?2wdbi*i6x8d((jSvtC!SroeeO;;0(QcF^rTa?z4Qq`g) zN=g-rGE!11Ta?L?a-&6=DJgX=3jOFEU3DzVtCG^tqO6sa`WEFYNvUN~_DV{+ML8xZ zX%>aX23?sJr2-8nTqzc%mZaQaQJP4~5R1}YQifZU7)cpqQPL#E07aM_-{~eVqTq{# z^ZerA1XM{W@)bKVRGthj`fO(nl<}#SC%DZ1krIXUB^OxYL z;^6Akr6Mp2rR!Z9rAxOtpj38nb!~T4r$o~(S;4fY=Svkzw=Uqi(IKZ>yKi+$bO5D& zEy$5v3ErICrX4!(fsDFB4pZ89nuWjWI4IFwXca=UEo{h`=&n=o7wvp27;Prm=VNz* zg1HIrbiMpQ>K|eqPJew557NaLqfLR$G>G4x4Q*Jk-q>V-#I^gtu(?&cw)%Y_0*4i!q9>eC9H3xaOLq zfi_pZ~V0O&Go3{VvM4zz|w_+u{yrhJz`Hpf4w5P7^CQ-b3(gclPVlM zZgbJsE7QdoMOPuHcHUU;U3J4$W zLx25Ga!o~9oxdI+ij_CK!|t(KS=iRcl1W%Qn{`$;B8&*Tc*utBoq!x@awB`)lx!YNu?j z`qvOIJ`IAGnxh^eigg$7|b3JXYm6D4wims=a%e3LSLr<=@xpqn}#wfbx zE4t24*#3ykbwP45M$z>&b5Y(1!|Rj#BPNM+WBg$>s7&wp<}AF_9JPQbR*w2F zqU#0bGIe$K=N`AYrb#ZwD7s!$bUl6Pvoki=Tat@0imt^L7YasX^gZv3dja&WlB8n9o2QD4**j$yWpb{5j6kSU|4G(Kd?|A(=_l0#fS9{6D7^PoJnTwi2T-nRJ z*R{Fslw6EabS+~p(}o?Yz5AQZ^@!wRjG}9~qU+=rZ@gx6y(hUCqv%?}TxP$z`!BY( zxqg*gj8SyGtmvxqR!xTuufHCZxEQ18dIeNrd8!|{GNWM!>zuZ`s5=3Y&f&Y z!sRyCFv-OjMb~T0Rh!=N`r)RhH`rYFNG`@Gx?X24(_g+FUktOk7D+C~D7scMm+7x@ zUwl>1=Gr8=7^CP~rRW;96pr^p3kDc&Rb} zCQ+=I&%UG59Gk0=n-LoZ5a1SbUmBvf0BzaO26J#bbWeyQX`vdgydq3qU#;z zGHv+qTb|A~*S(U9F^aC$imq~_5**f8D7hG;=z7=c7YfF?<@4SV_r&S14<#346kTgj zYum8V!b3}Jt{)^9V-#KQF&E8WbbYbrfh#Snm_H-A7^CQVA6Q%0||BiiYb3G=x7^CRgpy+zCa^spd*9ytS7)94c zrC;w{+iS1QwMlX@M$xrN(Y18vwYS?`KT0mfD7rQ?7gbY^y6<4gDx2$!m%ke z{Z$;*ql(RSZ6qpjF-Fn#F{t*LL+5qNmfKuSBo|{8U7s+QsjJPGH%zd(dP*+FD7v;V zm)Wn42OfUV<{Buu7^CR=RMGXo)kl}vT=|lVF^aCw6kS`FpZ3~ZGbI;e6kS^tU9~nG z{m$lEEV&q?==$8!g#w=~m$%09TFJ#2Mb{UKuDCaSmu;?ZBo|{8U0*U+B~pZITGsXJ z#q&}0*Kd-GF^aBjsI~J(>bTWsZLTYli!q9>ub9gm%e$T%RA_V6s7@OBCmFRlWjm<0 zu92@jUBTvRDY+P<==z$u%-C4^z~R0&SFGe>jMA?iimvxwUgc=vFv-OjMb|gXMR|j+ zf$x9&aWl(bMUsm#imq>gwfnVX+D~h3uE!-8V-#IGnTu>lSG`KV9BE?ddPQh zu(qz56N^UKTw5d;V-#Jxn9KCnsUJ?CvbhdOF2*RjzE^auN_(J_&2?FFF-Fn#19O@F z8n>wFUYn~<4OHS{jG}8dsCK_5AH8;;&DB|QF-Fn#BXf~1x{?-LytTPy!wkvA7)93} zU~OH4MoqYAa}`N0#wfaeVy-B9$7{$p@4sSmJt?^uqv+bpTxLFOxccu?HrHy&#TZ4` zKISrQ_~FBidf8mNBo|{8UHcVXufCTbZ*!fKT#Qk4{mfiu9DbL&tBrWR7i8lGNoI_q z>wuz*_Cz*UH_62qMb|IPMb%`(DJA17+FZjV7h@D%2bs&XVfp|5>1lJ_FS!__==znp zOdHak$mUuqxfrA9I;808GW>EAn`^7&VvM5eFmsuCV?fH&!>U+uctUb9M$vUd(e>G5 z-Ot!um206A7h@D%zkzDc%jajdUtn|HD!CY==sL<=mJRRQxY6e7C%G7-==z|Lvk@j(RGr!%(=3BQu!s~nQc;cN^&tq(e;O-i}HreRsIIzH9yttym#{_ zsJ6fMzI^v?o9iaY#TZ4`DdsZ$bzQZb9yV9BztzNy}OU@w7J$vF2*Rj{$VZ}v|)H%44>Y%t`&znB^P59UFQ{Dw2rd5 zPDn1sD7r2%S5tb&t46yUyV_jgH-dzVF^aB>pxQD2VcS&$ZLa!~i!q9>OUz~Zi`G## zR~N~}7)95=ims{y$KGLc4Uk-nQFL9lxKJ>n*B>rd$Fd=Ui!a6~x~_n3_sh8T?<|{Z zy5wSvqU%5AB7cz$^ZYa3wYi>`T#Qk4T~&1TAHF%k=6X+ZF-FlvAz_c@k8U4y+UEL3 zaxq5H6~k?AGk^c9vCTC` zaxq5HMNcW&y55+#`azp(s^nsfqN@^fnXxgy{*+9c>siUg7)94LimudI>wdDi-jQ64 zQFPI-S=jfodrv;x!{*v1xfrA9s;ubx>z|%WY_7wSi!q8W`UH@zi}In(bwzS9M$uJ8 z(KWB*)s{Bb4Ry%#coK{-imvM|E~<~adGY=At=MQQxfrA9s%mkOm#4J;wvo-%S8_2% z(M8X?hKJD_fViUO?;l`uWlJu`D7qpQU3)6DUT$+?sPV-ZMOSs^GGk+M`mUF3uID8e zV-#IA6kWdSd`E1q47^CQ_rRe%++2gS`7ZML&j8Sym zpy-;r^`U2MuIp|RT#Qk4-KgkF+upyi&2@|9VvM4zw#7wq4`2VzS@9V<`YTRyF-Fl< z$KoO{Q=YfEhDk2QD7xsEVeH&n_wh$s*j(c!7h@D%broF$?&~zu=9(qB7^CQ_$6Thr zDEHc2FG()OD7xw^x_%on|7DwNt>j{iqKkg##y*3k=MTlR`ed4KB^P59T@4jo*Pr@r zi_LXZaxq5H6~$bXAW$%p7EYaOKlgrFaxq5H)kx7*XX2hWY_1x0sh#HUzBt#tjhQP7 zb>!vgi;JtUBsmW=*OiV8$A=A^pBsVT+f-EKEOrjD9vXt(}*SJu5G=4JN zm**Mp&CT^^nST}flt0I7e~&Ko`3RcjFU&`;{e?Nc{9Ktt#0En zZ%)t)D!sWmWAgdWF}afq z#(Hx7UilN+(^JUjkA1gnXed&udE)>PP3`2eONb3;p?H#IJEXMU`5~ z&MEMt-#$;izcA068z{hu@fVMU0So+~nL7Aa-i4Js6LYeQ$BK$kxh1|L4;k=o1X+=% z9XDE|I%#BPft7X;g0p?pvB?T8-!~C|vtd2H{GyUV_7B-v`ooNC2T25o$tCQT=PMlJ z^Pq;LS-%&^jb_eKIowM}l{Y&Zflt4lr?L<|3n7ZJMin&b(0K_He+jk@c6D)dp^rXC zVBw3~%TSU0#q9$`il1h+em|OjD%AQ*t7P?7rMI9Ucd}7z{?xDFH2;#E=AYu%0WGXx z^?3SZBzp6+bA5%eV|`iU3=a&IRZ^H!JlT^)1Q@_SF2`qnu%Jt4v(y14{`f(3=ME+f z$qOGqplB}1YZ~1Sf2GjZKSa0dWMbQai)fx$e}1vQq_AmpdvKTJPeiac6(dE4o;66D z@?-14DlJxNUePU!N2O+s_2%R^jfO0hE;Izv1-@etd>~!mI|ac9(gnVA5PTrr>TF=1 zvU==NCDgQo8kb7Z_aK#mlMEA-Gf1U-Q`Pk8-ewJ>3lgbTXO+}|o+@ZZCl!2qyMGEk zkS^qR2!ao!3p@piw4WkBkS_2PC~o*by1-MQxZwlo4r4l|B!@AbR3Tg#!ATbp6G#_$ zVT3?@AYI^v5d!gn^nk|e6KFs`0ssyXl)vS~;xd^!M3n(__PPwHFq|Vwf=={Jowf-{ zsw0+yOLcT#7`*hJ2giu!b>X-RjuQPX3ngTA4M|p6sDKVSmpSTE$l+l#_%P4Au9~Db zMEWQb>`bU-f<@;=4lNTbB!>tVlGRZfw1Yx&h+rXE9nWP*4iQ|c`;=8`soqnOqPc21 zv74)6g&jh}3b`UD2fEHpZfIB`SLE){f&t zU2BY3UhrmIYml?Xl}T*ZUAbhH-WMTK;j=rWRO-D_D(!(Sx~x>XHq|~waBZ%mS}3N- zb;@=Cgz{1VLIOo{sS-*7*j)&A;9>V7D8ga;pcv5?c0o{#!xKR<4u=HAxOK{LRO8ko zXSHiHoB-E0H~~TeO;+xQMY08@0D^VFJOT>V2dmx|K)V2W`ebuCi4ONU$qtV>$pTGz zN*;yq!IG35Ko)3PeY>Co$O7HX9UVZ{yJ#M%>Ake*LOhQK(Icxy^wq6K@KEZP9ng5( zY62T3j`ji@Ch0;64-T_o3Wr;b;NcK*<#DSKJe*KmdE9COIwOuH1NtJ#LIuwSQiXzd zsR-!Bd2LWv`E6?7n7;2i;?-~;KhG1if`GY@G* z6RMtQ%XV7_+v1#CI81lTy7Qb|oRGKe)TMotT^fFu22ML{&>0>HK0ms%e5(E--V-z@3c1SEvCqgPyy>)fO+7=lFtYqMxjQA6CKh zQhn&j9bC`g)yqih<^0NIqSHOnF7#xI)b|PjNAmiHfGY=FMgXo|fZnRW z4Gh2qwvTYxA>im)(xMP>)V_xUaDnZkTj`I4h2$o;K(1Jg@B{s`h5sElD9tu-1Wen3;{=WxfBA9^j4&2upF1$_@IXgZwLWL zdK-s`Ya0TN?AJ2{9Qijc1RRau)DUq)Ld1DPz)}0|3IRv)R}un_?0kO+IO^~05OCz* z`61vaAG{QR3(Olxc^wR{^*{yHo`3 z>kx2czwbl9QM~L4zy}mM|!;>;IJ$)3IcF}aX`2UA>hcr_Xgks{Y#&Ydng1PeJbmj5O6fkUk|_q z_Ji{C8v(e$_7U#A5O6e(HU{7V^-}vbhk&DT^ht=gts&q@@3s(dr1$F(aXUl6k=`Fd z#O(Qg~^I&y6lU})5MtWwp6r2}zp99l^o{}vESAgmcz$~TbVoSkI zN8Ku5qHiu8mjhf6V3tW7jRUuSke`lA42pcY;r62D58ys;F7yWTTRY$`NsN%@uD3ZV zZ@neV7=RaD^zNqj0nmp5vrpoJ#r-PaP6M;3g^(94{z%?BV0zvvaP;n`Hw_gDz&zbj z;DW`=x8UC>F(~roChr7l=Clek?rtsQm1e({5+lXAwvX($54i9)LLR-l>5T=wio}#A z?@?5y0k^jdd2vv51eg}>gx+BOAiLZqF{SApkIL(#!;Jg!qAOTGwxezqFoW8cj-&V+ zDKR9EE;qY;3o%as=j|xu1&fyl(ZTzHF@KXKSbr&R)S_=;c3f_H=@W}ZA>g(m;AR1r zM&C4zi{>Xcd6Q7R6PUjL6F6E&x#1>*{su73Zx=Xvcf&P=-e_RbVg-)YgKoG7Q2iS) zW8wuaSbnB7zf@u%iZ7O@opTZY2MI!!gc-f61yf4$%SF{}Y9k_q{YW;BhcnUS@W5oc0v*ra&UONQz*TDQYSm1gEkvALk`|b!ct{oI9NFDX z-ou#CjsTN4R^WODkyjJ)KD{f<*pn-8v|n1C zaWMapFk|vuflCY`Zz||XPlXv@;6)d`yUBYV72g5le_G%u-@ExO8}#ph>9U}7c`%6) z1I(IdN|)z{ygJVc42pcYweKxJ9tN)KLV*nySMwm@Ens4)L%4#){Yq311}6Lkfur*d zxBl)1eJL<^zbJ6@?%F;mnhs3IB?3qDv75Xn5r5T|h8as<7C38O)#54*8?FkkU|sUI zzzq)~uPdtmd^gOv`8|OP*59$v+Z~uC9|~OOAo4t*Z(JW{)Zb9LJhERjF#9(OTrm65 zXB4Mw3NseqMHjuh*>4CcUIOOgW`PS9f63_Jh>yaIS3eOrYyG0xkG>wb<(4qx=yrj7 z1bW@Z?|KaEe&2-|7552TUlXT|%OvPM@iY8;P~hm@tsj#xF8>G2dq)K>E{MDgjPpB> zV}AQX;H-6`){l1BVC?|r>fZwQzaa8*(Y|r#!;IY*1uj?|Oh@}p0ORM8A$~f}Elvla zL64RzXB;d~lEhEZy7iatBQ~#4&ZtpE;1YtgF9q}+Rm&Oms|j4N_R-Ql8W?Y+zy%xU zzd+s|i9wMsxAwh-eyput&d9kz$ZG?nTYv8Xy;E(05z^fKyAqJMfEzA<4T(Pb?k2AQ z^kV$>++q6tIb8Ja);=1)7l3KkK;W!-MvK2oz)c0_?kIsnSh&l>INuD+g{A_>_orRf z8=QWcmor|zMc}~ZDsMgPw*#0*TM1la;N1FK3DpN$motvG6*y}js>O3xRMcr#&KS^1 z;JOEq_YvsxyOc8qbrrZ^{Y^vl^T3?!E^yZTtJ!ZA?6rizE?nx>0Qn^h8JC6bG0Ak$%?V%jMZ@h7c5Vbyo~sA#=m&c6|8-`Ag@V6Ipchv z(&dpk79^H4zU?b;6jyHXR}+dF^($v|N)@=qz`6N%AF5};*uD&b3)a4DvOmE72sb$-~mXI0oFJEdm=XpC*I9)~995%Y{5IaN9o<*kJQ? z668g1EnD7Z$h#Z3?q3LOF#FNG_nE|?$d_AxABMb$FT;)5+l0Je{iS&-!u+MRQsj|; z`vTYbYa!1Xzgk`^2JQ!7`hFvDmR&R)rZ(dZU^ea)I4fUixaoxZF5GDUgTPtyjD|CS z>$@9z_XwP|f75W4(7ykGsUUw#j`9J=m4>?oVg>xX7%EOm{)f%)J+feRM*zo9+tu7(>o@C*}t-nxMHbp)nWI2?n^I=9gD(lTR6 zM1*m#{I$Vg<6{?O)T7p+TvQMo#Y@vs5yl0) z=n57uvmvizR)n$HCvaArYUA=5$T&GV!k9ir;DU{FT2DR>%+EOjNBdW|JW1>JU+;=A zZpsxnE3avKdjfYKFdycXuJ?w%!Nz$<$QujH^D6`{Sbt{&cM_OMuLztq4{COK0=Uz_Ont3%9G&l8 z048~rzy#2xM2NFMEiySvv^JE?Mnu(_InXV z_WPydE_-x9$znT!Td|}+w=`+-^T(M zEUu4%`fWqqsZ^+*OH%c-R^DB{g~E zr}}$Clh+KmXo(FbkJbaJz>JePxKZeJXi>M8~E{;0e^ z!f1{cU8VIm9+&|-PLoIe@B=eV$GNocC16(RI87eK={AX>_R$qAo_7Oxs0?}3zObJo zj9PfnRa$>L0CT&J)7sY*GDZONfR1zN?~A~^uH!U$6fa)@vq#6d$U6^A_yMgSnmn2Z z8Ud4}<6Pv80j5aDY4WIjb0r2vzJmGVCE!+-A&>mA4VVKu&ZT`_e(rS^4^ z7zW}km_Paemr;g1vfua+<;?{d=9M9j#_!v}>R6~ zbeqI55O2ZaB?-8JWym9c6ah0+$GNm`IWTYQIG6tJ0Oo*>bCGuim}`!d-e2->bBQUd zzg>WfEkhpl*9%OEj&o_>JYZhbaW4Jc0L*qB=OXU}Fz0ogCXd=z>$lLxM+@LONo=rq zA$b|VjL~r}?VAD2Tpg#ikNoi_Fq?Foi@g279Mf@{JZfLXqY*}3yy&v};UcdaF!4H0 zlSl2#k{A|50CT&p!c|CyXqvJGr z6fZuBVS#uH7SEG`n-PM%rNF$e<6PSJJunA#oYp?-?^R%`o+!J&t%2#L<6PtomYA~o zI|jI-GUSo{<^r=^$GPE_InhVg*whf-dbQj)p43UYTqG=L6NUu{XGv{_@AZsm)h4zVx+jB<2M?(+scqf z@iz>ZA|2<_-?_jn(s5dUseS8!*{0)M1E0$f{(EiGR91LM_k zF73M?m`8P-);{v@tH5l~aW3-q0&`TyY4XT^fdG(>slfeSyQ*+pv~`J)jqophW_e=~sb z=r~OtjgKk7%-3-)@>T=0NylmOsD1l^IiurTC(>sY+#vf@CKNA~LmOp=askv9gI zA|0p6Bmd5o7}85uF#kRa-10Kyk^MdaX0MKOY2QU)%AYN}zfFMYpyOQR4FG0@j??-} z{+c-k7M3B8?6)>Vc^?6{y$pHe-xDFq`xm&1f0u2)W)eevr7Ku}I{_C{ zhP){7dw{uL$GP}p5iqanIL#jBWZ#z$LVZr5=x@%=35=-(!Nu`{Hx=%_EEgl`3L(Wyy&v*;v%mPFc~^d zlSlm>FEK0-Z^8OI8Mql`$fNV7r6J0D6S#F{$fN%52~plL;Le30uf};{yR!P*1h}>m zYuQ<|ALW<+z<70>i$CrM=20EzBJWjTHt0APd3%95s^c_yWWVwku-?FnE~_6d@;U%> zyN=W3QM`KuE{T&QkRvGeWd^`}MyvKlhwhVdXkM~2Aw+XmyWyquRl4BvtD}M?3 z885nm*^kCYTZv&H-h$aL7P!<9F<7Ej_Ekfe&pYZm$8n; zi!Lh;T;z2FCSJ#B@@V{K0aK*oT;$CKW|59_k+%+*Z92|H-Z5a#={QXu*{{Zx2%{xl zbd}cMBwz;WI87e)w@6}GAl`zFk7>ZoDMKFRgH<8QTLaujWyquc9tct1dEmnT)9m8X z-$oKsR)3>`yDbEH!$Ood4!DVB$RqpB4^iGC;9f059*vK!!0gp=F7bB}nDSRkw;#!C z0!$Yj=OS+)FkT(!;*a}*nWN)e=QU2R4F(~pCES?Vmcd86|6n|Cl?L^J^ z8;VLFZ?V9n>Nu@^Brgw`89L6Tze|C6Q^#rYX#8#mX1|Vek@qh!6~pL>VMjk)7Y{H+I?knibAef;9GJItoF*bUsFGUQSGg@p^7NO3{^TL-vi z5^K#fF71mAQC>gb28ST8Bt&^rfSVP9yq80i_a<=b%8*C?-4mj`W5As&LmrKf8WExS zqd9OLBsQ2oNZtTod^*l0{-yylN5^UYrT(r0W`mA%k+&C^qdHELN8`7A`SM01yyz-z zJ=qeNE)o~4zZA~{fyvWxF7101m<2jcYaiKf4KQEmI2U={Og8+kn}v<1~5HzH<_TB45G$aZRQ2MlHPP z3f5oB_Z=jLfp`lhuLp2_%8=I-{61i2NnB~;Z5}W$mLZSYw?SgcYTu{8eOrdSRuFOu zn7Y?!c5(4XH(=s*oaPVmZx%2`I?hGjTwoUII87eqmvs_TR)4<(?m!vx$bMHslvn=R z@)rbc+q9q#YJ8`Fava)CXf2-mlzg^w_yIA2;8(X4EM9b#*56oQQgxgrkL;HR%oH8x(!PbjysYC~Npp9^{)?Ye6$9xo5Wgn(d1G54F+bMj&o_>EMVsAI2U=Vf!V6#T;v@A=8TTh z%tRgMB5yu0FX=c<9>wz}iQxv~E!gKF9&4qzri!FY|zTIRtrc1GAwFd1Sx65`!XN z!R&VyxT_(^s~;Jf{W<{`BeB8kNB#8xQ>5cu;$|bLsDHU=Hax zm;Q#;z?<-bcWEtK(ecodV`x9hWtB zTv6wa+&6kFzz-nRsj0>@eaJg1DynT>iU*tI)cAo9GU0It=%Z zx~pjTq|P0Or~7h!-XdRAMzOazCu?{?k+)=08`K)zjh>OlNPIlrsA04)5@#R~<^TP2 zvI_l0{?Wxzx1_g-N-ZeP$;-JrCx1*-tUs?HC)Zaf+W0!Yl&HQ@F|r~)RNvZ2%kab{ z#b$bvGGmgHVm&b_eUjsix~M+bm^zUe?a55-7oXzE9GVvINl8tKH*S)ZVOnKO%21X| zjODbtjLh_;ls-m1$r`Rz$E2sn47CK~Yflud{o;pmiyp2^0}XWvN%6^XqD8$^QKYj{1b8A@OlWBgxHb^;!>pNv$1siv*O{w99UhMX0)h zR_$zfMXj!P@6;hy!z*c({rh{kzOfX1tya$s_Xw-q2+SeVS83kDBA*8_Q&`NsrV2Kh zs7Ulq@OcL3WEYQRgHkQq#8I2(MI{;ZJC+%f(BCsCCV61IFt@{xR3Bz&^(is^h(6iFsxpmz%Ji!H9-vPn2gwX*iDQPs=S`tCo1FO%~~2GR2%82 z1z&7pOnU!#jP2MA?jS*Gs*r@#luQ#sVMUNyDx_b0dP-bOW(*sV>Td|FPm4)P&#(YD zs({S&nAmcs4gj@)M-ycq65qg4nUoQm6h{a&O4K%X)b>k5TLihOLLOq#n<@06 z>?Bfhi-RuvpAny#!Es0RtsV6UgY-mpC1PF&v6d7g2;$sYc- zY#zPwn3p1^7UcP}5;8q~l82@xdJ<@WWO`y#`=_O5BxT0q`?)JdenE=}0~i|OspDYz zDv>F)@a8LP^k~nhlAPRZ{0jQ$lKiY9q@^m6Um{D33%|)4SpAY!P0cExWNLEP1NQ~1 z8b2DEmFF$+WaWB`ihM<^yQ-o)+n43HbvFd}DsC@n=gHiY=g%%dK4K9F+$xcOS>n++ z@$2ED<)r&QXQk3I>Q}U-8!glORWY&(79Q*OjuS)QL#VI z0lV2%T1kEm`P6}Hir(!;D2E%d3GF!!%_+n=)zDZaRD}SPHPO(lMUaXX#C@6}a}utS zg)`5K%>F>+) z7f!~iQz#o~)timUC@%DQ^E|1rK31>(d`{fd?guR>)+kxyJgF0Wg`;!*6FJZbu-FDT zXHN<=s(#6?X8wWs7-KAemO+GAVj+^odKdn(dqrm5Eq7 z3#KEWZ&v7@__#ihNPCn6sKkAo(d{vLWv9ny#HSC6kMp!+dr@7OS(liR8QIw(Ffm2FQI<;{xpSiUoDY3uRw;EOj;-P;`Mn9{jrdbo4l8L1hYD`bnGHcQ`Pu*ZvBx)5mnicGF zs5e8awpk(kLGH5Z>R5F|W`9}Uy2-2?G)Q-3U9&1N(X68ND4D39SrtDdleRE%DgEJ0 zGXmANI3Z)xfM8WXUwE8k$v!R!gXJd!SB?8(&dYTxw=Ud@SWsjvT5J;|6tX zkq#DJ3>?teQ5`s<2rmW==rM3PEoF%)h75?Q=@w9o7SK{sGdc7KC`Jm18Syc(7E}xq zqV^ulRwt+!A|P5})YW1TV+3_Ey)!JL7#&26i?fJgV36p6y)B{`6(GhX4dSpRePUFA zXz7c#do2bBDpTV7SiKel1H||NyapgCVoZQWzT>>d{-g0o)naU*IxRKLGKv@zAjYMG zN;#LHVnBdux2K!c12HB@&cIBID24-wed04MKZ>CMVp2kUaz?yG7bAhh!;z`|Eg@nc zfZl&#vegzb0tjp--u9iW=8GYK%8UW&c4I{JgBmx`?x~1-5aWl$CUPF8o{D$}Riqc1 z(TFT!9pv=XWVmrDeq6lqthk zI3Xv?myVrCRaAT-WM&k2^F44)rN~coC7C3MwcLd2A=uodWh8p~bBjDFzKL9S z1M1!rtjRe=#VOc*K!pdRr&8o*TL)vW2hE`uIiOPHbBfw@Uy-lalKU{$m6_3=*#6kY z#>#DMZSc@~Q}2|AyGt7}*uv(Z?nZ&-ZmGsct8o}Hv(TGgG#ck@tc)7l3O^VOR-9|b zOv)+pz}b}|^97e!jdKeyT~&(Qs@khd_-TkPdPq5!iUjy;UrT2QAJC`~X!G7>eaH#s&Q)NE==zvO7D96%hJ9|-Br zfyF%Jy;lSex=aToaTqFvC0WHdM5QjCkOFi4#da5|y}dAq5YUO(AQjQpGoQ^xou_jf zEz~J=DKK9V%`it75?!Upk=ke^IYrz!(*Lu=#7X%%A_%C}ba+HZV0@Tf$b(yOHALmd zTKK>TNf<45e2owd5u+ik(1#-);cx0%PvJcpJF$L$VYc0xC5n@{rDAkNJFUTV9z!dL z++G-oJDcFdALCL~~Nh*QP{+)u>p zK}S5X*kF&s*$P_#izO>jWZ;fsmIzmh$Y!D{DL<=_Z)SLN9U)6P>IMRk6j=%754Kn% z;P%1rl#DQKrg-ykPb3LZ;>||}VhCm2ezF%7T+|b8+w1spa_}X3i^h7A;pUP8##2hF z35!zq;`7lx+`*)7*9848xIhl%SU$7kRPu&H5Z&rDM-D}WYGo`fk?F0*kd;UsP4W79%96Sruv z?Z}McY|g~e3F6EUxt?Zxx%$FD@6cW>L7cu5XLVw2(ph9kq}6oa7@RnAUuX$L=jOP_ z9gvhs{G-A#WKj>+j+G*tAP@?RXs8ymx(>2e32|cZSW>&QR0?G*chEdBZF+Eb2ZI<) zj&u+^)`x@6G(WIKVnk37<_JG0<7oigmv0QpHb+dM8#&(mVlp!22aXPE-z#>cb0h_s za(IF9fzXhF6|IL(8vFZ@RCpf4Hmy=*1f@$H4Q90G!T6>#a%h+qSxScqLA0h|->tA4 zfg3k$w_(Da458en2AuHFL}6^s9~qdu*_IUFM}&vWRCWg)Gg4=#*dfYIJOmttm<;&1 zoGg;Tale|I80$&&kvT0d1xd^tT6cp53!>h+n4_?9!*GJz5GZ_(&Jt*#4-}0?^dPg5 zuQ{H(398sKaAJy-fx;6Rb5nfXMn;t@682X)8E}}RAd6Rt45scziJeC8$(X#TJxfIQ z#assz=K>ca@=7?%VO&qFzhE+Zk6ck+wpC8WY)QJ&WOmh&^l9cEBb+Vb($mLZ>}P|p zIEvev)a$T{NpI? zbF;sb`3tu{axs#~8MJ|UM6@D)k}nG@Bl_ljw(ertXtANRmggkCy|fkI9$}?4fvyl# z=S*x5R6Z{A7&BS{2xREc!9)c1fH}a+Cd9A z1x1o@Sd1FtE*290nJ4{QGKy0vdx69}0xdL%tORS#pcFU>bl-|bNNYIDF*{);iyNdo zI|&n0&Zwt4l&$!>G!J=k_!J{%!elAOTp7n?XCpb~7yC=Z_K1^d7vb_)f36?t zl@>M)lqRyKJ5?XT``C#1MV6yXn=Mv2BAe6d_5d?@VzT|C=y|AYyb7_96tfzwamI^q zHrIUUl4Z$-BJ;*^mS!sLSuTinQdm-WvMOP+rl@VIv{`I6)V@;QqDLDL3G5#6HnmC?B+m{ImEx`|w}&z@MHyrb%oyv(!(Li$mr);uqFo%qkB~o^SgL0hE}EJTV0YxprE3M8-OG ziX)Alc_nVF9kHvMjDtneR!jEXN}X&Knrym?S(665*xP0lPsWiH&sAC`wOoiT8To@o z?jjKl{k@aY3jL$;^dZmCm4#K4b4C?<3n#O#766|Uz9n6>Xpr+BZL5>ACt=Di5OT>c zZihCkl=dHeWpB)^8<673c_lJ?AlWzri?neA9Dzl{?l9~CC-GPmdnr~&Q~65KN46cU z-O(Q&ju*s$;iE`|PE7U$Iuj5HnBtr6{X?X=-xCW4msN_$D1WKaXlaIY&W)hN>M~Dz z*aHEpA*Rw<5yC*86;X?+ldh+@V#Qw(fke4tkQZB67V(DYb{d{KD9S3#DJT{zMd3r5 zByiTv%_G+yvt3Io>tL>>p12%+h3Y|nH0 z*F4Jbcq~8HRK&wk-^uXMmP0lH%SImB@^ALJoX2oKr&45`7J7kuUz(?23`!j0AsY&X zhlF#j;m50hdA7&NL9{TaDQ6*U(1}C?w4Ef02afDBJ{s1_k*am}Mll%qe@yIuH6 z-p%p!r^T{ZD+}W+mDZ$#475P5!jTid7kPy)sk!I!=RaBk!U1hsaFtcXp{6w45O6U~d2qayZrTfm9EK3d_yE)UZc z*3FbX*Nen1^B5HKQYpg@0(GfGixJI19OY9)dngfc<7x3UTXb1I$VQynvWFYc5m^ss z1lk5m2EVvrLub)GK9c>*9^;(8=~fHpQr=>STtKmxAlfh3BK<^AWb>F5v1jc=l$y zQQ$r87y#^W8iVvuEwZUO-;fBdqsiz~N5IPsc~ViFZ?qRf%Zl%H7(u+$p=p{%?hN5F zKD*)t3^#xeJ;faWUMu0?tQo+YB)7REq~t3yletLb__`!oiDZYVl+(!#!V`mVDo$Gu z>WcfFA`c#Q#Fj!hn8eEtxSn^D4<3|Fk|)8e?E&F1G6FS#PS{V{Aww<{+g+M|wUBv3 z8`(4z$Q#Lm&WHbOOtR1`!gjsm64+=IE4OmjDIjp_B*!zy#Uaz3C8I}kDDu#(3b;Ah zvsK(z|6*n=u@@3Jqb29PL+oZML-riUO`|omS56P;qBx}$`9a%mdN`YX;FMyo>PSor z(QO=T=3!Ap2T$B==SGq({F={DcfX^r> zF3irsW98y(xJ0yq2cWrS<9zcNTiY5A?5R1@(AMgjWGe0BPP;ER*;NNI9?fO4nEYv! z>f=%Pq(JyYY(S~KsU|-IdvBh$vay(I_xjm5JVeYnwG>9`( zQoz9j*^WN31&p=76br_=!ct-#MT>3@C2~LPlvZ3AN1Imi-s3U>^U8yr+)f0S72Ui` zxQMh4PGLuGkH^^!N;>TYpA1SK`|KcEr_*HPD=f_SBkE|#&l53ipL)`i5;!2lk}>ey zQcU<^Z~!eI#NAITO&oJfDb{j{8u75Kppixaa!&lsOZ%8&JcvD(T|%jbKIDMz$~&}t z!YwlEx5BQ-p6XoF983+wP;%_8ab6`SCF@orL1s0gO+>XMUJSuR@=0UjwLPgx3_ zmGdrph`X060z=HY)H9mR!~(IDo2DG`)e*JG9gZUf9)2G|B294ihC^(3DqEARxG!qC z;$K)q%88#;Tqqvapr}*kEKWD-qFCI=nkk}$QzO~!9VKJ(hVO{XNah?V4pO)QG_($* zBUt+I*(z(~Wb0mM)tPbxuUurt8ElIuVGia+#K~7l+sH*ROi<177=OYL@Xxd!yII>KZP!HF-D>7a-T}f zU)s^A$id1q%&`%8dzhQyIMP9))AFr)4@Ib>kJDg?ndwvP0>2k&CLs>D zp_IhaQi%@7InG%+Eg%9%GOJi1l!{X+abu4s2}<9TY58=Eqag4GI!~f*yD4$Z)JIKl zIMP;*3dsTVsW(b5=5%M~EVg3}=Ybjfj7ISlxEKjW+!kjlC3g3l<=n&HL_%;*QXCMg z?YqG&hE@q1Wo{AAv54{Tk5eH_ba|eJ-9n!mv}`6OvOB?ysoGrO^DSbUIbV1B+9RK( zKz^a+dJ{2BoRf+<`N+F#>{K#Fz->ux$52Hn+p;n`Mor^mAnq>B$vM*elx~?wb0%6w zV~E0?{T{HH6@!@q#9a6AAvXe=rh3+KHF5qs{#?g?+$5rkGEQggk6>c$Dzcs|q>4CR2#ql}R za6;l+9h5ZaNQ4eob2V2{0h{)OQ zPo!`k)sr+49z!6RBH3K2@S4D{WWV_QY&-W+n7w5W^?W+@AcMQyiRbmeQ0XRsSc#iwUnx_J7@Rz|qrrU-zUl@CYK6YoLOeg6pW(|YDfDId zyoFg~GjQX~@w^y+P?2U3dJ2fVF?w{7Puy9%Q#4T=R*@;xsY48guVmJfql>4jpOmH* zaXPRccBGLNFwKdG2wX^thIlt#6;GMKrVIxE?0*{UF3XnHwkRJY_0t zRUW)F6NEedFMt=99%m$ zYSinwB31If$J+8!!agXy(womw_*5!Jo0IwUPQ4>cJ~$+NVtY#LUoVM-V6MQN2hp7C zm{n2AWNOO-1O$0iOzj*F0XHR?sy|>PwhmFk8@>JhT)w>^Z>0D4W+CGIcvRCmC8V?7 z5`iAbcLr!KY~)PLcwmAxWlCF!r!6QX2&zw}9FrqtUUDoBS5A_KJmfldBsQ5$z=iiO>yd@92tuyG$$pVEIczKZ&eh~gPr)6CpKM0 zOwV|zl5;}=KGTe)C|Oy1pn%6jiEyud#LWVRBB-$(qz8oX&JKz)zIr43sC!@)?xxmgN}e zy+@WmLwSZQUyF7;B+Iv>JX4mFQGQsK2ctYomh(}5M3$$Z{Fp3PuZZ6wlI0O7KOxIw zQJyQykD>geEI*I(0$IKnU(EK5EYC#wIa%I{@?u&3=Nf!30m{F?FU?@LrLr7{^1CRH zh0mUXP1eZrD=2?}@)N-K1ZJ%)C!_qKERRHaoh(0w@_Jc*0p(4yydLGvviv>DAEP`L z{r(*CKSB8w_^1u&TTqUwV&IFz4C6CdJ`T)QD#PBfpnopQBT(Kh%m1SMwJcu`{4QBO zg!1>Yd>-W=WVtGQx?7g(p!}mOH%EDoEO$rwCt2=;@?KfaM0uYqdr|&bmM5e9i!5(J z`Bz!Kit-^@Ziqe{mgNB`ACcu@DE}tQK9rBjauLeEqr4d3=Z3FBGmgo!7vkT6wGOv|oKgyM5c_zx&$?{t$(~~k?fggZ!by*&VG93t< zu8KO8Yszv4%C%%U3*{SRneaEt@;xZmmgPrLt|QAYp?s4puS2=6EK^L@ljS2Q*O%q9 zDF2Pu@0d`~b;Mxzq)V^1e?KhaM6Xvj-uvG-zZ`#aN#svO-yd$?HTTsz^Bx|IJjS>s zr{+I6=l5A(L>HVbiQUt8b>Sn8W1q}Q8MXPNxog&robZ!jtYBRFqOZqqd3yIf)%wkt znd|%Uhu`Yo{YUE;`elC7ykRskXz539rgO)*invt1<+jsX(te-4 z`QUxw-4FfMW%`D3KVP`_`;~^VlW{pG&qQ>1sPX$}4)?3_Y{GMU=Wof|b7aPx5uZ1I z{(ooJKGn!DdLZVb!rM;lRQ;!qwhS0vW82)KC7-AN`1$m=zTP*a=8m)T#}(gNZ9MWm zs8Izocm>srJ2j?{5rGpy>I{a%U?}C?%l2O z+?x9n4I{BU>D{^SSe=F&c6NF-^`ke(eVY}zX#IiX2i8=bcu(t+w_Ck*`WDQOjQg^F z$L^D>?~HgYj8plkp{pMT0 zckJ3_=QAsQTyVVZsYfPGPM_ib97#F@c{M7$Z|&3*GY8LmdF9c5xnu8G}+Fu;s;?#9(Zr%(>1d;XzS zhcDJ^6j$71$HIAwhF5>GXSccWD`#vP^4D9V{gv_Eu#EfPm8af$@Q)e`-)*=3$wrV9LyYykDm?kr_UraxQoW{77=eKp;_guf@^FMv&Y{Mm6Z?3bv@aC``n_l|W z-+M;S_Q^vHqc7&SsPNtWFE87&%3tgLx2jA&G2-n0F$v2?Rcdo<_`0ml@3lx?^d9Cl z#x?tK|WZw!GVe8 zr%!vN_MZD1wfJ_~AM@9}J#li<`#0R#1miLeb7@p~|5KM1jOx&;@oVeXKfj{S#=X;$ zTMpZrFmU(PQ!&%h{gaTKUu0Z|H$UosCG5|tt?#{1yynoPf+@2m~S3RmM%a^N|kA?#RD&`SQKd zz7Iz~|4!!pZ4dVKTvPFpPtqIBnvX@`-;Dd|wbgqMoEufM@cYYi-+6FZ?Rs5b%->l3 z(%dso_Bip%n!M)?BL%*T3ctPKeScosS@7h{q|cwbHR`FaJ~{hvi?@ILXu&^U7f(CB z^A;=&o?+bncP}h^_vO`9QqK(S7IW^&$s=sxlLxIg}n1jBffaZ|>fc>1aCcUMl@)u2-6917Q(CAL{B^9 zVI2|`9#uK%<5N4wZGE-PqDwud-}_nhce)%nx3xw67oVu#?cL=^uxR;?aZ{&793B={ zr`qhqF-8Bq`_fN~7ezlie^{?CCSU3GO2mOS&tR^>{1z2ndH&JgrZoIN_TD`ps%rfo z-op$R2Xw$ImgT6V7y02$F>sf2B-K+56 z@5>e%i<1+_+uMYPeQ|NX;wQHZ|M~O`OziWSzZdWCvFiQm-U-hpzC7liPd#-{^B2lb zST{WQ_V7Njb^Rh9`~*4|^S3GP=8h=|)x~x1wjTG)*O||4KU%W$hIK19?&z2>>ioCe z?#2lo7(b2Ld&;{Xnh-H(U5gJ|ZT=?i#P{27Dw#ZN*-IMza~s~V6_b87f%zK}_QYq} z$Ev+g9J%qI*~>rw;>eIDs|R;qIM8fgw6^54r&Ay|n7`XLop1K`(<$>t4Cx=(S{^r`{T63Yguqbji?d z5AT^e0y1q7`jSx_^zo|$Qdx2KwAQg+I8OwQc+d8?|V9`^34x}-#&hHW7kJw z(0`df=MzWfcF6s$!+?rIzxC@n>we91!Ld(_jnTcCcSq^I?T_|Ae$lp!+Wvi)E@)>S z@owSv$S+?hs(j_-$A_h5DH|(}b(>=QG$sM^U=8zk@35Wu2SbOH&sa9fR8ablq95cg zLAh;zP1bE%e(c7x??SQriTN9lcWbA+UN&5u{QO(PGv);yl-BP2>AokQOz!^F(noG; z`X%}=y;g73zB&5i7Qdbz8?krrURQ5#_Tw9c8MT!M?Hw=Z2Hd&s*Sm`#pP9c8=bU`_ zwnc+u=4OqYxc=$>S#3{Mx>xPa+4*X((>Y(e?NGk|VE%s4c6d40<9+6ZwDgs8$8S9F z#QXV8oeysaj!jt=9C;@F4D{BP6z}TA4}Oq&SI2Ir78dqCxpkqp0f_ayZqOAw8S>EZTE~f*w4%hr+?U{|{*FSUb$~qA>KcFUl;sKaYEN@;&^FO>UuJfb(Hgw%_VcGv0=TzK;S@o)Zf#;CYnr`yinII;7T zGs5m|FJaEg{I$M)maE{gp&9$$AGPA87bk2f-nr-el4sVf{^*mpDi?P?0v&M=^Ea|h z+vnch@$9scH&*2Dy6vC6#Fx@ET~hCxF5H%tam(ZrlMpAY)<*5S+UzH@1|P_;oO!Wg zV!LPUUvC@yYNGa?g|D?3RWq#5^O#)BXZ{{ob+F0(1#J^Yq(1y@>JQ>8>*6mgD{cDe znej85q~0@o!kvP!lllAL;hU{r+>v_t=ct>yJk>t;mp2ACxuwawL!L_w?s%%{)=9q! zLU+g*=*8zvD+aZ)-Tlm6uT&pD)}{aL-?-Y}J@J?781si6njajAd^nlEyzzzN#lUY@ zzIm?syRAngw%ahiv~QR9TARBzzp3TAMYkP-Ud;UM8nQKI=+?9r?=5ILPZ{y3}uglAhIy_dq@SFMg*P)Bw58qc8 zQthkmS-% z>v!pUo|^H)AsfE&!u&-CUJPuW5tMx3k=@(kKJNVe>DB9=-1GT2ox^V&I%-yrJd8)Q z_0p(yKlraEmmY3;%Tv1#R6RGa$quwg@qQ=hC~(XnJ~P!uD-78?8^RZ*k$H z>VKr~3|ao;>Lm%Er5AR=cZv5=~dfv3|#8>M(JX7(|BhR4yr64axZO_l$ zuO7NTu-ijV4;t}iNdNEdpY!^b%o(PTugWLi^VGAyBdoWXzXdZpc6L3!GFU2jukENF zOCLC9TDdPGG~(Guwyi5G?l$oUe8Y$Ni~MMWuJzc5+#lTjl>Wid<60g{cg_o*@W{9} zca?u&88mU|5siv{7<_7rc|>2(j6|2FNhaqW|OoGuFfYS_%mx%sUQ z9-Q)MTvC&QeviSn#r*wpMA4DDKGw9we$E&Bry<0N& z;(sHUaW*N72(j`}P{>z`lFWPzj$-cXu9k6TMlJdZG*cg~UTW&LR z|E(z#raAk3JaGJqdors2XtibWs<-=m{FU_XnHk6MO>5@w>$n}!(7Wo~alKUDhq1<}5K$B(hOo&mjv9Uhl7{mnV| zzjC(Cy|sccllfae^|f~UJm%u>vXaev-u`g$t~Mddot>TxHNGtTbndxo4fHzZZ{X4D z;h|lIp3hA_9T*(D;EWvH=XE?iwdBoD zJDyv$^|919GGPN_{$AGxoH~+ws#iy``-}Iy(Ra|w!y8|%3E6g`YtYeM;ZxthnBP8% z;%(n7?d!LGZ~M&;PtM%4G3a2w)4NVC-0;=@M~`N7Jv#q&X9D^;^S9!we3$XHk*kw_ z-nA{sbh~q5*Gc;B6W(|$GBjs!_^pA^nRYXO2mX=0BX#|h$3BbP*>df?x6)dCR`ai$ zCf)GvblsU9H;yyzMZ3C%;@y<+Q}XgR_Vzp3Yr~c`>CJ_VoO{o${iA%odt>|i=l$Gr zENsWj-4bxsLg38lL*tcgs(dObMK{uEXcc#a*f0 z+dQ%4qim;vdi0^S zr{2e@ugu?~iOcTpc)BkAi`{xKEvU*>Pk=Pk}J zAMxS+cZ{x_J@4rBPhCU0EexD~IN@LJ&i#(x{+t%$eiw@O>9`4k=bZ;mXZxMU(yley{JN5IM6mbDh)bKNgYBmK?B|E*nH-k$}DX_UzlcXKdfzePWPio(Zg}-#shuuP2zDhKsGSe|LIwX3auz;s*uZ6K0efA z))e|Y(O-_h(Pt_hw06DW)K^ZPJ>|jK|sR2%_sv-L)&+&W~QOr`zYw znsvRw`)3{>y_q#Ltn={XD9FpU(r}vIYwdXNg^vz%0BMO2=V0TFqjrKWEyMyqpHQ(e=o^oH>mVkRtXb&x0gw+z?rS_|glh zRgIC-S?mbG21067sen}D3pG5JMv$D!I8BXx#`OFif76JX<(QF+7v8SBsn&NQM{mW3 z)L8Q!^lqHF*m#PMDmGxjsMq=azER@dzdDy}K(1WB`hQhmO8d%lPR-59Y^({|Rc5X% z2TfiYyHj8~*~9M4%fm}NjTUs4!>?5|LjOh17vQrJ%6#pzX7;CLwx6h_lMEY>WPdtH zNGnzQZ=A$kQ_BA7wE1PXK9PUEO6p~k&)9mMqNzS0Rme4-ssJqefPzVUdyX|As(D8Tvo_UpFr)CZ&*@vgJJ>qBz%W?8$= z7I^K_!)*I6$*uYn=GmDxeVr-v4<`$68D4KCUX@c=JK1@U*BhXJ!dPFs-g$_BKz?gC zf4(dD2b4u$n{14%u`>V5b*Hq_zuemM?C9S4*WHt^Y6PmVpw^(M6PJxzjjGA#=FEcm zh}X(xvHaG@>#b+)~$noO1hEPURi zkqbXFZ^7j29_80AczFqq_5Uj>EhE9SNO(r}4zRXYgs}>FaTsNB5%52MxH)`Z&PQz*4 z*DJ65b2tOm^Xm=g+AZGE=ynQhQ^0o?uQ#RsIp+FxW7P$6>bKMAuk|se>|EVF{Ya zUicWOj`8*=NH6>ZbdK?UR*+r@L4@ZSFHAvtAsXlc<8@b%Ua$iF!FVYO(hFHY7a8wv z1?hzXpi7KbtRTH$!uxX$?4J!4EDF*K89<8}Z<>Pif&{dL@jMFB3+sVgjQ5U$^um6i zrHpq-L3&{_-W`(}FH=E!VG+;@##^c&#M>16hZ%30g7m^dyg#yq@#v$TcVg#esNhz3 zdV!7+CZ1l9fj(sZ=qwcOkB-tLo?duV^+!iPeZc%ZtNMFh;pv4JRe!GnZD#)7Q2o&% z%f!>htNVBIrcD*_Hm;N&6(UNxQQ@NGh>9F5x{t?*@-J4oPL#j2dCXBpQQrN& z5vj1sHPs-3Y>P4$?sVwn(%Mdeq*9wc>U|3>LnB4b91}qA(${(?4K`qkVkvs`Pr=egyTvj{cpzD@Au*xS{ZAuxxUP=s}(0oprhtmKX|`gDpz$L{-8qN*_d3 zfg0Ku&}|__9uxAP)6h&w!=hFc{~pBe2(`-1#cq2=??<&-tNb~!#4WM0;yoYF;%<$;Jxw^Oy5 zCYvUi(kDzT^CjpQbpa&kn16zn8a7x?nu>#K_FnROO`FI|h2dwNH0PfF26I0D^uEuH@|$zRuuL5ncS7ftf-f3m$UQp2}j5q`;W zcU`}E6aQ^PMbAy}6_$K}y3##J2%VoG)Ywt2g=d`YF26q<_esVJH6y9@vf{Y|yx5YO zOpr~~G-`5yK>zbE#Q&#ZjsSMm;;K_`1`-OwUvL&R>jr+hfAiC5bO8jR#LF!~@ac zCt6_~kdgVj4~R?Kl`1L)8q4m|aWLH9ttd^7a#i#X6;-O}7a*RhOF%sJy$}}X(Qy-; zHw}oVbcK5NN%ih__3o!YJRe^JW#LaNe2?o4hJMF28h<*W6=X$MhD4wYcGm_pg`rfS znGB5rn#@od&?JV^fzlbu0Gi6sG$2Z&R>%g*WoQi$59I}*9L9SID4U_zfao|Gt*{>G zZiY}X|M&a968QgB36LbK|3L@{^!Ie<3XmJ=)meH55l<@}O7z zsh^+;(CPw%f|pM>KEIvQ_Igk!^3dvE5BKw>Ng^*ok}i5BGg}p&mrj z9t#Yn?3+~QPBCfp{5^?RrP%5ss zF_eZY`PB#+xW+S-jq9BZ<>6{#Xg;oHhFrKNGgOT0V1`!WinmD-%4%FGbd9hESDX|8 z^b)RP7+R0(IEFUiiuamvw*=S83{~Pfm7ywJr!#Z_S4xjYID+d;hN^MJJJ#Tx!u1}8 z>Tq>11hz1bAv!?uUWUSf7BLhF5sHCcVQ3}L>kO?1qEbTn0lm%8OF$bK zS`YLdLz{p;V5kIWD?^n)+Zd_>+QHBPASzdsAJE4PRRis2=oHXihU$PmV~860euhGT z4l)!D^fg0dtvJGv5$GsG(Lg^k6a!SlP#n;4h7y5JG9&{1!cZ!Z4KZri0h_}Z$^dT! zL)k#18Oj4nV`x6m6oyvcosEDB>K=(6L4Mc}{awD6D>Cx!?xEljr zFhg-bI))N~^bDl}^<*dws5e8TZ#QL#bm4G@@_^biG#}^|hFm}$87c;fW@sf)H-=UN zwP0usP-})>0&2_9dZ2a;l>pJK1~~`n$50i}0EP|#-NDciphSkMfszWeqr4|kJB;&;ZJf*0?K2k7|71hN}#(LS`9Rdp*28cT!thBB1wgo2t>wZjbO58vW@HleIUv={s^Z|$-#NPaHuC13l@7O`;x<;DYJ5N7tj&d0tG_f!)1VToVmFS zSnUI0nk5f{)t+QED~NsYGBwAMnGH5`j1jC3d=e+qG8IB6z_z$_?&hIPYHl1TVc2#87^vf+obytH!g`{ z{6}+BX$7HM{QN*M{(Qbctf(L@(`WY<`9U^0)}}ox%AsWDZi3iCMD5<%fY^PaoMaTGmeruqQs0*f&p4Wk@{kal zTrO&1A^(Dxuf|Rb5;D?d!v&?2&Q>9erb&|~mN6GwAE31c##)MO^=8FY36#bVtxu3T zAW&8Co2;Es>o6`|z^jbbFBZf&?-1n()+!uPF+2sRsMs@%73*U}GpF6i-I6_8vPV*t zVeKV7Dvr`Jxr{VnULXBbMEa^yNAhqibnFymjTpbpE?VE$+)hH678hK&3TDFw!Q`ql z&I?L0JijgfM&MhVHyJjBxXv|oGTn37*ZbRp>6Oq$v~GAF5w%{b*GE(Q-w3 zT(~Ho7Ulh7`~~{}>wCWVvQ`>4=w0U!k=5}0&iqK%xm%n!8a4zZGWckNVB}7c4$H`rM~3BqLut&lLm+%`YOyO-HSfE0JYgfjNfDLjfDflh6vYr)Szg1 z{&Upec~*m(`Wh^SN2)mg)pfnODI2;KJ9V1-* zdu<|lM{AuZ^xX#Y0h2T-TY)e=w`#>CQTfb!L42}pj}Cp zQ&^O(rV{LDXrHLIGf0ZP4Ysq(N>Ldso7v>KXb>qS*7)59w+oqPZ7$^qwYM{f8SU*( zw6_ikz1ZpyYiZ}DMW=if?_L}!)EtAyt-RqNB>4;9{hCV3DOwJ{DeuOOD_ahWn1)9R z$xuj>-iF#vcEfEa!K!vWUn@fX8}4V9<=-Z=(njq0%OQXz%MrN_C0g4bHB#GdD{n}b zWd=1?f^oA6N~;>9rL(F3V*%u7R_JvkrWAhfh)jvUXm4Q%w;cJ!5T0_%WQYj<1(#uH z5U5;t1%yyDRsr=DN>#q>Ry0&mUL@LNGzl3^0!zJA{j}6eZ78MNAL6E0Utzzl*0U#V zSQ1_XzF2xbfX4mO>bo%DOKoh_jK+jRx@DNsCr`pca98-E*`AKg5_wa<3vS*KGJtqT zcnpZ&4MP#|j*!SZfoZgFcR&qx2e6v;-yINak!wWxyeN%+)+T?8PO{%D&3fD>S>8Z_ ztz*qawj9G!W5IR|^fuXf_&vlWnB^tVwkGbEQdZa`=hh0#BVY<9w>Q{1)GGIl57uYkZuJcETA?L!Y3E+#)mo*#QC6r&;m%MwWrb;L2*Rjsi+KbQ^CUdgJFZV zUiz2e4#_q~%SqbDnA~;2hN5R6-L07=Ci#IPiqfjx<3*_s(W1rL2f5-MPLpe)Cf^zF zS{UGT-sb8*-3c8!DUh%Di}C@(hM`gJ8jYcVj4ll90kEJ1&9bGa#*6MMdPeG)_JPR1 zuz&1|&vKR{&?(Lm1e)u7-__sleAhK#x^q234yt_xeo;RD8Us=bjiL4t(xhpPN<(5%m;XVgOCO%48D|AuFkl-1s0n6sG$Sgggd`h;+v}}Hn3H%DudXz`X zb^Qctjx~?sR_qyT{6T~JQv`upxAgI1Obj$_oLCzS^{b6(<05L_s4Q!InZZrAJrd-i zd_jyqXixSRZ3dqbxGTRCHK@+k_)GS-e84qq2(E8W6}Um|iO~wPJnL~$KFliwPo$XR z?sAyjmvoD4VrIGMnRt@w-&f?Gc5aqENlQutD(eDt4&=gHZYl6OBB%|Ap=xR-P*r&* zYY>j%fivhma>_~epq%on2@OoaXHBR>o#MDaju7S`6jn0_&rux>@`O>wv1RCcq=gSl zs4)>`%_eqK?$R{O=_Dtg)Y&lkkt`KT1<;bZN&bTkfXdDvlf1)BPZ-{)U|F-sJCN!W zPgoI)9@SRdnVyQ@VOVw(O9f?Cnz)fNXc4#g`m|p+-kpCFl{&Q}$n|UX-(8Rqn6ggX z=&fKy?)K^o%Vtq~Ej;0vYm=wHG0@X@7Ufo+_;`wZme-$2Hdy5ZUTRXXT;8qBB!?|$ zX~otW;0+26@#t<=Z+XkH(PWZi0$7okZy_fYj)F{x0R zrcZjI|C2C-q=abm?(~*GBubV?FawOHf+CTL>o+xRFOZ6}zrrG;hoG`}pFqLaHi<2% z4P<>DVldcm_faK0vfW1$m4OF}%76N`gNMuz8k;OYe3T*^IY;!-8@?xjY^}?X60Oh* zjj|JvPPhxG14D~dMEjQbJgyn;v}AW_w*sGTo&e&{c7}v)&hGY6(OoK{{S5rB4Ah$W z`xxjphREi}@6J<^TSX76Xa^8a%O^lQAE7}$-Yr05S$K&+ZXm5-1}b7m1S({RKDM-+ zp;Vw^hDNC<4M<|VbReoLEw=uRhT=-Q`Ia7E4UXtHR2M|$fnx{{kO#JmJzaLg~n$|etK?m9i~VhVPKkPieW*hq?) zHW>j$�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%0A`1edsRC)_%?yWrBAd^g-5;9}kAqfYe! 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