「カプセル化(プログラミング)」の版間の差分
編集の要約なし |
編集の要約なし |
||
| 9行目: | 9行目: | ||
[[ソースコード]]が存在し改修が可能であればカプセル化しても問題ない。[[ソースコード]]があっても[[ライセンス]]的に改修できない場合や、そもそも[[バイナリ]]の[[ライブラリ]]しかない場合などは絶望的である。 | [[ソースコード]]が存在し改修が可能であればカプセル化しても問題ない。[[ソースコード]]があっても[[ライセンス]]的に改修できない場合や、そもそも[[バイナリ]]の[[ライブラリ]]しかない場合などは絶望的である。 | ||
=== 実例 === | |||
[[XNA]]([[MonoGame]])では標準で3Dモデルを手軽に扱えるModelクラスが用意されている。 | |||
1行で読み込み、1行で描画できる素晴らしいものだ。 | |||
ただしこのModelクラスを使うと頂点データは遮蔽されておりアクセスできない。 | |||
[[物理演算エンジン]]に食わせるのにどうしても頂点データがどうしても必要なのにだ。 | |||
そこで[[GPU]]に送信後にGetData関数で頂点データを返してもらうというトリッキーなコードで回避する。 | |||
しかし、この方法では動かない環境がある。 | |||
[[iOS]]や[[Android]]の[[OpenGL ES]]なんかがそうだ。 | |||
GPUとの通信は一方通行。 | |||
そこで事前に3Dモデルから頂点データを抜き出し別[[ファイル]]に保存しておく方法で回避する。 | |||
ファイルが2個になりました。 | |||
謎の不具合が発生しています。 | |||
片方のファイルの更新を忘れました。 | |||
カプセル化は恐ろしいね! | |||
== 関連項目 == | == 関連項目 == | ||