def main(): # TODO: Do any pre-window setup here. # ... # Make a Pyglet window for PyImGUI to use window = pyglet.window.Window(fullscreen=gui_fullscreen) # Register functions to handle key presses and releases window.on_key_press = on_key_press window.on_key_release = on_key_release # Start with a clear background gl.glClearColor(1, 1, 1, 1) # Create a GUI context and renderer imgui.create_context() renderer = create_renderer(window) # This is a "sub-function" of "main()", used for drawing every frame. def draw(dt): update(dt) # call the update window.clear() # clear the window # Render the frame imgui.render() renderer.render(imgui.get_draw_data()) # Schedule the "draw" function to get called forever every 1 / 120.0 seconds. frame_interval = 1 / 120.0 pyglet.clock.schedule_interval(draw, frame_interval) pyglet.app.run() renderer.shutdown()
def main(): pygame.init() size = 1280, 960 pygame.display.set_mode( size, pygame.DOUBLEBUF | pygame.OPENGL | pygame.RESIZABLE) #imgui.create_context() imgui.create_context() impl = PygameRenderer() io = imgui.get_io() io.display_size = size while 1: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() impl.process_event(event) interface() # note: cannot use screen.fill((1, 1, 1)) because pygame's screen # does not support fill() on OpenGL sufraces gl.glClearColor(.1, .1, .1, 1) gl.glClear(gl.GL_COLOR_BUFFER_BIT) imgui.render() impl.render(imgui.get_draw_data()) pygame.display.flip()
def __init__(self, window): self.window = window # Must create or set the context before instantiating the renderer imgui.create_context() self.renderer = ArcadeRenderer(window) self.texture = window.ctx.load_texture(RESOURCE_PATH / "robocute.png", flip=False)
def main(): try: # initilize imgui context (see documentation) imgui.create_context() imgui.get_io().display_size = 100, 100 imgui.get_io().fonts.get_tex_data_as_rgba32() # start new frame context imgui.new_frame() # open new window context imgui.begin("Your first window!", True) # draw text label inside of current window imgui.text("Hello world!") # close current window context imgui.end() # pass all drawing comands to the rendering pipeline # and close frame context imgui.render() imgui.end_frame() except ModuleNotFoundError: print("Error found")
def __init__(self, gui=True, pipe=None, img=None): self.use_imgui = gui self.use_occt = not gui self.please_stop = False self.rqq = rqQueue() self.texture_updated = False self.prev_pos = [0, 0] self.offscreen_view_size = [0, 0] if self.use_imgui: print("Creating IMGUI context") imgui.create_context() else: print("IMGUI disabled") # Create a windowed mode window and its OpenGL context if self.use_imgui: self.canva = glfwViewer3d() self.canva.set_pipe(pipe) self.canva.set_img(img) self.canva.init_driver() self.impl = GlfwRenderer(self.canva.window) else: self.canva = offscreenViewer3d() self.canva.set_pipe(pipe) self.canva.set_img(img)
def __init__(self): self.device = None self.queue = None self.rasterizationSamples = vk.VK_SAMPLE_COUNT_1_BIT self.subpass = 0 self.vertexBuffer = vks.vulkanbuffer.Buffer() self.indexBuffer = vks.vulkanbuffer.Buffer() self.vertexCount = 0 self.indexCount = 0 self.shaders = [] self.descriptorPool = None self.descriptorSetLayout = None self.descriptorSet = None self.pipelineLayout = None self.pipeline = None self.fontMemory = vk.VK_NULL_HANDLE self.fontImage = vk.VK_NULL_HANDLE self.fontView = vk.VK_NULL_HANDLE self.sampler = None self.pushConstBlock = {'scale': glm.vec2(), 'translate': glm.vec2()} self.pushConstBlockArray = np.array(glm.vec4(glm.vec2(), glm.vec2())) self.visible = True self.updated = False self.scale = 1.0 imgui.create_context() #self.style = imgui.get_style() # don't know yet how to change self.style.color(imgui.COLOR_*) io = imgui.get_io() io.font_global_scale = self.scale
def __init__(self, app, title='test测试imgui', width=1024, height=768, fullscreen=False): '初始化imgui应用环境' from imgui.integrations.glfw import GlfwRenderer self.keys_stat = {} self.fonts = {} self.font_tag_zh = '中文b' self.font_tag_en = '英文s' imgui.create_context() self.app = app # 生成glfw环境的对象 self.main_win = self.glfw_win() # 创建glfw绘图窗口 self.main_win.open(title, width, height, fullscreen) # 定义绘图窗口背景色 self.bg_color = (.2, .2, .2, 1) # 清空背景 self.clean() # 调整窗口位置 self.main_win.set_pos() # 创建imgui绘图后端 self.imgui_bk = imgui.integrations.glfw.GlfwRenderer( self.main_win.window) # 调用app对象的初始化事件 self.app.on_init(self)
def on_draw(self): imgui.create_context() imgui.new_frame() imgui.begin("FrameBuffer", True) fbs = [ o for o in gc.get_referrers(FrameBuffer) if isinstance(o, FrameBuffer) ] gl.glClearColor(0, 0, 0, 1) gl.glClear(gl.GL_COLOR_BUFFER_BIT) clicked, self.current_framebuffer = imgui.combo( "FrameBuffer", self.current_framebuffer, [str(fb) for fb in fbs]) fb = fbs[self.current_framebuffer] w, h = fb.size for name, tex in fb.textures.items(): imgui.text(name) imgui.image(tex.name, 200, 200 * h / w) imgui.end() imgui.render() imgui.end_frame() data = imgui.get_draw_data() if data: self.imgui_renderer.render(imgui.get_draw_data())
def main(): pygame.init() size = 800, 600 pygame.display.set_mode( size, pygame.DOUBLEBUF | pygame.OPENGL | pygame.RESIZABLE) imgui.create_context() impl = PygameRenderer() io = imgui.get_io() io.display_size = size while 1: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() impl.process_event(event) imgui.new_frame() gl.glClearColor(1, 1, 1, 1) gl.glClear(gl.GL_COLOR_BUFFER_BIT) imgui.render() impl.render(imgui.get_draw_data()) pygame.display.flip()
def main(recfile): imgui.create_context() window = impl_glfw_init() impl = GlfwRenderer(window) slamgui = SLAMGUI(recfile) while not glfw.window_should_close(window): glfw.poll_events() impl.process_inputs() imgui.new_frame() if imgui.begin_main_menu_bar(): if imgui.begin_menu("File", True): clicked_quit, _ = imgui.menu_item("Quit", 'Cmd+Q', False, True) if clicked_quit: exit(0) imgui.end_menu() imgui.end_main_menu_bar() slamgui.render() gl.glClearColor(0, 0, 0, 1) gl.glClear(gl.GL_COLOR_BUFFER_BIT) imgui.render() impl.render(imgui.get_draw_data()) glfw.swap_buffers(window) impl.shutdown() glfw.terminate()
def __init__(self, window): super().__init__() self.window = window self.gl = mg.create_context() imgui.create_context() self.imgui_renderer = ModernGLGLFWRenderer( ctx=self.gl, display_size=glfw.get_window_size(window)) self.imgui_renderer.wire_events(self.gl, window) self.reload() def onmod(e): self.should_reload = True handler = FileSystemEventHandler() handler.on_modified = onmod observer = Observer() observer.schedule(handler, "./gl", True) observer.start() self.input_text = "" self.is_press = False self.prev_cursor = (0, 0) self.imgui_renderer.on_mouse_button = self.on_mouse_button self.imgui_renderer.on_cursor_pos = self.on_cursor_pos self.imgui_renderer.on_key = self.on_key
def __init__(self, window): super().__init__() self.window = window self.width, self.height = WIDTH, HEIGHT self.gl = mg.create_context() self.rotation = vec2(0.0, 0.0) self.u_campos = vec3(-2.0, 2.0, 5.0) self._prevpos = ivec2(0, 0) self._isdrag = False self.compile_shaders() def _on_mod(e): self.should_compile = True handler = FileSystemEventHandler() handler.on_modified = _on_mod observer = Observer() observer.schedule(handler, "./gl", True) observer.schedule(handler, "./tex", True) observer.start() imgui.create_context() self.imgui = ModernGLGLFWRenderer(ctx=self.gl, display_size=(WIDTH, HEIGHT)) self.imgui.wire_events(self.gl, window) self.imgui.on_mouse_button = self.on_mouse_button self.imgui.on_cursor_pos = self.on_cursor_pos
def __init__(self, window): self.window = window # Must create or set the context before instantiating the renderer imgui.create_context() self.renderer = ArcadeRenderer(window) # Window variables self.test_input = 0
def __init__(self, window): super(Client, self).__init__() self.window = window glfw.make_context_current(window) self.gl = mg.create_context() self.need_compile = False imgui.create_context() win_size = glfw.get_window_size(window) self.imgui = ModernGLRenderer(ctx=self.gl, display_size=win_size) quad = Quad(self.gl, vspath="./gl/quad.vs", fspath="./gl/quad.fs") self.children = [] self.children.append(quad) def onmod(e): self.need_compile = True handler = FileSystemEventHandler() handler.on_modified = onmod shader_code_observer = Observer() shader_code_observer.schedule(handler, "./gl", True) shader_code_observer.start() self.wire_glfw_to_imgui_events() self.last_time = 0 self.u_camera_rotation_xz = 0.0 self.u_camera_zoom = 1.0
def start(self): imgui.create_context() io = imgui.get_io() # io.fonts.add_font_default() io.fonts.add_font_from_file_ttf( "./res/font/Roboto-Medium.ttf", 14, io.fonts.get_glyph_ranges_chinese_full()) io.fonts.add_font_from_file_ttf( "./res/font/FZY3JW.ttf", 13, io.fonts.get_glyph_ranges_chinese_full(), True) self.window = App._impl_glfw_init() impl = GlfwRenderer(self.window) while not glfw.window_should_close(self.window): glfw.poll_events() impl.process_inputs() imgui.new_frame() # imgui.show_test_window() self.update() gl.glClearColor(1., 1., 1., 1) gl.glClear(gl.GL_COLOR_BUFFER_BIT) imgui.render() impl.render(imgui.get_draw_data()) glfw.swap_buffers(self.window) self.main_view and self.main_view.on_close() impl.shutdown() glfw.terminate()
def app(render, width=1280, height=720, window_name="Maldives"): """ :param render: :param width: :param height: :param window_name: :return: """ imgui.create_context() window = impl_glfw_init(width, height, window_name) impl = GlfwRenderer(window) while not glfw.window_should_close(window): glfw.poll_events() gl.glClearColor(0.3, 0.5, 0.4, 1) gl.glClear(gl.GL_COLOR_BUFFER_BIT) impl.process_inputs() imgui.new_frame() render() imgui.render() impl.render(imgui.get_draw_data()) glfw.swap_buffers(window) impl.shutdown() glfw.terminate()
def __init__(self, **kwargs): super().__init__(**kwargs) imgui.create_context() self.imgui = ModernglWindowRenderer(self.wnd) self.prog = self.ctx.program( vertex_shader=''' #version 330 in vec3 vert; out float gradient; uniform mat4 Mvp; uniform int size; void main() { gl_PointSize = size; gradient = (vert.z+1)*0.5; gl_Position = Mvp * vec4(vert, 1.0); } ''', fragment_shader=''' #version 330 in float gradient; uniform vec3 colorA; uniform vec3 colorB; out vec4 outColor; void main() { vec3 color = mix(colorA,colorB,gradient); outColor = vec4(color, 1.0); } ''', ) # Camera setup self.camera = Camera(self.aspect_ratio) self.camera._camera_position = Vector3([0.0, 0.0, -20.0]) self.camera._move_horizontally = 20 self.camera.build_look_at() self.mvp = self.prog['Mvp'] self.colorA = self.prog['colorA'] self.colorB = self.prog['colorB'] self.size = self.prog['size'] self.colorA.value = (0.1,1.0,0.0) self.colorB.value = (0.0,0.0,1.0) self.colorSelector = 0 self.size.value = 5 self.vbo = self.ctx.buffer(self.initData(1).astype('f4')) self.vao = self.ctx.simple_vertex_array(self.prog, self.vbo, 'vert')
def __init__(self, window): self.window = window # Must create or set the context before instantiating the renderer imgui.create_context() self.renderer = ArcadeRenderer(window) self.sprite = arcade.Sprite(":resources:images/space_shooter/playerShip1_orange.png", SPRITE_SCALING) image = self.sprite.texture.image self.texture = window.ctx.texture(image.size, components=3, data=image.convert("RGB").tobytes())
def __init__(self, window): self.window = window # Must create or set the context before instantiating the renderer imgui.create_context() self.renderer = ArcadeRenderer(window) # note: the variable that contains the color data, should be initialized # outside of the main interaction loop self.color = 1., .0, .5, 1.
def __init__(self, window): self.window = window # Must create or set the context before instantiating the renderer imgui.create_context() self.renderer = ArcadeRenderer(window) # note: these should be initialized outside of the main interaction # loop self.flags = imgui.WINDOW_NO_RESIZE | imgui.WINDOW_NO_MOVE
def main(): director.init(width=800, height=600, resizable=True) imgui.create_context() hello_layer = HelloWorld() main_scene = cocos.scene.Scene(hello_layer) director.run(main_scene)
def __init__(self, **kwargs): super().__init__(**kwargs) imgui.create_context() self.imgui = ModernglWindowRenderer(self.wnd) self.petr4_h = pd.read_csv("../data/" + selected_symbol + '_yf_data') self.candlestick_chart = CandleStickChart(self) self.candlestick_chart.set_data(self.petr4_h, csl[csl.Symbol == selected_symbol])
def init(self): pygame.init() size = 800, 600 pygame.display.set_mode( size, pygame.DOUBLEBUF | pygame.OPENGL | pygame.RESIZABLE) imgui.create_context() self.impl = PygameRenderer() self.io = imgui.get_io() self.io.display_size = size
def __init__(self, window): self.window = window # Must create or set the context before instantiating the renderer imgui.create_context() self.renderer = ArcadeRenderer(window) # note: these should be initialized outside of the main interaction # loop self.checkbox1_enabled = True self.checkbox2_enabled = False
def __init__(self): imgui.create_context() self.io = imgui.get_io() self._font_texture = None self.io.delta_time = 1.0 / 60.0 self._create_device_objects() self.refresh_font_texture()
def __init__(self, window): self.window = window # Must create or set the context before instantiating the renderer imgui.create_context() self.renderer = ArcadeRenderer(window) io = imgui.get_io() self.new_font = io.fonts.add_font_from_file_ttf( str(RESOURCE_PATH / "DroidSans.ttf"), 20) self.renderer.refresh_font_texture()
def __init__(self, **kwargs): super().__init__(**kwargs) imgui.create_context() self.imgui = ModernglWindowRenderer(self.wnd) self.prog = self.ctx.program( vertex_shader=''' #version 330 in vec2 vert; uniform float dataPlot[1000]; uniform bool up; out float gradient; void main() { gl_PointSize = 3; if (up) { gl_Position = vec4(vert.x, (dataPlot[gl_VertexID]+1)/2, 0.0, 1.0); } else { gl_Position = vec4(vert.x, (dataPlot[gl_VertexID]-1)/2, 0.0, 1.0); } gradient = dataPlot[gl_VertexID]*4; } ''', fragment_shader=''' #version 330 uniform vec2 resolution; in float gradient; out vec4 outColor; void main() { vec3 color = mix(vec3(1.0,1.0,1.0),vec3(1.0,0.0,0.0),abs(gradient)); outColor = vec4(color,1.0); } ''', ) self.dataPlot = self.prog['dataPlot'] self.up = self.prog['up'] self.up.value = True self.audio = np.zeros((1000, 2)) self.rate = 0 self.startTime = 0 self.songTime = 0 self.vbo = self.ctx.buffer(self.initLines().astype('f4')) self.vao = self.ctx.simple_vertex_array(self.prog, self.vbo, 'vert')
def exec_snippet(self, source): # Strip out new_frame/end_frame from source if "# later" in source: raise Skipped(msg="multi-stage snippet, can't comprehend") lines = [ line if all([ "imgui.new_frame()" not in line, "imgui.render()" not in line, "imgui.end_frame()" not in line ]) else "" for line in source.split('\n') ] source = "\n".join(lines) if ( "import array" in source and sys.version_info < (3, 0) ): pytest.skip( "array.array does not work properly under py27 as memory view" ) code = compile(source, '<str>', 'exec') frameinfo = getframeinfo(currentframe()) imgui.create_context() io = imgui.get_io() io.delta_time = 1.0 / 60.0 io.display_size = 300, 300 # setup default font io.fonts.get_tex_data_as_rgba32() io.fonts.add_font_default() io.fonts.texture_id = 0 # set any texture ID to avoid segfaults imgui.new_frame() exec_ns = _ns(locals(), globals()) try: exec(code, exec_ns, exec_ns) except Exception as err: # note: quick and dirty way to annotate sources with error marker print_exc() lines = source.split('\n') lines.insert(sys.exc_info()[2].tb_next.tb_lineno, "^^^") self.code = "\n".join(lines) imgui.end_frame() raise imgui.render()
def __init__(self, app: ImGuiPlayerApp): self.app = app #initialize window and GUI imgui.create_context() self.window = self.impl_glfw_init() self.impl = GlfwRenderer(self.window) self.quit_requested = False
def main(): pygame.init() size = 800, 600 pygame.display.set_mode(size, pygame.DOUBLEBUF | pygame.OPENGL | pygame.RESIZABLE) imgui.create_context() impl = PygameRenderer() io = imgui.get_io() io.display_size = size while 1: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() impl.process_event(event) imgui.new_frame() if imgui.begin_main_menu_bar(): if imgui.begin_menu("File", True): clicked_quit, selected_quit = imgui.menu_item( "Quit", 'Cmd+Q', False, True ) if clicked_quit: exit(1) imgui.end_menu() imgui.end_main_menu_bar() imgui.show_test_window() imgui.begin("Custom window", True) imgui.text("Bar") #imgui.same_line() imgui.text_colored("Eggs", 0.2, 1., 0.) #imgui.same_line() imgui.bullet_text("bullet_text") # 不换行 #imgui.same_line() imgui.end() # note: cannot use screen.fill((1, 1, 1)) because pygame's screen # does not support fill() on OpenGL sufraces gl.glClearColor(1, 1, 1, 1) gl.glClear(gl.GL_COLOR_BUFFER_BIT) imgui.render() impl.render(imgui.get_draw_data()) pygame.display.flip()