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:
authorJeroen Bakker <jeroen@blender.org>2021-08-31 16:44:30 +0300
committerJeroen Bakker <jeroen@blender.org>2021-08-31 16:45:05 +0300
commit99b1e8428dde21f4e9836bfbe47d8b7b0f48c014 (patch)
tree9a89693a498c5606b202cde11286feb526cce617 /source/blender/draw
parentb18122451f8185ade9fc1e9aff5cc2f03d4fa040 (diff)
Cleanup: pass value by ref in draw_color_management
Diffstat (limited to 'source/blender/draw')
-rw-r--r--source/blender/draw/intern/draw_color_management.cc60
1 files changed, 29 insertions, 31 deletions
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 */