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

# 根拠レポート: Avalonia.OpenGL 単体テストケース一覧

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：188 / 188、根拠なし：0
- 優先レビュー（高）
  1. **EglContext.MakeCurrent関連テストケース**：コンテキストロスト処理の複雑性
  2. **ExternalObjectsOpenGlExtensionFeature.ImportImage/ImportSemaphore**：Vulkan連携の複雑性
  3. **OpenGlControlBase ライフサイクルテスト**：非同期初期化とコンポジション連携

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

- E-01: `src/Avalonia.OpenGL/GlVersion.cs`
- E-02: `src/Avalonia.OpenGL/GlBasicInfoInterface.cs`
- E-03: `src/Avalonia.OpenGL/GlInterface.cs`
- E-04: `src/Avalonia.OpenGL/OpenGlException.cs`
- E-05: `src/Avalonia.OpenGL/GlEntryPointAttribute.cs`
- E-06: `src/Avalonia.OpenGL/GlErrors.cs`
- E-07: `src/Avalonia.OpenGL/GlConsts.cs`
- E-08: `src/Avalonia.OpenGL/IGlContext.cs`
- E-09: `src/Avalonia.OpenGL/IGlContextExternalObjectsFeature.cs`
- E-10: `src/Avalonia.OpenGL/IOpenGlTextureSharingRenderInterfaceContextFeature.cs`
- E-11: `src/Avalonia.OpenGL/IPlatformGraphicsOpenGlContextFactory.cs`
- E-12: `src/Avalonia.OpenGL/Egl/EglInterface.cs`
- E-13: `src/Avalonia.OpenGL/Egl/EglDisplay.cs`
- E-14: `src/Avalonia.OpenGL/Egl/EglContext.cs`
- E-15: `src/Avalonia.OpenGL/Egl/EglSurface.cs`
- E-16: `src/Avalonia.OpenGL/Egl/EglDisplayUtils.cs`
- E-17: `src/Avalonia.OpenGL/Egl/EglErrors.cs`
- E-18: `src/Avalonia.OpenGL/Egl/EglConsts.cs`
- E-19: `src/Avalonia.OpenGL/Egl/EglDisplayOptions.cs`
- E-20: `src/Avalonia.OpenGL/Egl/EglGlPlatformSurface.cs`
- E-21: `src/Avalonia.OpenGL/Egl/EglGlPlatformSurfaceBase.cs`
- E-22: `src/Avalonia.OpenGL/Egl/EglPlatformGraphics.cs`
- E-23: `src/Avalonia.OpenGL/Controls/OpenGlControlBase.cs`
- E-24: `src/Avalonia.OpenGL/Controls/OpenGlControlResources.cs`
- E-25: `src/Avalonia.OpenGL/Controls/CompositionOpenGlSwapchain.cs`
- E-26: `src/Avalonia.OpenGL/Features/ExternalObjectsOpenGlExtensionFeature.cs`
- E-27: `src/Avalonia.OpenGL/Surfaces/IGlPlatformSurface.cs`
- E-28: `src/Avalonia.OpenGL/Surfaces/IGlPlatformSurfaceRenderTarget.cs`
- E-29: `src/Avalonia.OpenGL/Surfaces/IGlPlatformSurfaceRenderingSession.cs`

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

### GlVersion (UT-OGL-001 - UT-OGL-004)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | GlVersionのコンストラクタ(3引数)がOpenGLプロファイルとバージョン情報を正しく設定する | E-01: GlVersion.cs 行16-17 | ○ |
| C-02 | GlVersionのコンストラクタ(4引数)が互換プロファイルフラグを設定する | E-01: GlVersion.cs 行17-23 | ○ |
| C-03 | OpenGLESプロファイルのバージョン情報が正しく設定される | E-01: GlVersion.cs 行9-14 | ○ |
| C-04 | メジャーバージョン0が設定可能（境界値） | E-01: GlVersion.cs 行12 | ○ |

### GlBasicInfoInterface (UT-OGL-005 - UT-OGL-010)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-05 | GetString(int)が有効なポインタから文字列を取得する | E-02: GlBasicInfoInterface.cs 行31-37 | ○ |
| C-06 | GetString(int)がIntPtr.Zero時にnullを返却する | E-02: GlBasicInfoInterface.cs 行33-36 | ○ |
| C-07 | GetString(int, int)がインデックス付きで文字列を取得する | E-02: GlBasicInfoInterface.cs 行39-45 | ○ |
| C-08 | GetExtensionsが古いOpenGLでスペース区切りリストを処理する | E-02: GlBasicInfoInterface.cs 行47-56 | ○ |
| C-09 | GetExtensionsが新しいOpenGLでインデックス付きリストを処理する | E-02: GlBasicInfoInterface.cs 行62-72 | ○ |
| C-10 | GetExtensionsが拡張機能0件で空リストを返却する | E-02: GlBasicInfoInterface.cs 行62-63 | ○ |

### GlInterface (UT-OGL-011 - UT-OGL-034)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-11 | GlContextInfoがバージョンと拡張機能セットを正しく初期化する | E-03: GlInterface.cs 行27-44 | ○ |
| C-12 | GlContextInfo.CreateがgetProcAddressから正しくコンテキスト情報を生成する | E-03: GlInterface.cs 行38-43 | ○ |
| C-13 | GlInterfaceコンストラクタが正しく初期化する | E-03: GlInterface.cs 行46-58 | ○ |
| C-14 | GetProcAddressがGL関数のアドレスを取得する | E-03: GlInterface.cs 行66 | ○ |
| C-15 | GenFramebufferがフレームバッファIDを生成する | E-03: GlInterface.cs 行109-114 | ○ |
| C-16 | DeleteFramebufferがフレームバッファを削除する | E-03: GlInterface.cs 行119-122 | ○ |
| C-17 | GenRenderbufferがレンダーバッファIDを生成する | E-03: GlInterface.cs 行146-151 | ○ |
| C-18 | DeleteRenderbufferがレンダーバッファを削除する | E-03: GlInterface.cs 行156-159 | ○ |
| C-19 | GenTextureがテクスチャIDを生成する | E-03: GlInterface.cs 行174-179 | ○ |
| C-20 | DeleteTextureがテクスチャを削除する | E-03: GlInterface.cs 行190 | ○ |
| C-21 | GenBufferがバッファIDを生成する | E-03: GlInterface.cs 行296-301 | ○ |
| C-22 | DeleteBufferがバッファを削除する | E-03: GlInterface.cs 行361 | ○ |
| C-23 | GenVertexArrayが頂点配列IDを生成する | E-03: GlInterface.cs 行391-396 | ○ |
| C-24 | DeleteVertexArrayが頂点配列を削除する | E-03: GlInterface.cs 行378 | ○ |
| C-25 | ShaderSourceStringがシェーダーソースを設定する | E-03: GlInterface.cs 行214-222 | ○ |
| C-26 | CompileShaderAndGetErrorがコンパイル成功時nullを返す | E-03: GlInterface.cs 行233-250 | ○ |
| C-27 | CompileShaderAndGetErrorがコンパイル失敗時エラーメッセージを返す | E-03: GlInterface.cs 行241-250 | ○ |
| C-28 | LinkProgramAndGetErrorがリンク成功時nullを返す | E-03: GlInterface.cs 行268-282 | ○ |
| C-29 | LinkProgramAndGetErrorがリンク失敗時エラーメッセージを返す | E-03: GlInterface.cs 行272-281 | ○ |
| C-30 | ClearDepthがClearDepthDoubleを呼び出す（利用可能時） | E-03: GlInterface.cs 行80-86 | ○ |
| C-31 | ClearDepthがClearDepthFloatを呼び出す（Double未対応時） | E-03: GlInterface.cs 行84-86 | ○ |
| C-32 | GetAttribLocationStringが属性ロケーションを取得する | E-03: GlInterface.cs 行312-316 | ○ |
| C-33 | GetUniformLocationStringがユニフォームロケーションを取得する | E-03: GlInterface.cs 行337-341 | ○ |
| C-34 | FromNativeUtf8GetProcAddressがGlInterfaceを生成する | E-03: GlInterface.cs 行398-407 | ○ |

### OpenGlException (UT-OGL-035 - UT-OGL-039)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-35 | OpenGlExceptionコンストラクタがメッセージを設定する | E-04: OpenGlException.cs 行10-12 | ○ |
| C-36 | GetFormattedException(string, GlInterface)がフォーマット済み例外を生成する | E-04: OpenGlException.cs 行24-28 | ○ |
| C-37 | GetFormattedException(string, int)がフォーマット済み例外を生成する | E-04: OpenGlException.cs 行30-31 | ○ |
| C-38 | GetFormattedEglExceptionがEGLフォーマット済み例外を生成する | E-04: OpenGlException.cs 行33-34 | ○ |
| C-39 | GetFormattedExceptionが未知エラーコードでも例外を生成する | E-04: OpenGlException.cs 行47-51 | ○ |

### GlEntryPointAttribute (UT-OGL-040 - UT-OGL-046)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-40 | GlMinVersionEntryPoint.GetProcAddressがバージョン要件を満たす場合アドレスを返す | E-05: GlEntryPointAttribute.cs 行17-27 | ○ |
| C-41 | GlMinVersionEntryPoint.GetProcAddressがバージョン要件を満たさない場合IntPtr.Zeroを返す | E-05: GlEntryPointAttribute.cs 行22-25 | ○ |
| C-42 | GlMinVersionEntryPoint.GetProcAddressがプロファイルタイプ不一致でIntPtr.Zeroを返す | E-05: GlEntryPointAttribute.cs 行20-21 | ○ |
| C-43 | GlMinVersionEntryPoint.GetProcAddressがマイナーバージョン境界を正しく判定する | E-05: GlEntryPointAttribute.cs 行24-25 | ○ |
| C-44 | GlExtensionEntryPoint.GetProcAddressが拡張機能存在時アドレスを返す | E-05: GlEntryPointAttribute.cs 行41-53 | ○ |
| C-45 | GlExtensionEntryPoint.GetProcAddressが拡張機能不存在時IntPtr.Zeroを返す | E-05: GlEntryPointAttribute.cs 行48-50 | ○ |
| C-46 | GlExtensionEntryPoint.GetProcAddressがプロファイルタイプ不一致でIntPtr.Zeroを返す | E-05: GlEntryPointAttribute.cs 行44-46 | ○ |

### EglInterface (UT-OGL-047 - UT-OGL-053)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-47 | EglInterfaceコンストラクタ(Func)がgetProcAddressから初期化する | E-12: EglInterface.cs 行12-15 | ○ |
| C-48 | EglInterfaceコンストラクタ(string)がライブラリパスから初期化する | E-12: EglInterface.cs 行17-19 | ○ |
| C-49 | Load()がLinuxでlibEGL.so.1をロードする | E-12: EglInterface.cs 行26-29 | ○ |
| C-50 | Load()がAndroidでlibEGL.soをロードする | E-12: EglInterface.cs 行30-31 | ○ |
| C-51 | Load()が未対応プラットフォームでPlatformNotSupportedExceptionをスローする | E-12: EglInterface.cs 行33 | ○ |
| C-52 | QueryStringがEGL文字列を取得する | E-12: EglInterface.cs 行118-124 | ○ |
| C-53 | QueryStringがIntPtr.Zero時にnullを返す | E-12: EglInterface.cs 行121-122 | ○ |

### EglDisplay (UT-OGL-054 - UT-OGL-066)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-54 | EglDisplayコンストラクタがディスプレイハンドルから初期化する | E-13: EglDisplay.cs 行39-49 | ○ |
| C-55 | EglDisplayコンストラクタがIntPtr.ZeroでArgumentExceptionをスローする | E-13: EglDisplay.cs 行45-46 | ○ |
| C-56 | CreateContextが新しいEGLコンテキストを作成する | E-13: EglDisplay.cs 行52-99 | ○ |
| C-57 | CreateContextが共有コンテキストを作成する | E-13: EglDisplay.cs 行60-61, 86 | ○ |
| C-58 | CreateContextが共有未サポート時にNotSupportedExceptionをスローする | E-13: EglDisplay.cs 行61-62 | ○ |
| C-59 | CreateContextがSingleContextで複数コンテキスト作成時にOpenGlExceptionをスローする | E-13: EglDisplay.cs 行54-55 | ○ |
| C-60 | CreateWindowSurfaceがウィンドウサーフェスを作成する | E-13: EglDisplay.cs 行102-115 | ○ |
| C-61 | CreateWindowSurfaceがIntPtr.ZeroでOpenGlExceptionをスローする | E-13: EglDisplay.cs 行104-105 | ○ |
| C-62 | CreatePBufferFromClientBufferがPBufferを作成する | E-13: EglDisplay.cs 行117-136 | ○ |
| C-63 | IsLostがディスプレイロスト状態を正しく判定する | E-13: EglDisplay.cs 行154-164 | ○ |
| C-64 | IsLostが有効なディスプレイでfalseを返す | E-13: EglDisplay.cs 行157-163 | ○ |
| C-65 | Lockがロックを取得する | E-13: EglDisplay.cs 行166-170 | ○ |
| C-66 | Disposeがリソースを正しく解放する | E-13: EglDisplay.cs 行172-184 | ○ |

### EglContext (UT-OGL-067 - UT-OGL-087)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-67 | Contextプロパティがコンテキストハンドルを返す | E-14: EglContext.cs 行43-44 | ○ |
| C-68 | Contextプロパティがディスポーズ後にObjectDisposedExceptionをスローする | E-14: EglContext.cs 行43-44 | ○ |
| C-69 | MakeCurrent()がコンテキストをカレントにする | E-14: EglContext.cs 行80 | ○ |
| C-70 | MakeCurrent(EglSurface)がサーフェス指定でコンテキストをカレントにする | E-14: EglContext.cs 行82-115 | ○ |
| C-71 | MakeCurrentがロスト状態でPlatformGraphicsContextLostExceptionをスローする | E-14: EglContext.cs 行84-85 | ○ |
| C-72 | MakeCurrentがEGL_CONTEXT_LOSTでロスト通知と例外をスローする | E-14: EglContext.cs 行97-104 | ○ |
| C-73 | NotifyContextLostがロスト状態を設定しディスプレイに通知する | E-14: EglContext.cs 行117-121 | ○ |
| C-74 | IsLostがコンテキストのロスト状態を判定する | E-14: EglContext.cs 行123 | ○ |
| C-75 | EnsureCurrentがカレント時にDisposable.Emptyを返す | E-14: EglContext.cs 行125-130 | ○ |
| C-76 | EnsureCurrentが非カレント時にMakeCurrentを呼び出す | E-14: EglContext.cs 行127-129 | ○ |
| C-77 | EnsureLockedがカレント時にDisposable.Emptyを返す | E-14: EglContext.cs 行132-138 | ○ |
| C-78 | IsSharedWithが同一コンテキストでtrueを返す | E-14: EglContext.cs 行140-147 | ○ |
| C-79 | IsSharedWithが共有元コンテキストでtrueを返す | E-14: EglContext.cs 行143-146 | ○ |
| C-80 | IsSharedWithが非共有コンテキストでfalseを返す | E-14: EglContext.cs 行140-147 | ○ |
| C-81 | CreateSharedContextが共有コンテキストを作成する | E-14: EglContext.cs 行151-155 | ○ |
| C-82 | IsCurrentがカレントコンテキスト判定を行う | E-14: EglContext.cs 行157 | ○ |
| C-83 | Disposeがリソースを解放する | E-14: EglContext.cs 行159-176 | ○ |
| C-84 | Disposeがディスポーズ済みで何もしない | E-14: EglContext.cs 行161-162 | ○ |
| C-85 | DisposeがフィーチャのIDisposableを解放する | E-14: EglContext.cs 行164-169 | ○ |
| C-86 | TryGetFeatureが登録済みフィーチャを返す | E-14: EglContext.cs 行178-183 | ○ |
| C-87 | TryGetFeatureが未登録フィーチャでnullを返す | E-14: EglContext.cs 行181-182 | ○ |

### EglSurface (UT-OGL-088 - UT-OGL-092)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-88 | EglSurfaceコンストラクタがサーフェスを初期化する | E-15: EglSurface.cs 行11-15 | ○ |
| C-89 | IsInvalidがIntPtr.Zeroでtrueを返す | E-15: EglSurface.cs 行24 | ○ |
| C-90 | IsInvalidが有効ハンドルでfalseを返す | E-15: EglSurface.cs 行24 | ○ |
| C-91 | SwapBuffersがバッファスワップを実行する | E-15: EglSurface.cs 行25 | ○ |
| C-92 | ReleaseHandleがサーフェスを破棄する | E-15: EglSurface.cs 行17-22 | ○ |

### EglDisplayUtils (UT-OGL-093 - UT-OGL-101)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-93 | CreateDisplayがデフォルトディスプレイを取得する | E-16: EglDisplayUtils.cs 行9-30 | ○ |
| C-94 | CreateDisplayがプラットフォーム指定でディスプレイを取得する | E-16: EglDisplayUtils.cs 行18-25 | ○ |
| C-95 | CreateDisplayがeglGetPlatformDisplayEXT未対応時にOpenGlExceptionをスローする | E-16: EglDisplayUtils.cs 行20-21 | ○ |
| C-96 | CreateDisplayがディスプレイ取得失敗時にOpenGlExceptionをスローする | E-16: EglDisplayUtils.cs 行27-28 | ○ |
| C-97 | InitializeAndGetConfigがEGL初期化と設定取得を行う | E-16: EglDisplayUtils.cs 行32-109 | ○ |
| C-98 | InitializeAndGetConfigが初期化失敗時にOpenGlExceptionをスローする | E-16: EglDisplayUtils.cs 行34-35 | ○ |
| C-99 | InitializeAndGetConfigが設定未発見時にOpenGlExceptionをスローする | E-16: EglDisplayUtils.cs 行108 | ○ |
| C-100 | InitializeAndGetConfigがOpenGLES3.0を優先的に選択する | E-16: EglDisplayUtils.cs 行37-42 | ○ |
| C-101 | EglConfigInfoコンストラクタがプロパティを設定する | E-16: EglDisplayUtils.cs 行114-133 | ○ |

### EglGlPlatformSurfaceBase (UT-OGL-102 - UT-OGL-111)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-102 | BeginDraw(PixelSize?)がレンダリングセッションを開始する | E-21: EglGlPlatformSurfaceBase.cs 行25-31 | ○ |
| C-103 | BeginDrawがコンテキストロスト時にRenderTargetCorruptedExceptionをスローする | E-21: EglGlPlatformSurfaceBase.cs 行27-28 | ○ |
| C-104 | IsCorruptedがコンテキストのロスト状態を反映する | E-21: EglGlPlatformSurfaceBase.cs 行112 | ○ |
| C-105 | Sessionのクローズ時にバッファスワップと同期が実行される | E-21: EglGlPlatformSurfaceBase.cs 行89-103 | ○ |
| C-106 | SkipWaits=trueで同期がスキップされる | E-21: EglGlPlatformSurfaceBase.cs 行92-100 | ○ |
| C-107 | CreateGlRenderTargetがレンダーターゲットを作成する | E-20: EglGlPlatformSurface.cs 行29-35 | ○ |
| C-108 | BeginDrawCoreが描画セッションを開始する | E-20: EglGlPlatformSurface.cs 行57-70 | ○ |
| C-109 | サイズ変更時にサーフェスが再作成される | E-20: EglGlPlatformSurface.cs 行60-68 | ○ |
| C-110 | ハンドル変更時にサーフェスが再作成される | E-20: EglGlPlatformSurface.cs 行61 | ○ |
| C-111 | Disposeがサーフェスを解放する | E-20: EglGlPlatformSurface.cs 行55 | ○ |

### EglPlatformGraphics (UT-OGL-112 - UT-OGL-119)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-112 | コンストラクタがEglDisplayから初期化する | E-22: EglPlatformGraphics.cs 行14-17 | ○ |
| C-113 | UsesSharedContextがfalseを返す | E-22: EglPlatformGraphics.cs 行10 | ○ |
| C-114 | CreateContextが新しいコンテキストを作成する | E-22: EglPlatformGraphics.cs 行11 | ○ |
| C-115 | GetSharedContextがNotSupportedExceptionをスローする | E-22: EglPlatformGraphics.cs 行12 | ○ |
| C-116 | TryCreate()がEglPlatformGraphicsを作成する | E-22: EglPlatformGraphics.cs 行19-25 | ○ |
| C-117 | TryCreate()が初期化失敗時にnullを返す | E-22: EglPlatformGraphics.cs 行27-38 | ○ |
| C-118 | TryCreate(Func)がカスタムファクトリで作成する | E-22: EglPlatformGraphics.cs 行27-38 | ○ |
| C-119 | TryCreate(Func)がファクトリ例外時にnullを返す | E-22: EglPlatformGraphics.cs 行32-37 | ○ |

### OpenGlControlBase (UT-OGL-120 - UT-OGL-129)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-120 | コンストラクタがコントロールを初期化する | E-23: OpenGlControlBase.cs 行50-53 | ○ |
| C-121 | RequestNextFrameRenderingがレンダリングをリクエストする | E-23: OpenGlControlBase.cs 行256-264 | ○ |
| C-122 | キュー済みの場合リクエストが重複しない | E-23: OpenGlControlBase.cs 行258 | ○ |
| C-123 | OnAttachedToVisualTreeがCompositorを設定しレンダリングをリクエストする | E-23: OpenGlControlBase.cs 行90-95 | ○ |
| C-124 | OnDetachedFromVisualTreeがリソースをクリーンアップする | E-23: OpenGlControlBase.cs 行83-87 | ○ |
| C-125 | Boundsプロパティ変更時にビジュアルサイズが更新される | E-23: OpenGlControlBase.cs 行143-152 | ○ |
| C-126 | OnOpenGlInitが初期化時に呼び出される | E-23: OpenGlControlBase.cs 行277-280 | ○ |
| C-127 | OnOpenGlDeinitが破棄時に呼び出される | E-23: OpenGlControlBase.cs 行286-289 | ○ |
| C-128 | OnOpenGlLostがコンテキストロスト時に呼び出される | E-23: OpenGlControlBase.cs 行294-297 | ○ |
| C-129 | InvalidateVisualがRequestNextFrameRenderingを呼び出す（非推奨） | E-23: OpenGlControlBase.cs 行251 | ○ |

### OpenGlControlBaseResources (UT-OGL-130 - UT-OGL-139)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-130 | TryCreate(sharing)が共有機能からリソースを作成する | E-24: OpenGlControlResources.cs 行20-44 | ○ |
| C-131 | TryCreate(sharing)が共有コンテキスト作成失敗時にnullを返す | E-24: OpenGlControlResources.cs 行29-34 | ○ |
| C-132 | TryCreate(sharing)がコンテキストnullでnullを返す | E-24: OpenGlControlResources.cs 行36-41 | ○ |
| C-133 | TryCreate(external)が外部オブジェクト機能からリソースを作成する | E-24: OpenGlControlResources.cs 行46-55 | ○ |
| C-134 | TryCreate(external)がD3D11未サポート時にnullを返す | E-24: OpenGlControlResources.cs 行49-53 | ○ |
| C-135 | BeginDrawが描画を開始しFBOを設定する | E-24: OpenGlControlResources.cs 行93-138 | ○ |
| C-136 | サイズ変更時に深度バッファが再作成される | E-24: OpenGlControlResources.cs 行74-91 | ○ |
| C-137 | フレームバッファ不完全時にOpenGlExceptionをスローする | E-24: OpenGlControlResources.cs 行107-114 | ○ |
| C-138 | DisposeAsyncがリソースを非同期で解放する | E-24: OpenGlControlResources.cs 行140-171 | ○ |
| C-139 | DisposeAsyncがコンテキストロスト時もエラーなく完了する | E-24: OpenGlControlResources.cs 行142 | ○ |

### CompositionOpenGlSwapchain (UT-OGL-140 - UT-OGL-153)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-140 | コンストラクタ(sharing)が共有機能でスワップチェーンを初期化する | E-25: CompositionOpenGlSwapchain.cs 行15-21 | ○ |
| C-141 | コンストラクタ(external)が外部オブジェクト機能でスワップチェーンを初期化する | E-25: CompositionOpenGlSwapchain.cs 行23-28 | ○ |
| C-142 | CreateImageが共有機能使用時にCompositionOpenGlSwapChainImageを作成する | E-25: CompositionOpenGlSwapchain.cs 行34-35 | ○ |
| C-143 | CreateImageが外部オブジェクト使用時にDxgiMutexOpenGlSwapChainImageを作成する | E-25: CompositionOpenGlSwapchain.cs 行36 | ○ |
| C-144 | BeginDrawが描画開始時にテクスチャを返す | E-25: CompositionOpenGlSwapchain.cs 行39-44 | ○ |
| C-145 | DxgiMutexOpenGlSwapChainImageコンストラクタがD3D11テクスチャを作成する | E-25: CompositionOpenGlSwapchain.cs 行67-74 | ○ |
| C-146 | TextureIdがテクスチャIDを返す | E-25: CompositionOpenGlSwapchain.cs 行94 | ○ |
| C-147 | BeginDrawがキードミューテックスを取得する | E-25: CompositionOpenGlSwapchain.cs 行98 | ○ |
| C-148 | Presentがミューテックス解放とコンポジションへの送信を行う | E-25: CompositionOpenGlSwapchain.cs 行100-105 | ○ |
| C-149 | DisposeAsyncがテクスチャを解放する | E-25: CompositionOpenGlSwapchain.cs 行75-92 | ○ |
| C-150 | CompositionOpenGlSwapChainImageコンストラクタが共有テクスチャを作成する | E-25: CompositionOpenGlSwapchain.cs 行115-125 | ○ |
| C-151 | BeginDrawが共有テクスチャではno-opである | E-25: CompositionOpenGlSwapchain.cs 行152-155 | ○ |
| C-152 | Presentがコンポジションへの送信を行う | E-25: CompositionOpenGlSwapchain.cs 行157-161 | ○ |
| C-153 | DisposeAsyncがテクスチャを解放する | E-25: CompositionOpenGlSwapchain.cs 行128-146 | ○ |

### ExternalObjectsOpenGlExtensionFeature (UT-OGL-154 - UT-OGL-178)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-154 | TryCreateが拡張機能利用可能時にインスタンスを作成する | E-26: ExternalObjectsOpenGlExtensionFeature.cs 行69-86 | ○ |
| C-155 | TryCreateが拡張機能利用不可時にnullを返す | E-26: ExternalObjectsOpenGlExtensionFeature.cs 行71-72 | ○ |
| C-156 | TryCreateが初期化例外時にnullを返しログ出力する | E-26: ExternalObjectsOpenGlExtensionFeature.cs 行77-83 | ○ |
| C-157 | GetSupportedFormatsForExternalMemoryTypeがR8G8B8A8UNormを返す | E-26: ExternalObjectsOpenGlExtensionFeature.cs 行129-135 | ○ |
| C-158 | CreateImageがNotSupportedExceptionをスローする | E-26: ExternalObjectsOpenGlExtensionFeature.cs 行137-139 | ○ |
| C-159 | CreateSemaphoreがNotSupportedExceptionをスローする | E-26: ExternalObjectsOpenGlExtensionFeature.cs 行141 | ○ |
| C-160 | ImportImageがVulkan fdからイメージをインポートする | E-26: ExternalObjectsOpenGlExtensionFeature.cs 行143-183 | ○ |
| C-161 | ImportImageがHandleDescriptorがnull/空でArgumentExceptionをスローする | E-26: ExternalObjectsOpenGlExtensionFeature.cs 行147-148 | ○ |
| C-162 | ImportImageが未サポートタイプでArgumentExceptionをスローする | E-26: ExternalObjectsOpenGlExtensionFeature.cs 行150-151 | ○ |
| C-163 | ImportImageがGLエラー時にOpenGlExceptionをスローする | E-26: ExternalObjectsOpenGlExtensionFeature.cs 行163-165 | ○ |
| C-164 | ImportSemaphoreがVulkan fdからセマフォをインポートする | E-26: ExternalObjectsOpenGlExtensionFeature.cs 行185-203 | ○ |
| C-165 | ImportSemaphoreがHandleDescriptorがnull/空でArgumentExceptionをスローする | E-26: ExternalObjectsOpenGlExtensionFeature.cs 行189-190 | ○ |
| C-166 | ImportSemaphoreが未サポートタイプでArgumentExceptionをスローする | E-26: ExternalObjectsOpenGlExtensionFeature.cs 行192-193 | ○ |
| C-167 | GetSynchronizationCapabilitiesがVulkan fdでSemaphoresを返す | E-26: ExternalObjectsOpenGlExtensionFeature.cs 行205-210 | ○ |
| C-168 | GetSynchronizationCapabilitiesが未知タイプでdefaultを返す | E-26: ExternalObjectsOpenGlExtensionFeature.cs 行209 | ○ |
| C-169 | ExternalSemaphore.WaitSemaphoreがセマフォ待機を実行する | E-26: ExternalObjectsOpenGlExtensionFeature.cs 行237-243 | ○ |
| C-170 | ExternalSemaphore.SignalSemaphoreがセマフォシグナルを実行する | E-26: ExternalObjectsOpenGlExtensionFeature.cs 行245-251 | ○ |
| C-171 | WaitTimelineSemaphoreがNotSupportedExceptionをスローする | E-26: ExternalObjectsOpenGlExtensionFeature.cs 行253-256 | ○ |
| C-172 | SignalTimelineSemaphoreがNotSupportedExceptionをスローする | E-26: ExternalObjectsOpenGlExtensionFeature.cs 行258-261 | ○ |
| C-173 | ExternalSemaphore.Disposeがセマフォを削除する | E-26: ExternalObjectsOpenGlExtensionFeature.cs 行228-235 | ○ |
| C-174 | ExternalSemaphore.Disposeがコンテキストロスト時に何もしない | E-26: ExternalObjectsOpenGlExtensionFeature.cs 行230-231 | ○ |
| C-175 | ExternalImageTexture.AcquireKeyedMutexがNotSupportedExceptionをスローする | E-26: ExternalObjectsOpenGlExtensionFeature.cs 行293 | ○ |
| C-176 | ExternalImageTexture.ReleaseKeyedMutexがNotSupportedExceptionをスローする | E-26: ExternalObjectsOpenGlExtensionFeature.cs 行295 | ○ |
| C-177 | ExternalImageTexture.Disposeがテクスチャとメモリを削除する | E-26: ExternalObjectsOpenGlExtensionFeature.cs 行281-291 | ○ |
| C-178 | ExternalImageTexture.Disposeがコンテキストロスト時に何もしない | E-26: ExternalObjectsOpenGlExtensionFeature.cs 行283-284 | ○ |

### Options/Interfaces/Enums (UT-OGL-179 - UT-OGL-188)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-179 | EglDisplayOptionsの全プロパティが設定・取得可能 | E-19: EglDisplayOptions.cs 行6-15 | ○ |
| C-180 | EglContextOptionsの全プロパティが設定・取得可能 | E-19: EglDisplayOptions.cs 行17-23 | ○ |
| C-181 | EglDisplayCreationOptionsの全プロパティが設定・取得可能 | E-19: EglDisplayOptions.cs 行25-30 | ○ |
| C-182 | IGlPlatformSurfaceRenderTarget.BeginDrawがセッションを開始する | E-28: IGlPlatformSurfaceRenderTarget.cs 行5-10 | ○ |
| C-183 | IGlPlatformSurfaceRenderTarget.IsCorruptedが破損状態を返す | E-28: IGlPlatformSurfaceRenderTarget.cs 行7 | ○ |
| C-184 | IGlPlatformSurfaceRenderingSessionの全プロパティが取得可能 | E-29: IGlPlatformSurfaceRenderingSession.cs 行5-11 | ○ |
| C-185 | GlErrors.GL_NO_ERRORがGlConstsと一致する | E-06: GlErrors.cs 行5 | ○ |
| C-186 | GlErrorsの全エラーコードがGlConstsと一致する | E-06: GlErrors.cs 行3-14 | ○ |
| C-187 | EglErrors.EGL_SUCCESSがEglConstsと一致する | E-17: EglErrors.cs 行5 | ○ |
| C-188 | EglErrorsの全エラーコードがEglConstsと一致する | E-17: EglErrors.cs 行3-20 | ○ |

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

## 5) リスクフラグ（レビュー観点）
- **0（低リスク）**: プロパティ取得、列挙値確認、基本的なコンストラクタテスト
- **1（中リスク）**: 境界値テスト、オプション処理テスト
- **2（高リスク）**:
  - コンテキストロスト処理（UT-OGL-071, UT-OGL-072, UT-OGL-073）
  - EGL/GL初期化失敗処理（UT-OGL-095 - UT-OGL-099）
  - 外部オブジェクトインポート（UT-OGL-160 - UT-OGL-166）
  - 非同期リソース解放（UT-OGL-138, UT-OGL-149, UT-OGL-153）

## 6) レビュアーチェックリスト（最小）
- [ ] コンテキストロスト関連テスト（UT-OGL-071-074）のシナリオが網羅的か確認
- [ ] 外部オブジェクトインポートテスト（UT-OGL-160-166）のエラーハンドリングが十分か確認
- [ ] 非同期Disposeテスト（UT-OGL-138, UT-OGL-149, UT-OGL-153）の競合条件を考慮しているか確認
- [ ] EGL初期化テスト（UT-OGL-097-100）のバージョン選択ロジックが正しいか確認
- [ ] OpenGlControlBaseライフサイクルテスト（UT-OGL-120-129）のタイミング問題がないか確認
