☕ Nesse vídeo mostramos todas as novidades do SFML 3 bem como instalar e utilizar no Windows e no Ubuntu.
#include <SFML/Graphics.hpp>
int main(){
sf::RenderWindow window(sf::VideoMode({800, 450}, 24), "SFML 3.0");
while(window.isOpen()){
while(const std::optional event = window.pollEvent()){
if(event->is<sf::Event::Closed>()){
window.close();
}else if (const auto* keyPressed = event->getIf<sf::Event::KeyPressed>()){
if(keyPressed->scancode == sf::Keyboard::Scancode::Escape)
window.close();
}
}
window.clear(sf::Color::Red);
window.display();
}
}
Compilar:
g++ -std=c++20 -DSFML_STATIC -I SFML-3.0.0/include -L SFML-3.0.0/lib main-sfml3.cpp -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lX11 -lXrandr -lXcursor -lXrender -lXext -lGL -lfreetype -ludev -lpthread -ldl -lm -lXi
Dependências caso você queira compilar da fonte: em distros GNU/Linux
Exemplo no Arch
sudo pacman -S \
freetype2 \
libx11 \
libxrandr \
libxcursor \
libxi \
libudev \
mesa \
flac \
libvorbis \
libogg \
openal \
glew \
pthreads
Em outras distros procure nomes de pacotes similares, no Ubuntu mesmo geralmente só possui o -dev no final do nome do pacote.
pkg-config
Include:
cd SFML-3.0.0
sudo mv SFML /usr/local/include/SFML3
sfml3.pc
prefix=/usr/local/include/SFML3
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: sfml3
Description: SFML 3 static
Version: 3.0.0
Cflags: -I${includedir} -DSFML_STATIC
Libs: -L${libdir} -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lX11 -lXrandr -lXcursor -lXrender -lXext -lGL -lfreetype -ludev -lpthread -ldl -lm -lXi
Compilar:
g++ -std=c++20 main.cpp $(pkg-config --cflags --libs sfml3)
LSP:
-I/usr/local/include/SFML3/include