[Bf-blender-cvs] [99b1e8428dd] master: Cleanup: pass value by ref in draw_color_management

Jeroen Bakker noreply at git.blender.org
Tue Aug 31 15:46:02 CEST 2021


Commit: 99b1e8428dde21f4e9836bfbe47d8b7b0f48c014
Author: Jeroen Bakker
Date:   Tue Aug 31 15:44:30 2021 +0200
Branches: master
https://developer.blender.org/rB99b1e8428dde21f4e9836bfbe47d8b7b0f48c014

Cleanup: pass value by ref in draw_color_management

===================================================================

M	source/blender/draw/intern/draw_color_management.cc

===================================================================

diff --git a/source/blender/draw/intern/draw_color_management.cc b/source/blender/draw/intern/draw_color_management.cc
index 0e39f9ffc81..23a0fee04e6 100644
--- a/source/blender/draw/intern/draw_color_management.cc
+++ b/source/blender/draw/intern/draw_color_management.cc
@@ -20,8 +20,6 @@
  * \ingroup draw
  */
 
-#include <stdio.h>
-
 #include "draw_manager.h"
 
 #include "DRW_render.h"
@@ -47,34 +45,34 @@ enum class eDRWColorManagementType {
   UseRenderSettings,
 };
 
-static float dither_get(eDRWColorManagementType color_management_type, const Scene *scene)
+static float dither_get(eDRWColorManagementType color_management_type, const Scene &scene)
 {
   if (ELEM(color_management_type,
            eDRWColorManagementType::OnlyViewTransform,
            eDRWColorManagementType::UseRenderSettings)) {
-    return scene->r.dither_intensity;
+    return scene.r.dither_intensity;
   }
   return 0.0f;
 }
 
-static eDRWColorManagementType drw_color_management_type_for_v3d(const Scene *scene,
-                                                                 const View3D *v3d)
+static eDRWColorManagementType drw_color_management_type_for_v3d(const Scene &scene,
+                                                                 const View3D &v3d)
 {
 
-  const bool use_workbench = BKE_scene_uses_blender_workbench(scene);
-  const bool use_scene_lights = ((v3d->shading.type == OB_MATERIAL) &&
-                                 (v3d->shading.flag & V3D_SHADING_SCENE_LIGHTS)) ||
-                                ((v3d->shading.type == OB_RENDER) &&
-                                 (v3d->shading.flag & V3D_SHADING_SCENE_LIGHTS_RENDER));
-  const bool use_scene_world = ((v3d->shading.type == OB_MATERIAL) &&
-                                (v3d->shading.flag & V3D_SHADING_SCENE_WORLD)) ||
-                               ((v3d->shading.type == OB_RENDER) &&
-                                (v3d->shading.flag & V3D_SHADING_SCENE_WORLD_RENDER));
-
-  if ((use_workbench && v3d->shading.type == OB_RENDER) || use_scene_lights || use_scene_world) {
+  const bool use_workbench = BKE_scene_uses_blender_workbench(&scene);
+  const bool use_scene_lights = ((v3d.shading.type == OB_MATERIAL) &&
+                                 (v3d.shading.flag & V3D_SHADING_SCENE_LIGHTS)) ||
+                                ((v3d.shading.type == OB_RENDER) &&
+                                 (v3d.shading.flag & V3D_SHADING_SCENE_LIGHTS_RENDER));
+  const bool use_scene_world = ((v3d.shading.type == OB_MATERIAL) &&
+                                (v3d.shading.flag & V3D_SHADING_SCENE_WORLD)) ||
+                               ((v3d.shading.type == OB_RENDER) &&
+                                (v3d.shading.flag & V3D_SHADING_SCENE_WORLD_RENDER));
+
+  if ((use_workbench && v3d.shading.type == OB_RENDER) || use_scene_lights || use_scene_world) {
     return eDRWColorManagementType::UseRenderSettings;
   }
-  if (v3d->shading.type >= OB_MATERIAL) {
+  if (v3d.shading.type >= OB_MATERIAL) {
     return eDRWColorManagementType::OnlyViewTransform;
   }
   return eDRWColorManagementType::Off;
@@ -105,12 +103,12 @@ static eDRWColorManagementType drw_color_management_type_for_space_node(const Sp
   return eDRWColorManagementType::Off;
 }
 
-static eDRWColorManagementType drw_color_management_type_get(const Scene *scene,
+static eDRWColorManagementType drw_color_management_type_get(const Scene &scene,
                                                              const View3D *v3d,
                                                              const SpaceLink *space_data)
 {
   if (v3d) {
-    return drw_color_management_type_for_v3d(scene, v3d);
+    return drw_color_management_type_for_v3d(scene, *v3d);
   }
   if (space_data) {
     switch (space_data->spacetype) {
@@ -129,11 +127,11 @@ static eDRWColorManagementType drw_color_management_type_get(const Scene *scene,
   return eDRWColorManagementType::UseRenderSettings;
 }
 
-static void viewport_settings_apply(GPUViewport *viewport,
-                                    const Scene *scene,
+static void viewport_settings_apply(GPUViewport &viewport,
+                                    const Scene &scene,
                                     const eDRWColorManagementType color_management_type)
 {
-  const ColorManagedDisplaySettings *display_settings = &scene->display_settings;
+  const ColorManagedDisplaySettings *display_settings = &scene.display_settings;
   ColorManagedViewSettings view_settings;
 
   switch (color_management_type) {
@@ -147,28 +145,28 @@ static void viewport_settings_apply(GPUViewport *viewport,
       /* Use only view transform + look and nothing else for lookdev without
        * scene lighting, as exposure depends on scene light intensity. */
       BKE_color_managed_view_settings_init_render(&view_settings, display_settings, NULL);
-      STRNCPY(view_settings.view_transform, scene->view_settings.view_transform);
-      STRNCPY(view_settings.look, scene->view_settings.look);
+      STRNCPY(view_settings.view_transform, scene.view_settings.view_transform);
+      STRNCPY(view_settings.look, scene.view_settings.look);
       break;
     }
     case eDRWColorManagementType::UseRenderSettings: {
       /* Use full render settings, for renders with scene lighting. */
-      view_settings = scene->view_settings;
+      view_settings = scene.view_settings;
       break;
     }
   }
 
   const float dither = dither_get(color_management_type, scene);
-  GPU_viewport_colorspace_set(viewport, &view_settings, display_settings, dither);
+  GPU_viewport_colorspace_set(&viewport, &view_settings, display_settings, dither);
 }
 
-static void viewport_color_management_set(GPUViewport *viewport)
+static void viewport_color_management_set(GPUViewport &viewport)
 {
   const DRWContextState *draw_ctx = DRW_context_state_get();
 
   const eDRWColorManagementType color_management_type = drw_color_management_type_get(
-      draw_ctx->scene, draw_ctx->v3d, draw_ctx->space_data);
-  viewport_settings_apply(viewport, draw_ctx->scene, color_management_type);
+      *draw_ctx->scene, draw_ctx->v3d, draw_ctx->space_data);
+  viewport_settings_apply(viewport, *draw_ctx->scene, color_management_type);
 }
 
 }  // namespace blender::draw::color_management
@@ -179,7 +177,7 @@ static void viewport_color_management_set(GPUViewport *viewport)
 
 void DRW_viewport_colormanagement_set(GPUViewport *viewport)
 {
-  blender::draw::color_management::viewport_color_management_set(viewport);
+  blender::draw::color_management::viewport_color_management_set(*viewport);
 }
 
 /* Draw texture to framebuffer without any color transforms */



More information about the Bf-blender-cvs mailing list