2016-12-06 5 views
-5

visual sutdioで最新のOpenGLアプリケーション(いくつかのシェーダー付き)を作成したいと思いますが、視覚的には古いヘッダー "gl.h"しかありません。 GetProcAdress()を使用する別の方法がある場合は、あなたですか?誰かが "glew"のようなlibを知っていますか?しかし、OpenGL 3の関数しかないのですか?ビジュアルスタジオでOpenGL 3アプリケーションを作成するには?

+0

私はこの質問が広すぎると思っています。その間、このチュートリアルを試してください:http://www.learnopengl.com/#!Getting-started/OpenGL –

+0

これは問題ありません。私はグリフとグリフについて混乱しました。私はあなたのコードサンプルをいただきありがとうございますglewが最適だと思うが、私はglfwのような "ウィンドウの管理"とlibをしたくないです –

答えて

1

機能のロードについては、this pageを参照してください。

また、context creationを忘れないでください。

のVisual Studioでそれを設定するため、あなたはおそらくちょうどのOpenGLのlibファイルにリンクする必要があるだろうと(Windows用、.soはLinux用のOPENGL32.DLL、など...)

このスニペットは役に立つかもしれません(とら最初のリンク)から:それは、このようなGLFWやSDLなどのラッパーなしでOpenGLを使用することが可能である

void *GetAnyGLFuncAddress(const char *name) 
{ 
    void *p = (void *)wglGetProcAddress(name); 
    if(p == 0 || 
     (p == (void*)0x1) || (p == (void*)0x2) || (p == (void*)0x3) || 
     (p == (void*)-1)) 
    { 
     HMODULE module = LoadLibraryA("opengl32.dll"); 
     p = (void *)GetProcAddress(module, name); 
    } 

    return p; 
} 

が、強く、そのような人々の一つとして、既存のラッパーを使用することをお勧めします。ほとんどの場合、実装はプラットフォーム固有であるため、これらのラッパーは処理しません(異なるプラットフォームでは異なるアルゴリズムが必要になります)。また、GL定数(GL_TRUE、GL_FALSE、GL_TEXTURE_2Dなど)の便利な省略形も提供します。

+0

私は、ポインタが0x1または0x2または0x3または-1と等しいことを確認する必要があることを知らなかった –

関連する問題