GLAUX から OpenGL の使用例。

必要なファイル
ここから、glaux.libとglaux.dllを取得。glaux.hがInclude/Glディレクトリにない場合は、ここから取得。
glaux.libはC:\borland\bcc55\Lib\PSDKに配置。glaux.dllはC:\borland\bcc55\Binに配置。glaux.hはC:\borland\bcc55\Include\Glに配置。
参考サイト
OpenGL Win32 Tutorial
OpenGL (3D グラフィックス)
Visual C TechTips
http://64.233.179.104/search?q=cache:wMA0FX_fN2UJ:miso.ice.ous.ac.jp/~oka/opengl/section05.html+AUX_DOUBLE&hl=ja&gl=jp&ct=clnk&cd=1&lr=lang_ja&client=firefox
ソースコード

-main.h

#include <windows.h>
#include <Gl/gl.h>
#include <Gl/glu.h>
#include <Gl/glaux.h>

#define SCREEN_WIDTH 640
#define SCREEN_HEIGHT 480
#define WINDOW_TITLE "OpenGL with GLAUX."

-main.cpp

#include "main.h"
#include "CGlUtil.h"

int main(int argc, char ** argv) {
	CGlUtil *glUtil = new CGlUtil();
	glUtil->GlMainProc();
	delete glUtil;
	return 0;
}

-CGlUtil.h

#include "main.h"

class CGlUtil {
public:
	CGlUtil();
	~CGlUtil();
	void GlMainProc(void);
private:
	static GLfloat eye[];
	
	void GlInit(void);
	static void CALLBACK GlDisplay(void);
	static void CALLBACK GlReshape(GLint, GLint);
};

-CGlUtil.cpp

#include "CGlUtil.h"

GLfloat CGlUtil::eye[] = {40.0, 10.0, 20.0};

CGlUtil::CGlUtil() {
}

CGlUtil::~CGlUtil() {
}

void CGlUtil::GlMainProc(void) {
	auxInitDisplayMode(AUX_DOUBLE | AUX_RGBA | AUX_DEPTH);
	auxInitPosition(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
	auxInitWindow(WINDOW_TITLE);
	GlInit();
	auxReshapeFunc(GlReshape);
	auxMainLoop(GlDisplay);
}

void CGlUtil::GlInit(void) {
	GLfloat light_position[] = {100.0, 100.0, 100.0, 0.0};
	
	glLightfv(GL_LIGHT0, GL_POSITION, light_position);
	
	glEnable(GL_LIGHTING);
	glEnable(GL_LIGHT0);
	glEnable(GL_DEPTH_TEST);
}

void CALLBACK CGlUtil::GlDisplay(void) {
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	glLoadIdentity();
	gluLookAt(eye[0], eye[1], eye[2], 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
	
	auxSolidCylinder(1.0, 2.0);
	
	glFlush();
	auxSwapBuffers();
}

void CALLBACK CGlUtil::GlReshape(GLint w, GLint h) {
	glViewport(0, 0, w, h);
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	
	gluPerspective(10.0, (GLfloat)w/(GLfloat)h, 1.0, 100.0);
	
	glMatrixMode(GL_MODELVIEW);
}
トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン