ミラー映像の初期化


VR 専用アプリの場合、HMD 内の液晶(有機EL)パネルに映像をレンダリングすれば事足りるわけですが、PC の画面になにも出てないといろいろと不都合があるので PC のデスクトップ上にミラー映像を出力することができます。
これは必ず必要なわけではないので、少しでも負荷を軽くしたい等の理由でミラー映像を出力しないという選択もあります。

変数の定義
	ovrTexture		*m_pOvrMirrorTex;

ミラーテクスチャの作成
	D3D11_TEXTURE2D_DESC TexDesc;
	memset( &TexDesc, 0, sizeof(TexDesc) );
	TexDesc.Width			= ...;	// 任意のテクスチャサイズを指定 //
	TexDesc.Height			= ...;
	TexDesc.MipLevels		= 1;
	TexDesc.ArraySize		= 1;
	TexDesc.Format			= DXGI_FORMAT_R8G8B8A8_UNORM_SRGB;
	TexDesc.SampleDesc.Count = 1;
	TexDesc.SampleDesc.Quality = 0;
	TexDesc.Usage			= D3D11_USAGE_DEFAULT;
	TexDesc.BindFlags		= D3D11_BIND_SHADER_RESOURCE;
	TexDesc.CPUAccessFlags	= 0;
	TexDesc.MiscFlags		= 0;
	ID3D11Device *pD3D11Device = ...; // ID3D11Device を取得、ここはアプリの設計依存 //
	ovrResult ores = ovr_CreateMirrorTextureD3D11( m_OVRSessionId, pD3D11Device, &TexDesc, 0, &m_pOvrMirrorTex );
	if (OVR_FAILURE(ores)) {
		// error
		return;
	}
ミラーテクスチャへのアクセスは「ミラー映像のレンダリング」の項で解説します。
デスクトップにウィンドウを作成して、このテクスチャを表示する手順は DirectX11 の一般的なものなのでここでは解説しません。


後始末
	ovr_DestroyMirrorTexture( m_OVRSessionId, m_pOvrMirrorTex );
アプリの終了時に実行する後始末の処理です


back