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
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2009-06-28 13:35:37 +0400
committerTon Roosendaal <ton@blender.org>2009-06-28 13:35:37 +0400
commit6998a0f47b673591f8561cda35d50e93979de32c (patch)
treef6e0540fe68cd1fd863d7d0227a703567f1bcce1 /source/blender/editors
parent2fac3f355007c2cb620649bc0e25995932bd78f8 (diff)
2.5
Bugfixes: - Preview Icon for render result crashed, there was still need for a scene pointer to be passed on. - Added quick fix for preventing shaded drawmode to call render while rendering is in progress. It crashes badly. Rendering while UI is alive is still in probation, most UI stuff will probably get blocked, with exception from inspecting buttons and using the image window.
Diffstat (limited to 'source/blender/editors')
-rw-r--r--source/blender/editors/interface/interface_icons.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/source/blender/editors/interface/interface_icons.c b/source/blender/editors/interface/interface_icons.c
index 4d8ec5996be..315b8693905 100644
--- a/source/blender/editors/interface/interface_icons.c
+++ b/source/blender/editors/interface/interface_icons.c
@@ -728,21 +728,28 @@ static void icon_create_mipmap(struct PreviewImage* prv_img, int miplevel)
}
/* create single icon from jpg, png etc. */
-static void icon_from_image(Image *img, int miplevel)
+static void icon_from_image(Scene *scene, Image *img, int miplevel)
{
+ ImBuf *ibuf= NULL;
+ ImageUser iuser;
+ PreviewImage *pi;
unsigned int pr_size;
short image_loaded = 0;
- struct ImBuf* ibuf=NULL;
- PreviewImage* pi;
/* img->ok is zero when Image cannot load */
if (img==NULL || img->ok==0)
return;
+ /* setup dummy image user */
+ memset(&iuser, 0, sizeof(ImageUser));
+ iuser.ok= iuser.framenr= 1;
+ iuser.scene= scene;
+
/* elubie: this needs to be changed: here image is always loaded if not
already there. Very expensive for large images. Need to find a way to
only get existing ibuf */
- ibuf = BKE_image_get_ibuf(img, NULL);
+
+ ibuf = BKE_image_get_ibuf(img, &iuser);
if(ibuf==NULL || ibuf->rect==NULL) {
return;
}
@@ -788,7 +795,7 @@ static void icon_set_image(Scene *scene, ID *id, PreviewImage* prv_img, int mipl
/* no drawing (see last parameter doDraw, just calculate preview image
- hopefully small enough to be fast */
if (GS(id->name) == ID_IM)
- icon_from_image((struct Image*)id, miplevel);
+ icon_from_image(scene, (struct Image*)id, miplevel);
else {
/* create the preview rect */
icon_create_mipmap(prv_img, miplevel);