我正在关注OpenGL上的“使用Bens制作游戏”教程(https://www.youtube.com/user/makinggameswithben),我得到了这个
缺少gl版
每次我尝试初始化glew。
我已经多次重新安装了glew和SDL2
我不明白我做错了什么。
我正在使用glew 2.0.0和SDL2 2.0.5
headerfile:
#pragma once
#include <string>
#include <vector>
//Graphics
#include <SDL2\SDL.h>
#include <GL\glew.h>
class Display
{
public://functions:
Display(int m_width, int m_heigth, const char title []);
void update();
~Display();
private:
public://variables:
std::vector<char> error;
int width;
int heigth;
private:
//Window pointer
SDL_Window * m_window;
};
.cpp文件:
#include "Display.h"
Display::Display(int m_width, int m_heigth, const char title[])
{
m_window = nullptr;
width = m_width;
heigth = m_heigth;
//Initialize SDL
SDL_Init(SDL_INIT_EVERYTHING);
m_window = SDL_CreateWindow(title, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, m_width, m_heigth, SDL_WINDOW_OPENGL);
//error 1:
if (m_window = nullptr) {
error.push_back(255);
}
//error 2:
SDL_GLContext glContext = SDL_GL_CreateContext(m_window);
if (glContext = nullptr) {
error.push_back(254);
}
const GLenum GLerror = glewInit();
//error 3:
if (GLerror != GLEW_OK) {
error.push_back(GLerror);
}
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
glClearColor(0.0f, 0.0f, 1.0f, 1.0f);
}
void Display::update()
{
glClearDepth(1.0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
SDL_GL_SwapWindow(m_window);
}
Display::~Display()
{
delete m_window;
SDL_Quit();
}
答案 0 :(得分:0)
您可能需要这样做:
glewExperimental = GL_TRUE;
之前
glewInit();
这将允许GLEW使用OpenGL 2.0版以上的OpenGL功能。