Moin
Ich bin im Moment an nem Programm bei, was Bezier Kurven zeichnet und hab mich dabei an Zeichen-Technik von Delphi Gamer
(
www.savagesoftware.c...leid=13&page=1#1 ) gehalten. Klappt auch alles wunderbar, ist recht schnell, nur das Problem ist, das ich bei jedem Frame den Hintergrund schwarz ausfüllen muss. Dieses Ausfüllen kostet mich bei 1280*1024er Auflösung ca. 35 Frames pro Sekunde. Und zwar füll ich den Hintergrund des Buffer Bitmaps mit [delphi]BMP.Canvas.FillRect(BGRect)[delphi]
Als nächstes hab ich versucht das Bitmap per Scanline mit schwarz zu füllen,
Quelltext
1: 2: 3:
| OffScreenP := OffScreen.Scanline[VideoModeY-1]; for i := 0 to (VideoModeX*VideoModeY)-1 do OffScreenP^[i] := $0; |
das resultierte aber in genau dem gleichen Müll wie mit FillRect. Danach hab ichs denn versucht, indem ich nen zweites BMP habe das die ganze Zeit schwarz ist und was ich einfach nur noch mit BitBlt bei jedem Zeichenzyklus rüberkopiere. Das funkt auch nicht, da hab ich sogar noch Frame Einbußen bei.
Also ich hab nen Brett vorm Kopf und weiß nicht weiter. Hat irgendjemand noch ne Idee wie man das machen könnte ?
dann nächste Frage:
Kann man Windows nicht begreiflich machen das nen entsprechendes Fenster nocht nicht zum Bildschirm geschickt werden soll zwecks nachzeichnen, sprich man erst das Fenster zu ende zeichnen und es dann zum Bildschirm schickt, damit man z.b. nicht mit nem Buffer Bitmap arbeiten muss ? Das rüberkopieren des Buffer Bitmaps per BitBlt kostet mich immer 40 FPS bei meiner Auflösung und das muss ja nicht wirklich sein, da wirds doch garantiert noch schnellere Verfahren geben oder ?
Vielen Dank schon mal im Vorraus für die Hilfe.
- Thebe