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