SDL3 (Simple DirectMedia Layer) Packages

Zur Vorstellung von Komponenten und Units für Lazarus
Mathias
Beiträge: 6709
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

SDL3 (Simple DirectMedia Layer) Packages

Beitrag von Mathias »

Ich stelle hier mal mein neuster Header vor.
Es ist das brandneue SDL3

https://github.com/sechshelme/Lazarus-S ... d_Examples

Im Ordner "packages" befindet sich die Lazarus Package dazu. Einfach dort die "sdl3_package.lpk" installieren.

Vorausgesetzt, das alles läuft, in ein funktionstüchtiges SDL3

Für Linux von hier am besten selbst bauen:
Dies kann man hier herunterladen und bauen. https://github.com/libsdl-org/SDL

Für Windows 64bit kann man hier die fertigen DLLs runterladen:
https://github.com/sechshelme/Lazarus-S ... /DLL/win64
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
AlterPascaler
Beiträge: 72
Registriert: Mo 26. Jun 2023, 18:56
OS, Lazarus, FPC: Linux, Lazarus, Free Pascal
CPU-Target: xxBit
Wohnort: Deutschland, NRW

Re: SDL3 (Simple DirectMedia Layer) Packages

Beitrag von AlterPascaler »

Hi Mathias,

zur Info!

Wollte heute mal den SDL Package ausprobieren.

Ziel System ArchLinux (Manjaro).

Habe SDL gebaut und installiert wie beschrieben, hat funktioniert.

Bei der Installation des Package unter Lazarus habe ich folgende Fehler bekommen.

Code: Alles auswählen

Kompiliere Package SDL3_package 0.0: Erfolg, Warnungen: 2, Hinweise: 7
Hint: Start of reading config file /home/thomas/laza/3.0.0/fpc/bin/x86_64-linux/fpc.cfg
Hint: End of reading config file /home/thomas/laza/3.0.0/fpc/bin/x86_64-linux/fpc.cfg
sdl3_system.inc(113,10) Warning: Function result does not seem to be set
sdl3_system.inc(35,38) Hint: Parameter "window" not used
sdl3_system.inc(35,59) Hint: Parameter "interval" not used
sdl3_system.inc(35,78) Hint: Parameter "callback" not used
sdl3_system.inc(35,103) Hint: Parameter "callbackParam" not used
sdl3_system.inc(118,10) Warning: Function result does not seem to be set
sdl3_system.inc(37,30) Hint: Parameter "Enabled" not used
IDE erstellen: Exit code 2, Fehler: 2, Warnungen: 5, Hinweise: 4
Hint: Start of reading config file /home/thomas/laza/3.0.0/fpc/bin/x86_64-linux/fpc.cfg
Hint: End of reading config file /home/thomas/laza/3.0.0/fpc/bin/x86_64-linux/fpc.cfg
Hint: Start of reading config file /home/thomas/laza/3.0.0/config_lazarus/idemake.cfg
Hint: End of reading config file /home/thomas/laza/3.0.0/config_lazarus/idemake.cfg
Warning: linker: /usr/bin/ld: cannot find -lSDL3_image: No such file or directory
Warning: linker: /usr/bin/ld: cannot find -lSDL3_rtf: No such file or directory
Warning: linker: /usr/bin/ld: cannot find -lSDL3_ttf: No such file or directory
Warning: linker: /usr/bin/ld: cannot find -lSDL3_mixer: No such file or directory
Warning: linker: /usr/bin/ld: cannot find -lSDL3_net: No such file or directory
make[2]: *** [Makefile:4362: lazarus] Error 1
make[1]: *** [Makefile:4801: ide] Error 2
*** [Makefile(3116,0) Error: linker: ide] Error 2
lazarus.pp(171,1) Error: Error while linking
Da schein noch ein paar Librays zu fehlen.

Hast du da eine Empfehlung, wie ich da jetzt vorgehen sollte. Mein System ist SDL free.

Viele Grüße
AP
Viele Grüße
AlterPascaler

Mathias
Beiträge: 6709
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: SDL3 (Simple DirectMedia Layer) Packages

Beitrag von Mathias »

Hast du die SDL3 libs installiert ?
Auch die anderen SDL5_image, etc.

https://github.com/libsdl-org/SDL

Ohne dies geht gar nichts.
Mit CMAKE geht sollte dies sehr einfach gehen. Es sollte alles in den README von den Paketen stehen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 6709
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: SDL3 (Simple DirectMedia Layer) Packages

Beitrag von Mathias »

Was noch wichtig ist, die Package ist momentan mit Vorsicht zu geniesen. Es gibt zT. noch recht grobe Änderung in den libs.
Mein Ziel ist es, wen ein Release rauskommt, das ich das ganze nochmals durcharbeite und so kann man den Pascal-Header an diese Version knüpfen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
AlterPascaler
Beiträge: 72
Registriert: Mo 26. Jun 2023, 18:56
OS, Lazarus, FPC: Linux, Lazarus, Free Pascal
CPU-Target: xxBit
Wohnort: Deutschland, NRW

Re: SDL3 (Simple DirectMedia Layer) Packages

Beitrag von AlterPascaler »

Hi Mathias,

unter LINUX fehlten einige Libs, SDL_TTF, SDL_RTF, SDL_MIXER, SDL_IMAGE und SDL_NET. Die Sources findest du
unter https://github.com/libsdl-org

Mit deiner Installationsbeschreibung für Linux unter https://github.com/sechshelme/Lazarus-S ... all_sdl.md werden die Libs nicht mit installiert.

Im Anhang habe ich ein Script, was alles herunterlädt, kompiliert und installiert.
Da ich ArchLinux verwende muss noch der Lib- Suchpfad angepasst werden, welches das Scrip auch macht.

Leider muss ich dir sagen, das bei mir noch nicht viel läuft von den Beispielen. Schade :(
Ich drücke die die Daumen.
Dateianhänge
sdl-build.sh
(1.72 KiB) 41-mal heruntergeladen
Viele Grüße
AlterPascaler

Mathias
Beiträge: 6709
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: SDL3 (Simple DirectMedia Layer) Packages

Beitrag von Mathias »

Im Anhang habe ich ein Script, was alles herunterlädt, kompiliert und installiert.
Da ich ArchLinux verwende muss noch der Lib- Suchpfad angepasst werden, welches das Scrip auch macht.
Ein Script hätte ich da auch gehabt, dies sieht nicht so professionell aus wie deines. :oops:

Es installiert alles in /usr/local somit wird alles auf Anhieb gefunden, Ohne das man noch Umgebungsvariablen setzen muss.
https://github.com/sechshelme/Lazarus-S ... _create.sh

Das mit den Schleifen muss ich mal genauer angucken, dies würde mein Script sicher auch einfacher machen.

Für Windows gibt es auch eines, aber leider hackt es ein wenig und man muss noch mit "cmake-gui" nachhelfen. Vor allem was Freetype anbelangt.
https://github.com/sechshelme/Lazarus-S ... _create.sh

Ich bin auch noch dran um meine *.md ausführlicher zu gestalten.
Leider muss ich dir sagen, das bei mir noch nicht viel läuft von den Beispielen. Schade :(
Was will den nicht ?
Noch was, diese Woche wurde an den libs eine grössere Änderung vorgenommen, was die Tastatur anbelangt.
Ich habe meine Package vorgestern angepasst, alles was älter ist läuft nicht mehr.

Wie gesagt, es ist einem recht frühen Stadium.
Ich drücke die die Daumen.
Danke

Wie schon gesagt, ich warte ab bis das erste Release raus kommt. Und dann werde ich alles nochmals neu übersetzen.
Dies wird dann einige schneller gehen, da ich einige Hilfstoole und Know How habe.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
AlterPascaler
Beiträge: 72
Registriert: Mo 26. Jun 2023, 18:56
OS, Lazarus, FPC: Linux, Lazarus, Free Pascal
CPU-Target: xxBit
Wohnort: Deutschland, NRW

Re: SDL3 (Simple DirectMedia Layer) Packages

Beitrag von AlterPascaler »

Gib bescheid wenn du soweit bist, dann Versuche ich es nochmal. Wäre doch schade wenn es im Sande verläuft, nach soviel Arbeit.

Wenn du dein SDL Package installierst, kompilierst du das in die Lazarus-Ide?
Viele Grüße
AlterPascaler

Mathias
Beiträge: 6709
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: SDL3 (Simple DirectMedia Layer) Packages

Beitrag von Mathias »

Wenn du dein SDL Package installierst, kompilierst du das in die Lazarus-Ide?
Ja klar, es ist ja eine Lazarus-Package. Anders geht es kaum.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
Roland Chastain
Beiträge: 160
Registriert: Sa 7. Jul 2012, 21:50
Wohnort: Saargemünd
Kontaktdaten:

Re: SDL3 (Simple DirectMedia Layer) Packages

Beitrag von Roland Chastain »

Hallo zusammen !

Für mich (Linux Mageia) funktionieren die Beispiele von Mathias perfekt (1). Ich nutze das Package nicht. Ich füge einfach den Quelldateipfad in den Projektoptionen hinzu.

Ich sehe in diesem Fall keinen wirklichen Sinn in einem Lazarus-Package.

(1) An den Beispielen müssen zwei kleine Änderungen vorgenommen werden.

Code: Alles auswählen

  //LRenderer := SDL_CreateRenderer(LWindow, nil, SDL_RENDERER_ACCELERATED or SDL_RENDERER_PRESENTVSYNC);
  LRenderer := SDL_CreateRenderer(LWindow, nil);
  
    //while SDL_PollEvent(LEvent) = 1 do
    while SDL_PollEvent(LEvent) do
Petit poisson deviendra grand,
Pourvu que Dieu lui prête vie.

Mathias
Beiträge: 6709
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: SDL3 (Simple DirectMedia Layer) Packages

Beitrag von Mathias »

Für mich (Linux Mageia) funktionieren die Beispiele von Mathias perfekt (1). Ich nutze das Package nicht. Ich füge einfach den Quelldateipfad in den Projektoptionen hinzu.

Ich sehe in diesem Fall keinen wirklichen Sinn in einem Lazarus-Package.
Ein Package hat den Vorteil, wen man das Project zügelt, werden die Units auf Anhieb gefunden, ansonsten muss man bei jedem Project die Unit-Pfade anpassen.
(1) An den Beispielen müssen zwei kleine Änderungen vorgenommen werden.
CODE: ALLES AUSWÄHLEN

Code: Alles auswählen

  //LRenderer := SDL_CreateRenderer(LWindow, nil, SDL_RENDERER_ACCELERATED or SDL_RENDERER_PRESENTVSYNC);
  LRenderer := SDL_CreateRenderer(LWindow, nil);
  
    //while SDL_PollEvent(LEvent) = 1 do
    while SDL_PollEvent(LEvent) do
Kannst du mir sagen, wo du dies gefunden hast ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
Roland Chastain
Beiträge: 160
Registriert: Sa 7. Jul 2012, 21:50
Wohnort: Saargemünd
Kontaktdaten:

Re: SDL3 (Simple DirectMedia Layer) Packages

Beitrag von Roland Chastain »

Mathias hat geschrieben: Mo 8. Jul 2024, 13:35 Kannst du mir sagen, wo du dies gefunden hast ?
Diese Korrektur musste ich in mehreren Beispielen vornehmen. Ich sehe, dass Sie die Korrektur inzwischen auch Ihrerseits vorgenommen haben. Also habe ich umsonst gesprochen. :oops:
Petit poisson deviendra grand,
Pourvu que Dieu lui prête vie.

Mathias
Beiträge: 6709
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: SDL3 (Simple DirectMedia Layer) Packages

Beitrag von Mathias »

Diese Korrektur musste ich in mehreren Beispielen vornehmen. Ich sehe, dass Sie die Korrektur inzwischen auch Ihrerseits vorgenommen haben. Also habe ich umsonst gesprochen. :oops:
Leider ändert noch einige gravierendes.
Daher alles (noch) mit Vorsicht geniessen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 6709
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: SDL3 (Simple DirectMedia Layer) Packages

Beitrag von Mathias »

Ich habe die Pakage auf die neuste Version von 3.1.3 angepasst.

Am besten die Quellen von SDL 3.1.3 von hier runterladen: https://github.com/libsdl-org/SDL/releases
Mein FPC-Header ist auf diese Version angepasst.
Für Windows-User,, gibt es dort fertige DLLs.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Neo1171
Beiträge: 5
Registriert: Do 7. Nov 2024, 17:56

Re: SDL3 (Simple DirectMedia Layer) Packages

Beitrag von Neo1171 »

Hallo Mathias.


Erstmal möchte ich dir meinen großen Dank aussprechen, dass ich dank dir schon das neue SDL3 unter Lazarus verwenden kann!


Ich beginne grade ein OpenGL Projekt und hatte versucht Texturen durch Verwendung der Funktion IMG_Load() aus der SDL3_image library zu laden.
Das führt zumindest unter Windows leider zur Fehlermeldung, dass der Prozedureinsprungspunkt "SDL_ConvertSurfaceFormat" in der Datei SDL3_image.dll nicht gefunden wurde.


In SDL3 wurde ja die Funktion „SDL_ConvertSurfaceFormat“ umbenannt in „SDL_ConvertSurface“.


Diese Änderung ist in deiner SDL_surface.inc ebenso vorzufinden. Allerdings war dort auch noch die alte Version „SDL_ConvertSurfaceFormat“ vorhanden.
Diese habe ich entfernt. Ebenso gefunden und entfernt wurde der Eintrag in der Datei SDL3_surface.inc.
Dennoch wird bei Verwendung obiger Funktion die Fehlermeldung provoziert.
Magst du mal drüber schauen woran das genau liegt?


Gleicher Fehler lässt sich mit deinem Beispiel „\examples\SDL_images\10_-_Renderer_and_Texture_SDL_images“ nachvollziehen.


Vielen Dank und lieben Gruß ;)

Mathias
Beiträge: 6709
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: SDL3 (Simple DirectMedia Layer) Packages

Beitrag von Mathias »

Eines vorweg, bei Surface gab es eine größere Änderung. Daher bin ich da noch am üben.

Von wo hast du sdl3_images ?
Offiziel ist mir nur sdl2_images bekannt.
Ausser du baust sie selbst.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten