diff options
Diffstat (limited to 'source/blender/draw/engines/image')
-rw-r--r-- | source/blender/draw/engines/image/image_drawing_mode.hh | 37 | ||||
-rw-r--r-- | source/blender/draw/engines/image/image_engine.cc | 2 | ||||
-rw-r--r-- | source/blender/draw/engines/image/image_space_image.hh | 6 |
3 files changed, 22 insertions, 23 deletions
diff --git a/source/blender/draw/engines/image/image_drawing_mode.hh b/source/blender/draw/engines/image/image_drawing_mode.hh index a1cd110e1d8..8913b7469ed 100644 --- a/source/blender/draw/engines/image/image_drawing_mode.hh +++ b/source/blender/draw/engines/image/image_drawing_mode.hh @@ -243,8 +243,8 @@ template<typename TextureMethod> class ScreenSpaceDrawingMode : public AbstractD do_partial_update_float_buffer(tile_buffer, iterator); } - const float tile_width = static_cast<float>(iterator.tile_data.tile_buffer->x); - const float tile_height = static_cast<float>(iterator.tile_data.tile_buffer->y); + const float tile_width = float(iterator.tile_data.tile_buffer->x); + const float tile_height = float(iterator.tile_data.tile_buffer->y); for (int i = 0; i < SCREEN_SPACE_DRAWING_MODE_TEXTURE_LEN; i++) { const TextureInfo &info = instance_data.texture_infos[i]; @@ -260,23 +260,20 @@ template<typename TextureMethod> class ScreenSpaceDrawingMode : public AbstractD const float texture_height = GPU_texture_height(texture); /* TODO: early bound check. */ ImageTileWrapper tile_accessor(iterator.tile_data.tile); - float tile_offset_x = static_cast<float>(tile_accessor.get_tile_x_offset()); - float tile_offset_y = static_cast<float>(tile_accessor.get_tile_y_offset()); + float tile_offset_x = float(tile_accessor.get_tile_x_offset()); + float tile_offset_y = float(tile_accessor.get_tile_y_offset()); rcti *changed_region_in_texel_space = &iterator.changed_region.region; rctf changed_region_in_uv_space; - BLI_rctf_init(&changed_region_in_uv_space, - static_cast<float>(changed_region_in_texel_space->xmin) / - static_cast<float>(iterator.tile_data.tile_buffer->x) + - tile_offset_x, - static_cast<float>(changed_region_in_texel_space->xmax) / - static_cast<float>(iterator.tile_data.tile_buffer->x) + - tile_offset_x, - static_cast<float>(changed_region_in_texel_space->ymin) / - static_cast<float>(iterator.tile_data.tile_buffer->y) + - tile_offset_y, - static_cast<float>(changed_region_in_texel_space->ymax) / - static_cast<float>(iterator.tile_data.tile_buffer->y) + - tile_offset_y); + BLI_rctf_init( + &changed_region_in_uv_space, + float(changed_region_in_texel_space->xmin) / float(iterator.tile_data.tile_buffer->x) + + tile_offset_x, + float(changed_region_in_texel_space->xmax) / float(iterator.tile_data.tile_buffer->x) + + tile_offset_x, + float(changed_region_in_texel_space->ymin) / float(iterator.tile_data.tile_buffer->y) + + tile_offset_y, + float(changed_region_in_texel_space->ymax) / float(iterator.tile_data.tile_buffer->y) + + tile_offset_y); rctf changed_overlapping_region_in_uv_space; const bool region_overlap = BLI_rctf_isect(&info.clipping_uv_bounds, &changed_region_in_uv_space, @@ -335,6 +332,7 @@ template<typename TextureMethod> class ScreenSpaceDrawingMode : public AbstractD offset++; } } + IMB_gpu_clamp_half_float(&extracted_buffer); GPU_texture_update_sub(texture, GPU_DATA_FLOAT, @@ -391,6 +389,7 @@ template<typename TextureMethod> class ScreenSpaceDrawingMode : public AbstractD } BKE_image_release_ibuf(image, tile_buffer, lock); } + IMB_gpu_clamp_half_float(&texture_buffer); GPU_texture_update(info.texture, GPU_DATA_FLOAT, texture_buffer.rect_float); imb_freerectImbuf_all(&texture_buffer); } @@ -423,8 +422,8 @@ template<typename TextureMethod> class ScreenSpaceDrawingMode : public AbstractD * transformation. */ float uv_to_texel[4][4]; copy_m4_m4(uv_to_texel, instance_data.ss_to_texture); - float scale[3] = {static_cast<float>(texture_width) / static_cast<float>(tile_buffer.x), - static_cast<float>(texture_height) / static_cast<float>(tile_buffer.y), + float scale[3] = {float(texture_width) / float(tile_buffer.x), + float(texture_height) / float(tile_buffer.y), 1.0f}; rescale_m4(uv_to_texel, scale); uv_to_texel[3][0] += image_tile.get_tile_x_offset() / diff --git a/source/blender/draw/engines/image/image_engine.cc b/source/blender/draw/engines/image/image_engine.cc index a1a1de328f4..a2aef98a2b6 100644 --- a/source/blender/draw/engines/image/image_engine.cc +++ b/source/blender/draw/engines/image/image_engine.cc @@ -150,7 +150,7 @@ static void IMAGE_cache_init(void *vedata) image_engine.cache_populate(); } -static void IMAGE_cache_populate(void *UNUSED(vedata), Object *UNUSED(ob)) +static void IMAGE_cache_populate(void * /*vedata*/, Object * /*ob*/) { /* Function intentional left empty. `cache_populate` is required to be implemented. */ } diff --git a/source/blender/draw/engines/image/image_space_image.hh b/source/blender/draw/engines/image/image_space_image.hh index 40aa117514c..7609cac8194 100644 --- a/source/blender/draw/engines/image/image_space_image.hh +++ b/source/blender/draw/engines/image/image_space_image.hh @@ -19,7 +19,7 @@ class SpaceImageAccessor : public AbstractSpaceAccessor { { } - Image *get_image(Main *UNUSED(bmain)) override + Image *get_image(Main * /*bmain*/) override { return ED_space_image(sima); } @@ -29,12 +29,12 @@ class SpaceImageAccessor : public AbstractSpaceAccessor { return &sima->iuser; } - ImBuf *acquire_image_buffer(Image *UNUSED(image), void **lock) override + ImBuf *acquire_image_buffer(Image * /*image*/, void **lock) override { return ED_space_image_acquire_buffer(sima, lock, 0); } - void release_buffer(Image *UNUSED(image), ImBuf *image_buffer, void *lock) override + void release_buffer(Image * /*image*/, ImBuf *image_buffer, void *lock) override { ED_space_image_release_buffer(sima, image_buffer, lock); } |