From 7404c1a553662c4dc1468a78b2237cd54c9598a2 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 5 Apr 2013 17:57:26 +0000 Subject: [PATCH] Fix another part of #34877: cycles progress status text not showing correct with per render layer samples in addition to the progress bar. Also fixed job progress bar not working at all on high DPI / retina, was so small the actual progress was not visible. --- intern/cycles/blender/blender_session.cpp | 2 +- intern/cycles/render/session.cpp | 8 ++++---- intern/cycles/render/tile.h | 3 ++- source/blender/editors/interface/interface_widgets.c | 8 ++++---- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp index 3043d2aa9e9..1f1bb830771 100644 --- a/intern/cycles/blender/blender_session.cpp +++ b/intern/cycles/blender/blender_session.cpp @@ -549,7 +549,7 @@ void BlenderSession::get_progress(float& progress, double& total_time) session->progress.get_tile(tile, total_time, tile_time); sample = session->progress.get_sample(); - samples_per_tile = session->tile_manager.state.num_samples; + samples_per_tile = session->tile_manager.num_samples; if(samples_per_tile && tile_total) progress = ((float)sample / (float)(tile_total * samples_per_tile)); diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp index 6ed14452c6b..075f5eb6bab 100644 --- a/intern/cycles/render/session.cpp +++ b/intern/cycles/render/session.cpp @@ -758,7 +758,7 @@ void Session::update_status_time(bool show_pause, bool show_done) * also display the info on CPU, when using 1 tile only */ - int sample = progress.get_sample(), num_samples = tile_manager.state.num_samples; + int sample = progress.get_sample(), num_samples = tile_manager.num_samples; if(tile > 1) { /* sample counter is global for all tiles, subtract samples @@ -771,10 +771,10 @@ void Session::update_status_time(bool show_pause, bool show_done) substatus += string_printf(", Sample %d/%d", sample, num_samples); } } - else if(params.samples == INT_MAX) + else if(tile_manager.num_samples == INT_MAX) substatus = string_printf("Path Tracing Sample %d", sample+1); else - substatus = string_printf("Path Tracing Sample %d/%d", sample+1, params.samples); + substatus = string_printf("Path Tracing Sample %d/%d", sample+1, tile_manager.num_samples); if(show_pause) status = "Paused"; @@ -846,7 +846,7 @@ void Session::tonemap() bool Session::update_progressive_refine(bool cancel) { int sample = tile_manager.state.sample + 1; - bool write = sample == params.samples || cancel; + bool write = sample == tile_manager.num_samples || cancel; double current_time = time_dt(); diff --git a/intern/cycles/render/tile.h b/intern/cycles/render/tile.h index 99cffb49c08..0e9e5a73a42 100644 --- a/intern/cycles/render/tile.h +++ b/intern/cycles/render/tile.h @@ -58,6 +58,8 @@ public: list tiles; } state; + int num_samples; + TileManager(bool progressive, int num_samples, int2 tile_size, int start_resolution, bool preserve_tile_device, bool background, int tile_order, int num_devices = 1); ~TileManager(); @@ -82,7 +84,6 @@ protected: void set_tiles(); bool progressive; - int num_samples; int2 tile_size; int tile_order; int start_resolution; diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index e5f9e48c3b0..905c914352f 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -2506,8 +2506,8 @@ static void widget_progressbar(uiBut *but, uiWidgetColors *wcol, rcti *rect, int /* make the progress bar a proportion of the original height */ /* hardcoded 4px high for now */ - rect_prog.ymax = rect_prog.ymin + 4; - rect_bar.ymax = rect_bar.ymin + 4; + rect_prog.ymax = rect_prog.ymin + 4 * UI_DPI_FAC; + rect_bar.ymax = rect_bar.ymin + 4 * UI_DPI_FAC; w = value * BLI_rcti_size_x(&rect_prog); @@ -2520,8 +2520,8 @@ static void widget_progressbar(uiBut *but, uiWidgetColors *wcol, rcti *rect, int uiWidgetScrollDraw(wcol, &rect_prog, &rect_bar, UI_SCROLL_NO_OUTLINE); /* raise text a bit */ - rect->ymin += 6; - rect->xmin -= 6; + rect->ymin += 6 * UI_DPI_FAC; + rect->xmin -= 6 * UI_DPI_FAC; } static void widget_link(uiBut *but, uiWidgetColors *UNUSED(wcol), rcti *rect, int UNUSED(state), int UNUSED(roundboxalign))