def testHighlevelIO(self): gene1, gene2 = pyflam3ng.load_flame(xml_source=''.join(test_flam3)) self._check_genome_1(gene1) self._check_genome_2(gene2) gene1 = pyflam3ng.load_genome(xml_source=test_flam3[1]) self._check_genome_1(gene1) gene2 = pyflam3ng.load_genome(xml_source=test_flam3[2]) self._check_genome_1(gene2)
def wxrender(self, arg): def progress(progress, stage, eta): sys.stdout.write('%s: %0.2f%%\r' % ('chaos' if stage == 0 else 'filtering', progress)) return 0 arg = self.api.ev(arg) if arg is None: raise ArgumentError() buffer = pyflam3ng.flam3.RenderBuffer() if isinstance(arg, basestring) and arg.strip(): genome = pyflam3ng.load_genome(xml_source=arg) elif isinstance(arg, pyflam3ng.Genome): genome = arg elif not isinstance(arg, pyflam3ng.Genome): raise TypeError('unexpected argument type') w = genome.width h = genome.height buffer.resize(w, h, 3) genome.render(buffer, progress=progress) sys.stdout.write('\n') image = wx.EmptyImage(w, h) buffer.write_to_legacy_buffer(image.DataBuffer) bmp = wx.BitmapFromImage(image) class PreviewFrame(wx.Frame): def __init__(self, bmp): super(PreviewFrame, self).__init__(None, style=wx.DEFAULT_FRAME_STYLE^(wx.RESIZE_BORDER|wx.MAXIMIZE_BOX)) self.bmp = bmp self.SetClientSize((w, h)) self.Bind(wx.EVT_ERASE_BACKGROUND, self._on_erase_bkgnd) self.Bind(wx.EVT_PAINT, self._on_paint) def _on_erase_bkgnd(self, evt): pass def _on_paint(self, evt): dc = wx.PaintDC(self) dc.Clear() client_size = self.GetClientSize() if self.bmp: dc.DrawBitmap(self.bmp, 0, 0) frame = PreviewFrame(bmp) frame.Show()