def __init__(self): self.scene_mngr = None self.rend_mngr = None self.screen = None # create opengl context and ui ng.init() self.screen = MainScreen(title='Window title') # register mouse and keyboard event handlers self.screen.reg_mouse_motion_handler(self.mouse_motion_handler) self.screen.reg_keyboard_handler(self.keyboard_handler) # create a scene self.scene_mngr = SceneManager() main_scene = self.setup_scene() self.scene_mngr.add_scene(main_scene) # create renderers for the screen # NOTE: adding a renderer needs an opengl context initialized! self.rend_mngr = RendererManager() screen_rend = self.rend_mngr.add_renderer('screen', main_scene, camera='main') # register screen draw callback self.screen.reg_screen_draw_handler(screen_rend.draw_handler) # register screen resize callback self.screen.reg_screen_resize_handler(screen_rend.resize_handler) self.screen.drawAll() self.screen.setVisible(True)
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 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()
strvar = "A string" enumvar = 1 colvar = nanogui.Color(.5, .5, .7, 1) def make_accessors(name): def setter(value): globals()[name] = value def getter(): return globals()[name] return setter, getter nanogui.init() use_gl_4_1 = False # Set to True to create an OpenGL 4.1 context. if use_gl_4_1: # NanoGUI presents many options for you to utilize at your discretion. # See include/nanogui/screen.h for what all of the options are. screen = Screen(Vector2i(500, 700), "NanoGUI test [GL 4.1]", glMajor=4, glMinor=1) else: screen = Screen(Vector2i(500, 700), "NanoGUI test") gui = FormHelper(screen) window = gui.addWindow(Vector2i(10, 10), "Form helper example")
[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()