コード例 #1
0
def screen_capture(material, fname, camera=None, render_options=None):
    from Renderers import RenderOptions, SimpleRenderer
    from Canvas import Canvas
    from wx import PySimpleApp, Frame

    if render_options:
        options = render_options
    else:
        options = RenderOptions()
    shapes = SimpleRenderer(material.geo, options)

    app = PySimpleApp()
    if camera:
        win = Frame(None, -1, "empty", size=camera.get_size())
        glc = Canvas(win, -1)
        glc.SetClientSize(camera.get_size())
        glc.OnSize()
    else:
        win = Frame(None, -1, "empty", size=(400, 400))
        glc = Canvas(win, -1)
    win.Show()
    glc.Hide()
    win.Hide()
    glc.setup_lights()
    if camera:
        glc.camera = camera
        glc.newshapes(shapes, 0)
    else:
        glc.newshapes(shapes, 1)
    glc.setup_camera()
    glc.OnDraw()
    glc.dump_to_file(fname)
    return