FontStash.NET 1.1.2
dotnet add package FontStash.NET --version 1.1.2
NuGet\Install-Package FontStash.NET -Version 1.1.2
<PackageReference Include="FontStash.NET" Version="1.1.2" />
paket add FontStash.NET --version 1.1.2
#r "nuget: FontStash.NET, 1.1.2"
// 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/fontstash 和 StbTrueTypeSharp 来实现 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 已被计算。 |
-
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 存储库使用。
修正了字符串结尾的错误。将它们从字符更改为字符串。