| .TH IM_RENDER 3 "5 October 2003" |
| .SH NAME |
| im_render, im_render_fade, im_cache \- make image in the background |
| .SH SYNOPSIS |
| #include <vips/vips.h> |
| |
| int im_render_fade( IMAGE *in, IMAGE *out, IMAGE *mask, |
| .br |
| int width, int height, int max, |
| .br |
| int fps, int steps, |
| .br |
| int priority, |
| .br |
| void (*notify)( IMAGE *, Rect *, void * ), void *client ); |
| |
| int im_render( IMAGE *in, IMAGE *out, IMAGE *mask, |
| .br |
| int width, int height, int max, |
| .br |
| void (*notify)( IMAGE *, Rect *, void * ), void *client ); |
| |
| int im_cache( IMAGE *in, IMAGE *out, |
| .br |
| int width, int height, int max ); |
| |
| .SH DESCRIPTION |
| .B im_render_fade(3) |
| behaves rather like |
| .B im_copy(3) |
| between images |
| .B in |
| and |
| .B out, |
| except that it keeps a cache of computed pixels. This cache is made of up to |
| .B max |
| tiles (a value of -1 for |
| .B max |
| means any number of tiles), and each tile is of size |
| .B width |
| by |
| .B height |
| pixels. Each cache tile is made with a call to |
| .B im_prepare_thread(3), |
| so cache tile calculation will be accelerated on multi-CPU machines. If image |
| .B in |
| represents a large computation, |
| .B im_render_fade(3) |
| can save a lot of time. |
| |
| If the |
| .B notify |
| parameter points to a function, then tiles are not calculated immediately, but |
| are added to a job list and calculated as CPU becomes available. When a tile has |
| been calculated, the notify function is passed the image which was being |
| cached, the area of the image which is now available, and a client pointer. |
| The notify function will be called by a background thread, so you will usually |
| need to implement some mechanism to interrupt your main thread and update. |
| |
| The |
| .B mask |
| image is a one band uchar image the same size as out, which has 255 for every |
| pixels which is in the cache and 0 everywhere else. You should not read |
| pixels from |
| .B mask |
| after |
| .B out |
| has been closed. If mask is NULL, then no mask image is written. |
| |
| If |
| .B steps |
| is greater than zero, then pixels in mask are moved between 0 and 255 as tiles |
| age in that many steps. The |
| .B fps |
| parameter sets how many times per second the notify function is called to |
| indicate that an updated tile is ready. |
| |
| If |
| .B priority |
| is zero, then the render will only run when the system is idle, and only a few |
| renders will run at any time. Higher values will cause the render to happen |
| more quickly. |
| |
| .B im_cache(3) |
| is a convenience function for |
| .B im_render_fade(3) |
| that caches image pixels synchronously. If you ask for an area not in the cache, |
| execution blocks until the area has been calculated. |
| |
| .B im_render(3) |
| is deprecated: it is the old interface to the render function, before the |
| .B fps |
| and |
| .B steps |
| parameters were added. |
| |
| .SH RETURN VALUE |
| The function returns 0 on success, and non-zero on error, setting |
| im_error(). |
| .SH SEE ALSO |
| im_prepare(3) |
| .SH AUTHOR |
| J Cupitt, 2003 |