Search the Community
Showing results for tags 'fpc'.
Found 3 results
-
Since years, our Open Source mORMot framework offers several ways to work with any kind of runtime arrays/objects documents defined, e.g. via JSON, with a lot of features, and very high performance. Our TDocVariant custom variant type is a powerful way of working with such schema-less data, but it was found confusing by some users. So we developed a new set of interface definitions around it, to ease its usage, without sacrificing its power. We modelized them around Python Lists and Dictionaries, which is proven ground - with some extensions of course. Two one-liners may show how our mORMot library is quite unique in the forest/jungle of JSON libraries for Delphi (and FPC): +] assert(DocList('[{ab:1,cd:{ef:"two"}}]')[0].cd.ef = 'two'); assert(DocList('[{ab:1,cd:{ef:"two"}}]').First('ab<>0').cd.ef = 'two'); Yes, this code compiles and run on Delphi - even the antique Delphi 7. 😆 If you compare e.g. to how the standard JSON library works in the RTL, with all its per-node classes, you may find quite a difference! And there is no secret in regard to performance, that our JSON processing is fast. More info: https://blog.synopse.info/?post/2024/02/01/Easy-JSON-with-Delphi-and-FPC
-
SDL3 for Pascal If you want to get your hands dirty and directly use the new SDL3, I got you covered. 😎 Add SDL3 to your uses statement and it will be linked into your executable with direct access, no DLLs to maintain. You also get miniaudio (for audio), Nuklear (for GUI), pl_mpeg (for video) and stb (for images & fonts) and more. Added a contrib folder and accepting PRs, if you wish to add a contribution. To start the ball rolling, I added ziparc archive utility for making standard password protected zip archives, using zlib/minzip from SDL3pas only. Enjoy! https://github.com/tinyBigGAMES/SDL3
-
SFML Simple Fast Multimedia Layer Bindings that allow you to use SFML and other useful C libraries with Pascal. Included CSFML (https://github.com/SFML/CSFML) pl_mpeg (https://github.com/phoboslab/pl_mpeg) Nuklear (https://github.com/Immediate-Mode-UI/Nuklear) physfs (https://github.com/icculus/physfs) minizip (https://github.com/madler/zlib) SDL (https://github.com/libsdl-org/SDL) Minimum Requirements Windows 10+ (64 bits) Delphi Community Edition (Win64 target only) FreePascal 3.2.2 (Win64 target only) Usage Add SFML to your uses section to access all the aforementioned libraries. You link to SFML dynamically by default and will look for the SFML DLL in your application path. You can also call InitSFML, before any other routine, with a the path to the DLL location. Define SFML_STATIC in SFML.pas to statically link to SFML and the DLL will not have to be included in your application distro. InitSFML will have no effect and you can leave it in your sources so that you can switch between static and dynamic linking during development. uses SysUtils, SFML; var Mode: sfVideoMode; Window: PsfRenderWindow; Event: sfEvent; Music: PsfMusic; begin Mode.Width := 800; Mode.Height := 600; Mode.BitsPerPixel := 32; Window := sfRenderWindow_create(Mode, 'Hello SFML', sfResize or sfClose, nil); Music := sfMusic_createFromFile('arc/audio/music/song01.ogg'); sfMusic_play(Music); while sfRenderWindow_isOpen(Window) = sfTrue do begin while sfRenderWindow_pollEvent(Window, @Event) = sfTrue do begin if Event.kind = sfEvtClosed then sfRenderWindow_close(Window); end; sfRenderWindow_clear(Window, DARKSLATEBROWN); sfRenderWindow_display(Window); end; sfMusic_stop(Music); sfMusic_destroy(Music); sfRenderWindow_destroy(Window); end. Support Issues Discussions SFML website SFML on YouTube