Ошибка сегментации glGenTextures?

Так вот в чем проблема: когда я вызываю glGenTextures, я получаю ошибку сегментации.

Я нахожусь на Linux, и вот код, который я в настоящее время использую, чтобы исследовать это:

#include <iostream>
#include <SDL/SDL.h>
#include <GL/gl.h>
#include <GL/glu.h>

int main(int argc, char *argv[])
{
    GLuint texture;
    glGenTextures( 1, &texture );
    return texture;
}

Кажется достаточно простым, верно? Ну, я проследил segfault с помощью GDB (инструмент отладки GNU), и это происходит, когда я вызываю glGenTextures (), в файле /usr/lib/mesa/libGL.so.1.

Это код openGL моего видео драйвера...

Есть идеи?

2 ответа

Решение

Код, как показано, ничего не сделал для установки допустимого контекста OpenGL, поэтому он не может использовать OpenGL.

Как это сделать, зависит от платформы. Если вы не хотите копаться в способах вашей целевой платформы, вы можете использовать что-то вроде GLFW, чтобы сделать это довольно переносимо, но, конечно, это добавляет зависимость.

Как сказал пользователь "unwind", вам нужно инициировать свой контекст OpenGL. Вы можете сделать это без 3Dparty libs - проверьте этот пример NeHe: http://nehe.gamedev.net/tutorial/texture_mapping/12038/

Надеюсь это поможет.

Другие вопросы по тегам