2010-03-16 1 views
0

Я ищу, чтобы добавить двойную буферизацию к функции рисования, подобной этой.Как я могу рисовать на MemoryDC с помощью GraphicsContext, а затем blit, что в 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) 
Смежные вопросы