diff options
Diffstat (limited to 'source/blender/editors/render')
-rw-r--r-- | source/blender/editors/render/render_internal.c | 144 | ||||
-rw-r--r-- | source/blender/editors/render/render_opengl.c | 54 | ||||
-rw-r--r-- | source/blender/editors/render/render_preview.c | 123 | ||||
-rw-r--r-- | source/blender/editors/render/render_shading.c | 60 | ||||
-rw-r--r-- | source/blender/editors/render/render_update.c | 24 | ||||
-rw-r--r-- | source/blender/editors/render/render_view.c | 30 |
6 files changed, 290 insertions, 145 deletions
diff --git a/source/blender/editors/render/render_internal.c b/source/blender/editors/render/render_internal.c index d9a68a060f8..8403f178284 100644 --- a/source/blender/editors/render/render_internal.c +++ b/source/blender/editors/render/render_internal.c @@ -149,19 +149,22 @@ static void image_buffer_rect_update(RenderJob *rj, if (renrect) { /* if (ymax == recty), rendering of layer is ready, * we should not draw, other things happen... */ - if (rr->renlay == NULL || renrect->ymax >= rr->recty) + if (rr->renlay == NULL || renrect->ymax >= rr->recty) { return; + } /* xmin here is first subrect x coord, xmax defines subrect width */ xmin = renrect->xmin + rr->crop; xmax = renrect->xmax - xmin + rr->crop; - if (xmax < 2) + if (xmax < 2) { return; + } ymin = renrect->ymin + rr->crop; ymax = renrect->ymax - ymin + rr->crop; - if (ymax < 2) + if (ymax < 2) { return; + } renrect->ymin = renrect->ymax; } else { @@ -172,19 +175,24 @@ static void image_buffer_rect_update(RenderJob *rj, /* xmin ymin is in tile coords. transform to ibuf */ rxmin = rr->tilerect.xmin + xmin; - if (rxmin >= ibuf->x) + if (rxmin >= ibuf->x) { return; + } rymin = rr->tilerect.ymin + ymin; - if (rymin >= ibuf->y) + if (rymin >= ibuf->y) { return; + } - if (rxmin + xmax > ibuf->x) + if (rxmin + xmax > ibuf->x) { xmax = ibuf->x - rxmin; - if (rymin + ymax > ibuf->y) + } + if (rymin + ymax > ibuf->y) { ymax = ibuf->y - rymin; + } - if (xmax < 1 || ymax < 1) + if (xmax < 1 || ymax < 1) { return; + } /* The thing here is, the logic below (which was default behavior * of how rectf is acquiring since forever) gives float buffer for @@ -205,8 +213,9 @@ static void image_buffer_rect_update(RenderJob *rj, rv = RE_RenderViewGetById(rr, view_id); /* find current float rect for display, first case is after composite... still weak */ - if (rv->rectf) + if (rv->rectf) { rectf = rv->rectf; + } else { if (rv->rect32) { /* special case, currently only happens with sequencer rendering, @@ -217,13 +226,15 @@ static void image_buffer_rect_update(RenderJob *rj, return; } else { - if (rr->renlay == NULL) + if (rr->renlay == NULL) { return; + } rectf = RE_RenderLayerGetPass(rr->renlay, RE_PASSNAME_COMBINED, viewname); } } - if (rectf == NULL) + if (rectf == NULL) { return; + } rectf += 4 * (rr->rectx * ymin + xmin); linear_stride = rr->rectx; @@ -296,8 +307,9 @@ static void screen_render_single_layer_set( RNA_string_get(op->ptr, "layer", rl_name); rl = (ViewLayer *)BLI_findstring(&(*scene)->view_layers, rl_name, offsetof(ViewLayer, name)); - if (rl) + if (rl) { *single_layer = rl; + } } else if (((*scene)->r.scemode & R_SINGLE_LAYER) && active_layer) { *single_layer = active_layer; @@ -351,7 +363,7 @@ static int screen_render_exec(bContext *C, wmOperator *op) RE_SetReports(re, op->reports); BLI_threaded_malloc_begin(); - if (is_animation) + if (is_animation) { RE_BlenderAnim(re, mainp, scene, @@ -360,9 +372,11 @@ static int screen_render_exec(bContext *C, wmOperator *op) scene->r.sfra, scene->r.efra, scene->r.frame_step); - else + } + else { RE_BlenderFrame( re, mainp, scene, single_layer, camera_override, scene->r.cfra, is_write_still); + } BLI_threaded_malloc_end(); RE_SetReports(re, NULL); @@ -404,10 +418,12 @@ static void make_renderinfo_string(const RenderStats *rs, megs_peak_memory = (peak_memory) / (1024.0 * 1024.0); /* local view */ - if (rs->localview) + if (rs->localview) { spos += sprintf(spos, "%s | ", IFACE_("3D Local View")); - else if (v3d_override) + } + else if (v3d_override) { spos += sprintf(spos, "%s | ", IFACE_("3D View")); + } /* frame number */ spos += sprintf(spos, IFACE_("Frame:%d "), (scene->r.cfra)); @@ -416,16 +432,19 @@ static void make_renderinfo_string(const RenderStats *rs, BLI_timecode_string_from_time_simple(info_time_str, sizeof(info_time_str), rs->lastframetime); if (rs->infostr && rs->infostr[0]) { - if (rs->lastframetime != 0.0) + if (rs->lastframetime != 0.0) { spos += sprintf(spos, IFACE_("| Last:%s "), info_time_str); - else + } + else { spos += sprintf(spos, "| "); + } BLI_timecode_string_from_time_simple( info_time_str, sizeof(info_time_str), PIL_check_seconds_timer() - rs->starttime); } - else + else { spos += sprintf(spos, "| "); + } spos += sprintf(spos, IFACE_("Time:%s "), info_time_str); @@ -436,38 +455,49 @@ static void make_renderinfo_string(const RenderStats *rs, } } else { - if (rs->totvert || rs->totface || rs->tothalo || rs->totstrand || rs->totlamp) + if (rs->totvert || rs->totface || rs->tothalo || rs->totstrand || rs->totlamp) { spos += sprintf(spos, "| "); + } - if (rs->totvert) + if (rs->totvert) { spos += sprintf(spos, IFACE_("Ve:%d "), rs->totvert); - if (rs->totface) + } + if (rs->totface) { spos += sprintf(spos, IFACE_("Fa:%d "), rs->totface); - if (rs->tothalo) + } + if (rs->tothalo) { spos += sprintf(spos, IFACE_("Ha:%d "), rs->tothalo); - if (rs->totstrand) + } + if (rs->totstrand) { spos += sprintf(spos, IFACE_("St:%d "), rs->totstrand); - if (rs->totlamp) + } + if (rs->totlamp) { spos += sprintf(spos, IFACE_("Li:%d "), rs->totlamp); + } - if (rs->mem_peak == 0.0f) + if (rs->mem_peak == 0.0f) { spos += sprintf(spos, IFACE_("| Mem:%.2fM (%.2fM, Peak %.2fM) "), megs_used_memory, mmap_used_memory, megs_peak_memory); - else + } + else { spos += sprintf(spos, IFACE_("| Mem:%.2fM, Peak: %.2fM "), rs->mem_used, rs->mem_peak); + } - if (rs->curfield) + if (rs->curfield) { spos += sprintf(spos, IFACE_("Field %d "), rs->curfield); - if (rs->curblur) + } + if (rs->curblur) { spos += sprintf(spos, IFACE_("Blur %d "), rs->curblur); + } } /* full sample */ - if (rs->curfsa) + if (rs->curfsa) { spos += sprintf(spos, IFACE_("| Full Sample %d "), rs->curfsa); + } /* extra info */ if (rs->infostr && rs->infostr[0]) { @@ -478,9 +508,11 @@ static void make_renderinfo_string(const RenderStats *rs, } /* very weak... but 512 characters is quite safe */ - if (spos >= str + IMA_MAX_RENDER_TEXT) - if (G.debug & G_DEBUG) + if (spos >= str + IMA_MAX_RENDER_TEXT) { + if (G.debug & G_DEBUG) { printf("WARNING! renderwin text beyond limit\n"); + } + } } static void image_renderinfo_cb(void *rjv, RenderStats *rs) @@ -492,8 +524,9 @@ static void image_renderinfo_cb(void *rjv, RenderStats *rs) if (rr) { /* malloc OK here, stats_draw is not in tile threads */ - if (rr->text == NULL) + if (rr->text == NULL) { rr->text = MEM_callocN(IMA_MAX_RENDER_TEXT, "rendertext"); + } make_renderinfo_string(rs, rj->scene, rj->v3d_override, rr->error, rr->text); } @@ -594,8 +627,9 @@ static void image_rect_update(void *rjv, RenderResult *rr, volatile rcti *renrec return; } - if (rr == NULL) + if (rr == NULL) { return; + } /* update part of render */ render_image_update_pass_and_layer(rj, rr, &rj->iuser); @@ -636,7 +670,7 @@ static void render_startjob(void *rjv, short *stop, short *do_update, float *pro RE_SetReports(rj->re, rj->reports); - if (rj->anim) + if (rj->anim) { RE_BlenderAnim(rj->re, rj->main, rj->scene, @@ -645,7 +679,8 @@ static void render_startjob(void *rjv, short *stop, short *do_update, float *pro rj->scene->r.sfra, rj->scene->r.efra, rj->scene->r.frame_step); - else + } + else { RE_BlenderFrame(rj->re, rj->main, rj->scene, @@ -653,6 +688,7 @@ static void render_startjob(void *rjv, short *stop, short *do_update, float *pro rj->camera_override, rj->scene->r.cfra, rj->write_still); + } RE_SetReports(rj->re, NULL); } @@ -703,8 +739,9 @@ static void render_endjob(void *rjv) * to avoid referencing freed renderjobs bug T24508. */ RE_InitRenderCB(rj->re); - if (rj->main != G_MAIN) + if (rj->main != G_MAIN) { BKE_main_free(rj->main); + } /* else the frame will not update for the original value */ if (rj->anim && !(rj->scene->r.scemode & R_NO_FRAME_UPDATE)) { @@ -755,8 +792,9 @@ static void render_endjob(void *rjv) Image *ima = rj->image; ImBuf *ibuf = BKE_image_acquire_ibuf(ima, &rj->iuser, &lock); - if (ibuf) + if (ibuf) { ibuf->userflags |= IB_DISPLAY_BUFFER_INVALID; + } BKE_image_release_ibuf(ima, ibuf, lock); } @@ -777,10 +815,12 @@ static int render_breakjob(void *rjv) { RenderJob *rj = rjv; - if (G.is_break) + if (G.is_break) { return 1; - if (rj->stop && *(rj->stop)) + } + if (rj->stop && *(rj->stop)) { return 1; + } return 0; } @@ -788,8 +828,9 @@ static int render_breakjob(void *rjv) * 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) + if (G.is_break) { return 1; + } return 0; } @@ -905,8 +946,9 @@ static int screen_render_invoke(bContext *C, wmOperator *op, const wmEvent *even screen_render_single_layer_set(op, bmain, active_layer, &scene, &single_layer); /* only one render job at a time */ - if (WM_jobs_test(CTX_wm_manager(C), scene, WM_JOB_TYPE_RENDER)) + if (WM_jobs_test(CTX_wm_manager(C), scene, WM_JOB_TYPE_RENDER)) { return OPERATOR_CANCELLED; + } if (!RE_is_rendering_allowed(scene, single_layer, camera_override, op->reports)) { return OPERATOR_CANCELLED; @@ -922,8 +964,9 @@ static int screen_render_invoke(bContext *C, wmOperator *op, const wmEvent *even WM_jobs_kill_all_except(CTX_wm_manager(C), CTX_wm_screen(C)); /* cancel animation playback */ - if (ED_screen_animation_playing(CTX_wm_manager(C))) + if (ED_screen_animation_playing(CTX_wm_manager(C))) { ED_screen_animation_play(C, 0, 0); + } /* handle UI stuff */ WM_cursor_wait(1); @@ -946,8 +989,9 @@ static int screen_render_invoke(bContext *C, wmOperator *op, const wmEvent *even jobflag = WM_JOB_EXCL_RENDER | WM_JOB_PRIORITY | WM_JOB_PROGRESS; - if (RNA_struct_property_is_set(op->ptr, "layer")) + if (RNA_struct_property_is_set(op->ptr, "layer")) { jobflag |= WM_JOB_SUSPEND; + } /* job custom data */ rj = MEM_callocN(sizeof(RenderJob), "render job"); @@ -977,8 +1021,9 @@ static int screen_render_invoke(bContext *C, wmOperator *op, const wmEvent *even } if (v3d) { - if (camera_override && camera_override != scene->camera) + if (camera_override && camera_override != scene->camera) { rj->v3d_override = true; + } } /* Lock the user interface depending on render settings. */ @@ -1000,10 +1045,12 @@ static int screen_render_invoke(bContext *C, wmOperator *op, const wmEvent *even } /* setup job */ - if (RE_seq_render_active(scene, &scene->r)) + if (RE_seq_render_active(scene, &scene->r)) { name = "Sequence Render"; - else + } + else { name = "Render"; + } wm_job = WM_jobs_get( CTX_wm_manager(C), CTX_wm_window(C), scene, name, jobflag, WM_JOB_TYPE_RENDER); @@ -1109,8 +1156,9 @@ Scene *ED_render_job_get_scene(const bContext *C) wmWindowManager *wm = CTX_wm_manager(C); RenderJob *rj = (RenderJob *)WM_jobs_customdata_from_type(wm, WM_JOB_TYPE_RENDER); - if (rj) + if (rj) { return rj->scene; + } return NULL; } diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c index 6862881de59..41ef5d81901 100644 --- a/source/blender/editors/render/render_opengl.c +++ b/source/blender/editors/render/render_opengl.c @@ -154,8 +154,9 @@ static bool screen_opengl_is_multiview(OGLRender *oglrender) RegionView3D *rv3d = oglrender->rv3d; RenderData *rd = &oglrender->scene->r; - if ((rd == NULL) || ((v3d != NULL) && (rv3d == NULL))) + if ((rd == NULL) || ((v3d != NULL) && (rv3d == NULL))) { return false; + } return (rd->scemode & R_MULTIVIEW) && ((v3d == NULL) || (rv3d->persp == RV3D_CAMOB && v3d->camera)); @@ -189,14 +190,17 @@ static void screen_opengl_views_setup(OGLRender *oglrender) RenderView *rv_del = rv->next; BLI_remlink(&rr->views, rv_del); - if (rv_del->rectf) + if (rv_del->rectf) { MEM_freeN(rv_del->rectf); + } - if (rv_del->rectz) + if (rv_del->rectz) { MEM_freeN(rv_del->rectz); + } - if (rv_del->rect32) + if (rv_del->rect32) { MEM_freeN(rv_del->rect32); + } MEM_freeN(rv_del); } @@ -219,14 +223,17 @@ static void screen_opengl_views_setup(OGLRender *oglrender) BLI_remlink(&rr->views, rv_del); - if (rv_del->rectf) + if (rv_del->rectf) { MEM_freeN(rv_del->rectf); + } - if (rv_del->rectz) + if (rv_del->rectz) { MEM_freeN(rv_del->rectz); + } - if (rv_del->rect32) + if (rv_del->rect32) { MEM_freeN(rv_del->rect32); + } MEM_freeN(rv_del); } @@ -234,8 +241,9 @@ static void screen_opengl_views_setup(OGLRender *oglrender) /* create all the views that are needed */ for (srv = rd->views.first; srv; srv = srv->next) { - if (BKE_scene_multiview_is_render_view_active(rd, srv) == false) + if (BKE_scene_multiview_is_render_view_active(rd, srv) == false) { continue; + } rv = BLI_findstring(&rr->views, srv->name, offsetof(SceneRenderView, name)); @@ -247,8 +255,9 @@ static void screen_opengl_views_setup(OGLRender *oglrender) } } - if (!(is_multiview && BKE_scene_multiview_is_stereo3d(rd))) + if (!(is_multiview && BKE_scene_multiview_is_stereo3d(rd))) { oglrender->iuser.flag &= ~IMA_SHOW_STEREO; + } /* will only work for non multiview correctly */ if (v3d) { @@ -431,10 +440,12 @@ static void screen_opengl_render_write(OGLRender *oglrender) RE_ReleaseResultImage(oglrender->re); - if (ok) + if (ok) { printf("OpenGL Render written to '%s'\n", name); - else + } + else { printf("OpenGL Render failed to write '%s'\n", name); + } } static void UNUSED_FUNCTION(addAlphaOverFloat)(float dest[4], const float source[4]) @@ -551,8 +562,9 @@ static bool screen_opengl_render_init(bContext *C, wmOperator *op) } /* only one render job at a time */ - if (WM_jobs_test(wm, scene, WM_JOB_TYPE_RENDER)) + if (WM_jobs_test(wm, scene, WM_JOB_TYPE_RENDER)) { return false; + } if (is_sequencer) { is_view_context = false; @@ -951,8 +963,9 @@ static bool screen_opengl_render_anim_step(bContext *C, wmOperator *op) RenderResult *rr; /* go to next frame */ - if (CFRA < oglrender->nfra) + if (CFRA < oglrender->nfra) { CFRA++; + } while (CFRA < oglrender->nfra) { BKE_scene_graph_update_for_newframe(depsgraph, bmain); CFRA++; @@ -1035,8 +1048,9 @@ static int screen_opengl_render_modal(bContext *C, wmOperator *op, const wmEvent return OPERATOR_FINISHED; case TIMER: /* render frame? */ - if (oglrender->timer == event->customdata) + if (oglrender->timer == event->customdata) { break; + } ATTR_FALLTHROUGH; default: /* nothing to do */ @@ -1068,12 +1082,14 @@ static int screen_opengl_render_invoke(bContext *C, wmOperator *op, const wmEven OGLRender *oglrender; const bool anim = RNA_boolean_get(op->ptr, "animation"); - if (!screen_opengl_render_init(C, op)) + if (!screen_opengl_render_init(C, op)) { return OPERATOR_CANCELLED; + } if (anim) { - if (!screen_opengl_render_anim_initialize(C, op)) + if (!screen_opengl_render_anim_initialize(C, op)) { return OPERATOR_CANCELLED; + } } oglrender = op->customdata; @@ -1093,8 +1109,9 @@ static int screen_opengl_render_exec(bContext *C, wmOperator *op) { const bool is_animation = RNA_boolean_get(op->ptr, "animation"); - if (!screen_opengl_render_init(C, op)) + if (!screen_opengl_render_init(C, op)) { return OPERATOR_CANCELLED; + } if (!is_animation) { /* same as invoke */ /* render image */ @@ -1106,8 +1123,9 @@ static int screen_opengl_render_exec(bContext *C, wmOperator *op) else { bool ret = true; - if (!screen_opengl_render_anim_initialize(C, op)) + if (!screen_opengl_render_anim_initialize(C, op)) { return OPERATOR_CANCELLED; + } while (ret) { ret = screen_opengl_render_anim_step(C, op); diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c index 2804ea151d6..c9a4f1948ce 100644 --- a/source/blender/editors/render/render_preview.c +++ b/source/blender/editors/render/render_preview.c @@ -131,14 +131,16 @@ ImBuf *get_brush_icon(Brush *brush) } } - if (brush->icon_imbuf) + if (brush->icon_imbuf) { BKE_icon_changed(BKE_icon_id_ensure(&brush->id)); + } } } } - if (!(brush->icon_imbuf)) + if (!(brush->icon_imbuf)) { brush->id.icon_id = 0; + } return brush->icon_imbuf; } @@ -234,17 +236,20 @@ static bool check_engine_supports_preview(Scene *scene) void ED_preview_free_dbase(void) { - if (G_pr_main) + if (G_pr_main) { BKE_main_free(G_pr_main); + } - if (G_pr_main_grease_pencil) + if (G_pr_main_grease_pencil) { BKE_main_free(G_pr_main_grease_pencil); + } } static Scene *preview_get_scene(Main *pr_main) { - if (pr_main == NULL) + if (pr_main == NULL) { return NULL; + } return pr_main->scenes.first; } @@ -397,10 +402,12 @@ static Scene *preview_prepare_scene( sce->r.tiley = sce->r.ysch / 4; } - if ((id && sp->pr_method == PR_ICON_RENDER) && id_type != ID_WO) + if ((id && sp->pr_method == PR_ICON_RENDER) && id_type != ID_WO) { sce->r.alphamode = R_ALPHAPREMUL; - else + } + else { sce->r.alphamode = R_ADDSKY; + } sce->r.cfra = scene->r.cfra; @@ -461,8 +468,9 @@ static Scene *preview_prepare_scene( Material ***matar = give_matarar(base->object); int actcol = max_ii(base->object->actcol - 1, 0); - if (matar && actcol < base->object->totcol) + if (matar && actcol < base->object->totcol) { (*matar)[actcol] = mat; + } } else if (base->object->type == OB_LAMP) { base->flag |= BASE_VISIBLE; @@ -510,8 +518,9 @@ static Scene *preview_prepare_scene( for (Base *base = view_layer->object_bases.first; base; base = base->next) { if (base->object->id.name[2] == 'p') { - if (base->object->type == OB_LAMP) + if (base->object->type == OB_LAMP) { base->object->data = la; + } } } @@ -562,10 +571,12 @@ static bool ed_preview_draw_rect(ScrArea *sa, int split, int first, rcti *rect, int newy = BLI_rcti_size_y(rect); bool ok = false; - if (!split || first) + if (!split || first) { sprintf(name, "Preview %p", (void *)sa); - else + } + else { sprintf(name, "SecondPreview %p", (void *)sa); + } if (split) { if (first) { @@ -581,8 +592,9 @@ static bool ed_preview_draw_rect(ScrArea *sa, int split, int first, rcti *rect, /* test if something rendered ok */ re = RE_GetRender(name); - if (re == NULL) + if (re == NULL) { return false; + } RE_AcquireResultImageViews(re, &rres); @@ -609,8 +621,9 @@ static bool ed_preview_draw_rect(ScrArea *sa, int split, int first, rcti *rect, float fy = rect->ymin; /* material preview only needs monoscopy (view 0) */ - if (re) + if (re) { RE_AcquiredResultGet32(re, &rres, (unsigned int *)rect_byte, 0); + } IMMDrawPixelsTexState state = immDrawPixelsTexSetup(GPU_SHADER_2D_IMAGE_COLOR); immDrawPixelsTex(&state, @@ -662,11 +675,13 @@ void ED_preview_draw(const bContext *C, void *idp, void *parentp, void *slotp, r ok = ed_preview_draw_rect(sa, 1, 1, rect, &newrect); ok &= ed_preview_draw_rect(sa, 1, 0, rect, &newrect); } - else + else { ok = ed_preview_draw_rect(sa, 0, 0, rect, &newrect); + } - if (ok) + if (ok) { *rect = newrect; + } /* start a new preview render job if signaled through sbuts->preview, * if no render result was found and no preview render job is running, @@ -712,26 +727,30 @@ static void shader_preview_updatejob(void *spv) if (GS(sp->id->name) == ID_MA) { Material *mat = (Material *)sp->id; - if (sp->matcopy && mat->nodetree && sp->matcopy->nodetree) + if (sp->matcopy && mat->nodetree && sp->matcopy->nodetree) { ntreeLocalSync(sp->matcopy->nodetree, mat->nodetree); + } } else if (GS(sp->id->name) == ID_TE) { Tex *tex = (Tex *)sp->id; - if (sp->texcopy && tex->nodetree && sp->texcopy->nodetree) + if (sp->texcopy && tex->nodetree && sp->texcopy->nodetree) { ntreeLocalSync(sp->texcopy->nodetree, tex->nodetree); + } } else if (GS(sp->id->name) == ID_WO) { World *wrld = (World *)sp->id; - if (sp->worldcopy && wrld->nodetree && sp->worldcopy->nodetree) + if (sp->worldcopy && wrld->nodetree && sp->worldcopy->nodetree) { ntreeLocalSync(sp->worldcopy->nodetree, wrld->nodetree); + } } else if (GS(sp->id->name) == ID_LA) { Light *la = (Light *)sp->id; - if (sp->lampcopy && la->nodetree && sp->lampcopy->nodetree) + if (sp->lampcopy && la->nodetree && sp->lampcopy->nodetree) { ntreeLocalSync(sp->lampcopy->nodetree, la->nodetree); + } } } } @@ -809,10 +828,12 @@ static void shader_preview_render(ShaderPreview *sp, ID *id, int split, int firs /* in case of split preview, use border render */ if (split) { - if (first) + if (first) { sizex = sp->sizex / 2; - else + } + else { sizex = sp->sizex - sp->sizex / 2; + } } else { sizex = sp->sizex; @@ -828,18 +849,22 @@ static void shader_preview_render(ShaderPreview *sp, ID *id, int split, int firs /* get the stuff from the builtin preview dbase */ sce = preview_prepare_scene(sp->bmain, sp->scene, id_eval, idtype, sp); - if (sce == NULL) + if (sce == NULL) { return; + } - if (!split || first) + if (!split || first) { sprintf(name, "Preview %p", sp->owner); - else + } + else { sprintf(name, "SecondPreview %p", sp->owner); + } re = RE_GetRender(name); /* full refreshed render from first tile */ - if (re == NULL) + if (re == NULL) { re = RE_NewRender(name); + } /* sce->r gets copied in RE_InitState! */ sce->r.scemode &= ~(R_MATNODE_PREVIEW | R_TEXNODE_PREVIEW); @@ -850,10 +875,12 @@ static void shader_preview_render(ShaderPreview *sp, ID *id, int split, int firs sce->r.mode |= R_OSA; } else if (sp->pr_method == PR_NODE_RENDER) { - if (idtype == ID_MA) + if (idtype == ID_MA) { sce->r.scemode |= R_MATNODE_PREVIEW; - else if (idtype == ID_TE) + } + else if (idtype == ID_TE) { sce->r.scemode |= R_TEXNODE_PREVIEW; + } sce->r.mode &= ~R_OSA; } else { /* PR_BUTS_RENDER */ @@ -869,8 +896,9 @@ static void shader_preview_render(ShaderPreview *sp, ID *id, int split, int firs /* lens adjust */ oldlens = ((Camera *)sce->camera->data)->lens; - if (sizex > sp->sizey) + if (sizex > sp->sizey) { ((Camera *)sce->camera->data)->lens *= (float)sp->sizey / (float)sizex; + } /* entire cycle for render engine */ if (idtype == ID_TE) { @@ -887,8 +915,9 @@ static void shader_preview_render(ShaderPreview *sp, ID *id, int split, int firs if (sp->pr_method == PR_ICON_RENDER) { // char *rct= (char *)(sp->pr_rect + 32*16 + 16); - if (sp->pr_rect) + if (sp->pr_rect) { RE_ResultGet32(re, sp->pr_rect); + } } /* unassign the pointers, reset vars */ @@ -914,8 +943,9 @@ static void shader_preview_startjob(void *customdata, short *stop, short *do_upd shader_preview_render(sp, sp->id, 1, 1); shader_preview_render(sp, sp->parent, 1, 0); } - else + else { shader_preview_render(sp, sp->id, 0, 0); + } *do_update = true; } @@ -986,14 +1016,16 @@ static void icon_copy_rect(ImBuf *ibuf, unsigned int w, unsigned int h, unsigned short ex, ey, dx, dy; /* paranoia test */ - if (ibuf == NULL || (ibuf->rect == NULL && ibuf->rect_float == NULL)) + if (ibuf == NULL || (ibuf->rect == NULL && ibuf->rect_float == NULL)) { return; + } /* waste of cpu cyles... but the imbuf API has no other way to scale fast (ton) */ ima = IMB_dupImBuf(ibuf); - if (!ima) + if (!ima) { return; + } if (ima->x > ima->y) { scaledx = (float)w; @@ -1013,8 +1045,9 @@ static void icon_copy_rect(ImBuf *ibuf, unsigned int w, unsigned int h, unsigned IMB_scalefastImBuf(ima, ex, ey); /* if needed, convert to 32 bits */ - if (ima->rect == NULL) + if (ima->rect == NULL) { IMB_rect_from_float(ima); + } srect = ima->rect; drect = rect; @@ -1033,8 +1066,9 @@ static void set_alpha(char *cp, int sizex, int sizey, char alpha) { int a, size = sizex * sizey; - for (a = 0; a < size; a++, cp += 4) + for (a = 0; a < size; a++, cp += 4) { cp[3] = alpha; + } } static void icon_preview_startjob(void *customdata, short *stop, short *do_update) @@ -1070,8 +1104,9 @@ static void icon_preview_startjob(void *customdata, short *stop, short *do_updat ImageUser iuser = {NULL}; /* ima->ok is zero when Image cannot load */ - if (ima == NULL || ima->ok == 0) + if (ima == NULL || ima->ok == 0) { return; + } /* setup dummy image user */ iuser.ok = iuser.framenr = 1; @@ -1099,8 +1134,9 @@ static void icon_preview_startjob(void *customdata, short *stop, short *do_updat memset(sp->pr_rect, 0x88, sp->sizex * sp->sizey * sizeof(unsigned int)); - if (!(br->icon_imbuf) || !(br->icon_imbuf->rect)) + if (!(br->icon_imbuf) || !(br->icon_imbuf->rect)) { return; + } icon_copy_rect(br->icon_imbuf, sp->sizex, sp->sizey, sp->pr_rect); @@ -1135,10 +1171,12 @@ static void common_preview_startjob(void *customdata, { ShaderPreview *sp = customdata; - if (ELEM(sp->pr_method, PR_ICON_RENDER, PR_ICON_DEFERRED)) + if (ELEM(sp->pr_method, PR_ICON_RENDER, PR_ICON_DEFERRED)) { icon_preview_startjob(customdata, stop, do_update); - else + } + else { shader_preview_startjob(customdata, stop, do_update); + } } /* exported functions */ @@ -1228,8 +1266,9 @@ static void icon_preview_endjob(void *customdata) if (ip->id) { - if (GS(ip->id->name) == ID_BR) + if (GS(ip->id->name) == ID_BR) { WM_main_add_notifier(NC_BRUSH | NA_EDITED, ip->id); + } #if 0 if (GS(ip->id->name) == ID_MA) { Material *ma = (Material *)ip->id; @@ -1319,8 +1358,9 @@ void ED_preview_icon_job( /* render all resolutions from suspended job too */ old_ip = WM_jobs_customdata_get(wm_job); - if (old_ip) + if (old_ip) { BLI_movelisttolist(&ip->sizes, &old_ip->sizes); + } /* customdata for preview thread */ ip->bmain = CTX_data_main(C); @@ -1433,6 +1473,7 @@ void ED_preview_shader_job(const bContext *C, void ED_preview_kill_jobs(wmWindowManager *wm, Main *UNUSED(bmain)) { - if (wm) + if (wm) { WM_jobs_kill(wm, NULL, common_preview_startjob); + } } diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c index 70157abf2ef..3186f011c6a 100644 --- a/source/blender/editors/render/render_shading.c +++ b/source/blender/editors/render/render_shading.c @@ -131,8 +131,9 @@ static int material_slot_add_exec(bContext *C, wmOperator *UNUSED(op)) Main *bmain = CTX_data_main(C); Object *ob = ED_object_context(C); - if (!ob) + if (!ob) { return OPERATOR_CANCELLED; + } BKE_object_material_slot_add(bmain, ob); @@ -168,8 +169,9 @@ static int material_slot_remove_exec(bContext *C, wmOperator *op) { Object *ob = ED_object_context(C); - if (!ob) + if (!ob) { return OPERATOR_CANCELLED; + } /* Removing material slots in edit mode screws things up, see bug #21822.*/ if (ob == CTX_data_edit_object(C)) { @@ -366,10 +368,12 @@ static int material_slot_de_select(bContext *C, bool select) while (a--) { if (bp->hide == 0) { changed = true; - if (select) + if (select) { bp->f1 |= SELECT; - else + } + else { bp->f1 &= ~SELECT; + } } bp++; } @@ -435,13 +439,15 @@ static int material_slot_copy_exec(bContext *C, wmOperator *UNUSED(op)) Object *ob = ED_object_context(C); Material ***matar; - if (!ob || !(matar = give_matarar(ob))) + if (!ob || !(matar = give_matarar(ob))) { return OPERATOR_CANCELLED; + } CTX_DATA_BEGIN (C, Object *, ob_iter, selected_editable_objects) { if (ob != ob_iter && give_matarar(ob_iter)) { - if (ob->data != ob_iter->data) + if (ob->data != ob_iter->data) { assign_matarar(bmain, ob_iter, matar, ob->totcol); + } if (ob_iter->totcol == ob->totcol) { ob_iter->actcol = ob->actcol; @@ -1026,8 +1032,9 @@ static int render_view_remove_exec(bContext *C, wmOperator *UNUSED(op)) Scene *scene = CTX_data_scene(C); SceneRenderView *rv = BLI_findlink(&scene->r.views, scene->r.actview); - if (!BKE_scene_remove_render_view(scene, rv)) + if (!BKE_scene_remove_render_view(scene, rv)) { return OPERATOR_CANCELLED; + } WM_event_add_notifier(C, NC_SCENE | ND_RENDER_OPTIONS, scene); @@ -1544,14 +1551,18 @@ void SCENE_OT_freestyle_geometry_modifier_add(wmOperatorType *ot) static int freestyle_get_modifier_type(PointerRNA *ptr) { - if (RNA_struct_is_a(ptr->type, &RNA_LineStyleColorModifier)) + if (RNA_struct_is_a(ptr->type, &RNA_LineStyleColorModifier)) { return LS_MODIFIER_TYPE_COLOR; - else if (RNA_struct_is_a(ptr->type, &RNA_LineStyleAlphaModifier)) + } + else if (RNA_struct_is_a(ptr->type, &RNA_LineStyleAlphaModifier)) { return LS_MODIFIER_TYPE_ALPHA; - else if (RNA_struct_is_a(ptr->type, &RNA_LineStyleThicknessModifier)) + } + else if (RNA_struct_is_a(ptr->type, &RNA_LineStyleThicknessModifier)) { return LS_MODIFIER_TYPE_THICKNESS; - else if (RNA_struct_is_a(ptr->type, &RNA_LineStyleGeometryModifier)) + } + else if (RNA_struct_is_a(ptr->type, &RNA_LineStyleGeometryModifier)) { return LS_MODIFIER_TYPE_GEOMETRY; + } return -1; } @@ -1831,8 +1842,9 @@ static int copy_material_exec(bContext *C, wmOperator *UNUSED(op)) { Material *ma = CTX_data_pointer_get_type(C, "material", &RNA_Material).data; - if (ma == NULL) + if (ma == NULL) { return OPERATOR_CANCELLED; + } copy_matcopybuf(CTX_data_main(C), ma); @@ -1858,8 +1870,9 @@ static int paste_material_exec(bContext *C, wmOperator *UNUSED(op)) { Material *ma = CTX_data_pointer_get_type(C, "material", &RNA_Material).data; - if (ma == NULL) + if (ma == NULL) { return OPERATOR_CANCELLED; + } paste_matcopybuf(CTX_data_main(C), ma); @@ -1919,8 +1932,9 @@ static void paste_mtex_copybuf(ID *id) { MTex **mtex = NULL; - if (mtexcopied == 0 || mtexcopybuf.tex == NULL) + if (mtexcopied == 0 || mtexcopybuf.tex == NULL) { return; + } switch (GS(id->name)) { case ID_PA: @@ -1999,19 +2013,25 @@ static int paste_mtex_exec(bContext *C, wmOperator *UNUSED(op)) FreestyleLineStyle *linestyle = CTX_data_pointer_get_type(C, "line_style", &RNA_FreestyleLineStyle).data; - if (ma) + if (ma) { id = &ma->id; - else if (la) + } + else if (la) { id = &la->id; - else if (wo) + } + else if (wo) { id = &wo->id; - else if (psys) + } + else if (psys) { id = &psys->part->id; - else if (linestyle) + } + else if (linestyle) { id = &linestyle->id; + } - if (id == NULL) + if (id == NULL) { return OPERATOR_CANCELLED; + } } paste_mtex_copybuf(id); diff --git a/source/blender/editors/render/render_update.c b/source/blender/editors/render/render_update.c index dfc7610946a..3f3f98bc6e5 100644 --- a/source/blender/editors/render/render_update.c +++ b/source/blender/editors/render/render_update.c @@ -81,16 +81,19 @@ void ED_render_scene_update(const DEGEditorUpdateContext *update_ctx, int update /* don't do this render engine update if we're updating the scene from * other threads doing e.g. rendering or baking jobs */ - if (!BLI_thread_is_main()) + if (!BLI_thread_is_main()) { return; + } /* don't call this recursively for frame updates */ - if (recursive_check) + if (recursive_check) { return; + } /* Do not call if no WM available, see T42688. */ - if (BLI_listbase_is_empty(&bmain->wm)) + if (BLI_listbase_is_empty(&bmain->wm)) { return; + } recursive_check = true; @@ -160,12 +163,14 @@ void ED_render_engine_area_exit(Main *bmain, ScrArea *sa) ARegion *ar; wmWindowManager *wm = bmain->wm.first; - if (sa->spacetype != SPACE_VIEW3D) + if (sa->spacetype != SPACE_VIEW3D) { return; + } for (ar = sa->regionbase.first; ar; ar = ar->next) { - if (ar->regiontype != RGN_TYPE_WINDOW || !(ar->regiondata)) + if (ar->regiontype != RGN_TYPE_WINDOW || !(ar->regiondata)) { continue; + } ED_view3d_stop_render_preview(wm, ar); } } @@ -237,8 +242,9 @@ static void texture_changed(Main *bmain, Tex *tex) /* find compositing nodes */ if (scene->use_nodes && scene->nodetree) { for (node = scene->nodetree->nodes.first; node; node = node->next) { - if (node->id == &tex->id) + if (node->id == &tex->id) { ED_node_tag_update_id(&scene->id); + } } } } @@ -258,9 +264,11 @@ static void image_changed(Main *bmain, Image *ima) BKE_icon_changed(BKE_icon_id_ensure(&ima->id)); /* textures */ - for (tex = bmain->textures.first; tex; tex = tex->id.next) - if (tex->ima == ima) + for (tex = bmain->textures.first; tex; tex = tex->id.next) { + if (tex->ima == ima) { texture_changed(bmain, tex); + } + } } static void scene_changed(Main *bmain, Scene *scene) diff --git a/source/blender/editors/render/render_view.c b/source/blender/editors/render/render_view.c index 258e98977c7..cd5edcdc3f4 100644 --- a/source/blender/editors/render/render_view.c +++ b/source/blender/editors/render/render_view.c @@ -92,12 +92,14 @@ static ScrArea *find_area_showing_r_result(bContext *C, Scene *scene, wmWindow * for (sa = screen->areabase.first; sa; sa = sa->next) { if (sa->spacetype == SPACE_IMAGE) { sima = sa->spacedata.first; - if (sima->image && sima->image->type == IMA_TYPE_R_RESULT) + if (sima->image && sima->image->type == IMA_TYPE_R_RESULT) { break; + } } } - if (sa) + if (sa) { break; + } } } @@ -114,8 +116,9 @@ static ScrArea *find_area_image_empty(bContext *C) for (sa = sc->areabase.first; sa; sa = sa->next) { if (sa->spacetype == SPACE_IMAGE) { sima = sa->spacedata.first; - if (!sima->image) + if (!sima->image) { break; + } } } @@ -134,18 +137,21 @@ ScrArea *render_view_open(bContext *C, int mx, int my, ReportList *reports) SpaceImage *sima; bool area_was_image = false; - if (scene->r.displaymode == R_OUTPUT_NONE) + if (scene->r.displaymode == R_OUTPUT_NONE) { return NULL; + } if (scene->r.displaymode == R_OUTPUT_WINDOW) { int sizex = 30 * UI_DPI_FAC + (scene->r.xsch * scene->r.size) / 100; int sizey = 60 * UI_DPI_FAC + (scene->r.ysch * scene->r.size) / 100; /* arbitrary... miniature image window views don't make much sense */ - if (sizex < 320) + if (sizex < 320) { sizex = 320; - if (sizey < 256) + } + if (sizey < 256) { sizey = 256; + } /* changes context! */ if (WM_window_open_temp(C, mx, my, sizex, sizey, WM_WINDOW_RENDER) == NULL) { @@ -164,8 +170,9 @@ ScrArea *render_view_open(bContext *C, int mx, int my, ReportList *reports) sa = NULL; } else { - if (sa && sa->spacetype == SPACE_IMAGE) + if (sa && sa->spacetype == SPACE_IMAGE) { area_was_image = true; + } /* this function returns with changed context */ sa = ED_screen_full_newspace(C, sa, SPACE_IMAGE); @@ -174,12 +181,14 @@ ScrArea *render_view_open(bContext *C, int mx, int my, ReportList *reports) if (!sa) { sa = find_area_showing_r_result(C, scene, &win); - if (sa == NULL) + if (sa == NULL) { sa = find_area_image_empty(C); + } /* if area found in other window, we make that one show in front */ - if (win && win != CTX_wm_window(C)) + if (win && win != CTX_wm_window(C)) { wm_window_raise(win); + } if (sa == NULL) { /* find largest open non-image area */ @@ -221,8 +230,9 @@ ScrArea *render_view_open(bContext *C, int mx, int my, ReportList *reports) /* Tell the image editor to revert to previous space in space list on close * _only_ if it wasn't already an image editor when the render was invoked */ - if (area_was_image == 0) + if (area_was_image == 0) { sima->flag |= SI_PREVSPACE; + } else { /* Leave it alone so the image editor will just go back from * full screen to the original tiled setup */ |