強火で進め

このブログではプログラム関連の記事を中心に書いてます。

OpenGL(GLUT)向けのUIライブラリ「GLUI」をMacで使う


Windowsなどで有ればこちらからからDLすれば良さそうですが

GLUI User Interface Library
http://glui.sourceforge.net/

GLUI User Interface Library
http://glui.sourceforge.net/#download

Mac向けにはこちらのものがFramework化されていて使いやすそうなので今回はこちらを使用しました。

GLUI 2.35 Framework for Mac OS X : Luke Cyca Dot Calm
http://lukecyca.com/2008/glui-235-framework-for-mac-os-x.html

取り敢えず、Hello World的なプログラムで動作テストをしようとこちらのサンプルプログラムでテストしました。

glui : OpenGL / glut 用簡易ウィジェット
http://www-sens.sys.es.osaka-u.ac.jp/wakate/tutorial/group3/glui/glui4.html

FrameworkフォルダからGLUTとGLUIを追加し、プログラムを一部Macの環境向けに変更して最終的には以下の様にしました。なおGLUIはC++で書かれてるみたいなのでファイルの拡張子は .c では無く、 .cpp にしておく必要が有ります。

#include <stdio.h>
#include <math.h>
#include <glut/glut.h>
#include <GLUI/GLUI.h>

float rotate[16] = {
	1,0,0,0,
	0,1,0,0,
	0,0,1,0,
	0,0,0,1
};

void display(void) {
	glClear(GL_COLOR_BUFFER_BIT);
	
	glPushMatrix();
	glMultMatrixf( rotate );
	
	glutWireTeapot(0.5);
	
	glPopMatrix();
	
	glutSwapBuffers();
	glutPostRedisplay();
}

void gluiCallback(int num) {
	exit(0);
}

int main(int argc, char *argv[]) {
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);
	glutCreateWindow(argv[0]);
	glutDisplayFunc(display);
	glClearColor(0.0, 0.0, 1.0, 0.0);
	
	GLUI *glui = GLUI_Master.create_glui("control");
	
	glui->add_rotation("Rotation",rotate);
	glui->add_button("Exit", 0, gluiCallback);
	
	glutMainLoop();
	return 0;
}

あまり必要無い気もしますがこのソースをこちらに置いておきます。