GDI+をいじりなおす

テストも終わり(勉強してないけど)色々とひと段落着いたので、落ち着いてプログラムを見直しています。
Cocoonはコア部分の製作が遅れてるみたいなので、放置。

身の回りの使い古した(っても1年くらい)クラスの書き直し作業をしています。まずは、C#を覚えたての頃に作ったGDI+用のクラス。
C#の記述に慣れない時期に作ったので、非常に使いづらい。あと、色々なテクニックも覚えたのでここらでバージョンアップしようと思います。

GDI+用クラスには…

  • 一般的な図形の描画
  • ダブルバッファリング
  • 画像の管理
  • 画像の半透明、回転描画

の機能が付いていました。今回はさらに

  • パスを使った描画
  • 丸角矩形の描画
  • グラデーションの簡易描画
  • 途中の画像をキャッシュする機能

で、1メソッドでこんなような図形を描いてくれるようになりました。

まぁ、何に使うかは微妙ですが、結構綺麗です

あとは、途中画像のキャッシュ機能です。画像をレイヤーみたいに管理して、変更のない部分はBitmapにキャッシュしておいて、画像を転送するようにしています。こうしたほうが高速に処理できるようです。(図形の描画って結構重いですから)クラスにレイヤーのロック機能をつけたので、以前よりも簡単に実装できます。

GDI+用クラスは仕事や簡単なツールを作るときによく使うので、そういう面倒なプログラムがちょっと楽になるといいなぁ〜〜

さて、次は1年間機能拡張を続けたCLKs用DirectGraphicsクラスを書き直そうと思います。3Dゲームを主眼に置いて、マルチターゲットレンダリングプログラマブルシェーダーをベースにした、高度なエフェクトが作れるクラスを組もうと思います。初めから書いたほうが早そう。