simgear/scene/material/mat.cxx simgear/scene/material/mat.hxx
simgear/scene/util/SGSceneFeatures.cxx
simgear/scene/util/SGSceneFeatures.hxx:
Olaf Flebbe: Make use of SGSceneFeatues for anisotropic filtering,
clean up.
simgear/scene/model/model.cxx
simgear/scene/util/SGSceneFeatures.cxx
simgear/scene/util/SGSceneFeatures.hxx:
Make sure textures are shared. Do not rely on a graphics
context to be available on model loading.
FlightGear doesn't use. Also includes a performance fix for the
call() builtin that should help Melchior, who was measuring lower
performance for the props.Node() interface than the getprop/setprop
API.
a much more important feature than they were two years or something ago, and
it's helpful for debugging and exploration to get this important node property
shown in property tree dumps or in the property browser (verbose mode).
in with readProperties() would not look the same, because element indices
of '0' were even dropped when a node has a "secret" value *and* children
- introduce "omit-node" modifier attribute for the "include" attribute.
This inserts the given file in place of the including node, while the
node is dropped. This is desirable for multiple includes (which can't
be done by multiply using the "include" attribute, as this isn't valid
XML spec syntax)
- fix bug that messed up leg distances after inserting and deleting waypoints
not at the end of the route
- move add_waypoint() and delete_waypoint from hxx to cxx
- beef up routetest
So toss a runtime error ("floating point error") when any of the math
library functions produce a non-finite value. Note that these are not
the only locations that can do that (simply dividing by zero will
produce an Inf), but it's still proper behavior.
Nasal now supports calls to "subcontexts" and errors can be thrown
across them, leading to complete stack traces when call() is used,
instead of the truncated ones we now see.
Vectors can now be concatenated using the ~ operator that used to work
only for strings.
Better runtime error messages in general due to a fancier
naRuntimeError() implementation
A big data size shrink on 64 bit systems; the size of a naRef dropped
by a factor of two.
"Braceless code blocks" have been added to the parser, so you can
write expressions like "if(a) b();" just like in C. Note that there's
still a parser bug in there that fails when you nest a braced block
within a braceless one.
Character constants that appear in Nasal source code can now be
literal multibyte UTF8 characters (this was always supported for
string literals, but character constants were forced to be a single
byte).
New modules: "bits", "thread", "utf8" and (gulp...) "io". The bits
library might be useful to FlightGear, the utf8 one probably not as
Plib does not support wide character text rendering. The thread
library will work fine for spawning threads to do Nasal stuff, but
obviously contact with the rest of FlightGear must be
hand-synchronized as FlightGear isn't threadsafe. The io library is
no doubt the most useful, as it exposes all the basic stdio.h
facilities; it's also frighteningly dangerous when combined with
networked code...
that had been told that this node is linking to them
mf: remove old erase-by-key methods; they are now unused and always were
problematic, so they won't be used in the future either
- remove bad code from hash_table:🪣:erase(const char *) that was
introduced with the last patch. (This function isn't used anywhere and
is scheduled for removal. Leaving it in for now as a reference.)
- remove leaves first in remove_from_path_caches()
- cosmetics: indentation, one trailing space, variable name change, comment
(Sorrry for mixing that with actual code, but I think it's easy to see.)
"""
- make every node maintain list of properties that link to it
- add functions to erase node by address from hash bucket/entry in their
path caches, so that all references can be removed
- if a node is removed, it (and all children, grandchildren, ...) calls
all linked properties to remove them from their path-cache
This fixes problems with the aerotow over multiplayer and maybe some
other problems, where nodes are queried by name.
"""