Commit Graph

74 Commits

Author SHA1 Message Date
Joshua Leung
6c32bffab0 Bugfix #24163a: Unable to animate INSIDE a group node in the compositor
(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.
2010-12-07 11:03:53 +00:00
Brecht Van Lommel
b110c7c8f2 Dependency graph: changed DAG_id_flush_update to DAG_id_tag_update. Now it
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.
2010-12-05 18:59:23 +00:00
Campbell Barton
b45c3363fd fix for some pedantic warnings. 2010-12-03 01:52:28 +00:00
Brecht Van Lommel
f3e3d59f04 Fix #24435: GLSL 3D view lacks refresh on node setups, patch by Lukas Toenne. 2010-11-02 11:41:25 +00:00
Campbell Barton
3367ef8b65 initialize structs to zero rather then using memset(). 2010-10-31 15:39:37 +00:00
Campbell Barton
68dea6591d bugfix [#24247] Duplicating a Composite Group Node no User Count Icon
duplicating nodes wasnt changing the usercount of the referenced ID but file loading deleting was.

also removed some unused args.
2010-10-15 04:27:09 +00:00
Campbell Barton
a9197c3aa2 remove unused args in draw*.c and some in view*.c, tag some as UNUSED(). 2010-10-14 01:22:14 +00:00
Campbell Barton
9bb10e571b bugfix [#23868] NodeGroup font resolution problem when editing it 2010-10-08 22:33:43 +00:00
Nathan Letwory
2ac0a5637c Apply patch [#23779] Small cleanup with gl_roundbox*
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.
2010-09-15 12:18:50 +00:00
Campbell Barton
d1759639dc - remove unused includes IMB_*, BIF_* & MEM_*
- remove MEM_guardedalloc.h from header files (include directly)
2010-08-16 05:46:10 +00:00
Campbell Barton
f2d77e4496 remove unused includes from editors/space_* 2010-08-08 08:14:07 +00:00
Matt Ebb
ff56197362 Don't draw nodes that are out of the view
speeds up node editor fairly considerably on a complex comp
2010-06-14 07:02:11 +00:00
Matt Ebb
39aac78b59 Fix [#20999] Node Header icons drawn wrong
Would like to re-do this stuff properly at some stage...
2010-05-03 08:43:00 +00:00
Campbell Barton
2d4d820b97 3dview --> view3d, patch by Jonathan Smith with small corrections and changes. 2010-04-28 07:25:39 +00:00
Campbell Barton
01e2de7c53 was using uninitialized string for node name display, also use sizeof() rather then fixed values. 2010-04-18 08:54:42 +00:00
Matt Ebb
c3f64b15ca Tweak/code shuffle to make disabled buttons draw nicer on nodes. 2010-04-06 09:05:00 +00:00
Matt Ebb
5304a65b50 Fix [#21516] UI artifacts in array modifier
Modify the glClearColor used to draw disabled buttons, when creating a ROUNDBOX
ui element. Made a convenience function and rippled it though, too.
2010-04-06 07:02:16 +00:00
Brecht Van Lommel
1f9b03f64c Fix #21266: cyclic dependency checking for texture nodes was missing. 2010-04-05 17:30:11 +00:00
Matt Ebb
f4dcd1d570 Fix [#21706] edit field in nodegroup which overlaps a node, edits the field of the overlapped node 2010-03-29 07:15:12 +00:00
Brecht Van Lommel
f46cccedf6 rna/py-api fix.
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)
2010-03-23 15:31:12 +00:00
Campbell Barton
f743b583bf more lint includes
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
2010-03-23 14:09:09 +00:00
Matt Ebb
e381395522 Fix [#21288] Colour Ramp doesn't update output
Moved color ramp RNA to rna_color.c, was very texture-centric before.
2010-03-15 04:54:31 +00:00
Campbell Barton
bc9b873f60 bugfix [#20480] crash/lock-up for certain aspect ratios 2010-02-16 15:59:36 +00:00
Campbell Barton
081c1205a3 correct fsf address 2010-02-12 13:34:04 +00:00
Joshua Leung
e939e74e88 Patch + Bugfix #20999: Node Header icons drawn wrong
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.
2010-02-07 02:54:41 +00:00
Brecht Van Lommel
87bbb2d827 WM Draw Methods now has a new option Automatic (default). This will
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.
2010-01-31 23:45:51 +00:00
Matt Ebb
de56a63849 Fix [#20773] NODE ANIMATION: Animating node values broken
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.
2010-01-27 05:42:17 +00:00
Matt Ebb
e74bc901d3 Fix [#20749] Mute doesnt refresh the compositor 2010-01-21 01:42:28 +00:00
Matt Ebb
7df44b9ced Fix: wasn't able to rename node group nodetree name, or access the nodetree at all. Now you
can switch between them too.

Wrapped group nodes in RNA as part of this.
2010-01-13 06:35:12 +00:00
Matt Ebb
85310d6413 Partial fix for [#19926] clicks "fall through" when stacking nodes
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..
2010-01-12 07:07:51 +00:00
Matt Ebb
4ba5b70d2f Node editor tweaks
* 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.
2010-01-06 03:00:19 +00:00
Joshua Leung
03cfcc6007 Node Editor - More Cleanups (Reshuffling):
- 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
2009-11-20 21:04:41 +00:00
Matt Ebb
c0fae59c99 * Fixed nodetree animation by giving nodes unique names
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.
2009-11-11 09:11:21 +00:00
Joshua Leung
1dfc7942d3 Grease Pencil for Nodes Editor:
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.
2009-11-11 08:12:54 +00:00
Matt Ebb
7206437c72 node warning fixes 2009-11-11 06:01:42 +00:00
Matt Ebb
f0fc007c4b Wrapped node input and output sockets in RNA.
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
2009-11-11 02:15:09 +00:00
Brecht Van Lommel
37e4a311b0 Math Lib
* 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
2009-11-10 20:43:45 +00:00
Matt Ebb
bc006655ba * Finished (well, almost ;) RNA wrapping and layout-engine-ing all the nodes.
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
2009-11-10 04:01:44 +00:00
Thomas Dinges
e214023c11 Nodes:
* Slight offset tweak for Node header icons, not so cluttered now.
2009-11-08 10:20:03 +00:00
Brecht Van Lommel
fd511eb984 Node Bugfixes:
* 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.
2009-10-07 22:05:30 +00:00
Brecht Van Lommel
cf4f00b2fa Preview Render:
* Fixes for texture and material nodes.
* Texture node previews now work more like materials.
2009-10-07 14:48:29 +00:00
Brecht Van Lommel
b466286c3e Render & Compositing Thread Fixes
* 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.
2009-09-30 18:18:32 +00:00
Brecht Van Lommel
15d07720e5 Sorry, three commits in one, became difficult to untangle..
Editors Modules

* render/ module added in editors, moved the preview render code there and
  also shading related operators.
* physics/ module made more consistent with other modules. renaming files,
  making a single physics_ops.c for operators and keymaps. Also move all
  particle related operators here now.
* space_buttons/ now should have only operators relevant to the buttons
  specificially.

Updates & Notifiers

* Material/Texture/World/Lamp can now be passed to DAG_id_flush_update,
  which will go back to a callback in editors. Eventually these should
  be in the depsgraph itself, but for now this gives a unified call for
  doing updates.
* GLSL materials are now refreshed on changes. There's still various
  cases missing, 
* Preview icons now hook into this system, solving various update cases
  that were missed before.
* Also fixes issue in my last commit, where some preview would not render,
  problem is avoided in the new system.

Icon Rendering

* On systems with support for non-power of two textures, an OpenGL texture
  is now used instead of glDrawPixels. This avoids problems with icons get
  clipped on region borders. On my Linux desktop, this gives an 1.1x speedup,
  and on my Mac laptop a 2.3x speedup overall in redrawing the full window,
  with the default setup. The glDrawPixels implementation on Mac seems to
  have a lot of overhread.
* Preview icons are now drawn using proper premul alpha, and never faded so
  you can see them clearly.
* Also tried to fix issue with texture node preview rendering, globals can't
  be used with threads reliably.
2009-09-29 19:12:12 +00:00
Brecht Van Lommel
aae4335b9f Fix part of #19309: editing node vector input in a popup did
not keep it open after changing one of the buttons.
2009-09-21 20:50:11 +00:00
Brecht Van Lommel
5129b08064 UI
* Node buttons can now use the layout engine. a few simple
  ones are converted. We'll keep this code in C for now,
  python wouldn't help much here.
* For node buttons not using the layout engine, manually
  computing the button height is not longer needed.
* Node inputs are still not RNA wrapped, would be good to
  have these available as well for keying, but makesrna does
  not have access to the bNodeTypes.
2009-09-16 18:59:13 +00:00
Brecht Van Lommel
499e6f0067 2.5: node group/ungroup/edit operators, patch by Michal Ziulek,
with some small changes.
2009-09-15 11:35:10 +00:00
Robin Allen
e21c1dde81 Texture node previews: Well and truly fixed.
(Probably.)
2009-08-19 00:46:06 +00:00
Robin Allen
d37d673894 Fix for my previous fix. 2009-08-18 21:19:29 +00:00
Robin Allen
3803a3c5a7 Fixed some redraw problems with texture nodes. 2009-08-18 14:31:13 +00:00
Brecht Van Lommel
74e4ad20c9 2.5: code cleanup, added CTX_wm_space_* for each space type,
instead of casting everywhere.
2009-07-28 16:33:02 +00:00