Jump to content

  • Log In with Google      Sign In   
  • Create Account

Awesome job so far everyone! Please give us your feedback on how our article efforts are going. We still need more finished articles for our May contest theme: Remake the Classics

#Actuallomateron

Posted 03 March 2012 - 05:16 PM

its simple, but i am not secure if my code is correct, this is what i have made.
the texture will be used on this way: each pixel is a vector.

What i need is a:
new Texture------the main thing
ShaderResouceView with an effectShaderResourceVariable---- to read it
RenderTargetView-------- to write to it

This are the variables used:
ID3D10Texture2D*    VectorsBuffer;
ID3D10ShaderResourceView* g_pTexture2 = NULL;
ID3D10EffectShaderResourceVariable*    g_pTx2 = NULL;
ID3D10RenderTargetView*       g_pRenderTargetView2 = NULL;

AND THE CODE

ID3D10Texture2D* VectorsBuffer;
D3D10_TEXTURE2D_DESC texD;
texD.Width = width;
texD.Height = height;
texD.MipLevels = 1;
texD.ArraySize = 1;
texD.Format = DXGI_FORMAT_R32G32B32_FLOAT;
texD.SampleDesc.Count = 1;
texD.SampleDesc.Quality = 0;
texD.Usage = D3D10_USAGE_DEFAULT;
texD.BindFlags = D3D10_BIND_RENDER_TARGET | D3D10_BIND_SHADER_RESOURCE;
texD.CPUAccessFlags = 0;
texD.MiscFlags = 0;
hr = g_pd3dDevice->CreateTexture2D(&texD, 0, &VectorsBuffer);
if( FAILED( hr ) )
		return hr;
hr = g_pd3dDevice->CreateRenderTargetView( VectorsBuffer, 0, &g_pRenderTargetView2 );
if( FAILED( hr ) )
		return hr;
D3D10_SHADER_RESOURCE_VIEW_DESC srvD;
srvD.Format = DXGI_FORMAT_R32G32B32_FLOAT;
srvD.ViewDimension = D3D10_SRV_DIMENSION_TEXTURE2D;
srvD.Texture2D.MipLevels = 1;
srvD.Texture2D.MostDetailedMip = 0;
hr = g_pd3dDevice->CreateShaderResourceView(VectorsBuffer,&srvD, &g_pTexture2);
if( FAILED( hr ) )
		return hr;
g_pTx2 = g_pEffect->GetVariableByName( "TextureRW" )->AsShaderResource();
g_pTx2->SetResource( g_pTexture2 );

is it ok?

#1lomateron

Posted 03 March 2012 - 04:40 PM

its simple, but i am not secure if my code is correct, this is what i have made.
the texture will be used on this way: each pixel is a vector.

What i need is a:
new Texture------the main thing
ShaderResouceView with an effectShaderResourceVariable---- to read it
RenderTargetView-------- to write to it

This are the variables used:
ID3D10Texture2D*    VectorsBuffer;
ID3D10ShaderResourceView* g_pTexture2 = NULL;
ID3D10EffectShaderResourceVariable*    g_pTx2 = NULL;
ID3D10RenderTargetView*          g_pRenderTargetView2 = NULL;

AND THE CODE

ID3D10Texture2D* VectorsBuffer;
D3D10_TEXTURE2D_DESC texD;
texD.Width = width;
texD.Height = height;
texD.MipLevels = 1;
texD.ArraySize = 1;
texD.Format = DXGI_FORMAT_R32G32B32_FLOAT;
texD.SampleDesc.Count = 1;
texD.SampleDesc.Quality = 0;
texD.Usage = D3D10_USAGE_DEFAULT;
texD.BindFlags = D3D10_BIND_SHADER_RESOURCE;
texD.CPUAccessFlags = 0;
texD.MiscFlags = 0;
hr = g_pd3dDevice->CreateTexture2D(&texD, 0, &VectorsBuffer);
if( FAILED( hr ) )
	    return hr;
hr = g_pd3dDevice->CreateRenderTargetView( VectorsBuffer, 0, &g_pRenderTargetView2 );
if( FAILED( hr ) )
	    return hr;
D3D10_SHADER_RESOURCE_VIEW_DESC srvD;
srvD.Format = DXGI_FORMAT_R32G32B32_FLOAT;
srvD.ViewDimension = D3D10_SRV_DIMENSION_TEXTURE2D;
srvD.Texture2D.MipLevels = 1;
srvD.Texture2D.MostDetailedMip = 0;
hr = g_pd3dDevice->CreateShaderResourceView(VectorsBuffer,&srvD, &g_pTexture2);
if( FAILED( hr ) )
	    return hr;
g_pTx2 = g_pEffect->GetVariableByName( "TextureRW" )->AsShaderResource();
g_pTx2->SetResource( g_pTexture2 );

is it ok?

PARTNERS