RSGL | Pustaka GUI rentas platform pengepala modular sahaja untuk mencipta perisian GUI dengan mudah mengikut cara anda!

WBOY
Lepaskan: 2024-07-16 21:31:11
asal
788 orang telah melayarinya

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.

The RSGL logo

Pengenalan kepada RSGL

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.

Latar belakang RSGL

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.

Menggunakan kod

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);
}
Salin selepas log masuk

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.

Tempat Menarik

Ciri-ciri keseluruhan RSGL, sebagai senarai bertitik tumpu ialah :

  • Tiada kebergantungan luaran, semua perpustakaan yang diperlukan disertakan dalam RSGL dan juga sangat ringan
  • Menyokong berbilang platform, tingkap, MacOS, linux, dll
  • Menyokong berbilang versi OpenGL (malah membenarkan anda bertukar semasa masa jalan)
  • Menggunakan kebergantungan ringan kecil yang lain
  • Lapisan abstraksi OpenGL : RGL (yang merupakan perpustakaan pengepala tunggal sendiri juga)
  • Menyokong berbilang fon dan format imej kerana stb_truetype.h dan stb_image.h
  • Sokong berbilang format audio kerana miniaudio.h
  • Banyak contoh disertakan
  • Percuma dan Sumber Terbuka dengan lesen yang sangat fleksibel

Modul RSGL

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-Gambarajah Seni Bina

RSGL | Modular header-only cross-platform GUI Library for easily creating GUI software your way!

Lesen

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.

nota akhir

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!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan