- added export Cameras (ortho and persp) to VPORTs, incl. clipping
- added export Cameras (ortho and persp) to VIEWs, incl. clipping
- export multiple-instances of Mesh-Objects as BLOCK/INSERTs
- on start prints dxfLibrary version
De-activating a loop-end actuator didnt work (it kept looping).
Looked into this further and it turns out that the actuators run with both positive and negative events false, the sound actuator assumes because its not negative that its a positive event and plays the sound anyway.
Fix by checking that its a positive event before playing.
The size limit on the message actuator was 100 which broke some scripts, set to 16384 instead.
while making a demo of using python to control bones found some more problems.
also added channelNames attribute to BL_ActionActuator to get a list of valid channels to use.
demo: http://www.graphicall.org/ftp/ideasman42/armature_python.blend
its still not that useful since theres not way to know rest bone locations yet but better then nothing.
Fixed color balance tool. Problem was: we pretended to do Lift/Gamma/Gain,
but in reality we did (1-Offset)/Power/Slope. (slightly modified ASC CDL).
So now, the GUI is able to switch modes between ASC CDL-mode and real
Lift/Gamma/Gain.
It also adds a switch to enable Neutral Black/White flipping
(very usefull for black point selection)
This closes:
[#18078] bugfix #18010 Sequencer lift
* extract_pose_from_pose only checked one of the list items for NULL when looping over them yet its possible they are different sizes.
* game_free_pose needed to be used rather then MEM_freeN, channels would never be freed leaking memory.
* setChannel() would make a new pose that wasnt aligned with the existing pose, the lists are assumed aligned so when extracting the channels its unlikely this was ever useful.
* Added getChannel() - returns pose loc/size/quat
* Added option args for setChannel(channel, matrix) or setChannel(channel, loc, size, quat)
* Removed modules Expression and CValue, neither were ever available.
* Added GameLogic.EvalExpression(exp) from the Expression module, evaluates an expression like the expression controller (not sure if this is really that useful since python is far more advanced).
* resetting the original blend file path didint work (own fault == -> =)
* Py3.x PyModule_Create didnt allow importing since it didn't add to sys.modules,
Looks like they want us to use init-tab array, but this doesn't suit us since
it needs to be setup before python is initialized.
* Documented GameLogic.globalDict
actually two modifier datamask optimizations that were never done.
* Don't use modifier data mask for disabled modifiers.
* Check if UV data is needed for particle system instead of always
requesting it.
Big proxy fix (addressing hopefully most complaints on mailing list and
in tracker)
* proxy render settings are now independent of render size settings.
That means: which proxy size is used, is controlled by two parameters
now: the proxy size of the files, can be controlled with additional
buttons within the proxy panels. What is shown in a specific preview
window depends on the header settings of the preview panel.
So: proxies are _only_ used in those windows, that are switched to a
specific proxy resolution.
* output rendering is always done _without_ proxies.
* proxy generation now shows a waitcursor with numbers.
(closing Bug: [#18909] Building Proxies doesn't give any feedback
which was rather a feature request, since the problem mentioned there
was always the case :) )
This fixes:
* free_imbuf_seq() didn't free all scenes. That will lead to steady memory
growth in case of nested timelines with several scenes.
* sequencer panels were always jumping around, depending on strip type,
which was caused by choosing always the same panel position and the
silly limitation, that
* effect strips had no filter option, which was therefore added.
So you can apply color balance on effect filter output now :)
Example is a cube that lands on a plane, sleeps after some time, a script changes the scale.
It would still use the scale when the object first went to sleep.
reported on blenderartist.
http://blenderartists.org/forum/showthread.php?t=158617
Checker: FORWARD_NULL (help)
File: base/src/source/blender/gpu/intern/gpu_extensions.c
Function: GPU_shader_create
Description: Variable "fragcode" tracked as NULL was passed to a function that dereferences it.
fix provided by Brecht. :)
Kent
Checker: FORWARD_NULL (help)
File: base/src/source/blender/blenkernel/intern/modifier.c
Function: meshdeformModifier_deformVerts
Description: Variable "dm" tracked as NULL was passed to a function that dereferences it.
fix provided by Brecht.
Kent
Checker: REVERSE_INULL (help)
File: base/src/source/blender/blenkernel/intern/BME_tools.c
Function: BME_split_face
Description: Pointer "example" dereferenced before NULL check
Check for null before we try to use it.
Kent
Checker: NULL_RETURNS (help)
File: base/src/source/blender/imbuf/intern/radiance_hdr.c
Function: imb_loadhdr
Description: Incrementing possibly NULL value "ptr"
Make sure were not trying to index past our array.
Kent
Checker: DEADCODE (help)
File: base/src/source/blender/gpu/intern/gpu_material.c
Function: GPU_materials_free
Description: Conditional "ma != 0"
was looping over wrong variable I'm guessing a cut and
paste error from above.
Kent
Checker: FORWARD_NULL (help)
File: base/src/source/blender/render/intern/source/texture.c
Function: do_lamp_tex
Description: Variable "co" tracked as NULL was dereferenced.
co was set to NULL at the beginning of the function and it could
possibly slip through all the logic above so lets test it before
we use it blindly.
Kent
* Wasn't setting the curve 3D option
* The nurbs object name could be None which caused an error, check its set.
OBJ Export
* Off by 1 error on closed nurbs was incorrect, broke other importers but worked with blender.
* Nurbs verts were not adding to the total vert count, scrambling meshes added after (somehow my first test case had all the curve objects last)
Checker: UNINIT (help)
File: base/src/source/blender/blenlib/intern/freetypefont.c
Function: objchr_to_ftvfontdata
Description: Using uninitialized value "face" in call to function "freetypechar_to_vchar"
freetypechar_to_vchar expects face to be defined so we need to
return before then if we have a problem. Also it doesn't
make sense to not return FALSE if there is an error because we
didn't do anything.
Kent
Imports nurbs with orderU and endpointU (inferred from weights).
No support for vert-weights, surfaces, 2D curves or non-bspline's yet.
fix for exporting closed nurbs, was overlapping too much of the curve.
This fixes
* some issues with Scene strips containing audio by removing
the curpos pointer from sequence structure. (the same scene
strip can now be used in a row)
That also makes the code a lot cleaner.
* fixed a corner case on the beginning of a strip, where audio was
not mixed in, depending of current audio buffer state.
* Also: made some hardwired variables macros to enhance readability.
Problem remaining: mixing the same scene strip several times (read
put it into a stack instead of into a row) has
problems with HD-audio since the same HD-audio state structure is
used and therefore the system will seek permanently, which leads to
audio distortions...