Related to #36115: show in render info text when 3D view layer or camera overrides

scene settings when pressing F12 over a 3D view.
This commit is contained in:
Brecht Van Lommel 2013-07-12 16:33:30 +00:00
parent 24c77647d2
commit 8d9229538c

@ -266,6 +266,7 @@ typedef struct RenderJob {
SceneRenderLayer *srl;
struct Object *camera_override;
int lay;
bool v3d_override;
short anim, write_still;
Image *image;
ImageUser iuser;
@ -283,7 +284,7 @@ static void render_freejob(void *rjv)
}
/* str is IMA_MAX_RENDER_TEXT in size */
static void make_renderinfo_string(RenderStats *rs, Scene *scene, char *str)
static void make_renderinfo_string(RenderStats *rs, Scene *scene, bool v3d_override, char *str)
{
char info_time_str[32]; // used to be extern to header_info.c
uintptr_t mem_in_use, mmap_in_use, peak_memory;
@ -300,7 +301,9 @@ static void make_renderinfo_string(RenderStats *rs, Scene *scene, char *str)
/* local view */
if (rs->localview)
spos += sprintf(spos, "%s | ", IFACE_("Local View"));
spos += sprintf(spos, "%s | ", IFACE_("3D Local View"));
else if (v3d_override)
spos += sprintf(spos, "%s | ", IFACE_("3D View"));
/* frame number */
spos += sprintf(spos, IFACE_("Frame:%d "), (scene->r.cfra));
@ -376,7 +379,7 @@ static void image_renderinfo_cb(void *rjv, RenderStats *rs)
if (rr->text == NULL)
rr->text = MEM_callocN(IMA_MAX_RENDER_TEXT, "rendertext");
make_renderinfo_string(rs, rj->scene, rr->text);
make_renderinfo_string(rs, rj->scene, rj->v3d_override, rr->text);
}
RE_ReleaseResult(rj->re);
@ -643,7 +646,12 @@ static int screen_render_invoke(bContext *C, wmOperator *op, const wmEvent *even
rj->reports = op->reports;
if (v3d) {
rj->lay = v3d->lay;
if (rj->lay != v3d->lay) {
rj->lay = v3d->lay;
rj->v3d_override = true;
}
else if (camera_override != scene->camera)
rj->v3d_override = true;
if (v3d->localvd)
rj->lay |= v3d->localvd->lay;
@ -826,7 +834,7 @@ static void render_view3d_renderinfo_cb(void *rjp, RenderStats *rs)
if (rp->rv3d->render_engine == NULL)
*rp->stop = 1;
else if (rp->engine->text) {
make_renderinfo_string(rs, rp->scene, rp->engine->text);
make_renderinfo_string(rs, rp->scene, false, rp->engine->text);
/* make jobs timer to send notifier */
*(rp->do_update) = TRUE;