2016-09-06 8 views
-1

У меня возникла странная проблема с opengl в visualstudio, где каждая функция opengl указывает на NULL, если я создаю программу в режиме деблокирования.Сбой приложения SDL OpenGL в режиме освобождения

я попробовал Glew и не gl3w ни один из них работают

Glew/gl3w инициализируется после того, как контекст создается и в режиме отладки он работает нормально

настройки проекта являются по умолчанию я только включены включают папки и соответствующие папки lib

У кого-нибудь была знакомая проблема?

#include<SDL.h> 
#include<GL\glew.h> 
#include<assert.h> 

int main(int argc, char* args[]) 
{ 
    SDL_Init(SDL_INIT_VIDEO); 

    SDL_Window *window; 
    SDL_GLContext context; 

    SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 4); 
    SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0); 
    SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); 
    SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); 
    SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24); 

    window = SDL_CreateWindow("Test", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 1280, 720, SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN); 
    context = SDL_GL_CreateContext(window); 
    SDL_GL_MakeCurrent(window, context); 
    glewExperimental = GL_TRUE; 
    assert(!glewInit()); 

    GLuint id; 
    glGenVertexArrays(1, &id); 

    SDL_Quit(); 
    return 0; 
} 
+0

спасибо за downvoting на моем посте очень полезно, btw im new – Creysys

+0

Прошу вас предоставить дополнительную информацию - как вы загружаете GLEW/GL3W, какие у вас настройки проекта и т. Д. Если что-то работает в выпуске, но не отлаживает это либо означает, что вы получаете некоторое неопределенное поведение, или ваши настройки проекта настроены неправильно. – HexCoder

+0

Я использую параметры проекта по умолчанию, кроме дополнительных включает/libs – Creysys

ответ

2
assert(!glewInit()); 

Это не собирается компилируются в режиме выпуска. Таким образом, glewInit() никогда не будет называться, а glGenVertexArrays() останется NULL.

Вызов указателя функции NULL обычно не будет работать.

+0

спасибо, теперь я чувствую себя идиотом, проверяя каждый вариант компилятора ^^ – Creysys

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