codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
void CActor::Render( IDirect3DDevice9* device, CCamera* cam ) { //VertexDeclaration setzen device->SetVertexDeclaration(Vertex::decl); //IndexBuffer setzen device->SetIndices(m_pIndexBuffer); //VertexBuffer holen device->SetStreamSource(0, m_pVertexBuffer, 0, Vertex::strideSize); //Technique setzen m_pFx->SetTechnique(m_hTechnique); //Positionsmatrix D3DXMATRIX trans, rot, scale; D3DXMatrixTranslation(&trans, m_position.x, m_position.y, m_position.z); //Rotationsmatrix D3DXMatrixRotationYawPitchRoll(&rot, m_rotation.y, m_rotation.x, m_rotation.z); //Skalierungsmatrix D3DXMatrixScaling(&scale, m_scale.x, m_scale.y, m_scale.z); //WVP setzen m_pFx->SetMatrix(m_hWVP, &(scale * rot * trans * cam->GetViewMatrix() * cam->GetProjectionMatrix())); //Textur setzen m_pFx->SetTexture(m_hColorTexture, m_pTexture); //Farbe m_pFx->SetValue(m_hAmbientColor, &m_ambientColor, sizeof(D3DXCOLOR)); //Passes durchlaufen UINT passes = 0; //Beginne Shader m_pFx->Begin(&passes, 0); for( UINT i = 0; i < passes; i++) { //For Sprites if(m_isSprite) { m_pSprite->Begin(D3DXSPRITE_ALPHABLEND); m_pFx->BeginPass(i); RECT rct; rct.left = m_iActualFrameNumber * m_iFrameWidth; rct.right = m_iActualFrameNumber * m_iFrameWidth + m_iFrameWidth; rct.top = 0; rct.bottom = m_iHeight; m_pSprite->Draw(m_pTexture,&rct,NULL, &m_position,0xFFFFFFFF); m_pFx->EndPass(); m_pSprite->End(); } else { //Beginne Pass m_pFx->BeginPass(i); device->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 0, m_vertexCount, 0, m_indexCount / 3); m_pFx->EndPass(); } } m_pFx->End(); }
Private
[
?
]
Run code
Submit