「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 == | ||
[[Xamarin.Mac]]では[[OpenGL]]に加えて[[OpenTK]]も標準で使えるので非常に簡単に実装できる。 | [[Xamarin.Mac]]では[[OpenGL]]に加えて[[OpenTK]]も標準で使えるので非常に簡単に実装できる。 | ||
=== 準備 === | |||
Xamarin.Macに標準で用意されているOpenTKの参照を追加する。 | |||
[[ファイル:Xamarin.MacでOpenTKの参照を追加.png|none]] | |||
=== 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]] | |||
==関連項目== | ==関連項目== | ||