D3DXSprite nudi većinu mogućnosti koje nudi i crtanje preko quadova. Posle D3DXSprite::Begin() zoveš SetRenderState (i kompaniju) kao što bi radio da rendaš preko quadova. Kada crtaš preko D3DXSprite-a svejedno moraš da ga projektuješ/translejtuješ na ekran tako da kad ga već provlačiš kroz transformacione matrikse možeš da mu obezbediš x, y, i z koordinatu, rotaciju, scaling... Ukratko D3DXSprite se u svemu ponaša kao da si ih nacrtao preko quadova sa Transformed-Lit verteksima (i verovatno je tako interno i implementiran). Ja sam sa D3DXSprite 9 izvukao alpha blending, fog, stencil testing, pixel shadere, aditivni blending, blur, bloom, itd. itd. bez i jednog eksplicitno deklarisanog verteksa.
Naravno ne kažem da je D3DXSprite bolji ili lošiji od "ručnih" quadova, sve zavisi od toga šta ti treba. Svakako je manje fleksibilan.
POW_2 problem je nešto što koliko vidim nije standardizovano rešeno u DX9 i bolje da se ne oslanjaš na to. Svakako je najbolje i najkompatibilnije rešenje da sve teksture koje koristiš budu power of 2 u obe dimenzije, pa da preko maski i blitovanja odrediš transparentne delove, ili još bolje (i optimizovanije!), da deklarišeš "blit regiju" za teksture. Tako npr. ako imaš teksturu dimenzije 200x150, "raširi" je (makar i u MS paintu) na 256x256 i učitaj je normalno (preko D3DXCreateTextureFromFileEx radiće sasvim lepo) i onda "objasni" D3Du da renderuje samo prvih 200x150 piksela. Da bi to uspelo moraćeš uz svaku teksturu da držiš još neke podatke i da prilikom blitovanja manipulišeš source rect-om i dest rect-om, ali to bar nije teško napraviti, a isplati se, jer onda možeš, kao što reče tosa, da naguraš i 200 različitih sprajtova u jednu teksturu i blituješ šta ti treba sa nje, a što manje menjanja tekstura to bolje.
Ako ti se ne radi preko blit regija, lakša alternativa bi bila da pošto resizeuješ teksturu (na ^2 dimenzije, u Paintu) transparentne delove filuješ određenom bojom (obično je to 0xffff00) i onda prilikom učitavanja D3DXCreateTextureFromFileEx procedurom kao ColorKey odrediš tu boju. I ova metoda zasniva se na blitovanju.
In a game of chess you must never let your opponent see your pieces - Zap
Brannigan