最新フレームを BGRA バイト列で取得
wgc_grab_frame handle, buf, buf_size, w, h
handle : セッションハンドル buf : 画素データを受け取る変数 (sx*sy*4 バイトの BGRA) buf_size : buf に確保したバッファサイズ (バイト数) w, h : 幅と高さを受け取る int 変数
(プラグイン / モジュール : hspwgcapture.dll)
FramePool::TryGetNextFrame() で最新フレームを取り出し、 IDirect3DDxgiInterfaceAccess 経由で ID3D11Texture2D を得て、 staging テクスチャにコピー → Map() → memcpy の順でピクセル を CPU へ読み戻します。 format は B8G8R8A8UIntNormalized (各画素 4 バイト BGRA)。 buf は呼び出し側で sdim や memexpand 等で十分なサイズを確保 してから渡してください。確保したバッファサイズを buf_size に 指定します。 戻り値 (stat): 0 : 成功 -1 : 未初期化 -2 : 不正ハンドル -3 : 非アクティブセッション -4 : フレーム未到着 (TryGetNextFrame が null を返した場合)
| wgc_save_png | 最新フレームを PNG ファイルに保存 | (hspwgcapture.dll) |
| プラグイン / モジュール | hspwgcapture.dll |
| バージョン | 1.0 |
| 作成日 | 2026-04-15 |
| 著作者 | IronHSP / hspwgcapture |
| URL | https://github.com/inovia/IronHSP |
| 備考 | hspwgcapture.dll は Windows 10 1903 (19H1) 以降に搭載された
Windows.Graphics.Capture API (WinRT) を HSP3 から直接呼び出す ためのプラグインです。 Windows.Graphics.Capture API はモダンな DWM 連携キャプチャを 提供し、従来の BitBlt / PrintWindow よりも高フレームレートで GPU 上のウィンドウ / モニタ内容を取得できます。ハードウェア アクセラレートされた D3D11 テクスチャ経由でピクセルが渡される ため、全画面ゲームやハードウェア合成されたウィンドウでも正しく キャプチャできます。 実装は C++/WinRT + D3D11 + WIC で、非同期 API は使用していま せん (Direct3D11CaptureFramePool::CreateFreeThreaded の同期 ポーリング型)。HSP 側からは通常の同期命令として扱えます。 注意: Windows.Graphics.Capture を利用すると、対象ウィンドウ に黄色の「キャプチャ中」ハイライト枠が表示されるのが既定動作 です (Windows 11 以降は設定で無効化可能)。 |
| タイプ | 拡張命令 |
| グループ | hspwgcapture ― フレーム取得 |
| 対応環境 |
|
| hs ファイル | hsphelp\hspwgcapture.hs |