00001
#ifndef DEF_IMGCACHE_H
00002
#define DEF_IMGCACHE_H 1
00003
00009 class ImageCache {
00010
public:
00011
ImageCache();
00012 ~
ImageCache();
00016
00017
Image&
loadImage(std::vector<SDL_Rect> image_desc, string imagename,
double scale_factor=1);
00018
Image&
loadImage(string imagename,
double scale_factor=1, string image_desc_file=
"");
00019
Image&
loadImage(Uint16 num_frames, string imagename,
double scale_factor=1);
00020
Image&
loadImage(Uint16 width, Uint16 shift, string imagename,
double scale_factor=1);
00021
Image&
loadImage(SDL_Rect base_rect, string imagename,
double scale_factor=1);
00023
private:
00024 std::map<pair<string,double>,
Image> imgcache;
00025 string not_found;
00026
private:
00027 SDL_Rect& scaleRectangle(SDL_Rect& base_rect,
double scale_factor);
00028 std::vector<SDL_Rect>& scaleDescription(std::vector<SDL_Rect>& description,
double scale_factor);
00029
Image& scaleImage(
Image& original_image,
double scale_factor);
00030 };
00031
00032
#endif