亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++輕量級界面開發框架ImGUI有什么用

發布時間:2022-03-04 11:36:50 來源:億速云 閱讀:427 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關C++輕量級界面開發框架ImGUI有什么用的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

ImGUI簡介

??ImGUI主要用于游戲行業,所有的控件都需要手繪實現,當然性能也是滿滿的,畢竟是直接用dx/opengl來實現。
ImGUI倉庫:https://github.com/ocornut/imgui

??ImGUI又稱為Dear ImGui,它是與平臺無關的C++輕量級跨平臺圖形界面庫,沒有任何第三方依賴,可以將ImGUI的源碼直接加到項目中使用,也可以編譯成dll, ImGUI使用DX或者OpenGL進行界面渲染,對于畫面質量要求較高,例如客戶端游戲,4k/8k視頻播放時,用ImGUI是很好的選擇,當然,你得非常熟悉DirectX或者OpenGL,不然就是寶劍在手,屠龍無力。相對于Qt、MFC、DuiLib、SOUI等,ImGUI的拓展性更好,也更輕量級,當然對于開發者的要求也更高.

??下載ImGUI代碼后,用vs2019可以直接打開,編譯,運行,sln路徑如下:

C++輕量級界面開發框架ImGUI有什么用

sln路徑:imgui/examples/imgui_examples.sln

??運行win32_dx12界面如下:

C++輕量級界面開發框架ImGUI有什么用

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.

ImGUI的界面實現

??基本控件:label、text、checkbox、slider

C++輕量級界面開發框架ImGUI有什么用

窗體控件:樹形控件、圖片控件、ComboBox、列表控件、菜單欄等

C++輕量級界面開發框架ImGUI有什么用

根據官方提供的demo來看,基本滿足開發要求。

技術選型

??在PC端技術選型時,如果公司有音視頻、圖形圖像、4k/8k視頻業務,可以考慮一下使用ImGUI,畢竟是直接使用DX/OpenGL來進行繪制渲染,其它功能就直接使用C++來實現。

如何使用ImGUI

??參考imgui的示例代碼,如下所示:

C++輕量級界面開發框架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頁面:

  • 語言: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有什么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

方正县| 仙游县| 泰顺县| 尼勒克县| 湟源县| 湾仔区| 高台县| 嘉黎县| 丁青县| 亳州市| 澳门| 陇川县| 茶陵县| 嘉祥县| 曲沃县| 青铜峡市| 齐河县| 牟定县| 蛟河市| 安阳县| 嘉黎县| 咸阳市| 鄂托克前旗| 河池市| 石渠县| 吴忠市| 织金县| 红河县| 泸溪县| 巴南区| 南汇区| 宁海县| 保德县| 南投市| 临高县| 蓝山县| 大名县| 贡觉县| 石楼县| 武功县| 固安县|