Как я могу нарисовать в MemoryDC, используя GraphicsContext, а затем добавить его в PaintDC?
Я хочу добавить двойную буферизацию для функции рисования, как это.
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 должен работать?
1 ответ
Решение
Вам нужно создать растровое изображение, а не использовать wx.NullBitmap.
bitmap = wx.EmptyBitmap(w, h)
dc = wx.MemoryDC(bitmap)