MacOS: Enable support for EDR rendering #105662

Merged
Brecht Van Lommel merged 26 commits from Jason-Fielder/blender:macos_EDR_support into main 2023-08-09 14:25:23 +02:00
2 changed files with 33 additions and 8 deletions
Showing only changes of commit 4131006728 - Show all commits

View File

@ -58,7 +58,6 @@ class RENDER_PT_color_management(RenderButtonsPanel, Panel):
'BLENDER_WORKBENCH_NEXT'}
def draw(self, context):
import gpu
layout = self.layout
layout.use_property_split = True
@ -81,17 +80,41 @@ class RENDER_PT_color_management(RenderButtonsPanel, Panel):
col.prop(view, "exposure")
col.prop(view, "gamma")
brecht marked this conversation as resolved Outdated

It's a bit of a hack as we can't automatically check for this in general, but I think graying it out for Filmic will help avoid some confusion:

if gpu.capabilities.hdr_support_get():
    sub = col.row()
    sub.active = view.view_transfrom != "Filmic"
    sub.prop(view, "use_hdr_view")
It's a bit of a hack as we can't automatically check for this in general, but I think graying it out for Filmic will help avoid some confusion: ``` if gpu.capabilities.hdr_support_get(): sub = col.row() sub.active = view.view_transfrom != "Filmic" sub.prop(view, "use_hdr_view") ```
# Only display HDR toggle for non-Filmic display transforms.
if gpu.capabilities.hdr_support_get():
sub = col.row()
sub.active = (view.view_transform != "Filmic" and view.view_transform != "Filmic Log")
sub.prop(view, "use_hdr_view")
col.separator()
col.prop(scene.sequencer_colorspace_settings, "name", text="Sequencer")
class RENDER_PT_color_management_display_settings(RenderButtonsPanel, Panel):
bl_label = "Display"
bl_parent_id = "RENDER_PT_color_management"
bl_options = {'DEFAULT_CLOSED'}
COMPAT_ENGINES = {
'BLENDER_RENDER',
'BLENDER_EEVEE',
'BLENDER_EEVEE_NEXT',
'BLENDER_WORKBENCH',
'BLENDER_WORKBENCH_NEXT'}
def draw(self, context):
layout = self.layout
layout.use_property_split = True
layout.use_property_decorate = False # No animation.
scene = context.scene
view = scene.view_settings
# Only enable display sub-section if HDR support is available.
import gpu
layout.enabled = gpu.capabilities.hdr_support_get()
# Only display HDR toggle for non-Filmic display transforms.
col = layout.column(align=True)
sub = col.row()
sub.active = (view.view_transform != "Filmic" and view.view_transform != "Filmic Log")
sub.prop(view, "use_hdr_view")
class RENDER_PT_color_management_curves(RenderButtonsPanel, Panel):
bl_label = "Use Curves"
bl_parent_id = "RENDER_PT_color_management"
@ -1231,6 +1254,7 @@ classes = (
RENDER_PT_opengl_film,
RENDER_PT_hydra_debug,
RENDER_PT_color_management,
RENDER_PT_color_management_display_settings,
RENDER_PT_color_management_curves,
RENDER_PT_simplify,
RENDER_PT_simplify_viewport,

View File

@ -1279,7 +1279,8 @@ static void rna_def_colormanage(BlenderRNA *brna)
prop,
"High Dynamic Range",
"Enable high dynamic range display in rendered viewport, uncapping display brightness. This "
"requires a monitor with HDR support and a view transform designed for HDR");
"requires a monitor with HDR support and a view transform designed for HDR. "
"'Filmic' does not generate HDR colors");
RNA_def_property_update(prop, NC_WINDOW, "rna_ColorManagedColorspaceSettings_reload_update");
/* ** Color-space ** */