文字列の自由変形描画の関数を追加してみましたので、よろしければこちらをダウンロードしてください m(_ _)m
https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // VisualC++ 用
https://dxlib.xsrv.jp/temp/DxLibBCCTest.exe // BorlandC++ 用
https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.exe // MinGW 用
https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // .NET用
https://dxlib.xsrv.jp/temp/DxLibMakeTest.exe // ソース
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』を、VCをお使いの場合は『リビルド』をして下さい)
以下の関数を追加しました
// フォントハンドルを使用して文字列を変形描画する( 座標指定が float 版 )
int DrawModiStringFToHandle( float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, unsigned int Color, int FontHandle, unsigned int EdgeColor, int VerticalFlag, const TCHAR *String ) ;
// フォントハンドルを使用して書式指定文字列を変形描画する( 座標指定が float 版 )
int DrawModiFormatStringFToHandle( float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, unsigned int Color, int FontHandle, unsigned int EdgeColor, int VerticalFlag, const TCHAR *FormatString, ... ) ;
↑の関数以外にも DrawModiString や DrawModiStringToHandle なども追加されています
ただ、1文字単位で変形後の座標を計算する仕組みを実装するのはかなりの改造が必要だったので、
短時間で実装するために一度作業用スクリーンに DrawStringToHandle で描画したものを
DrawModiGraph で変形描画するということを内部で行っています
なので DrawRotaString や DrawExtendString などに比べるとかなり重いです
あと、一度作業用スクリーンに描画する関係上 CreateFontToHandle を呼ぶ前に
SetFontCacheUsePremulAlphaFlag( TRUE ) ; を実行しておくことで作成することができる
「乗算済みアルファ」用のフォントハンドルを使い、描画時も SetDrawBlendMode( DX_BLENDMODE_PMA_ALPHA, 255 ) ; など
ブレンド名内に PMA が付く「乗算済みアルファ」用のブレンドモードで DrawModiFormatString を実行した方が
「乗算済みアルファ」用ではない通常タイプのフォントハンドルを使用した場合よりも高速に描画できます
( 「乗算済みアルファ」についてはこちらに解説がありますので、もしご存知ではありませんでしたらご覧ください m(_ _)m
<乗算済みアルファのすすめ>
https://dxlib.xsrv.jp/lecture/PremulAlpha/PremulAlpha.html )
多用しなければ実用の範囲内の速度は出ると思いますので、よろしければ使ってみてください (・・;;