29 #include "node_util.h"
34 #include "RNA_prototypes.h"
63 *r_from = (
ID *)brush;
108 node_next =
node->next;
139 "texture node tree type");
142 strcpy(tt->
idname,
"TextureNodeTree");
143 strcpy(tt->
ui_name,
N_(
"Texture Node Editor"));
144 tt->
ui_icon = ICON_NODE_TEXTURE;
197 for (n = 0, nodeexec =
exec->nodeexec; n < exec->totnodes; n++, nodeexec++) {
199 if (
node->need_exec) {
267 for (nts =
exec->threadstack[th].first; nts; nts = nts->
next) {
268 for (ns = nts->
stack,
a = 0; a < exec->stacksize;
a++, ns++) {
282 if (
exec->threadstack) {
286 for (nts =
exec->threadstack[
a].first; nts; nts = nts->
next) {
334 data.osatex = osatex;
335 data.target = target;
337 data.do_manage =
true;
339 data.which_output = which_output;
struct Scene * CTX_data_scene(const bContext *C)
struct SpaceNode * CTX_wm_space_node(const bContext *C)
struct ViewLayer * CTX_data_view_layer(const bContext *C)
Blender kernel freestyle line style functionality.
FreestyleLineStyle * BKE_linestyle_active_from_view_layer(struct ViewLayer *view_layer)
void ntreeTypeAdd(struct bNodeTreeType *nt)
#define NODE_CLASS_OUTPUT
#define NODE_CLASS_INTERFACE
void nodeInternalRelink(struct bNodeTree *ntree, struct bNode *node)
const bNodeInstanceKey NODE_INSTANCE_KEY_BASE
#define NODE_CLASS_CONVERTER
void ntreeFreeLocalNode(struct bNodeTree *ntree, struct bNode *node)
void(* bNodeClassCallback)(void *calldata, int nclass, const char *name)
#define NODE_CLASS_PATTERN
#define NODE_CLASS_DISTORT
bool nodeIsStaticSocketType(const struct bNodeSocketType *stype)
#define NODE_CLASS_LAYOUT
#define NODE_CLASS_OP_COLOR
#define NODE_CLASS_TEXTURE
struct Brush * BKE_paint_brush(struct Paint *paint)
struct Tex * give_current_brush_texture(struct Brush *br)
struct Tex * give_current_linestyle_texture(struct FreestyleLineStyle *linestyle)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_thread_unlock(int type)
void BLI_thread_lock(int type)
#define BLENDER_MAX_THREADS
#define OBACT(_view_layer)
FreestyleLineStyle linestyle
void(* MEM_freeN)(void *vmemh)
void *(* MEM_dupallocN)(const void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
static const pxr::TfToken preview("preview", pxr::TfToken::Immortal)
void ntree_update_reroute_nodes(bNodeTree *ntree)
bNodeTreeExec * ntree_exec_begin(bNodeExecContext *context, bNodeTree *ntree, bNodeInstanceKey parent_key)
void node_get_stack(bNode *node, bNodeStack *stack, bNodeStack **in, bNodeStack **out)
void ntree_exec_end(bNodeTreeExec *exec)
static void exec(void *data, int UNUSED(thread), bNode *node, bNodeExecData *execdata, bNodeStack **in, bNodeStack **out)
static void foreach_nodeclass(Scene *UNUSED(scene), void *calldata, bNodeClassCallback func)
bNodeThreadStack * ntreeGetThreadStack(bNodeTreeExec *exec, int thread)
bNodeTreeType * ntreeType_Texture
bool ntreeExecThreadNodes(bNodeTreeExec *exec, bNodeThreadStack *nts, void *callerdata, int thread)
void ntreeTexEndExecTree_internal(bNodeTreeExec *exec)
static void texture_get_from_context(const bContext *C, bNodeTreeType *UNUSED(treetype), bNodeTree **r_ntree, ID **r_id, ID **r_from)
static void localize(bNodeTree *localtree, bNodeTree *UNUSED(ntree))
bNodeTreeExec * ntreeTexBeginExecTree_internal(bNodeExecContext *context, bNodeTree *ntree, bNodeInstanceKey parent_key)
static void tex_free_delegates(bNodeTreeExec *exec)
static bool texture_node_tree_socket_type_valid(bNodeTreeType *UNUSED(ntreetype), bNodeSocketType *socket_type)
static void update(bNodeTree *ntree)
void ntreeTexEndExecTree(bNodeTreeExec *exec)
bNodeTreeExec * ntreeTexBeginExecTree(bNodeTree *ntree)
int ntreeTexExecTree(bNodeTree *ntree, TexResult *target, const float co[3], float dxt[3], float dyt[3], int osatex, const short thread, const Tex *UNUSED(tex), short which_output, int cfra, int preview, MTex *mtex)
void register_node_tree_type_tex(void)
void ntreeReleaseThreadStack(bNodeThreadStack *nts)
struct ToolSettings * toolsettings
struct bNodeTree * nodetree
struct bNodeThreadStack * next
struct bNodeStack * stack
void(* update)(struct bNodeTree *ntree)
void(* get_from_context)(const struct bContext *C, struct bNodeTreeType *ntreetype, struct bNodeTree **r_ntree, struct ID **r_id, struct ID **r_from)
void(* localize)(struct bNodeTree *localtree, struct bNodeTree *ntree)
bool(* valid_socket_type)(struct bNodeTreeType *ntreetype, struct bNodeSocketType *socket_type)
void(* foreach_nodeclass)(struct Scene *scene, void *calldata, bNodeClassCallback func)
struct bNodeInstanceHash * previews
struct bNodeTreeExec * execdata