]> Dogcows Code - chaz/openbox/blobdiff - obrender/imagecache.h
Set up work for making a 3.5 prerelease.
[chaz/openbox] / obrender / imagecache.h
diff --git a/obrender/imagecache.h b/obrender/imagecache.h
new file mode 100644 (file)
index 0000000..4ad2dea
--- /dev/null
@@ -0,0 +1,51 @@
+/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
+
+   imagecache.h for the Openbox window manager
+   Copyright (c) 2008        Dana Jansens
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   See the COPYING file for a copy of the GNU General Public License.
+*/
+
+#ifndef __imagecache_h
+#define __imagecache_h
+
+#include <glib.h>
+
+struct _RrImagePic;
+
+guint RrImagePicHash(const struct _RrImagePic *p);
+
+/*! Create a new image cache.  An image cache is basically a hash table to look
+  up RrImages.  Each RrImage in the cache may contain one or more Pictures,
+  that is one or more actual copies of image data at various sizes.  For eg,
+  for a window, all of its various icons are loaded into the same RrImage.
+  When an RrImage is drawn and a picture inside it needs to be resized, that
+  is also saved within the RrImage.
+
+  For each picture that an RrImage has, the picture is hashed and that is used
+  as a key to find the RrImage.  So, given any picture in any RrImage in the
+  cache, if you hash it, you will find the RrImage.
+*/
+struct _RrImageCache {
+    gint ref;
+    /*! When an original picture is resized for an RrImage, the resized picture
+      is saved in the RrImage.  This specifies how many pictures should be
+      saved at a time.  When this is exceeded, the least recently used
+      "resized" picture is deleted.
+    */
+    gint max_resized_saved;
+
+    GHashTable *table;
+};
+
+#endif
This page took 0.021553 seconds and 4 git commands to generate.