Neue Class von TCustomBitmap ableiten

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.
Antworten
aro
Beiträge: 130
Registriert: Di 26. Jul 2011, 19:58
OS, Lazarus, FPC: Deepin 20.2; Lazarus 2.0.0 + dfsg-2
CPU-Target: 64Bit

Neue Class von TCustomBitmap ableiten

Beitrag von aro »

Hallo,

ich verwende einen Raspberry Pi unter Linux und versuche eine schnelle und resourcenschonende Grafikschnittstelle analog zu DIB´s unter Windows zu bauen.

Nach meinen Delphierfahrungen haben die meisten Komponenten einen Vorgänger mit Custom im Namen, von dem man eigene Klassen ableiten kann.

Ich habe nun versucht von TCustomBitmap eine neue Klasse abzuleiten, was sich zwar fehlerfrei kompilieren lässt, aber nicht lauffähig ist.

Müsste die Funktion aus TBitmap "class function GetSharedImageClass: TSharedRasterImageClass; override;" nicht in TCustomBitmap deklariert sein ???

Dann würde es mit der Ableiung klappen.

Änderungen in Grahics.pas kann ich zwar vornehmen und auch speichern, aber diese werden nicht berücksichtigt. Der Kompiler holt sich die Daten irgend wo her aber aktualisiert diese nicht aus dem Quelltext.

Wie kann ich Änderungen so vornehmen, das diese in meiner Ableitung auch wirklich verwendet werden?

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

Re: Neue Class von TCustomBitmap ableiten

Beitrag von theo »

Was ist genau dein Ziel?

Die Grafik unter Lazarus ist ziemlich vielschichtig.
Z.T. noch im Zusammenspiel mit den Free Pascal Grafik Klassen, die erst einmal nicht an ein Display gebunden sind.
http://wiki.freepascal.org/fcl-image

Bevor du loslegst, würde ich mir da zuerst einen Überblick verschaffen.

aro
Beiträge: 130
Registriert: Di 26. Jul 2011, 19:58
OS, Lazarus, FPC: Deepin 20.2; Lazarus 2.0.0 + dfsg-2
CPU-Target: 64Bit

Re: Neue Class von TCustomBitmap ableiten

Beitrag von aro »

Ich verwende in meinen Programmen nicht die normalen Komponenten in einem Formular, sondern eine Zeichenfläche, die verändert wird.

Mein Ziel ist es Grafiken aus einzelnen Bildteilen zusammenzusetzen und dann in die Gesamtgrafik an einer bestimten Position einzufügen, zu verschieben usw. wie man das beispielweise von Spielprogrammen kennt.

Dazu habe ich eine sehr schnelle und resourcenschonende Lösung analog den DIB´s in WINDOWS gefunden.

Meine Zeichenfläche kann natürlich nicht von TBitmap abgeleitet sein, weil schnelle, resourcenschonende und TBitmap unmöglich ist.

Mein einziges Problem besteht darin, das in der Zeichenfläche natürlich auch Texte enthalten sein müssen.

Das realisiere ich derzeit dadurch, das ich ein Bitmap nehme, den Text mit Canvas.textout erzeuge und das Bitmap dann einfüge.

Das bischen Text in das Bitmap zu zeichnen dauert aber viel länger, als den gesamen Bildschirminhalt in den Framebufer zu bringen und das Bild damit anzuzeigen.

Ich brauche also eine Lösung, die wesentlich effizienter ist, und nicht so lustig durch alle abgeleiteten Klassen hüpft.

aro
Beiträge: 130
Registriert: Di 26. Jul 2011, 19:58
OS, Lazarus, FPC: Deepin 20.2; Lazarus 2.0.0 + dfsg-2
CPU-Target: 64Bit

Re: Neue Class von TCustomBitmap ableiten

Beitrag von aro »

Was ich noch ergänzen wollte:

TFPCustomImage hatte ich vorher schon auf Tauglichkeit getestet. Auf den ersten Blick sehr kurzer Quelltext, sieht alles gut aus. Auf den 2. Blick völlig unbrauchbar. Diese Variante verwendet für jede Farbe 16 Bit. Die Daten werden in einem Array von 64 Bit pro Pixel abgelegt. Ich verwende das 32 - Bitformat, weil der neue Treiber des Raspi seit Jan 2017 nicht mehr das 16 Bit sondern das 32-Bitformat verwendet. Da muß ich für jedes Pixel eine Konvertierung der Farben vornehmen. Da habe ich nichts gewonnen.

Antworten