D3DXVECTOR3 SUIPictureBox::PositionImage() { if (isAbsoluteRender && father) { return D3DXVECTOR3( Position().x, Position().y, CalDepth(0)); } return D3DXVECTOR3(GetTexRect().X, GetTexRect().Y, 1); }
bool SUIPictureBox::Draw( float timeDelta ) { SRectangle texRect = GetTexRect(); picture->Draw(timeDelta); if (transformation && transformation->State() != Hidden) { if (targetPicture) { targetPicture->Draw(timeDelta); transformation->SetTarget(targetPicture->GetTarget()); } SPSpriteManager::GetSingleton().RenderOnScreen(picture->GetTarget(), transformation, texRect, SPColor::White, 1, childTarget ); } else { SPSpriteManager::GetSingleton().RenderOnScreen(picture->GetTarget(), NULL, texRect, SPColor::White, 1, childTarget ); } return true; }
void SUIPictureBox::Draw( float timeDelta ) { SRectangle texRect = GetTexRect(); picture->Draw(timeDelta); if (transformation && transformation->State() != Hidden) { if (targetPicture) { targetPicture->Draw(timeDelta); transformation->SetTarget(targetPicture->GetTarget()); } //SPSpriteManager::GetSingleton()->RenderOnScreen(picture->GetTarget(), // transformation, texRect, SPColor::White, 1, childTarget ); SPSpriteManager::GetSingleton()->RenderWithMatrix(picture->GetTarget(), transformation, TransformMatrixImage(), ImageSrcRect().CRect(), D3DXVECTOR3(0,0,0), PositionImage(), Alpha() * (D3DXCOLOR)SPColor::White, childTarget); } else { //SPSpriteManager::GetSingleton()->RenderOnScreen(picture->GetTarget(), // NULL, texRect, SPColor::White, 1, childTarget ); SPSpriteManager::GetSingleton()->RenderWithMatrix(picture->GetTarget(), NULL, TransformMatrixImage(), ImageSrcRect().CRect(), D3DXVECTOR3(0,0,0), PositionImage(), Alpha() * (D3DXCOLOR)SPColor::White, childTarget); } }
D3DXMATRIX SUIPictureBox::TransformMatrixImage() { D3DXMATRIX transformMatrix; if(picture->GetTarget()) { D3DXMatrixTransformation2D( &transformMatrix, &D3DXVECTOR2(PositionImage().x, PositionImage().y), 0, &D3DXVECTOR2((float)GetTexRect().Width / picture->GetTarget()->GetWidth(), (float)GetTexRect().Height / picture->GetTarget()->GetHeight()), &D3DXVECTOR2(0, 0), 0, &D3DXVECTOR2(0, 0)); } else { D3DXMatrixTransformation2D( &transformMatrix, &D3DXVECTOR2(PositionImage().x, PositionImage().y), 0, &D3DXVECTOR2(1, 1), &D3DXVECTOR2(0, 0), 0, &D3DXVECTOR2(0, 0)); } if (isAbsoluteRender && father) { D3DXMATRIX fMatrix = TransformMatrix(); D3DXMATRIX result = transformMatrix * fMatrix; return result; } return transformMatrix; }
bool SUIPictureBox::PreDraw() { GetTexRect(); return SUIComponentComposite::PreDraw(); }
void SUIPictureBox::PreDraw() { GetTexRect(); SUIComponent::PreDraw(); }