Commit Graph

1302 Commits

Author SHA1 Message Date
8e3d590b76 code cleanup: python/pep8 and double-promotion warnings. 2013-03-28 19:33:14 +00:00
Lukas Toenne
4b5be1c097 Fix for node groups, now exposing a socket will copy the default value from internal nodes again. Also this value can be changed in the node group Interface panel. 2013-03-28 10:32:04 +00:00
c766b0792a I18n fixes for C panels & menus (we have to specify the default bpyrna context here, else we get the horrible "empty" string (as translation_context of panels is an array, not a pointer, so it's never NULL). 2013-03-27 19:09:50 +00:00
b163256b33 Node Editor
To complete previous commit:

New "Activate same type next/prev" operator - replaces the two not working previous ones.
This selects/activates and views the next or previous node of same type.

Shortcuts: Shift ] and Shift [
2013-03-27 18:28:25 +00:00
1c886435c8 Fix for Node Editor tool "Find next/prev of same type".
This is the first half of the commit, it's going to be reviewed further.
It also depends on other work in node drawing (to not reshuffle order on
every select/activate).

At least it works quite nice for the shortcuts shift [ and shift ]
2013-03-27 17:22:12 +00:00
b4bd43e022 I18n: various "new data translation" fixes... 2013-03-26 14:33:53 +00:00
64d161de87 style cleanup:
also rename mesh_getVertexCos() --> BKE_mesh_vertexCos_get() to match curve function.
2013-03-26 07:29:01 +00:00
92d7955d13 fix for struct definition building with msvc2008 and some style cleanup. 2013-03-24 01:19:55 +00:00
9379dcb507 code cleanup: unused defines, shadowing and unintended enum-as-variable. 2013-03-22 14:31:03 +00:00
1d68c28541 spaces->tabs 2013-03-22 13:53:58 +00:00
Lukas Toenne
309c487b96 Fix for the use_hidden_preview setting in SpaceNode. The application of this flag to new nodes got lost during merges at some point. Also is now in the python node.add_node operator as well as the C function. 2013-03-22 13:08:37 +00:00
7f86b8afeb Nodes editor,
Draw an extra outline on hidden nodes that have custom colors, otherwise you can't recognize them unless you unhide.

Example: http://pasteall.org/pic/show.php?id=42359
2013-03-22 12:57:32 +00:00
75a5e239d7 correct enums which were in fact variables defined in headers. 2013-03-22 05:46:39 +00:00
a79e10157d code cleanup: use NULL rather then 0 for pointers, and make vars static where possible.
also found unintentionally defined enum/struct variables that where only meant to be defining the type.
2013-03-22 05:34:10 +00:00
dad7afa1af code cleanup: remove double call to BKE_node_instance_key(), rename ruler (lots of tools are 3d :)), and redundant assignment. 2013-03-21 14:16:55 +00:00
Lukas Toenne
fa0e2603f5 Add a little bit of space between socket layouts on nodes. 2013-03-21 13:21:18 +00:00
3966722057 code cleanup: misc warnings/style 2013-03-21 02:58:21 +00:00
e9b0b402cc Changes to compositor output node
Make it so compositor output node wouldn't be calculated
when Render Result image is not visible on the screen.
This makes compositor tree editing more friendly and
faster.

Also, if there's no viewer image visible on the screen
viewer nodes wouldn't be handled.

Final rendering keeps unchanged for now.

This solves issues when for performance artists are
disconnecting compo output node before tweaking values
in compositor and forgets to attach compo output
node before sending file to the farm.
2013-03-20 18:01:47 +00:00
d6ad96e2a9 Small fix: make node backdrop draw with nearest-pixel filter, so it zooms in
showing pixels. Issue was it also blurred image at zoom level 1... maybe subpixel
issue. Anyway - for inspecting exact composite results, zooming in showing pixels
is nicer anyway.
2013-03-20 16:30:48 +00:00
Lukas Toenne
f88e48fa55 When making a node group always add one input and one output node, regardless of whether there are any exposed sockets. The standard common case is that some sockets will eventually have to be exposed anyway, and it's easier to just delete the unused node instead of having to look it up in the menu. 2013-03-20 13:58:03 +00:00
Lukas Toenne
aa40fcb0a7 Removed the is_local_tree property from compo/shader/texture node trees. This was using an ID property, which causes trouble with 2.62 builds (possibly later) due to an old bug that causes ID properties in local node trees not loaded correctly. The bug has been fixed since then, but creating id properties will break with these builds. The property was not really necessary, so removing it will make it work as long as users don't add id properties themselves. 2013-03-19 18:15:33 +00:00
Lukas Toenne
bbac76ee26 Nicer handling of undefined node, tree and socket types.
When nodes are loaded from a .blend file they can potentially have undefined types. This can happen if a type has been deprecated and removed, or if node types were defined in a python script that has not been loaded correctly. Previously all such nodes would automatically be removed from a node tree, assuming that their types were deprecated and no longer in use (more commonly caused by loading new nodes in an older Blender version). Due to the possibility of dynamic registration it is no longer feasible to simply delete such nodes.

Display and handling of node trees was simply disabled before this patch, so that a node tree where any node or socket type was undefined would not be displayed at all. To give more information and avoid problems caused by necessary checks for the typeinfo pointer, there is now a 'Undefined' fallback type for trees, nodes and sockets. These types are used as placeholders in case the real type is not registered and can provide useful visual feedback on undefined nodes.
2013-03-19 13:40:16 +00:00
d215f453df UI / Node Editor:
* Align Render Layer menu and Render button in "Render Layers" node. 
This looks better and the settings belong together as well.
2013-03-19 13:31:54 +00:00
Lukas Toenne
0f3515d4e2 Fixes for context updates of the node editor:
* If the node tree can be updated from context (tree has get_from_context callback defined), reset the pointers first to clear the editor path if no tree can be found.
* Stupid mistake: snode->from != snode->from is always false.
* Shader nodes context update: set the 'from' pointer to the active object, even if it doesn't have a material or node tree.
2013-03-19 10:42:33 +00:00
Lukas Toenne
422ed07339 Fix for shader node sockets not displaying the name when unconnected. Default button draw implementation for node sockets should be to display just the name label. 2013-03-19 10:03:52 +00:00
3147d95bdf Node Interface:
* Small tweak to the "Interface" panel for group nodes, move separator into the branch to save some UI space.
2013-03-18 19:59:11 +00:00
Lukas Toenne
b2374f8de3 Node poll_instance callback is optional, check if it exists before executing. 2013-03-18 19:19:26 +00:00
66c7b54a88 Usual minor UI messages fixes. 2013-03-18 18:43:22 +00:00
471238ebfc Node Editor / Group UI:
* Add, Move and Remove Socket operators missed a notifier for UI redraw.

Note: ND_DISPLAY seems to be for the Text editor only, according to WM_types.h, but seems to be used in quite a few places. 
Time to cleanup notifiers again.
2013-03-18 18:27:28 +00:00
01e9dae3dc code cleanup 2013-03-18 18:25:05 +00:00
Lukas Toenne
4638e5f99a Merge of the PyNodes branch (aka "custom nodes") into trunk.
PyNodes opens up the node system in Blender to scripters and adds a number of UI-level improvements.

=== Dynamic node type registration ===
Node types can now be added at runtime, using the RNA registration mechanism from python. This enables addons such as render engines to create a complete user interface with nodes.

Examples of how such nodes can be defined can be found in my personal wiki docs atm [1] and as a script template in release/scripts/templates_py/custom_nodes.py [2].

=== Node group improvements ===
Each node editor now has a tree history of edited node groups, which allows opening and editing nested node groups. The node editor also supports pinning now, so that different spaces can be used to edit different node groups simultaneously. For more ramblings and rationale see (really old) blog post on code.blender.org [3].

The interface of node groups has been overhauled. Sockets of a node group are no longer displayed in columns on either side, but instead special input/output nodes are used to mirror group sockets inside a node tree. This solves the problem of long node lines in groups and allows more adaptable node layout. Internal sockets can be exposed from a group by either connecting to the extension sockets in input/output nodes (shown as empty circle) or by adding sockets from the node property bar in the "Interface" panel. Further details such as the socket name can also be changed there.

[1] http://wiki.blender.org/index.php/User:Phonybone/Python_Nodes
[2] http://projects.blender.org/scm/viewvc.php/trunk/blender/release/scripts/templates_py/custom_nodes.py?view=markup&root=bf-blender
[3] http://code.blender.org/index.php/2012/01/improving-node-group-interface-editing/
2013-03-18 16:34:57 +00:00
655ed9cc7f style cleanup 2013-03-18 11:44:56 +00:00
b19155e76c Fix #34672: Image sampling line didn't use color management for byte buffers
This makes it so sample line (for all image editor, sequencer and compositor)
displaying managed color for byte buffers as well. It was simply not implemented
before.
2013-03-18 11:34:05 +00:00
66a35e089a Fix for "draw images as texture"
Zooming in on images in Image window now shows pixels again (was filtered).

Now the glaDrawPixelsTex() and glaDrawPixelsAuto() have an argument to 
define if images should zoom in with linear filter, or draw pixels.
2013-03-17 17:32:45 +00:00
0a4b030145 New feature:
Automatic switching for drawing pixel buffers via glDrawPixels or using GPU textures

It works with a User Preference limit, in megapixels, to define whether to use
GPU or direct pixel drawing. Default is now initialized to 10 MP (4k buffers).

Especially for zooming out (draw smaller) texture drawing is much smaller. Also
Nvidia cards typically draw much faster with textures in general.

Added to node backdrop first now, the other editors follow in a next commit.

For coders: added new DNA function to initialize new struct variables, so you
don't have to sub-version files anymore.

   DNA_struct_elem_find(fd->filesdna, "structname", "typename", "varname") 

"filesdna" is the sdna description of the current file being versioned.
2013-03-17 14:38:58 +00:00
47f6d7ff93 Fix node group drawing not taking into account DPI properly. 2013-03-13 14:19:57 +00:00
aaa8a13c49 code cleanup: use const events for modal and invoke operators. 2013-03-13 09:03:46 +00:00
4daef64986 Fix more UI i18n issues (reported by Leon Cheung and Lockal).
We have a glicth with colormanagement's spaces descriptions, though, looks like they are clamped at 64 chars (see raw space), will see that later, if it’s solvable.
2013-03-11 09:06:49 +00:00
c36f20a7d2 style cleanup 2013-03-08 04:00:06 +00:00
557b893dfd Border for compositor viewer node feature
This adds border option to compositor, which affects on
a backdrop and viewer nodes, which is useful for faster
previews and tweaks.

Final compositing still happens for the whole frame, but
if it'll be needed it's not so difficult to support it
as well.

To use border there's Ctrl-B shortcut in the compositor
editor, which i used to define region you want to restrict
compositing to. There's also "Viewer Border" option in
the N-panel in case you'll want to disable border
compositing.

Some areas could be cleaned a bit, like ideally it shall
not be viewer image clearing in viewer_border_update RNA
callback, but currently it's not so much clear how to
make it the same fast as simple memset and glue it
somehow to compositor. Will think of nicer solution a
bit later.
2013-03-07 17:47:30 +00:00
Lukas Toenne
4caa3ae8b9 Sanity check in the cut-links operator, make sure preview jobs are not running before modifying the node tree. 2013-03-05 09:34:17 +00:00
f186f89a42 Fix #34461: Inconsistent behavior of "Color Mix Node" and "Alpha Over Node"
Added compatibility option "Straight Alpha Output" to image input node

When this option is enabled, image input node will convert float buffer
to straight alpha.

This is not what you'll usually want with new alpha pipeline, nit this
is needed to preserve compatibility with older files saved in 2.65.
In that version byte image are resulting with straight alpha passing
to the compositor and alpha-overing required extra premultiplication
of inputs.

So, that's why Straight Alpha Output is needed -- it's set in versioning
code for byte node images so they'll still output straight alpha.

This option is currently only available in N-panel.

Additional change: added Alpha Mode for image input node to N-panel.
2013-03-01 15:37:15 +00:00
0ac07404ba style cleanup: braces with multi-line statements, also add some comments. 2013-03-01 14:47:06 +00:00
1039135965 More UI messages fixes... 2013-02-28 15:31:20 +00:00
b1543f07bf Another bunch of UI translation fixes, thanks to Leon Cheung, Gabriel Gazzán and S. Lockal for spotting them! 2013-02-24 15:40:28 +00:00
109b37e2c5 Fix for [#34356] Inputs list in file output doesn't appear properly.
* This made File Output Node more or less useless in the 2.66 release, as the list did not appear. 
Issue caused in r53355.

Should be back ported to "a" release.
2013-02-22 12:24:08 +00:00
ec04f98a75 Various fixes for UI translation issues (reported by Leon Cheung on bf-translations ML, thanks!). 2013-02-15 14:30:36 +00:00
7ae735dc4a Cycles UI:
* "Use Nodes" for World, did not trigger Node Editor refresh.
2013-02-14 17:09:19 +00:00
0b8bfbebc8 correct rna identifiers
- compositor viewer: use_straight_alpha -> use_alpha
- bevel tool: percent -> offset
2013-02-13 04:04:14 +00:00
9a6c5d8b3e We've reconsidered previous patch in IRC.
It's more useful to completely ignore alpha for display of straight
colors.

Supporting straight pipeline is possible, but not a topic for bcon4.
2013-02-10 13:14:51 +00:00