RSGL 是一個易於使用的模組化跨平台 GUI 庫,用於輕鬆創建 GUI 應用程式和遊戲。它將底層 GUI 庫的自由度與現代 C 技術相結合,提供簡單性和便利性。它的主要特點是內建的輕量級依賴、靈活性和跨平台支援。它目前支援 Linux、Windows 和 MacOS,擁有 zlib 許可證,並且由於使用 STB 和 miniaudio,因此支援多種資料格式。
https://github.com/ColleagueRiley/RSGL
RSGL 是 Riley 簡單 GUI 函式庫的縮寫,是一種旨在簡化應用程式和遊戲的圖形使用者介面 (GUI) 開發的工具。 RSGL 的核心是模組化和跨平台的解決方案,為開發人員提供輕鬆創建 GUI 的自由,同時克服 GUI 開發中遇到的常見挑戰。
透過將基本的 GUI 功能封裝在輕量級多功能函式庫中,RSGL 使開發人員能夠專注於創造力,而不是與技術複雜性作鬥爭。
就像 SDL RSGL 試圖不妨礙使用者一樣。但與 SDL 不同的是,RSGL 試圖變得更加現代化,為使用者做更多的事情。另一個可以與 RSGL 進行比較的函式庫是 Raylib。直到我創建了 RSGL 的初始設計之後,我才知道 Raylib。從表面上看,Raylib 和 RSGL 的設計非常相似。儘管如此,RSGL 有不同的設計選擇,並且更加重視輕量化。例如,RSGL 的所有內部相依性都是非常輕量級的,而且大多數都是如此設計的。雖然 Raylib 使用的依賴項並不是輕量級的,例如 GLFW。 RSGL 使用 RGFW 而不是 GLFW,GLFW 的 .o 輸出約為 280kb,而 RGFW 的輸出約為 46kb。儘管如此,Raylib 和 RSGL 以及 GUI 函式庫都是不錯的選擇,您選擇使用的函式庫可能會根據您的品味和環境而改變。
Raylib 和 RSGL 的另一個相似之處是它們都使用 OpenGL 抽象層。分別為 RLGL 和 RGL。我不會在這裡詳細討論這些差異。但值得注意的是,它們是如何使各自的函式庫變得更強大的。軟體創建者可以輕鬆地在現代和傳統 OpenGL 之間進行編譯。 RGL 還允許程式在執行時間使用遺留函數進行渲染。這使得程式具有故障安全功能,這也是 RSGL 為使用者提供便利的另一種方式。
RSGL 的偉大已經說得夠多了。這是一個例子,你可以自己決定 RSGL 是否真的值得所有的讚揚。
#define RSGL_NO_AUDIO /* we don't want to link with miniaudio.h */ #define RSGL_IMPLEMENTATION #include "RSGL.h" #include <stdbool.h> int main() { /* create window and pass arg to make sure it's centered */ RSGL_window* win = RSGL_createWindow("example", RSGL_RECT(0, 0, 500, 500), RSGL_CENTER); bool legacy = false; bool running = true; while(running) { /* check events until there are no more events to check */ while(RSGL_window_checkEvent(win)) { if (win->event.type == RGFW_quit || RSGL_isPressedI(win, RGFW_Escape)) { running = false; break; } /* if the space bar is pressed, toggle rendering using opengl legacy */ if (win->event.type == RSGL_keyPressed && win->event.keyCode == RGFW_Space) { legacy = !legacy; RSGL_legacy(legacy); } } /* draw a basic rectangle and clear the screen */ RSGL_drawRect(RSGL_RECT(200, 200, 200, 200), RSGL_RGB(255, 0, 0)); RSGL_window_clear(win, RSGL_RGB(255, 255, 255)); } RSGL_window_close(win); }
編譯:
Windows:gcc -lopengl32 -lshell32 -lgdi32
Linux: gcc -lGLX -lX11 -lm
macos : gcc -framework Foundation -framework AppKit -framework OpenGL -framework CoreVideo
注意:這是一個非常基本的範例,儲存庫中包含許多不太基本的範例。
RSGL 的整體特徵,如項目符號清單所示:
RSGL_NO_WIDGETS(使 RSGL 不包含小部件功能)
RSGL_NO_AUDIO(使得RSGL不包含音訊功能)
RSGL_NO_WINDOW - 沒有 RSGL_window,而是使用 RSGL_graphics [這是為了使用 RGFW 以外的不同視窗管理器]
RSGL_NO_TEXT - 不包含文字渲染函數
RGFW_NO_WIDGETS - 不包含小工具
RSGL_NO_AUDIO - 不包含音訊功能
RSGL_NO_MINIAUDIO_IMPLMENTATION -
中沒有 #define MINIAUDIO_IMPLMENTATION
此標頭(您必須以其他方式連結 miniaudio 才能使用音訊)
RSGL_NO_SAVE_IMAGE - 不儲存/載入映像(如果使用此功能,請勿使用 RSGL_drawImage),
RSGL_drawImage 保存檔案名稱+紋理,以便載入它
當你稍後詢問時。這會禁用
RSGL 使用 libpng 許可證,這意味著您可以自由使用 RSGL,只要您不聲稱您編寫了該軟體,標記更改版本並將許可證包含在標頭中。
RSGL 儲存庫可以在以下位置找到:
https://github.com/ColleagueRiley/RSGL
以上是RSGL |模組化的僅標頭跨平台 GUI 庫,可按照您的方式輕鬆建立 GUI 軟體!的詳細內容。更多資訊請關注PHP中文網其他相關文章!