我很想看到DrawPath(pen, path)
,TranslateTransform(dx, dy, order)
,ScaleTransform(sx, sy, order)
等System.Drawing.Graphics
方法
UnityEngine.GL
(或至少一些其他OpenGL库来创建我自己的端口)。有没有这样的包装/库?
答案 0 :(得分:0)
假设您想在一个纹理上绘制以在单位中使用,这是使用cairo构建可直接用于使用opengl进行纹理化的位图的最简单示例。包装器是Mono.Cairo
using System;
using Cairo;
namespace cairoTests
{
class Program
{
static void Main(string[] args)
{
int height = 512;
int width = 512;
int stride = 4 * width;
int bmpSize = stride * height;
byte[] bmp = new byte[bmpSize];
using (ImageSurface surf =
new ImageSurface(bmp, Format.Argb32, width, height, stride))
{
using (Context ctx = new Context(surf))
{
ctx.SetSourceRGB(1, 0, 0);
ctx.Rectangle(10, 10, 100, 100);
ctx.Fill();
}
surf.Flush();
//surf.WriteToPng(@"c:/test.png");
}
//now you have bmp filled, and may pass it to your game engine as texture
}
}
}
下一步是创建一个egl上下文并尝试将所有工作保留在gpu上,并在绑定已存在的纹理时传递最终纹理。