void Graphics::drawSkinnedMesh(SkinnedMesh* skinnedMesh) { // Set effect data HR(mFX->SetTechnique(mhTexTech)); setEffectParameters(skinnedMesh->getWorldMatrix()); // Begin passes. UINT numPasses = 0; HR(mFX->Begin(&numPasses, 0)); for(UINT i = 0; i < numPasses; ++i) { HR(mFX->BeginPass(i)); skinnedMesh->drawFrameHierarchy(); HR(mFX->EndPass()); } HR(mFX->End()); }
void Graphics::drawMesh(Mesh* mesh) { HR(mFX->SetTechnique(mhTexTech)); setEffectParameters(mesh->getWorldMatrix()); HR(mFX->Begin(0, 0)); HR(mFX->BeginPass(0)); vector<IDirect3DTexture9*>* textures = mesh->getTextures(); ID3DXMesh* d3dmesh = mesh->getMesh(); for(int i = 0; i < textures->size(); i++) { HR(mFX->SetTexture(mhTex, (*textures)[i])); HR(mFX->CommitChanges()); d3dmesh->DrawSubset(i); } HR(mFX->EndPass()); HR(mFX->End()); }
void Graphics::drawBoundingBox(Object3D* object, D3DXCOLOR color, float opacity) { // Set effect data HR(mFX->SetTechnique(mhTexTech)); Material material(color, 8.0f); material.diffuse.a = opacity; D3DXMATRIX S; D3DXMatrixScaling(&S, object->getAABB().getDimensions().width, object->getAABB().getDimensions().height, object->getAABB().getDimensions().depth); setEffectParameters(S*object->getWorldMatrix()); // Set stream source and vertex declarations HR(gd3dDevice->SetVertexDeclaration(VertexPNT::Decl)); HR(gd3dDevice->SetStreamSource(0, mTexturedCubeVB, 0, sizeof(VertexPNT))); HR(gd3dDevice->SetIndices(mTexturedCubeIB)); HR(gd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, true)); HR(gd3dDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA)); HR(gd3dDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA)); HR(mFX->SetTexture(mhTex, mWhiteTexture)); HR(mFX->SetRawValue(mhObjectMaterial, (void*)&material, 0, sizeof(Material))); // Begin passes. UINT numPasses = 0; HR(mFX->Begin(&numPasses, 0)); for(UINT i = 0; i < numPasses; ++i) { HR(mFX->BeginPass(i)); HR(gd3dDevice->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 0, 24, 0, 12)); HR(mFX->EndPass()); } HR(mFX->End()); HR(gd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, false)); }
HRESULT XAudio2SourceVoiceProxy::SetEffectParameters(UINT32 EffectIndex, const void * pParameters, UINT32 ParametersByteSize, UINT32 OperationSet) { setEffectParameters(EffectIndex, buffer_to_vector(pParameters, ParametersByteSize), OperationSet); return S_OK; }