Surface Blitten (DX9)
-
Moinsen,
Ich suche nach einer Methode, um Teile einer Surface auf eine andere zu "Blitten" (in Direct3D 9(.0c)). Dazu habe ich bisher immer die Function IDirect3DDevice9::UpdateSurface benutzt. Das klappt auch ganz gut, was mich aber stört ist, dass die Source und Destination Surfaces in vorgegebenen Pools sein müssen.
Kennt jemand eine Möglichkeit, bei der dies nicht der Fall ist?
danke schonmal im VorAus
EDIT: oh, ganz vergessen, StretchRect kommt nicht in Frage, da das blitten von Texture Level zu Texture Level nicht möglich ist... schade
-
Wahrscheinlich hat das einen tieferen Sinn. D.h. entweder hälst du dich dran, oder überlegst dir eine bessere Methode.
Bye, TGGC \-/
-
ok. auch, wenn ich den sinn nicht verstehe^^
hab aber mal noch ne andere frage: wird eigentlich der reference count von IDirect3DSurface9 beim Aufruf von D3DXLoadSurfaceFromFile oder D3DXLoadSurfaceFromSurface erhöht?
-
höhö, genie lässt grüßen ^^
natürlich tuen sie das nicht, sie erstellen keine surface, sondern "laden" nur teile aus einer anderen in eine bereits existierende surface *höhö*, das sogar unabhängig vom pool *huhuhuhahahahaha* also genau das, was ich gesucht hab *HUHUHUHUHUHUHAHAHAHAHAHAHAHAHAHA*
nungut, ein wenig übertrieben, aber wie gesagt, hab die lösung gefunden.
-
Babbo schrieb:
höhö, genie lässt grüßen ^^
natürlich tuen sie das nicht, sie erstellen keine surface, sondern "laden" nur teile aus einer anderen in eine bereits existierende surface *höhö*, das sogar unabhängig vom pool *huhuhuhahahahaha* also genau das, was ich gesucht hab *HUHUHUHUHUHUHAHAHAHAHAHAHAHAHAHA*
nungut, ein wenig übertrieben, aber wie gesagt, hab die lösung gefunden.Du Babbo, grüße Dich! Ich glaub ich versuch im Moment genau des gleiche. Hab meinen 3D-Shooter fast fertig, nur erledige ich das "Blitten" im Moment mit selbstgemachten Assembler-Subroutines, die aber einen Nachteil haben: ich kopier da Wordweise die Pixel rum. Des dauert natürlich. Hatte aber bei D3DXLoadSurfaceFromSurface das Problem, dass mein ColorKey nicht akzeptiert wird, bzw. er filtert einfach net. Weißt Du vielleicht, ob man den irgendwie erst aktivieren muss? Wollte für Schwarzfilterung FF000000 benutzen, geht aber net. Wäre Dir dankbar, wenn Du mir sagen könntest, was man da so alles verpeilen kann bzw. wie Dus gemacht hast. Vielen Dank, Gruß, Goldmeister.