> ・バイキュービック法
> ・ランツォシュ法
DrawGraph や DrawExtendGraph などの複雑な変形を行わない描画でしたらピクセルシェーダーを
工夫することでバイキュービックやランツォシュによる描画も問題なく行えそうですが
DrawRotaGraph や DrawModiGraph などの回転・変形描画となると期待した描画結果と
ならないかもしれません…
ミップマップを使うことでシェーダーを使用すること無く DX_DRAWMODE_BILINEAR による
縮小よりも綺麗な描画結果が得られると思うので、現在別案件の対応を行っていて
すぐにはできませんが、別案件が終了したらミップマップを使う機能を追加してみようと思います m(_ _)m
因みにリファレンスには載っていませんが、GraphFilter や GraphFilterBlt 等で使用できるフィルタータイプとして
バイキュービック法とランツォシュ法による拡大縮小機能があったりします
( GraphFilter なので DrawGraph や DrawRotaGraph などのような汎用性はありませんが… )
int GraphFilter( int GrHandle, int FilterType = DX_GRAPH_FILTER_BICUBIC_SCALE, int DestSizeX = スケーリング後の横ピクセル数, int DestSizeY = スケーリング後の縦ピクセル数 ) ;
int GraphFilter( int GrHandle, int FilterType = DX_GRAPH_FILTER_LANCZOS3_SCALE, int DestSizeX = スケーリング後の横ピクセル数, int DestSizeY = スケーリング後の縦ピクセル数 ) ;
> ちなみに DX_DRAWMODE_OTHER がどのような用途で使われるのか気になりました。
3Dモデル描画の際はテクスチャフィルタリングモードの設定が2D描画の場合よりも少し複雑になり
2D描画の描画モードとは一致しないテクスチャフィルタリングモード設定となることがあるので、
3D描画の後2D描画をする際にテクスチャフィルタリングモードを再設定する必要がある、
ということの目印として DX_DRAWMODE_OTHER が使用されています