![]() |
AW: BITBLT cross platform variante für FMX / LINUX
Zitat:
So wie ich das verstehe will er folgendes verwirklichen.
Delphi-Quellcode:
Das Problem ist nun für UNIX den vergleich zu finden.
function BitBltWrapper(DC: HDC; x, y, cx, cy: Integer; srcDC: HDC; x1, x2: Integer; rop: DWORD): BOOL;
var IsWindows, IsUnix: BOOL // muss außen definiert werden nur ein Beispiel begin Result := false; if IsWindows then Result := BitBlt(DC, x, y, cx, cy, srcDC, x1, x2, rop) else if IsUnix then Result := MyUnixBitBlt(DC, x, y, cx, cy, srcDC, x1, x2, rop); end; Wie er sich das DC und die anderen Parameter im weiteren verlauf holt mag mal dahingestellt sein. Zitat:
Da sehe ich nichts falsches dran. gruss |
AW: BITBLT cross platform variante für FMX / LINUX
Hallo,
wozu den Wrapper? Ich würde eine eigene Unit mit einer Linux-BitBlt-Funktion (IFDEF LINUX) schreiben, die die gleichen Parameter wie die Windows-Funktion benutzt und diese Unit ebenfalls statt der unit Windows per IFDEF LINUX einbinden. Was die Funktion dann intern macht -> da bin ich raus ;) |
AW: BITBLT cross platform variante für FMX / LINUX
Zitat:
Auf welchem Wege er das macht ist doch egal solange die Parameterliste stimmt. gruss |
AW: BITBLT cross platform variante für FMX / LINUX
Nein, das ist alles Käse.
Er hat einen FMX Canvas und Bitmaps. Diese bitten die passenden Methoden an. Er muss ein paar Ebenen höher ansetzen und dort den Code mit der Windows VCL Version auf einen Nenner bringen. Die BitBlt Funktion gehört zum Windows GDI. Woher bitteschön sollen Quell- und Ziel- HDC herkommen? |
AW: BITBLT cross platform variante für FMX / LINUX
Zitat:
Zitat:
Er wird sich schon was dabei gedacht haben und was Käse ist entscheidet er letztendlich für sich allein. Ich kann nicht weiterhelfen daher bin ich jetzt raus. gruss |
AW: BITBLT cross platform variante für FMX / LINUX
welcher code/funtion geht überall ?
möglich wäre
Delphi-Quellcode:
function bitblt_crossplattform ( bmp1 , bmp2 : TBitmap) ;
begin {$ifdef windows} // hier VCL + Windows GDI bitblt (bmp1.canvas.handle, .......); {$endif} {$ifdef Linux} // oder Firemonkey welche_Funktion_auch_immer (bmp1, .......); {$endif} end; |
AW: BITBLT cross platform variante für FMX / LINUX
Mein Ursprünglicher Gedanke war es, der CopyFrom() nochn overload zu verpassen.
So bräuchtest Du nur im Code per Aufruf Windows <> Linux entscheiden womit du es fütterst. Also zweiten overload mit BitBlt() definitionen und intern dann bitblt() aufrufen. Wäre das doof? (hab weil ich mir selbst nicht im klaren war vorhin beitrag entfernt) |
AW: BITBLT cross platform variante für FMX / LINUX
Er muss sich ja nicht entscheiden, immer die CopyFrom-Variante verwenden. Diese funktioniert ja auch unter Windows.
|
AW: BITBLT cross platform variante für FMX / LINUX
Zitat:
:wall: ich lach immer noch über mich selber :stupid: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:10 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