def __exit__(self, exc_type, exc_value, traceback): if exc_type != None: print('Exception running the Viewer!') print('Exc type: {}\nexc value: {}'.format(exc_type, exc_value)) self = None gc.collect() ng.shutdown()
def main(): parser = argparse.ArgumentParser() parser.add_argument('audiofiles', nargs='*') parser.add_argument('--norm', action='store_true', default=False, help='normalizes input audio') parser.add_argument('--info', '-i', action='store_true', default=False, help='prints info') parser.add_argument('--nogui', action='store_true', default=False, help='commandline mode') parser.add_argument('--play', action='store_true', default=False, help='plays on startup') parser.add_argument('--action', '-a') args = parser.parse_args() songs = [] for audiofile in args.audiofiles: # nomix.add_layer(audiofile) songs.append(open_song_from_file(audiofile)) # if args.norm: # for song in songs: # normalize(song) if args.info: for song in songs: print_info(song) return if args.nogui: return nanogui.init() nomix = NomixApp() i = 0 if songs: for song in songs: nomix.add_layer(str(i), song) i += 1 nomix.redraw_spect() nomix_set_status('[+] Initialized') print('[+] starting in gui mode') nomix.drawAll() nomix.setVisible(True) if args.play: nomix.engine.play(0) nanogui.mainloop() del nomix gc.collect() nanogui.shutdown()
def run_detached(): viewer = Viewer() time.sleep(2) # <-- otherwise I get a SIGSEGV: address boundary error h = ng.mainloop(detach=viewer.screen) h.join() viewer = None gc.collect() ng.shutdown()
def compare_voxel_grids(names, data): nanogui.init() app = VoxelGridViewer([x for x in zip(names, data)]) app.drawAll() app.setVisible(True) nanogui.mainloop() del app gc.collect() nanogui.shutdown()
gui.addGroup("Basic types") gui.addBoolVariable("bool", *make_accessors("bvar")) gui.addStringVariable("string", *make_accessors("strvar")) gui.addGroup("Validating fields") gui.addIntVariable("int", *make_accessors("ivar")) gui.addDoubleVariable("double", *make_accessors("dvar")).setSpinnable(True) gui.addGroup("Complex types") gui.addEnumVariable("Enumeration", *make_accessors("enumvar")) \ .setItems(["Item 1", "Item 2", "Item 3"]) gui.addColorVariable("Color", *make_accessors("colvar")) gui.addGroup("Other widgets") def cb(): print("Button pressed.") gui.addButton("A button", cb) screen.setVisible(True) screen.performLayout() window.center() nanogui.mainloop() screen = gui = window = None gc.collect() nanogui.shutdown()
[0, 0, 1, 0], [0, 0, 0, 1]], dtype=np.float32 ) mvp[0:3, 0:3] *= 0.25 mvp[0, :] *= self.size()[1] / self.size()[0] self.shader.setUniform("modelViewProj", mvp) self.shader.drawIndexed(gl.TRIANGLES, 0, 2) super(TestApp, self).drawContents() def keyboardEvent(self, key, scancode, action, modifiers): if super(TestApp, self).keyboardEvent(key, scancode, action, modifiers): return True if key == glfw.KEY_ESCAPE and action == glfw.PRESS: self.setVisible(False) return True return False if __name__ == "__main__": nanogui.init() test = TestApp() test.drawAll() test.setVisible(True) nanogui.mainloop() del test gc.collect() nanogui.shutdown()