![]() |
[Andorra2D]Speicherausnutzung steigt bei AdDraw
Bei meiner Anwendung steigt die Speicheraunutzung bis ins unendliche. Es gibt ein ähnliches Thema zum PArtikelsystem, aber das hiolft mir nicht :-( hier der code:
Delphi-Quellcode:
procedure Tf_menu.Idle(Sender: TObject; var Done: boolean);
begin if AdDraw.CanDraw then //Wenn überhaupt auf das AdDraw gezeichnet werden kann dann... begin IF klick THEN begin AdPerCounter.Calculate; alpha := Round(alpha + 300 * (AdPerCounter.TimeGap / 1000)); IF alpha<=255 then begin mZeichnen(alpha); end ELSE begin alpha:=0; mClick; klick:=false; end; end Else mZeichnen(alpha); AdDraw.EndScene; AdDraw.Flip; //Präsentiert die gezeichneten Dinge auf dem Bildschirm. end; Done := false; // Diese Zeile nicht vergessen, sonst wird der Code nur sporadisch ausgeführt. end;
Delphi-Quellcode:
procedure Tf_menu.mZeichnen(alpha:integer);
var i,a,h,w:integer; v:tvektor; begin AdDraw.ClearSurface(clblack);//fuellt den Bildschirm mit Farbe h:=AdImageList.Find(mMenu[mCurrentMain].name).Height; w:=AdImageList.Find(mMenu[mCurrentMain].name).width; a:=300; v.x:=mitte_dis_x; v.y:=mitte_dis_y+a; i:=0; //bis zur stelle gehen an den die child elemente anfangen Repeat i:=i+1; until mMenu[i].parent=mMenu[mCurrentMain].id; //jedes child element zeichnen Repeat with AdDraw.Canvas do begin Pen.Width:=1; //linien dicke Pen.Color := Ad_ARGB(255,255,255,255); //Farbverlauf von... MoveTo(mitte_dis_x,mitte_dis_y);//setzte anfang der linie auf mitte Pen.Color := Ad_ARGB(0,255,255,255);//...zu LineTo(v.x,v.y); //ziehe die linie bis zu den koordinaten v.x v.y Release; //zeichnen AdImageList.Find(mMenu[mCurrentMain].name).Draw(AdDraw,mitte_dis_x-(w div 2),mitte_dis_y-(h div 2),0); //parent bild AdImageList.Find(mMenu[i].name).Draw(AdDraw,v.x-(w div 2),v.y-(h div 2),0); // child bild //ort zuweisen mMenu[i].x:=v.x; mMenu[i].y:=v.y; i:=i+1; v:=mDrehen(v.x,v.y,360 DIV mAnzahl); //Punkt drehen end; //überblendung, wenn geklickt wurde until (mMenu[i].parent<>mMenu[mCurrentMain].id) OR (i>length(mMenu)); with AdDraw.Canvas do begin Pen.Color := Ad_ARGB(alpha,0,0,0); Brush.Color:=Ad_ARGB(alpha,0,0,0); Rectangle(0,0,mitte_dis_x*2,mitte_dis_y*2); Release; end; end; |
Re: [Andorra2D]Speicherausnutzung steigt bei AdDraw
Es wäre schön, wenn du ein einfaches Demoprogramm erstellen könntest, bei dem dieser Fehler auftritt. Entferne solange Code, bis du nur noch diesen Fehler hast.
|
Re: [Andorra2D]Speicherausnutzung steigt bei AdDraw
Danke, durch deinen tip hab ich gemnerkt, das der befehl AdDraw.BeginScene; fehlt, dass führt anscheinend dazu das die Speicherauslastung ins unendliche steigt...
Danke, nochmals. P.S.: Die Engine ist 1A! :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:38 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 by Thomas Breitkreuz