• Create Account

## OpenSharedResource renders black

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

No replies to this topic

### #1allbabel  Members

Posted 15 July 2012 - 08:22 AM

I am a newbie to DirectX and I have a problem with OpenSharedResource.

I am aquiring a handle to a shared resource from one process and wanting to display this same resource in a secondary process.

In the secondary process I get a texture handle to the shared resource:

_d3dDevice->OpenSharedResource( _sharedHandle, __uuidof(ID3D10Texture2D), (LPVOID*) &_sharedTexture );


I then copy this resource to my back buffer, pBuffer:

HRESULT hr = _sharedTexture->QueryInterface( __uuidof( ID3D10Resource ), ( void** )&pSrcResource );

if ( FAILED( hr ) )
return hr;

D3D10_TEXTURE2D_DESC desc;
ZeroMemory( &desc, sizeof(desc) );
_sharedTexture->GetDesc( &desc );

_d3dDevice->CopySubresourceRegion( pBuffer, 0, 0, 0, 0, pSrcResource, 0, 0 );


What I get is a black square drawn to my window. If I check the D3D10_TEXTURE2D_DESC I can see I have the correct dimensions etc but what appears on the screen seems to be a null texture.

Any ideas where I am going wrong? Is there something I need to do to the shared resource before I call CopySubresourceRegion? Should I be using a different technique to get at the shared resource?