0

このような描画関数にダブルバッファリングを追加しようとしています。

    dc = wx.PaintDC(self)
    gc = wx.GraphicsContext.Create(dc)
    #draw GraphicsPaths to the gc

最初に MemoryDC に描画してから、それを PaintDC に戻そうとしました。

    dc = wx.MemoryDC()
    dc.SelectObject(wx.NullBitmap)
    gc = wx.GraphicsContext.Create(dc)
    #draw GraphicsPaths to the gc
    dc2=wx.PaintDC(self)
    dc2.Blit(0,0,640,480,dc,0,0)

ただし、これでは空白の画面しか表示されません。MemoryDC の仕組みを誤解していますか?

4

1 に答える 1

1

wx.NullBitmap を使用するのではなく、ビットマップを作成する必要があります。

bitmap = wx.EmptyBitmap(w, h)
dc = wx.MemoryDC(bitmap)
于 2010-03-16T02:28:49.020 に答える