*第1回目 CocoaでOpenGL[#jcef6cf1] CocoaでOpenGLを使ってウインドウに1ポリゴン表示するプログラムを作ります。 XCodeのバージョンは3.0、対応OSはMacOSX10.5前後だと思われます。 #author("2018-06-18T16:19:19+09:00","default:kuran","kuran") **プロジェクトの作成 [#f6959d79] まずXcodeを起動する。 #ref(cocoa_opengl1.png,,,100%) メニューの「ファイル」-「新規プロジェクト」を選択する。 #ref(cocoa_opengl2.png,,,100%) Cocoa Applicationを選んで「次へ」ボタンを押す。 #ref(cocoa_opengl3.png,,,100%) プロジェクト名を決めて「完了」ボタンを押す。 今回はOpenGLSampleというプロジェクト名にした。 **フレームワーク登録 [#c63eb950] #ref(cocoa_opengl4.png,,,100%) ファイルとグループのOpenGLSampleを右クリックしてメニューを出し「追加」-「既存のフレームワーク」を選ぶ。 #ref(cocoa_opengl5.png,,,100%) フレームワーク一覧が表示されるのでOpenGL.frameworkを選んで「追加」ボタンを押す。 #ref(cocoa_opengl6.png,,,100%) 設定は変更せず「追加ボタン」を押す **プログラム作成 [#m5322a0a] 以下のプログラムを入力する。 ***MyOpenGLView.h [#a9b71592] #import <Cocoa/Cocoa.h> #import <OpenGL/OpenGL.h> #import <OpenGL/gl.h> #import <OpenGL/glu.h> @interface MyOpenGLView : NSOpenGLView { } @end ***MyOpenGLView.m [#hcc73dcf] #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(cocoa_opengl7.png,,,100%) ファイルとグループのOpenGLSampleを右クリックしてメニューを出し「追加」-「既存のファイル」を選ぶ。 #ref(cocoa_opengl8.png,,,100%) MyOpenGLView.hとMyOpenGLView.mを選んで「追加」ボタンを押す。 **Interface Builderでの作業 [#rf646519] #ref(cocoa_opengl9.png,,,100%) XcodeのファイルとグループにあるMainMenu.nibをダブルクリックする。 するとInterface Builderが起動する。 #ref(cocoa_opengl10.png,,,100%) ライブラリウインドウのViews & CellsにあるCustom Viewを選ぶ。 #ref(cocoa_opengl11.png,,,100%) 作成中のWindowに上記で選んだCustom Viewをドラッグアンドドロップする。 またCustom Viewの大きさを調整する。 #ref(cocoa_opengl12.png,,,100%) Class identityを先ほど作成したMyOpenGLViewに変更する。 #ref(cocoa_opengl13.png,,,100%) 上記の設定を保存する。 以上で作業は終了。 **実行結果 [#q156c08a] #ref(cocoa_opengl14.png,,,100%) ビルド、実行してウインドウに白い三角形が出れば成功です。 [[前に戻る>プログラミング]]