Simple and Fast Multimedia Library | ||
---|---|---|
Información general | ||
Tipo de programa | interfaz de programación de aplicaciones | |
Autor | Laurent Gomila y otros | |
Desarrollador | SFML Team | |
Modelo de desarrollo | Repositorio de software | |
Lanzamiento inicial | 9 de agosto de 2007 | |
Licencia | Licencia Zlib | |
Estado actual | En desarrollo | |
Información técnica | ||
Programado en | C++ | |
Versiones | ||
Última versión estable | 2.6.0 ( 20 de junio de 2023) | |
Enlaces | ||
Simple and Fast Multimedia Library (SFML) es una biblioteca de desarrollo de software multiplataforma diseñada para proveer una simple interfaz de programación para diversos elementos multimedia en computadoras. Está escrita en C++, con versiones homólogas disponibles en Ada, C, Crystal, D, Euphoria, Go, Java, Julia, .NET, Nim, OCaml, Python, Ruby y Rust.[3] Se han desarrollado versiones experimentales para Android y iOS con el lanzamiento de SFML 2.2.[4]
SFML maneja la creación e interacción con ventanas y contextos de OpenGL. También provee un módulo de gráficos que proporciona aceleración por hardware básica de gráficos en 2D, incluyendo renderizado de texto con FreeType; así como un módulo de audio que utiliza OpenAL y un módulo de red para comunicación básica con protocolos TCP y UDP.
SFML es software libre y de código abierto, provisto bajo los términos de la licencia zlib/png. Está disponible para Linux, MacOS, Windows y FreeBSD.[5][6] La primera versión v1.0 fue lanzada el 9 de agosto de 2007 y la última versión v2.6.0 fue lanzada el 20 de junio de 2023.[7]
Arquitectura del software
Módulos
SFML está compuesta por varios módulos:
- System: Clases de vectores y cadenas de texto Unicode, así como facilidades para el uso de temporizadores e hilos multiplataforma.
- Window: Manejo de ventanas y periféricos de entrada, incluyendo soporte para palancas de mando y manejo de contextos de OpenGL.
- Graphics: Aceleración por hardware de gráficos en 2D, incluyendo sprites, polígonos y renderizado de texto.
- Audio: Reproducción y grabación de audio espacial aceleradas por hardware.
- Network: Sockets de Internet TCP y UDP, facilidades para encapsulación de datos, así como clases HTTP y FTP.
Si bien el módulo de gráficos es una de las principales características de SFML, se puede programar directamente en un entorno OpenGL utilizando el módulo Window por sí solo sin la necesidad del módulo de gráficos. Asimismo, los demás módulos pueden ser utilizados de forma independiente, con la excepción del módulo System, del cual dependen todos los módulos.[8]
Versiones homólogas
SFML está escrito en C++ y provee una interfaz a C++ (así como una interfaz oficial a C a través de CSFML). Existen muchas otras interfaces que permiten el uso de SFML en otros lenguajes de programación.[4]
En la tabla a continuación se muestran las interfaces disponibles para SFML en 2023.
Lenguaje | Nombre | Versión de SFML |
---|---|---|
Ada | ASFML | 2.4 - 2.6 |
Beef | BeefSFML | 2.5 |
C | CSFML ¹ | 2.5 |
.Net (C#, VB.Net...) | SFML.Net ¹ | 2.5 |
Crystal | CrSFML | 2.3 - 2.6 |
D | bindbc-sfml | 2.0 - 2.5 |
D | DSFML | 2.1 |
Euphoria | EuSFML2 | 2.4 |
FPC | csfml-fpc | 2.5 |
Go | go-sfml | 2.5.1 |
Haskell | SFML-haskell | 2.3 |
Java | JSFML | 2.2 |
Julia | SFML.jl | 2.2 |
mruby | mruby-sfml | 2.4 |
Nim | nim-csfml | 2.3 |
Node.js | sfml.js | 2.5.1 |
OCaml | ocaml-sfml | 2.5.1 |
Pascal | PasSFML | 2.4 |
Plutonium | pltSFML | 2.5 |
Nelua | csfml-nelua | 2.5.1 |
Python | pySFML | 2.3.2 |
Ruby | rbSFML | 2.3.2 |
Rust | RSFML | 2.5.1 |
Zig | zig-sfml-wrapper | 2.5.1 |
¹ interfaces oficiales
Extensiones no oficiales
SFML proporciona funciones básicas por las cuales software de más alto nivel puede ser desarrollado. Existen librerías no oficiales que proveen soporte para interfaces gráficas de usuario,[9][10] iluminación 2D,[11] sistemas de partículas y animación,[12] reproducción de video[13] y teselaje.[14]
Recepción y adopción
SFML es utilizada principalmente por desarrolladores de videojuegos aficionados, pequeños desarrolladores de videojuegos independientes y empresas emergentes que consistan de pocos desarrolladores. Como SFML no requiere escribir grandes cantidades de código, ha sido utilizada por muchos participantes de la Ludum Dare.[15] La comunidad de SFMl es relativamente pequeña comparada con librerías más antiguas como Simple DirectMedia Layer (SDL) y Allegro, aunque mantiene un crecimiento sostenido. Al día 12 de agosto de 2023, su repositorio de GitHub ha sido marcado con una estrella por más de 8900 usuarios.[16]
SFML ha sido utilizada como recurso educativo en universidades y en proyectos científicos.[17][18][19][20][21]
Véase también
- Allegro
- DirectX
- GLFW
- OpenGL
- OpenGL Utility Toolkit (GLUT)
- Pygame
- Raylib
- Simple DirectMedia Layer (SDL)
Referencias
- ↑ «License».
- ↑ https://github.com/SFML/SFML/blob/master/license.txt
- ↑ «Bindings (SFML / Download)». www.sfml-dev.org. Consultado el 12 de agosto de 2023.
- ↑ a b «Changelog (SFML / Development)». www.sfml-dev.org. Consultado el 12 de agosto de 2023.
- ↑ «SFML 2.1 (SFML / Download)». www.sfml-dev.org. Consultado el 12 de agosto de 2023.
- ↑ «SFML/cmake/Config.cmake at f24ca9a84012531cf886f72354c1f88341dd7ac7 · SFML/SFML». GitHub (en inglés). Consultado el 12 de agosto de 2023.
- ↑ «Release SFML 2.6.0 · SFML/SFML». GitHub (en inglés). Consultado el 12 de agosto de 2023.
- ↑ «Frequently Asked Questions (SFML / Learn)». www.sfml-dev.org. Consultado el 12 de agosto de 2023.
- ↑ «SFGUI». Archivado desde el original el 17 de febrero de 2020. Consultado el 13 de noviembre de 2014.
- ↑ «TGUI: Texus' Graphical User Interface». tgui.eu. Consultado el 12 de agosto de 2023.
- ↑ Hovatter, Zack (21 de diciembre de 2022), Let There Be Light, consultado el 12 de agosto de 2023.
- ↑ «Bromeon :: Thor». bromeon.ch. Consultado el 12 de agosto de 2023.
- ↑ «sfeMovie». sfemovie.yalir.org. Consultado el 12 de agosto de 2023.
- ↑ «Tiled SFML Map Loader». SourceForge (en inglés). 13 de junio de 2016. Consultado el 12 de agosto de 2023.
- ↑ «sfml | Ludum Dare». web.archive.org. 3 de noviembre de 2017. Archivado desde el original el 3 de noviembre de 2017. Consultado el 12 de agosto de 2023.
- ↑ SFML — Simple and Fast Multimedia Library, Simple and Fast Multimedia Library, 12 de agosto de 2023, consultado el 12 de agosto de 2023.
- ↑ «SFML Setup». web.archive.org. 25 de marzo de 2018. Archivado desde el original el 25 de marzo de 2018. Consultado el 12 de agosto de 2023.
- ↑ «CSCI 261/HW05». web.archive.org. 18 de mayo de 2016. Archivado desde el original el 18 de mayo de 2016. Consultado el 12 de agosto de 2023.
- ↑ «COMPSCI 464: Computer Graphics». web.archive.org. 13 de abril de 2022. Archivado desde el original el 13 de noviembre de 2014. Consultado el 12 de agosto de 2023.
- ↑ «Engaging Computing Group | Comp4spr14 / PS5b». www.cs.uml.edu. Consultado el 12 de agosto de 2023.
- ↑ «Tianyu Cheng's Homepage». web.archive.org. 11 de abril de 2015. Archivado desde el original el 11 de abril de 2015. Consultado el 12 de agosto de 2023.