1
Graphique / Afficher sf::Text avec OpenGL
« le: Mai 07, 2018, 10:04:06 pm »
Bonsoir,
J'ai des soucis pour afficher du texte avec SFML en même temps qu'OpenGL. J'ai réalisé un test simple qui ne fonctionne pas non plus, voici le code :
#include <iostream>
#include <SFML/Graphics/RenderWindow.hpp>
#include <SFML/Window/Event.hpp>
#include <SFML/Graphics/Text.hpp>
#include <GL/glew.h>
int main(int argc, const char * argv[]) {
sf::ContextSettings settings;
settings.depthBits = 24;
settings.majorVersion = 4;
settings.minorVersion = 1;
settings.attributeFlags = sf::ContextSettings::Core;
sf::RenderWindow window(sf::VideoMode(2560, 1440),
"Tests OpenGL",
sf::Style::Default,
settings);
window.setActive(true);
// Init GLEW
GLenum error = glewInit();
if (error != GLEW_OK) {
std::cout << "Failed to initialize GLEW : " << glewGetErrorString(error) << std::endl;
exit(-1);
}
glViewport(0, 0, 2560, 1440);
glEnable(GL_DEPTH_TEST);
sf::Event event;
while (window.isOpen()) {
while (window.pollEvent(event)) {
if (event.type == sf::Event::Closed) {
window.close();
}
}
window.pushGLStates();
sf::Font font;
sf::Text text;
if (font.loadFromFile("./data/font/arial.ttf")) {
text.setFont(font);
text.setCharacterSize(25);
text.move(10, 10);
text.setString("fps");
text.setFillColor(sf::Color::White);
window.draw(text);
} else {
std::cout << "Failed to load font for fps counter" << std::endl;
}
window.popGLStates();
window.display();
}
return 0;
}
J'ai essayé en ne n'utilisant pas OpenGL et cela fonctionne.
J'ai aussi ce message d'erreur : "Unable to create the context. Retrying without shared context." lors du lancement de mon application.
Malgré des recherches su internet, je n'ai pas trouvé de solutions.
Je travaille sous macOS High Sierra avec la version 2.4.1 de la SFML et GLEW 2.1.
Y-a t'il moyen de résoudre cette erreur ?
Merci d'avance
J'ai des soucis pour afficher du texte avec SFML en même temps qu'OpenGL. J'ai réalisé un test simple qui ne fonctionne pas non plus, voici le code :
#include <iostream>
#include <SFML/Graphics/RenderWindow.hpp>
#include <SFML/Window/Event.hpp>
#include <SFML/Graphics/Text.hpp>
#include <GL/glew.h>
int main(int argc, const char * argv[]) {
sf::ContextSettings settings;
settings.depthBits = 24;
settings.majorVersion = 4;
settings.minorVersion = 1;
settings.attributeFlags = sf::ContextSettings::Core;
sf::RenderWindow window(sf::VideoMode(2560, 1440),
"Tests OpenGL",
sf::Style::Default,
settings);
window.setActive(true);
// Init GLEW
GLenum error = glewInit();
if (error != GLEW_OK) {
std::cout << "Failed to initialize GLEW : " << glewGetErrorString(error) << std::endl;
exit(-1);
}
glViewport(0, 0, 2560, 1440);
glEnable(GL_DEPTH_TEST);
sf::Event event;
while (window.isOpen()) {
while (window.pollEvent(event)) {
if (event.type == sf::Event::Closed) {
window.close();
}
}
window.pushGLStates();
sf::Font font;
sf::Text text;
if (font.loadFromFile("./data/font/arial.ttf")) {
text.setFont(font);
text.setCharacterSize(25);
text.move(10, 10);
text.setString("fps");
text.setFillColor(sf::Color::White);
window.draw(text);
} else {
std::cout << "Failed to load font for fps counter" << std::endl;
}
window.popGLStates();
window.display();
}
return 0;
}
J'ai essayé en ne n'utilisant pas OpenGL et cela fonctionne.
J'ai aussi ce message d'erreur : "Unable to create the context. Retrying without shared context." lors du lancement de mon application.
Malgré des recherches su internet, je n'ai pas trouvé de solutions.
Je travaille sous macOS High Sierra avec la version 2.4.1 de la SFML et GLEW 2.1.
Y-a t'il moyen de résoudre cette erreur ?
Merci d'avance