簡體   English   中英

SDL + OpenGL:創建緩沖區時發生訪問沖突

[英]SDL + OpenGL: access violation when creating buffer

我正在嘗試使用SDL創建一個窗口,然后使用GLEW和OpenGL繪制到該窗口。

到目前為止,我已經創建了一個窗口,並使用OpenGL對其進行了初始化,但是當我嘗試創建緩沖區時,出現了有線異常。

我的代碼如下所示:

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

int main(int argc, char** argv)
{

    SDL_Window* window;
    SDL_Init(SDL_INIT_EVERYTHING);

    //creating SDL window
    window = SDL_CreateWindow("",100,100,500,400,SDL_WINDOW_OPENGL);

    //setting up opengl
    SDL_GL_CreateContext(window);
    SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
    glClearColor(0.6f, 0.0f, 0.0f, 1.0f);

    //check if glew was initialized properly
    if (glewInit() == GLEW_OK)
        std::cout << "glew ok" << std::endl;
    else
        goto end;

    ////////////////////////////////////////////////I'm Getting The Error Here
    GLuint bufferID;////////////////////////////////
    glCreateBuffers(1,&bufferID);///////////////////
    glDeleteBuffers(1,&bufferID);///////////////////

    SDL_Event sdlEvent;

    //event loop
    while (1)
        while (SDL_PollEvent(&sdlEvent))
            if (sdlEvent.type == SDL_QUIT)
                goto end;

    end:
        SDL_Quit();

    return 0;
}

錯誤: Exception thrown at 0x00000000 in opengl_project.exe: 0xC0000005: Access violation executing location 0x00000000.

問題是opengl已過時(版本4.3),而glCreateBuffers是4.5+版本的功能

如果您遇到類似問題,則可以通過更新圖形驅動程序或僅使用glGenBuffers(1.5+版)來解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM