カラーキー
透過転送をWin32APIですると、BitBltを2回する必要性がありますがSDIB32GLのカラーキー転送を使えばDirectDrawのように簡単かつ高速な描画が可能です。
アルファブレンディング
アルファブレンディングとは、半透明描画のことで転送元と転送先のRGBをそれぞれα値と呼ばれる0.0〜1.0の値で適切に処理したものです。
SDIB32GLでは高速化のためにα値を0〜255で表現しています。
※カラーキー付のα値0.4(102)で合成
加算減算合成
加算合成は光ったものを表現する場合に使用し、減算合成は煙等の表現に使用することがあります。
合成系の中では特に高速な描画ができるのが特徴です。
※加算合成
アルファチャンネル
ユニバーサルトランジション
グラフィック機能
Win32APIにはいくつかのグラフィック関数が用意されていますが、低速なうえアルファブレンディングや加算合成などの処理はできません。SDIB32GLでは全ての合成処理がサポートされています。
フィルタ機能
SDIB32GLではイメージに直接フィルタ処理をすることができます。
サポートされているフィルタはネガポジ、モノクロ、セピア、ブライト、モザイクです。
ネガポジ以外は係数をリアルタイムに変更することによってアニメーションができます。
拡大縮小、回転、反転機能
特殊転送機能
特殊転送ではアルファチャンネルだけを転送したり、カラーキーをアルファチャンネルに変換する機能があります。利用方法は様々です。
各種合成の重複が可能
アルファブレンディングしながら加算合成や、アルファチャンネルを適用しながらアルファブレンディングという転送ができます。
全て重複できるわけではなく一部の合成処理だけが可能となっています。
※拡大縮小、回転、反転と合成処理の重複は可能です。
各種画像イメージの読み込み・保存が可能
プログラマが新たに画像の読み込みコードをプログラムする必要がないように様々な画像形式に対応しています。
SDIB32GLで扱える画像フォーマットはBitmap(*.bmp)、Jpeg(*.jpg)、PNG(*.png)、TARGA(*.tga)がサポートされており、アルファチャンネルを含んだイメージも読み込み可能です。
さらに、
竹村嘉人氏のSusieで利用できるSPIプラグインを使用することによって読み込める画像フォーマットを無限に拡張することができます。
ファイル以外にもメモリ、リソースからの読み込み機能も持ち合わせています。
保存にも対応していますので相互変換としての利用も可能です。
CPU依存の高速描画処理
SDIB32GLで使われている描画アルゴリズムは全てアセンブラに最適化されており、高速な描画処理が可能となっています。
Intel MMXテクノロジをサポートしているCPUならさらなる高速化が望めます。
COMインターフェイス
SDIB32GLは内部変数や関数群をCOMインターフェイスとして提供しているので様々な開発環境(Visual C++、Visual Basic、Delphi)でオブジェクト指向による開発が可能になります。
COMインターフェイスとは、簡単に言えばDLL内のプログラム(部品またはCOMオブジェクト)にアクセスするための規格です。
その規格(インターフェイス)を介してC++のクラスで実装されているSDIB32GL(COMオブジェクト)にアクセスできるので容易にコーディングが可能になるほかスピーディかつ美しいコーディングも可能となります。
※C/C++から利用する場合に限り、静的リンクを使用してSDIB32GLのCOMオブジェクトに直接アクセスできます。