Cleanup: use bool for render pipeline & related API's
Also add doc-string for RenderEngine::reports.
This commit is contained in:
@@ -170,9 +170,9 @@ typedef struct PTCacheBaker {
|
||||
struct Scene *scene;
|
||||
struct ViewLayer *view_layer;
|
||||
struct Depsgraph *depsgraph;
|
||||
int bake;
|
||||
int render;
|
||||
int anim_init;
|
||||
bool bake;
|
||||
bool render;
|
||||
bool anim_init;
|
||||
int quick_step;
|
||||
struct PTCacheID pid;
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ typedef struct RenderPass {
|
||||
char view[64]; /* EXR_VIEW_MAXNAME */
|
||||
int view_id; /* quick lookup */
|
||||
|
||||
int pad;
|
||||
char _pad0[4];
|
||||
} RenderPass;
|
||||
|
||||
/**
|
||||
@@ -130,7 +130,7 @@ typedef struct RenderResult {
|
||||
int framenr;
|
||||
|
||||
/* for acquire image, to indicate if it there is a combined layer */
|
||||
int have_combined;
|
||||
bool have_combined;
|
||||
|
||||
/* render info text */
|
||||
char *text;
|
||||
@@ -356,7 +356,7 @@ void RE_RenderAnim(struct Render *re,
|
||||
void RE_RenderFreestyleStrokes(struct Render *re,
|
||||
struct Main *bmain,
|
||||
struct Scene *scene,
|
||||
int render);
|
||||
bool render);
|
||||
void RE_RenderFreestyleExternal(struct Render *re);
|
||||
#endif
|
||||
|
||||
@@ -415,7 +415,7 @@ void *RE_gpu_context_get(Render *re);
|
||||
*/
|
||||
float RE_filter_value(int type, float x);
|
||||
|
||||
int RE_seq_render_active(struct Scene *scene, struct RenderData *rd);
|
||||
bool RE_seq_render_active(struct Scene *scene, struct RenderData *rd);
|
||||
|
||||
/**
|
||||
* Used in the interface to decide whether to show layers or passes.
|
||||
|
||||
@@ -1020,30 +1020,32 @@ static void do_render_compositor_scene(Render *re, Scene *sce, int cfra)
|
||||
do_render_engine(resc);
|
||||
}
|
||||
|
||||
/* helper call to detect if this scene needs a render,
|
||||
* or if there's a any render layer to render. */
|
||||
static int compositor_needs_render(Scene *sce, int this_scene)
|
||||
/**
|
||||
* Helper call to detect if this scene needs a render,
|
||||
* or if there's a any render layer to render.
|
||||
*/
|
||||
static bool compositor_needs_render(Scene *sce, const bool this_scene)
|
||||
{
|
||||
bNodeTree *ntree = sce->nodetree;
|
||||
|
||||
if (ntree == nullptr) {
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
if (sce->use_nodes == false) {
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
if ((sce->r.scemode & R_DOCOMP) == 0) {
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
for (const bNode *node : ntree->all_nodes()) {
|
||||
if (node->type == CMP_NODE_R_LAYERS && (node->flag & NODE_MUTED) == 0) {
|
||||
if (this_scene == 0 || node->id == nullptr || node->id == &sce->id) {
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Render all scenes within a compositor node tree. */
|
||||
@@ -1102,9 +1104,9 @@ static void render_compositor_stats(void *arg, const char *str)
|
||||
static void do_render_compositor(Render *re)
|
||||
{
|
||||
bNodeTree *ntree = re->pipeline_scene_eval->nodetree;
|
||||
int update_newframe = 0;
|
||||
bool update_newframe = false;
|
||||
|
||||
if (compositor_needs_render(re->pipeline_scene_eval, 1)) {
|
||||
if (compositor_needs_render(re->pipeline_scene_eval, true)) {
|
||||
/* render the frames
|
||||
* it could be optimized to render only the needed view
|
||||
* but what if a scene has a different number of views
|
||||
@@ -1125,8 +1127,8 @@ static void do_render_compositor(Render *re)
|
||||
|
||||
BLI_rw_mutex_unlock(&re->resultmutex);
|
||||
|
||||
/* scene render process already updates animsys */
|
||||
update_newframe = 1;
|
||||
/* Scene render process already updates animsys. */
|
||||
update_newframe = true;
|
||||
}
|
||||
|
||||
/* swap render result */
|
||||
@@ -1204,21 +1206,21 @@ static void renderresult_stampinfo(Render *re)
|
||||
}
|
||||
}
|
||||
|
||||
int RE_seq_render_active(Scene *scene, RenderData *rd)
|
||||
bool RE_seq_render_active(Scene *scene, RenderData *rd)
|
||||
{
|
||||
Editing *ed = scene->ed;
|
||||
|
||||
if (!(rd->scemode & R_DOSEQ) || !ed || !ed->seqbase.first) {
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
LISTBASE_FOREACH (Sequence *, seq, &ed->seqbase) {
|
||||
if (seq->type != SEQ_TYPE_SOUND_RAM) {
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Render sequencer strips into render result. */
|
||||
@@ -1574,7 +1576,7 @@ bool RE_is_rendering_allowed(Scene *scene,
|
||||
static void update_physics_cache(Render *re,
|
||||
Scene *scene,
|
||||
ViewLayer *view_layer,
|
||||
int /*anim_init*/)
|
||||
const bool /*anim_init*/)
|
||||
{
|
||||
PTCacheBaker baker;
|
||||
|
||||
@@ -1583,9 +1585,9 @@ static void update_physics_cache(Render *re,
|
||||
baker.scene = scene;
|
||||
baker.view_layer = view_layer;
|
||||
baker.depsgraph = BKE_scene_ensure_depsgraph(re->main, scene, view_layer);
|
||||
baker.bake = 0;
|
||||
baker.render = 1;
|
||||
baker.anim_init = 1;
|
||||
baker.bake = false;
|
||||
baker.render = true;
|
||||
baker.anim_init = true;
|
||||
baker.quick_step = 1;
|
||||
|
||||
BKE_ptcache_bake(&baker);
|
||||
@@ -1608,8 +1610,8 @@ static bool render_init_from_main(Render *re,
|
||||
Scene *scene,
|
||||
ViewLayer *single_layer,
|
||||
Object *camera_override,
|
||||
int anim,
|
||||
int anim_init)
|
||||
const bool anim,
|
||||
const bool anim_init)
|
||||
{
|
||||
int winx, winy;
|
||||
rcti disprect;
|
||||
@@ -1755,7 +1757,8 @@ void RE_RenderFrame(Render *re,
|
||||
scene->r.cfra = frame;
|
||||
scene->r.subframe = subframe;
|
||||
|
||||
if (render_init_from_main(re, &scene->r, bmain, scene, single_layer, camera_override, 0, 0)) {
|
||||
if (render_init_from_main(
|
||||
re, &scene->r, bmain, scene, single_layer, camera_override, false, false)) {
|
||||
RenderData rd;
|
||||
memcpy(&rd, &scene->r, sizeof(rd));
|
||||
MEM_reset_peak_memory();
|
||||
@@ -1825,10 +1828,10 @@ static bool use_eevee_for_freestyle_render(Render *re)
|
||||
return !(type->flag & RE_USE_CUSTOM_FREESTYLE);
|
||||
}
|
||||
|
||||
void RE_RenderFreestyleStrokes(Render *re, Main *bmain, Scene *scene, int render)
|
||||
void RE_RenderFreestyleStrokes(Render *re, Main *bmain, Scene *scene, const bool render)
|
||||
{
|
||||
re->result_ok = false;
|
||||
if (render_init_from_main(re, &scene->r, bmain, scene, nullptr, nullptr, 0, 0)) {
|
||||
if (render_init_from_main(re, &scene->r, bmain, scene, nullptr, nullptr, false, false)) {
|
||||
if (render) {
|
||||
char scene_engine[32];
|
||||
BLI_strncpy(scene_engine, re->r.engine, sizeof(scene_engine));
|
||||
@@ -2095,7 +2098,7 @@ void RE_RenderAnim(Render *re,
|
||||
(rd.im_format.views_format == R_IMF_VIEWS_INDIVIDUAL));
|
||||
|
||||
/* do not fully call for each frame, it initializes & pops output window */
|
||||
if (!render_init_from_main(re, &rd, bmain, scene, single_layer, camera_override, 0, 1)) {
|
||||
if (!render_init_from_main(re, &rd, bmain, scene, single_layer, camera_override, false, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2182,7 +2185,7 @@ void RE_RenderAnim(Render *re,
|
||||
render_update_depsgraph(re);
|
||||
|
||||
/* Only border now, TODO(ton): camera lens. */
|
||||
render_init_from_main(re, &rd, bmain, scene, single_layer, camera_override, 1, 0);
|
||||
render_init_from_main(re, &rd, bmain, scene, single_layer, camera_override, true, false);
|
||||
|
||||
if (nfra != scene->r.cfra) {
|
||||
/* Skip this frame, but could update for physics and particles system. */
|
||||
|
||||
@@ -113,6 +113,10 @@ struct Render {
|
||||
|
||||
RenderStats i;
|
||||
|
||||
/**
|
||||
* Optional report list which may be null (borrowed memory).
|
||||
* Callers to rendering functions are responsible for setting can clearing, see: #RE_SetReports.
|
||||
*/
|
||||
struct ReportList *reports;
|
||||
|
||||
void **movie_ctx_arr;
|
||||
|
||||
Reference in New Issue
Block a user