2014年12月10日水曜日

4.GLUT サンプルプログラム

出来上がった freeglut と glew を使って 簡単なプログラムを実行します。


サンプルプログラムを用意します。

#include <gl/glut.h>
//----------------------------------------------------
void Initialize(void){
    glClearColor(1.0, 1.0, 1.0, 1.0); //背景色
    glEnable(GL_DEPTH_TEST);//デプスバッファを使用
    glutInitDisplayMode() で GLUT_DEPTH を指定する
}
//----------------------------------------------------
void Display(void) {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //バッファの消去
    glutSwapBuffers(); //glutInitDisplayMode(GLUT_DOUBLE)でダブルバッファリングを利用可
}
//----------------------------------------------------
void Idle(void)
{
};
//----------------------------------------------------
int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitWindowPosition( 50 , 50 );// ウィンドウの位置 左上からの座標
    glutInitWindowSize( 640 , 480 ); // ウィンドウサイズ
    glutInitDisplayMode(GLUT_RGBA | GLUT_DEPTH | GLUT_DOUBLE);// ディスプレイモード
    glutCreateWindow("サンプル0");  // ウィンドウ作成
    glutDisplayFunc(Display); // 描画コールバック関数の登録
    glutIdleFunc(Idle);       // 待機時コールバック関数の登録
    Initialize(); // 初期設定
    glutMainLoop(); //ここからglutに渡す
    return 0;
}

1.freeglut/include/ の下の gl/glut.h をインクルードする。下記のいずれかの方法をとります。
1.1.上記glut.hを”C:\Program Files (x86)\Windows Kits\8.1\Include/um/gl/”に入れる。
1.2.freeglutのパスを 構成プロパティ→VC++ディレクトリのインクルードディレクトリ に追加。(おすすめ)


2.freeglut.lib と glew32.lib をリンクします。下記のいずれかの方法をとります。
2.1.プロジェクト→プロパティから、構成プロパティ→リンカー→入力の、追加の依存ファイルに追加
     構成プロパティ→VC++ディレクトリのライブラリディレクトリに上記libのパスを設定
2.2.上記libを”C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86”に入れる。
     (windows汚れる)
2.3.#pragmaをソースの最初に書いておく。(おすすめ)
    上記ソースの#include<gl/glut.hの前に>


実行するとエラーが出る。

3.freeglut.dllとglew32.dllをリンクできるようにする。下記のいずれかの方法をとります。
3.1.上記dllをC:/Windows/System32/に放り込む。
3.2.プロジェクトの実行ファイルのディレクトリに上記dllを放り込む。(おすすめ)



窓が出たぜ!

今日はここまで。
よく見たら、OpenGL使ってないのでglew32.lib、glew32.dllはこの場合は要らないね。使う場合はglew.hもインクルードしなければいけないね。

0 件のコメント:

コメントを投稿