Simple and Fast Multimedia Library
Simple and Fast Multimedia Library
|
|
---|---|
Basic data
|
|
developer | Laurent Gomila |
Publishing year | 2007 |
Current version | 2.5.1 |
operating system | Windows , Linux , macOS |
programming language | C ++ |
category | Program library |
License | zlib / libpng |
sfml-dev.org |
Simple and Fast Multimedia Library ( SFML ; German: Simple and Fast Multimedia Library ) is a platform-independent, object-oriented open source multimedia framework that is available under the zlib / libpng license . It is written in C ++ and has internal operating system-specific functions and external libraries. In addition to C ++, it offers connections for the programming languages C , .NET ( C # , VB.NET , ...), Python , Ruby , OCaml , D and Java . SFML was developed with the intention of allowing as user-friendly and efficient multimedia programming as possible on a high level of abstraction, hence the name of the library.
features
SFML is divided into several sub-packages that fulfill different areas of responsibility. The important features include:
- system
- Core of the API
- Window
- Platform-independent creation and management of windows
- OpenGL rendering context to enable drawing in the window
- Event handling and real-time input from mouse, keyboard and joystick
- Graphics
- 2D graphic interface to OpenGL
- Load and save common image file formats (BMP, JPG, PNG, TGA, DDS, PSD)
- Display of sprites on the screen
- Translation, rotation, mirroring, scaling and coloring of drawing objects
- Representation of fonts (TrueType, OpenType, bitmap fonts (FNT) and other formats)
- 2D graphic primitives such as circles, lines, rectangles
- Camera class that enables a dynamic view of a 2D area
- Audio
- Support of sound effects and music
- Load popular formats like OGG, WAV, AIFF and a few more
- Simple interface for audio recordings
- Streaming for large files
- 3D sound
- Network
- Network connection
- Communication via TCP and UDP sockets
- Easy data transfer through stream-based expandable packages
- Classes for HTTP and FTP Internet Protocols
SFML is mainly suitable for games and multimedia applications. Since the framework for graphics uses OpenGL , 3D applications can also be based on SFML. For example, you can have the implementation of windows, events and sounds done by SFML while editing the 3D graphics directly in OpenGL. Depending on the requirements, the desired partial packages can be integrated individually, for example the system package is sufficient for parallel programming.
development
SFML has been actively developed by Laurent Gomila since July 2007. Version 2.0 appeared in April 2013, replacing version 1.6 from April 2010. During the development of SFML 2, fundamental changes were made to the framework and a large number of new features were added. Version 2.1 was released in July 2013, which mainly fixes errors from version 2.0; There were no major API changes.
With the release of version 2.2, support for the mobile platforms Android and iOS was implemented in SFML.
In addition to C ++, there are official connections to C and C # by the developer himself. Additional programming languages are offered through projects by SFML users, and in some cases there are several connections per programming language. Bindings for Java, D, Python, Ruby, OCaml, Go, Nimrod, Euphoria and Rust are actively being developed. The complete list can be found on the sfml-dev.org page under Bindings.
In June 2013 a first book about SFML was published, entitled "SFML Game Development". It explains how to develop a 2D game using the SFML library.
See also
Web links
- Official SFML website (English)
- Bindings
- German SFML portal with forum
- Github project by SFML
- Book "SFML Game Development"