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.
- Fixed memory lead in Carve_getIntersectedOperandMeshes
- Union manifolds only if they intersects second operand, leave manifolds
which doesn't intersect second operand as-is.
If you tried to rotate an edge that was part of a chain
between two faces, the join faces function would remove
the whole chain (else it would leave a 'spur') and then
rotate edge would crash looking for a vertex that is no
longer there.
Check for this case and disallow rotate if so.
Unioning of intersecting manifold tried to perform as little union operations
as possible, but there were some not totally correct assumption which lead to
cases when unioning of manifolds of some mesh might be happened when one of
mesh sets already had got intersecting manifolds.
This commit corrects this incorrect behavior.
Discovered this when was looking into #30175: Boolean Difference causes 2.62 RC1 crash.
[#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
*operator now works with few limitations:
-still no preview(will be back soon)
-rotation will not work if only one uv is stitched between islands(will need method to calculate uv normal for manifold)
Also fixed island calculation for UvElements, fixes a crash when uv sculpting with "Sculpt all islands" turned off
In preparation for code in progress that uses lists
allocated out of the knife arena. This also makes
existing code more readable and understandable IMO.
Also removed an #if'd out function that will not
ever be needed.
This is a kind of simplification/cleanup tool which joins adjacent faces and edges based on the angle.
I've written this as an exercise (since I havnt written a bmesh operator before), and because quite a few users were asking for the dissolve operator to be extended, but I think this kind of functionality needs its own operator.
access from specials menu and mesh menu.
notes
* this exposed a bug in angle_v3v3v3(). will merge fix into trunk after release.
* added utility function BM_vert_edge_angle(), to get the angle between 2 connecting edges of a vert.
Issue was caused by merging triangles into quads policy which used to think
triangulation of non-planar/non-concave quads happens by 1-3 diagonal which
isn't actually correct in some OpenGL implementations.
Added check for non-concave faces when merging triangles. It will work fine if
original faces are flat. In case if original faces aren't flat this check might
fail and triangulate face when it's not actually needed or merge triangles in
a way which leads to OpenGL artifacts.
added BM_mesh_elem_flag_enable_all (only had disable function), and add
argunt for vert/edge/face type.
use these functions from EDBM_flag_enable/disable_all (had duplicate
code).
* use polygons for selection (was using tessface)
* ensure tessfaces are created
* mirroring was commented as BMESH_TODO, but api calls now work so add back.