Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/draw/intern/draw_manager.c')
-rw-r--r--source/blender/draw/intern/draw_manager.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index 10e9b8fbdf0..6428eb77ddb 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -298,8 +298,8 @@ void DRW_transform_to_display(GPUTexture *tex, bool use_view_transform, bool use
bool use_ocio = false;
- /* View transform is already applied for offscreen, don't apply again, see: T52046 */
- if (!(DST.options.is_image_render && !DST.options.is_scene_render)) {
+ /* Should we apply the view transform */
+ if (DRW_state_do_color_management()) {
Scene *scene = DST.draw_ctx.scene;
ColorManagedDisplaySettings *display_settings = &scene->display_settings;
ColorManagedViewSettings view_settings;
@@ -1558,6 +1558,7 @@ void DRW_draw_view(const bContext *C)
(v3d->overlay.flag & V3D_OVERLAY_HIDE_TEXT) != 0);
DST.options.draw_background = (scene->r.alphamode == R_ADDSKY) ||
(v3d->shading.type != OB_RENDER);
+ DST.options.do_color_management = true;
DRW_draw_render_loop_ex(depsgraph, engine_type, ar, v3d, viewport, C);
}
@@ -1819,9 +1820,8 @@ void DRW_draw_render_loop_offscreen(struct Depsgraph *depsgraph,
/* Reset before using it. */
drw_state_prepare_clean_for_draw(&DST);
- /* WATCH: Force color management to output CManaged byte buffer by
- * forcing is_image_render to false. */
- DST.options.is_image_render = !do_color_management;
+ DST.options.is_image_render = true;
+ DST.options.do_color_management = do_color_management;
DST.options.draw_background = draw_background;
DRW_draw_render_loop_ex(depsgraph, engine_type, ar, v3d, render_viewport, NULL);
@@ -2987,6 +2987,14 @@ bool DRW_state_is_image_render(void)
}
/**
+ * Whether the view transform should be applied.
+ */
+bool DRW_state_do_color_management(void)
+{
+ return DST.options.do_color_management;
+}
+
+/**
* Whether we are rendering only the render engine,
* or if we should also render the mode engines.
*/