ocornut/imgui
C++ 기반 블로트프리 즉시모드 GUI 라이브러리로, 게임 엔진과 실시간 3D 애플리케이션용 개발 도구 구축에 최적화됨
73,863+875이번 주11,8161,058C++
중간맛 분석
C++로 작성된 헤더+소스 파일 몇 개만 프로젝트에 복사하면 즉시 사용 가능하고, 외부 의존성이 없습니다. DirectX, OpenGL, Vulkan, Metal, WebGPU 등 주요 렌더링 API와 Windows/macOS/Linux/콘솔 플랫폼을 지원하는 공식 백엔드 ~20개가 제공되며, 커뮤니티 바인딩으로 Python·Rust·C# 등 다양한 언어에서도 사용 가능합니다. 별도 빌드 과정 없이 기존 코드에 통합 가능하며, 예제와 ShowDemoWindow()로 바로 동작 확인할 수 있습니다.
이런 레포예요
이럴 때 쓰면 좋아요
- 게임 엔진의 에디터·프로파일러·인스펙터 UI 구현
- 3D 애플리케이션에서 매개변수 조정 및 데이터 시각화 도구 제작
- 콘솔·임베디드 장치의 개발용 UI 통합
핵심 기능
상태 동기화 최소화 설계외부 의존성 없이 프로젝트 통합 가능20개 이상 공식 백엔드와 다중 언어 바인딩
대안 대비 차별점
즉시모드 패러다임으로 상태 관리 복잡성을 제거하면서도 미리 생성된 정점 버퍼로 렌더링 효율을 유지하므로, 전통적 GUI 라이브러리의 동기화 버그와 즉시모드 렌더링의 성능 저하를 동시에 해결합니다.
준비물
- C++11 이상
- 렌더링 API 지원 (DirectX/OpenGL/Vulkan/Metal 중 하나)
바로 시작하기
- Dear ImGui 저장소 클론
git clone https://github.com/ocornut/imgui.git
cd imgui
- 코어 파일을 프로젝트에 포함
# imgui*.cpp, imgui*.h를 프로젝트 소스 디렉토리에 복사
cp imgui.cpp imgui.h imgui_demo.cpp imgui_draw.cpp imgui_widgets.cpp imgui_tables.cpp /your/project/src/
- 렌더러 및 플랫폼 백엔드 선택
# 예: OpenGL + GLFW 백엔드
cp backends/imgui_impl_opengl3.cpp backends/imgui_impl_opengl3.h /your/project/src/
cp backends/imgui_impl_glfw.cpp backends/imgui_impl_glfw.h /your/project/src/
- 프로젝트 빌드 시스템에 포함된 파일 추가
# CMakeLists.txt 또는 Makefile에 소스 파일 등록
# (프로젝트별 구체적 명령은 예제 폴더 참고: examples/)
- 애플리케이션 초기화 루프에 ImGui 설정
# README의 예제 코드 참고:
# ImGui::CreateContext();
# ImGui::GetIO().ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;
# ImGui_ImplGLFW_InitForOpenGL(window, true);
# ImGui_ImplOpenGL3_Init(glsl_version);
- 메인 루프에서 위젯 호출
# ImGui::Begin("My Window");
# ImGui::Text("Hello");
# if (ImGui::Button("Click me")) { /* action */ }
# ImGui::End();
# ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
별 추이 · 7일
73,863+875 / 7일
활용성 · 따라 만들기 좋은가
따라 하기 좋음샘플 점수 50/100
- 관대한 라이선스
- 테스트 있음
- 예제 디렉토리
- 최근 활동
- AGENTS.md
- llms.txt
- 템플릿
🟢 최근 활동 있음 · 2014년 생성
AI가 README 기반으로 요약했습니다 · 원문 보기