diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2020-02-25 17:05:53 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2020-02-25 17:14:32 +0300 |
commit | 4e9fffc2892601b3b11366f115f342ebeeb026f1 (patch) | |
tree | 88c969530d82f12952fbee0d96abd576e84031a6 /source/blender/editors/space_image/image_buttons.c | |
parent | 1bbc1eed6221fcdfad9c160d2979040d44aa888e (diff) |
GPU: Add Image property to allow high bitdepth support on a per image basis
This adds the `Half Float Precision` option in the image property panel.
This option is only available on float textures and is enabled by default.
Adding a flag inside the imbuf (IB_halffloat) on load is done for EXR and PSD formats that can store half floating point (16bits/channels).
The option is then not displayed in this case and forced.
Related task T73086
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D6891
Diffstat (limited to 'source/blender/editors/space_image/image_buttons.c')
-rw-r--r-- | source/blender/editors/space_image/image_buttons.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/source/blender/editors/space_image/image_buttons.c b/source/blender/editors/space_image/image_buttons.c index 270fe0c59dc..f4688ce17fd 100644 --- a/source/blender/editors/space_image/image_buttons.c +++ b/source/blender/editors/space_image/image_buttons.c @@ -980,6 +980,16 @@ void uiTemplateImage(uiLayout *layout, bool is_data = IMB_colormanagement_space_name_is_data(ima->colorspace_settings.name); uiLayoutSetActive(sub, !is_data); } + + if (ima && iuser) { + void *lock; + ImBuf *ibuf = BKE_image_acquire_ibuf(ima, iuser, &lock); + + if (ibuf->rect_float && (ibuf->flags & IB_halffloat) == 0) { + uiItemR(col, &imaptr, "use_half_precision", 0, NULL, ICON_NONE); + } + BKE_image_release_ibuf(ima, ibuf, lock); + } } uiItemR(col, &imaptr, "use_view_as_render", 0, NULL, ICON_NONE); |