為了除錯我們的OpenGL Demo,可以嘗試使用一個成熟的開源GUI外掛imgui。
1,首先進入imgui在github上的地址。
在Release中下載最近的版本,可以得到一個Zip壓縮包。
現在是2023年的4月1日,我下載到的版本是1.89.4,與Cherno的OpenGL教程中的程式碼略微有些區別。如果你看的是Cherno的教程,也可以嘗試下載1.60版本,並按照Cherno的程式碼來。
2,Zip包解壓後,首先將根目錄的程式碼檔案全部複製加入專案中(imconfig.h, imgiu_demo.cpp, imgui.draw_cpp, imgui_internal.h...)。
3,進入example目錄,由於我這邊用的GLFW庫,因此進入example_glfw_opengl3目錄。這裡我們看到和Cherno教程不同的地方,這裡只有一個main.cpp的程式碼檔案。其實所有的實現檔案已經轉移到backends資料夾裡了。注意這裡需要複製五個檔案到工程目錄下,分別是imgui_impl_glfw.h,imgui_impl_glfw.cpp,imgui_impl_opengl3_loader.h,imgui_impl_opengl3.h和imgui_impl_opengl3.cpp。example目錄下的main檔案可以作為參考程式碼方便一會的測試。
4,進入自己工程的main方法,引用標頭檔案
然後在mainLoop前初始化imgui
5,在渲染迴圈,呼叫GLClear後,我們需要開啟imgui的frame
6,接下來就可以開始渲染繪製imgui的內容,我們可以看到example的main.cpp檔案中,提供了三個視窗的demo,直接抄就行
7,在swap buff前,我們需要提交imgui的渲染資料
8,最後在銷燬視窗前我們需要銷燬imgui
9,執行程式可以看到