3 - Indexed engine operator list (would be better as second set of calls)
4 > Arguments can be passed using custom attributes
5 - GL-centric operations (would be better with read_buffer/write_buffer calls)
6 - No status returned from operations most
7 - Input data format specifcation
8 > Engine operator list specifies it, but in an abstract way (which would require quite smart code to determine)
9 > Doable though, but having a RO property on the engine that notes if it uses a standard pixel format would be nice
12 Engine inspection API:
13 > Readonly? Property for number of operations
14 - Readonly because modifcation of the count is not possible
15 - Attributes can be read, so that's your config mechanisim
16 > udi_gfx_engine_getop_req(udi_gfx_state_cb_t *cb);
17 > udi_gfx_engine_getop_ack(udi_gfx_state_cb_t *cb, udi_ubit8_t operation, udi_ubit32_t arg1, udi_ubit32_t arg2, udi_ubit32_t arg3);
20 Buffer manipulation API:
24 udi_index_t buffer_idx;
27 } udi_gfx_buffer_cb_t;
29 > udi_gfx_buffer_write_req(udi_gfx_buffer_cb_t *cb);
30 > udi_gfx_buffer_write_ack(udi_gfx_buffer_cb_t *cb, udi_status_t status);
31 > (OPTIONAL) udi_gfx_buffer_read_req(udi_gfx_buffer_cb_t *cb);