[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41306] trunk/blender/source/blender: pass image description to image loading functions for more useful error than 'Unknown fileformat'.
Campbell Barton
ideasman42 at gmail.com
Thu Oct 27 06:24:36 CEST 2011
Revision: 41306
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41306
Author: campbellbarton
Date: 2011-10-27 04:24:34 +0000 (Thu, 27 Oct 2011)
Log Message:
-----------
pass image description to image loading functions for more useful error than 'Unknown fileformat'.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/image.c
trunk/blender/source/blender/blenpluginapi/intern/pluginapi.c
trunk/blender/source/blender/editors/interface/interface_icons.c
trunk/blender/source/blender/editors/space_file/filelist.c
trunk/blender/source/blender/imbuf/IMB_imbuf.h
trunk/blender/source/blender/imbuf/intern/allocimbuf.c
trunk/blender/source/blender/imbuf/intern/anim_movie.c
trunk/blender/source/blender/imbuf/intern/readimage.c
trunk/blender/source/blender/windowmanager/intern/wm_operators.c
Modified: trunk/blender/source/blender/blenkernel/intern/image.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/image.c 2011-10-27 03:40:12 UTC (rev 41305)
+++ trunk/blender/source/blender/blenkernel/intern/image.c 2011-10-27 04:24:34 UTC (rev 41306)
@@ -1948,7 +1948,7 @@
flag = IB_rect|IB_multilayer;
if(ima->flag & IMA_DO_PREMUL) flag |= IB_premul;
- ibuf = IMB_ibImageFromMemory((unsigned char*)ima->packedfile->data, ima->packedfile->size, flag);
+ ibuf = IMB_ibImageFromMemory((unsigned char*)ima->packedfile->data, ima->packedfile->size, flag, "<packed data>");
}
else {
flag= IB_rect|IB_multilayer|IB_metadata;
Modified: trunk/blender/source/blender/blenpluginapi/intern/pluginapi.c
===================================================================
--- trunk/blender/source/blender/blenpluginapi/intern/pluginapi.c 2011-10-27 03:40:12 UTC (rev 41305)
+++ trunk/blender/source/blender/blenpluginapi/intern/pluginapi.c 2011-10-27 04:24:34 UTC (rev 41306)
@@ -130,7 +130,7 @@
LIBEXPORT struct ImBuf *loadifffile(int a,
int b)
{
- return IMB_loadifffile(a, b);
+ return IMB_loadifffile(a, b, "loadifffile");
}
LIBEXPORT struct ImBuf *loadiffname(char *n,
Modified: trunk/blender/source/blender/editors/interface/interface_icons.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_icons.c 2011-10-27 03:40:12 UTC (rev 41305)
+++ trunk/blender/source/blender/editors/interface/interface_icons.c 2011-10-27 04:24:34 UTC (rev 41306)
@@ -462,10 +462,10 @@
static void init_brush_icons(void)
{
-#define INIT_BRUSH_ICON(icon_id, name) \
- bbuf = IMB_ibImageFromMemory((unsigned char*)datatoc_ ##name## _png, \
- datatoc_ ##name## _png_size, IB_rect); \
- def_internal_icon(bbuf, icon_id, 0, 0, w, ICON_TYPE_BUFFER); \
+#define INIT_BRUSH_ICON(icon_id, name) \
+ bbuf = IMB_ibImageFromMemory((unsigned char*)datatoc_ ##name## _png, \
+ datatoc_ ##name## _png_size, IB_rect, "<brush icon>"); \
+ def_internal_icon(bbuf, icon_id, 0, 0, w, ICON_TYPE_BUFFER); \
IMB_freeImBuf(bbuf);
// end INIT_BRUSH_ICON
@@ -527,7 +527,7 @@
}
}
if(bbuf==NULL)
- bbuf = IMB_ibImageFromMemory((unsigned char*)datatoc_blenderbuttons, datatoc_blenderbuttons_size, IB_rect);
+ bbuf = IMB_ibImageFromMemory((unsigned char*)datatoc_blenderbuttons, datatoc_blenderbuttons_size, IB_rect, "<blender icons>");
if(bbuf) {
/* free existing texture if any */
Modified: trunk/blender/source/blender/editors/space_file/filelist.c
===================================================================
--- trunk/blender/source/blender/editors/space_file/filelist.c 2011-10-27 03:40:12 UTC (rev 41305)
+++ trunk/blender/source/blender/editors/space_file/filelist.c 2011-10-27 04:24:34 UTC (rev 41306)
@@ -374,7 +374,7 @@
#ifdef WITH_HEADLESS
bbuf = NULL;
#else
- bbuf = IMB_ibImageFromMemory((unsigned char*)datatoc_prvicons, datatoc_prvicons_size, IB_rect);
+ bbuf = IMB_ibImageFromMemory((unsigned char*)datatoc_prvicons, datatoc_prvicons_size, IB_rect, "<splash>");
#endif
if (bbuf) {
for (y=0; y<SPECIAL_IMG_ROWS; y++) {
Modified: trunk/blender/source/blender/imbuf/IMB_imbuf.h
===================================================================
--- trunk/blender/source/blender/imbuf/IMB_imbuf.h 2011-10-27 03:40:12 UTC (rev 41305)
+++ trunk/blender/source/blender/imbuf/IMB_imbuf.h 2011-10-27 04:24:34 UTC (rev 41306)
@@ -94,19 +94,20 @@
*
* @attention Defined in readimage.c
*/
-struct ImBuf *IMB_ibImageFromMemory(unsigned char *mem, size_t size, int flags);
+struct ImBuf *IMB_ibImageFromMemory(unsigned char *mem, size_t size,
+ int flags, const char *descr);
/**
*
* @attention Defined in readimage.c
*/
-struct ImBuf *IMB_testiffname(char *naam,int flags);
+struct ImBuf *IMB_testiffname(const char *filepath, int flags);
/**
*
* @attention Defined in readimage.c
*/
-struct ImBuf *IMB_loadiffname(const char *naam, int flags);
+struct ImBuf *IMB_loadiffname(const char *filepath, int flags);
/**
*
@@ -119,7 +120,7 @@
* @attention Defined in allocimbuf.c
*/
struct ImBuf *IMB_allocImBuf(unsigned int x, unsigned int y,
- unsigned char d, unsigned int flags);
+ unsigned char d, unsigned int flags);
/**
*
@@ -237,7 +238,7 @@
/**
*
- * @attention Defined in anim.c
+ * @attention Defined in anim_movie.c
*/
struct anim *IMB_open_anim(const char *name, int ib_flags, int streamindex);
void IMB_close_anim(struct anim *anim);
@@ -245,16 +246,16 @@
/**
*
- * @attention Defined in anim.c
+ * @attention Defined in anim_movie.c
*/
-int ismovie(const char *name);
+int ismovie(const char *filepath);
void IMB_anim_set_preseek(struct anim *anim, int preseek);
int IMB_anim_get_preseek(struct anim *anim);
/**
*
- * @attention Defined in anim.c
+ * @attention Defined in anim_movie.c
*/
struct ImBuf *IMB_anim_absolute(
@@ -264,14 +265,14 @@
/**
*
- * @attention Defined in anim.c
+ * @attention Defined in anim_movie.c
* fetches a define previewframe, usually half way into the movie
*/
struct ImBuf *IMB_anim_previewframe(struct anim *anim);
/**
*
- * @attention Defined in anim.c
+ * @attention Defined in anim_movie.c
*/
void IMB_free_anim(struct anim *anim);
@@ -419,7 +420,7 @@
* @deprecated Only here for backwards compatibility of the
* @deprecated plugin system.
*/
-struct ImBuf *IMB_loadifffile(int file, int flags);
+struct ImBuf *IMB_loadifffile(int file, int flags, const char *descr);
/**
*
Modified: trunk/blender/source/blender/imbuf/intern/allocimbuf.c
===================================================================
--- trunk/blender/source/blender/imbuf/intern/allocimbuf.c 2011-10-27 03:40:12 UTC (rev 41305)
+++ trunk/blender/source/blender/imbuf/intern/allocimbuf.c 2011-10-27 04:24:34 UTC (rev 41306)
@@ -446,6 +446,7 @@
return(ibuf2);
}
+#if 0 /* remove? - campbell */
/* support for cache limiting */
static void imbuf_cache_destructor(void *data)
@@ -461,6 +462,7 @@
ibuf->c_handle = NULL;
}
+
static MEM_CacheLimiterC **get_imbuf_cache_limiter(void)
{
static MEM_CacheLimiterC *c = NULL;
@@ -470,3 +472,4 @@
return &c;
}
+#endif
Modified: trunk/blender/source/blender/imbuf/intern/anim_movie.c
===================================================================
--- trunk/blender/source/blender/imbuf/intern/anim_movie.c 2011-10-27 03:40:12 UTC (rev 41305)
+++ trunk/blender/source/blender/imbuf/intern/anim_movie.c 2011-10-27 04:24:34 UTC (rev 41306)
@@ -1,7 +1,4 @@
/*
- * anim.c
- *
- *
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -113,7 +110,7 @@
#endif
#endif
-int ismovie(const char *UNUSED(name)) {
+int ismovie(const char *UNUSED(filepath)) {
return 0;
}
@@ -372,7 +369,7 @@
if (anim->pgf) {
lpbi = AVIStreamGetFrame(anim->pgf, position + AVIStreamStart(anim->pavi[anim->firstvideo]));
if (lpbi) {
- ibuf = IMB_ibImageFromMemory((unsigned char *) lpbi, 100, IB_rect);
+ ibuf = IMB_ibImageFromMemory((unsigned char *) lpbi, 100, IB_rect, "<avi_fetchibuf>");
//Oh brother...
}
}
Modified: trunk/blender/source/blender/imbuf/intern/readimage.c
===================================================================
--- trunk/blender/source/blender/imbuf/intern/readimage.c 2011-10-27 03:40:12 UTC (rev 41305)
+++ trunk/blender/source/blender/imbuf/intern/readimage.c 2011-10-27 04:24:34 UTC (rev 41306)
@@ -43,19 +43,20 @@
#endif
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "imbuf.h"
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
#include "IMB_filetype.h"
-ImBuf *IMB_ibImageFromMemory(unsigned char *mem, size_t size, int flags)
+ImBuf *IMB_ibImageFromMemory(unsigned char *mem, size_t size, int flags, const char *descr)
{
ImBuf *ibuf;
ImFileType *type;
if(mem == NULL) {
- printf("Error in ibImageFromMemory: NULL pointer\n");
+ fprintf(stderr, "%s: NULL pointer\n", __func__);
return NULL;
}
@@ -73,12 +74,12 @@
}
}
- fprintf(stderr, "Unknown fileformat\n");
-
+ fprintf(stderr, "%s: unknown fileformat (%s)\n", __func__, descr);
+
return NULL;
}
-ImBuf *IMB_loadifffile(int file, int flags)
+ImBuf *IMB_loadifffile(int file, int flags, const char *descr)
{
ImBuf *ibuf;
unsigned char *mem;
@@ -90,14 +91,14 @@
mem= mmap(NULL, size, PROT_READ, MAP_SHARED, file, 0);
if(mem==(unsigned char*)-1) {
- fprintf(stderr, "Couldn't get mapping\n");
+ fprintf(stderr, "%s: couldn't get mapping %s\n", __func__, descr);
return NULL;
}
- ibuf= IMB_ibImageFromMemory(mem, size, flags);
+ ibuf= IMB_ibImageFromMemory(mem, size, flags, descr);
if(munmap(mem, size))
- fprintf(stderr, "Couldn't unmap file.\n");
+ fprintf(stderr, "%s: couldn't unmap file %s\n", __func__, descr);
return ibuf;
}
@@ -117,24 +118,24 @@
BLI_strncpy(filename, name, IB_FILENAME_SIZE);
}
-ImBuf *IMB_loadiffname(const char *name, int flags)
+ImBuf *IMB_loadiffname(const char *filepath, int flags)
{
ImBuf *ibuf;
int file, a;
- char filename[IB_FILENAME_SIZE];
+ char filepath_tx[IB_FILENAME_SIZE];
- imb_cache_filename(filename, name, flags);
+ imb_cache_filename(filepath_tx, filepath, flags);
- file = open(filename, O_BINARY|O_RDONLY);
+ file = open(filepath_tx, O_BINARY|O_RDONLY);
if(file < 0) return NULL;
- ibuf= IMB_loadifffile(file, flags);
+ ibuf= IMB_loadifffile(file, flags, filepath_tx);
if(ibuf) {
- BLI_strncpy(ibuf->name, name, sizeof(ibuf->name));
- BLI_strncpy(ibuf->cachename, filename, sizeof(ibuf->cachename));
+ BLI_strncpy(ibuf->name, filepath, sizeof(ibuf->name));
+ BLI_strncpy(ibuf->cachename, filepath_tx, sizeof(ibuf->cachename));
for(a=1; a<ibuf->miptot; a++)
- BLI_strncpy(ibuf->mipmap[a-1]->cachename, filename, sizeof(ibuf->cachename));
+ BLI_strncpy(ibuf->mipmap[a-1]->cachename, filepath_tx, sizeof(ibuf->cachename));
if(flags & IB_fields) IMB_de_interlace(ibuf);
}
@@ -143,21 +144,22 @@
return ibuf;
}
-ImBuf *IMB_testiffname(char *name, int flags)
+ImBuf *IMB_testiffname(const char *filepath, int flags)
{
ImBuf *ibuf;
int file;
- char filename[IB_FILENAME_SIZE];
+ char filepath_tx[IB_FILENAME_SIZE];
- imb_cache_filename(filename, name, flags);
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list