Simple and Fast Multimedia Library

from Wikipedia, the free encyclopedia
Simple and Fast Multimedia Library

logo
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

Logo up to and including version 1.6

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

Individual evidence

  1. Changelog ( English ) sfml-dev.org. Retrieved October 30, 2019.