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