terom@17: #ifndef RENDER_STRUCT_H terom@17: #define RENDER_STRUCT_H terom@17: terom@17: #include "render.h" terom@17: terom@17: struct render { terom@17: /* render mode */ terom@17: int mode; terom@17: terom@17: /* image size */ terom@17: u_int32_t img_w; terom@17: u_int32_t img_h; terom@17: terom@17: /* mandelbrot region */ terom@17: double x1; terom@17: double y1; terom@17: double x2; terom@17: double y2; terom@17: terom@22: /* render region */ terom@22: u_int32_t img_left, img_right, img_top, img_bottom; terom@22: u_int32_t img_x_step, img_y_step; terom@22: terom@17: /* local rendering */ terom@17: unsigned char **local_rowbuf_addr; terom@17: render_ctx_row_cb local_row_fn; terom@17: terom@17: /* local I/O parameters */ terom@17: // if this is non-NULL, the image data is simply fwrite():en to this stream terom@17: FILE *io_stream; terom@17: terom@17: // called to handle the output data terom@17: render_ctx_write_cb io_write_fn; terom@17: terom@17: // called when the output data should be flushed - can be safely ignored if not needed terom@17: render_ctx_flush_cb io_flush_fn; terom@17: terom@17: // the callback argument for all of the above *_fn terom@17: void *cb_arg; terom@17: }; terom@17: terom@17: #endif /* RENDER_STRUCT_H */ terom@17: