Some random test apps that I've been playing with
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42803 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
85
wxPython/tests/test_bufDcBlit.py
Normal file
85
wxPython/tests/test_bufDcBlit.py
Normal file
@@ -0,0 +1,85 @@
|
||||
import wx
|
||||
import os
|
||||
print "PID:", os.getpid()
|
||||
|
||||
count = 0
|
||||
|
||||
class ResultsFrame(wx.Frame):
|
||||
def __init__(self, parent, bmp):
|
||||
global count
|
||||
count += 1
|
||||
wx.Frame.__init__(self, parent, title=str(count), size=(100,100))
|
||||
p = wx.Panel(self)
|
||||
sb = wx.StaticBitmap(p, -1, bmp, (20,20))
|
||||
self.Show()
|
||||
|
||||
|
||||
|
||||
class TestPanel(wx.Panel):
|
||||
def __init__(self, parent):
|
||||
wx.Panel.__init__(self, parent)
|
||||
b = wx.Button(self, -1, "Test", (50,50))
|
||||
self.Bind(wx.EVT_BUTTON, self.OnButton, b)
|
||||
|
||||
def RunTest(self, bdc, bg, fg):
|
||||
# draw to the buffered dc
|
||||
bdc.SetBackground(wx.Brush(bg))
|
||||
bdc.Clear()
|
||||
bdc.SetPen(wx.Pen(fg, 2))
|
||||
bdc.DrawLine(0,0, 30,30)
|
||||
bdc.DrawLine(0,30, 30,0)
|
||||
|
||||
# now bilt it to a bitmap
|
||||
bmp = wx.EmptyBitmap(30,30)
|
||||
mdc = wx.MemoryDC()
|
||||
mdc.SelectObject(bmp)
|
||||
mdc.Blit(0,0, 30,30, bdc, 0,0)
|
||||
del mdc
|
||||
|
||||
# display the results
|
||||
ResultsFrame(self, bmp)
|
||||
|
||||
|
||||
|
||||
def OnButton(self, evt):
|
||||
|
||||
# 1. test a buffered dc not using a buffer bitmap
|
||||
bdc = wx.BufferedDC(wx.ClientDC(self), self.GetSize())
|
||||
self.RunTest(bdc, "yellow", "red")
|
||||
del bdc
|
||||
|
||||
# 2. now do one that does have a buffer bitmap
|
||||
buf = wx.EmptyBitmap(100,100)
|
||||
bdc = wx.BufferedDC(wx.ClientDC(self), buf)
|
||||
self.RunTest(bdc, "red", "blue")
|
||||
del bdc
|
||||
|
||||
# 3. now one without a real DC
|
||||
buf = wx.EmptyBitmap(100,100)
|
||||
bdc = wx.BufferedDC(None, buf)
|
||||
self.RunTest(bdc, "purple", "yellow")
|
||||
del bdc
|
||||
|
||||
# 4. finally test a real unbuffered DC
|
||||
dc = wx.ClientDC(self)
|
||||
self.RunTest(dc, "red", "white")
|
||||
|
||||
|
||||
# blit from the last buffer back to the main window
|
||||
buf.SetMaskColour("yellow")
|
||||
mdc = wx.MemoryDC()
|
||||
mdc.SelectObject(buf)
|
||||
dc.Blit(100,100,30,30, mdc, 0,0, useMask=True)
|
||||
|
||||
|
||||
|
||||
app = wx.App(0)
|
||||
frm = wx.Frame(None)
|
||||
pnl = TestPanel(frm)
|
||||
frm.Show()
|
||||
app.MainLoop()
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user