一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - C/C++ - C++輕量級界面開發(fā)框架ImGUI介紹小結(jié)

C++輕量級界面開發(fā)框架ImGUI介紹小結(jié)

2022-03-01 14:50令狐掌門 C/C++

如果從事過C++ Windows客戶端開發(fā),大家對MFC、Qt、DuiLib等各種DirectUI應(yīng)該有了解,本篇給大家介紹一個超級輕量級的C++開源跨平臺圖形界面框架ImGUI,感興趣的可以了解一下

如果從事過C++ Windows客戶端開發(fā),大家對MFC、Qt、DuiLib等各種DirectUI應(yīng)該有了解,本篇給大家介紹一個超級輕量級的C++開源跨平臺圖形界面框架ImGUI.

 

ImGUI簡介

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

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

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

C++輕量級界面開發(fā)框架ImGUI介紹小結(jié)

sln路徑:imgui/examples/imgui_examples.sln

  運行win32_dx12界面如下:

C++輕量級界面開發(fā)框架ImGUI介紹小結(jié)

ImGUI沒有類似于Qt/MFC這種,可以拖拽控件進行搭建界面,ImGUI的所有控件都必須手寫實現(xiàn)。ImGUI的demo基本提供了所有控件、圖表等的實現(xiàn),源碼也有,可以對照的學(xué)習(xí)。
關(guān)于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的界面實現(xiàn)

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

C++輕量級界面開發(fā)框架ImGUI介紹小結(jié)

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

C++輕量級界面開發(fā)框架ImGUI介紹小結(jié)

根據(jù)官方提供的demo來看,基本滿足開發(fā)要求。

 

技術(shù)選型

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

 

如何使用ImGUI

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

C++輕量級界面開發(fā)框架ImGUI介紹小結(jié)

imgui github也有一些簡單的介紹,可以參考,例如:集成

在大多數(shù)平臺上,當(dāng)使用c++時,你應(yīng)該能夠使用imgui_impl_xxxx后端的組合而不需要修改(例如imgui_impl_win32.cpp + imgui_impl_dx11.cpp)。如果你的引擎支持多個平臺,考慮使用更多的imgui_impl_xxxx文件,而不是重寫它們:這將為你減少工作,你可以讓親愛的ImGui立即運行。如果您愿意,可以稍后決定使用自定義引擎函數(shù)重寫自定義后端。
將ImGui整合到你的自定義引擎中需要1)連接鼠標/鍵盤/手柄輸入2)將紋理上傳到你的GPU/渲染引擎3)提供能夠綁定紋理并渲染紋理三角形的渲染功能。示例/文件夾中填充的應(yīng)用程序就是這樣做的。如果你是熟練掌握這些概念的資深程序員,那么將Dear ImGui集成到定制引擎中應(yīng)該不需要2個小時。請務(wù)必花時間閱讀FAQ、評論和一些示例/應(yīng)用程序!

官方維護的后端/綁定(在存儲庫中):

  • 渲染器: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,勤奮引擎,F(xiàn)lexium, 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輸出來生成其他語言的綁定。

到此這篇關(guān)于C++輕量級界面開發(fā)框架ImGUI介紹小結(jié)的文章就介紹到這了,更多相關(guān)C++ ImGUI框架內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://blog.csdn.net/yao_hou/article/details/121443054

延伸 · 閱讀

精彩推薦
  • C/C++C語言實現(xiàn)電腦關(guān)機程序

    C語言實現(xiàn)電腦關(guān)機程序

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)電腦關(guān)機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數(shù)使用

    詳解c語言中的 strcpy和strncpy字符串函數(shù)使用

    strcpy 和strcnpy函數(shù)是字符串復(fù)制函數(shù)。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數(shù)使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++學(xué)習(xí)C++編程的必備軟件

    學(xué)習(xí)C++編程的必備軟件

    本文給大家分享的是作者在學(xué)習(xí)使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++C/C++經(jīng)典實例之模擬計算器示例代碼

    C/C++經(jīng)典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關(guān)于C/C++經(jīng)典實例之模擬計算器的相關(guān)資料,文中通過示...

    jia150610152021-06-07
  • C/C++c++ 單線程實現(xiàn)同時監(jiān)聽多個端口

    c++ 單線程實現(xiàn)同時監(jiān)聽多個端口

    這篇文章主要介紹了c++ 單線程實現(xiàn)同時監(jiān)聽多個端口的方法,幫助大家更好的理解和學(xué)習(xí)使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內(nèi)存中的數(shù)據(jù)都是暫時的,當(dāng)程序結(jié)束時,它們都將丟失,為了永久性的保存大量的數(shù)據(jù),C語言提供了對文件的操作,這篇文章主要給大家介紹了關(guān)于C語言中文件...

    針眼_6702022-01-24
  • C/C++深入理解goto語句的替代實現(xiàn)方式分析

    深入理解goto語句的替代實現(xiàn)方式分析

    本篇文章是對goto語句的替代實現(xiàn)方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網(wǎng)7342020-12-03
主站蜘蛛池模板: 日韩高清在线免费观看 | sex5·性屋娱乐| 成年视频在线观看免费 | 国内外精品免费视频 | 青青热久久综合网伊人 | 激情三级hd中文字幕 | 精品久久久久久久国产潘金莲 | 9热在线精品视频观看 | 无码精品一区二区三区免费视频 | 久久亚洲免费视频 | 国内精品久久久久久野外 | 好吊妞视频998www | 91噜噜噜在线观看 | 男女做受快插大片 | 四虎影视入口 | 久久免费看少妇级毛片蜜臀 | 国产精品va在线观看不 | 精品一久久香蕉国产线看播放 | 色综合色综合 | 国产精品不卡高清在线观看 | 久青草国产97香蕉在线视频 | 国产成人夜色影视视频 | 国产欧美又粗又猛又爽老 | 男人午夜免费视频 | 成人女人天堂午夜视频 | 亚洲男gay同性同志 亚洲免费在线看 | 色戒完整版2小时38分钟 | 青柠影视在线播放观看高清 | 校花在公车上被内射好舒服 | 国产剧情在线播放 | 国产欧美日韩不卡一区二区三区 | 亚洲天堂视频在线观看免费 | 亚洲成人国产精品 | 4hu影院在线观看 | 小寡妇好紧进去了好大看视频 | 三级视频中文字幕 | 亚洲乱码一二三四五六区 | 久久久免费观看 | 国产一卡二卡3卡4卡四卡在线 | 国产婷婷成人久久av免费高清 | 国产成人福利免费视频 |