CocoaでOpenGL

CocoaでOpenGLを使ってウインドウに1ポリゴン表示するプログラムを作ります。
XCodeのバージョンは3.0、対応OSはMacOSX10.5前後だと思われます。

プロジェクトの作成

まずXcodeを起動する。

#ref(): File not found: "cocoa_opengl1.png" at page "CocoaでOpenGL"

メニューの「ファイル」-「新規プロジェクト」を選択する。

#ref(): File not found: "cocoa_opengl2.png" at page "CocoaでOpenGL"

Cocoa Applicationを選んで「次へ」ボタンを押す。

#ref(): File not found: "cocoa_opengl3.png" at page "CocoaでOpenGL"

プロジェクト名を決めて「完了」ボタンを押す。
今回はOpenGLSampleというプロジェクト名にした。

フレームワーク登録

#ref(): File not found: "cocoa_opengl4.png" at page "CocoaでOpenGL"

ファイルとグループのOpenGLSampleを右クリックしてメニューを出し「追加」-「既存のフレームワーク」を選ぶ。

#ref(): File not found: "cocoa_opengl5.png" at page "CocoaでOpenGL"

フレームワーク一覧が表示されるのでOpenGL.frameworkを選んで「追加」ボタンを押す。

#ref(): File not found: "cocoa_opengl6.png" at page "CocoaでOpenGL"

設定は変更せず「追加ボタン」を押す

プログラム作成

以下のプログラムを入力する。

MyOpenGLView.h

#import <Cocoa/Cocoa.h>
#import <OpenGL/OpenGL.h>
#import <OpenGL/gl.h>
#import <OpenGL/glu.h>

@interface MyOpenGLView : NSOpenGLView
{
}
@end

MyOpenGLView.m

#import "MyOpenGLView.h"

@implementation MyOpenGLView

- (id) initWithFrame : (NSRect) frameRect {

	self = [ super initWithFrame : frameRect
                     pixelFormat : [ NSOpenGLView defaultPixelFormat ] ];

	[ [ self openGLContext ] makeCurrentContext ];

	glDisable(GL_CULL_FACE);
	glPolygonMode(GL_FRONT, GL_FILL);
	glPolygonMode(GL_BACK, GL_LINE);
	return( self );
}

- (void) drawRect : (NSRect) rect {
	glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
	glClear(GL_COLOR_BUFFER_BIT);

	glBegin(GL_TRIANGLES);
	glColor3d(1.0f, 1.0f, 1.0f);
	glVertex3f(0.0f, 0.5f, 0.0f);
	glVertex3f(-0.5f, -0.5f, 0.0f);
	glVertex3f(0.5f, -0.5f, 0.0f);
	glEnd();
	glFlush();

	[ [ self openGLContext ] flushBuffer ];
}

@end

#ref(): File not found: "cocoa_opengl7.png" at page "CocoaでOpenGL"

ファイルとグループのOpenGLSampleを右クリックしてメニューを出し「追加」-「既存のファイル」を選ぶ。

#ref(): File not found: "cocoa_opengl8.png" at page "CocoaでOpenGL"

MyOpenGLView.hとMyOpenGLView.mを選んで「追加」ボタンを押す。

Interface Builderでの作業

#ref(): File not found: "cocoa_opengl9.png" at page "CocoaでOpenGL"

XcodeのファイルとグループにあるMainMenu.nibをダブルクリックする。
するとInterface Builderが起動する。

#ref(): File not found: "cocoa_opengl10.png" at page "CocoaでOpenGL"

ライブラリウインドウのViews & CellsにあるCustom Viewを選ぶ。

#ref(): File not found: "cocoa_opengl11.png" at page "CocoaでOpenGL"

作成中のWindowに上記で選んだCustom Viewをドラッグアンドドロップする。
またCustom Viewの大きさを調整する。

#ref(): File not found: "cocoa_opengl12.png" at page "CocoaでOpenGL"

Class identityを先ほど作成したMyOpenGLViewに変更する。

#ref(): File not found: "cocoa_opengl13.png" at page "CocoaでOpenGL"

上記の設定を保存する。
以上で作業は終了。

実行結果

#ref(): File not found: "cocoa_opengl14.png" at page "CocoaでOpenGL"

ビルド、実行してウインドウに白い三角形が出れば成功です。

前に戻る


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS