Einzelnen Beitrag anzeigen

HeZa

Registriert seit: 4. Nov 2004
Ort: Dortmund
182 Beiträge
 
Delphi 10 Seattle Professional
 
#11

AW: Welche GraphicLib zum Zeichnen von Polygonen?

  Alt 7. Mär 2016, 20:26
Hm, Du lädst 100.000 Objekte aus der Datenbank und der Show-Stopper ist das Zeichnen auf dem Canvas. Mit anderen Worten, das Laden eines Objekts ist schneller, als das Zeichnen, würde ich so nicht erwarten. Ist das Zeichnen der Objekte so komplex?

Nur mal so für mein Verständnis für die Problematik:
  • Erster Versuch
    Du hast in einem Thread die Datensätze geladen und sofort gezeichnet, da war dann das Laden die Bremse
  • Zweiter Versuch
    Du lädst die Datensätze in mehreren Threads in denen du auch zeichnest, deswegen muss der Canvas gesperrt werden. Jetzt ist das Zeichnen die Bremse.

Gedanken die nicht aus der Erfahrung geboren sind
  • Die Lade-Threads zeichnen nicht
    Sondern sie über geben die zu zeichnenden Objekte einem Zeichnen-Thread (von dem es nur einen gibt). Der Canvas muss nicht mehr gesperrt werden, aber die Übergabe an den Zeichen-Thread muss natürlich Threadsave gestaltet werde.
  • Du teilst deinen Canvas in Kacheln auf
    Jede Kachel hat dann einen eignen Canvas und einen eignen Lade-Thread. Funktioniert nur, wenn Du die Objekte aus der entsprechend sortiert aus der Datenbank abrufen kannst.
  • Jeder Lade-Thread hat einen Speicher-Canvas
    Es wird dann während des Ladens nur im Speicher gezeichnet und zum Schluss alle Canvas gemerged und auf dem Display ausgegeben.
  Mit Zitat antworten Zitat