コード例 #1
0
ファイル: test_XmlIO.py プロジェクト: bobbyrward/pyflam3ng
    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)
コード例 #2
0
ファイル: ipy_pyflam3ng.py プロジェクト: bobbyrward/pyflam3ng
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()