diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-01-08 13:35:48 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-01-09 18:09:33 +0300 |
commit | 4c4a7e84c64472e38811933646f3fefeb071b0b4 (patch) | |
tree | 5145108f3689d4a24e6ed66137165896eeba43f6 /source/blender/editors/space_sequencer/sequencer_scopes.c | |
parent | d2708b0f73d5f0e0a40b36da21c6a0d15405e739 (diff) |
Task scheduler: Use single parallel range function with more flexible function
Now all the fine-tuning is happening using parallel range settings structure,
which avoid passing long lists of arguments, allows extend fine-tuning further,
avoid having lots of various functions which basically does the same thing.
Diffstat (limited to 'source/blender/editors/space_sequencer/sequencer_scopes.c')
-rw-r--r-- | source/blender/editors/space_sequencer/sequencer_scopes.c | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/source/blender/editors/space_sequencer/sequencer_scopes.c b/source/blender/editors/space_sequencer/sequencer_scopes.c index 4c060f12a4b..25ee4041d8e 100644 --- a/source/blender/editors/space_sequencer/sequencer_scopes.c +++ b/source/blender/editors/space_sequencer/sequencer_scopes.c @@ -501,9 +501,17 @@ static ImBuf *make_histogram_view_from_ibuf_byte(ImBuf *ibuf) memset(bins, 0, sizeof(bins)); MakeHistogramViewData data = {.ibuf = ibuf, .bins = bins}; - BLI_task_parallel_range_finalize( - 0, ibuf->y, &data, bins, sizeof(bins), make_histogram_view_from_ibuf_byte_cb_ex, - make_histogram_view_from_ibuf_finalize, ibuf->y >= 256, false); + ParallelRangeSettings settings; + BLI_parallel_range_settings_defaults(&settings); + settings.use_threading = (ibuf->y >= 256); + settings.userdata_chunk = bins; + settings.userdata_chunk_size = sizeof(bins); + settings.func_finalize = make_histogram_view_from_ibuf_finalize; + BLI_task_parallel_range( + 0, ibuf->y, + &data, + make_histogram_view_from_ibuf_byte_cb_ex, + &settings); nr = nb = ng = 0; for (x = 0; x < HIS_STEPS; x++) { @@ -576,9 +584,17 @@ static ImBuf *make_histogram_view_from_ibuf_float(ImBuf *ibuf) memset(bins, 0, sizeof(bins)); MakeHistogramViewData data = {.ibuf = ibuf, .bins = bins}; - BLI_task_parallel_range_finalize( - 0, ibuf->y, &data, bins, sizeof(bins), make_histogram_view_from_ibuf_float_cb_ex, - make_histogram_view_from_ibuf_finalize, ibuf->y >= 256, false); + ParallelRangeSettings settings; + BLI_parallel_range_settings_defaults(&settings); + settings.use_threading = (ibuf->y >= 256); + settings.userdata_chunk = bins; + settings.userdata_chunk_size = sizeof(bins); + settings.func_finalize = make_histogram_view_from_ibuf_finalize; + BLI_task_parallel_range( + 0, ibuf->y, + &data, + make_histogram_view_from_ibuf_float_cb_ex, + &settings); nr = nb = ng = 0; for (x = 0; x < HIS_STEPS; x++) { |