X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=obrender%2Fimage.c;h=c65cd2a5660b8cd8f96577b3d8912f6c8b29a224;hb=0352abfa88892bc17bdff2022745e3c1b312edd0;hp=924504fdf9c1e3a8973191852a40ce854c71179e;hpb=63f748aa3fac4d3ed004a2c5343a51c3a046e21d;p=chaz%2Fopenbox diff --git a/obrender/image.c b/obrender/image.c index 924504fd..c65cd2a5 100644 --- a/obrender/image.c +++ b/obrender/image.c @@ -325,6 +325,12 @@ RrImage* RrImageNew(RrImageCache *cache) return self; } +/*! Set function that will be called just before RrImage is destroyed. */ +void RrImageSetDestroyFunc(RrImage *image, RrImageDestroyFunc func) +{ + image->destroy_func = func; +} + void RrImageRef(RrImage *self) { ++self->ref; @@ -339,6 +345,8 @@ void RrImageUnref(RrImage *self) "Image 0x%lx", (gulong)self); #endif */ + if (self->destroy_func) + self->destroy_func(self); while (self->n_original > 0) RemovePicture(self, &self->original, 0, &self->n_original); while (self->n_resized > 0)