AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung BITBLT cross platform variante für FMX / LINUX
Thema durchsuchen
Ansicht
Themen-Optionen

BITBLT cross platform variante für FMX / LINUX

Ein Thema von bernhard_LA · begonnen am 27. Okt 2018 · letzter Beitrag vom 2. Nov 2018
Antwort Antwort
Seite 3 von 3     123   
EWeiss
(Gast)

n/a Beiträge
 
#21

AW: BITBLT cross platform variante für FMX / LINUX

  Alt 2. Nov 2018, 11:30
So wird das nichts.
Du musst eine High Level Lösung finden, die dir solche Details wie Aufrufparameter wegkapselt, wenn du nur ein Bitmap auf einen Canvas/anderes Bitmap malen willst.
Dito!
So wie ich das verstehe will er folgendes verwirklichen.

Delphi-Quellcode:
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;
Das Problem ist nun für UNIX den vergleich zu finden.
Wie er sich das DC und die anderen Parameter im weiteren verlauf holt mag mal dahingestellt sein.

Zitat:
Warum nicht gleich überall die Version nehmen, die überall funktioniert?
Will er ja nur er möchte das Format (den Aufruf von BitBlt) erhalten!
Da sehe ich nichts falsches dran.

gruss

Geändert von EWeiss ( 2. Nov 2018 um 11:47 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#22

AW: BITBLT cross platform variante für FMX / LINUX

  Alt 2. Nov 2018, 11:48
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
Heiko
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#23

AW: BITBLT cross platform variante für FMX / LINUX

  Alt 2. Nov 2018, 11:49
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
Ist doch nur ein Beispiel dessen was er erreichen will.
Auf welchem Wege er das macht ist doch egal solange die Parameterliste stimmt.

gruss
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#24

AW: BITBLT cross platform variante für FMX / LINUX

  Alt 2. Nov 2018, 13:31
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?
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#25

AW: BITBLT cross platform variante für FMX / LINUX

  Alt 2. Nov 2018, 14:15
Zitat:
Woher bitteschön sollen Quell- und Ziel- HDC herkommen?
Keine Ahnung habe kein FMX und werde es auch nicht verwenden.
Zitat:
Nein, das ist alles Käse.
Kann sein.. es widerspricht aber seinen wünschen darauf wurde von mir geantwortet, was er am ende tut kann mir egal sein.
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

Geändert von EWeiss ( 2. Nov 2018 um 14:18 Uhr)
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#26

AW: BITBLT cross platform variante für FMX / LINUX

  Alt 2. Nov 2018, 15:37
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;
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#27

AW: BITBLT cross platform variante für FMX / LINUX

  Alt 2. Nov 2018, 15:49
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)
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#28

AW: BITBLT cross platform variante für FMX / LINUX

  Alt 2. Nov 2018, 15:59
Er muss sich ja nicht entscheiden, immer die CopyFrom-Variante verwenden. Diese funktioniert ja auch unter Windows.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#29

AW: BITBLT cross platform variante für FMX / LINUX

  Alt 2. Nov 2018, 16:17
Er muss sich ja nicht entscheiden, immer die CopyFrom-Variante verwenden. Diese funktioniert ja auch unter Windows.


ich lach immer noch über mich selber
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 21:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz