AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

max. TBitmap FMX vs. VCL

Ein Thema von bernhard_LA · begonnen am 22. Aug 2020 · letzter Beitrag vom 23. Aug 2020
 
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.377 Beiträge
 
Delphi 12 Athens
 
#13

AW: max. TBitmap FMX vs. VCL

  Alt 23. Aug 2020, 15:06
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.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (23. Aug 2020 um 16:27 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz