2017-01-08 3 views
0

я после урока "Создание игры с Бенс" (https://www.youtube.com/user/makinggameswithben) на OpenGL, и я получаю этуGlew Отсутствующие GL версии C++ с использованием SDL2 2.0.5 и 2.0.0 GLEW

отсутствующего Gl версии

каждый раз, когда я пытаюсь инициализировать glew.
Я повторно установил glew и SDL2 много раз.
Я не понимаю, что я делаю неправильно.

Я использую GLEW 2.0.0 и 2.0.5 SDL2

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(); 
} 
+1

Возможно, если вы расскажете, как вы скомпилируете программу, это поможет выяснить, в чем проблема. – fedepad

ответ

0

Вы, возможно, придется сделать:

glewExperimental = GL_TRUE; 

перед тем

glewInit(); 

Это позволит GLEW использовать функции OpenGL над OpenGL версии 2.0.

Смежные вопросы