リファレンス 144 ドキュメント 7 サンプル 48
標準機能 346 advapi32.dll 419 api-ms-win-core-winrt-string-l1-1-0.dll 1 api-ms-win-dx-d3dkmt-l1-1-0.dll 1 arduino 12 Artlet2D 55 avrt.dll 11 bcrypt.dll 53 com_misc.dll 1238 comctl32.dll 94 comdlg32.dll 2 crypt32.dll 218 d2d1.dll 13 d3d11.dll 5 d3module 29 dbghelp.dll 128 dinput8.dll 1 dwmapi.dll 31 dwrite.dll 1 dxgi.dll 5 DxLibW 2738 encode.as 8 evr.dll 7 form_decode 1 gdi32.dll 384 gdiplus.dll 627 glu32.dll 52 hgimg3 152 hgimg4 166 hsedsdk 36 HSP3Dish 119 hsp3imp 4 hsp3util 17 hspble.dll 13 hspcbcom 11 hspcmp 21 hspcv 31 hspcv4 275 hspd2d 28 hspda 23 hspdb 8 hspdb.dll 14 hspduckdb.dll 10 hspext 59 hspinet 60 hspjson.dll 10 hspllama.dll 11 hspmath 41 hspmcp.dll 7 hspmfcam.dll 30 hspmidi.dll 17 hspmucom 17 hspogg 20 hsponnx.dll 13 hsppdf.dll 11 hspprint 6 hspsapi_64.dll 3 hspsock 12 hsptflite.dll 19 hsptv 2 hspusbio 6 hspvosk_64.dll 4 hspwasm.dll 10 hspwebsrv.dll 9 hspwebview2.dll 18 hspwgcapture.dll 8 hspwhisper_64.dll 4 hspwinrtocr.dll 5 hspwinrtspeech_64.dll 3 httpapi.dll 42 imm32.dll 63 iphlpapi.dll 194 iron_7z.hsp 6 iron_ai.hsp 9 iron_camera.hsp 6 iron_camera_mf.hsp 31 iron_clip.hsp 4 iron_csv.hsp 8 iron_dialog.hsp 2 iron_hash.hsp 12 iron_http.hsp 4 iron_ini.hsp 11 iron_json.hsp 10 iron_mcp_client.hsp 9 iron_mcp_server.hsp 6 iron_mediapipe.hsp 13 iron_office.hsp 6 iron_perf.hsp 5 iron_serial.hsp 6 iron_shell.hsp 6 iron_speech.hsp 9 iron_sysinfo.hsp 10 iron_toast.hsp 4 iron_url.hsp 6 iron_video.hsp 10 iron_xlsx.hsp 11 kernel32.dll 884 layer_fade 5 mf.dll 31 mfplat.dll 122 mfreadwrite.dll 5 mod_fontdlg 1 mod_joystick2 2 mod_menu 3 mod_mmaudio 7 mod_picfont 2 mod_posteffect 7 mod_regexp 4 mod_rss 1 mod_vpad 5 msimg32.dll 3 ncrypt.dll 1 netapi32.dll 45 normaliz.dll 2 obaq 51 obj 4 ole32.dll 143 oleaut32.dll 404 opengl32.dll 353 powrprof.dll 84 propsys.dll 1 psapi.dll 20 secur32.dll 2 shell32.dll 195 shlwapi.dll 15 SQLele 18 urlmon.dll 71 user32.dll 607 userenv.dll 34 uxtheme.dll 77 version.dll 7 wer.dll 20 windowscodecs.dll 9 winhttp.dll 46 wininet.dll 192 winmm.dll 146 wintrust.dll 7 wlanapi.dll 59 wmvcore.dll 11 ws2_32.dll 90 wtsapi32.dll 44 xaudio2_8.dll 4 xmllite.dll 6 ZLibWrap 2

hspd2d

Version 0.4 Date 2026/04/14 Author IronHSP project

hspd2d - DirectWrite + Direct2D + WIC 描画モジュール

d2d_clear
カレント画像を単色で塗りつぶす
カレント描画対象を指定の RGBA 色で塗りつぶす。
d2d_color
以後の描画色を設定する
d2d_drawline / d2d_drawrect / d2d_fillrect / d2d_drawellipse / d2d_fillellipse / d2d_drawtext などのカレント描画色を設定する。
d2d_drawellipse
楕円 (枠線) を描画する
カレント色で枠線のみの楕円を描画する。rx==ry にすれば真円。
d2d_drawimage
別の画像をカレント画像に描画する
src_id の画像をカレント描画対象に転写する。dst_w/dst_h を 0 にすると元サイズで描画される。 拡大縮小は線形補間。
d2d_drawline
線を描画する
カレント色で 2 点を結ぶ直線を描画する。
d2d_drawrect
矩形 (枠線) を描画する
カレント色で枠線のみの矩形を描画する。
d2d_drawtext
テキストを描画する
カレントフォント / カレント色でテキストを描画する。 D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT が有効なので、Segoe UI Emoji 等の色付き 絵文字フォントは自動でカラー描画される。
d2d_fillellipse
楕円を塗りつぶす
カレント色で塗りつぶした楕円を描画する。
d2d_fillrect
矩形を塗りつぶす
カレント色で塗りつぶした矩形を描画する。
d2d_font
テキスト描画用フォントを設定する
DirectWrite の IDWriteTextFormat を作成してカレントフォントとする。 複数回呼べる (前のフォントは自動的に release される)。 Segoe UI Emoji を指定すると COLR/CPAL/CBDT/sbix 系のカラー絵文字も自動で描画される。
d2d_gif_frame_count
GIF アニメのフレーム数を取得
GIF アニメに含まれるフレーム数を stat で返す。ハンドルが無効な場合は 0 が返る。
d2d_gif_frame_delay
GIF アニメの指定フレームの遅延時間を取得 (10ms 単位)
指定フレームの表示遅延時間を 10ms 単位で stat に返す (例: 10 なら 100ms)。 GIF の Graphic Control Extension Delay Time フィールドの値をそのまま返す。 フレーム番号が範囲外、もしくはハンドルが無効な場合は 0 を返す。
d2d_gif_frame_to_image
GIF アニメの指定フレームを d2d_image として取り出す
指定フレームを WIC から取り出し、PBGRA 形式に変換して dst_id に d2d_image として 構築する。
d2d_gif_free
GIF デコーダハンドルを解放
d2d_gif_load で取得したハンドルを解放する。内部で保持していた WIC Decoder の リファレンスも Release され、GIF のメモリが解放される。必ず呼び出すこと。
d2d_gif_load
GIF アニメファイルを読み込んでデコーダハンドルを取得
GIF アニメファイルを IWICBitmapDecoder で開き、内部で自作パーサを使って全フレームの 遅延時間 (Graphic Control Extension の Delay) とループ回数 (NETSCAPE 2.0 拡張ブロック) を抽出する。
d2d_gif_loop_count
GIF アニメのループ回数を取得
NETSCAPE 2.0 拡張ブロックに書かれたループ回数を stat で返す。 0 の場合は無限ループ (一般的な GIF アニメはこれ)。1 以上なら指定回数だけ再生する。 ループ情報がない GIF では 0 (無限) が返る。
d2d_gif_write_begin
GIF アニメ書き出しを開始 (スタブ、未実装)
マルチフレーム GIF の書き出しを開始する予定の命令。現状は WIC IWICMetadataQueryWriter と PROPVARIANT を HSP 側で組み立てるのが非常に煩雑なため スタブのままで、常に stat = -1 を返す。将来の版で実装予定。
d2d_gif_write_end
GIF アニメ書き出しを完了 (スタブ、未実装)
d2d_gif_write_begin で開いた GIF ライタをファイナライズして閉じる予定の命令。 現状は未実装で、常に stat = -1 を返す。
d2d_gif_write_frame
GIF アニメに 1 フレーム追加 (スタブ、未実装)
d2d_gif_write_begin で開いた GIF ライタに 1 フレーム追加する予定の命令。 現状は未実装で、常に stat = -1 を返す。
d2d_image_create
オフスクリーン画像 (空) を作成する
指定 ID で 32bpp PBGRA の WIC ビットマップと Direct2D RenderTarget を生成する。 作成後はこの ID がカレント描画対象になる。既存の ID を指定すると古いほうは自動で破棄される。
d2d_image_delete
画像を破棄する
ID で指定した画像の RenderTarget と WIC ビットマップを解放する。 カレント描画対象だった場合は cur_id が -1 にリセットされる。
d2d_image_load
画像ファイルを読み込んで指定 ID に展開する
WIC のデコーダを使って画像を読み込み、PBGRA に変換、指定 ID にビットマップ + RenderTarget として展開する。読み込み後はこの ID がカレント描画対象になり、d2d_drawimage のソースとしても 使える。
d2d_image_save
カレント画像をファイルに保存する
拡張子に応じて以下の形式で保存する: .png → PNG .bmp → BMP .jpg / .jpeg → JPEG .tif / .tiff → TIFF .gif → GIF
d2d_image_select
カレント描画対象を切り替える
ID で指定した画像をカレント描画対象にする。以降の d2d_clear / d2d_drawtext / d2d_drawline / d2d_fillrect 等はこの画像に対して描画される。
d2d_init
hspd2d を初期化する
COM の初期化、DirectWrite ファクトリ、Direct2D ファクトリ、WIC ファクトリを生成する。
d2d_shutdown
hspd2d を解放する
DirectWrite / Direct2D / WIC の各ファクトリ、現在のフォント、その他リソースを解放する。 プログラム終了時に呼ぶこと。
d2d_svg_load
SVG ファイルを読み込んで指定サイズでラスタライズ
ファイルから SVG テキストを読み込み、内部で d2d_svg_load_str に委譲して ラスタライズする。成功すると新規 image ID を確保して stat に返す。失敗時は -1。
d2d_svg_load_str
SVG 文字列を指定サイズでラスタライズ
SVG 文字列を HGLOBAL → IStream にして ID2D1SvgDocument を構築し、 D3D-backed な ID2D1Bitmap1 にラスタライズ、CPU 読み戻し後 WIC bitmap に展開して 新規 d2d_image として登録する。