Age | Commit message (Collapse) | Author |
|
- BKE_blender_version.h (only version defines & versionstr).
- BKE_blender_copybuffer.h (currently only used for view3d copy/paste).
- BKE_blender_undo.h (global undo functions).
- BKE_blendfile.h (high level blend file read/write API).
|
|
Nodes have a feature for moving existing links to unoccupied sockets when connecting
to an already used input. This is based on the standard legacy socket types (value/float,
vector, color/rgba) and works reasonably well for shader, compositor and texture nodes.
For new pynode systems, however, the hardcoded nature of that feature has major drawbacks:
* It does not take different type systems into account, leading to meaningless connections
when sockets are swapped and making the feature useless or outright debilitating.
* Advanced socket behaviors would be possible with a registerable callback, e.g. creating
extensible input lists that move existing connections down to make room for a new link.
Now any handling of new links is done via the 'insert_links' callback, which can also be
registered through the RNA API. For the legacy shader/compo/tex nodes the behavior is the
same, using a C callback.
Note on the 'use_swap' flag: this has been removed because it was meaningless anyway:
It was disabled only for the insert-node-on-link feature, which works only for
completely unconnected nodes anyway, so there would be nothing to swap in the first place.
|
|
|
|
- Add blentranslation `BLT_*` module.
- moved & split `BLF_translation.h` into (`BLT_translation.h`, `BLT_lang.h`).
- moved `BLF_*_unifont` functions from `blf_translation.c` to new source file `blf_font_i18n.c`.
|
|
|
|
Revert "Nodes: Remove hardcoded BLENDER_MAX_THREADS number of threads"
This reverts commit fdc653e8ce77a188138dc707207139c3d1e6b166.
The threads override is not affected by the scene, and hence the limit of the
threads was not giving correct result. Need to re-consider some things here.
|
|
|
|
Use actual available number of threads now, which will make it easier
to increase max number of threads, without having some sloppy memory
usage and without doing some redundant checks on thread data which was
never used.
|
|
|
|
calculations and use the OCIO one instead.
|
|
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
|
|
|
|
Should be no functional changes, just much less cryptic code.
|
|
|
|
This was disabled to fix T41349, however seems that if we don't pass
delegates for muted nodes everything work fine.
|
|
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.
|
|
|
|
The function is to retrieve the active line style ID datablock from a scene and
there is nothing related to bContext.
|
|
|
|
|
|
A bunch of nodes had invalid storage definitions that don't refer to an actual
DNA struct. Ref T40033.
|
|
Reviewed By: dingto, brecht
Differential Revision: https://developer.blender.org/D507
|
|
Paolo Acampora.
Reviewers: brecht, kjym3, #freestyle
Reviewed By: brecht, kjym3
Differential Revision: https://developer.blender.org/D246
|
|
modifiers, nodes)
|
|
defaults.
|
|
|
|
|
|
consistent.
Reviewed by Brecht van Lommel, Thomas Dinges and Jonathan Williamson
|
|
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.
|
|
|
|
- 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.
|
|
|
|
|
|
long socket names visible.
|
|
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).
|
|
Descriptions were missing since PyNodes integration.
Thanks to lukas for patch review!
|
|
|
|
|
|
|
|
* Use node size presets as well, some nodes were too small and also too limited in max size.
|
|
* Added a Modulo operation to the math node, available in Compositor, Shader and Texture Nodes.
|
|
the compositing node. Note the shader nodes can't have this because color
sockets there are only RGB, not RGBA.
|
|
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.
|
|
* 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.
|
|
* 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.
|
|
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).
|
|
|
|
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.
|
|
* 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.
|
|
|