FreeTypeSharp.UWP 3.0.0

dotnet add package FreeTypeSharp.UWP --version 3.0.0
NuGet\Install-Package FreeTypeSharp.UWP -Version 3.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FreeTypeSharp.UWP" Version="3.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add FreeTypeSharp.UWP --version 3.0.0
#r "nuget: FreeTypeSharp.UWP, 3.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install FreeTypeSharp.UWP as a Cake Addin
#addin nuget:?package=FreeTypeSharp.UWP&version=3.0.0

// Install FreeTypeSharp.UWP as a Cake Tool
#tool nuget:?package=FreeTypeSharp.UWP&version=3.0.0

FreeTypeSharp

Nuget

A modern managed FreeType2 library which has source code generated from the original C headers.

FreeTypeSharp v2+ provides cross-platform bindings for:

  • netcoreapp3.1;net8.0 (Windows, Linux, macOS)
  • net8.0-android
  • net8.0-ios
  • net8.0-tvos
  • netstandard2.0
  • uap10.0 (UWP)

README for release v1.X

FreeType Wrapped

FreeType 2.13.2

Native binaries are built by the CI in https://github.com/ryancheung/freetype/tree/csharp-patch

Installation

dotnet add package FreeTypeSharp

UWP target is in a seperate package

dotnet add package FreeTypeSharp.UWP

Usage

There's no magic(abstraction) based on the original C freetype API. All managed API are almost identical with the original freetype C API.
Import the namespaces like using FreeTypeSharp; and using static FreeTypeSharp.FT;, then you can play the font rendering as what you do in C.

Here are few sample code:

using static FreeTypeSharp.FT;
using static FreeTypeSharp.FT_LOAD;
using static FreeTypeSharp.FT_Render_Mode_;

FT_LibraryRec_* lib;
FT_FaceRec_* face;
var error = FT_Init_FreeType(&lib);

error = FT_New_Face(lib, (byte*)Marshal.StringToHGlobalAnsi("some_font_name.ttf"), 0, &face);
error = FT_Set_Char_Size(face, 0, 16 * 64, 300, 300);
var glyphIndex = FT_Get_Char_Index(face, 'F');
error = FT_Load_Glyph(face, glyphIndex, FT_LOAD_DEFAULT);
error = FT_Render_Glyph(face->glyph, FT_RENDER_MODE_NORMAL);
...

More FreeType docs: https://freetype.org/freetype2/docs/documentation.html

Credits

Special thanks to https://github.com/tonisimakov99/FreeTypeBinding for source code generator.

Product Compatible and additional computed target framework versions.
Universal Windows Platform uap10.0.16299 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.0.0 79 4/14/2024
2.2.0 95 3/20/2024