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:
authorClément Foucault <foucault.clem@gmail.com>2018-11-29 21:54:23 +0300
committerClément Foucault <foucault.clem@gmail.com>2018-11-29 23:52:36 +0300
commit844788a36cb0e1efdf3a2010ee67abcb7c46474c (patch)
tree202fbd26d4b397dbcf0eaae063e555591233542d /source/blender/makesrna/intern/rna_space.c
parent8f4ab480bfe81f40b59b20780cb452736fe3af1d (diff)
Workbench: Add back studio lighting presets
This changes a bit how the userprefs solid lights works. They are not visible until enabling the "Edit Solid Light" checkbox. Once enabled the current studiolight used for solid mode will be overwritten. Once the lighting settings are tweaked, the user can click the "Save as Studio light" button to save the current settings. This makes it easy to create new lighting without messing the other presets. The studio lights are stored as ASCII files on the disk using a dead simple custom format. The UI/UX is not perfect and will be improved in other commits. Also includes: * Separate LookDev HDRI selection from Solid Lights * Hide LookDev HDRIs from the Solid Lights selection list
Diffstat (limited to 'source/blender/makesrna/intern/rna_space.c')
-rw-r--r--source/blender/makesrna/intern/rna_space.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index fd6e7436351..74fb09f8088 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -754,9 +754,12 @@ static PointerRNA rna_View3DShading_selected_studio_light_get(PointerRNA *ptr)
if (shading->type == OB_SOLID && shading->light == V3D_LIGHTING_MATCAP) {
sl = BKE_studiolight_find(shading->matcap, STUDIOLIGHT_FLAG_ALL);
}
- else {
+ else if (shading->type == OB_SOLID && shading->light == V3D_LIGHTING_STUDIO) {
sl = BKE_studiolight_find(shading->studio_light, STUDIOLIGHT_FLAG_ALL);
}
+ else {
+ sl = BKE_studiolight_find(shading->lookdev_light, STUDIOLIGHT_FLAG_ALL);
+ }
return rna_pointer_inherit_refine(ptr, &RNA_StudioLight, sl);
}
@@ -805,13 +808,14 @@ static int rna_View3DShading_studio_light_get(PointerRNA *ptr)
View3DShading *shading = (View3DShading *)ptr->data;
char *dna_storage = shading->studio_light;
- int flag = STUDIOLIGHT_ORIENTATIONS_SOLID;
+ int flag = STUDIOLIGHT_TYPE_STUDIO;
if (shading->type == OB_SOLID && shading->light == V3D_LIGHTING_MATCAP) {
flag = STUDIOLIGHT_TYPE_MATCAP;
dna_storage = shading->matcap;
}
else if (shading->type == OB_MATERIAL) {
- flag = STUDIOLIGHT_ORIENTATIONS_MATERIAL_MODE;
+ flag = STUDIOLIGHT_TYPE_WORLD;
+ dna_storage = shading->lookdev_light;
}
StudioLight *sl = BKE_studiolight_find(dna_storage, flag);
if (sl) {
@@ -828,13 +832,14 @@ static void rna_View3DShading_studio_light_set(PointerRNA *ptr, int value)
View3DShading *shading = (View3DShading *)ptr->data;
char *dna_storage = shading->studio_light;
- int flag = STUDIOLIGHT_ORIENTATIONS_SOLID;
+ int flag = STUDIOLIGHT_TYPE_STUDIO;
if (shading->type == OB_SOLID && shading->light == V3D_LIGHTING_MATCAP) {
flag = STUDIOLIGHT_TYPE_MATCAP;
dna_storage = shading->matcap;
}
else if (shading->type == OB_MATERIAL) {
- flag = STUDIOLIGHT_ORIENTATIONS_MATERIAL_MODE;
+ flag = STUDIOLIGHT_TYPE_WORLD;
+ dna_storage = shading->lookdev_light;
}
StudioLight *sl = BKE_studiolight_findindex(value, flag);
if (sl) {
@@ -876,8 +881,7 @@ static const EnumPropertyItem *rna_View3DShading_studio_light_itemf(
switch (shading->type) {
case OB_SOLID:
case OB_TEXTURE:
- show_studiolight = (
- (sl->flag & (STUDIOLIGHT_TYPE_WORLD | STUDIOLIGHT_TYPE_STUDIO)) != 0);
+ show_studiolight = ((sl->flag & STUDIOLIGHT_TYPE_STUDIO) != 0);
break;
case OB_MATERIAL: