Wie kann ich schnell große bereiche einer grafik kopieren ?

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
Benutzeravatar
theo
Beiträge: 10859
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Bin grad dabei dir eine Demo zu basteln wie ich das machen würde.
Hab zwar eigentlich keine Zeit, aber für seriöse Arbeit bin ich schon zu müde. ;-)

Benutzeravatar
theo
Beiträge: 10859
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

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
Dateianhänge
fuerpluto.tar.gz
Grafik für Pluto
(5.31 KiB) 90-mal heruntergeladen

Benutzeravatar
theo
Beiträge: 10859
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

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!
Dateianhänge
fuerpluto.tar.gz
Version 2 (hicks!)
(5.08 KiB) 89-mal heruntergeladen

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

... da programmiert wohl einer die Nacht durch ;)

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:

Beitrag von Christian »

der theo hat manchma doch ganz schön langeweile ...
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
theo
Beiträge: 10859
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Christian hat geschrieben:der theo hat manchma doch ganz schön langeweile ...
Klar! ;-)
Passiert meistens wenn ich mir vorgenommen habe, bis in die Nacht richtige Arbeit zu erledigen, und dann irgendwann müde werde davon. Dann fang ich aus lauter Blödsinn noch sowas an.

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)

Beitrag von pluto »

vielen dank für deine mühe aber ich kann das projekt leider nicht entpacken weil ich nicht weiß womit ich bin dateien öffnen kann.. könntes du es in eine normale zip datei packen ?
MFG
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)

Beitrag von pluto »

ich habe einfach gz.bin entfernt und konnte es schonmal öffnen jetzt muss ich es nur noch unter root entpacken !
MFG
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)

Beitrag von pluto »

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 !
Dateianhänge
soruce.zip
(1.29 MiB) 90-mal heruntergeladen
MFG
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)

Beitrag von pluto »

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 !
MFG
Michael Springwald

Benutzeravatar
theo
Beiträge: 10859
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

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*
Aber Gerne!
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!

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:

Beitrag von Christian »

Hast ma probiert ob es ohne debugger schneller läuft ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
theo
Beiträge: 10859
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Christian hat geschrieben:Hast ma probiert ob es ohne debugger schneller läuft ?
Ja, tut's.
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:

Beitrag von Christian »

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 :)

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)

Beitrag von pluto »

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!
MFG
Michael Springwald

Antworten