Dear ImGui
=====
[![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)
<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 technical support, maintenance, sponsoring contracts:
<br> _E-mail: contact @ dearimgui dot com_
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.
----
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 normally found in more high-level libraries.
Dear ImGui is particularly suited to integration in games engine (for tooling), real-time 3D applications, fullscreen applications, embedded applications, or any applications on consoles platforms where operating system features are non-standard.
| [Usage](#usage) - [How it works](#how-it-works) - [Releases & Changelogs](#releases--changelogs) - [Demo](#demo) - [Integration](#integration) |
:----------------------------------------------------------: |
| [Upcoming changes](#upcoming-changes) - [Gallery](#gallery) - [Support, FAQ](#support-frequently-asked-questions-faq) - [How to help](#how-to-help) - [Sponsors](#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) |
### 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, imgui_demo.cpp, imgui_draw.cpp etc.).
**No specific build process is required**. You can add the .cpp files to your existing project.
You will need a backend to integrate Dear ImGui in your app. The backend passes mouse/keyboard/gamepad inputs and variety of settings to Dear ImGui, and is in charge of rendering the resulting vertices.
**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 setup in your application, you can use it from \_anywhere\_ in your program loop:
Code:
```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);
```
Result:
<br>![sample code output (dark)](https://raw.githubusercontent.com/wiki/ocornut/imgui/web/v175/capture_readme_styles_0001.png) ![sample code output (light)](https://raw.githubusercontent.com/wiki/ocornut/imgui/web/v175/capture_readme_styles_0002.png)
<br>_(settings: Dark style (left), Light style (right) / Font: Roboto-Medium, 16px)_
Code:
```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);
// Plot some values
const float my_values[] = { 0.2f, 0.1f, 1.0f, 0.5f, 0.9f, 2.2f };
ImGui::PlotLines("Frame Times", my_values, IM_ARRAYSIZE(my_values));
// 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();
```
Result:
<br>![sample code output](https://raw.githubusercontent.com/wiki/ocornut/imgui/web/v180/code_sample_04_color.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 tweaks 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 less bugs) than traditional retained-mode interfaces, and lends itself to create 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 rendering, which usually implies hammering your driver/GPU with a bunch of inefficient draw calls and state changes as the gui functions are called. This is NOT what Dear ImGui does. Dear ImGui outputs vertex buffers and a small list of draw calls batches. It never touches your GPU directly. The draw call batches are decently optimal and you can render them later, in your app or even remotely._
### Releases & Changelogs
See [Releases](https://github.com/ocornut/imgui/releases) page.
Reading the changelogs is a good way to keep up to date with the things Dear ImGui has to offer, and maybe will give you ideas of some features that you've been ignoring until now!
### Demo
Calling the `ImGui::ShowDemoWindow()` function will create a demo window showcasing variety of features and examples. The code is always available for referenc
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于MPC模型预测控制从原理到代码的matlab实现源码+全部数据(课程设计).zip 已获导师指导并通过的97分的高分课程设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 基于MPC模型预测控制从原理到代码的matlab实现源码+全部数据(课程设计).zip 已获导师指导并通过的97分的高分课程设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。基于MPC模型预测控制从原理到代码的matlab实现源码+全部数据(课程设计).zip 已获导师指导并通过的97分的高分课程设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。基于MPC模型预测控制从原理到代码的matlab实现源码+全部数据(课程设计).zip 已获导师指导并通过的97分的高分课程设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。基于MPC模型预测控制从原理到代码的matlab实现源码+全部数据(课程设计).zip 已获导师指导并通过的97分的高分课程设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完
资源推荐
资源详情
资源评论
收起资源包目录
基于MPC模型预测控制从原理到代码的matlab实现源码+全部数据(课程设计).zip (574个子文件)
objects.a 30.66MB
objects.a 22.83MB
libimplot.a 8.28MB
objects.a 8.04MB
objects.a 8.03MB
objects.a 8.03MB
libimgui.a 4.07MB
libglfw.a 1.17MB
libglad.a 150KB
build_win32.bat 751B
build_win64.bat 712B
build_win32.bat 701B
build_win32.bat 688B
build_win32.bat 614B
build_win32.bat 613B
build_win32.bat 607B
build_win32.bat 593B
build_win32.bat 585B
build_win32.bat 555B
build_win32.bat 546B
build_win32.bat 529B
build_win32.bat 253B
CMakeDetermineCompilerABI_CXX.bin 53KB
CMakeDetermineCompilerABI_C.bin 53KB
BUILD 1KB
x11_window.c 95KB
gl3w.c 82KB
glad.c 72KB
unzip.c 69KB
win32_window.c 66KB
zip.c 64KB
wl_window.c 56KB
wl_init.c 45KB
x11_init.c 42KB
input.c 35KB
window.c 32KB
win32_joystick.c 26KB
context.c 25KB
wgl_context.c 24KB
egl_context.c 24KB
win32_init.c 22KB
xkb_unicode.c 22KB
glx_context.c 22KB
CMakeCCompilerId.c 20KB
uSynergy.c 18KB
x11_monitor.c 16KB
win32_monitor.c 15KB
monitor.c 14KB
linux_joystick.c 12KB
vulkan.c 11KB
osmesa_context.c 11KB
init.c 9KB
ioapi.c 8KB
null_window.c 8KB
wl_monitor.c 6KB
posix_thread.c 3KB
win32_thread.c 3KB
posix_time.c 3KB
win32_time.c 2KB
null_monitor.c 2KB
cocoa_time.c 2KB
null_init.c 2KB
null_joystick.c 2KB
mpc_control_example.cbp 52KB
glfw.cbp 10KB
imgui.cbp 9KB
implot.cbp 8KB
glad.cbp 7KB
active_set_qp_solver.cc 8KB
mpc_solver.cc 7KB
qp_solver.cc 2KB
cmake.check_cache 86B
CMakeCXXCompiler.cmake 6KB
Makefile.cmake 5KB
DependInfo.cmake 3KB
DependInfo.cmake 3KB
DependInfo.cmake 3KB
CMakeCCompiler.cmake 3KB
cmake_install.cmake 2KB
DependInfo.cmake 2KB
DependInfo.cmake 2KB
DependInfo.cmake 2KB
DependInfo.cmake 2KB
DependInfo.cmake 1KB
cmake_install.cmake 1KB
cmake_install.cmake 1KB
cmake_install.cmake 1KB
cmake_install.cmake 1KB
cmake_clean.cmake 1KB
cmake_clean.cmake 1008B
cmake_clean.cmake 892B
DependInfo.cmake 855B
CMakeDirectoryInformation.cmake 683B
CMakeDirectoryInformation.cmake 683B
CMakeDirectoryInformation.cmake 683B
CMakeDirectoryInformation.cmake 683B
CMakeDirectoryInformation.cmake 683B
cmake_clean.cmake 675B
cmake_clean.cmake 666B
cmake_clean.cmake 598B
共 574 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
- sjndnndks2024-02-10资源很不错,内容和描述一致,值得借鉴,赶紧学起来!
- anonster2024-01-10资源很好用,有较大的参考价值,资源不错,支持一下。
猰貐的新时代
- 粉丝: 1w+
- 资源: 2886
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (33269446)全国省市县经纬度xml数据(全)
- ip地址查询城市php代码
- jieba分词自定义分词词表
- (6340824)C语言学生信息管理系统
- 床、自行车、瓶子、碗、公交车、食堂、小型车检测12-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- (6351410)c++经典程序200例
- (7276248)c语言图书管理系统
- (9368016)C++ STL使用
- (10377004)C语言下实现的学生管理系统
- (15341010)经典C程序一百例
- (174549194)ANSYS Fluent Tutorial Guide
- (175909636)全国293个地级市的经纬度信息
- 尚硅谷宋红康C语言精讲.zip
- 视图库级联抓包,支持GA/T1400-2018版,包括Register, keepalive, subscribe, subscribeNotification等
- ip地址查询区域代码包括php c++ python golang java rust代码使用例子
- C语言结构体精讲,结构体在内存中的访问
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功