最終更新: mikk_ni3_92 2009年11月01日(日) 16:37:05履歴
現在地 >> メニュー >> GLUI >> GLUI::02 >> GLUI::02::まとめ2
#include <gl/glut.h> #include <gl/glui.h> //----------- 各種外部変数 ---------------// int glutWinId;//ウィンドウID //回転行列 float rotary[16] = { 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 }; //---------------- 各種コールバック ----------------------// void idle() { glutSetWindow(glutWinId); glutPostRedisplay(); } //ディスプレイのコールバック void display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); gluLookAt(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); glColor3f(0,1,0); glPushMatrix(); glMultMatrixf( rotary ); glutWireTeapot(1); glPopMatrix(); glutSwapBuffers(); } void reshape(int w, int h) { glViewport(0, 0, w, h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(30.0, (double)w / (double)h, 1.0, 100.0); glMatrixMode(GL_MODELVIEW); } //------------- OpenGLの初期設定 ------------------// void GLUT_INIT() { glutInitDisplayMode(GLUT_RGBA| GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowSize(640,480); glutWinId = glutCreateWindow("GLUT And GLUI"); } void GLUT_CALL_FUNC() { glutDisplayFunc(display); glutReshapeFunc(reshape); } void MY_INIT() { glClearColor(1.0, 1.0, 1.0, 1.0); glEnable(GL_DEPTH_TEST);//ZバッファON } //--------- GLUTの初期設定 -----------// void GLUT_INITs(int *argcp, char **argv) { glutInit(argcp,argv); GLUT_INIT(); GLUT_CALL_FUNC(); MY_INIT(); } int main(int argc, char *argv[]) { GLUT_INITs(&argc, argv); //GLUIの初期設定 GLUI *glui = GLUI_Master.create_glui("GLUI Window"); glui->add_statictext( "Simple GLUI Example" ); //テキスト GLUI_Rotation *view_rot = new GLUI_Rotation(glui,"rot",rotary); view_rot->set_spin( 0.99 ); view_rot->set_h(200); view_rot->set_w(200); glui->set_main_gfx_window(glutWinId); GLUI_Master.set_glutIdleFunc( idle ); glutMainLoop(); return 0; }