I figured users would like to know what’s happening in the world of XSquawkBox given all of the movement on the VR front at Laminar lately.
Just as a general disclaimer: Any development or features mentioned in this blog post may be subject to change prior to the actual release.
There are two distinct branches of XSquawkBox coming up – a 1.4 release which largely contains bugfixes but no major interface changes for X-Plane 10 (and maybe 11 if you don’t want to deal with the changes in 2.0), and a 2.0 release which will be specifically for X-Plane 11 and newer, and will be snapped up to the current accepted practices for X-Plane at the expense of familiarity and compatibility with older versions.
Due to the way development is shaping up, XSquawkBox 2.0 might be released before 1.4
After these releases, XSquawkBox 1.x will most likely become a maintenance-only branch with no new features, and will most likely be retired by the end of 2019.
Possible Changes in XSquawkBox 2.0
This is a rough list of the things that are likely to change from the current status quo in 1.x:
- Strictly for X-Plane 11 (or newer) only.
- VR Support
- The Text Radio window will become a proper floating window, and not a special-transparent one.
- The Who’s Online window will become a proper floating window and not a special transparent one.
- Map Overlays for locating other aircraft and active controllers
- LegacyCSL removed completely before the final release of 2.0
- Text Labels removed completely before the final release of 2.0
Bug Fixes and Improvements that will be included in XSquawkBox 1.4
This is a rough list of the stuff that’s working in the interrim 2.0 family branch(es) that I will be backporting to 1.4, or will be added to 1.4 because it makes sense to do so:
- LegacyCSL Texture ID allocation bug with certain third party aircraft (libxplanemp bugfix)
- Obj8 CSL simplifications/improvements:
- GLASS components are gone
- LOWLOD will probably be removed shortly as libxplanemp is not using LOWLOD anywhere except as a fallback for the lights-only model
- The lights only model will be used when the aircraft is beyond full model range (surprisingly, this was never in Ben’s experimental Obj8 code and I never noticed until I refactored it).
- Obj8 Asynchronous Load (it works in the 2.0 branch – pretty sure I know how to fix the legacy branch now)
- Text Label Size with HDR/FSAA Bug: Turns out there’s an art control which tells us what the scaling ratios are for the FSAA mode in use so we can correct the text projection when we render the labels.
- Anisotropic Filtering will be enabled for legacy CSL aircraft to match the simulator’s own setting (Anisotropic Filtering has been in libxplanemp for a while actually, just turned off by default because I didn’t want to add a separate option to control it in XSB).
Two of the above fixes (Text Label Size and Anisotropic filtering) are dependent on specific Art Controls being available to allow us to match the simulator’s behaviour (Sorry Ben). Fortunately, both of these do have non-fatal fallback outcomes if the art controls go-away – just that specific behaviour will revert to the old (absent or slightly broken) state.
A simplified version of it is in libxplanemp 2.0, but XSB 2 will most likely not use it when ACCONFIG is available as a lower overhead alternative will be available to us. This should make it into 1.4 along with ACCONFIG support.
In the past week, I’ve been hard at work refactoring (and rewriting) a large chunk of libxplanemp. The changes aren’t public yet and won’t be until I’m happy they’re mostly correct (should be within the next week or two).
- libxplanemp 2.0 makes use of the new XPLMInstance API which features in X-Plane 11 for Obj8 CSLs, but uses the compatibility wrapper for older releases of X-Plane.
- ACF support is gone. LegacyCSL support is optional.
- Some overlooked queries against the OpenGL state got optimised out – on X-Plane 10.30 and newer, there should no longer be any queries for GL state data through the GL driver, removing a long-standing potential source of rendering pipeline stalls.
- A bug with LegacyCSL texture loads got fixed that has been affecting FF A320 users, and was possibly also still breaking with older versions of the IXEG 733 on X-Plane 11.
- The Obj8 asynchronous loader finally works properly, removing the sim stutter as aircraft get rendered for the first time.
- Thanks to some overlooked art controls, FSAA no longer shrinks or distorts aircraft labels.
Developer oriented changes include:
- The libxplanemp observer API has been removed as nobody was using it.
- The callback mechanism has been removed in favor of a bulk push mechanism which applications can use to update a lot of aircraft with a single call.
- The reliance on XSquawkBox’s configuration callback has been removed, instead favouring a struct which can be get/set using a specific method in the API.
- Doxygen documentation should be available for libxplanemp 2.0 by the time it’s ready for general consumption by third parties.