in the game engine again.
All files in source/gameengine/ I've committed below have a comment like
/* XXX note .... */
where something needs to be done. This is pretty straightforward for Erwin,
who has been notified in person too about this. :)
(2001) hack that enforced opening renderwindows smaller than screen size.
The notes I could find referred to testing old 3d cards, which failed to
give graphics memory for large windows. Another note was an issue on OSX,
where the topbar and windowbar gets hidden otherwise.
That latter case I corrected now.
Will organize good testing for this, if there's issues, will uncommit :)
sets. To fix it, I got rid of a very ancient hack to enable set grey wire
drawing (setting a global to pretend it's picking select draw).
Now this setting is nicely passed on via functions as argument.
- partially working workaround for nvidia bug on Os X 10.4.3
- brought back the raster ops hack for GT6800 with proper driver version
check so that text works both on Os X 10.4.3 and older systems.
this last patch was given by Kent Miller from Apple
"if" statements. The macro defined in gen_utils.h expands to two
statements; putting after an "if" statement without {} means the second
statement should always be executed. I'm not sure if just putting
braces around both statements would cause other compilers to complain.
But this explains an earlier bug in the Object module which only
appeared on MacOS/X.
incorrectly, including wrapping curve data as BezTriples. Needed to
make a change to beztriple module so we could more easily create a
"thick" BezTriple object similar to Blender.BezTriple.New().
The change to BezTriple.h pointed out some dead code in the Ipocurve
module that could be removed.
Instead of disabling zbuffer while drawing it, it now still writes zvalues,
but not tests for it. That way the centers are visible independent of
drawing order.
in other layers (or hidden with local view).
In my search for the absolute minimum of recalculations, changes are only
flushed when they're visible. On changing layers, the tags then are just
set again (for everything that potentially moves) to ensure proper state.
However, it didn't work proper for linked Mesh objects that changed in
editmode, the Derivedmesh callback then accessed memory out of bounds.
The current dependency code was more designed for animation systems...
updating display data should work too, but might need some more tests!
(Thanks Andrea for clear error sample!)
- raytracing code now uses cylinder-line intersect for strands. It used
to intersect with the screen-aligned strand quads, giving too many
misses for tracing.
Note; mirror for hair is still not well supported!
- added in Materials a choice for whether a material is Traceable for
raytracing or whether it is part of Shadow buffers. This way you can
exclude hair strands from raytracing, but still get shadowbuffers for it.
on 64-bit machines.
This code only seems to be used by the game engine anyway; maybe it's
only linux which always compiles it regardless of whether game engine is
enabled?
- Editmode Mesh: after a split command, normals were not recalculated
ALso: in Particle buttons, made the "Tex" button go to the maximum of 10
channels.
Very ancient bug in boxfilter for image texture popped up with new code
for correct bumpmapping. Caused texture type "Extend" not to work when
using for bump.
- If the mirrored group doesn't exist yet, it creates that group now.
- Painting on any non-mirror group (not a name complying mirror rules), it
will now paint mirrored on the group itself.
- The Mesh octree for mirror painting was not created on loading a file
in WeightPaint mode, or on exiting Editmode for Mesh. This caused mirror
painting to not work always.
- Tweaked the threshold calculation for vertices, so it gives fewer misses.
While investigating alternative filters (Mitchell), I found two small
errors in the Gauss code, it clipped wrong and multiplied wrong, causing
settings other than filter size 1.0 to not work properly.
Took the last-minute liberty to add more filter types in Blender too.
Also wrote an extensive log about how sampling & filtering in Blender
works.
http://www.blender3d.org/cms/Samples_and_Filtering.723.0.html