forked from bartvdbraak/blender
Color Management: update configuration, remove legacy transforms
* Replace Log view transform with Filmic Log. * Remove Rec.709, DCI-P3 displays that were incomplete and outdated. * Remove outdated RRT and Film transforms, replaced by Filmic. * Remove camera responsive curves that don't work with HDR colors. * Rename Default view transform to Standard. We're breaking compatibility now for 2.80, so that we can add future improvements on a clean config. Part of the code was contributed by George Vogiatzis in D4782. Differential Revision: https://developer.blender.org/D4900
This commit is contained in:
parent
b9ce1fee42
commit
d2e139e44e
@ -283,7 +283,7 @@ const char *FallbackImpl::configGetDisplay(OCIO_ConstConfigRcPtr * /*config*/, i
|
||||
const char *FallbackImpl::configGetDefaultView(OCIO_ConstConfigRcPtr * /*config*/,
|
||||
const char * /*display*/)
|
||||
{
|
||||
return "Default";
|
||||
return "Standard";
|
||||
}
|
||||
|
||||
int FallbackImpl::configGetNumViews(OCIO_ConstConfigRcPtr * /*config*/, const char * /*display*/)
|
||||
@ -296,7 +296,7 @@ const char *FallbackImpl::configGetView(OCIO_ConstConfigRcPtr * /*config*/,
|
||||
int index)
|
||||
{
|
||||
if (index == 0) {
|
||||
return "Default";
|
||||
return "Standard";
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
@ -45,32 +45,20 @@ roles:
|
||||
|
||||
displays:
|
||||
sRGB:
|
||||
- !<View> {name: Default, colorspace: sRGB}
|
||||
- !<View> {name: Standard, colorspace: sRGB}
|
||||
- !<View> {name: Filmic, colorspace: Filmic sRGB}
|
||||
- !<View> {name: RRT, colorspace: rrt_srgb}
|
||||
- !<View> {name: Film, colorspace: srgb8}
|
||||
- !<View> {name: Filmic Log, colorspace: Filmic Log}
|
||||
- !<View> {name: Raw, colorspace: Raw}
|
||||
- !<View> {name: Log, colorspace: lg10}
|
||||
- !<View> {name: False Color, colorspace: False Color}
|
||||
DCI-P3:
|
||||
- !<View> {name: RRT, colorspace: rrt_p3dci}
|
||||
- !<View> {name: Film, colorspace: p3dci8}
|
||||
- !<View> {name: Raw, colorspace: Raw}
|
||||
- !<View> {name: Log, colorspace: adx10}
|
||||
Rec709:
|
||||
- !<View> {name: Default, colorspace: nuke_rec709}
|
||||
- !<View> {name: RRT, colorspace: rrt_rec709}
|
||||
XYZ:
|
||||
- !<View> {name: Default, colorspace: XYZ}
|
||||
- !<View> {name: RRT, colorspace: rrt_xyz}
|
||||
- !<View> {name: Standard, colorspace: XYZ}
|
||||
- !<View> {name: DCI, colorspace: dci_xyz}
|
||||
- !<View> {name: Raw, colorspace: Raw}
|
||||
- !<View> {name: Log, colorspace: adx10}
|
||||
None:
|
||||
- !<View> {name: Default, colorspace: Raw}
|
||||
- !<View> {name: Standard, colorspace: Raw}
|
||||
|
||||
active_displays: [sRGB, DCIP3, Rec709, XYZ, None]
|
||||
active_views: [Default, Filmic, RRT, Raw, Log]
|
||||
active_displays: [sRGB, XYZ, None]
|
||||
active_views: [Standard, Filmic, Filmic Log, Raw]
|
||||
|
||||
colorspaces:
|
||||
- !<ColorSpace>
|
||||
@ -93,26 +81,6 @@ colorspaces:
|
||||
allocation: uniform
|
||||
allocationvars: [0, 1]
|
||||
|
||||
- !<ColorSpace>
|
||||
name: adx10
|
||||
family: display
|
||||
equalitygroup:
|
||||
bitdepth: 10ui
|
||||
description: |
|
||||
Film Scan, using the 10-bit Academy Density Encoding
|
||||
|
||||
isdata: false
|
||||
allocation: uniform
|
||||
allocationvars: [0, 1]
|
||||
to_reference: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: adx_adx10_to_cdd.spimtx}
|
||||
- !<FileTransform> {src: adx_cdd_to_cid.spimtx}
|
||||
- !<FileTransform> {src: adx_cid_to_rle.spi1d, interpolation: linear}
|
||||
- !<LogTransform> {base: 10, direction: inverse}
|
||||
- !<FileTransform> {src: adx_exp_to_aces.spimtx}
|
||||
- !<FileTransform> {src: rec709_to_aces.spimtx, interpolation: linear, direction: inverse}
|
||||
|
||||
- !<ColorSpace>
|
||||
name: Linear ACES
|
||||
family: linear
|
||||
@ -125,20 +93,6 @@ colorspaces:
|
||||
allocationvars: [-8.5, 5]
|
||||
to_reference: !<FileTransform> {src: rec709_to_aces.spimtx, interpolation: linear, direction: inverse}
|
||||
|
||||
- !<ColorSpace>
|
||||
name: rrt_srgb
|
||||
family: display
|
||||
equalitygroup:
|
||||
bitdepth: 32f
|
||||
isdata: false
|
||||
allocation: uniform
|
||||
allocationvars: [0, 1]
|
||||
from_reference: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: rec709_to_aces.spimtx, interpolation: nearest}
|
||||
- !<AllocationTransform> {allocation: lg2, vars: [-8.5, 5]}
|
||||
- !<FileTransform> {src: rrt_ut33_sRGB.spi3d, interpolation: tetrahedral}
|
||||
|
||||
- !<ColorSpace>
|
||||
name: nuke_rec709
|
||||
family: display
|
||||
@ -153,34 +107,6 @@ colorspaces:
|
||||
children:
|
||||
- !<FileTransform> {src: rec709.spi1d, interpolation: linear}
|
||||
|
||||
- !<ColorSpace>
|
||||
name: rrt_rec709
|
||||
family: display
|
||||
equalitygroup:
|
||||
bitdepth: 32f
|
||||
isdata: false
|
||||
allocation: uniform
|
||||
allocationvars: [0, 1]
|
||||
from_reference: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: rec709_to_aces.spimtx, interpolation: nearest}
|
||||
- !<AllocationTransform> {allocation: lg2, vars: [-8.5, 5]}
|
||||
- !<FileTransform> {src: rrt_ut33_rec709.spi3d, interpolation: tetrahedral}
|
||||
|
||||
- !<ColorSpace>
|
||||
name: rrt_p3dci
|
||||
family: display
|
||||
equalitygroup:
|
||||
bitdepth: 32f
|
||||
isdata: false
|
||||
allocation: uniform
|
||||
allocationvars: [0, 1]
|
||||
from_reference: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: rec709_to_aces.spimtx, interpolation: nearest}
|
||||
- !<AllocationTransform> {allocation: lg2, vars: [-8.5, 5]}
|
||||
- !<FileTransform> {src: rrt_ut33_p3dci.spi3d, interpolation: tetrahedral}
|
||||
|
||||
- !<ColorSpace>
|
||||
name: XYZ
|
||||
family: linear
|
||||
@ -193,20 +119,6 @@ colorspaces:
|
||||
children:
|
||||
- !<FileTransform> {src: srgb_to_xyz.spimtx, interpolation: linear}
|
||||
|
||||
- !<ColorSpace>
|
||||
name: rrt_xyz
|
||||
family: display
|
||||
equalitygroup:
|
||||
bitdepth: 32f
|
||||
isdata: false
|
||||
allocation: uniform
|
||||
allocationvars: [0, 1]
|
||||
from_reference: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: rec709_to_aces.spimtx, interpolation: nearest}
|
||||
- !<AllocationTransform> {allocation: lg2, vars: [-8.5, 5]}
|
||||
- !<FileTransform> {src: rrt_ut33_dcdm.spi3d, interpolation: tetrahedral}
|
||||
|
||||
- !<ColorSpace>
|
||||
name: dci_xyz
|
||||
family: display
|
||||
@ -235,20 +147,6 @@ colorspaces:
|
||||
children:
|
||||
- !<FileTransform> {src: lg10.spi1d, interpolation: nearest}
|
||||
|
||||
- !<ColorSpace>
|
||||
name: srgb8
|
||||
family: display
|
||||
equalitygroup:
|
||||
bitdepth: 8ui
|
||||
description: |
|
||||
RGB display space for the sRGB standard.
|
||||
isdata: false
|
||||
allocation: uniform
|
||||
from_reference: !<GroupTransform>
|
||||
children:
|
||||
- !<ColorSpaceTransform> {src: Linear, dst: lg10}
|
||||
- !<FileTransform> {src: spi_ocio_srgb_test.spi3d, interpolation: linear}
|
||||
|
||||
- !<ColorSpace>
|
||||
name: sRGB
|
||||
family:
|
||||
@ -262,19 +160,6 @@ colorspaces:
|
||||
to_reference: !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
from_reference: !<FileTransform> {src: srgb_inv.spi1d, interpolation: linear}
|
||||
|
||||
- !<ColorSpace>
|
||||
name: VD16
|
||||
family: vd
|
||||
equalitygroup:
|
||||
bitdepth: 16ui
|
||||
description: |
|
||||
The simple video conversion from a gamma 2.2 sRGB space
|
||||
isdata: false
|
||||
allocation: uniform
|
||||
to_reference: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: vd16.spi1d, interpolation: nearest}
|
||||
|
||||
- !<ColorSpace>
|
||||
name: Non-Color
|
||||
family: raw
|
||||
@ -286,20 +171,6 @@ colorspaces:
|
||||
allocation: uniform
|
||||
allocationvars: [0, 1]
|
||||
|
||||
- !<ColorSpace>
|
||||
name: p3dci8
|
||||
family: display
|
||||
equalitygroup:
|
||||
bitdepth: 8ui
|
||||
description: |
|
||||
p3dci8 :rgb display space for gamma 2.6 P3 projection.
|
||||
isdata: false
|
||||
allocation: uniform
|
||||
from_reference: !<GroupTransform>
|
||||
children:
|
||||
- !<ColorSpaceTransform> {src: Linear, dst: lg10}
|
||||
- !<FileTransform> {src: colorworks_filmlg_to_p3.3dl, interpolation: linear}
|
||||
|
||||
- !<ColorSpace>
|
||||
name: Filmic Log
|
||||
family: log
|
||||
@ -372,7 +243,7 @@ looks:
|
||||
- !<FileTransform> {src: filmic_to_0-70_1-03.spi1d, interpolation: linear, direction: inverse}
|
||||
|
||||
- !<Look>
|
||||
name: Filmic - Base Contrast
|
||||
name: Filmic - Medium Contrast
|
||||
process_space: Filmic Log
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
@ -402,537 +273,55 @@ looks:
|
||||
- !<FileTransform> {src: filmic_to_0-70_1-03.spi1d, interpolation: linear, direction: inverse}
|
||||
|
||||
- !<Look>
|
||||
name: Agfa Agfacolor Futura 100
|
||||
process_space: linear
|
||||
name: Standard - Very High Contrast
|
||||
process_space: Filmic Log
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/agfa_agfacolor_futura_100.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
children:
|
||||
- !<FileTransform> {src: filmic_to_1.20_1-00.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: filmic_to_0-70_1-03.spi1d, interpolation: linear, direction: inverse}
|
||||
|
||||
- !<Look>
|
||||
name: Agfa Agfacolor Futura 200
|
||||
process_space: linear
|
||||
name: Standard - High Contrast
|
||||
process_space: Filmic Log
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/agfa_agfacolor_futura_200.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
children:
|
||||
- !<FileTransform> {src: filmic_to_0.99_1-0075.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: filmic_to_0-70_1-03.spi1d, interpolation: linear, direction: inverse}
|
||||
|
||||
- !<Look>
|
||||
name: Agfa Agfacolor Futura 400
|
||||
process_space: linear
|
||||
name: Standard - Medium High Contrast
|
||||
process_space: Filmic Log
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/agfa_agfacolor_futura_400.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
children:
|
||||
- !<FileTransform> {src: filmic_to_0-85_1-011.spi1d, interpolation: best}
|
||||
- !<FileTransform> {src: filmic_to_0-70_1-03.spi1d, interpolation: linear, direction: inverse}
|
||||
|
||||
- !<Look>
|
||||
name: Agfa Agfacolor Futura II 100
|
||||
process_space: linear
|
||||
name: Standard - Base Contrast
|
||||
process_space: Filmic Log
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/agfa_agfacolor_futura_ii_100.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
children:
|
||||
|
||||
- !<Look>
|
||||
name: Agfa Agfacolor Futura II 200
|
||||
process_space: linear
|
||||
name: Standard - Medium Low Contrast
|
||||
process_space: Filmic Log
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/agfa_agfacolor_futura_ii_200.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
children:
|
||||
- !<FileTransform> {src: filmic_to_0-60_1-04.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: filmic_to_0-70_1-03.spi1d, interpolation: linear, direction: inverse}
|
||||
|
||||
- !<Look>
|
||||
name: Agfa Agfacolor Futura II 400
|
||||
process_space: linear
|
||||
name: Standard - Low Contrast
|
||||
process_space: Filmic Log
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/agfa_agfacolor_futura_ii_400.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
children:
|
||||
- !<FileTransform> {src: filmic_to_0-48_1-09.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: filmic_to_0-70_1-03.spi1d, interpolation: linear, direction: inverse}
|
||||
|
||||
- !<Look>
|
||||
name: Agfa Agfacolor HDC 100 plus
|
||||
process_space: linear
|
||||
name: Standard - Very Low Contrast
|
||||
process_space: Filmic Log
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/agfa_agfacolor_hdc_100_plus.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Agfa Agfacolor HDC 400 plus
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/agfa_agfacolor_hdc_400_plus.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Agfa Agfacolor HDC 200 plus
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/agfa_agfacolor_hdc_200_plus.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Agfa Agfacolor Optima II 100
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/agfa_agfacolor_optima_ii_100.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Agfa Agfacolor Optima II 200
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/agfa_agfacolor_optima_ii_200.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Agfa Agfacolor Ultra 050
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/agfa_agfacolor_ultra_050.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Agfa Agfacolor Vista 100
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/agfa_agfacolor_vista_100.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Agfa Agfacolor Vista 200
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/agfa_agfacolor_vista_200.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Agfa Agfacolor Vista 400
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/agfa_agfacolor_vista_400.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Agfa Agfacolor Vista 800
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/agfa_agfacolor_vista_800.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Agfa Agfachrome CT Precisa 100
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/agfa_agfachrome_ct_precisa_100.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Agfa Agfachrome CT Precisa 200
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/agfa_agfachrome_ct_precisa_200.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Agfa Agfachrome RSX2 050
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/agfa_agfachrome_rsx2_050.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Agfa Agfachrome RSX2 100
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/agfa_agfachrome_rsx2_100.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Agfa Agfachrome RSX2 200
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/agfa_agfachrome_rsx2_200.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Agfa Advantix 100
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/agfa_advantix_100.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Agfa Advantix 200
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/agfa_advantix_200.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Agfa Advantix 400
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/agfa_advantix_400.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak Gold 100
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_gold_100.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak Gold 200
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_gold_200.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak Max Zoom 800
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_max_zoom_800.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak Portra 100T
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_portra_100t.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak Portra 160NC
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_portra_160nc.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak Portra 160VC
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_portra_160vc.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak Portra 800
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_portra_800.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak Portra 400VC
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_portra_400vc.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak Portra 400NC
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_portra_400nc.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak Ektachrome 100 plus
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_ektachrome_100_plus.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak Ektachrome 320T
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_ektachrome_320t.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak Ektachrome 400X
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_ektachrome_400x.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak Ektachrome 64
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_ektachrome_64.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak Ektachrome 64T
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_ektachrome_64t.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak Ektachrome E100S
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_ektachrome_e100s.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak Ektachrome 100
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_ektachrome_100.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak Kodachrome 200
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_kodachrome_200.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak Kodachrome 25
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_kodachrome_25.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak Kodachrome 64
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_kodachrome_64.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak DSCS 3151
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_dscs_3151.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak DSCS 3152
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_dscs_3152.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak DSCS 3153
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_dscs_3153.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak DSCS 3154
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_dscs_3154.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak DSCS 3155
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_dscs_3155.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak DSCS 3156
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_dscs_3156.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak KAI-0311
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_kai-0311.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak KAF-2001
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_kaf-2001.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak KAF-3000
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_kaf-3000.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak KAI-0372
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_kai-0372.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Kodak KAI-1010
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/kodak_kai-1010.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Eastman Double X Neg 12min
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/eastman_double_x_neg_12min.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Eastman Double X Neg 6min
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/eastman_double_x_neg_6min.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Eastman Double X Neg 5min
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/eastman_double_x_neg_5min.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Eastman Double X Neg 4min
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/eastman_double_x_neg_4min.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Fujifilm F-125
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/fujifilm_f-125.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Fujifilm F-250
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/fujifilm_f-250.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Fujifilm F-400
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/fujifilm_f-400.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Fujifilm FCI
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/fujifilm_fci.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Fujifilm FP2900Z
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/fujifilm_fp2900z.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Canon Optura 981111
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/canon_optura_981111.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Canon Optura 981113
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/canon_optura_981113.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Canon Optura 981114
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/canon_optura_981114.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
|
||||
- !<Look>
|
||||
name: Canon Optura 981111.SLRR
|
||||
process_space: linear
|
||||
transform: !<GroupTransform>
|
||||
children:
|
||||
- !<FileTransform> {src: film_response/canon_optura_981111.slrr.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: srgb.spi1d, interpolation: linear}
|
||||
children:
|
||||
- !<FileTransform> {src: filmic_to_0-35_1-30.spi1d, interpolation: linear}
|
||||
- !<FileTransform> {src: filmic_to_0-70_1-03.spi1d, interpolation: linear, direction: inverse}
|
||||
|
@ -1,4 +0,0 @@
|
||||
2.046 0.0 0.0 -12451.65
|
||||
0.0 2.046 0.0 -12451.65
|
||||
0.0 0.0 2.046 -12451.65
|
||||
|
@ -1,4 +0,0 @@
|
||||
0.75573 0.22197 0.02230 0
|
||||
0.05901 0.96928 -0.02829 0
|
||||
0.16134 0.07406 0.76460 0
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,4 +0,0 @@
|
||||
0.72286 0.12630 0.15084 0
|
||||
0.11923 0.76418 0.11659 0
|
||||
0.01427 0.08213 0.90359 0
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -27,7 +27,7 @@
|
||||
* \note Use #STRINGIFY() rather than defining with quotes.
|
||||
*/
|
||||
#define BLENDER_VERSION 280
|
||||
#define BLENDER_SUBVERSION 70
|
||||
#define BLENDER_SUBVERSION 71
|
||||
/** Several breakages with 280, e.g. collections vs layers. */
|
||||
#define BLENDER_MINVERSION 280
|
||||
#define BLENDER_MINSUBVERSION 0
|
||||
|
@ -3461,6 +3461,32 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain)
|
||||
}
|
||||
}
|
||||
|
||||
if (!MAIN_VERSION_ATLEAST(bmain, 280, 71)) {
|
||||
/* This assumes the Blender builtin config. Depending on the OCIO
|
||||
* environment variable for versioning is weak, and these deprecated view
|
||||
* transforms and look names don't seem to exist in other commonly used
|
||||
* OCIO configs so .blend files created for those would be unaffected. */
|
||||
for (Scene *scene = bmain->scenes.first; scene; scene = scene->id.next) {
|
||||
ColorManagedViewSettings *view_settings;
|
||||
view_settings = &scene->view_settings;
|
||||
|
||||
if (STREQ(view_settings->view_transform, "Default")) {
|
||||
STRNCPY(view_settings->view_transform, "Standard");
|
||||
}
|
||||
else if (STREQ(view_settings->view_transform, "RRT") ||
|
||||
STREQ(view_settings->view_transform, "Film")) {
|
||||
STRNCPY(view_settings->view_transform, "Filmic");
|
||||
}
|
||||
else if (STREQ(view_settings->view_transform, "Log")) {
|
||||
STRNCPY(view_settings->view_transform, "Filmic Log");
|
||||
}
|
||||
|
||||
if (STREQ(view_settings->look, "Filmic - Base Contrast")) {
|
||||
STRNCPY(view_settings->look, "None");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
/* Versioning code until next subversion bump goes here. */
|
||||
}
|
||||
|
@ -371,8 +371,8 @@ void BLO_update_defaults_startup_blend(Main *bmain, const char *app_template)
|
||||
scene->r.displaymode = R_OUTPUT_WINDOW;
|
||||
|
||||
if (app_template && STREQ(app_template, "Video_Editing")) {
|
||||
/* Filmic is too slow, use default until it is optimized. */
|
||||
STRNCPY(scene->view_settings.view_transform, "Default");
|
||||
/* Filmic is too slow, use standard until it is optimized. */
|
||||
STRNCPY(scene->view_settings.view_transform, "Standard");
|
||||
STRNCPY(scene->view_settings.look, "None");
|
||||
}
|
||||
else {
|
||||
|
@ -747,6 +747,16 @@ void colormanagement_exit(void)
|
||||
|
||||
/*********************** Internal functions *************************/
|
||||
|
||||
static bool colormanage_compatible_look(ColorManagedLook *look, const char *view_name)
|
||||
{
|
||||
if (look->is_noop) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* Skip looks only relevant to specific view transforms. */
|
||||
return (look->view[0] == 0 || (view_name && STREQ(look->view, view_name)));
|
||||
}
|
||||
|
||||
void colormanage_cache_free(ImBuf *ibuf)
|
||||
{
|
||||
if (ibuf->display_buffer_flags) {
|
||||
@ -840,7 +850,7 @@ static OCIO_ConstProcessorRcPtr *create_display_buffer_processor(const char *loo
|
||||
OCIO_displayTransformSetView(dt, view_transform);
|
||||
OCIO_displayTransformSetDisplay(dt, display);
|
||||
|
||||
if (look_descr->is_noop == false) {
|
||||
if (look_descr->is_noop == false && colormanage_compatible_look(look_descr, view_transform)) {
|
||||
OCIO_displayTransformSetLooksOverrideEnabled(dt, true);
|
||||
OCIO_displayTransformSetLooksOverride(dt, look);
|
||||
}
|
||||
@ -989,9 +999,9 @@ static OCIO_ConstProcessorRcPtr *display_to_scene_linear_processor(ColorManagedD
|
||||
void IMB_colormanagement_init_default_view_settings(
|
||||
ColorManagedViewSettings *view_settings, const ColorManagedDisplaySettings *display_settings)
|
||||
{
|
||||
/* First, try use "Default" view transform of the requested device. */
|
||||
/* First, try use "Standard" view transform of the requested device. */
|
||||
ColorManagedView *default_view = colormanage_view_get_named_for_display(
|
||||
display_settings->display_device, "Default");
|
||||
display_settings->display_device, "Standard");
|
||||
/* If that fails, we fall back to the default view transform of the display
|
||||
* as per OCIO configuration. */
|
||||
if (default_view == NULL) {
|
||||
@ -3215,17 +3225,9 @@ void IMB_colormanagement_look_items_add(struct EnumPropertyItem **items,
|
||||
const char *view_name)
|
||||
{
|
||||
ColorManagedLook *look;
|
||||
const char *view_filter = NULL;
|
||||
|
||||
/* Test if this view transform is limited to specific looks. */
|
||||
for (look = global_looks.first; look; look = look->next) {
|
||||
if (STREQ(look->view, view_name)) {
|
||||
view_filter = view_name;
|
||||
}
|
||||
}
|
||||
|
||||
for (look = global_looks.first; look; look = look->next) {
|
||||
if (!look->is_noop && view_filter && !STREQ(look->view, view_filter)) {
|
||||
if (!colormanage_compatible_look(look, view_name)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -1136,7 +1136,7 @@ static void rna_def_colormanage(BlenderRNA *brna)
|
||||
PropertyRNA *prop;
|
||||
|
||||
static const EnumPropertyItem display_device_items[] = {
|
||||
{0, "DEFAULT", 0, "Default", ""},
|
||||
{0, "NONE", 0, "None", ""},
|
||||
{0, NULL, 0, NULL, NULL},
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user