Grundsätzlich sollte man Texturewechsel immer meiden. Dein Code sollte darauf ausgerichtet sein, dass er gleich mit einem Durchlauf alles ohne Texturwechsel zeichnen kann.
Dh. gruppiere einfach Entities mit der gleichen Texture ID ala~
Delphi-Quellcode:
TTextureEntities = record
TextureID: DWord;
Entities: Array of Pointer; // Pointer = Klasseninstanzen
end;
// oder noch besser
TTextureEntities = class(TList)
public
property TextureID: DWord; // strg+shift+c
procedure Render();
end;
{Items[] beinhaltet dann die Instanzen; per Add/Delete/... kann es nun verwaltet werden}
EDIT:
@EWeiss
Du weißt aber schon, dass Texturen auf den VRam geladen werden und wenn dieser Speicher nicht allzu groß ist, es zu Fehlern führen wird?
Heutzutage gibts noch Rechner, die < 64 mb Video
RAM haben!
Wenn so ein AVI Video 24 Frames/Sekunde hat und eine Länge von etwa 1 Min und pro Frame etwa eine Auflösung von 640*480*3 (
RGB; unkomprimiert 900kb; komprimiert ~ 80 kb [JPEG Komprimierung]), dann wären das etwa 80 * 24 * 60 ~ 112,5 mb.
Damit hättest du ein Problem!