Commit Graph

519 Commits

Author SHA1 Message Date
Lukas Toenne
26b3dfa30e Automatically hide unused (=unlinked) node sockets in collapsed ("hidden") nodes. This is to make nodes with many sockets cleaner and simpler, which is the purpose of collapsing nodes in the first place.
The hiding code uses the SOCK_IN_USE flags already present. These were only temporarily set by the shader node code for determining needed texture coordinate types. Now they are used persistently and updated along with the sock->link pointers.
2011-12-19 12:04:05 +00:00
Lukas Toenne
a9f0266448 Display button for hiding unused node sockets in the side bar, as an alternative to the removed node header button. 2011-12-19 11:55:35 +00:00
Lukas Toenne
24785cc16a Removed buttons in node headers for hiding unused sockets and for hiding the (non-socket) option buttons. These are rarely used buttons that only complicate the UI. Alternatively these operators can still be accessed in the Node menu of the node editor window, "Toggle Hidden Node Sockets" and "Toggle Node Options" respectively. 2011-12-18 17:59:04 +00:00
Lukas Toenne
a885d8aee6 Fix for toggle buttons in node headers.
The buttons for "hiding" (collapsing) a node, hiding unlinked sockets, additional options, the preview and for opening a node group were all using a custom mouse test function, which was broken. They now use actual buttons instead of just displaying icons. Before executing the respective operators the button's node has to be selected and activated, so the buttons use an intermediate handle function, which selects the node and then calls the operator.
2011-12-18 12:51:50 +00:00
Lukas Toenne
33b1939aee In the node space context update function: Properly clear the snode->edittree pointer when no snode->nodetree is active. This would lead to crash in operators when switching from an existing node tree, since the usual poll function only tests for the edittree.
Fixes bug #29566.
2011-12-10 15:52:08 +00:00
Brecht Van Lommel
b8cc575ee3 Fix related to #29513: materials using nodes will output passes from the active
material node. This is a confusing system, but two features were missing from
2.4x that made this at least a bit more clear:

* The top right icon in the node now shows brighter again for the active node.
* Setting a material datablock in a node makes that node active.
2011-12-06 16:04:45 +00:00
Brecht Van Lommel
f96aad6688 Fix #27626: nodes inside groups can't be muted. There was a check here to
disable this, but with recent node muting patch and node group changes it
should work now.
2011-12-02 15:08:27 +00:00
Lukas Toenne
11c3bdddb2 Added comments to the workaround made in r42266 (node line drawing bug on Intel hardware). Also did the same workaround to straight line drawing (currently not in use). 2011-11-29 20:35:30 +00:00
Lukas Toenne
ba9fac0192 Fix for errors in node line drawing on some Intel hardware (bug #29427). This seems to be caused by a driver bug that breaks GL_LINE_STRIP drawing in combination with color changes inside the begin/end block. Simply replacing by GL_LINES seems to fix the problem and should not cause trouble for this small amount of drawing.
There has been a comment on the bug tracker about similar issues with drawing in logic buttons, this should be checked as well (Note on the bf-committers ML).
2011-11-29 19:50:34 +00:00
Lukas Toenne
f0b9a39981 Fix for linking cycles group nodes in the sidebar menu (bug #29403). The template for ntreeAddNode needs not only the node group pointer but also the NODE_GROUP id for the base type. 2011-11-26 11:08:20 +00:00
Lukas Toenne
f35fa9e59f Fix for wrong event clipping in open node groups (bug #29383). The internal node blocks of the group were created before the group node block itself, so the node group block clips events for internal nodes. Generally, blocks should be created just like the drawing order. 2011-11-24 09:26:19 +00:00
Lukas Toenne
b450d3c3b6 Fix for long-standing TODO item: Clicking on overlapping nodes would activate buttons below.
This patch adds a new CLIP_EVENTS flag for uiBlock, which will prevent the ui_but_find_mouse_over search function from looking into "lower" uiBlocks (i.e. those further back in the list). The order of block creation for nodes has also been updated to use the z-ordering (just the nodetree->nodes list).

In order for this to work, the bounding box values of the uiBlocks have to be set explicitely to fit the node size, those are usually either zero or calculated from the internal buttons.
2011-11-22 17:49:06 +00:00
Thomas Dinges
470cfd4aeb 2.6 Various code cleanup:
* Removed some old code for image packing, done via Operators now.
* Removed some comments.
2011-11-22 17:43:32 +00:00
Campbell Barton
0e2c8cdcdd move image settings into their own structure so the interface can be shared where image saving settings are needed.
currently file out node and render output share this struct & UI.
2011-11-21 20:19:58 +00:00
Bastien Montagne
6673c76e78 Muting node patch: second part. Also fix [#27636] Muting shading nodes is ignored
Now, compositing, shading and texture nodes have a consistent muting system, with default behaving as previous (for compo), and which can be optionaly customized by each node.
Shader nodes are also GLSL muted.

However, Cycles is currently unaware of muted nodes, will try to address this…
2011-11-20 16:38:23 +00:00
Sergey Sharybin
9b17d39ce0 Fix #29260: Missing "Extend" parameter for Border Select
Added "Extend" flag to border select operators for editors:
- UV Editor
- Sequencer
- NLA
- Info Space
- Graph Editor
- File Browser
- Clip Editor
- Action Editor
- Channels and markers regions

Can be used for custom keymaps.
2011-11-16 19:22:14 +00:00
Brecht Van Lommel
3442c16c09 Fix #29249: mapping node not keyable anymore, restore RNA to what it was before
Cycles change, generating RNA paths for this is a bit complicated.
2011-11-14 20:39:53 +00:00
Brecht Van Lommel
bc98d4e383 Fix #29238: crash with node dependency loop. 2011-11-14 20:26:23 +00:00
Campbell Barton
e84c0980a3 correct indentation and some whitespace edits (no functional changes) 2011-11-11 13:09:14 +00:00
Bastien Montagne
e4269043b4 Moving i18n code to BLF_translation.h
This way, we will be able to use it in non-UI parts of the code too.
2011-11-09 14:13:17 +00:00
Brecht Van Lommel
28ee0f9218 Texturing: texture and 3d view draw type changes, these should only have any
effect for a render engine using new shading nodes. In short:

* No longer uses images assigned to faces in the uv layer, rather the active
  image texture node is what is edited/painted/drawn.
* Textured draw type now shows the active image texture node, with solid
  lighting.
* Material draw mode shows GLSL shader of a simplified material node tree,
  using solid lighting.
* Textures for modifiers, brushes, etc, are now available from a dropdown in
  the texture tab in the properties editor. These do not use new shading nodes
  yet.

http://wiki.blender.org/index.php/Dev:2.6/Source/Render/TextureWorkflow
2011-11-08 13:07:16 +00:00
Brecht Van Lommel
db75cc4cde Nodes: add cycles shader nodes, these will only be available to render engines
that use the new shading nodes system. Documentation:

http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes
2011-11-08 11:38:16 +00:00
Brecht Van Lommel
e06f206450 Fix: incorrect use of IFACE_ macro, and correct a typo. 2011-11-08 11:02:57 +00:00
Sergey Sharybin
23dfb8a156 Code cleanup and small fixes:
- Assume all areas are using valid MovieClipUser when using functions from movieclip.c
- Set active scene clip to movie-related nodes in compositor rather than checking
  if there's only one clip in datablocks
- Fixed users count issue when solving camera motion
2011-11-08 06:11:23 +00:00
Brecht Van Lommel
cd191b7d17 UI/Nodes: templates to edit nodes from the properties editor using a tree view,
to be used by cycles. For testing there's a panel in the node editor if you set
debug to 777, didn't enable it because I'm not sure it's very useful there.
2011-11-07 22:28:49 +00:00
Brecht Van Lommel
be23090aae Nodes: add foreach_nodeclass iterator over node classes, use for node add menu. 2011-11-07 22:14:48 +00:00
Brecht Van Lommel
f3407e7d60 Textures/Shaders: extend TexMapping to include projection options, and add a
ColorMapping struct for color manipulation of textures. These will be the
standard built-in texture node options for manipulating the incoming texture
coordinate and outgoing color.
2011-11-07 17:35:20 +00:00
Brecht Van Lommel
4487318348 Nodes: add socket option to hide the default value in the UI, to be used for
sockets that get their default value if no node is connected from elsewhere,
e.g. a texture coordinate.
2011-11-07 17:30:52 +00:00
Sergey Sharybin
7b43abb90e Camera tracking integration
===========================

Rest of changes from camera tracking gsoc project.

This commit includes:

- New compositor nodes:
  * Movie Clip input node
  * Movie Undistortion node
  * Transformation node
  * 2D stabilization node

- Slight changes in existing node to prevent code duplication
2011-11-07 12:56:05 +00:00
Campbell Barton
33accdb725 use (const char*) rather than (char*) where possible.
also removed some unused function definitons.
2011-11-05 11:04:28 +00:00
Sergey Sharybin
82dc05391c Fix #29139: Comp Group nodes don't retain name
Added tree node id browser to Active Node panel so name of nodetree editing in
group node can be easily changed now.
2011-11-04 13:31:15 +00:00
Brecht Van Lommel
ac52c79cb1 RenderEngine/Nodes: system to check for shading nodes compatibility
* Scene.use_shading_nodes property to check if RenderEngine is using new shading
  nodes system, and RenderEngine.bl_use_shading_nodes to set this.
* Add mechanism for tagging nodes as being compatible with the old/new system.
2011-11-02 19:24:30 +00:00
Brecht Van Lommel
30f1f28a8a Nodes: add support for shader nodes on world and lamps, in addition to materials.
The internal render engine does not support them, and they are not accesible in
the UI yet, but cycles will use them.
2011-11-02 18:55:32 +00:00
Campbell Barton
4a04f72069 remove $Id: tags after discussion on the mailign list: http://markmail.org/message/fp7ozcywxum3ar7n 2011-10-23 17:52:20 +00:00
Brecht Van Lommel
e417e011d5 Code cleanup: file operations merged into single header, some function names
made less cryptic and changed to indicate if they work on files or directories.
2011-10-22 15:35:49 +00:00
Campbell Barton
74017cb020 header cleanup and typo's 2011-10-22 01:53:35 +00:00
Bastien Montagne
874c96a2b9 Cleaning i18n code.
Previous state:
Right now, there are "memories" of the "old" (less than a month!) translation way:
* A few remaining calls to BLF_gettext() (only UI_translate_do_iface and UI_translate_do_tooltip should be used).
* The _() macro still also calls BLF_gettext()!

New state:
Here are the changes made by the patch:
* Removing the no more needed _() macro.
* Removing most N_() and _() calls, only keeping the few needed ones (i.e. strings that are in no other way findable by xgettext and/or update_msg script).
* Defining in UI_interface.h IFACE_() and TIP_() macros (resp. for UI_translate_do_iface and UI_translate_do_tooltip).
* Replacing all calls to BLF_gettext by relevant IFACE_ or TIP_ one.
* Replacing all calls to UI_translate_do_iface by IFACE_.
* Replacing all calls to UI_translate_do_tooltip by TIP_.

All this somewhat clarifies and simplifies the code.
On the bf-translations scripts side, this only implies adding IFACE_ and TIP_ as detection markers for xgettext.
It also allows to reduce POTFILES.in quite notably (only 20 files remaining in it).

Please also have a look at those pages:
* Coder POV: http://wiki.blender.org/index.php/Dev:2.5/Source/Interface/Internationalization
* Translator POV: http://wiki.blender.org/index.php/Dev:2.5/Doc/How_to/Translate_Blender
2011-10-20 20:38:26 +00:00
Brecht Van Lommel
4ea8cb2529 Fix missing node editor update when assigning/removing materials on objects. 2011-10-20 14:55:02 +00:00
Lukas Toenne
0d7bd0f9b6 Adds an update flag to the bNode struct (similar to bNodeTree->update).
This prevents access to non-existent typeinfo during type initialization,
when node types have been removed and such nodes are deleted from older files.
All blenkernel functions now only set the node->update flag instead of directly
calling the update function.  All operators, etc. calling blenkernel functions
to modify nodes should make a ntreeUpdate call afterward (they already did that
anyway).

Editor/RNA/renderer/etc. high-level functions still can do immediate updates by
using nodeUpdate and nodeUpdateID (replacing NodeTagChanged/NodeTagIDChanged
respectively). These old functions were previously used only for setting
compositor node needexec flags and clearing cached data, but have become generic
update functions that require type-specific functionality (i.e. a valid typeinfo
struct).
2011-10-19 17:08:35 +00:00
Campbell Barton
c27926896f spaces -> tabs (whitespace only changes) 2011-10-06 22:04:01 +00:00
Campbell Barton
e49688f021 use use_ prefix for boolean value. 2011-10-02 20:09:45 +00:00
Bastien Montagne
6ad5e2ef1f Fix [#28436] ID mask creates 'feather' around ID even with AA turned off.
Perhaps not the ideal solution, but it works, is easy to undo if/when we have a better one, and I’m pretty sure it won’t break anything...
2011-10-02 12:57:49 +00:00
Campbell Barton
018fa1540e whitespace edits, make formatting for functions consustent at least within the file. 2011-09-28 05:53:40 +00:00
Campbell Barton
f4dec97cef fix for building on windows, clear some warnings too 2011-09-27 01:32:27 +00:00
Brecht Van Lommel
dd7f52defa Fix #28365: some macro operators were missing descriptions. 2011-09-22 15:35:25 +00:00
Campbell Barton
a20bcb4613 clear up some warnings. 2011-09-22 14:42:29 +00:00
Brecht Van Lommel
3833cb2e76 Fix #28585: read full sample layers not working in compositor. 2011-09-22 12:45:25 +00:00
Brecht Van Lommel
ae0124157f Translation: reload font on enabling/disabling use international fonts. 2011-09-21 15:15:30 +00:00
Sergey Sharybin
7172316b94 Merging r40366 through r40392 from trunk into soc-2011-garlic 2011-09-20 12:01:16 +00:00
Campbell Barton
84d06f252e tag & comment unused vars with /* UNUSED */ 2011-09-20 08:48:48 +00:00