【C++】 DirectX初心者質問スレ Part14 【C】
■ このスレッドは過去ログ倉庫に格納されています
0421デフォルトの名無しさん
2007/09/27(木) 05:06:34デバイスロストとか色々対応してないけど後は自分で考えるんだ
class MySprite{
MySprite( LPDIRECT3DDEVICE9 dev, TCHAR* file ) ;
~MySprite(){
if(tex)tex->Release() ;
if(sprite)sprite->Release() ;
}
void Draw(float x, float y, float w, float h ) ;
LPD3DXSPRITE sprite ;
LPDIRECT3DTEXTURE9 tex ;
D3DXIMAGE_INFO info;
} ;
MySprite::MySprite(LPDIRECT3DDEVICE9 dev, TCHAR *file):sprite(NULL),tex(NULL)
{
D3DXGetImageInfoFromFile(file, &info);
D3DXCreateTextureFromFileEx(dev,file,info.Width,info.Height,
1,0,D3DFMT_UNKNOWN,D3DPOOL_MANAGED,D3DX_DEFAULT,D3DX_DEFAULT,0,NULL,NULL,&tex);
D3DXCreateSprite ( dev, &sprite ) ;
}
void MySprite::Draw(float x, float y, float w, float h)
{
sprite->Begin(0) ;
3DXMATRIX scale, trans ;
D3DXMatrixScaling ( &scale, ((w==0)?info.Width:w)/(float)info.Width, ((h==0)?info.Height:h)/(float)info.Height, 0.0f ) ;
D3DXMatrixTranslation ( &trans, x, y, 0 ) ;
sprite->SetTransform(&(scale*trans)) ;
sprite->Draw ( tex, NULL, NULL, NULL, 0xffffffff ) ;
sprite->End() ;
}
■ このスレッドは過去ログ倉庫に格納されています