FontStash.NET 1.1.2

dotnet add package FontStash.NET --version 1.1.2                
NuGet\Install-Package FontStash.NET -Version 1.1.2                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的 Install-Package 版本。
<PackageReference Include="FontStash.NET" Version="1.1.2" />                
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件中,以引用此包。
paket add FontStash.NET --version 1.1.2                
#r "nuget: FontStash.NET, 1.1.2"                
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。将其复制到交互工具或脚本的源代码中,以引用包。
// Install FontStash.NET as a Cake Addin
#addin nuget:?package=FontStash.NET&version=1.1.2

// Install FontStash.NET as a Cake Tool
#tool nuget:?package=FontStash.NET&version=1.1.2                

FontStash.NET

memononen/fontstash 端口到 C#,以用于 SilkyNvg

用法/示例

示例可以在 'samples' 目录中找到。

创建一个新的上下文

有关所需的字体图集以及用于渲染的回调的信息存储在 FonsParams 结构中。

FonsParams prams;
// the atlas's initial size
prams.Width = 512;
prams.Height = 512;
// where the (0|0) on the atlas will be
prams.flags = (byte)FonsFlags.ZeroTopLeft;
// Callbacks for creating, resisizing, updating, drawing and deleting the atlas
prams.RenderCreate = Create;
prams.RenderResize = Resize;
prams.RenderUpdate = Update;
prams.RenderDraw = Draw;
prams.RenderDelete = Delete;

这些方法的实现示例可以在 src/FontStash.NET.GL.Legacy(对于不熟悉 OpenGL 的人)或 src/FontStash.NET.GL(对于如何在现代 OpenGL 中渲染)项目中找到。

要最终创建 Fontstash 上下文和实例,请执行以下操作:

var fons = new Fontstash(prams);

现在,都可以像对待 memononen/fontstash 一样使用 Fontstash 实例,除了不需要在每次调用中解析上下文,因为上下文信息按 api 实例存储。

// Create a new font
// Set last parameter to 0 always, incase using StbTrueType font indices.
int fornNormal = fons.CreateFont("testFont", "./fonts/verdana.ttf", 0);

// Rendering method here
// Colours are stored as 4 bytes (rgba) next to each other in a uint.
private uint GetColour(byte r, byte g, byte b, byte a) => return (uint)((r) | (g << 8) | (b << 16) | (a << 24));
uint fontColourRed = GetColour(255, 0, 0, 255);

// Render "I am the walrus!"
fons.SetFont(fontNormal);
fons.SetSize(72.0f);
fons.SetColour(fontColourRed);
// FontStash.DrawText(float, float string) returns the end X-Position of the rendered string on the window.
float endX = fons.DrawText(20, 100, "I am the walrus!");

// render the font atlas in it's current state
fons.DrawDebug(800, 200);
OpenGL 工具

使用 OpenGL FontStash.NET 时,与 fontstash 一样,提供帮助渲染的实用程序类。它们位于 src/FontStash.NET.GL.Legacy(用于旧版 OpenGL)和 src/FontStash.NET.GL(用于现代 OpenGL)中。它们使用 Silk.NET 进行渲染,因此必须解析兼容的 OpenGL 对象。

GLFons glFons = new GLFons(gl);
Fontstash fs = glFons.Create(512, 512, (int)FonsFlags.ZeroTopleft);

如上所示的示例具有与“手动”示例相同的效果。

示例

github 上的 'samples' 目录中可以找到两个使用 OpenGL 的示例项目。

致谢

显然,在辅助类中使用了 mnemononen/fontstashStbTrueTypeSharp 来实现 StbTrueType,使用了 Silk.NET 来实现 OpenGL。

许可证

FontStash.NET 使用 MIT 许可证,fontstash 使用 ZLib 许可证

产品 兼容的和额外的计算目标框架版本。
.NET net5.0 是兼容的。 net5.0-windows 已被计算。 net6.0 已被计算。 net6.0-android 已被计算。 net6.0-ios 已被计算。 net6.0-maccatalyst 已被计算。 net6.0-macos 已被计算。 net6.0-tvos 已被计算。 net6.0-windows 已被计算。 net7.0 已被计算。 net7.0-android 已被计算。 net7.0-ios 已被计算。 net7.0-maccatalyst 已被计算。 net7.0-macos 已被计算。 net7.0-tvos 已被计算。 net7.0-windows 已被计算。 net8.0 已被计算。 net8.0-android 已被计算。 net8.0-browser 已被计算。 net8.0-ios 已被计算。 net8.0-maccatalyst 已被计算。 net8.0-macos 已被计算。 net8.0-tvos 已被计算。 net8.0-windows 已被计算。
兼容的目标框架
包含的目标框架(在包中)
了解有关 目标框架.NET Standard 的更多信息。
  • net5.0

    • 无依赖项。

NuGet 包 (3)

显示依赖 FontStash.NET 的前 3 个 NuGet 包

下载
SilkyNvg.Core

将 memononen/nanovg 调整为 .NET5.0,主要针对 Silk.NET 框架。

FontStash.NET.GL.Legacy

FontStash.NET 的旧版 OpenGL 工具

SilkyNvg.Text

将 memononen/nanovg 调整为 .NET5.0,主要针对 Silk.NET 框架。

GitHub 存储库

此包未被任何流行的 GitHub 存储库使用。

修正了字符串结尾的错误。将它们从字符更改为字符串。