Blender Git Loki

Blenderin Git "master"-kehityshaaran kommitit.

Page: 2899 / 5574

April 15, 2014, 14:49 (GMT)
Fix T39234: popup menus behave poorly when they have not enough width for all their columns.

Issue fixed by:
* Not having constant width for all columns, but adapt each to its content's width;
* Adapting undo's menu height to undo list length (so that we never have more than three columns).

It is still possible to get issues in extreme cases (small screen, high DPI size,
long op names everywhere...), but this should now be rare corner cases.

Also fixes a minor glitch with undo menu (first column had one item less than the others...).
April 15, 2014, 14:29 (GMT)
Math Lib: avoid having to pass a pre-calculated normal tot area_poly_v3

add normal_poly_v3
Revision 09874df by Lukas Toenne
April 15, 2014, 14:28 (GMT)
Structural cleanup and improvements for the compositor.

Many parts of the compositor are unnecessarily complicated. This patch
aims at reducing the complexity of writing nodes and making the code
more transparent.

== Separating Nodes and Operations ==

Currently these are both mixed in the same graph, even though they have
very different purposes and are used at distinct stages in the
compositing process. The patch introduces dedicated graph classes for
nodes and for operations.

This removes the need for a lot of special case checks (isOperation etc.)
and explicit type casts. It simplifies the code since it becomes clear
at every stage what type of node we are dealing with. The compiler can
use static typing to avoid common bugs from mixing up these types and
fewer runtime sanity checks are needed.

== Simplified Node Conversion ==

Converting nodes to operations was previously based on "relinking", i.e.
nodes would start with by mirroring links in the Blender DNA node trees,
then add operations and redirect these links to them. This was very hard
to follow in many cases and required a lot of attention to avoid invalid
states.

Now there is a helper class called the NodeConverter, which is passed to
nodes and implements a much simpler API for this process. Nodes can add
operations and explicit connections as before, but defining "external"
links to the inputs/outputs of the original node now uses mapping
instead of directly modifying link data. Input data (node graph) and
result (operations graph) are cleanly separated.

== Removed Redundant Data Structures ==

A few redundant data structures have been removed, notably the
SocketConnection. These are only needed temporarily during graph
construction. For executing the compositor operations it is perfectly
sufficient to store only the direct input link pointers. A common
pointer indirection is avoided this way (which might also give a little
performance improvement).

== Avoid virtual recursive functions ==

Recursive virtual functions are evil. They are very hard to follow
during debugging. At least in the parts this patch is concerned with
these functions have been replaced by a non-virtual recursive core
function (which might then call virtual non-recursive functions if
needed). See for example NodeOperationBuilder::group_operations.
April 15, 2014, 14:20 (GMT)
Various fixes/improvements regarding BMesh's elem_index_dirty and BM_LOOP handling.

Most notably, BM_LOOP and BM_FACE index recompute should now be fully decoupled.
April 15, 2014, 14:20 (GMT)
Fix T39743: Crash when deleting faces in with new autosmooth.

Odd I did not catch this one... :/
April 15, 2014, 13:56 (GMT)
Fix T37675: blender internal viewport render wrong for volumes after rotation.

We really should not have Object.imat_ren, that's the wrong place to put render
data. But just update it now on rotation rather than doing a bigger refactor to
remove it.
April 15, 2014, 13:19 (GMT)
Fix cycles standalone not writing images in background mode properly.
April 15, 2014, 13:19 (GMT)
Fix T39284: clamp cycles volume density to be >= 0, to avoid accidental strange shading.
April 15, 2014, 12:37 (GMT)
Fix T39610: Shared mesh used for Mesh Deform causes crash

For now disable using linked edit mesh in the meshdeform modifier.

This is because editbmesh_get_derived_cage_and_final() might easily
conflict with the thread which evaluates object which is in the edit
mode for this mesh.

We'll support this case once granular dependency graph is landed.
April 15, 2014, 12:25 (GMT)
Fix T39607: Audio not in synch when the blend file loads.

Root of issue is probably in AUDASPACE itself (or even in OpenAL?).
Issue not present with SDL backend, only OpenAL afaik.

For now, workaround in Blender is to call seek twice when starting play
(not needed when resuming from pause).
April 15, 2014, 12:25 (GMT)
Some style cleanup in sound area.
April 15, 2014, 12:12 (GMT)
OSX/python: update to py 3.4
April 15, 2014, 09:44 (GMT)
Code cleanup: indentation
April 15, 2014, 07:11 (GMT)
Fix compilation (size_t not defined) by including stddef.h in BLI_sys_types.h
April 15, 2014, 06:31 (GMT)
Fix T39742: Crash with Cycles + new autosmooth crash

Nice little mistake, since the invalid mem access only happened once (the first time),
was close to valid mem, and was only used to read, it would not crash often...
April 15, 2014, 05:44 (GMT)
Fix my last commit cad4bfe: Added 'use_' prefix to Freestyle edge/face mark properties.
April 15, 2014, 04:46 (GMT)
Revert part of last commit,

RNA is low level data access, setting mesh values shouldn't change draw options.

Also its redundant to name attrs Face.freestyle_face_mark,
removed edge/face from attr names
April 15, 2014, 04:40 (GMT)
GHash: add BLI_ghashutil_uinthash_v4 for hashing 4 ints at once
April 15, 2014, 04:30 (GMT)
Freestyle: Added missing mesh property definitions for Freestyle Edge/Face marks.

This revision also addresses the issue of these properties not shown in the Outliner
in the Datablocks display mode. Now Freestyle edge/face marks can be keyframed
through the Outliner.
April 15, 2014, 04:22 (GMT)
GHash: add typed hash functions (were all (void *))

- BLI_ghashutil_strhash_n takes string length, to avoid terminating the string before hashing.
- BLI_ghashutil_inthash/uinthash take ints, to avoid casting to (void *)

This also showed up incorrect use of inthash, which was using a pointer.
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021