"On fixing the pointer access I discovered that reading osga archives
containing ive files went into a cpu loop. This turned out to be a
problem with proxy_streambuf on Solaris. Public methods in the Solaris
streambuf standard library implementation rely on the gptr() being set,
which proxy_streambuf was not doing. So I have modified
proxy_streambuf to set the input sequence pointers, and have also
aligned it more with the standard library streambuf implementation
where all input is through underflow(), not uflow() which merely calls
underflow() and advances the pointer."
From Robert Osfield, change from using pointer cast and assignment to using
a templated _write and _read method to avoid pointer aliasing to 2/4/8
byte boundaries that some computer system may produce. These changes
where inspried by Colin McDonalds change to using memcpy, these
changes weren't merged as memcpy is not as clear in naming as _read,
_write and memcpy will incurr a function call just for copy a
uint.
"I took a closer look at the conditional code in
SeamFinder::seamReplacement().
Because _info.minRange is a double and lod->getMinRange(0) is a float,
the difference will be calculated with double precision. If
_info.minRange is cast as a float it is exactly the same value as
lod->getMinRange(0) and the difference is exactly zero.
So if you change
if((fabs(_info.minRange-lod->getMinRange(0))<0.001)&&(fabs(_info.lod0Range-lod->getMaxRange(0))<0.001))
to
if((fabs((float)_info.minRange-lod->getMinRange(0))<0.001)&&(fabs((float)_info.lod0Range-lod->getMaxRange(0))<0.001))
it works a lot better."
"DOFAnimation's default state could now be controlled by the RW option.
The option string is "dofAnimation"
If the option string is omitted the default animation state is off."
"ConvertFromFLT::addMultiTexture makes ENDIAN conversion for SMultiTexture
struct attributes.
When an flt object is multi-instantiated y should be done just first time,
because SMultiTexture struct is always the same, currently is being done for
each instance.
Attached file fix the problem but perhaps a more clean fix would be making
ENDIAN conversion at writing attributes time instead of at reading time. "