Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Performance problem Andorra2D (https://www.delphipraxis.net/155033-performance-problem-andorra2d.html)

sportkeks 5. Okt 2010 18:40

Performance problem Andorra2D
 
Hallo ich habe ein kleines performance problem wäre schön wenn mir jemand helfen könnte

Die Situation:

ich habe alle texturen in einer Tadimagelist jedoch bevor ich diese zeichne möchte ich sie noch individuell je nach Situation verändern also lade ich sie vor dem zeichnen in ein TAdTextureSurface um hier ebend die änderungen (zb. via canvas oder andere bilder mit rauf zeichnen) vornehmen zu können, nach dem die änderungen vorgenommen wurden geht es per AdTextureSurface.image.draw(...) auf das eigentliche surface das funktioniert auch, nur ist das ganze zu langsam da es für ein Spiel benötigt wird. selbst ohne änderungen (dh. einfach nur ins TAdTextureSurface laden und danach ins Hauptsurface) fällt die Framerate in den Keller :(

hier etwas quelltext zum besseren verständniss:

Delphi-Quellcode:
        adsur:TAdTextureSurface;
        img1:TAdImage;

        ....

        img1:=imglist.Find('mypicture');
        adsur.SetSize(img1.Width,img1.Height);
        img1.Draw(adsur,0,0,0);

        {
         .
         . änderungen hier z.b.
           adsur.Canvas.Circle(...);
         .
        }

        addraw.BeginScene;
        adsur.Image.Draw(addraw,100,100,0);
        addraw.endScene;
        addraw.flip;
        ...
gibt es vielleicht eine andere möglichkeit das bild nach dem laden und vor dem zeichnen noch einmal zu verändern ?

schonmal danke im vorraus

Gruß Sportkeks

igel457 7. Okt 2010 12:45

AW: Performance problem Andorra2D
 
Die SetSize-Operation benötigt die längste Zeit und sollte nur nach dem Erstellen des Surfaces einmalig ausgeführt werden. Also vermeide den Aufruf von SetSize so oft wie nur möglich (z.B. setze die Größe nur neu, wenn sie sich wirklich verändert hat).

sportkeks 8. Okt 2010 13:40

AW: Performance problem Andorra2D
 
ok danke ich habe jetzt alle texturen auf eine standart abmessung festgelegt und rufe setsize() nur nach dem erstellen auf
es ist zwar jetzt besser geworden allerdings zieht das ganze immer noch deutlich an den fps :?


edit:
Bin noch auf ein neues problem gestoßen wenn ich bilder mit AdTextureSurface.image.draw versuche zu zeichnen und antialising aktiviert habe werden diese bilder nicht angezeigt
wenn ich antialising aus mache funktionierts :wall:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz