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

imported>Administrator
imported>Administrator
Administrator がページ「Xamarin.Mac/NSOpenGLViewを使う」を「Xamarin.MacでNSOpenGLViewを使う」に移動しました
 
(同じ利用者による、間の4版が非表示)
1行目: 1行目:


 
== 概要 ==
==概要==
[[OpenGL]]は一見すると非常にシンプルなので簡単に扱えるように思えてくる。
[[OpenGL]]は一見すると非常にシンプルなので簡単に扱えるように思えてくる。
すると[[CoreGraphics]]だの[[CoreAnimation]]だので悩むより、[[OpenGL]]を使って2Dやった方が早い気がしてくる。
すると[[CoreGraphics]]だの[[CoreAnimation]]だので悩むより、[[OpenGL]]を使って2Dやった方が早い気がしてくる。
10行目: 9行目:
== 実装1 ==
== 実装1 ==
[[Xamarin.Mac]]では[[OpenGL]]に加えて[[OpenTK]]も標準で使えるので非常に簡単に実装できる。
[[Xamarin.Mac]]では[[OpenGL]]に加えて[[OpenTK]]も標準で使えるので非常に簡単に実装できる。
=== 基本 ===
基本的には以下の手順だけで利用できる
*NSOpenGLViewを継承したカスタムコントロールを作る
*:「[[Xamarin.Mac/カスタムコントロールを使用する]]」も参照
*DrawRectメソッドをオーバーライドして描画処理を書く


=== 準備 ===
=== 準備 ===
Xamarin.Macに標準で用意されているOpenTKの参照を追加する。
Xamarin.Macに標準で用意されているOpenTKの参照を追加する。
[[ファイル:Xamarin.MacでOpenTKの参照を追加.png]]
[[ファイル:Xamarin.MacでOpenTKの参照を追加.png|none]]
 
=== NSOpenGLViewを継承したカスタムコントロールを作る ===
*「[[Xamarin.Mac/カスタムコントロールを使用する]]」も参照


=== ===
=== DrawRectメソッドをオーバーライドして描画処理を書く ===
三角形を描画してみる。
三角形を描画してみる。
<source lang="csharp">
<source lang="csharp">
82行目: 78行目:
                 // コンテキストを有効化する
                 // コンテキストを有効化する
                 glc.MakeCurrentContext();
                 glc.MakeCurrentContext();
                // 塗りつぶす
                GL.ClearColor(red:0.5f, green:0.5f, blue:0.5f, alpha:0);
                GL.Clear(ClearBufferMask.ColorBufferBit);


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


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