Needed to deal with OS like openSUSE where Python is installed to /usr/lib64
and don't work if it's getting bundled into <blender_version>/python/lib.
Thanks to Campbell to making this patch cleaner :)
the embed bge has its own DisableForText() routine which prepares the GL flags for the text render.
For some reason blenderplayer is taking a slim approach and going straight for the rendering. This routine helps to address this bug/case (non reported, foundin my own project files). If need arises we should move this to its own routine incorporating the other GL tests the embed bge performs.
Issue is caused by scaling for power of 2 dimensions and mipmapping that happens through GLU. It looks like the library cannot handle float colour values above 1.0 correctly. Since we are close to release I will just clamp the srgb result for now even though it will result in a small performance loss for 16 bit textures only.
I tried a few things before that, glGenerateMipmaps + no scaling (supported for 2.0 GL hardware and up), or using our own scaling instead of glu among them which worked very nicely and gave a speedup too. However, since we are close to release and there may be issues with GPU mipmap generation, see:
http://www.gamedev.net/topic/495747-another-glgeneratemipmap-question/
(old discussion but better be sure than sorry)
I went for the most compatible solution. Maybe after release this can be tested if other devs agree.
[#30059] Shape Keys is gone in Blender if you use Add Object Actuator in BGE
[#30024] Segmentation fault after addObject when using shape keys
[#28683] segfault in shapekey conversion code when running a game (YF, level home) twice
* Exploded faces that were meant to be hidden were still created with invalid vertices (0,0,0,0).
* In normal cases this went unnoticed, but for example edge split modifier crashed when it encountered these faces.
Issue was caused by making and loading editMesh in drop_named_image_invoke,
which lead to freeing/changing pointers used by CustomData layers. Some of
this pointers might be used by DerivedMesh, so we need to update DerivedMesh
after loading EditMesh.
* Hair particle rotations weren't calculated properly for particle locations along a path and the "particle on path" calculations were not correct in many other ways too.
* Now the particle's location along a path is interpolated directly from the cached paths if it exist. These paths are always correctly calculated.
* Paths are now cached if a particle instance modifier using the particle system with the path option exists.
Problem was in how file selector is called by the effect_strip_add operator invoke. WM_operator_filesel() is not suited, as it directly calls exec if filepath is already set, and sequencer_generic_invoke_xy__internal() will set that path unless otherwise told. So using rather the same way to do as the one used by the other "strip_add" operators...
for after 2.62 I would like to try if using doubles would help to increase the precision here.
Also now that the mipmap patch is reverted we may want to look at this problem from a different perspective.
RES could be calculated taking the object size in relation to the camera (i.e. size and distance, ignoring rotation).
That may solve both problems of wrong resolution and lack of smoothness.
For the time being users still need to use object.resolution to fine tune the rendered text.
Issue was caused by not enough threshold limit used for removing doubles.
Switched to adoptive threshold value calculation based on smallest length
of segments in meridians and parallels.
Select Linked operator was setting Limit by Seams property automatically
depending on current selection mode. But this property only used to be
set to truth if selection mode is set to Face, in other cases this property
is being reused from previous operator run. This leads to incorrect
behavior of selecting linked in vertex mode after this operator was
used in face selection mode.
with material ambient zero broke backwards compatibility too much. The behavior
to have ambient zero affect things even if it is not used as a factor does not
make much sense but keeps things compatible. Now instead fixed the use of
uninitialized memory.