Hab zwar eigentlich keine Zeit, aber für seriöse Arbeit bin ich schon zu müde.
Wie kann ich schnell große bereiche einer grafik kopieren ?
Also. Das hab ich jetzt nur mal nach 1 Uhr runtergehackt.
Aber ich glaube du siehst, wie man ohne tausend Buffer auskommen kann.
Da gibt's natürlich noch viele Verbesserungmöglichkeiten
Aber es ist schnell und du kannst damit auch schon selektieren.
Diese Demo baut auf dem Bitmap Prinzip auf. Jedes Objekt hat ein eigenes Bitmap, welches bei Bedarf gemalt wird.
Mit Undo kannst du alle eingefügten Objekte der Reihe nach wieder löschen
Ausserdem gibt's nur einen einzigen Cache-Puffer (neben dem Nicht-Flacker Puffer), wo alle "fertigen" Grafiken bereits gezeichnet sind.
Einfacher ist einfach besser, oder?
Viel Spass
Aber ich glaube du siehst, wie man ohne tausend Buffer auskommen kann.
Da gibt's natürlich noch viele Verbesserungmöglichkeiten
Aber es ist schnell und du kannst damit auch schon selektieren.
Diese Demo baut auf dem Bitmap Prinzip auf. Jedes Objekt hat ein eigenes Bitmap, welches bei Bedarf gemalt wird.
Mit Undo kannst du alle eingefügten Objekte der Reihe nach wieder löschen
Ausserdem gibt's nur einen einzigen Cache-Puffer (neben dem Nicht-Flacker Puffer), wo alle "fertigen" Grafiken bereits gezeichnet sind.
Einfacher ist einfach besser, oder?
Viel Spass
- Dateianhänge
-
fuerpluto.tar.gz- Grafik für Pluto
- (5.31 KiB) 113-mal heruntergeladen
Achtung: neue Version!
Jetzt noch becknackter!!
Grafikobjekte rumschieben!
Intuitive Benutzerführung (LOL)
Noch hackigerer Code!
Lieber Pluto: Funktioniert zwar einigermassen, aber ich habe ziemlich Bier intus.
Also: Ideen übernehmen wenn du möchtest, schlechten Programmierstil aber besser nicht!
Jetzt noch becknackter!!
Grafikobjekte rumschieben!
Intuitive Benutzerführung (LOL)
Noch hackigerer Code!
Lieber Pluto: Funktioniert zwar einigermassen, aber ich habe ziemlich Bier intus.
Also: Ideen übernehmen wenn du möchtest, schlechten Programmierstil aber besser nicht!
- Dateianhänge
-
fuerpluto.tar.gz- Version 2 (hicks!)
- (5.08 KiB) 116-mal heruntergeladen
-
pluto
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
ich habe es geschaft die dateien per tar zu entpacken.. ich finde es nett das du dir die mühe gemacht hast aber mein projekt ist bei weitem schneller.... beim zeichnen großer rechtecke !
ich lade dir mal mein projekt hoch ich hoffe du kanst es komplieren !
das projekt hat noch ein "paar" schönheits fehler und zwar wenn du das objekt zu weit nach lings bzw. nach oben schiebst oder wenn du linen zeichnen möchtes !
alle objekte gehen auch noch nicht wie z.b. das dreieck, poligone und text objekte und die gesammten andren seiten !
ich lade dir mal mein projekt hoch ich hoffe du kanst es komplieren !
das projekt hat noch ein "paar" schönheits fehler und zwar wenn du das objekt zu weit nach lings bzw. nach oben schiebst oder wenn du linen zeichnen möchtes !
alle objekte gehen auch noch nicht wie z.b. das dreieck, poligone und text objekte und die gesammten andren seiten !
- Dateianhänge
-
soruce.zip- (1.29 MiB) 114-mal heruntergeladen
MFG
Michael Springwald
Michael Springwald
-
pluto
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
ich glaube ich muss mich entschuldigen dein projekt geht genauso schnell wie meinst, ich darf es nur nicht in der ide starten !
edit:
lustig, wenn ich dein weg richtig verstanden habe machst du es genauso wie ich:
du hast einen eigentlichen buffer(wie bei mir auch) in den du reinzeichnen dann hast du einen cashbuffer(das währe bei mir buffer4) und dann hast du für jedesn objekt einen eigenen buffer du hast also praktisch gesehen wesentlich mehr buffer's als ich.... oder sehe ich das falsch? achja nochwas
du musst bei jeder mausbewegen einen buffer aktualliesern per fillrect ich kopiere mir einfach das gespeicherte bmpt in buffer zurück und beim klicken wird das aktuelle objekt in buffer gelöscht und an der angeben stelle neugezeichnet !
ich hoffe du hast meinen weg verstadnen - wie gesagt im prinzip machen wir beide das gleich nur das die buffer's bei dir andres heißen *G* und du sparst glaube ich auch buffer3 auf dem ich alles zusammenfüge und ausgebe !...
vielen dank das du das projekt geschrieben hast so konnte ich sehen das es anscheidn nur einen weg gibt es schnell hinzubekommen *G*
edit2:
dein programmier styl ist garnicht mal zu schlech ich schreibe fast genauso *G* teilweise !
edit:
lustig, wenn ich dein weg richtig verstanden habe machst du es genauso wie ich:
du hast einen eigentlichen buffer(wie bei mir auch) in den du reinzeichnen dann hast du einen cashbuffer(das währe bei mir buffer4) und dann hast du für jedesn objekt einen eigenen buffer du hast also praktisch gesehen wesentlich mehr buffer's als ich.... oder sehe ich das falsch? achja nochwas
du musst bei jeder mausbewegen einen buffer aktualliesern per fillrect ich kopiere mir einfach das gespeicherte bmpt in buffer zurück und beim klicken wird das aktuelle objekt in buffer gelöscht und an der angeben stelle neugezeichnet !
ich hoffe du hast meinen weg verstadnen - wie gesagt im prinzip machen wir beide das gleich nur das die buffer's bei dir andres heißen *G* und du sparst glaube ich auch buffer3 auf dem ich alles zusammenfüge und ausgebe !...
vielen dank das du das projekt geschrieben hast so konnte ich sehen das es anscheidn nur einen weg gibt es schnell hinzubekommen *G*
edit2:
dein programmier styl ist garnicht mal zu schlech ich schreibe fast genauso *G* teilweise !
MFG
Michael Springwald
Michael Springwald
Aber Gerne!pluto hat geschrieben: vielen dank das du das projekt geschrieben hast so konnte ich sehen das es anscheidn nur einen weg gibt es schnell hinzubekommen *G*
Projekt würde ich es zwar nicht gerade nennen. Eher zwei Stunden (netto) rumhacken
Dass es auserhalb der IDE schneller läuft, kann fast nur mit den Bitmaps zu tun haben.
Weiss da jemand was drüber?
Hab mir deins übrigens auch mal angeschaut. Sieht gut aus!
Ja, tut's.Christian hat geschrieben:Hast ma probiert ob es ohne debugger schneller läuft ?
Der Begriff "ausserhalb der IDE" war nicht gerade schlau gewählt.
Praktisch bedeutet das ja "nicht unterm Debugger".
Aber erlären kann ich's mir deshalb immer noch nicht.
Ich kenne das eigentlich so drastisch nur im Zusammenhang mit verschiedenen Threads.
-
Christian
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
die internas on gdb sind mir auch komplett fremd eigentlich sollte soetwas nicht sein da die cpu ja debuggingfunktionen hat und wenn gdb die benutzt sollte die anwendung eigentlich genauso und genausoschnell laufen was jedoch nicht der fall ist hab ich auch schon oft beobachtet
naja hoffentlich wird das besser wenn der interne linker fertig ist das die gnu tools nicht immer so toll sind wie alle behaupten hat ja der interne linker schon bewiesen ...
und gegen den gcc sahnt der fpc ja auch richtig ab
naja hoffentlich wird das besser wenn der interne linker fertig ist das die gnu tools nicht immer so toll sind wie alle behaupten hat ja der interne linker schon bewiesen ...
und gegen den gcc sahnt der fpc ja auch richtig ab
-
pluto
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
also komischer weise kann ich mein projekt(paint2) unter der ide starten und es läuft normal schnell. ich habe das gefühl lazarus hat mächtige probleme mit speicher zuweisungne und wieder freigeben. wenn ich z.b. meine bmp und andren klassen nicht freigebe läuft mein speicher irgenwan über(ich habe 1 GB ram).... und ich muss die ide neustarten danach ging es wieder !
jetzt gebe ich(hoffe ichmal) jedes objekt wieder frei!
jetzt gebe ich(hoffe ichmal) jedes objekt wieder frei!
MFG
Michael Springwald
Michael Springwald