diff options
Diffstat (limited to 'source/blender/editors/render/render_internal.c')
-rw-r--r-- | source/blender/editors/render/render_internal.c | 49 |
1 files changed, 31 insertions, 18 deletions
diff --git a/source/blender/editors/render/render_internal.c b/source/blender/editors/render/render_internal.c index f8154f4abda..1268d577f44 100644 --- a/source/blender/editors/render/render_internal.c +++ b/source/blender/editors/render/render_internal.c @@ -39,6 +39,8 @@ #include "BLI_rand.h" #include "BLI_utildefines.h" +#include "BLF_translation.h" + #include "DNA_scene_types.h" #include "BKE_blender.h" @@ -73,6 +75,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 +213,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); @@ -280,38 +283,39 @@ static void make_renderinfo_string(RenderStats *rs, Scene *scene, char *str) megs_peak_memory = (peak_memory) / (1024.0 * 1024.0); if (scene->lay & 0xFF000000) - spos += sprintf(spos, "Localview | "); + spos += sprintf(spos, IFACE_("Localview | ")); else if (scene->r.scemode & R_SINGLE_LAYER) - spos += sprintf(spos, "Single Layer | "); + spos += sprintf(spos, IFACE_("Single Layer | ")); - spos += sprintf(spos, "Frame:%d ", (scene->r.cfra)); + spos += sprintf(spos, IFACE_("Frame:%d "), (scene->r.cfra)); if (rs->statstr) { spos += sprintf(spos, "| %s ", rs->statstr); } else { - if (rs->totvert) spos += sprintf(spos, "Ve:%d ", rs->totvert); - if (rs->totface) spos += sprintf(spos, "Fa:%d ", rs->totface); - if (rs->tothalo) spos += sprintf(spos, "Ha:%d ", rs->tothalo); - if (rs->totstrand) spos += sprintf(spos, "St:%d ", rs->totstrand); - if (rs->totlamp) spos += sprintf(spos, "La:%d ", rs->totlamp); + if (rs->totvert) spos += sprintf(spos, IFACE_("Ve:%d "), rs->totvert); + if (rs->totface) spos += sprintf(spos, IFACE_("Fa:%d "), rs->totface); + if (rs->tothalo) spos += sprintf(spos, IFACE_("Ha:%d "), rs->tothalo); + if (rs->totstrand) spos += sprintf(spos, IFACE_("St:%d "), rs->totstrand); + if (rs->totlamp) spos += sprintf(spos, IFACE_("La:%d "), rs->totlamp); if (rs->mem_peak == 0.0f) - spos += sprintf(spos, "Mem:%.2fM (%.2fM, peak %.2fM) ", megs_used_memory, mmap_used_memory, megs_peak_memory); + spos += sprintf(spos, IFACE_("Mem:%.2fM (%.2fM, Peak %.2fM) "), + megs_used_memory, mmap_used_memory, megs_peak_memory); else - spos += sprintf(spos, "Mem:%.2fM, Peak: %.2fM ", rs->mem_used, rs->mem_peak); + spos += sprintf(spos, IFACE_("Mem:%.2fM, Peak: %.2fM "), rs->mem_used, rs->mem_peak); if (rs->curfield) - spos += sprintf(spos, "Field %d ", rs->curfield); + spos += sprintf(spos, IFACE_("Field %d "), rs->curfield); if (rs->curblur) - spos += sprintf(spos, "Blur %d ", rs->curblur); + spos += sprintf(spos, IFACE_("Blur %d "), rs->curblur); } BLI_timestr(rs->lastframetime, info_time_str); - spos += sprintf(spos, "Time:%s ", info_time_str); + spos += sprintf(spos, IFACE_("Time:%s "), info_time_str); if (rs->curfsa) - spos += sprintf(spos, "| Full Sample %d ", rs->curfsa); + spos += sprintf(spos, IFACE_("| Full Sample %d "), rs->curfsa); if (rs->infostr && rs->infostr[0]) spos += sprintf(spos, "| %s ", rs->infostr); @@ -443,6 +447,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) @@ -452,7 +465,7 @@ static void render_drawlock(void *UNUSED(rjv), int lock) } /* catch esc */ -static int screen_render_modal(bContext *C, wmOperator *op, wmEvent *event) +static int screen_render_modal(bContext *C, wmOperator *op, const wmEvent *event) { Scene *scene = (Scene *) op->customdata; @@ -471,7 +484,7 @@ static int screen_render_modal(bContext *C, wmOperator *op, wmEvent *event) } /* using context, starts job */ -static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event) +static int screen_render_invoke(bContext *C, wmOperator *op, const wmEvent *event) { /* new render clears all callbacks */ Main *mainp; @@ -529,7 +542,7 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event) BKE_sequencer_cache_cleanup(); /* get editmode results */ - ED_object_exit_editmode(C, 0); /* 0 = does not exit editmode */ + ED_object_editmode_load(CTX_data_edit_object(C)); // store spare // get view3d layer, local layer, make this nice api call to render |