Sorting of files didn't take numbers into account propertly, so it
ordered files like;
10.jpg
300.jpg
89.jpg
9.jpg
Quite simple to solve, almost moved report to the 'todo', but too
fun to leave this. :)
function name is BLI_natstrcmp() "natural string compare".
- fix own mistake with matrix slicing that would crash blender (from recent commit).
- fix 3 memory leaks from ascotan r4717 in the Mathutils.Quaternion(...) function.
- renamed generic attribute "isValid" to "invalid" since BL_Shader already uses isValid.
- Moved deprecation warnings from CValue
- removed unused KX_Scene::SetProjectionMatrix and KX_Scene::GetViewMatrix
- Added KX_Scene attributes "lights", "cameras", "objects_inactive", to allow access to objects in unseen layers (before the AddObject actuator adds them)
- KX_Camera deprecated cam.enableViewport(bool) for cam.isViewport which can be read as well.
Increasing the tolerance when making intersection comparisons fixed this.
There is also a problem where a pixel aligned quad would get a diagonal line down the face. offset the pixel locations a little to avoid this (crappy I know but will fix most cases).
Modified the behaviour of Clear User Transform so that when there's no action, Clear User Transform now resets the entire pose to the rest pose. However, when there is an action, the pose on selected bones gets cleared to the pose defined in the action, not the rest pose.
Also fixed...
- smear with alpha channels (had to disabled blending modes).
- using uninitialized memory in a few cases.
- negative index in an array bug.
shrinkwrap wasn't using the updated coordinates/normals of vertexs
when the DerivedMesh had been modified by a previous modifier.
before revision 19744, users would only notice a strange behaviour
of shrinkwrap in projection mode (because it was using the wrong normals)
(jpbouza reported this)
after revision 19744 this bug was "bigger".
Anyway it's fixed now :)
Own bug, conversion function to get an orientation from python - PyOrientationTo() ignored user input completely :| (breaking the orientation attribute)
Also made KX_GameObject worldOrientation writable and minor doc fixes.
- print CListValue errors only once.
- bge_api_validate_py.txt now validates modules as well as types.
- added missing functions and consts for epydoc modules. some of these in GameLogic.py still need sorting.
Fixes:
[#18489] Adding (add filter) nested strips
causes Blender VSE to segfault on frame render.
[#18209] 3 VSE crash bugs with .blends
(all left click and move mouse over Metastrip/Blend Mode related)
... and a new segfault I introduced with my last commit.
Also: memcache limiter refcounts are tested now in critical
places, printing an error message,
since doing refcounting right is, well, hard.
This fixes
[#18079] Sequencer color correction does not apply on float image if "make float" is not applied
and closes
[#18582] bug fix#18079
by removing ibuf->rect on image load if ibuf->rect_float is used.
(Don't know, why the OpenEXR loader does that, but I fix this on sequencer
side for now...)
* Enviroment Map implemented (replacing truncated mode 2).
- Now it's possible to pre-bake animated (or static) EnvMaps to use with Cube Map textures.
* Enabling 2DFilter in Dome mode
- no GL_DEPTH_BUFFER supported though.
* Tweaking GameSettings menu (centralizing buttons)
getScreenPosition(obj):
- Gets the position of an object projected on screen space.
getScreenVect(x, y):
- Gets the vector from the camera position in the screen coordinate direction.
getScreenRay(x, y, dist, property):
- Look towards a screen coordinate (x,y) and find first object hit within dist that matches prop.
- The ray is a call to KX_GameObject->rayCastTo from the KX_Camera object.
Patch [#18589] test files can be found there. Patch reviewed by Campbell
CListValue fixes
- Disable changing CValueLists that the BGE uses internally (scene.objects.append(1) would crash when drawing)
- val=clist+list would modify clist in place, now return a new value.
- clist.append([....]), was working like extend.
- clist.append(val) didnt work for most CValue types like KX_GameObjects.
Other changes
- "isValid" was always returning True.
- Set all errors for invalid proxy access to PyExc_SystemError (was using a mix of error types)
- Added PyObjectPlus::InvalidateProxy() to manually invalidate, though if python ever gains access again, it will make a new valid proxy. This is so removing an object from a scene can invalidate the object even if its stored elsewhere in a CValueList for eg.