SFML
SFML stands for Simple and Fast Multimedia Library. This is a framework written in C++ and is based on OpenGL for its graphical rendering part. This name describes its aim pretty well, that is, to have a user-friendly interface (API), to deliver high performance, and to be as portable as possible. The SFML library is divided into five modules, which are compiled in a separated file:
- System: This is the main module, and is required by all others. It provides clocks, threads, and two or three dimensions with all their logics (mathematics operations).
- Window: This module allows the application to interact with the user by managing windows and the inputs from the mouse, keyboard, and joystick.
- Graphics: This module allows the user to use all the graphical basic elements such as textures, shapes, texts, colors, shaders, and more.
- Audio: This module allows the user to use some sound. Thanks to this, we will be able to play some themes, music, and sounds.
- Network: This module manages not only socket and type safe transfers but also HTTP and FTP protocols. It's also very useful to communicate between different programs.
Each module used by our programs will need to be linked to them at compile time. We don't need to link them all if it's not necessary. This book will cover each module, but not all the SFML classes. I recommend you take a look at the SFML documentation at http://www.sfml-dev.org/documentation.php, as it's very interesting and complete. Every module and class is well described in different sections.
Now that the main technologies have been presented, let's install all that we need to use them.