X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=render%2Frender.h;h=706843e33d3aaca4730651619fb2e7cb9547ef35;hb=22a88cfe99d897dc7d3be7b53b954f6cdfa250c6;hp=e79727df0b751499695844c7292b1ade2d05228f;hpb=4c7cc1cfa64bf5722f059eae0528d510c2ae636f;p=chaz%2Fopenbox diff --git a/render/render.h b/render/render.h index e79727df..706843e3 100644 --- a/render/render.h +++ b/render/render.h @@ -22,7 +22,7 @@ #define __render_h #include "geom.h" -#include "version.h" +#include "render/version.h" #include /* some platforms dont include this as needed for Xft */ #include @@ -227,6 +227,9 @@ struct _RrAppearance { struct _RrImagePic { gint width, height; RrPixel32 *data; + /* The sum of all the pixels. This is used to compare pictures if their + hashes match. */ + gint sum; }; /*! An RrImage is a sort of meta-image. It can contain multiple versions of @@ -234,11 +237,18 @@ struct _RrImagePic { pictures */ struct _RrImage { gint ref; - struct _RrImageCache *cache; + RrImageCache *cache; - struct _RrImagePic **original; + /*! An array of "originals", that is of RrPictures that have been added + to the image in various sizes, and that have not been resized. These + are explicitly added to the RrImage. */ + RrImagePic **original; gint n_original; - struct _RrImagePic **resized; + /*! An array of "resized" pictures. When an "original" RrPicture + needs to be resized for drawing, it is saved in here so that it doesn't + need to be resized again. These are automatically added to the + RrImage. */ + RrImagePic **resized; gint n_resized; }; @@ -317,7 +327,10 @@ gboolean RrPixmapToRGBA(const RrInstance *inst, Pixmap pmap, Pixmap mask, gint *w, gint *h, RrPixel32 **data); -RrImageCache* RrImageCacheNew(); +/*! Create a new image cache for RrImages. + @param max_resized_saved The number of resized copies of an image to save +*/ +RrImageCache* RrImageCacheNew(gint max_resized_saved); void RrImageCacheRef(RrImageCache *self); void RrImageCacheUnref(RrImageCache *self);