Commit Graph

540 Commits

Author SHA1 Message Date
2b7ca2304a unify include guard defines, __$FILENAME__
without the underscores these clogged up the namespace for autocompleation which was annoying.
2012-02-17 18:59:41 +00:00
297a21c39a Code Cleanup:
don't call CTX_data_scene(C) for every marker drawn
also remove unneeded call when scene was already defined as well as redundant scene cast.
2012-02-06 22:17:41 +00:00
Lukas Toenne
a4603667b8 Removed check for active node in edited node group to allow node group editing toggle. This enables closing an empty node group again (after removing all nodes or when empty group is added via menu). Fix for bug #30018. 2012-01-30 09:00:54 +00:00
8169ad0219 Improvement for last commit, only do redraw when actually needed (in world shader type) 2012-01-24 20:19:26 +00:00
c905415f6b Cycles Node Editor:
* Add Use Nodes button for World shader type
* UI was not redrawing the Node area, when enabling "Use nodes", added check for it to the listener.
2012-01-24 20:10:37 +00:00
44850d6946 Fix #29946: Recover Auto Save defaults to "Short List" View -- Cannot determine dates
Added option display_type to WM_operator_properties_filesel which defines which file
display type (short/list/icons/default) should be used for file browser.

All current operators are using FILE_DEFAULTDISPLAY display type which means display
type will still be calculated based on type of opening file and user preferences
settings. Recover Auto Save operator is now using long display type so file date can
easily be checked now.

Reviewed by Andrea, thanks!
2012-01-24 18:18:51 +00:00
b1667911ef reduce operator lookups in the UI (could do 4 hash lookups per button). 2012-01-22 03:30:07 +00:00
605aa16dd7 quiet warnings for using uninialized color var in ED_image_draw_info(). 2012-01-20 14:33:03 +00:00
Lukas Toenne
0b412e4136 Cleanup of default_value handling in node sockets.
The structs stored in the anonymous void *default_value in bNodeSocket are now handled completely inside node_socket.c. All allocation/freeing/duplicating for this has been replaced by the appropriate calls to generic API functions (declared in NOD_socket.h).

This will make the default value handling more reliable for future node socket code. Group socket copying and value conversion has also been moved into the generic socket API file.
2012-01-20 13:27:54 +00:00
e1dd245a1e more keymap edits
- make sure defaults are not assumed (so reuse last settings doesnt
override)
- replace 0/1 for TRUE/FALSE defines.
2012-01-16 16:12:03 +00:00
046bf80881 Fix [#29894] Selection in sequence editor does not de-select other strips
Another bunch of fixes for select keymaps (sequencer, node, nla, graph, action).
2012-01-14 22:59:51 +00:00
24bf175d7e de-duplicate function copy-paste for node color sampling. 2012-01-12 05:46:45 +00:00
f66f33cefc rename RNA_property_is_set() --> RNA_struct_property_is_set() in preperation to add a second version of the function which takes the property rather then its name. 2012-01-11 16:32:12 +00:00
fbc4846a6e dynamicpaint had some incorrect string sizes for layers names, use BLI string functions in more places too. 2012-01-11 12:56:31 +00:00
535d27eb49 minor cleanup for string use - no functional changes
- use more logical names for strings, noticed too many strings called `str` when reviewing name patch.
- pass __func__ macro to uiBeginBlock(), quite a few names were wrong (copy/paste error).
2012-01-11 09:33:44 +00:00
51bada696f Longer names support for all ID and other object names
This commit extends limit of ID and objects to 64 (it means 63 meaning
characters and 1 for zero-terminator). CustomData layers names are also
extended.
Changed DNA structures and all places where length constants were hardcoded.

All names which are "generating" from ID block should be limited by MAX_ID_NAME-2,
all non-id names now has got own define called MAX_NAME which should be used all
over for non-id names to make further name migration stuff easier.

All name fields in DNA now have comment with constant which corresponds to
hardcoded numeric value which should make it easier to further update this
limits or even switch to non-hardcoded values in DNA.

Special thanks to Campbell who helped figuring out some issues and helped a lot
in finding all cases where hardcoded valued were still used in code.

Both of forwards and backwards compatibility is stored with blender versions newer
than January 5, 2011. Older versions had issue with placing null-terminator to
DNA strings on file load which will lead to some unpredictable behavior or even
crashes.
2012-01-11 08:51:06 +00:00
eccc04c87f 2012-01-10 19:08:08 +00:00
e701532e1d Tag unused argument 2012-01-09 09:30:51 +00:00
Lukas Toenne
3dead22c73 Improved auto-hiding of unused sockets for collapsed nodes.
Instead of generally hiding all unused sockets in collapsed mode, the sockets now have a new explicit flag SOCK_AUTO_HIDDEN, which is only toggled when the hide_toggle operator is called. This way the auto-hidden sockets stay as they are when nodes are duplicated etc. The new flag is necessary to distinguish between manually hidden sockets (via hide_sockets_toggle operator) and automatically hidden sockets and restore the node state when unhiding a node.
2012-01-08 10:23:19 +00:00
ec710a2929 remove Id's that crept in 2012-01-02 02:13:31 +00:00
d7d856a23d Color management: add "Color Unpremultiply" option for images and render settings.
For premultiplied alpha images, this makes any color space conversion for the image
or render output work on color without alpha multiplied in.

This is typically useful to avoid fringing when the image was or will be composited
over a light background. If the image will be composited over a black background on
the other hand, leaving this option off will give correct results.

In an ideal world, there should never be any color space conversion on images with
alpha, since it's undefined what to do then, but in practice it's useful to have
this option.

Patch by Troy Sobotka, with changes by me.
2011-12-30 14:17:11 +00:00
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
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
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
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
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
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
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
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
bc98d4e383 Fix #29238: crash with node dependency loop. 2011-11-14 20:26:23 +00:00
e84c0980a3 correct indentation and some whitespace edits (no functional changes) 2011-11-11 13:09:14 +00:00
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
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
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
e06f206450 Fix: incorrect use of IFACE_ macro, and correct a typo. 2011-11-08 11:02:57 +00:00
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
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
be23090aae Nodes: add foreach_nodeclass iterator over node classes, use for node add menu. 2011-11-07 22:14:48 +00:00
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
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
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