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과 비교할 수 있는 또 다른 라이브러리는 Raylib입니다. 나는 RSGL의 초기 디자인을 이미 만든 이후까지 Raylib에 대해 알지 못했습니다. 표면적으로 Raylib과 RSGL은 디자인이 매우 비슷합니다. 하지만 RSGL은 다양한 디자인 선택을 갖고 있으며 경량화에 더 중점을 두고 있습니다. 예를 들어 RSGL의 모든 내부 종속성은 매우 가볍고 대부분 그렇게 설계되었습니다. Raylib가 사용하는 종속성은 GLFW와 같이 경량으로 설계되지 않았습니다. RSGL은 GLFW 대신 RGFW를 사용합니다. GLFW의 .o 출력은 ~280kb이고 RGFW의 출력은 ~46kb입니다. 그럼에도 불구하고 Raylib와 RSGL, GUI 라이브러리에 대한 좋은 선택과 사용하기로 선택한 라이브러리는 취향과 상황에 따라 달라질 수 있습니다.
Raylib과 RSGL의 또 다른 유사점은 둘 다 OpenGL 추상화 레이어를 사용한다는 것입니다. 각각 RLGL과 RGL. 여기서는 차이점에 대해 너무 자세히 설명하지 않겠습니다. 그러나 이 두 가지가 어떻게 각각의 라이브러리를 더욱 강력하게 만드는지 주목하는 것이 매우 중요합니다. 소프트웨어 제작자는 최신 OpenGL과 레거시 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); }
컴파일 중 :
창 : gcc -lopengl32 -lshell32 -lgdi32
리눅스: 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이 없습니다.
이 헤더(오디오를 사용하려면 미니오디오를 다른 방법으로 연결해야 함)
RSGL_NO_SAVE_IMAGE - 이미지를 저장/로드하지 않습니다(이를 사용하는 경우 RSGL_drawImage를 사용하지 마세요).
RSGL_drawImage는 로드할 수 있도록 파일 이름과 텍스처를 저장합니다
나중에 달라고 하면. 이렇게 하면 해당 기능이 비활성화됩니다
RSGL은 libpng 라이센스를 사용합니다. 즉, 이 소프트웨어를 작성했다고 주장하지 않고 변경된 버전을 표시하고 라이센스를 헤더에 포함된 상태로 유지하는 한 RSGL을 자유롭게 사용할 수 있습니다.
RSGL 저장소는 다음에서 찾을 수 있습니다.
https://github.com/ColleagueRiley/RSGL
위 내용은 RSGL | 원하는 방식으로 GUI 소프트웨어를 쉽게 만들 수 있는 모듈식 헤더 전용 크로스 플랫폼 GUI 라이브러리!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!