|
一个简单例子表示fixed functional VS/Assemble VS/HLSI VS的例子(7) if( FAILED( g_pd3dDevice->CreateVertexBuffer( 3*sizeof(CUSTOMVERTEX), 0, 0, D3DPOOL_DEFAULT, &g_pVB, NULL ) ) ) { return E_FAIL; } // Fill the vertex buffer. VOID* pVertices; if( FAILED( g_pVB->Lock( 0, sizeof(g_Vertices), (void**)&pVertices, 0 ) ) ) return E_FAIL; memcpy( pVertices, g_Vertices, sizeof(g_Vertices) ); g_pVB->Unlock(); if( FAILED( hr = g_pd3dDevice->CreateVertexDeclaration( decl, &g_pVertexDeclaration ) ) ) { SAFE_RELEASE(g_pVertexDeclaration); return hr; } #if VS_TYPE == 1 // Compile and create the vertex shader LPD3DXBUFFER pShader = NULL; hr = D3DXAssembleShader( strVertexShader, (UINT)strlen(strVertexShader), NULL, NULL, D3DXSHADER_DEBUG, &pShader, NULL // error messages ); if( FAILED(hr) ) { SAFE_RELEASE(pShader); return hr; } // Create the vertex shader hr = g_pd3dDevice->CreateVertexShader(
|