ai_shaders.h
Go to the documentation of this file.
1 // Copyright 2020 Autodesk, Inc. All rights reserved.
2 //
3 // Use of this software is subject to the terms of the Autodesk license
4 // agreement provided at the time of installation or download, or which
5 // otherwise accompanies this software in either electronic or hard copy form.
6 
12 #pragma once
13 #include "ai_nodes.h"
14 #include "ai_api.h"
15 
16 // forward declarations
17 struct AtNode;
18 struct AtShaderGlobals;
19 
20 
30  void (*Evaluate)(AtNode*, AtShaderGlobals*);
31 };
32 
34 #define AI_SHADER_NODE_EXPORT_METHODS(tag) \
35 AI_INSTANCE_COMMON_METHODS \
36 shader_evaluate; \
37 static AtShaderNodeMethods ai_shader_mtds = { \
38  Evaluate \
39 }; \
40 static AtNodeMethods ai_node_mtds = { \
41  &ai_common_mtds, \
42  &ai_shader_mtds \
43 }; \
44 const AtNodeMethods* tag = &ai_node_mtds;
45 
52 #define shader_evaluate \
53 static void Evaluate(AtNode* node, AtShaderGlobals* sg)
54 
60 AI_API void AiShaderEvaluate(AtNode* node, AtShaderGlobals* sg);
61 
62 /* \}*/
63 
64 /*\}*/
AI_API void AiShaderEvaluate(AtNode *node, AtShaderGlobals *sg)
Evaluate a shader.
Definition: ai_shaders.cpp:22
This represents a node in Arnold.
AtNode struct and methods.
DLL export prefix for API functions (necessary for multi-platform development)
Shader globals data structure.
Definition: ai_shaderglobals.h:45
Shader Node methods structure.
Definition: ai_shaders.h:29

© 2020 Autodesk, Inc. · All rights reserved · www.arnoldrenderer.com