Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-02-04Fix T43450: Texture node tree failed to clampKévin Dietrich
Clamping routine was not implemented. This fixes T43450. Reviewers: #nodes, #rendering, sergey Reviewed By: sergey Maniphest Tasks: T43450 Differential Revision: https://developer.blender.org/D1038
2014-11-29Cleanup: unused headersCampbell Barton
2014-11-05Code cleanup: Replace magic number with verbose name for math node operationsSergey Sharybin
Should be no functional changes, just much less cryptic code.
2014-09-24Cleanup: use float versions of functions when in/output are floatsCampbell Barton
2014-09-17Fix T41761, muting not working with texture nodesAntony Riakiotakis
This was disabled to fix T41349, however seems that if we don't pass delegates for muted nodes everything work fine.
2014-08-12Fix T41349: Muting texture nodes can cause crashes.Lukas Tönne
Problem is that setup of stack indices which refer to the same stack entry can lead to cyclic TexDelegate node pointers, causing an infinite loop. Fixing this would take too much time and require recoding large parts of the texnodes system, which is earmarked for scrapping anyway ... So for now just disabled muting in texnodes to avoid crashes.
2014-07-16Cleanup: Adhere to our naming convention for BKE_linestyle.h APICampbell Barton
2014-07-16Renamed CTX_data_linestyle_from_scene() to BKE_get_linestyle_from_scene().Tamito Kajiyama
The function is to retrieve the active line style ID datablock from a scene and there is nothing related to bContext.
2014-05-14Code cleanup: indentationCampbell Barton
2014-05-09Code cleanup: styleCampbell Barton
2014-05-07Fix some nodes showing up as undefined after the fix in 79c345acc21b.Brecht Van Lommel
A bunch of nodes had invalid storage definitions that don't refer to an actual DNA struct. Ref T40033.
2014-05-07Nodes: add absolute value operation to all math nodesMatt Heimlich
Reviewed By: dingto, brecht Differential Revision: https://developer.blender.org/D507
2014-05-03Patch D246: Texture Marks for freestyle strokes, written and contributed by ↵Tamito Kajiyama
Paolo Acampora. Reviewers: brecht, kjym3, #freestyle Reviewed By: brecht, kjym3 Differential Revision: https://developer.blender.org/D246
2014-04-26Code cleanup: use 'const' for arrays (blenloader, gpu, imbuf, makesdna, ↵Campbell Barton
modifiers, nodes)
2014-04-20Nodes: make default group nodes slighly wider, to match other node width ↵Brecht Van Lommel
defaults.
2014-04-01Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT defineCampbell Barton
2014-02-24Fix T38813: missing color management in texture nodes preview.Brecht Van Lommel
2014-01-04Changed percentage and 0-1 number fields to use sliders. This is more ↵William Reynish
consistent. Reviewed by Brecht van Lommel, Thomas Dinges and Jonathan Williamson
2013-10-29Fix #37192, Rendered preview causes crash when deleting a material node in ↵Lukas Toenne
shader node editor. The 'free' callback for node execution data was accessed from the node->typeinfo, but this pointer can become invalid because the render database is not immediately freed after the job finishes. To avoid access to dangling node pointers, store the function callback in the exec data itself. The node pointer must not be accessed in the free function (wasn't used before either), these functions are purely for the execution data.
2013-09-10fix/workaround [#36694] Texture node groups tend to crash Blender a lot.Campbell Barton
2013-07-29minor changes for confusing code.Campbell Barton
- memset() was argument was truncated. - outliner had redundant NULL check. - node texture was allocating memory to make a unique name which isnt needed for a fixed size string.
2013-07-27fix for writing to freed memory enabling texture node treeCampbell Barton
2013-07-21code cleanup: add break statements in switch ()'s, (even at the last case).Campbell Barton
2013-06-01Extended max size for group node types from 200 to 400, in case users need ↵Lukas Toenne
long socket names visible.
2013-05-29Cleanup: Removed all NODE_OPTIONS flags from C node type definitions, these ↵Lukas Toenne
are no longer required and have no effect. Whether or not a node supports additional options buttons is now determined by the existence of a draw callback (uifunc and/or uifuncbut).
2013-05-28Fix #35547: incomplete tooltips in node editorSergey Sharybin
Descriptions were missing since PyNodes integration. Thanks to lukas for patch review!
2013-05-27style cleanup: nodesCampbell Barton
2013-05-27style cleanup: nodesCampbell Barton
2013-05-24style cleanupCampbell Barton
2013-05-22Texture Nodes:Thomas Dinges
* Use node size presets as well, some nodes were too small and also too limited in max size.
2013-05-20Math Node:Thomas Dinges
* Added a Modulo operation to the math node, available in Compositor, Shader and Texture Nodes.
2013-05-10Fix #35278: textures nodes Mix RGB node did not have a Use Alpha option likeBrecht Van Lommel
the compositing node. Note the shader nodes can't have this because color sockets there are only RGB, not RGBA.
2013-04-20Removed the group_tree_idname property from node types. This was a bit of a ↵Lukas Toenne
hack to associate node group types to specific tree types for node group operators. Since the node group operators now work independent from this property (see r56183) that property is no longer needed and just pollutes the bNodeType struct.
2013-04-12Paint refactoring commit, non-disruptive (in theory :p)Antony Riakiotakis
* 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.
2013-04-06Node UI:Thomas Dinges
* After PyNodes merge, many node sockets had sliders, instead of the arrow buttons (as the PROP_FACTOR subtype now actually was used). Change those back now, after artists feedback.
2013-04-03Fix #33628, Segmentation fault after pasting a closed group of nodes into an ↵Lukas Toenne
open group. Finally now there is a proper check for pasting nodes into groups. It uses the poll_instance callback of node types to determine if a node can be added into a specific node tree. Currently this is only implemented for group nodes and does a recursive check to avoid pasting a node group into itself (on any level, also nested groups).
2013-03-31style cleanupCampbell Barton
2013-03-22Node preview merge function now has an additional option "remove_old", which ↵Lukas Toenne
could be used if previous previews should be retained after recalculating (not used currently, old previews are dropped entirely for now, because it could be confusing). Also moved the sync and merge for previews into the respective tree callbacks for consistency. This way the handling of previews can be changed for each tree type individually if necessary.
2013-03-19Fixes for context updates of the node editor:Lukas Toenne
* 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-18code cleanupCampbell Barton
2013-03-18Merge of the PyNodes branch (aka "custom nodes") into trunk.Lukas Toenne
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-02-15And more UI messages issues fixing... Thanks again to Gabriel Gazzán and ↵Bastien Montagne
Leon Cheung!
2013-01-25header cleanup, include BLI before BKE, also use bool for ntreeShaderExecTreeCampbell Barton
2013-01-21Fixed render time regression in Blender InternalSergey Sharybin
It was caused by image threading safe commit and it was noticeable only on really multi-core CPU (like dual-socket Xeon stations), was not visible on core i7 machine. The reason of slowdown was spinlock around image buffer referencing, which lead to lots of cores waiting for single core and using image buffer after it was referenced was not so much longer than doing reference itself. The most clear solution here seemed to be introducing Image Pool which will contain list of loaded and referenced image buffers, so all threads could skip lock if the pool is used for reading only. Lock only needed in cases when buffer for requested image user is missing in the pool. This lock will happen only once per image so overall amount of locks is much less that it was before. To operate with pool: - BKE_image_pool_new() creates new pool - BKE_image_pool_free() destroys pool and dereferences all image buffers which were loaded to it - BKE_image_pool_acquire_ibuf() returns image buffer for given image and user. Pool could be NULL and in this case fallback to BKE_image_acquire_ibuf will happen. This helps to avoid lots to if(poll) checks in image sampling code. - BKE_image_pool_release_ibuf releases image buffer. In fact, it will only do something if pool is NULL, in all other case it'll equal to DoNothing operation.
2012-11-15Image thread safe improvementsSergey Sharybin
This commit makes BKE_image_acquire_ibuf referencing result, which means once some area requested for image buffer, it'll be guaranteed this buffer wouldn't be freed by image signal. To de-reference buffer BKE_image_release_ibuf should now always be used. To make referencing working correct we can not rely on result of image_get_ibuf_threadsafe called outside from thread lock. This is so because we need to guarantee getting image buffer from list of loaded buffers and it's referencing happens atomic. Without lock here it is possible that between call of image_get_ibuf_threadsafe and referencing the buffer IMA_SIGNAL_FREE would be called. Image signal handling too is blocking now to prevent such a situation. Threads are locking by spinlock, which are faster than mutexes. There were some slowdown reports in the past about render slowdown when using OSX on Xeon CPU. It shouldn't happen with spin locks, but more tests on different hardware would be really welcome. So far can not see speed regressions on own computers. This commit also removes BKE_image_get_ibuf, because it was not so intuitive when get_ibuf and acquire_ibuf should be used. Thanks to Ton and Brecht for discussion/review :)
2012-10-25Internal node links are now cached in a per-node list, instead of being ↵Lukas Toenne
generated as a transient list that is returned from the callback and had to be freed by the caller. These internal links are used for muted nodes, disconnect operators and reroute nodes, to effectively replace the node with direct input-to-output links. Storing this list in the node has the advantage of requiring far fewer calls to the potentially expensive internal_connect callback. This was called on every node redraw ... Also it will allow Cycles to properly use the internal links for muted nodes, which ensures consistent behavior. The previous method was not applicable in Cycles because transient list return values are not supported well in the RNA and particularly the C++ API implementation.
2012-10-24Removed the experimental (and commented-out) code for FOR and WHILE loops in ↵Lukas Toenne
nodes. This was a feature i tested a while back but was only partially supported by Blender Internal renderer and the old compositor. The main idea was to have nodes that automatically mirror input and output sockets to support incremental changes of "internal variables". It is not a well-supported feature of the primary node systems (shader, compositor, texture) in Blender. If anybody wants to create a node system that has actual use for loops, they can do so much more elegantly with Python nodes, but it does not have to be a core node type in Blender. Removing this should ease node code maintenance a bit.
2012-10-22style cleanupCampbell Barton
2012-10-21style cleanup: trailing tabs & expand some non prefix tabs into spaces.Campbell Barton
2012-10-16code cleanup: use float sizes for function args.Campbell Barton