SFML

SFML(Simple and Fast Multimedia Library)은 컴퓨터의 다양한 멀티미디어 구성 요소에 단순한 API를 제공하기 위해 설계된 크로스 플랫폼 소프트웨어 개발 라이브러리이다. C++로 작성되어 있으며 C, 크리스탈, D, 유포리아, Go, 자바, Julia, .NET, 님, OCaml, 파이썬, 루비, Rust용 바인딩이 제공된다. 실험적인 모바일 포트들은 SFML 2.2의 출시와 함께 안드로이드, iOS용으로 이용 가능하게 되었다.

SFML은 창에 대한 만들기 및 입력, 그리고 OpenGL 컨텍스트의 만들기 및 관리를 관리한다. 프리타입을 이용한 텍스트 렌더링, OpenAL을 사용하는 오디오 모듈, 기본적인 전송 제어 프로토콜(TCP)과 사용자 데이터그램 프로토콜(UDP) 통신을 위한 네트워크 모듈을 포함하여 2차원 컴퓨터 그래픽스의 단순한 하드웨어 가속을 위한 그래픽 모듈도 제공한다.

SFML은 zlib/png 라이선스 조항으로 제공되는 자유-오픈 소스 소프트웨어이다. 윈도우, 리눅스, macOS, FreeBSD에서 이용할 수 있다. 최초 버전 1.0은 2007년 8월 9일 출시되었으며 최신 버전 v2.5.0은 2018년 5월 9일 출시되었다.

 소프트웨어 구조 
 모듈 
SFML은 다양한 모듈로 구성되어 있다:
 시스템 – 벡터, 유니코드 문자열 클래스, 포터블 스레드 및 타이머 기능
 창 – 창 및 입력 장치 관리 (조이스틱, OpenGL 컨텍스트 관리 지원 포함)
 그래픽스 – 스프라이트, 다각형, 텍스트 렌더링을 포함한 2차원 그래픽스의 하드웨어 가속
 오디오 – 하드웨어 가속 스페셜 오디오 재생 및 녹음
 네트워크 – TCP 및 UDP 네트워크 소켓, 데이터 캡슐화 기능, HTTP 및 파일 전송 프로토콜 클래스
 언어 바인딩 
SFML은 C++로 작성되어 있으며 C++ 인터페이스를 제공한다. 다른 프로그래밍 언어로 SFML을 사용할 수 있게 해주는 여러 언어 바인딩이 존재한다.

이 표는 2017년 기준으로 SFML을 위해 지원되는 바인딩을 나열한다.
 이름 언어 지원 버전 CSFML1 C 2.3 SFML.Net1 .NET 2.2 CrSFML Crystal 2.4.1 DerelictSFML2 D 2.3 DSFML D 2.1 EuSFML2 Euphoria 2.3.2 csfml-fpc 프리 파스칼 2.4.0 GoSFML2 Go 2.2 Hackage 하스켈 2.3.2 JSFML 자바 2.2 SFML.jl Julia 2.2 nim-csfml 님 2.3 Ocsfml OCaml 2.3 OCaml-SFML OCaml 2.0 PasSFML 파스칼 2.3 pySFML 파이썬 2.3.2 rbSFML 루비 2.3.2 rust-sfml 러스트 2.3
1 공식 바인딩

 같이 보기 
 CreateJS
 OpenGL
 OpenGL 유틸리티 툴킷 (GLUT)
 심플 다이렉트미디어 레이어 (SDL)

 추가 문헌 
 Jan Haller, Henrik Vogelius Hansson, Artur Moreira: SFML Game Development, Packt Publishing, 
 http://www.lifehacker.com.au/2013/02/xna-is-dead-3-alternatives-that-let-you-use-your-c-and-net-skills/
 https://web.archive.org/web/20180417194130/http://www.binpress.com/tutorial/creating-a-city-building-game-with-sfml/137
 http://www.gamefromscratch.com/page/Game-From-Scratch-CPP-Edition-The-Introduction.aspx

 각주 

 외부 링크 



분류:API
분류:오디오 라이브러리
분류:C++ 라이브러리
분류:크로스 플랫폼 소프트웨어
분류:자유 소프트웨어
분류:그래픽 라이브러리
분류:리눅스 API
분류:MacOS API
분류:비디오 게임 개발
분류:윈도우 API
분류:Zlib 라이선스 소프트웨어