GetSurfaceLevel
-
hallo,
ich habe nur eine kurze Frage, was bewirkt diese Funktion???
GetSurfaceLevel();
-
vermutlich das was der name sagt, liefert ein surface einer erfragten ebene zurück... sowas gibt es z.b. bei d3d.
-
Wird denn in diesem Beispiel das Surface auf die Textur kopiert oder die Textur auf das Surface?
m_pTexture->GetSurfaceLevel(0, &pSurface);
-
soweit wie mir bekannt ist wird dein pointer auf ein surface zeigen nach dem aufruf. deswegen mußt du auch die pointeraddress übergeben. kopiert wird nichts in dem sinn wie du fragst.
-
afaik?
-
gerritlober schrieb:
afaik?
gefixt

-
und das bedeutet?

-
rapso schrieb:
soweit wie mir bekannt ist
-
also ist der zeiger auf das surface nur ein zeiger auf die ebene der Textur??

Ich frage nicht aus Kritik, sondern aus unwissenheit!
-
gerritlober schrieb:
also ist der zeiger auf das surface nur ein zeiger auf die ebene der Textur??

So könnte man es sagen. Du kannst dir eine Textur in D3D als Kette von Surfaces vorstellen, wobei die oberste Ebene 0 die Originalgröße der Textur hat. Die Surfaces der Kette bezeichnet man oft als Mip-Maps. Nach dem Aufruf m_pTexture->GetSurfaceLevel(n, &pSurface) zeigt der Zeiger pSurface auf die n-te Ebene. Ob physikalisch Speicher kopiert wird, hängt vor allem von der Speicherklasse (Pool) der Textur ab. Bei SYSMEM wird nix kopiert und einfach nur der Zeiger auf den Bereich geliefert, wohingegen bei Default durchaus ein Kopiervorgang durchgeführt werden kann.
-
Danke!