プログラミング

Category
[C#] C/C++相当の共用体(union)を扱う
C/C++ではメンバのメモリ領域を共有できる共用体が存在しますが、C#には存在しません。 しかし、属性を駆使して共用体を実装することは可能です。 具体的なコードは以下のようになります。 struct TestUnion { public int i; public double d; public char c; pu...
6122 PV
[C#] Dictionaryの逆引き
C#のDictionaryでValueからKeyを取得する方法のメモ書きです。 KeyからValueは添字指定で行えますが、逆は一筋縄には行きません。 なぜなら、Dictionary中に同じValueが複数存在している可能性があるためです。 したがって、1つのValueに対してKeyは複数存在する可能性があります。 K...
22206 PV
[C++] C++でC#っぽいdelegateを実装してみる(任意クラスの任意メソッド実行)
昨日に引き続いてC++によるC#のようなDelegateを扱うメモです。 boost.signals2を使えばDelegateクラスをわざわざ実装せずともDelegateのような扱いができることを書きました。 しかし、C#のような任意クラスの任意メソッドを指定することはできませんでした。 結局は関数しか扱えないのか・・...
4080 PV
[WebGL] WebGLを使ってみる
今回から実際にWebGLを使って何らかのオブジェクトを描画してみたいと思います。 まずは、サンプルを記します。 <!DOCTYPE html> <head> <title>Hello WebGL</title> </head> <body onload=...
3531 PV
[WebGL] Hello Worldを表示させてみる
今回から早速WebGLを使ったプログラミングについて解説していきたいと思います。 WebGLでは文字をはじめ、2D図形や3Dポリゴンなど様々なグラフィックをブラウザ上で描画できるわけですが、これらはすべてキャンバスと呼ばれる領域に描画されます。 このキャンバスは絵を描くための画用紙のようなものだと考えれば想像しやすいか...
3907 PV
[WebGL] WebGLをはじめてみる
HTML5の登場により、Webブラウザ上で動的なコンピュータグラフィックを描画できるようになったことはとても衝撃的です。 たとえば、以下に記すリンク先のコンテンツは全てWebブラウザ上で動いているものです。 http://www.ro.me/ 上記サイトはデンジャー・マウスとダニエル・ルッピによるCDアルバム「ROME...
1789 PV
C#のdelegateとC++の関数ポインタとの相違点
C#のdelegateはユーザ定義のメソッドを登録して呼び出しできたりと非常に便利な機能です。 これは、C++でいう関数ポインタによく似ています。 ただし、これよりも便利なことができる機能が加えられたものがdelegateだと思って差し支えないでしょう。 関数ポインタとの主な違いは以下の通りです。 ・マルチキャストがで...
2440 PV
ライブラリの名前衝突回避について
自作ゲームの開発で最近嵌ったことのメモ書きです。 以下のようなポリゴンクラスを作り、WinAPIとともに併用したプログラムを書いたときに起こったエラーです。 class Polygon : virtual public Texturable { public: Polygon(); virtual Polygon();...
3912 PV