I have just merged a giant pull request to CGE with 250 commits! This is a big work from Andrzej Kilijański and me (Michalis Kamburelis) from the last 3.5 months, and it includes:
-
Delphi compatibility! See PR 350 for details what works with Delphi — in short, almost everything 🙂 The supported compilers page was already updated. See Michalis presentation on DelphiCon 2021 for a great CGE overview for Delphi devs.
-
Integration with Vampyre Imaging Library. For Delphi it is even active by default, for FPC it soon will be. I will write about Vampyre Imaging Library more in upcoming news, but basically it is a great, open-source library for reading and writing images. Cross-platform, cross-compiler (both Delphi and FPC work flawlessly), efficient. We will rely on it more and more in CGE.
-
Upgrades / big rework of numerous examples. To be compatible with Delphi, but also to be designed using editor, use TUIState, be cross-platform, have a nice README… Of particular interest are these new examples:
- examples/images_videos/image_display (includes a speed test, to compare various image-reading libs)
- examples/curves/use_designed_curve
- examples/3d_rendering_processing/shader_override
- examples/3d_rendering_processing/multiple_viewports (big rework of older example)
- examples/3d_rendering_processing/listen_on_x3d_events (big rework of older example)
-
Inspector (announced previously) updates:
- work on mobile (press 3 fingers for 1 second to toggle),
- various fixes (including to show “Swap” time on Windows correctly),
- default shortcut changed to F8 (to not conflict with Windows debugger in Delphi; I will update the video about it soon),
- customizable by Container.InputInspector (instance of TInputInspector).
-
TCastleNotifications.DesignTestMessagesTimeout – cool feature to preview how notifications look like in design mode.
-
KTX fixes to handle RGB8, SRGB8 colors.
-
We officially deprecate dynamic library to read and render 3D models using CGE due to low usage. It was never the right way to use CGE (since it exposes a tiny API compared to what you can do with real CGE). We also deprecate some examples, as they no longer present “the advised way” of doing various things.
-
Fixed confusing LibPng warnings on Android (to account for the fact that LibPng is initialized on Android later).