Dear ImGui
=====
<center><b><i>"Give someone state and they'll have a bug one day, but teach them how to represent state in two separate locations that have to be kept in sync and they'll have bugs for a lifetime."</i></b></center> <a href="https://twitter.com/rygorous/status/1507178315886444544">-ryg</a>
----
[![Build Status](https://github.com/ocornut/imgui/workflows/build/badge.svg)](https://github.com/ocornut/imgui/actions?workflow=build) [![Static Analysis Status](https://github.com/ocornut/imgui/workflows/static-analysis/badge.svg)](https://github.com/ocornut/imgui/actions?workflow=static-analysis) [![Tests Status](https://github.com/ocornut/imgui_test_engine/workflows/tests/badge.svg)](https://github.com/ocornut/imgui_test_engine/actions?workflow=tests)
<sub>(This library is available under a free and permissive license, but needs financial support to sustain its continued improvements. In addition to maintenance and stability there are many desirable features yet to be added. If your company is using Dear ImGui, please consider reaching out.)</sub>
Businesses: support continued development and maintenance via invoiced sponsoring/support contracts:
<br> _E-mail: contact @ dearimgui dot com_
<br>Individuals: support continued development and maintenance [here](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=WGHNC6MBFLZ2S). Also see [Sponsors](https://github.com/ocornut/imgui/wiki/Sponsors) page.
| [The Pitch](#the-pitch) - [Usage](#usage) - [How it works](#how-it-works) - [Releases & Changelogs](#releases--changelogs) - [Demo](#demo) - [Integration](#integration) |
:----------------------------------------------------------: |
| [Gallery](#gallery) - [Support, FAQ](#support-frequently-asked-questions-faq) - [How to help](#how-to-help) - [Sponsors](https://github.com/ocornut/imgui/wiki/Sponsors) - [Credits](#credits) - [License](#license) |
| [Wiki](https://github.com/ocornut/imgui/wiki) - [Languages & frameworks backends/bindings](https://github.com/ocornut/imgui/wiki/Bindings) - [Software using Dear ImGui](https://github.com/ocornut/imgui/wiki/Software-using-dear-imgui) - [User quotes](https://github.com/ocornut/imgui/wiki/Quotes) |
### The Pitch
Dear ImGui is a **bloat-free graphical user interface library for C++**. It outputs optimized vertex buffers that you can render anytime in your 3D-pipeline-enabled application. It is fast, portable, renderer agnostic, and self-contained (no external dependencies).
Dear ImGui is designed to **enable fast iterations** and to **empower programmers** to create **content creation tools and visualization / debug tools** (as opposed to UI for the average end-user). It favors simplicity and productivity toward this goal and lacks certain features commonly found in more high-level libraries.
Dear ImGui is particularly suited to integration in game engines (for tooling), real-time 3D applications, fullscreen applications, embedded applications, or any applications on console platforms where operating system features are non-standard.
- Minimize state synchronization.
- Minimize state storage on user side.
- Minimize setup and maintenance.
- Easy to use to create dynamic UI which are the reflection of a dynamic data set.
- Easy to use to create code-driven and data-driven tools.
- Easy to use to create ad hoc short-lived tools and long-lived, more elaborate tools.
- Easy to hack and improve.
- Portable, minimize dependencies, run on target (consoles, phones, etc.).
- Efficient runtime and memory consumption.
- Battle-tested, used by [many major actors in the game industry](https://github.com/ocornut/imgui/wiki/Software-using-dear-imgui).
### Usage
**The core of Dear ImGui is self-contained within a few platform-agnostic files** which you can easily compile in your application/engine. They are all the files in the root folder of the repository (imgui*.cpp, imgui*.h). **No specific build process is required**. You can add the .cpp files into your existing project.
**Backends for a variety of graphics API and rendering platforms** are provided in the [backends/](https://github.com/ocornut/imgui/tree/master/backends) folder, along with example applications in the [examples/](https://github.com/ocornut/imgui/tree/master/examples) folder. See the [Integration](#integration) section of this document for details. You may also create your own backend. Anywhere where you can render textured triangles, you can render Dear ImGui.
After Dear ImGui is set up in your application, you can use it from \_anywhere\_ in your program loop:
```cpp
ImGui::Text("Hello, world %d", 123);
if (ImGui::Button("Save"))
MySaveFunction();
ImGui::InputText("string", buf, IM_ARRAYSIZE(buf));
ImGui::SliderFloat("float", &f, 0.0f, 1.0f);
```
![sample code output (dark, segoeui font, freetype)](https://user-images.githubusercontent.com/8225057/191050833-b7ecf528-bfae-4a9f-ac1b-f3d83437a2f4.png)
![sample code output (light, segoeui font, freetype)](https://user-images.githubusercontent.com/8225057/191050838-8742efd4-504d-4334-a9a2-e756d15bc2ab.png)
```cpp
// Create a window called "My First Tool", with a menu bar.
ImGui::Begin("My First Tool", &my_tool_active, ImGuiWindowFlags_MenuBar);
if (ImGui::BeginMenuBar())
{
if (ImGui::BeginMenu("File"))
{
if (ImGui::MenuItem("Open..", "Ctrl+O")) { /* Do stuff */ }
if (ImGui::MenuItem("Save", "Ctrl+S")) { /* Do stuff */ }
if (ImGui::MenuItem("Close", "Ctrl+W")) { my_tool_active = false; }
ImGui::EndMenu();
}
ImGui::EndMenuBar();
}
// Edit a color stored as 4 floats
ImGui::ColorEdit4("Color", my_color);
// Generate samples and plot them
float samples[100];
for (int n = 0; n < 100; n++)
samples[n] = sinf(n * 0.2f + ImGui::GetTime() * 1.5f);
ImGui::PlotLines("Samples", samples, 100);
// Display contents in a scrolling region
ImGui::TextColored(ImVec4(1,1,0,1), "Important Stuff");
ImGui::BeginChild("Scrolling");
for (int n = 0; n < 50; n++)
ImGui::Text("%04d: Some text", n);
ImGui::EndChild();
ImGui::End();
```
![my_first_tool_v188](https://user-images.githubusercontent.com/8225057/191055698-690a5651-458f-4856-b5a9-e8cc95c543e2.gif)
Dear ImGui allows you to **create elaborate tools** as well as very short-lived ones. On the extreme side of short-livedness: using the Edit&Continue (hot code reload) feature of modern compilers you can add a few widgets to tweak variables while your application is running, and remove the code a minute later! Dear ImGui is not just for tweaking values. You can use it to trace a running algorithm by just emitting text commands. You can use it along with your own reflection data to browse your dataset live. You can use it to expose the internals of a subsystem in your engine, to create a logger, an inspection tool, a profiler, a debugger, an entire game-making editor/framework, etc.
### How it works
Check out the Wiki's [About the IMGUI paradigm](https://github.com/ocornut/imgui/wiki#about-the-imgui-paradigm) section if you want to understand the core principles behind the IMGUI paradigm. An IMGUI tries to minimize superfluous state duplication, state synchronization, and state retention from the user's point of view. It is less error-prone (less code and fewer bugs) than traditional retained-mode interfaces, and lends itself to creating dynamic user interfaces.
Dear ImGui outputs vertex buffers and command lists that you can easily render in your application. The number of draw calls and state changes required to render them is fairly small. Because Dear ImGui doesn't know or touch graphics state directly, you can call its functions anywhere in your code (e.g. in the middle of a running algorithm, or in the middle of your own rendering process). Refer to the sample applications in the examples/ folder for instructions on how to integrate Dear ImGui with your existing codebase.
_A common misunderstanding is to mistake immediate mode GUI for immediate mode
没有合适的资源?快使用搜索试试~ 我知道了~
iridescence
共880个文件
cpp:181个
hpp:81个
h:77个
需积分: 1 4 下载量 45 浏览量
2023-07-17
10:02:03
上传
评论
收藏 107.86MB ZIP 举报
温馨提示
https://github.com/koide3/iridescence https://github.com/koide3/direct_visual_lidar_calibration的依赖
资源推荐
资源详情
资源评论
收起资源包目录
iridescence (880个子文件)
build_win32.bat 793B
build_win64.bat 754B
build_win32.bat 701B
build_win32.bat 688B
build_win32.bat 628B
build_win32.bat 614B
build_win32.bat 613B
build_win32.bat 555B
build_win32.bat 555B
build_win32.bat 546B
build_win32.bat 546B
build_win32.bat 540B
build_win32.bat 529B
build_win32.bat 253B
uSynergy.c 18KB
setup.cfg 2KB
.clang-format 4KB
.clang-format 523B
.clang-tidy 242B
pybind11Common.cmake 14KB
FindPythonLibsNew.cmake 10KB
pybind11NewTools.cmake 9KB
pybind11Tools.cmake 7KB
FindG2O.cmake 3KB
FindEigen3.cmake 3KB
FindCatch.cmake 2KB
FindGLM.cmake 2KB
FindIridescence.cmake 600B
gl3w-config.cmake 180B
transform_normal_dists_vertices.comp 909B
transform_normal_dists_indices.comp 648B
config 713B
config 333B
config 316B
config 304B
config 303B
config 302B
COPYING 466B
imgui.cpp 995KB
imgui.cpp 472KB
imgui_demo.cpp 418KB
imgui_widgets.cpp 414KB
imgui_widgets.cpp 327KB
implot.cpp 259KB
imgui_tables.cpp 214KB
imgui_draw.cpp 210KB
imgui_draw.cpp 160KB
implot_items.cpp 116KB
implot_demo.cpp 109KB
ImGuizmo.cpp 94KB
imgui_impl_vulkan.cpp 87KB
colormap.cpp 79KB
imgui_impl_glfw.cpp 61KB
imgui_impl_win32.cpp 59KB
imgui_impl_sdl.cpp 48KB
imgui_impl_dx12.cpp 48KB
imgui_impl_opengl3.cpp 44KB
imgui_freetype.cpp 38KB
imgui_impl_dx11.cpp 34KB
imgui_impl_dx10.cpp 32KB
imgui_impl_wgpu.cpp 32KB
ImSequencer.cpp 31KB
imgui_impl_allegro5.cpp 29KB
screen_space_splatting.cpp 28KB
imgui_impl_dx9.cpp 25KB
main.cpp 25KB
main.cpp 25KB
viewer_ui.cpp 21KB
test_class.cpp 21KB
main.cpp 20KB
gl3w.cpp 20KB
ply_io.cpp 20KB
test_methods_and_attributes.cpp 19KB
test_virtual_functions.cpp 18KB
test_smart_ptr.cpp 17KB
main.cpp 17KB
test_numpy_array.cpp 17KB
test_numpy_dtypes.cpp 17KB
imgui_impl_opengl2.cpp 16KB
test_eigen.cpp 16KB
test_factory_constructors.cpp 16KB
gl_canvas.cpp 16KB
imgui_impl_android.cpp 15KB
ImCurveEdit.cpp 14KB
test_pytypes.cpp 14KB
main.cpp 14KB
binary_to_compressed_c.cpp 13KB
imgui_impl_glut.cpp 13KB
test_builtin_casters.cpp 13KB
test_sequences_and_iterators.cpp 13KB
test_stl.cpp 12KB
main.cpp 12KB
guik.cpp 12KB
light_viewer_context.cpp 12KB
light_viewer.cpp 12KB
screen_space_lighting.cpp 11KB
main.cpp 11KB
main.cpp 11KB
imgui_impl_sdlrenderer.cpp 11KB
main.cpp 11KB
共 880 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
妄想出头的工业炼药师
- 粉丝: 148
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功