Seite 1 von 1

vectoroutput im Speicher sichern und laden

Verfasst: 13.04.2020 11:08
von kartmanne
HI,

ich zeichne eine Menge Kurven auf ein canvasvectorgadget. Anschließend zeichne ich drüber ein Koordinatenlinienkreuz(KLK). Dieses KLK platziere ich neu, je nach den erkannten Maus-Koordinaten.
Verändere ich das KLK, muß ich jedes mal das canvas leeren und die Kurven erneut zeichnen. Das nimmt viel zeit - und das Canvas flackert natürlich beim initialen Fill, um den gesamten Inhalt zu leeren.

Um dieses zeitintensive Neuzeichnen der Kurven und das Flackern zu vermeiden, denke ich, kann man den canvasinhalt vor dem zeichnen des KLK an einen RAM-Speicherbereich kopieren und bei einer neuen Position des KLK vorher wieder zurückkopieren.

Bisher hab ich aus pb-Bordmitteln für so eine Aktion keinen Ablauf gefunden. Image-Befehle orientieren auf Disk, nicht auf RAM.

Könnt ihr mir einen Denkanstoß geben?

Frohe Ostern und Gesundheit

Re: vectoroutput im Speicher sichern und laden

Verfasst: 13.04.2020 11:27
von mk-soft
Die Kurven bei Änderung in einem Image zeichnen und mit
SetGadgetAttribute(1,#PB_Canvas_Image ,ImageID(Kurve)) vor dem rest zeichnen zuweisen.

P.S.
Bei maOS ist DrawVectorImage(ImageID(\Image)) minimal schneller.

Re: vectoroutput im Speicher sichern und laden

Verfasst: 13.04.2020 11:44
von kartmanne
HI,

die Beschreibung ist für mich rookie zu knapp.
Grundsätzlich glaube ich zu wissen, wie.. aber ich bräuchte etwas mehr Info, bitte

wie: Kurven ... in einem Image zeichnen

Image vorher anlegen (?) oder aus dem gezeichneten (mit Kurven) canvas rauskopieren? wie? Hmmm.

Re: vectoroutput im Speicher sichern und laden

Verfasst: 13.04.2020 11:48
von mk-soft
Siehe GaugeGadget

Link: https://www.purebasic.fr/english/viewto ... 03#p549803

P.S.
Image Anlegen und bei Bedarf neu zeichnen.
Bei maOS ist DrawVectorImage(ImageID(\Image)) minimal schneller.

Re: vectoroutput im Speicher sichern und laden

Verfasst: 13.04.2020 12:22
von kartmanne
HI,

ok. Also ein "bemaltes" vectorcanvas als image sichern, geht nicht mit pb-Boardmitteln.

Danke.

Re: vectoroutput im Speicher sichern und laden

Verfasst: 13.04.2020 14:47
von mk-soft
Geht mit PB mittel...

Link: https://www.purebasic.fr/english/viewto ... 12&t=74560

Aber nicht ganz verstanden.

Den Hintergrund (Kurven) bei Bedarf in ein Images (CreateImage) zeichnen und dann vor dem zeichnen im Canvas mit
SetGadgetAttribute(1,#PB_Canvas_Image ,ImageID(Kurve) oder DrawVectorImage(ImageID(\Kurve)) setzen

Re: vectoroutput im Speicher sichern und laden

Verfasst: 13.04.2020 21:27
von HeX0R
Was ist denn das Problem mit GrabDrawingImage()?