Remove heavy early-Z passes from various default rendering effects.
Equates to a 25% FPS gain on Mac (no difference on my Linux box).
(Early-Z is fine in principle, but should use trivial shaders and no
lighting, texturing or fog. In local testing no measurable benefit
was found in even a true early-Z pass)
In time for 3.0. The API is still not fully complete, and not fully
cleaned up, but this is good enough for this release cycle (and it
should offer benefit longer term, if not now -- hopefully performance as
well).
Many thanks to Hooray as well, who has helped prepare things while I
could not, and often suggested ideas.
All reviewed aircraft now support total energy compensated variometers and
reuse a common implementation. The following issues have been addressed, either
explicitly or as a benefit from the integration:
+ Fixed incorrect variometer readouts at sim/speed-up values != 1
+ Fixed erratic instrument behavior after pause and reinit
+ Reworked all vario needle animations to be smoother.
+ Fixed ASK13 yaw string. Now it deflects to the correct side.
+ Added temperature and (fake) battery readings to ILEC SC7 digital variometer.
+ Fixed ILEC SC7 sign readout (didn't show the minus sign).
Note: The ASK21 models have not been integrated, as they will need a more
profound cockpit overhaul.
A Nasal library for implementing instruments that are specific for soaring.
This version supports:
+ Total Energy compensated variometers
+ Netto variometers
+ Relative (aka Super-Netto) variometers
+ Configurable dampener for simulating mechanical needles
+ Averager
+ Speed to fly computer
+ Speed Command variometer
+ Yaw string (it's an instrument, isn't it?)
io.inlude() loads and executes a Nasal file in place, effectively embedding
the script in the calling namespace. The function adds a symbol mark in the
namespace to avoid duplicate loading.
Additionally, in this path:
+ io.basename() & io.dirname(): Convenience functions for managing path
strings. Designed after their unix counterparts.
+ string.normpath(): Improved support for relative paths. It can now handle
paths starting with double dots, like ../../Directory
This require less interaction between Nasal and C++ and
also does not need to create a list of removed children
which was not used anyway. Now it require about 70% less
time to execute.