add loader flush call and fix gif loader to be able to load when theres no

progress set :)


SVN revision: 1855
This commit is contained in:
Carsten Haitzler 2000-01-05 10:26:39 +00:00
parent 03b120d9ff
commit 79d2919f9f
4 changed files with 26 additions and 10 deletions

View File

@ -43,13 +43,13 @@ load(ImlibImage *im, progress_func *progress, char progress_granularity, char im
/* if immediate_load is 1, then dont delay image laoding as below, or */
/* already data in this image - dont load it again */
if (im->data)
return 0;
return 0;
fd = open(im->file, O_RDONLY);
if (fd < 0)
return 0;
return 0;
gif = DGifOpenFileHandle(fd);
if (!gif)
return 0;
return 0;
do {
if (DGifGetRecordType(gif, &rec) == GIF_ERROR) {
PrintGifError();
@ -118,13 +118,13 @@ load(ImlibImage *im, progress_func *progress, char progress_granularity, char im
/* set the format string member to the lower-case full extension */
/* name for the format - so example names would be: */
/* "png", "jpeg", "tiff", "ppm", "pgm", "pbm", "gif", "xpm" ... */
if (!im->loader)
im->format = strdup("gif");
im->w = w;
im->h = h;
if (!im->format)
im->format = strdup("gif");
if (im->loader || immediate_load || progress) {
bg = gif->SBackGroundColor;
cmap = (gif->Image.ColorMap ? gif->Image.ColorMap : gif->SColorMap);
im->w = w;
im->h = h;
im->data = (DATA32 *) malloc(sizeof(DATA32) * w * h);
if (!im->data) {
DGifCloseFile(gif);

View File

@ -98,6 +98,7 @@ int imlib_get_cache_size(void);
void imlib_set_cache_size(int bytes);
int imlib_get_color_usage(void);
void imlib_set_color_usage(int max);
void imlib_flush_loaders(void);
int imlib_get_visual_depth(Display *display, Visual *visual);
Visual *imlib_get_best_visual(Display *display, int screen, int *depth_return);

View File

@ -208,6 +208,13 @@ imlib_set_color_usage(int max)
_max_colors = max;
}
void
imlib_flush_loaders(void)
{
__imlib_RemoveAllLoaders();
LTDL_Exit();
}
int
imlib_get_visual_depth(Display *display, Visual *visual)
{

View File

@ -490,13 +490,14 @@ __imlib_CleanupImagePixmapCache(void)
#define LOADERS_UNINITIALISED -4444
static int errors = LOADERS_UNINITIALISED;
static void
LTDL_Init(void)
{
static int errors = LOADERS_UNINITIALISED;
/* Do this only once! */
if ((errors = LOADERS_UNINITIALISED))
if ((errors == LOADERS_UNINITIALISED))
{
errors = lt_dlinit();
@ -514,6 +515,13 @@ LTDL_Init(void)
}
}
void
LTDL_Exit(void)
{
errors = LOADERS_UNINITIALISED;
lt_dlexit();
}
/* try dlopen()ing the file if we succeed finish filling out the malloced */
/* loader struct and return it */
ImlibLoader *