最近OpenGLで描画するものを作る事が結構増えてきたのですが、割とプリミティブな形状を描画するばかりでした。
だけどこのままじゃだめで、もっと深く突っ込みたくなったので基礎から始める事にしました。
今回はMac上(Mac OS X 10.6 Snow Leopard)でglutを使って開発する時のひな形となるものを残しておきます。
#include
#include
void init(void)
{
// 領域の色をクリアする
glClearColor(0.0, 0.0, 0.0, 0.0);
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
// 描画の処理を書く
// バッファをクリアして実際に描画させる
glFlush();
}
void keyboard(unsigned char key, int x, int y)
{
// キー操作時の処理を書く
// 再描画
glutPostRedisplay();
}
void reshape(int w, int h)
{
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
// glOrthoなどを使ってリサイズ設定をする
.
.
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
int main (int argc, const char * argv[])
{
// GLUTを初期化
glutInit(&argc, (char**)argv);
//
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GLUT_DEPTH);
// ウィンドウ位置、ウィンドウサイズを設定
glutInitWindowPosition(0, 0); glutInitWindowSize(640, 480);
// windowを作成
int mwin = glutCreateWindow("window");
init();
// 描画ループにおいて呼ばれる
glutDisplayFunc(display);
// ウィンドウサイズ・描画領域のサイズ変更時に呼ばれる
glutReshapeFunc(reshape);
// キー操作を扱う
glutKeyboardFunc(keyboard);
// 描画ループを開始する
glutMainLoop();
return 0;
}