diff options
author | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2013-01-27 03:49:13 +0400 |
---|---|---|
committer | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2013-01-27 03:49:13 +0400 |
commit | 556912792ad3c37c294256a558c96b39f264e7b5 (patch) | |
tree | 9b6ee8cf1ad92ee89c04f27a89be11599c5b40c0 /source/blender/editors/render | |
parent | 9251d628db0abe599d927d79170025d8545c8ace (diff) | |
parent | c84383301c5a2582e95259a7e4468a23a3566401 (diff) |
Merged changes in the trunk up to revision 54110.
Conflicts resolved:
source/blender/blenfont/SConscript
source/blender/blenkernel/intern/subsurf_ccg.c
source/blender/makesdna/intern/makesdna.c
source/blender/makesrna/intern/rna_scene.c
Diffstat (limited to 'source/blender/editors/render')
-rw-r--r-- | source/blender/editors/render/render_internal.c | 12 | ||||
-rw-r--r-- | source/blender/editors/render/render_update.c | 9 |
2 files changed, 19 insertions, 2 deletions
diff --git a/source/blender/editors/render/render_internal.c b/source/blender/editors/render/render_internal.c index f8154f4abda..deb6eaf2c22 100644 --- a/source/blender/editors/render/render_internal.c +++ b/source/blender/editors/render/render_internal.c @@ -73,6 +73,7 @@ #include "render_intern.h" /* Render Callbacks */ +static int render_break(void *rjv); /* called inside thread! */ void image_buffer_rect_update(Scene *scene, RenderResult *rr, ImBuf *ibuf, volatile rcti *renrect) @@ -210,7 +211,7 @@ static int screen_render_exec(bContext *C, wmOperator *op) lay = (v3d) ? v3d->lay : scene->lay; G.is_break = FALSE; - RE_test_break_cb(re, NULL, (int (*)(void *))blender_test_break); + RE_test_break_cb(re, NULL, render_break); ima = BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result"); BKE_image_signal(ima, NULL, IMA_SIGNAL_FREE); @@ -443,6 +444,15 @@ static int render_breakjob(void *rjv) return 0; } +/* for exec() when there is no render job + * note: this wont check for the escape key being pressed, but doing so isnt threadsafe */ +static int render_break(void *UNUSED(rjv)) +{ + if (G.is_break) + return 1; + return 0; +} + /* runs in thread, no cursor setting here works. careful with notifiers too (malloc conflicts) */ /* maybe need a way to get job send notifer? */ static void render_drawlock(void *UNUSED(rjv), int lock) diff --git a/source/blender/editors/render/render_update.c b/source/blender/editors/render/render_update.c index 38535eca918..16d7923baff 100644 --- a/source/blender/editors/render/render_update.c +++ b/source/blender/editors/render/render_update.c @@ -394,7 +394,14 @@ static void texture_changed(Main *bmain, Tex *tex) if (dm && totmaterial && material) { for (a = 0; a < *totmaterial; a++) { - if (material_uses_texture((*material)[a], tex)) { + Material *ma; + + if (ob->matbits && ob->matbits[a]) + ma = ob->mat[a]; + else + ma = (*material)[a]; + + if (ma && material_uses_texture(ma, tex)) { GPU_drawobject_free(dm); break; } |