Einzelnen Beitrag anzeigen

Renate Schaaf

Registriert seit: 25. Jun 2020
Ort: Lippe
114 Beiträge
 
Delphi 11 Alexandria
 
#1

FMX-TBitmap: Nach Gebrauch von Canvas ins threads unbrauchbar?

  Alt 1. Nov 2020, 11:55
Eigentlich sollten Pixel-Manipulationen mit TBitmapData doch thread-safe sein. Jedenfalls sind sie das meiner Erfahrung nach, aber nur, wenn man mit Bildern arbeitet, die von der Festplatte geladen werden oder in TImageControls gespeichert sind.

Sowie man eine Bitmap per Canvas-Operationen verändert hat, ob im Haupt-Thread oder im Hintergrund, bekommt man Probleme, jedenfalls mit Delphi 10.3.3, und besonders unter Android, wo man doch gerade da darauf angewiesen ist, lange Operationen im Hintergrund auszuführen.
Wenn ich meine Videos nicht im Hintergrund schreiben kann, ist das Cross-Platform-Projekt dafür gelaufen.

Ich hab ein Testprojekt gemacht, in dem Bitmaps mit und ohne Gebrauch von Canvas im Hintergrund rotiert werden (mit Harry Stahls Rotierer übersetzt nach FMX). Ich hänge es mal an, vielleicht hat jemand Interesse mal zu schauen, was da schief läuft. Hoffentlich durch einen Fehler von mir. Es sieht so aus, als wenn nach Gebrauch vom Canvas das RefCounting durcheinander gerät

Besonders schön wäre ja, wenn das alles in 10.4 schon funktioniert.

Danke, Renate
Angehängte Dateien
Dateityp: zip BitmapsInThreads.zip (1,38 MB, 4x aufgerufen)
Renate

Geändert von Renate Schaaf ( 1. Nov 2020 um 11:57 Uhr) Grund: Anhang vergessen
  Mit Zitat antworten Zitat