C++轻量级界面开发框架ImGUI介绍小结

C++轻量级界⾯开发框架ImGUI介绍⼩结
⽬录
ImGUI简介
ImGUI的界⾯实现
技术选型
如何使⽤ImGUI
  如果从事过C++ Windows客户端开发,⼤家对MFC、Qt、DuiLib等各种DirectUI应该有了解,本篇给⼤家介绍⼀个超级轻量级的C++开源跨平台图形界⾯框架ImGUI.
ImGUI简介
  ImGUI⼜称为Dear ImGui,它是与平台⽆关的C++轻量级跨平台图形界⾯库,没有任何第三⽅依赖,可以将ImGUI的源码直接加到项⽬中使⽤,也可以编译成dll, ImGUI使⽤DX 或者OpenGL进⾏界⾯渲染,对于画⾯质量要求较⾼,例如客户端游戏,4k/8k视频播放时,⽤ImGUI是很好的选择,当然,你得⾮常
熟悉DirectX或者OpenGL,不然就是宝剑在⼿,屠龙⽆⼒。相对于Qt、MFC、DuiLib、SOUI等,ImGUI的拓展性更好,也更轻量级,当然对于开发者的要求也更⾼.
  下载ImGUI代码后,⽤vs2019可以直接打开,编译,运⾏,sln路径如下:
sln路径:imgui/examples/imgui_examples.sln
碳管炉  运⾏win32_dx12界⾯如下:
ImGUI没有类似于Qt/MFC这种,可以拖拽控件进⾏搭建界⾯,ImGUI的所有控件都必须⼿写实现。ImGUI的demo基本提供了所有控件、图表等的实现,源码也有,可以对照的学习。
关于ImGUI的详细介绍,可以参考github.
  注意这段话
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.触摸调光ic
ImGUI的界⾯实现
  基本控件:label、text、checkbox、slider管束式集装箱
窗体控件:树形控件、图⽚控件、ComboBox、列表控件、菜单栏等
根据官⽅提供的demo来看,基本满⾜开发要求。
产品评价技术选型
  在PC端技术选型时,如果公司有⾳视频、图形图像、4k/8k视频业务,可以考虑⼀下使⽤ImGUI,毕竟是直接使⽤DX/OpenGL来进⾏绘制渲染,其它功能就直接使⽤C++来实现。
如何使⽤ImGUI
  参考imgui的⽰例代码,如下所⽰:
汽车中央扶手
imgui github也有⼀些简单的介绍,可以参考,例如:集成
在⼤多数平台上,当使⽤c++时,你应该能够使⽤imgui_impl_xxxx后端的组合⽽不需要修改(例如imgui_impl_win32.cpp + imgui_impl_dx11.cpp)。如果你的引擎⽀持多个平台,考虑使⽤更多的imgui_impl_xxxx⽂件,⽽不是重写它们:这将为你减少⼯作,你可以让亲爱的ImGui⽴即运⾏。如果您愿意,可以稍后决定使⽤⾃定义引擎函数重写⾃定义后端。
将ImGui整合到你的⾃定义引擎中需要1)连接⿏标/键盘/⼿柄输⼊2)将纹理上传到你的GPU/渲染引擎3)提供能够绑定纹理并渲染纹理三⾓形的渲染功能。⽰例/⽂件夹中填充的应⽤程序就是这样做的。如果你是熟练掌握这些概念的资深程序员,那么将Dear ImGui集成到定制引擎中应该不需要2个⼩时。请务必花时间阅读FAQ、评论和⼀些⽰例/应⽤程序!
官⽅维护的后端/绑定(在存储库中):
渲染器:DirectX9, DirectX10, DirectX11, DirectX12, Metal, OpenGL/ES/ES2, SDL_Renderer, Vulkan, WebGPU。
平台:GLFW, SDL2, Win32, Glut, OSX, Android。
框架:Emscripten, Allegro5, Marmalade。
第三⽅后端/绑定wiki页⾯:
h5n6语⾔:C, c#和:Beef, ChaiScript, Crystal, D, Go, Haskell, Haxe/hxcpp, Java, JavaScript, Julia, Kotlin, Lobster, Lua, Odin, Pascal, PureBasic, Python, Ruby, Rust, Swift…
框架:AGS/Adventure Game Studio, Amethyst, Blender, bsf, Cinder, Cocos2d-x,勤奋引擎,Flexium, GML/Game Maker studi2, GLEQ, Godot, GTK3+OpenGL3, Irrlicht引擎,LÖVE+LUA, Magnum, Monogame, NanoRT, cine, niine Game Lib,任天堂3DS & Switch (homebrew), Ogre, openFrameworks, OSG/OpenSceneGraph, Orx, Photoshop, px_render, Qt/QtDirect3D,SDL_Renderer, sml, Sokol, Unity,虚幻引擎4,vtk, VulkanHpp, VulkanSceneGraph, Win32 GDI, WxWidgets。
注意,C绑定(cimgui)是⾃动⽣成的,你可以使⽤它的json/lua输出来⽣成其他语⾔的绑定。
到此这篇关于C++轻量级界⾯开发框架ImGUI介绍⼩结的⽂章就介绍到这了,更多相关C++ ImGUI框架内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

本文发布于:2024-09-23 06:22:45,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/148196.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:控件   引擎   框架   定义
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议