Render API: Add RenderEngine.error_set() function
This function sets an error message which would be displayed after rendering is over and info space lost the link to the engine.
This commit is contained in:
@@ -340,7 +340,11 @@ static void render_freejob(void *rjv)
|
||||
}
|
||||
|
||||
/* str is IMA_MAX_RENDER_TEXT in size */
|
||||
static void make_renderinfo_string(RenderStats *rs, Scene *scene, bool v3d_override, char *str)
|
||||
static void make_renderinfo_string(const RenderStats *rs,
|
||||
const Scene *scene,
|
||||
const bool v3d_override,
|
||||
const char *error,
|
||||
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;
|
||||
@@ -413,8 +417,12 @@ static void make_renderinfo_string(RenderStats *rs, Scene *scene, bool v3d_overr
|
||||
spos += sprintf(spos, IFACE_("| Full Sample %d "), rs->curfsa);
|
||||
|
||||
/* extra info */
|
||||
if (rs->infostr && rs->infostr[0])
|
||||
if (rs->infostr && rs->infostr[0]) {
|
||||
spos += sprintf(spos, "| %s ", rs->infostr);
|
||||
}
|
||||
else if (error && error[0]) {
|
||||
spos += sprintf(spos, "| %s ", error);
|
||||
}
|
||||
|
||||
/* very weak... but 512 characters is quite safe */
|
||||
if (spos >= str + IMA_MAX_RENDER_TEXT)
|
||||
@@ -435,7 +443,8 @@ 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, rj->v3d_override, rr->text);
|
||||
make_renderinfo_string(rs, rj->scene, rj->v3d_override,
|
||||
rr->error, rr->text);
|
||||
}
|
||||
|
||||
RE_ReleaseResult(rj->re);
|
||||
@@ -1118,7 +1127,7 @@ static void render_view3d_renderinfo_cb(void *rjp, RenderStats *rs)
|
||||
*rp->stop = 1;
|
||||
}
|
||||
else {
|
||||
make_renderinfo_string(rs, rp->scene, false, rp->engine->text);
|
||||
make_renderinfo_string(rs, rp->scene, false, NULL, rp->engine->text);
|
||||
|
||||
/* make jobs timer to send notifier */
|
||||
*(rp->do_update) = true;
|
||||
|
||||
Reference in New Issue
Block a user