RSGL は、GUI アプリやゲームを簡単に作成するための、モジュール式の使いやすいクロスプラットフォーム GUI ライブラリです。下位レベルの GUI ライブラリの自由さと最新の C 技術を組み合わせて、シンプルさと利便性の両方を提供します。その主な特徴は、軽量の依存関係が組み込まれていることと、柔軟性、クロスプラットフォームのサポートです。現在、Linux、Windows、MacOS をサポートしており、zlib ライセンスを持ち、STB とミニオーディオを使用しているため、多くのデータ形式をサポートしています。
https://github.com/ColleagueRiley/RSGL
Riley's Simple GUI Library の略称である RSGL は、アプリケーションやゲームのグラフィカル ユーザー インターフェイス (GUI) の開発を効率化するために設計されたツールです。 RSGL はその中核として、モジュール式のクロスプラットフォーム ソリューションとして機能し、開発者が GUI 開発で遭遇する一般的な課題を克服しながら、GUI を簡単に作成できる自由を提供します。
RSGL は、重要な GUI 機能を軽量で汎用性の高いライブラリ内にカプセル化することで、開発者が技術的な複雑さと格闘するのではなく、創造性に集中できるようにします。
SDL と同様に、RSGL はユーザーの邪魔にならないように努めます。ただし、SDL とは異なり、RSGL はより最新化され、ユーザーのためにさらに多くのことを実行しようとしています。 RSGL と比較できるもう 1 つのライブラリは Raylib です。私は、RSGL の初期設計をすでに作成し終わるまで、Raylib について知りませんでした。表面的には、Raylib と RSGL は非常によく似た設計をしています。ただし、RSGL には異なる設計の選択肢があり、軽量であることに重点が置かれています。たとえば、RSGL の内部依存関係はすべて非常に軽量であり、ほとんどがそのように設計されています。 Raylib が使用する依存関係は、GLFW のように軽量になるように設計されていません。 RSGL は GLFW の代わりに RGFW を使用します。GLFW の .o 出力は約 280kb ですが、RGFW の出力は約 46kb です。それにも関わらず、Raylib と RSGL、および GUI ライブラリとして適切な選択肢と、どちらを使用するかは、好みや状況によって変わる可能性があります。
Raylib と RSGL のもう 1 つの類似点は、どちらも OpenGL 抽象化レイヤーを使用していることです。それぞれRLGLとRGL。ここでは違いについては詳しく説明しません。しかし、これらがそれぞれのライブラリをどのように強化するのかに注目することが非常に重要です。ソフトウェア作成者は、最新の OpenGL と従来の OpenGL の間で簡単にコンパイルできます。 RGL では、実行時にレガシー関数を使用してプログラムをレンダリングすることもできます。これにより、プログラムにフェイルセーフを持たせることができます。これは、RSGL がユーザーに利便性を提供するもう 1 つの方法です。
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); }
コンパイル中:
ウィンドウ: 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_IMPLEMENTATION -
に #define MINIAUDIO_IMPLEMENTATION を含めないでください
このヘッダー (オーディオを使用するには、他の方法で miniaudio をリンクする必要があります)
RSGL_NO_SAVE_IMAGE - 画像を保存/ロードしません (これを使用する場合は RSGL_drawImage を使用しないでください)。
RSGL_drawImage はファイル名とテクスチャを保存してロードできるようにします
後で尋ねるとき。これにより、
RSGL は libpng ライセンスを使用します。これは、このソフトウェアを自分で作成したと主張しない限り、RSGL を自由に使用でき、変更されたバージョンにそのようにマークを付け、ヘッダーに含まれるライセンスを保持できることを意味します。
RSGL リポジトリは次の場所にあります:
https://github.com/ColleagueRiley/RSGL
以上がRSGL |モジュラーヘッダーのみのクロスプラットフォーム GUI ライブラリにより、GUI ソフトウェアを自分の方法で簡単に作成できます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。