RSGL ialah Pustaka GUI merentas platform modular yang mudah digunakan untuk membuat apl dan permainan GUI dengan mudah. Ia menggabungkan kebebasan perpustakaan GUI peringkat rendah dengan teknik C moden, menawarkan kedua-dua kesederhanaan dan kemudahan. Ciri utamanya ialah terbina dalam pergantungan ringan dan fleksibilitinya, sokongan platform silang. Pada masa ini ia menyokong Linux, Windows dan MacOS, mempunyai lesen zlib, dan disebabkan penggunaan STB dan miniaudio, menyokong banyak format data.
https://github.com/ColleagueRiley/RSGL
RSGL, singkatan kepada Riley's Simple GUI Library, ialah alat yang direka untuk menyelaraskan pembangunan antara muka pengguna grafik (GUI) untuk aplikasi dan permainan. Pada terasnya, RSGL berfungsi sebagai penyelesaian modular dan merentas platform, menawarkan pembangun kebebasan untuk mencipta GUI dengan mudah sambil mengatasi cabaran biasa yang dihadapi dalam pembangunan GUI.
Dengan merangkum fungsi GUI yang penting dalam perpustakaan yang ringan dan serba boleh, RSGL memperkasakan pembangun untuk menumpukan pada kreativiti dan bukannya bergelut dengan kerumitan teknikal.
Sama seperti SDL RSGL cuba untuk tidak menghalang pengguna. Tetapi tidak seperti SDL, RSGL cuba untuk menjadi lebih moden dan melakukan lebih banyak untuk pengguna. RSGL perpustakaan lain boleh dibandingkan dengan Raylib. Saya tidak tahu tentang Raylib sehinggalah selepas saya telah mencipta reka bentuk awal RSGL saya. Pada permukaan Raylib dan RSGL mempunyai reka bentuk yang hampir sama. Walaupun, RSGL mempunyai pilihan reka bentuk yang berbeza dan tumpuan yang lebih kuat untuk menjadi ringan. Sebagai contoh, semua kebergantungan dalaman RSGL adalah sangat ringan dan kebanyakannya direka bentuk sedemikian. Walaupun kebergantungan yang digunakan Raylib tidak direka bentuk untuk menjadi ringan, seperti GLFW. RSGL menggunakan RGFW dan bukannya GLFW, output .o GLFW ialah ~280kb manakala RGFW ialah ~46kb. Walau bagaimanapun, Raylib dan RSGL dan kedua-dua pilihan yang baik untuk Perpustakaan GUI dan yang anda pilih untuk digunakan mungkin berubah bergantung pada citarasa dan keadaan anda.
Satu lagi persamaan antara Raylib dan RSGL ialah kedua-duanya menggunakan lapisan abstraksi OpenGL. RLGL dan RGL masing-masing. Saya tidak akan menjelaskan secara terperinci tentang perbezaan di sini. Tetapi adalah sangat penting untuk diperhatikan bagaimana kedua-duanya menjadikan perpustakaan masing-masing lebih kuat. Pencipta perisian boleh dengan mudah menyusun antara OpenGL moden dan lama. RGL juga membenarkan program untuk membuat menggunakan fungsi warisan semasa masa jalan. Ini membolehkan program mempunyai fail safe, dengan cara lain RSGL menyediakan kemudahan kepada pengguna.
Cukup bercakap tentang betapa hebatnya RSGL. Berikut adalah contoh supaya anda boleh memutuskan sendiri bahawa RSGL benar-benar bernilai semua pujian.
#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); }
Menyusun :
tingkap : gcc -lopengl32 -lshell32 -lgdi32
linux: gcc -lGLX -lX11 -lm
macos : gcc -framework Foundation -framework AppKit -framework OpenGL -framework CoreVideo
NOTA : Ini adalah contoh yang sangat asas, terdapat banyak contoh yang jauh lebih asas yang disertakan dalam repo.
Ciri-ciri keseluruhan RSGL, sebagai senarai bertitik tumpu ialah :
RSGL_NO_WIDGETS (menjadikannya RSGL tidak termasuk fungsi widget)
RSGL_NO_AUDIO (menjadikannya RSGL tidak termasuk fungsi audio)
RSGL_NO_WINDOW - tiada RSGL_window, RSGL_graphics digunakan sebaliknya [ini adalah untuk menggunakan pengurus tetingkap yang berbeza selain RGFW ]
RSGL_NO_TEXT - jangan sertakan fungsi pemaparan teks
RGFW_NO_WIDGETS - jangan sertakan widget
RSGL_NO_AUDIO - jangan sertakan fungsi audio
RSGL_NO_MINIAUDIO_IMPLEMENTATION - tidak mempunyai #define MINIAUDIO_IMPLEMENTATION dalam
pengepala ini (anda perlu memautkan miniaudio dengan cara lain untuk menggunakan audio)
RSGL_NO_SAVE_IMAGE - jangan simpan/muat imej (jangan gunakan RSGL_drawImage jika anda menggunakan ini),
RSGL_drawImage menyimpan nama fail + tekstur supaya ia boleh memuatkannya
apabila anda memintanya nanti. Ini melumpuhkan
RSGL menggunakan lesen libpng, ini bermakna anda boleh menggunakan RSGL dengan bebas selagi anda tidak mendakwa anda menulis perisian ini, tandakan versi yang diubah dan pastikan lesen disertakan bersama pengepala.
Repo RSGL boleh didapati di :
https://github.com/ColleagueRiley/RSGL
Atas ialah kandungan terperinci RSGL | Pustaka GUI rentas platform pengepala modular sahaja untuk mencipta perisian GUI dengan mudah mengikut cara anda!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!