- 421 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 05:06:34 ]
- てか、久々にD3DXSpriteいじったらほんとに色々仕様が変わっててワロタ
デバイスロストとか色々対応してないけど後は自分で考えるんだ 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() ; }
|

|