c´est clair que l´interface ID3DXSPRITE est loin d´etre suffisamment documentée dans le SDK...
intuitivement, deux possibilités : soit ta texture est dans un mauvais format ( au sens dimensions), genre en 34x34 ce qui fait qu´elle se trouve implicitement convertie en 64x64 ( avec les mipmaps et tout le merdier) pour plus d´efficacité. A ce moment utilises plutot le D3DXCreateTextureFromFileEx() avec tous les paramètres ; chez moi ça ressemble à ça :
if ( FAILED(hr = D3DXCreateTextureFromFileEx(pD3DDevice, ( *it).cString(), Sprite::WIDTH, Sprite::HEIGHT, 1, 0, Sprite::TEXTURE_FORMAT,
D3DPOOL_MANAGED, D3DX_DEFAULT, D3DX_DEFAULT, Sprite::COLOR_KEY, NULL, NULL, &)))
{
return DXTRACE_ERR("CreateTextureFromFileEx", hr);
}
ou alors tes params de rendus ne sont pas au poil ; normalement le rect peut etre passé à NULL, mais ça bugue plus ou moins et ça c´est marqué nulle part dans la doc. Donc essaye de passer là encore tous les paramètres, style :
D3DXVECTOR3 center(m_center.x, m_center.y, 0.0f);
RECT rect = { 0, 0, WIDTH, HEIGHT };
LPDIRECT3DTEXTURE9 texture =
TextureLibrary::getInstance().find(m_nTextureID);
HRESULT hr;
if ( FAILED(hr = pD3DSprite->Draw(texture, &, &, &_position, m_blendingColor)))
{
return DXTRACE_ERR("Draw", hr);
}