Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void D3D11Renderer::DrawImmediate( SGRX_ImmDrawData& idd )
- {
- LOG_FUNCTION;
- SGRX_ScopedMtxLock LOCK( &m_mutex );
- SetVertexShader( idd.vertexShader );
- SetPixelShader( idd.pixelShader );
- SetRenderState( idd.renderState );
- m_vertbuf_batchverts.Upload( m_dev, m_ctx, idd.vertices, idd.vertexDecl->m_info.size * idd.vertexCount );
- if( idd.shdata && idd.shvcount )
- m_cbuf_ps_batchverts.Upload( m_dev, m_ctx, idd.shdata, sizeof(*idd.shdata) * idd.shvcount );
- m_ctx->VSSetConstantBuffers( 0, 1, &m_cbuf_vs_batchverts );
- m_ctx->PSSetConstantBuffers( 0, 1, m_cbuf_ps_batchverts.PPBuf() );
- ID3D11ShaderResourceView* srvs[ SGRX_MAX_TEXTURES ];
- ID3D11SamplerState* smps[ SGRX_MAX_TEXTURES ];
- for( int i = 0; i < SGRX_MAX_TEXTURES; ++i )
- {
- SGRX_ITexture* tex = idd.textures[ i ];
- srvs[ i ] = tex ? ((D3D11Texture*)tex)->m_rsrcView : NULL;
- smps[ i ] = tex ? ((D3D11Texture*)tex)->m_sampState : m_sampState;
- }
- m_ctx->PSSetShaderResources( 0, SGRX_MAX_TEXTURES, srvs );
- m_ctx->PSSetSamplers( 0, SGRX_MAX_TEXTURES, smps );
- m_ctx->IASetPrimitiveTopology( conv_prim_type( idd.primType ) );
- m_ctx->IASetInputLayout( ((D3D11VertexInputMapping*) idd.vertexInputMapping)->m_inputLayout );
- ID3D11Buffer* vbufs[2] = { m_vertbuf_batchverts, m_vertbuf_defaults };
- static const UINT strides[2] = { idd.vertexDecl->m_info.size, sizeof(BackupVertexData) }; // [2015-12-21 14:46] wat
- static const UINT offsets[2] = { 0, 0 };
- m_ctx->IASetVertexBuffers( 0, 2, vbufs, strides, offsets );
- m_ctx->Draw( idd.vertexCount, 0 );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement