Après avoir exécuté plusieurs tests sur le code, j'ai déterminé que GLFW et GLEW sont initialisés avec succès encore quand j'essaie de créer un objet GLFWwindow*
à utiliser avec les fonctions GLFW, la fonction glfwCreateWindow()
renvoie un nullptr
. Pourquoi est-ce et comment puis-je le réparer? Voici mon code:Impossible de créer GLFWwindow en C++ - glfwCreateWindow renvoie nullptr?
#include <iostream>
#define GLEW_STATIC
#include <GL/glew.h>
#include <GLFW/glfw3.h>
const GLuint windowWidth = 500, windowHeight = 500;
int main()
{
glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);
GLFWwindow* window = glfwCreateWindow(windowWidth, windowHeight, "Learn OpenGL", nullptr, nullptr);
if (window == nullptr) {
std::cout << "Failed to create GLFW window!" << std::endl;
char myvar1; std::cin >> myvar1;
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);
glewExperimental = GL_TRUE;
if (glewInit() != GL_TRUE) {
std::cout << "Failed to initialize GLEW" << std::endl;
char myvar2; std::cin >> myvar2;
return -1;
}
glViewport(0, 0, windowWidth, windowHeight);
while (!glfwWindowShouldClose(window)) {
glfwPollEvents();
glfwSwapBuffers(window);
}
glfwTerminate();
return 0;
}
Les documents indiquent "Windows: la création de fenêtre échouera si l'implémentation OpenGL du logiciel Microsoft GDI est la seule disponible." Quelle carte vidéo utilisez-vous, disposez-vous du dernier pilote et exécutez-vous le bureau à distance ou la session de console? –
Utilisation de graphiques embarqués d'un Celeron de 1,9 GHz. Je vais essayer de mettre à jour les pilotes. –
Utilisez OpenGL Extensions Viewer pour confirmer que votre GPU prend en charge 3.3. Je courais dans le même problème, il s'avère que l'émulation GPU de Parallels va seulement jusqu'à 3.2, mais c'est ce que j'ai pour essayer de faire des graphiques sur une machine virtuelle. –