2016-07-26 15 views
1

C++ OpenGLラッパーライブラリoglplusでOpenGLを使用してC++プログラムを作成したいが、特定のoglplusオブジェクトを宣言したときにoglplusを使用してプログラムを実行できない:: MissingFunction例外が常にスローされます。重要なoglplusオブジェクトを宣言すると例外がスローされるoglplus :: MissingFunction

私のOSはarchlinuxです。

私のプログラムはコンパイルされますが、実行されません。たとえば:

#include <cassert> 
#include <iostream> 

#include <GL/glew.h> 
#include <GL/glut.h> 

#include <oglplus/all.hpp> 

int main() 
{ 
    oglplus::VertexShader vs; 
    return 0; 
} 

このプログラムはコンパイルが、私はそれを実行すると、oglplus :: MissingFunction例外がスローされます。

私のプログラムはコンパイルされているので、これは必要なパッケージがインストールされており、正しいライブラリがリンクされていると思います。なぜ例外がスローされているのか分かりません。例外の説明では、スローされると、OpenGL関数を呼び出すために使用されるいくつかのポインタが初期化されていないことを意味します。

私は種類のオブジェクトを宣言するときMissingFunctionがスローされoglplus ::これまでのところ私は観察されました:

  • oglplus :: VertexShader
  • oglplus :: FragmentShader
  • oglplus ::プログラム
  • をoglplus ::プログラム
  • oglplus :: VertexArray
  • oglplus ::バッファ

この問題の解決方法についてのご意見はありますか?

答えて

2

OpenGLリソースを使用する前に、OpenGLコンテキストを作成する必要があります。この例では、GLUTを使用してコンテキストを設定する方法を示しています

基本的に

https://github.com/matus-chochlik/oglplus/blob/develop/example/standalone/001_hello_glut_glew.cpp

、あなたはこの部品が必要です。

#include <iostream> 

#include <GL/glew.h> 
#include <GL/glut.h> 

#include <oglplus/all.hpp> 

int main(int argc, char* argv[]) 
{ 
    glutInit(&argc, argv); 
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA); 

    GLint width = 800; 
    GLint height = 150; 

    glutInitWindowSize(width, height); 
    glutInitWindowPosition(100,100); 
    glutCreateWindow("OGLplus+GLUT+GLEW"); 

    if(glewInit() == GLEW_OK) try 
    { 
     // Your code goes here. 

     return 0; 
    } 
    catch(oglplus::Error& err) 
    { 
     std::cerr << "OGLPlus error." << std::endl; 
    } 

    return 1; 
} 
関連する問題