「Xamarin.MacでNSOpenGLViewを使う」の版間の差分

imported>Administrator
ページの作成:「 ==概要== OpenGLは一見すると非常にシンプルなので簡単に扱えるように思えてくる。 するとCoreGraphicsだのCoreAnimationだ...」
 
imported>Administrator
Administrator がページ「Xamarin.Mac/NSOpenGLViewを使う」を「Xamarin.MacでNSOpenGLViewを使う」に移動しました
 
(同じ利用者による、間の5版が非表示)
1行目: 1行目:


 
== 概要 ==
==概要==
[[OpenGL]]は一見すると非常にシンプルなので簡単に扱えるように思えてくる。
[[OpenGL]]は一見すると非常にシンプルなので簡単に扱えるように思えてくる。
すると[[CoreGraphics]]だの[[CoreAnimation]]だので悩むより、[[OpenGL]]を使って2Dやった方が早い気がしてくる。
すると[[CoreGraphics]]だの[[CoreAnimation]]だので悩むより、[[OpenGL]]を使って2Dやった方が早い気がしてくる。
8行目: 7行目:
世の中でもっとも重要なのは[[適材適所]]であると教えてくれる。
世の中でもっとも重要なのは[[適材適所]]であると教えてくれる。


==実装1==
== 実装1 ==
[[Xamarin.Mac]]では[[OpenGL]]に加えて[[OpenTK]]も標準で使えるので非常に簡単に実装できる。
[[Xamarin.Mac]]では[[OpenGL]]に加えて[[OpenTK]]も標準で使えるので非常に簡単に実装できる。


基本的には以下の手順だけで利用できる
=== 準備 ===
*NSOpenGLViewを継承したカスタムコントロールを作る
Xamarin.Macに標準で用意されているOpenTKの参照を追加する。
*:「[[Xamarin.Mac/カスタムコントロールを使用する]]」も参照
[[ファイル:Xamarin.MacでOpenTKの参照を追加.png|none]]
*DrawRectメソッドをオーバーライドして描画処理を書く


=== NSOpenGLViewを継承したカスタムコントロールを作る ===
*「[[Xamarin.Mac/カスタムコントロールを使用する]]」も参照
=== DrawRectメソッドをオーバーライドして描画処理を書く ===
三角形を描画してみる。
三角形を描画してみる。
<source lang="csharp">
<source lang="csharp">
76行目: 78行目:
                 // コンテキストを有効化する
                 // コンテキストを有効化する
                 glc.MakeCurrentContext();
                 glc.MakeCurrentContext();
                // 塗りつぶす
                GL.ClearColor(red:0.5f, green:0.5f, blue:0.5f, alpha:0);
                GL.Clear(ClearBufferMask.ColorBufferBit);


                 // 描画コマンド群
                 // 描画コマンド群
97行目: 103行目:
     }
     }
</source>
</source>
=== NSOpenGLViewを貼る ===
Interface BuilderやStoryboardを開き、ViewControllerに「NSOpenGLView」を貼る。
他のNSView系コントロールと違い「NSCustomView」ではなく「NSOpenGLView」となる点に注意。
=== クラス名を書き換える ===
NSOpenGLViewのクラス名を派生コントロールのものに書き換える。
[[ファイル:Xamarin.MacでNSOpenGLViewの派生コントロールを貼る.png|none]]


==関連項目==
==関連項目==