GLFW
GLFW(Graphics Library Framework)는 OpenGL, OpenGL ES, 벌컨 (API)과 함께 사용되는 경량 유틸리티 라이브러리이다. 프로그래머에게 창을 생성하고 관리하며 OpenGL 및 벌컨 컨텍스트를 제공하고 조이스틱, 컴퓨터 자판, 마우스 입력을 처리할 수 있는 기능을 제공한다.
| 원저자 | 마르쿠스 옐나드 |
|---|---|
| 개발자 | GLFW 개발팀 |
| 발표일 | 2002년 2월 17일 |
| 안정화 버전 | 3.4
/ 2024년 2월 23일[1] |
| 저장소 | |
| 프로그래밍 언어 | C |
| 운영 체제 | 리눅스, macOS, 마이크로소프트 윈도우, FreeBSD, NetBSD, OpenBSD |
| 플랫폼 | 크로스 플랫폼 |
| 종류 | API |
| 라이선스 | zlib/libpng 라이선스[2] |
| 웹사이트 | www.glfw.org |
GLFW(Graphics Library Framework)는 OpenGL, OpenGL ES, 벌컨 (API)과 함께 사용되는 경량 유틸리티 라이브러리이다. 프로그래머에게 창을 생성하고 관리하며 OpenGL 및 벌컨 컨텍스트를 제공하고 조이스틱, 컴퓨터 자판, 마우스 입력을 처리할 수 있는 기능을 제공한다.[3]
소프트웨어 아키텍처
[편집]GLFW는 OpenGL 컨텍스트가 있는 창을 생성하고 관리할 수 있게 해주는 작은 C 라이브러리이며, 여러 모니터 및 비디오 모드도 사용할 수 있게 한다. 키보드, 마우스 및 조이스틱으로부터의 입력에 대한 접근을 제공한다.[4] API는 주로 유일한 그래픽 출력이 OpenGL API를 통하는 응용 프로그램을 위한 얇고 다중 플랫폼 추상화 계층을 제공한다. GLFW는 다중 플랫폼 OpenGL 응용 프로그램 개발에 매우 유용하지만, 단일 플랫폼 개발자도 플랫폼별 API를 다루는 수고를 피함으로써 이점을 얻을 수 있다.
GLFW는 OpenGL이 필요한 컨텍스트 생성, 창 관리, 사용자 입력, 타이밍 등을 위한 메커니즘을 제공하지 않기 때문에 창을 필요로 하는 프로그램에서 사용된다.[5] OpenGL 개발을 돕기 위해 여러 다른 라이브러리가 존재한다. 가장 일반적인 것은 FreeGLUT (GLUT의 오픈 소스 구현)와 SDL이다. 그러나 FreeGLUT는 주로 GLUT의 안정적인 복제를 제공하는 데 초점을 맞추고 있으며, SDL은 일부 사람들에게는 너무 크고 OpenGL이 주요 초점이었던 적이 없다. GLFW는 OpenGL 컨텍스트, 창 및 입력을 관리하기 위한 경량의 현대적인 라이브러리가 필요하다는 전제에 기반을 두고 있다.
GLFW는 사용자 인터페이스 라이브러리, 플랫폼별 라이브러리, 이미지 로딩 라이브러리 또는 스레딩 라이브러리가 아니다. 또한 독립적으로 렌더링하거나 사운드를 재생할 수 없다.[6]
프로그래밍 언어 바인딩
[편집]GLFW는 C로 작성되었지만, 에이다, C#, 커먼 리스프, D, 델파이, Go, 하버, 하스켈, 자바, 줄리아, 파이썬, 레볼, 레드, 루비, 러스트를 포함한 다른 프로그래밍 언어와 API를 사용하기 위한 바인딩이 존재한다.[7]
백엔드
[편집]GLFW 버전 3.2는 컴파일 타임 플래그를 통해 웨이랜드에 대한 실험적 지원을 한다.[8]
같이 보기
[편집]- GLUT – OpenGL의 레거시 윈도 시스템 툴킷
- OpenGL 익스텐션 랭글러 라이브러리
- 레이립
- 심플 다이렉트미디어 레이어
각주
[편집]- ↑ “Releases · glfw/glfw”. 《github.com》. 2024년 2월 23일에 확인함.
- ↑ “License | GLFW”. 《glfw.org》. 2021년 4월 10일에 확인함.
- ↑ “GLFW homepage”. 《www.glfw.org》. 2022년 9월 15일에 확인함.
- ↑ “GLFW: Input guide”. 《www.glfw.org》. 2021년 2월 7일에 확인함.
- ↑ “LearnOpenGL - Creating a window”. 《www.learnopengl.com》. 2022년 9월 15일에 확인함.
- ↑ “GLFW – FAQ”. 2015년 7월 11일에 확인함.
- ↑ “GLFW Programming language bindings”. 2019년 9월 4일에 확인함.
- ↑ “GLFW: New features in 3.2”.