|
一个简单例子表示fixed functional VS/Assemble VS/HLSI VS的例子(8) (DWORD*)pShader->GetBufferPointer(), &g_pVS ); if( FAILED(hr) ) { SAFE_RELEASE(pShader); SAFE_RELEASE(g_pVS); return hr; } SAFE_RELEASE(pShader); #endif #if VS_TYPE == 2 // Compile and create the vertex shader LPD3DXBUFFER pShader = NULL; hr = D3DXCompileShader( strVertexShader, (UINT)strlen(strVertexShader), NULL, NULL, "VS_Matrices", "vs_2_0", D3DXSHADER_DEBUG, &pShader, NULL, // error messages NULL ); if( FAILED(hr) ) { SAFE_RELEASE(pShader); return hr; } // Create the vertex shader hr = g_pd3dDevice->CreateVertexShader( (DWORD*)pShader->GetBufferPointer(), &g_pVS ); if( FAILED(hr) ) { SAFE_RELEASE(pShader); SAFE_RELEASE(g_pVS); return hr; } SAFE_RELEASE(pShader); #endif return S_OK; } //----------------------------------------------------------------------------- // Name: Render() // Desc: Draws the scene //----------------------------------------------------------------------------- VOID Render() { // Clear the backbuffer to a black color g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,0), 1.0f, 0 ); // Begin the scene if( SUCCEEDED( g_pd3dDevice->BeginScene() ) ) { // Setup the world, view, and projection matrices SetupMatrices(); // Render the vertex buffer contents
|