diff options
author | mrwastl <mrwastl@users.sourceforge.net> | 2011-10-15 18:41:49 +0200 |
---|---|---|
committer | mrwastl <mrwastl@users.sourceforge.net> | 2011-10-15 18:41:49 +0200 |
commit | cb4534730274a32e7c4e64c7f282bd258375b1f9 (patch) | |
tree | e14bfcce71b13d802a31cdae9ed7b43cff9dc1b1 /glcdskin/cache.h | |
parent | ab3acde2326a9d8f942995325b71b3aeaf24b918 (diff) | |
download | graphlcd-base-cb4534730274a32e7c4e64c7f282bd258375b1f9.tar.gz graphlcd-base-cb4534730274a32e7c4e64c7f282bd258375b1f9.tar.bz2 |
support for scaling of images (image/graphicsmagick supported images only at the moment); skins: additional paraemter 'scale' for <image/>; added method for emptying of image cache (cImageCache::Clear())
Diffstat (limited to 'glcdskin/cache.h')
-rw-r--r-- | glcdskin/cache.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/glcdskin/cache.h b/glcdskin/cache.h index 3862b51..533f009 100644 --- a/glcdskin/cache.h +++ b/glcdskin/cache.h @@ -29,11 +29,13 @@ private: std::string path; uint64_t counter; cImage * image; + uint16_t scale_width, scale_height; public: - cImageItem(const std::string & path, cImage * image); + cImageItem(const std::string & path, cImage * image, uint16_t scalew, uint16_t scaleh); ~cImageItem(); const std::string & Path() const { return path; } + void ScalingGeometry(uint16_t & scalew, uint16_t & scaleh) { scalew = scale_width; scaleh = scale_height; } uint64_t Counter() const { return counter; } cImage * Image() { return image; } void ResetCounter() { counter = 0; } @@ -48,12 +50,19 @@ private: std::vector <cImageItem *> images; std::vector <std::string> failedpaths; - cImageItem * LoadImage(const std::string & path); + cImageItem * LoadImage(const std::string & path, uint16_t scalew, uint16_t scaleh); public: cImageCache(cSkin * Parent, int Size); ~cImageCache(); - cImage * Get(const std::string & path); + cImage * Get(const std::string & path, uint16_t & scalew, uint16_t & scaleh); + cImage * Get(const std::string & path) { + uint16_t scalew = 0; + uint16_t scaleh = 0; + return Get(path, scalew, scaleh) ; + } + + void Clear(void); }; } // end of namespace |