bambooflow Note

gl3w

最終更新:

bambooflow

- view
メンバー限定 登録/ログイン

gl3w



gl3wは、OpenGL3/4のcore profileが提供する機能を手に入れるための最も簡単な方法。


以下のサイトから
https://github.com/skaslev/gl3w


ダウンロード


% git clone https://github.com/skaslev/gl3w.git


gl3wをテストする


% cd gl3w
% ./gl3w_gen.py

すると、srcディレクトリにgl3w.cファイルが生成される。

% cd src
% gcc -o test test.c gl3w.c -I../include -lglut

実行する。
% ./test

実行がうまくいくと、ランダム(randf)でチカチカする画面が表示される。

サンプル


#include <stdio.h>
#include <GL3/gl3w.h>
#include <GL/glut.h>
 
// ...
 
int main(int argc, char **argv)
{
        glutInit(&argc, argv);
        glutInitDisplayMode(GLUT_RGBA | GLUT_DEPTH | GLUT_DOUBLE);
        glutInitWindowSize(width, height);
        glutCreateWindow("cookie");
 
        glutReshapeFunc(reshape);
        glutDisplayFunc(display);
        glutKeyboardFunc(keyboard);
        glutSpecialFunc(special);
        glutMouseFunc(mouse);
        glutMotionFunc(motion);
 
        if (gl3wInit()) {
                fprintf(stderr, "failed to initialize OpenGL\n");
                return -1;
        }
        if (!gl3wIsSupported(3, 2)) {
                fprintf(stderr, "OpenGL 3.2 not supported\n");
                return -1;
        }
        printf("OpenGL %s, GLSL %s\n", glGetString(GL_VERSION),
               glGetString(GL_SHADING_LANGUAGE_VERSION));
 
        // ...
 
        glutMainLoop();
        return 0;
}
 


メモ


現状Linuxの環境で動かそうとしたとき、原因不明のSegmentation Fault.が発生した。
原因は、gl3wInit()を呼ぶ前に、glGetString(GL_VERSION)を呼んだことだった。
glewと挙動が異なったため、少しハマってしまった。。

タグ:

OpenGL
記事メニュー
目安箱バナー