diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-05-05 14:15:51 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-05-05 14:16:56 +0300 |
commit | c795d31a1faf15853a1e8315bb60f73f9a534df5 (patch) | |
tree | 377331b06cf52a52e1e1524b728baa49aae88fa8 /source/blender/gpu/intern | |
parent | f5dcb137f1fb90d80b03ce4db8217be13232dfa5 (diff) |
Simplify scanline threaded processor used by GPU_verify_image
Just avoid some unneeded initialization functions when the threaded
processor is simple enough to only depend on current chunk start
scanline and number of scanlines.
Diffstat (limited to 'source/blender/gpu/intern')
-rw-r--r-- | source/blender/gpu/intern/gpu_draw.c | 41 |
1 files changed, 9 insertions, 32 deletions
diff --git a/source/blender/gpu/intern/gpu_draw.c b/source/blender/gpu/intern/gpu_draw.c index 2be392acde1..e5d51772bb2 100644 --- a/source/blender/gpu/intern/gpu_draw.c +++ b/source/blender/gpu/intern/gpu_draw.c @@ -509,16 +509,9 @@ static void gpu_verify_reflection(Image *ima) } } -typedef struct VerifyThreadInitData { - ImBuf *ibuf; - float *srgb_frect; -} VerifyThreadInitData; - typedef struct VerifyThreadData { ImBuf *ibuf; float *srgb_frect; - int start_line; - int height; } VerifyThreadData; static void gpu_verify_high_bit_srgb_buffer_slice(float *srgb_frect, @@ -541,27 +534,15 @@ static void gpu_verify_high_bit_srgb_buffer_slice(float *srgb_frect, IMB_buffer_float_clamp(current_srgb_frect, ibuf->x, height); } -static void verify_thread_init(void *data_v, - int start_line, - int height, - void *init_data_v) -{ - VerifyThreadData *data = (VerifyThreadData *) data_v; - VerifyThreadInitData *init_data = (VerifyThreadInitData *) init_data_v; - data->ibuf = init_data->ibuf; - data->srgb_frect = init_data->srgb_frect; - data->start_line = start_line; - data->height = height; -} - -static void *verify_thread_do(void *data_v) +static void verify_thread_do(void *data_v, + int start_scanline, + int num_scanlines) { VerifyThreadData *data = (VerifyThreadData *)data_v; gpu_verify_high_bit_srgb_buffer_slice(data->srgb_frect, data->ibuf, - data->start_line, - data->height); - return NULL; + start_scanline, + num_scanlines); } static void gpu_verify_high_bit_srgb_buffer(float *srgb_frect, @@ -573,14 +554,10 @@ static void gpu_verify_high_bit_srgb_buffer(float *srgb_frect, 0, ibuf->y); } else { - VerifyThreadInitData init_data; - init_data.ibuf = ibuf; - init_data.srgb_frect = srgb_frect; - IMB_processor_apply_threaded(ibuf->y, - sizeof(VerifyThreadData), - &init_data, - verify_thread_init, - verify_thread_do); + VerifyThreadData data; + data.ibuf = ibuf; + data.srgb_frect = srgb_frect; + IMB_processor_apply_threaded_scanlines(ibuf->y, verify_thread_do, &data); } } |