Die registrierten TCanvasManager.FCanvasList kann man leider nicht ändern (strict private),
aber hab bissl was gefunden.
FMX.Canvas.D2D : TCustomD2D, TCustomBitmapCodecWIC= BMP JPEG PNG GIF TIFF ICO WMP ... WIC klingt ja eigentlich nicht schlecht
FMX.Canvas.GDIP : TCanvasGdiPlus
FMX.Canvas.GPU : TCustomCanvasGpu, TBitmapCtx
FMX.Canvas.Mac : TCanvasQuartz, TQuartzBitmap
FMX.Graphics : TPrinterCanvas
In TCanvasManager.GetDefaultCanvas an TCanvasManager.FDefaultCanvasClass kommst nicht ran.
TBitmap.GetCanvasClass oder TBitmapImage.GetCanvasClass lassen sich auch nicht überschreiben.
TBitmapImage/TCanvas/TCanvasClass kann man im TBitmap nicht zuweisen/austauschen. (keine aufrufbaren Setter-Methoden oder Write-Property)
TCanvasManager.RegisterCanvas kann man aufrufen und eine Canvas-Klasse nochmal mit anderen Parametern registrieren (Default=True), aber bringt nichts, weil es zuletzt gefunden und somit ignoriert wird.
So gesehn ist das schon ein bissl krank.
Hatte gedacht/gehofft so kommt was Anderes raus, aber es bleibt bei TCustomD2D mit 8192.
Delphi-Quellcode:
TCanvasManager.EnableSoftwareCanvas(True);
Image := TBitmap.Create(x, y);
TCanvasManager.EnableSoftwareCanvas(False);
FMX.Canvas.GDIP, FMX.Canvas.GPU ins USES, selbst wenn in der
DPR als Erstes, ändert nichts.
Delphi-Quellcode:
class function TCanvasD2D.GetAttribute(
const Value: TCanvasAttribute): Integer;
const
DefaultMaxTextureSize = 8192;
// According DirectX 10 specification.
Das wäre per se überschreibbar (override), aber hilft nichts, da sich die Ableitung nicht einbinden lässt, bzw. das originale TCanvasD2D immer zuerst gefunden wird.
Bleibt wohl nur eine Beschwerde im QualityPortal und auf Delphi 10.9 warten.
Oder eine externe Graphic-Lib verwenden.
Im Windows kannst dir auch das
VCL-TBitmap reinholen.