Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2006-07-02 22:26:20 +0400
committerTon Roosendaal <ton@blender.org>2006-07-02 22:26:20 +0400
commitbb9cafc257b143139a5435944e7738fb528db493 (patch)
treecc08121953e5effdbb84763c747b8d8213d43235 /source
parent6adf0e654310a15601b550155ba3bcb85e637b33 (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.h2
-rw-r--r--source/blender/render/intern/source/imagetexture.c3
-rw-r--r--source/blender/src/previewrender.c3
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 */