]> Dogcows Code - chaz/openbox/blobdiff - render/render.h
Merge branch 'backport' into work
[chaz/openbox] / render / render.h
index e79727df0b751499695844c7292b1ade2d05228f..706843e33d3aaca4730651619fb2e7cb9547ef35 100644 (file)
@@ -22,7 +22,7 @@
 #define __render_h
 
 #include "geom.h"
-#include "version.h"
+#include "render/version.h"
 
 #include <X11/Xlib.h> /* some platforms dont include this as needed for Xft */
 #include <pango/pangoxft.h>
@@ -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);
 
This page took 0.021959 seconds and 4 git commands to generate.