18 struct AtOutputIterator;
19 struct AtAOVSampleIterator;
44 const char** (*DriverExtension)();
46 bool (*DriverNeedsBucket)(
AtNode*, int, int, int, int, int);
47 void (*DriverPrepareBucket)(
AtNode*, int, int, int, int, int);
48 void (*DriverProcessBucket)(
AtNode*,
struct AtOutputIterator*,
struct AtAOVSampleIterator*, int, int, int, int, int);
49 void (*DriverWriteBucket)(
AtNode*,
struct AtOutputIterator*,
struct AtAOVSampleIterator*, int, int, int, int);
50 void (*DriverClose)(
AtNode*,
struct AtOutputIterator*);
54 #define AI_DRIVER_NODE_EXPORT_METHODS(tag) \
55 AI_INSTANCE_COMMON_METHODS \
56 driver_supports_pixel_type; \
59 driver_needs_bucket; \
60 driver_prepare_bucket; \
61 driver_process_bucket; \
62 driver_write_bucket; \
64 static AtDriverNodeMethods ai_driver_mtds = { \
65 DriverSupportsPixelType, \
69 DriverPrepareBucket, \
70 DriverProcessBucket, \
74 static AtNodeMethods ai_node_mtds = { \
78 AtNodeMethods *tag = &ai_node_mtds;
92 #define driver_supports_pixel_type \
93 static bool DriverSupportsPixelType(const AtNode* node, AtByte pixel_type)
101 #define driver_extension \
102 static const char** DriverExtension()
116 #define driver_open \
117 static void DriverOpen(AtNode* node, struct AtOutputIterator* iterator, AtBBox2 display_window, AtBBox2 data_window, int bucket_size)
134 #define driver_needs_bucket \
135 static bool DriverNeedsBucket(AtNode* node, int bucket_xo, int bucket_yo, int bucket_size_x, int bucket_size_y, int tid)
153 #define driver_prepare_bucket \
154 static void DriverPrepareBucket(AtNode* node, int bucket_xo, int bucket_yo, int bucket_size_x, int bucket_size_y, int tid)
174 #define driver_process_bucket \
175 static void DriverProcessBucket(AtNode* node, struct AtOutputIterator* iterator, struct AtAOVSampleIterator* sample_iterator, int bucket_xo, int bucket_yo, int bucket_size_x, int bucket_size_y, int tid)
193 #define driver_write_bucket \
194 static void DriverWriteBucket(AtNode* node, struct AtOutputIterator* iterator, struct AtAOVSampleIterator* sample_iterator, int bucket_xo, int bucket_yo, int bucket_size_x, int bucket_size_y)
204 #define driver_close \
205 static void DriverClose(AtNode* node, struct AtOutputIterator* iterator)
220 AI_API
bool AiOutputIteratorGetNext(
struct AtOutputIterator* iter,
const char** output_name,
int* pixel_type,
const void** bucket_data);