第1回目 CocoaでOpenGL

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

プロジェクトの作成

まずXcodeを起動する。
cocoa_opengl1.png
メニューの「ファイル」-「新規プロジェクト」を選択する。
cocoa_opengl2.png
Cocoa Applicationを選んで「次へ」ボタンを押す。
cocoa_opengl3.png
プロジェクト名を決めて「完了」ボタンを押す。
今回はOpenGLSampleというプロジェクト名にした。

フレームワーク登録

cocoa_opengl4.png
ファイルとグループのOpenGLSampleを右クリックしてメニューを出し「追加」-「既存のフレームワーク」を選ぶ。
cocoa_opengl5.png
フレームワーク一覧が表示されるのでOpenGL.frameworkを選んで「追加」ボタンを押す。
cocoa_opengl6.png
設定は変更せず「追加ボタン」を押す

プログラム作成

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

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
cocoa_opengl7.png
ファイルとグループのOpenGLSampleを右クリックしてメニューを出し「追加」-「既存のファイル」を選ぶ。
cocoa_opengl8.png
MyOpenGLView.hとMyOpenGLView.mを選んで「追加」ボタンを押す。

Interface Builderでの作業

cocoa_opengl9.png
XcodeのファイルとグループにあるMainMenu.nibをダブルクリックする。
するとInterface Builderが起動する。
cocoa_opengl10.png
ライブラリウインドウのViews & CellsにあるCustom Viewを選ぶ。
cocoa_opengl11.png
作成中のWindowに上記で選んだCustom Viewをドラッグアンドドロップする。
またCustom Viewの大きさを調整する。
cocoa_opengl12.png
Class identityを先ほど作成したMyOpenGLViewに変更する。
cocoa_opengl13.png
上記の設定を保存する。
以上で作業は終了。

実行結果

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

前に戻る


添付ファイル: filecocoa_opengl9.png 188件 [詳細] filecocoa_opengl8.png 187件 [詳細] filecocoa_opengl7.png 193件 [詳細] filecocoa_opengl6.png 185件 [詳細] filecocoa_opengl5.png 197件 [詳細] filecocoa_opengl4.png 192件 [詳細] filecocoa_opengl3.png 193件 [詳細] filecocoa_opengl2.png 207件 [詳細] filecocoa_opengl14.png 191件 [詳細] filecocoa_opengl13.png 192件 [詳細] filecocoa_opengl12.png 196件 [詳細] filecocoa_opengl11.png 211件 [詳細] filecocoa_opengl10.png 221件 [詳細] filecocoa_opengl1.png 203件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-12-16 (日) 15:25:51 (2042d)