diff options
author | Ton Roosendaal <ton@blender.org> | 2006-07-02 22:26:20 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2006-07-02 22:26:20 +0400 |
commit | bb9cafc257b143139a5435944e7738fb528db493 (patch) | |
tree | cc08121953e5effdbb84763c747b8d8213d43235 /source | |
parent | 6adf0e654310a15601b550155ba3bcb85e637b33 (diff) |
Bugfix #4557
Report noted the slow icon renders for menus, which indeed is an issue,
especially when texture images need to be loaded (not to mention that
will eat up loads of memory).
Added a flag in scene to disable loading of images, makes it 50 times
faster, at least :)
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/makesdna/DNA_scene_types.h | 2 | ||||
-rw-r--r-- | source/blender/render/intern/source/imagetexture.c | 3 | ||||
-rw-r--r-- | source/blender/src/previewrender.c | 3 |
3 files changed, 7 insertions, 1 deletions
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index 777ccf06a89..33edf65454e 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -457,7 +457,7 @@ typedef struct Scene { #define R_SINGLE_LAYER 0x0200 #define R_EXR_TILE_FILE 0x0400 #define R_COMP_FREE 0x0800 - +#define R_NO_IMAGE_LOAD 0x1000 /* alphamode */ #define R_ADDSKY 0 diff --git a/source/blender/render/intern/source/imagetexture.c b/source/blender/render/intern/source/imagetexture.c index ba1dda6a775..39a5cedea98 100644 --- a/source/blender/render/intern/source/imagetexture.c +++ b/source/blender/render/intern/source/imagetexture.c @@ -102,6 +102,9 @@ int imagewrap(Tex *tex, Image *ima, float *texvec, TexResult *texres) } if(ima->ibuf==NULL) { + /* hack for icon render */ + if(R.r.scemode &R_NO_IMAGE_LOAD) + return 0; BLI_lock_thread(LOCK_MALLOC); if(ima->ibuf==NULL) ima_ibuf_is_nul(tex, ima); BLI_unlock_thread(LOCK_MALLOC); diff --git a/source/blender/src/previewrender.c b/source/blender/src/previewrender.c index 60d930e729d..b64208035ac 100644 --- a/source/blender/src/previewrender.c +++ b/source/blender/src/previewrender.c @@ -438,13 +438,16 @@ void BIF_previewrender(struct ID *id, struct RenderInfo *ri, struct ScrArea *are sce->r.scemode |= R_NODE_PREVIEW; if(sbuts->flag & SB_PRV_OSA) sce->r.mode |= R_OSA; + sce->r.scemode &= ~R_NO_IMAGE_LOAD; } else if(pr_method==PR_DO_RENDER) { RE_test_break_cb(re, qtest); sce->r.scemode |= R_NODE_PREVIEW; + sce->r.scemode &= ~R_NO_IMAGE_LOAD; } else { /* PR_ICON_RENDER */ sce->r.scemode &= ~R_NODE_PREVIEW; + sce->r.scemode |= R_NO_IMAGE_LOAD; } /* allocates render result */ |