Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   BITBLT cross platform variante für FMX / LINUX (https://www.delphipraxis.net/198362-bitblt-cross-platform-variante-fuer-fmx-linux.html)

bernhard_LA 27. Okt 2018 13:28


BITBLT cross platform variante für FMX / LINUX
 
Hallo,


kann jemand eine unter FMX / LINUX verfügbare Variante von

Delphi-Quellcode:


///  WINDOWS GDI32 
function BitBlt(DestDC: HDC; X, Y, Width, Height: Integer; SrcDC: HDC;
  XSrc, YSrc: Integer; Rop: DWORD): BOOL; stdcall;




///  FMX LINIX Variante ????
function BitBlt(DestDC: THandle; X, Y, Width, Height: Integer; SrcDC: THandle;
  XSrc, YSrc: Integer; Rop: DWORD): Boolean;
begin
    ///  hier fehlt der code :-)

end
;



anbieten. Ich will Code der unter VCL / Windows läuft dann nur durch einen Austausch der eingebunden Units auch unter LINUX weiterverwenden.
Vielleicht muss ich das Rad nicht neu erfinden

EWeiss 27. Okt 2018 13:51

AW: BITBLT cross platform variante für FMX / LINUX
 
Gibt es nicht Wine für Linux?
Und sollte open source sein.

Schau doch mal wie die das Handhaben.

gruss

KodeZwerg 27. Okt 2018 13:51

AW: BITBLT cross platform variante für FMX / LINUX
 
Delphi-Quellcode:
CopyFromBitmap
abgeleitet vom TBitmap sollte in etwa das gleiche machen.

EWeiss 27. Okt 2018 14:06

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

Zitat von KodeZwerg (Beitrag 1416878)
Delphi-Quellcode:
CopyFromBitmap
abgeleitet vom TBitmap sollte in etwa das gleiche machen.

Keine Ahnung wo du deine Informationen immer herholst.

CopyFromBitmap basiert auf direct2d Linux unterstützt aber kein direct2d es sei denn man verwendet Wine (Wrapper für Windows)
Ich glaube ab vers. 1.8 wird direct2d unterstützt.

Wenn schon dann würde ich etwas aus GetDIBits und Konsorte zusammen schustern. (Bin mir aber nicht sicher ob Linux diese API kennt)

gruss

bernhard_LA 27. Okt 2018 14:08

AW: BITBLT cross platform variante für FMX / LINUX
 
unter Windows übergebe ich das Handle auf eine Canvas unter FMX hat die Bitmap zwar ein HAndle aber die Canvas nicht .....


Delphi-Quellcode:
unit windows_linunx;





function BitBlt(DestDC: THandle; X, Y, Width, Height: Integer; SrcDC: THandle;
  XSrc, YSrc: Integer; Rop: DWORD): Boolean;
begin
    /// hier fehlt der code :-)

    CopyFromBitmap ( ...)   /// wäre schon OK - wenn verfügbar  ???? 

end;

ich will eine Code variante für beide Platformen, und möglicst die exisierende Variante VCL unverändert .... weil die funktioniert momentan

EWeiss 27. Okt 2018 14:10

AW: BITBLT cross platform variante für FMX / LINUX
 
CopyFromBitmap basiert auf direct2d ist also nicht verfügbar.

Delphi-Quellcode:
FMX.Graphics.TBitmap.CopyFromBitmap


ist die FMX variante die denke ich mal ebenfalls auf direct2d aufbaut.
Ist aber unter Linux so nicht anwendbar.

Zitat:

und möglicst die exisierende Variante VCL unverändert .... weil die funktioniert momentan
Dann nimm sie doch wenn es geht.
Zitat:

unter Windows übergebe ich das Handle auf eine Canvas unter FMX
was denn nu FMX und\oder Linux.

Und nochmal
Bitblt unter Linux..

Hier noch ein anderer link!

gruss

bernhard_LA 27. Okt 2018 14:43

AW: BITBLT cross platform variante für FMX / LINUX
 
ich hätte primär gerne eine 100 % FMX // UNIX Veriante von meinem code - ohne die Verwendung von weiteren Tools auf der Unix Seite

wenn WinE, dann würde ich gerne nur diese c++ Datei verwenden und
wie binde ich die Wine Blibliothek in meine Delphi Anwendung ein ?
Gibt es hier eine Demo Code Varianate ?

EWeiss 27. Okt 2018 15:01

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

Zitat von bernhard_LA (Beitrag 1416889)
wie binde ich die Wine Blibliothek in meine Delphi Anwendung ein ?
Gibt es hier eine Demo Code Varianate ?

sorry das kann ich dir auch nicht sagen..

Ich denke aber wenn Wine unter Linux installiert ist und deine Anwendung mit .exe endet erkennt der Wrapper selbst ob es eine Windows Anwendung ist oder nicht.
In dem fall kannst du ganz normal BitBlt verwenden und Wine macht den Rest.
Es ist keine Bibliothek sondern ein Wrapper der Windows Anwendungen in UNIX fähigen Format umlegt.

In meinem anderen link. http://www.gtk.org/ framework welches von GIMP verwendet wird (Windows\Linux) gibt es diese Möglichkeiten.

Zitat:

BitBlt: depends what you're blitting to. Look at the Gdk Pixbuf functions.
SelectObject: no equivalent you don't need to select stuff into a DC to use it on Linux
CreateCompatible*: gdk_pixbuf_new_from_data
GetPixel/SetPixel: Again look at GDK but you don't really want to use this stuff, for image manipulation check out Cairo (still under heavy development)
Aber auch hier keine Ahnung ob man das unter Delphi mit einbinden kann.

gruss

bernhard_LA 28. Okt 2018 06:35

AW: BITBLT cross platform variante für FMX / LINUX
 
wenn ich wine verwende , da benötige ich auch keinen DELPHI UNIX compiler -> mein Ziel Cross Platform mit Delphi

KodeZwerg 28. Okt 2018 07:01

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

Zitat von EWeiss (Beitrag 1416882)
Zitat:

Zitat von KodeZwerg (Beitrag 1416878)
Delphi-Quellcode:
CopyFromBitmap
abgeleitet vom TBitmap sollte in etwa das gleiche machen.

Keine Ahnung wo du deine Informationen immer herholst.

CopyFromBitmap basiert auf direct2d Linux unterstützt aber kein direct2d es sei denn man verwendet Wine (Wrapper für Windows)

Hier habe ich die Information her und da steht nichts vonwegen limitiert auf Direct2D....
Wenn es so ist, tuts mir leid.


/edit
@bernhard_LA: Zeige doch mal bitte in form von Code was Du mit dem BitBlt() aufruf machen möchtest unter non-Windows.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:34 Uhr.
Seite 1 von 3  1 23      

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