import ctypes import os import sdl2 import imgui from imgui.integrations.sdl2 import SDL2Renderer import sdl2.ext def main(): # Initialize SDL2 sdl2.SDL_Init(sdl2.SDL_INIT_VIDEO) # Set OpenGL ES version sdl2.SDL_GL_SetAttribute(sdl2.SDL_GL_CONTEXT_MAJOR_VERSION, 2) sdl2.SDL_GL_SetAttribute(sdl2.SDL_GL_CONTEXT_MINOR_VERSION, 0) sdl2.SDL_GL_SetAttribute(sdl2.SDL_GL_CONTEXT_PROFILE_MASK, sdl2.SDL_GL_CONTEXT_PROFILE_ES) # Create an SDL window window = sdl2.SDL_CreateWindow(b"SDL2 OpenGL ES2", sdl2.SDL_WINDOWPOS_UNDEFINED, sdl2.SDL_WINDOWPOS_UNDEFINED, 640, 480, sdl2.SDL_WINDOW_OPENGL | sdl2.SDL_WINDOW_SHOWN) # Create an OpenGL context gl_context = sdl2.SDL_GL_CreateContext(window) # Main loop running = True event = sdl2.SDL_Event() # Create an SDL2 renderer for ImGui imgui.set_current_context(imgui.create_context()) renderer = SDL2Renderer(window) while running: while sdl2.SDL_PollEvent(ctypes.byref(event)) != 0: if event.type == sdl2.SDL_QUIT: running = False is_expand, show_custom_window = imgui.begin("Custom window", True) if is_expand: imgui.text("Bars") imgui.text_colored("Eggs", 0.2, 1.0, 0.0) imgui.end() imgui.render() renderer.render(imgui.get_draw_data()) sdl2.SDL_GL_SwapWindow(window) # Cleanup sdl2.SDL_GL_DeleteContext(gl_context) sdl2.SDL_DestroyWindow(window) sdl2.SDL_Quit() if __name__ == "__main__": main()