Age | Commit message (Collapse) | Author |
|
|
|
types should now use the node_type_* definition helpers to initialize their bNodeType structs.
|
|
Texture node was using the preview buffer instead of socket output buffers, which is already free'd at that point.
|
|
Compositor: Texture Node now behaves like an image.
- Image always in render output size
- Buffer outputs RGBA and Value both supported
- Works for filter and blur and scaling too.
- Mixing 2 textures works
Implementation note:
The texture node was meant to be 'procedural', not a buffer
but a color-sample method. Unfortunately the node editor
didn't support this well, blur/filter/scale ignored it too.
For now, its better to drop this procedural concept, then
things work at least as expected. :)
|
|
|
|
The texture node is procedural; like RGB node it has no real buffers,
but allows per-pixel reading. The compositor uses nodes that directly
access buffers too, which conflicts with it... needs more design here.
Restored old functionality that just passes on preview size buffers
for nodes to prevent crashes. Giving it a render-size buffer is not
nice; the resolution-independence of texture nodes is interesting to
keep.
Solution could be:
- visually tag input/output sockets for this case (sockets with buffers,
vs sockets with values), so users know what to expect.
|
|
Compositor: Texture node only allowed 1 user, with more nodes using it
there was a thread conflict, using same memory for writing values.
Also: brought back the original intention for texture nodes, which is to
be using a "procedural image", not allocating memory for a buffer, but
only allowing to read per pixel. Commit in 2007 (!) allocated full buffers
for texture nodes, without using them even.
|
|
The texture node was not taking into account the precentage of the
render when create the output buffer.
Reported by venomgfx at irc.
|
|
|
|
* Compo node backdrop works again.
* Compo node previews and backdrop now get correct color management
float to byte conversion.
* Compo nodes got unecessarily recalculated while moving nodes.
* Fix compo node viewer nodes not getting activated correctly.
* Main compo node preview render computations are now outside of
mutex lock, so better for multithreading.
* Tex node outputs did not work in some files loaded from 2.4.
* Change RNA updates to take into account groups that may be shared
between multiple node trees.
|
|
Think global, act local!
The old favorite G.scene gone! Man... that took almost 2 days.
Also removed G.curscreen and G.edbo.
Not everything could get solved; here's some notes.
- modifiers now store current scene in ModifierData. This is not
meant for permanent, but it can probably stick there until we
cleaned the anim system and depsgraph to cope better with
timing issues.
- Game engine G.scene should become an argument for staring it.
Didn't solve this yet.
- Texture nodes should get scene cfra, but the current implementation
is too tightly wrapped to do it easily.
|
|
Also fixed a bug where procedural buffers did not convert correctly
to different buffer types (e.g. value -> rgba would give red).
|
|
not work correct, it should use bNodeStack inputs like other nodes.
|
|
This option sets the relative scaling factor to the amount set in the
scene "100%/75%/50%/25%" buttons. It's useful when you've got a fixed
background image, and want to do preview renders at a lesser
percentage, so you don't have to go and change the scale node each
time you change the %.
Also removed unnecessary use of a global from texture node.
|
|
Previously if the texture node was not connected directly as the
second input to a node like Mix, the size of the generated image
was initialised to 140x140, which is not that useful. It now is
initialised to the size of the render result if it exists, and if
not, the size of the scene render sizeX/sizeY.
This alleviates bug #7068, which is caused by the displace node
trying to get pixels from a texture node, where the texture node
doesn't contain pixels to cover the entire image (only 140x140)
but it's not really a bulletproof solution...
|
|
* refactor copying and freeing of node->storage by handlerizing them.
- freestoragefunc
- copystoragefunc
- node_util.c/h have generic handlers for these.
|
|
This will allow python or plugin defined nodes to work as well.
(And fixes compile issues with MSVC in yesterdays commit for nodes)
Code provided by Nathan L.
Fixes in his code:
- free_nodesystem() was called too late (after guarded alloc was closed)
- free_nodesystem() was freeing nodes that were not malloced even
- free_nodesystem was using free, not freeN :)
- the typedefs needed to be malloced yes, to allow duplicate nodes like
group but also for dynamic nodes.
|
|
|
|
this point. Will commit modified versions of existing files once build system is tested.
|