29 if (
out[5].hasoutput) {
33 const float val[4] = {0.0f, 0.0f, 0.0f, 0.0f};
46 if (
ELEM(i, 1, 2, 4)) {
48 "vector_math_normalize",
void node_type_gpu(struct bNodeType *ntype, NodeGPUExecFunction gpu_fn)
#define SH_NODE_NEW_GEOMETRY
void nodeRegisterType(struct bNodeType *ntype)
#define LISTBASE_FOREACH_INDEX(type, var, list, index_var)
GPUNodeLink * GPU_attribute(GPUMaterial *mat, eCustomDataType type, const char *name)
GPUNodeLink * GPU_constant(const float *num)
@ GPU_MATFLAG_BARYCENTRIC
void GPU_material_flag_set(GPUMaterial *mat, eGPUMaterialFlag flag)
bool GPU_link(GPUMaterial *mat, const char *name,...)
bool GPU_stack_link(GPUMaterial *mat, struct bNode *node, const char *name, GPUNodeStack *in, GPUNodeStack *out,...)
static void node_declare(NodeDeclarationBuilder &b)
static int node_shader_gpu_geometry(GPUMaterial *mat, bNode *node, bNodeExecData *UNUSED(execdata), GPUNodeStack *in, GPUNodeStack *out)
static const pxr::TfToken out("out", pxr::TfToken::Immortal)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
void register_node_type_sh_geometry()
void node_shader_gpu_bump_tex_coord(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeLink **link)
void sh_node_type_base(struct bNodeType *ntype, int type, const char *name, short nclass)
NodeDeclareFunction declare