---
generated_at: 2026-02-22 10:30:00
metrics:
  claims_total: 90
  claims_with_evidence: 90
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：backend-directx 単体テストケース一覧

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：90 / 90、根拠なし：0
- 優先レビュー（高）
  1. なし（全テストケースに根拠あり）

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `backends/imgui_impl_dx9.h` - DirectX9バックエンドAPI宣言
- E-02: `backends/imgui_impl_dx9.cpp` - DirectX9バックエンド実装（481行）
- E-03: `backends/imgui_impl_dx10.h` - DirectX10バックエンドAPI宣言
- E-04: `backends/imgui_impl_dx10.cpp` - DirectX10バックエンド実装（666行）
- E-05: `backends/imgui_impl_dx11.h` - DirectX11バックエンドAPI宣言
- E-06: `backends/imgui_impl_dx11.cpp` - DirectX11バックエンド実装（686行）
- E-07: `backends/imgui_impl_dx12.h` - DirectX12バックエンドAPI宣言
- E-08: `backends/imgui_impl_dx12.cpp` - DirectX12バックエンド実装（1011行）
- E-09: `docs/code-to-docs/単体テストケース一覧/plan.md` - テスト計画

## 3) Claims と根拠の対応（レビューの主戦場）

### DirectX9 バックエンド (UT-DX9-001 ~ UT-DX9-020)

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | ImGui_ImplDX9_Init: 有効なデバイスで初期化成功 | E-02: L327-348 | ○ |
| C-02 | ImGui_ImplDX9_Init: nullptrデバイスで失敗 | E-02: L331 IM_ASSERT | ○ |
| C-03 | ImGui_ImplDX9_Init: 二重初期化でアサーション | E-02: L331 "Already initialized" | ○ |
| C-04 | ImGui_ImplDX9_Shutdown: 正常シャットダウン | E-02: L350-365 | ○ |
| C-05 | ImGui_ImplDX9_Shutdown: 未初期化でアサーション | E-02: L353 IM_ASSERT | ○ |
| C-06 | ImGui_ImplDX9_NewFrame: フレーム開始 | E-02: L471-476 | ○ |
| C-07 | ImGui_ImplDX9_NewFrame: 未初期化でアサーション | E-02: L474 IM_ASSERT | ○ |
| C-08 | ImGui_ImplDX9_RenderDrawData: 描画処理 | E-02: L165-307 | ○ |
| C-09 | ImGui_ImplDX9_RenderDrawData: DisplaySize<=0で早期リターン | E-02: L168-169 | ○ |
| C-10 | ImGui_ImplDX9_RenderDrawData: 大規模メッシュ対応 | E-02: L337 RendererHasVtxOffset | ○ |
| C-11 | ImGui_ImplDX9_CreateDeviceObjects: オブジェクト作成 | E-02: L446-452 | ○ |
| C-12 | ImGui_ImplDX9_CreateDeviceObjects: デバイスnullでfalse | E-02: L449-450 | ○ |
| C-13 | ImGui_ImplDX9_InvalidateDeviceObjects: オブジェクト無効化 | E-02: L454-469 | ○ |
| C-14 | ImGui_ImplDX9_UpdateTexture: テクスチャ作成 | E-02: L393-417 | ○ |
| C-15 | ImGui_ImplDX9_UpdateTexture: テクスチャ更新 | E-02: L418-431 | ○ |
| C-16 | ImGui_ImplDX9_UpdateTexture: テクスチャ破棄 | E-02: L432-443 | ○ |
| C-17 | ImGui_ImplDX9_SetupRenderState: レンダー状態設定 | E-02: L91-162 | ○ |
| C-18 | ImGui_ImplDX9_CheckFormatSupport: フォーマット確認 | E-02: L309-325 | ○ |
| C-19 | ImGui_ImplDX9_CopyTextureRegion: テクスチャコピー | E-02: L368-387 | ○ |
| C-20 | ImGui_ImplDX9_GetBackendData: データ取得 | E-02: L85-88 | ○ |

### DirectX10 バックエンド (UT-DX10-001 ~ UT-DX10-020)

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-21 | ImGui_ImplDX10_Init: 有効なデバイスで初期化成功 | E-04: L601-633 | ○ |
| C-22 | ImGui_ImplDX10_Init: nullptrデバイスで失敗 | E-04: L605 IM_ASSERT | ○ |
| C-23 | ImGui_ImplDX10_Init: 二重初期化でアサーション | E-04: L605 "Already initialized" | ○ |
| C-24 | ImGui_ImplDX10_Shutdown: 正常シャットダウン | E-04: L635-651 | ○ |
| C-25 | ImGui_ImplDX10_Shutdown: 未初期化でアサーション | E-04: L638 IM_ASSERT | ○ |
| C-26 | ImGui_ImplDX10_NewFrame: フレーム開始 | E-04: L653-661 | ○ |
| C-27 | ImGui_ImplDX10_NewFrame: 未初期化でアサーション | E-04: L656 IM_ASSERT | ○ |
| C-28 | ImGui_ImplDX10_RenderDrawData: 描画処理 | E-04: L157-327 | ○ |
| C-29 | ImGui_ImplDX10_RenderDrawData: DisplaySize<=0で早期リターン | E-04: L160-161 | ○ |
| C-30 | ImGui_ImplDX10_RenderDrawData: 状態バックアップ/復元 | E-04: L216-326 | ○ |
| C-31 | ImGui_ImplDX10_CreateDeviceObjects: オブジェクト作成 | E-04: L409-576 | ○ |
| C-32 | ImGui_ImplDX10_CreateDeviceObjects: シェーダーコンパイル失敗 | E-04: L453, L507 | ○ |
| C-33 | ImGui_ImplDX10_InvalidateDeviceObjects: オブジェクト無効化 | E-04: L578-599 | ○ |
| C-34 | ImGui_ImplDX10_UpdateTexture: テクスチャ作成 | E-04: L348-391 | ○ |
| C-35 | ImGui_ImplDX10_UpdateTexture: テクスチャ更新 | E-04: L392-404 | ○ |
| C-36 | ImGui_ImplDX10_UpdateTexture: テクスチャ破棄 | E-04: L405-407 | ○ |
| C-37 | ImGui_ImplDX10_SetupRenderState: レンダー状態設定 | E-04: L102-154 | ○ |
| C-38 | ImGui_ImplDX10_DestroyTexture: テクスチャ解放 | E-04: L329-343 | ○ |
| C-39 | ImGui_ImplDX10_GetBackendData: データ取得 | E-04: L96-99 | ○ |
| C-40 | ImGui_ImplDX10_RenderDrawData: UserCallback処理 | E-04: L279-286 | ○ |

### DirectX11 バックエンド (UT-DX11-001 ~ UT-DX11-020)

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-41 | ImGui_ImplDX11_Init: 有効なデバイスとコンテキストで初期化成功 | E-06: L617-652 | ○ |
| C-42 | ImGui_ImplDX11_Init: nullptrデバイスで失敗 | E-06: L621 IM_ASSERT | ○ |
| C-43 | ImGui_ImplDX11_Init: 二重初期化でアサーション | E-06: L621 "Already initialized" | ○ |
| C-44 | ImGui_ImplDX11_Shutdown: 正常シャットダウン | E-06: L654-671 | ○ |
| C-45 | ImGui_ImplDX11_Shutdown: 未初期化でアサーション | E-06: L657 IM_ASSERT | ○ |
| C-46 | ImGui_ImplDX11_NewFrame: フレーム開始 | E-06: L673-681 | ○ |
| C-47 | ImGui_ImplDX11_NewFrame: 未初期化でアサーション | E-06: L676 IM_ASSERT | ○ |
| C-48 | ImGui_ImplDX11_RenderDrawData: 描画処理 | E-06: L163-343 | ○ |
| C-49 | ImGui_ImplDX11_RenderDrawData: DisplaySize<=0で早期リターン | E-06: L166-167 | ○ |
| C-50 | ImGui_ImplDX11_RenderDrawData: 状態バックアップ/復元 | E-06: L224-342 | ○ |
| C-51 | ImGui_ImplDX11_CreateDeviceObjects: オブジェクト作成 | E-06: L424-591 | ○ |
| C-52 | ImGui_ImplDX11_CreateDeviceObjects: シェーダーコンパイル失敗 | E-06: L468, L522 | ○ |
| C-53 | ImGui_ImplDX11_InvalidateDeviceObjects: オブジェクト無効化 | E-06: L593-615 | ○ |
| C-54 | ImGui_ImplDX11_UpdateTexture: テクスチャ作成 | E-06: L364-406 | ○ |
| C-55 | ImGui_ImplDX11_UpdateTexture: テクスチャ更新 | E-06: L407-419 | ○ |
| C-56 | ImGui_ImplDX11_UpdateTexture: テクスチャ破棄 | E-06: L420-422 | ○ |
| C-57 | ImGui_ImplDX11_SetupRenderState: レンダー状態設定 | E-06: L105-160 | ○ |
| C-58 | ImGui_ImplDX11_DestroyTexture: テクスチャ解放 | E-06: L345-359 | ○ |
| C-59 | ImGui_ImplDX11_GetBackendData: データ取得 | E-06: L99-102 | ○ |
| C-60 | ImGui_ImplDX11_RenderDrawData: Renderer_RenderState設定 | E-06: L273-280 | ○ |

### DirectX12 バックエンド (UT-DX12-001 ~ UT-DX12-030)

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-61 | ImGui_ImplDX12_Init: 有効なInitInfoで初期化成功 | E-08: L905-949 | ○ |
| C-62 | ImGui_ImplDX12_Init: nullptrデバイスで失敗 | E-08: L909 IM_ASSERT | ○ |
| C-63 | ImGui_ImplDX12_Init: 二重初期化でアサーション | E-08: L909 "Already initialized" | ○ |
| C-64 | ImGui_ImplDX12_Init: CommandQueueがnullでアサーション | E-08: L917 IM_ASSERT | ○ |
| C-65 | ImGui_ImplDX12_Shutdown: 正常シャットダウン | E-08: L981-996 | ○ |
| C-66 | ImGui_ImplDX12_Shutdown: 未初期化でアサーション | E-08: L984 IM_ASSERT | ○ |
| C-67 | ImGui_ImplDX12_NewFrame: フレーム開始 | E-08: L998-1006 | ○ |
| C-68 | ImGui_ImplDX12_NewFrame: 未初期化でアサーション | E-08: L1001 IM_ASSERT | ○ |
| C-69 | ImGui_ImplDX12_RenderDrawData: 描画処理 | E-08: L224-365 | ○ |
| C-70 | ImGui_ImplDX12_RenderDrawData: DisplaySize<=0で早期リターン | E-08: L227-228 | ○ |
| C-71 | ImGui_ImplDX12_RenderDrawData: フレームリソース循環 | E-08: L239-240 | ○ |
| C-72 | ImGui_ImplDX12_CreateDeviceObjects: オブジェクト作成 | E-08: L570-840 | ○ |
| C-73 | ImGui_ImplDX12_CreateDeviceObjects: シェーダーコンパイル失敗 | E-08: L726-727, L758-762 | ○ |
| C-74 | ImGui_ImplDX12_CreateDeviceObjects: DLLなしでfalse | E-08: L652-653 | ○ |
| C-75 | ImGui_ImplDX12_InvalidateDeviceObjects: オブジェクト無効化 | E-08: L842-881 | ○ |
| C-76 | ImGui_ImplDX12_UpdateTexture: テクスチャ作成 | E-08: L391-440 | ○ |
| C-77 | ImGui_ImplDX12_UpdateTexture: テクスチャ更新 | E-08: L442-564 | ○ |
| C-78 | ImGui_ImplDX12_UpdateTexture: テクスチャ破棄 | E-08: L566-568 | ○ |
| C-79 | ImGui_ImplDX12_UpdateTexture: バッファ拡張 | E-08: L462-500 | ○ |
| C-80 | ImGui_ImplDX12_SetupRenderState: レンダー状態設定 | E-08: L164-213 | ○ |
| C-81 | ImGui_ImplDX12_DestroyTexture: テクスチャ解放 | E-08: L367-384 | ○ |
| C-82 | ImGui_ImplDX12_SetupSamplerLinear: リニアサンプラー設定 | E-08: L150-155 | ○ |
| C-83 | ImGui_ImplDX12_SetupSamplerNearest: ニアレストサンプラー設定 | E-08: L157-162 | ○ |
| C-84 | ImGui_ImplDX12_GetBackendData: データ取得 | E-08: L126-129 | ○ |
| C-85 | SafeRelease: リソース解放 | E-08: L215-221 | ○ |
| C-86 | SafeRelease: nullptrでも安全 | E-08: L218 if (res) | ○ |
| C-87 | ImGui_ImplDX12_Init: レガシーAPI互換 | E-08: L951-979 | ○ |
| C-88 | ImGui_ImplDX12_InitLegacySingleDescriptorMode: レガシーモード | E-08: L884-902 | ○ |
| C-89 | ImGui_ImplDX12_RenderDrawData: UserCallback処理 | E-08: L333-341 | ○ |
| C-90 | ImGui_ImplDX12_RenderDrawData: ResetRenderState | E-08: L337-338 | ○ |

## 4) 不足情報（Unknown / Missing）
- なし（全テストケースがソースコードに基づいて生成されています）

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - 全テストケースがソースコードの実装に基づいており、API仕様と一致しています

### 補足事項
- DirectXバックエンドはWindows専用のため、実際のテスト実行にはWindows環境が必要
- DX12はGPU同期処理（Fence）を含むため、タイミング依存のテストに注意が必要
- レガシーAPI（DX12の旧Init関数）は将来廃止予定のため、テストの優先度は低め

## 6) レビュアーチェックリスト（最小）
- [ ] テストID命名規則（UT-DX9/DX10/DX11/DX12-XXX）が一貫しているか
- [ ] 各DirectXバージョンの主要API（Init/Shutdown/NewFrame/RenderDrawData）が網羅されているか
- [ ] 正常系/異常系/境界値の観点が適切にカバーされているか
- [ ] テクスチャライフサイクル（Create/Update/Destroy）のテストが含まれているか
- [ ] デバイスオブジェクト管理（Create/Invalidate）のテストが含まれているか
- [ ] レンダー状態のバックアップ/復元に関するテストが含まれているか
- [ ] 大規模メッシュ（64K+頂点）サポートのテストが含まれているか
- [ ] DX12固有の機能（フレームリソース循環、Fence同期）のテストが含まれているか
