我才刚刚开始学习SkiaSharp,以用作Windows 10上WinForms的GDI +替代品。我特别想要GPU加速的2D图形,并设法使SkiaSharp示例与GLControl和CreateNativeGlInterface一起运行。
PC是Windows 10、10核i7-6950X,带有GTX-1080 ti Founders版图形卡和4K屏幕。
我通过绘制1000条具有随机颜色的随机线开始了SkiaSharp的性能测试,并注意到当GLControl调整大小以包含超过appox 314.5万像素时,渲染速度突然从1ms减慢到100ms以上! >
只要像素数不超过约314.5万像素(不是高度或宽度限制,而是像素限制),长度与宽度就可以变化。
在缓慢扩展窗口的同时渲染时间的示例:
case .uploadImage(let data):
let imageData = data.image.jpegData(compressionQuality: 1.0)
let memberIdData = "\(data.status)".data(using: String.Encoding.utf8) ?? Data()
var formData: [Moya.MultipartFormData] = [Moya.MultipartFormData(provider: .data(imageData!), name: "image", fileName: "user.jpeg", mimeType: "image/jpeg")]
问题:
是否有任何SkiaSharp设置可以防止2K到4K尺寸范围内的图形变慢?
我希望能够在4K显示器上最大化这样的绘图屏幕,但实际上我并不需要那么大的分辨率。看起来像块状的1080p拉伸图适用于此应用,但是Windows桌面必须是本机4K,缩放比例为100%。如何降低图形的像素分辨率并缩放它以适合非常大的画布,而又不会大幅降低渲染时间?
感谢任何建议!
SKGLControl示例源代码在这里:GitHub SKGLControl
我的源代码:
ms: 1, w: 1914, h: 1637, pixels: 3133218
ms: 1, w: 1915, h: 1637, pixels: 3134855
ms: 1, w: 1916, h: 1637, pixels: 3136492
ms: 1, w: 1917, h: 1637, pixels: 3138129
ms: 1, w: 1919, h: 1637, pixels: 3141403
ms: 3, w: 1920, h: 1637, pixels: 3143040
ms: 210, w: 1924, h: 1637, pixels: 3149588
ms: 196, w: 1931, h: 1637, pixels: 3161047
ms: 122, w: 1935, h: 1637, pixels: 3167595
ms: 122, w: 1938, h: 1637, pixels: 3172506
ms: 124, w: 1940, h: 1637, pixels: 3175780
ms: 190, w: 1940, h: 1637, pixels: 3175780