Exemple #1
0
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()
Exemple #2
0
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()
Exemple #3
0
 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")
Exemple #5
0
    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)
Exemple #6
0
    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
Exemple #7
0
    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)
Exemple #8
0
    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())
Exemple #9
0
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()
Exemple #10
0
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()
Exemple #11
0
    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
Exemple #12
0
    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
Exemple #13
0
 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
Exemple #14
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
Exemple #15
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()
Exemple #16
0
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')
Exemple #18
0
 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())
Exemple #19
0
 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.
Exemple #20
0
 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
Exemple #21
0
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)
Exemple #22
0
    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
Exemple #24
0
 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()
Exemple #26
0
    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()
Exemple #27
0
    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')
Exemple #28
0
    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()
Exemple #29
0
    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
Exemple #30
0
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()