Revision ceacf24 by Thomas Dinges April 13, 2013, 16:26 (GMT) |
Node Toolbar: * Have panels closed by default. |
Revision 50e7e34 by Thomas Dinges April 13, 2013, 15:51 (GMT) |
Node categories / Add menu: * Fix for Subsurface Scattering node. |
Revision 94931f9 by Lukas Toenne April 13, 2013, 15:38 (GMT) |
Replacing the node Add menu and making the toolbar useful As some people have already noticed, the "Add" menu for nodes is a bit messy since pynodes merge. The reason for this is that the order of nodes in submenus (categories) was previously defined by the order in which all nodes are registered (at the bottom of blenkernel/intern/node.c). For the dynamic registration of node types now possible this system of defining node order along with registration is no longer viable: while it would still sort of work for C nodes, it is completely meaningless for dynamic (python) nodes, which are basically registered automatically in whatever order modules and addons are loaded, with the added complexity of unloading and reloading. To fix this problem and add a bunch of desirable features this commit replaces the C menu with a python implementation. The new menu does not rely on any particular order of types in the node registry, but instead uses a simple explicit list of all the available nodes, grouped by categories (in scripts/nodeitems_builtins.py). There are a number of additional features that become possible with this implementation: 1) Node Toolbar can be populated! The list of nodes is used to create 2 UI items for each node: 1 entry in a submenu of "Add" menu and 1 item in a node toolbar panel with basically the same functionality. Clicking a button in the toolbar will add a new node of this type, just like selecting an item in the menu. The toolbar has the advantage of having collapsible panels for each category, so users can decide if they don't need certain nodes categories and have the rest more easily accessible. 2) Each node item is a true operator call. The old Add menu is a pretty old piece of C code which doesn't even use proper operator buttons. Now there is a generic node_add operator which can be used very flexibly for adding any of the available nodes. 3) Node Items support additional settings. Each "NodeItem" consists of the basic node type plus an optional list of initial settings that shall be applied to a new instance. This gives additional flexibility for creating variants of the same node or for defining preferred initial settings. E.g. it has been requested to disable previews for all nodes except inputs, this would be simple change in the py code and much less intrusive than in C. 4) Node items can be generated with a function. A callback can be used in any category instead of the fixed list, which generates a set of items based on the context (much like dynamic enum items in bpy.props). Originally this was implemented for group nodes, because these nodes only make sense when linked to a node tree from the library data. This principle could come in handy for a number of other nodes, e.g. Image nodes could provide a similar list of node variants based on images in the library - no need to first add node, then select an image. WARNING: pynodes scripters will have to rework their "draw_add_menu" callback in node tree types, this has been removed now! It was already pretty redundant, since one can add draw functions to the Add menu just like for any other menu. In the future i'd like to improve the categories system further so scripters can use it for custom node systems too, for now just make a draw callback and attach it to the Add menu. |
Revision a710434 by Ton Roosendaal April 13, 2013, 15:14 (GMT) |
Usability fix, own collection. If you have two windows, each with different scene, the render output for a window would go to the other, if it was already drawing a render for the other scene. Now you can have renders draw correct in two windows for two scenes. |
Revision 2baa59e by Campbell Barton April 13, 2013, 14:57 (GMT) |
code cleanup: remove unused string formatting in bli_adddirstrings(), also remove unused initializations and comment unused vars. |
Revision 53bb59f by Ton Roosendaal April 13, 2013, 14:15 (GMT) |
Accidentally left in test function. All's fine now! |
Revision 9e8047d by Antonis Ryakiotakis April 13, 2013, 14:05 (GMT) |
Fix compilation, ifdef test_file just in case it is useful for later. |
Revision 84071fb by Thomas Dinges April 13, 2013, 12:49 (GMT) |
Cycles / Save Buffers: * Save Buffers could not be disabled in the UI, when "Full Sample" was enabled in Blender Internal. |
Revision d867cef by Ton Roosendaal April 13, 2013, 12:03 (GMT) |
Bug fix #34896 The feature "Keep Session" was also loading that session when you double-click on a .blend to open it, or when a .blend file was on commandline. Moved this feature to the main() in creator.c, so it can check on it properly, skipping the kept session when a file was loaded. |
Revision 9eea6c7 by Gaia Clary April 13, 2013, 09:32 (GMT) |
improved tooltips even more (as discussed in IRC) |
Revision 6f9495f by Thomas Dinges April 13, 2013, 09:28 (GMT) |
Fix for [#34968] Cross compiling from linux for windows is broken * Patch by Martijn Berger (juicyfruit). |
Revision f181952 by Gaia Clary April 13, 2013, 09:27 (GMT) |
improved tooltips |
Revision fb9d886 by Antonis Ryakiotakis April 13, 2013, 08:41 (GMT) |
Add update to brush texture preview when brush is changed. Solves cycling through tools with number or tool keys and no texture preview getting updated. |
Revision 2c47244 by Campbell Barton April 13, 2013, 04:28 (GMT) |
code cleanup: use `const char` for args and replace wm_keyconfig_list_find() -> BLI_findstring() |
Revision 2f9b741 by Campbell Barton April 13, 2013, 00:43 (GMT) |
code cleanup: warnings + style |
Revision 7cf1d86 by Antonis Ryakiotakis April 12, 2013, 23:55 (GMT) |
Allow rake/random brush rotation for random mapping mode. Some interesting things can be accomplished this way, such as tiger stripes for instance. |
Revision 9d0b083 by Antonis Ryakiotakis April 12, 2013, 21:58 (GMT) |
Fixes: * Overlay invalidation did not happen when changing brush, .either through UI or through shortcuts * Add initiliazation of curves before threaded overlay texture evaluation or we may get memory leaks due to race conditions. |
Revision a074df3 by Antonis Ryakiotakis April 12, 2013, 17:59 (GMT) |
oversight on scons, this should fix. |
Revision d0beabb by Antonis Ryakiotakis April 12, 2013, 17:56 (GMT) |
Add function to query maximum texture size. Also, make texture upload functions aware of this limit. |
Revision a305452 by Antonis Ryakiotakis April 12, 2013, 17:21 (GMT) |
Paint refactoring commit, non-disruptive (in theory :p) * Fix precision overflow issue with overlay previews, * Expose alpha mask mapping to UI (still not functional but coming soon). * More overlay refactoring: Overlay now does minimal checking for texture refresh. Instead, we now have invalidation flags to set an aspect of the brush overlay as invalid. This is necessary because this way we will be able to separate and preview different brush attributes on the overlays, using different textures: These attributes/aspects are: Primary texture (main texture for sculpt, vertex, imapaint) Secondary texture (mask/alpha texture for imapaint) Cursor texture (cursor texture. It involves brush strength and curves) Modified the relevant RNA property update functions and C update callback functions to call the relevant cursor invalidation functions instead of checking every frame for multiple properties. Properties that affect this are: Image changes, if image is used by current brush, Texture slot changes, similarly Curve changes, Object mode change invalidates the cursor Paint tool change invalidates the cursor. These changes give slightly more invalidation cases than simply comparing the relevant properties each frame, but these do not occur in performance critical moments and it's a much more elegant system than adding more variables to check per frame each time we add something on the system. |
|
|
|


Master Commits
MiikaHweb | 2003-2021