most local modifier,GPU,ImBuf and Interface functions are now static.
also fixed an error were the fluid modifier definition and the header didnt have the same number of args.
+ changed lines connecting nodes:
they now use a linewidth of 1.5px for the light foreground and 4px for the dark background.
this should fix node-lines not being visible on almost black or all white backdrops.
+ muted nodes now also show a red tinted header if they are hidden (collapsed)
+ both active and selected nodes show a (now properly antialiased) highlighting frame
+ fixed a small error in dropshadow code resulting in a gap at borders
+ fixed a tiny error for the collapsing indicators (triangles) - they were not symmetrical.
Ton will add proper theme colors for the node-editor in the coming days.
Node editor
Some nodes - when muted - didn't draw a red line to indicate
a pass-on action. Stil, the node then is muted and either passes
on a buffer of same type, or just black.
To more clearly indicate muting, it now draws the header in a
reddish blended color too.
(This commit doesn't fix the original bug reported in the report, but does fix one that was discovered while investigating that one)
Trying to insert keyframes for nodes within group nodes was failing.
This was caused by the ID-block for those UI widgets being set to the Node Editor's current ID-block (i.e. NodeTree) vs the NodeTree that those nodes lived in. The net result was that the paths couldn't be resolved, as the paths obtained for those widgets could only work up to the group's nodetree.
only tags the ID and does the actual flush/update delayed, before the next
redraw. For objects the update was already delayed, just flushing wasn't
yet.
This should help performance in python and animation editors, by making
calls to RNA property update quicker. Still need to add calls in a few
places where this was previously avoided due to bad performance.
By Luca Bonavita (mindrones)
The patch renames and moves gl_round_box, gl_round_box_shade and gl_round_box_vertical_shade to UI_interface.h, so the extern usages are not needed anymore.
C functions and python used different argument order, this relied on mapping non-keyword arguments to 'REQUIRED' arguments but meant that you could not have an optional, non-keyword argument.
next commit will make order of arguments consistant (currently only changed order that rna wrapped).
(commit 27674 and 27683 by Campbell from render25 branch)
Only source/blender/editors/ dir, should not give errors on different platforms
Only removing: UI_*.h, ED_*.h, WM_*.h, DNA_*.h, IMB_*.h, RNA_*.h, PIL_*.h
Thanks to Thomas Raab (fando) for this patch.
This patch fixes the arrow showing whether nodes are expanded or not, and includes a fix for the other icons getting scaled twice.
set the draw method to triple buffer or overlap depending on the
configuration. Ideally I could get all cases working well with triple
buffer but it's hard in practice. At the moment there are two cases
that use overlap instead:
* opensource ATI drives on linux
* windows software renderer
Also added a utility function to check GPU device/os/driver.
Now the compositing node tree will update on frame change if any of the
nodes are animated.
This doesn't work for playback (i.e. alt a), that's better off waiting until we
have some kind of frame caching system.
This still isn't ideal, but a bit better than before, it just tweaks the order of
block processing so that at least the buttons on top of other buttons get processed first.
The actual fix will be quite tricky, not sure about how best to do that so far..
* Cleaned up dead code, removed all traces of socket selection
* Modified border select so it's possible to have border select on mouse tweak.
With this change, by default, click+dragging on a node will select and move it,
but click+dragging on empty space will border select.
- removing duplicate chunks of code -> hide unused sockets now works
- moving some functions to the files that they get called from -> view all/home
- made duplicate a macro operator like the other places that work like this, eliminating the unnecessary transform-related property there still
- removed a few chunks of unused code
Now the rna path to nodes happens via the node name, which is ensured to be unique via RNA.
As part of this, the node->username string has been removed, upon renaming the node itself it takes care of making sure it's unique (like bones, constraints, etc). There's currently no interactive rename tool, but you can do it via the datablocks editor.
- plus a few notifier tweaks, using the newer NC_NODE notifier to refresh graph editor etc.
This commit restores Grease Pencil functionality for the Nodes Editor. Grease Pencil data is now stored at the NodeTree level, which means that annotations remain with the NodeTree they were made for.
Possible TODO's:
* In future, it may be worth investigating attaching Grease Pencil data to individual nodes, to allow annotations to stay attached to nodes as they are moved
* Include the settings for the 'active node' in a panel in the new NKEY region where the Grease Pencil buttons appear.
This allows you to set and animate the values of socket inputs and outputs, for example the value node.
It's also a step on the way to manipulating node trees via python (i.e. linking node sockets to each other).
This fixes [#19841] RGB Node in compositor not working
* Convert all code to use new functions.
* Branch maintainers may want to skip this commit, and run this
conversion script instead, if they use a lot of math functions
in new code:
http://www.pasteall.org/9052/python
Still a few quirks, including redraw issues on multilayer image input nodes, but it's pretty much there.
Would also be good to wrap the input/output sockets, too, will check on it.
This fixes bug [#19740] INPUT NODE: Cannot load images / motion pictures
* Compo node backdrop works again.
* Compo node previews and backdrop now get correct color management
float to byte conversion.
* Compo nodes got unecessarily recalculated while moving nodes.
* Fix compo node viewer nodes not getting activated correctly.
* Main compo node preview render computations are now outside of
mutex lock, so better for multithreading.
* Tex node outputs did not work in some files loaded from 2.4.
* Change RNA updates to take into account groups that may be shared
between multiple node trees.
* Rendering twice or more could crash layer/pass buttons.
* Compositing would crash while drawing the image.
* Rendering animations could also crash drawing the image.
* Compositing could crash
* Starting to rendering while preview render / compo was
still running could crash.
* Exiting while rendering an animation would not abort the
renderer properly, making Blender seemingly freeze.
* Fixes theoretically possible issue with setting malloc
lock with nested threads.
* Drawing previews inside nodes could crash when those nodes
were being rendered at the same time.
There's more crashes, manipulating the scene data or undo can
still crash, this commit only focuses on making sure the image
buffer and render result access is thread safe.
Implementation:
* Rather than assuming the render result does not get freed
during render, which seems to be quite difficult to do given
that e.g. the compositor is allowed to change the size of
the buffer or output different passes, the render result is
now protected with a read/write mutex.
* The read/write mutex allows multiple readers (and pixel
writers) at the same time, but only allows one writer to
manipulate the data structure.
* Added BKE_image_acquire_ibuf/BKE_image_release_ibuf to access
images being rendered, cases where this is not needed (most
code) can still use BKE_image_get_ibuf.
* The job manager now allows only one rendering job at the same
time, rather than the G.rendering check which was not reliable.