使用GDI +提高绩效

时间:2017-01-21 18:38:16

标签: vb.net bitmap gdi+ gdi

作为一项挑战,我打算纯粹在Visual Studio中制作游戏(使用Visual Basic),但在过去,我注意到GDI +不是最好的渲染工具,但就其本身而言,它是'没事。

在使用GDI +时,我应该使用哪些设置而不使用?以下是我的假设:

  • InterpolationMode = Drawing2D.InterpolationMode.NearestNeighbor此选项呈现最快速度是有意义的。
  • PixelOffsetMode = Drawing2D.PixelOffsetMode.Half这似乎必须与NearestNeighbor一起使用。
  • CompositingQuality = ?我不确定这个。
  • CompositingMode = ?再一次,我无法分辨。
  • SmoothingMode = Drawing2D.SmoothingMode.None指定无平滑模式可能运行速度最快。
  • SetClip(ClientRectangle)将此设置为剪辑是有意义的,因此图形不会在窗体或控件之外绘制。

我的下一点:我注意到添加所有图形代码总是在Private Sub Form1_Paint(sender As Object, e As PaintEventArgs)中运行得最快在这个空白内做这样的事情有什么好处:(创建一个临时位图并绘制它在屏幕上。)

    Using B As New Bitmap(ClientSize.Width, ClientSize.Height, Imaging.PixelFormat.Format32bppPArgb)
        Using G As Graphics = Graphics.FromImage(B)
            ' Draw objects onto the bitmap.
        End Using
        e.Graphics.DrawImage(B, 0, 0)
    End Using

我问这个是因为我注意到在创建位图时,您可以指定Imaging.PixelFormat。是否有一种格式比其他格式更快?

先谢谢大家的帮助。

〜尼克

0 个答案:

没有答案