I cannot figure out what is wrong with this code and why i keep getting object.error access violation. the code is simple tutorial code for SDL and OpenGL what am i doing wrong (the access violation seems to be with glGenBuffers)
The Code

import std.stdio;
import derelict.opengl3.gl3;
import derelict.sdl2.sdl;

float vertices[] = [
        0.0f,  0.5f, // Vertex 1 (X, Y)
        0.5f, -0.5f, // Vertex 2 (X, Y)
        -0.5f, -0.5f  // Vertex 3 (X, Y)
];

int main(string args[]){
        DerelictSDL2.load();
        DerelictGL3.load();
        SDL_Init(SDL_INIT_EVERYTHING);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
        SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
        SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION,2 );
SDL_Window* window = SDL_CreateWindow("OpenGL", 100, 100, 800, 600, SDL_WINDOW_OPENGL);
        SDL_GLContext context = SDL_GL_CreateContext(window);
        SDL_Event windowEvent;
        GLuint vbo;
        glGenBuffers(1, &vbo); // Generate 1 buffer
        glBindBuffer(GL_ARRAY_BUFFER, vbo);
glBufferData(GL_ARRAY_BUFFER, (vertices[0]).sizeof * vertices.length, vertices.ptr, GL_STATIC_DRAW);
        while (true)
        {
                if (SDL_PollEvent(&windowEvent))
                {
                        if (windowEvent.type == SDL_QUIT){
                                return 0;
}else if (windowEvent.type == SDL_KEYUP && windowEvent.key.keysym.sym == SDLK_ESCAPE){
                                return 0;
                        }
                        SDL_GL_SwapWindow(window);
                }
        }
        return 0;
}

Reply via email to