プログラミング

Category
[C#] C/C++相当の共用体(union)を扱う
C/C++ではメンバのメモリ領域を共有できる共用体が存在しますが、C#には存在しません。 しかし、属性を駆使して共用体を実装することは可能です。 具体的なコードは以下のようになります。 [crayon-5c12ef5c0d4c4519342524/] structの頭に付けている属性[System.Runtime.In...
308 PV
[C#] Dictionaryの逆引き
C#のDictionaryでValueからKeyを取得する方法のメモ書きです。 KeyからValueは添字指定で行えますが、逆は一筋縄には行きません。 なぜなら、Dictionary中に同じValueが複数存在している可能性があるためです。 したがって、1つのValueに対してKeyは複数存在する可能性があります。 K...
1344 PV
[C++] C++でC#っぽいdelegateを実装してみる(任意クラスの任意メソッド実行)
昨日に引き続いてC++によるC#のようなDelegateを扱うメモです。 boost.signals2を使えばDelegateクラスをわざわざ実装せずともDelegateのような扱いができることを書きました。 しかし、C#のような任意クラスの任意メソッドを指定することはできませんでした。 結局は関数しか扱えないのか・・...
113 PV
[WebGL] WebGLを使ってみる
今回から実際にWebGLを使って何らかのオブジェクトを描画してみたいと思います。 まずは、サンプルを記します。 [crayon-5c12ef5c0f18a915782206/] 上記を正しく動作させるためには、webgl-utils.jsというJavascriptファイルを同階層に配置する必要があります。 これは下記サ...
87 PV
[WebGL] Hello Worldを表示させてみる
今回から早速WebGLを使ったプログラミングについて解説していきたいと思います。 WebGLでは文字をはじめ、2D図形や3Dポリゴンなど様々なグラフィックをブラウザ上で描画できるわけですが、これらはすべてキャンバスと呼ばれる領域に描画されます。 このキャンバスは絵を描くための画用紙のようなものだと考えれば想像しやすいか...
89 PV
[WebGL] WebGLをはじめてみる
HTML5の登場により、Webブラウザ上で動的なコンピュータグラフィックを描画できるようになったことはとても衝撃的です。 たとえば、以下に記すリンク先のコンテンツは全てWebブラウザ上で動いているものです。 http://www.ro.me/ 上記サイトはデンジャー・マウスとダニエル・ルッピによるCDアルバム「ROME...
55 PV
C#のdelegateとC++の関数ポインタとの相違点
C#のdelegateはユーザ定義のメソッドを登録して呼び出しできたりと非常に便利な機能です。 これは、C++でいう関数ポインタによく似ています。 ただし、これよりも便利なことができる機能が加えられたものがdelegateだと思って差し支えないでしょう。 関数ポインタとの主な違いは以下の通りです。 ・マルチキャストがで...
87 PV
ライブラリの名前衝突回避について
自作ゲームの開発で最近嵌ったことのメモ書きです。 以下のようなポリゴンクラスを作り、WinAPIとともに併用したプログラムを書いたときに起こったエラーです。 [crayon-5c12ef5c0fd0a299285929/] [crayon-5c12ef5c0fd15204236778/] 何の変哲もないコードですが、上...
119 PV