Inherited by fltk::bmpImage, fltk::gifImage, fltk::jpegImage, fltk::pngImage, fltk::pnmImage, and fltk::xpmFileImage.
Public Types | |
typedef SharedImage *(* | Handler )(const char *filename, uchar *header, int headerlen) |
Public Member Functions | |
void | _draw (const Rectangle &) const |
void | clear_cache () |
void | reload (const uchar *datas=0) |
int | remove () |
Static Public Member Functions | |
static void | add_handler (Handler f) |
static SharedImage * | get (SharedImage *(*create)(), const char *name, const uchar *datas=0) |
static SharedImage * | get (const char *n) |
static const char * | get_filename (const char *) |
static void | reload (const char *name, const uchar *datas=0) |
static int | remove (const char *name) |
static void | remove_handler (Handler f) |
static void | set_cache_size (unsigned l) |
static void | set_root_directory (const char *d) |
Static Public Attributes | |
static SharedImage * | first_image |
Protected Member Functions | |
virtual bool | fetch ()=0 |
void | find_less_used () |
const char * | get_filename () const |
void | remove_from_tree (SharedImage *&p, SharedImage *image) |
Static Protected Member Functions | |
static void | check_mem_usage () |
static SharedImage * | find (SharedImage *image, const char *name) |
static void | insert (SharedImage *&p, SharedImage *image) |
Protected Attributes | |
const uchar * | datas |
SharedImage * | l1 |
SharedImage * | l2 |
const char * | name |
int | refcount |
unsigned int | used |
Static Protected Attributes | |
static int | image_used |
static unsigned | mem_usage_limit |
static const char * | shared_image_root |
typedef SharedImage*(* fltk::SharedImage::Handler)(const char *filename, uchar *header, int headerlen) |
a SharedImageHandler accepts handling a filename by analizing its extension and/or eventually its header, if it handles it it returns a non null pointer on the loaded concrete image fetch to the data/pixels unified buffer the image, return true if success. this method() does NOT draw the image, it only prepares a generic buffer and its info, this method should be used by all non-progresive-reading read() methods so that we avoid redondant code
SharedImage * SharedImage::get | ( | const char * | n | ) | [static] |
get an image of this name and dimensions , can be already loaded or not
void SharedImage::add_handler | ( | SharedImage::Handler | f | ) | [static] |
adds a new handler for hanling a concrete type of image, typically one handler per image type should be registered
Referenced by fltk::register_images().
void SharedImage::remove_handler | ( | SharedImage::Handler | f | ) | [static] |
removes a concrete handler
const char * SharedImage::get_filename | ( | ) | const [protected] |
Return the filename obtained from the concatenation of the image root directory and this image name WARNING : the returned pointer will be available only until next call to get_filename
SharedImage * SharedImage::get | ( | SharedImage *(*)() | create, | |
const char * | name, | |||
const uchar * | datas = 0 | |||
) | [static] |
Return an SharedImage, using the create function if an image with the given name doesn't already exist. Use datas, or read from the file with filename name if datas==0.
References datas, l1, l2, name, newstring(), refcount, and used.
void SharedImage::reload | ( | const uchar * | datas = 0 |
) |
Reload the image, useful if it has changed on disk, or if the datas / in memory have changed (you can also give a new pointer on datas)
References fltk::Image::refetch().
int SharedImage::remove | ( | ) |
void SharedImage::clear_cache | ( | ) |
Clear the cache for this image and all of its children in the binary tree
Calls destroy() on this and every less-recently-used SharedImage?.
References clear_cache(), and fltk::Image::destroy().
Referenced by clear_cache().
void SharedImage::set_root_directory | ( | const char * | d | ) | [static] |
Set the position where images are looked for on disk
const char * SharedImage::get_filename | ( | const char * | name | ) | [static] |
Expand a name relative to root to see what file it will read
Prepends the shared_image_root to the name. This is what get_filename() would return for a SharedImage with this name.
void SharedImage::set_cache_size | ( | unsigned | l | ) | [static] |
Set the size of the cache (0 = unlimited is the default)