[ #4272 ] Camera zooming problem
Move the camera in camera view could block inexplicably sometimes.
Was a silly programmation error that any competant compiler should have given a warning for. Alas, I'm using gcc...
Bugfixes:
- hddaudio now allocates it's decode buffer + AVCODEC_MAX_AUDIO_FRAME_SIZE
safety interval. (The former code expected all decoded audio frames to
be the same size which can hurt under some circumstances e.g. VBR files)
- writeffmpeg: some pointers where not initialized on start and after
deletion not set to null. Could segfault randomly on error conditions.
- drawseq: use startdisp and enddisp to decide, if a strip should be drawn.
(Just extend strips first or last frame beyond screen dimensions in
the previous version and watch the strip disappear)
Sequencer:
A call to view2d_do_locks() got accidentally added in main drawing loop,
causing an infinite loop of redraws when this option was used with more
sequence windows open.
Added missing view2d_do_locks() to zooming in Sequence window. Also
cleaned this call a bit.
Bugfix: If you use the IPO-pinning feature and edited an IPO that wasn't
highlighted as the current Sequence (current Sequence being a Metastrip),
you'll get obscure crashes, since the code
a) was mistakenly using last_seq
b) didn't test for se->ok != 2, thereby doing double frees on imbufs
Am I the only one, who wants to remove the last_seq global completely... ?
Small fix, but results are at least less frustrating now. It uses the
"compatible euler" function from inserting key positions here, preventing
euler values to be constrainted that differ weirdly.
I've tried several other approaches to get a definite rotate constraint,
but only constraining a single axes seems to me impossible magic still...
The new (months ago) added option for "Local Constraint" always copied
and restored a PoseChannel quaternion, that disabled the required
normalizing of quaternions.
Only visible when you manually draw Ipo Curves, but it's probable that
it showed in other cases too.
Object Layer Ipos didn't work when the Ipo was moved an Object Action.
Can't get this to work though... this option has been added with a lot
of exception handling already, and for action/nla it's very nasty to
blend/mix/add layer bit values. So; better not support that.
As feedback for users, I've added a notice popup when you try to move
layer-ipos to an action.
Compositor:
Viewer Nodes inside of Groups now work too. To not frustrate interactive
speed, the following rules apply:
- Making a Group editable (or closing) doesn't signal recalculation of
composite
- clicking on an Input socket always checks changes and calulcates
- When there are Viewers inside an edited Group, Viewers in the main tree
are not executed.
Also added: a "hide unused sockets" icon in the header of Viewer nodes.
This allows cleanup of Groups, to prevent these sockets get reveiled.
Appending a Scene, which had group-objects, accidentally linked these
objects to the active scene too. This was a mixup with the case of just
appending a group.
Define macros for Py_RETURN_TRUE and Py_RETURN_FALSE (for Python 2.3). Also
make Py_RETURN_NONE macro a little safer. Current macro will not work as
expected in situations like below since it expands to two C statements:
if( !attr )
Py_RETURN_NONE;
I have been able to compile blender on linux 64 without problems up to a
month ago, but a recent change is giving me problems, and probably others
as well (on linux 64 at least). But if not, this commit shouldn't change
anything.
The problem was an added pad variable to RenderData in DNA_scene_types.h,
in a somewhat problematic place, since it causes the compiler to pad the
struct at the 'ListBase layers' variable, a struct of two pointers,
which caused me all sorts of trouble, variables declared after this having
incorrect or incorrectly assigned values.
This commit fixes this.
In makesdna.c is a useful section which will write a c program called
'padding.c' which compares the actual size to the expected size, which
for the RenderData and Scene struct in this case had a difference of 8.
Also useful was the gcc -Wpadded warning flag.
Hopefully I don't get 'fired' for this... ;)
Now back to fixing the yafray bugs...
addProperty() and removeProperty() were each defined twice, because each
could be called with different inputs. Hence only the second definition
was showing up in the documentation. Both descriptions are merged now.
made xparts and yparts consistent in the different places it can be set now python and the buttons are max 64 (was 512 in some python locations) and xparts is max 512 (was max 64 in some python locations), also made the minimum xparts and yparts 1 again. Ed Halley suggests that we should up the max xparts to 1024 (instead of the current 512) for 'smoother panoramas'
list of recent opened file is written to .Blog file, when it is necessary,
list shouldn't hide now, ... I don't want to rewrite code after intrr
anymore ;-)
The mouse handling code for selecting/deselecting face/edge loops and edge
rings was causing single edges to be selected in face mode when face loop
select failed.
Bug in buttons_editing.c meant that edge subdivide code was getting called
with wrong arguments when accessed via the edit buttons, but was called
correctly from wkey menu.
Also added Alexander's small fix so that beauty subdivide behaves correctly
when used on non-proportionally scaled objects.
Each report was about a different failure with Particles, all related to
weak handling of animation systems and the depsgraph.
Fix has 2 parts; depsgraph now signals "object recalc" to be for time
changes; this then is used to bypass particle-building (since that's baked).
Other part is better object caching while makig particles.
Changing render settings with python while Anim render now updates display
for each frame. So you can animate render borders, or even save different
sized images.
Second pass at sceneRender.c / Scene.Render API clean-up. Most of the remaining clean-up needs to wait for the API refactor, since the "good" attribute names are already used by methods.
Blender has Open recent submenu in main File menu, Open recent should
work correctly now, I remove Reopen last item (I hope, that I didn't
break anything), because it seems obsolete now
Old annoyance in Blender; zooming in very far makes scaling/rotate
around invisible pivot going bezerk. The easy fix was just enforcing
floats in integer math.
it keeps storing a previous buffer for as long you don't render showing
this previous buffer.
If you render showing the previous buffer, it stores the current render.
To make this more clear, the window title shows "previous" when it shows
the stored copy.