フォト

Google AdSense

  • AdSense
無料ブログはココログ

« 久々に | トップページ | 見やすく »

2007.10.13

シェーダデバッガの出力

もしかして、Direct3D10のD3DX10CreateEffectFromFile()のHLSLフラグにD3D10_SHADER_DEBUGを指定してもVisual Studio 2005の「出力」にデバッガの出力を吐いてくれなくなった?

とりあえず、下記のようなコードで対処してみたけど、いいのかな?

ID3D10Blob*	blob = NULL;
DWORD dwShaderFlags = D3D10_SHADER_ENABLE_STRICTNESS;
#if defined( DEBUG ) || defined( _DEBUG )
dwShaderFlags |= D3D10_SHADER_DEBUG;
#endif
hr = D3DX10CreateEffectFromFile( L"DebugRenderer.fx", NULL, NULL, "fx_4_0",
	dwShaderFlags, 0, pDevice, NULL, NULL, &m_pEffect, &blob, NULL );
if( FAILED( hr ) )
{
	UINT bs = blob->GetBufferSize();
	char*	str = new char[bs];	
	WCHAR*	wstr= new WCHAR[bs];
	memcpy( str, blob->GetBufferPointer(), bs);
	MultiByteToWideChar(CP_UTF8, 0, str, -1, wstr, bs);

OutputDebugString( wstr );
return hr;
}

« 久々に | トップページ | 見やすく »

Programming」カテゴリの記事

コメント

うちではこんな感じにしてます。
ID3D10Blob* iblob= NULL;
if( FAILED( D3DX10CreateEffectFromFile( TEXT("model.fx"), NULL,~, &iblog, NULL ) ) ){
OutputDebugStringA( reinterpret_cast<char*>(iblob->GetBufferPointer() ) );
iblob->Release();
return;
}

基本的に、ID3D10Blobを見るのでいいんですね。

そういえば、明示的に"A"つけてAscii版を呼び出す方法がありましたね。

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« 久々に | トップページ | 見やすく »