X-Plane Scenery Tools on Linux
Current State of Development
Note: at this point, due to the low total number of developers working on scenery tools, Ben often has commits on the master tree that break compilation of some of the command line tools and other targets. These get fixed as we approach a tools beta release. There are a few ways to work around this:
- Grab a build based on a mile stone tag or tool version tag. (This may not help much for Linux tools, which have not been through a full release cycle.)
- Grab an older build, retry.
- Yell at Ben to fix his broken code!
Command Line Tools
DDSTool, DSFTool, ObjConverter and MeshTool should work out of the box. Since there was no heavy testing with Linux binaries yet (just because we haven’t released a beta or even an alpha yet), there will be most likely critical bugs, especially on 64-bit platforms where pointer issues and integer width inconsistencies might break handling of various file formats and produce corrupt file data.
This is the part which made me 50 years older while working on it. This is what we have at the moment:
- basic windowing and opengl support
- creating and loading scenery packages
- basic support for editing packages
And now the much longer list of things which need to be implemented:
- Menu System. The lack of a menu causes automatically the lack of almost any functionality, including saving the scenery package, using the terraserver layer, undoing tasks and so on. The idea is to implement an OpenGL drawn menu. The advantage is, that this one can be used on MacOS and Windows as well and we would get rid of platform specific menu code. Sadly Ben is the only one who understands his framework for drawing stuff and since he’s busy with X-Plane of course, this one will need some time until it’s implemented.
- Clipboard functionality and keyboard shortcuts. Adding clipboard code will be next thing on the list, as it’s only useful with working keyboard shortcuts it depends indirectly on:
- Unicode support. This one is on the list for MacOS and Windows builds as well. Current keyboard code and text data handling is ASCII only which is pretty much too restrictive. Since X-Plane supports Unicode already, we plan to revamp WED as well
- Drag&Drop. While it is working for ObjView already, the implementation for the X11 variant of WED is a bit more complex. Because drag&drop support is not mandatory to work with WED (as far as i reckon), it’s currently the last item on my TODO list
- Timer. WED makes use of timers to execute asynchronous tasks like scrollbar animation, background loading of data like the terraserver images and so on. While Windows can generate WM_TIMER messages, X11 lacks of such a functionality. Currently we use a threadbased timer which generates similar events but might cause locking issues. This one needs a revamp too.
- Compositing Window Manager compatibility. WED and ObjView currently suffer a bug which drives them useless when using them with a compositing Window Manager and OpenGL effects enabled.
- Packagemanagment. For being able to include the Scenery Tools in several Linux distributions, we need to create package management specific files like rpm spec’s and deb dsc’s.
- Messageboxes and File-Chooser Dialogs. Currently we’re using the ones provided by the GTK toolkit. GTK opens an own displayconnection and we need to flush this connection manually. This is a really dirty hack and can cause many problems. Preferably we want to implement own dialogs drawn by OpenGL in the far future.
X-Plane Scenery Tools on OS X
The Mac now uses the standard lib system – you should be able to build for any OS/architecture from any machine. Note that I have only tested this using X-Code 3.1.2.
X-Plane Scenery Tools on OS Windows
MinGW is the new official build environment.