37 #ifndef OPENIMAGEIO_IMAGECACHE_H
38 #define OPENIMAGEIO_IMAGECACHE_H
60 class OIIO_API ImageCache {
68 static ImageCache *create (
bool shared=
true);
72 static void destroy (ImageCache * x);
75 virtual ~ImageCache () { }
79 virtual void clear () = 0;
102 virtual bool attribute (
const std::string &name, TypeDesc type,
103 const void *val) = 0;
105 virtual bool attribute (
const std::string &name,
int val) = 0;
106 virtual bool attribute (
const std::string &name,
float val) = 0;
107 virtual bool attribute (
const std::string &name,
double val) = 0;
108 virtual bool attribute (
const std::string &name,
const char *val) = 0;
109 virtual bool attribute (
const std::string &name,
110 const std::string &val) = 0;
113 virtual bool getattribute (
const std::string &name, TypeDesc type,
116 virtual bool getattribute (
const std::string &name,
int &val) = 0;
117 virtual bool getattribute (
const std::string &name,
float &val) = 0;
118 virtual bool getattribute (
const std::string &name,
double &val) = 0;
119 virtual bool getattribute (
const std::string &name,
char **val) = 0;
120 virtual bool getattribute (
const std::string &name, std::string &val) = 0;
124 virtual std::string resolve_filename (
const std::string &filename)
const=0;
130 virtual bool get_image_info (
ustring filename,
int subimage,
int miplevel,
131 ustring dataname, TypeDesc datatype,
void *data) = 0;
135 TypeDesc datatype,
void *data) {
136 return get_image_info (filename, 0, 0, dataname, datatype, data);
145 virtual bool get_imagespec (
ustring filename, ImageSpec &spec,
146 int subimage=0,
int miplevel=0,
147 bool native=
false) = 0;
160 virtual const ImageSpec *imagespec (
ustring filename,
int subimage=0,
161 int miplevel=0,
bool native=
false) = 0;
177 virtual bool get_pixels (
ustring filename,
int subimage,
int miplevel,
178 int xbegin,
int xend,
int ybegin,
int yend,
179 int zbegin,
int zend,
180 TypeDesc format,
void *result) = 0;
199 virtual bool get_pixels (
ustring filename,
200 int subimage,
int miplevel,
int xbegin,
int xend,
201 int ybegin,
int yend,
int zbegin,
int zend,
202 int chbegin,
int chend, TypeDesc format,
void *result,
203 stride_t xstride=AutoStride, stride_t ystride=AutoStride,
204 stride_t zstride=AutoStride) = 0;
217 virtual Tile * get_tile (
ustring filename,
int subimage,
int miplevel,
218 int x,
int y,
int z) = 0;
222 virtual void release_tile (Tile *tile)
const = 0;
228 virtual const void * tile_pixels (Tile *tile, TypeDesc &format)
const = 0;
234 virtual std::string geterror ()
const = 0;
238 virtual std::string getstats (
int level=1)
const = 0;
245 virtual void reset_stats () = 0;
257 virtual void invalidate (
ustring filename) = 0;
268 virtual void invalidate_all (
bool force=
false) = 0;
273 void operator delete (
void * ) { }
280 #endif // OPENIMAGEIO_IMAGECACHE_H