[ Srki_82 @ 08.09.2004. 22:50 ] @
Imam promenljivu tipa LPDIRECT3DTEXTURE9, ucitam texturu i sve lepo radi. Sada sam probao sledece:
Code:

// promenljiva texture je tipa LPDIRECT3DTEXTURE9 i textuira je vec ucitana
float tmp = texture->Width;

IntelliSense mi prikaze da LPDIRECT3DTEXTURE9 tip podatka sadrzi promenljivu Width, ali kad pokusam da build-ujem kod kompajler prijavi sledecu gresku:

c:\Documents and Settings\Srki\My Documents\Visual Studio Projects\SimpleEngine\particlesystem.cpp(75): error C2039: 'Width' : is not a member of 'IDirect3DTexture9'

u cemu je problem?
[ Reljam @ 09.09.2004. 02:18 ] @
IDirect3DTexture9 je COM interface i kao takav ne moze da sadrzi promenljive, vec samo metode. Tako da u startu znas da moras da pozoves neku funkciju, neces moci samo da iscitas tu vrednost.

E sad, u zavisnosti od toga kako si kreirao teksturu, ona moze da ima vise od jednog surface-a u sebi. Obicno teksture sadrze mipmape, tako da je jedna tekstura u stvari niz smanjujucih povrsina. Posto tebe interesuje velicina najvece mipmape, tj. slike koje si ucitao sa diska, tebi treba LOD 0.

Code:

    IDirect3DTexture9 *pSource = ... ;
    D3DSURFACE_DESC sourceDesc;

    pSource->GetLevelDesc(0, &sourceDesc);
    foo = destDesc.Width;