5

したがって、ここに問題があります。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;
}

簡単そうですね。さて、私はGDB(GNUデバッグツール)でセグメンテーション違反を追跡しました。これは、ファイル/usr/lib/mesa/libGL.so.1でglGenTextures()を呼び出すと発生します。

それは私のビデオドライバーのopenGLコードです...

何か案は?

4

2 に答える 2

10

示されているコードは、有効なOpenGLコンテキストを設定するために何もしていないため、OpenGLを使用できません。

これを行う方法は、プラットフォームによって異なります。ターゲットプラットフォームのこれを行う方法を掘り下げたくない場合は、GLFWのようなものを使用してかなり移植性を高めることができますが、もちろんそれは依存関係を追加します。

于 2012-11-02T12:05:49.780 に答える
1

ユーザーが「アンワインド」と言うように、OpenGLコンテキストを初期化する必要があります。ただし、3Dpartyライブラリがなくても実行できます-このNeHeの例を確認してください:http://nehe.gamedev.net/tutorial/texture_mapping/12038/

お役に立てれば。

于 2012-11-02T12:14:59.653 に答える