diff options
16 files changed, 72 insertions, 81 deletions
diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py index 41a786a41da..4206adcfb91 100644 --- a/release/scripts/startup/bl_operators/wm.py +++ b/release/scripts/startup/bl_operators/wm.py @@ -2432,11 +2432,11 @@ class WM_OT_studiolight_install(Operator): default="*.png;*.jpg;*.hdr;*.exr", options={'HIDDEN'}, ) - orientation: EnumProperty( + type: EnumProperty( items=( ('MATCAP', "MatCap", ""), ('WORLD', "World", ""), - ('CAMERA', "Camera", ""), + ('STUDIO', "Studio", ""), ) ) @@ -2453,7 +2453,7 @@ class WM_OT_studiolight_install(Operator): self.report({'ERROR'}, "Failed to get Studio Light path") return {'CANCELLED'} - path_studiolights = pathlib.Path(path_studiolights, "studiolights", self.orientation.lower()) + path_studiolights = pathlib.Path(path_studiolights, "studiolights", self.type.lower()) if not path_studiolights.exists(): try: path_studiolights.mkdir(parents=True, exist_ok=True) @@ -2462,7 +2462,7 @@ class WM_OT_studiolight_install(Operator): for filepath in filepaths: shutil.copy(str(filepath), str(path_studiolights)) - userpref.studio_lights.new(str(path_studiolights.joinpath(filepath.name)), self.orientation) + userpref.studio_lights.new(str(path_studiolights.joinpath(filepath.name)), self.type) # print message msg = ( diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py index 4d961ef347a..72b07d55f70 100644 --- a/release/scripts/startup/bl_ui/space_userpref.py +++ b/release/scripts/startup/bl_ui/space_userpref.py @@ -45,9 +45,9 @@ class USERPREF_HT_header(Header): layout.operator("wm.addon_refresh", icon='FILE_REFRESH') layout.menu("USERPREF_MT_addons_online_resources") elif userpref.active_section == 'LIGHTS': - layout.operator('wm.studiolight_install', text="Add MatCap").orientation = 'MATCAP' - layout.operator('wm.studiolight_install', text="Add World HDRI").orientation = 'WORLD' - layout.operator('wm.studiolight_install', text="Add Camera HDRI").orientation = 'CAMERA' + layout.operator('wm.studiolight_install', text="Add MatCap").type = 'MATCAP' + layout.operator('wm.studiolight_install', text="Add LookDev HDRI").type = 'WORLD' + layout.operator('wm.studiolight_install', text="Add Studio Light").type = 'STUDIO' elif userpref.active_section == 'THEMES': layout.operator("wm.theme_install", icon='FILEBROWSER') layout.operator("ui.reset_default_theme", icon='LOOP_BACK') @@ -1492,7 +1492,7 @@ class StudioLightPanelMixin(): return (userpref.active_section == 'LIGHTS') def _get_lights(self, userpref): - return [light for light in userpref.studio_lights if light.is_user_defined and light.orientation == self.sl_orientation] + return [light for light in userpref.studio_lights if light.is_user_defined and light.type == self.sl_type] def draw(self, context): layout = self.layout @@ -1518,22 +1518,17 @@ class StudioLightPanelMixin(): class USERPREF_PT_studiolight_matcaps(Panel, StudioLightPanelMixin): bl_label = "MatCaps" - sl_orientation = 'MATCAP' + sl_type = 'MATCAP' class USERPREF_PT_studiolight_world(Panel, StudioLightPanelMixin): - bl_label = "World HDRI" - sl_orientation = 'WORLD' - - -class USERPREF_PT_studiolight_camera(Panel, StudioLightPanelMixin): - bl_label = "Camera HDRI" - sl_orientation = 'CAMERA' + bl_label = "LookDev HDRIs" + sl_type = 'WORLD' class USERPREF_PT_studiolight_lights(Panel, StudioLightPanelMixin): bl_label = "Studio Lights" - sl_orientation = 'CAMERA' + sl_type = 'STUDIO' @classmethod def poll(cls, context): @@ -1593,7 +1588,6 @@ classes = ( USERPREF_PT_studiolight_lights, USERPREF_PT_studiolight_matcaps, USERPREF_PT_studiolight_world, - USERPREF_PT_studiolight_camera, ) if __name__ == "__main__": # only for live edit. diff --git a/source/blender/blenkernel/BKE_studiolight.h b/source/blender/blenkernel/BKE_studiolight.h index 7ec98c99c3f..6616af355ac 100644 --- a/source/blender/blenkernel/BKE_studiolight.h +++ b/source/blender/blenkernel/BKE_studiolight.h @@ -82,9 +82,9 @@ enum StudioLightFlag { /* STUDIOLIGHT_LIGHT_DIRECTION_CALCULATED = (1 << 1), */ STUDIOLIGHT_INTERNAL = (1 << 2), STUDIOLIGHT_EXTERNAL_FILE = (1 << 3), - STUDIOLIGHT_ORIENTATION_CAMERA = (1 << 4), - STUDIOLIGHT_ORIENTATION_WORLD = (1 << 5), - STUDIOLIGHT_ORIENTATION_VIEWNORMAL = (1 << 6), + STUDIOLIGHT_TYPE_STUDIO = (1 << 4), + STUDIOLIGHT_TYPE_WORLD = (1 << 5), + STUDIOLIGHT_TYPE_MATCAP = (1 << 6), STUDIOLIGHT_EXTERNAL_IMAGE_LOADED = (1 << 7), STUDIOLIGHT_EQUIRECT_IRRADIANCE_IMAGE_CALCULATED = (1 << 8), STUDIOLIGHT_EQUIRECT_RADIANCE_GPUTEXTURE = (1 << 9), @@ -95,9 +95,9 @@ enum StudioLightFlag { }; #define STUDIOLIGHT_FLAG_ALL (STUDIOLIGHT_INTERNAL | STUDIOLIGHT_EXTERNAL_FILE) -#define STUDIOLIGHT_FLAG_ORIENTATIONS (STUDIOLIGHT_ORIENTATION_CAMERA | STUDIOLIGHT_ORIENTATION_WORLD | STUDIOLIGHT_ORIENTATION_VIEWNORMAL) -#define STUDIOLIGHT_ORIENTATIONS_MATERIAL_MODE (STUDIOLIGHT_ORIENTATION_WORLD) -#define STUDIOLIGHT_ORIENTATIONS_SOLID (STUDIOLIGHT_INTERNAL | STUDIOLIGHT_ORIENTATION_CAMERA | STUDIOLIGHT_ORIENTATION_WORLD) +#define STUDIOLIGHT_FLAG_ORIENTATIONS (STUDIOLIGHT_TYPE_STUDIO | STUDIOLIGHT_TYPE_WORLD | STUDIOLIGHT_TYPE_MATCAP) +#define STUDIOLIGHT_ORIENTATIONS_MATERIAL_MODE (STUDIOLIGHT_TYPE_WORLD) +#define STUDIOLIGHT_ORIENTATIONS_SOLID (STUDIOLIGHT_INTERNAL | STUDIOLIGHT_TYPE_STUDIO | STUDIOLIGHT_TYPE_WORLD) typedef void StudioLightFreeFunction(struct StudioLight *, void *data); diff --git a/source/blender/blenkernel/intern/studiolight.c b/source/blender/blenkernel/intern/studiolight.c index f949fcaea07..937c24c47e6 100644 --- a/source/blender/blenkernel/intern/studiolight.c +++ b/source/blender/blenkernel/intern/studiolight.c @@ -82,7 +82,7 @@ static int last_studiolight_id = 0; */ #define STUDIOLIGHT_LOAD_CACHED_FILES -static const char *STUDIOLIGHT_CAMERA_FOLDER = "studiolights/camera/"; +static const char *STUDIOLIGHT_LIGHTS_FOLDER = "studiolights/light/"; static const char *STUDIOLIGHT_WORLD_FOLDER = "studiolights/world/"; static const char *STUDIOLIGHT_MATCAP_FOLDER = "studiolights/matcap/"; @@ -168,7 +168,7 @@ static struct StudioLight *studiolight_create(int flag) sl->free_function = NULL; sl->flag = flag; sl->index = ++last_studiolight_id; - if (flag & STUDIOLIGHT_ORIENTATION_VIEWNORMAL) { + if (flag & STUDIOLIGHT_TYPE_MATCAP) { sl->icon_id_matcap = BKE_icon_ensure_studio_light(sl, STUDIOLIGHT_ICON_ID_TYPE_MATCAP); sl->icon_id_matcap_flipped = BKE_icon_ensure_studio_light(sl, STUDIOLIGHT_ICON_ID_TYPE_MATCAP_FLIPPED); } @@ -263,7 +263,7 @@ static void studiolight_create_equirect_radiance_gputexture(StudioLight *sl) BKE_studiolight_ensure_flag(sl, STUDIOLIGHT_EXTERNAL_IMAGE_LOADED); ImBuf *ibuf = sl->equirect_radiance_buffer; - if (sl->flag & STUDIOLIGHT_ORIENTATION_VIEWNORMAL) { + if (sl->flag & STUDIOLIGHT_TYPE_MATCAP) { float *gpu_matcap_3components = MEM_callocN(sizeof(float[3]) * ibuf->x * ibuf->y, __func__); float (*offset4)[4] = (float (*)[4])ibuf->rect_float; @@ -1010,7 +1010,7 @@ void BKE_studiolight_init(void) /* order studio lights by name */ /* Also reserve icon space for it. */ /* Add default studio light */ - sl = studiolight_create(STUDIOLIGHT_INTERNAL | STUDIOLIGHT_SPHERICAL_HARMONICS_COEFFICIENTS_CALCULATED | STUDIOLIGHT_ORIENTATION_CAMERA); + sl = studiolight_create(STUDIOLIGHT_INTERNAL | STUDIOLIGHT_SPHERICAL_HARMONICS_COEFFICIENTS_CALCULATED | STUDIOLIGHT_TYPE_STUDIO); BLI_strncpy(sl->name, "Default", FILE_MAXFILE); int i = 0; @@ -1030,12 +1030,12 @@ void BKE_studiolight_init(void) BLI_addtail(&studiolights, sl); - studiolight_add_files_from_datafolder(BLENDER_SYSTEM_DATAFILES, STUDIOLIGHT_CAMERA_FOLDER, STUDIOLIGHT_ORIENTATION_CAMERA); - studiolight_add_files_from_datafolder(BLENDER_USER_DATAFILES, STUDIOLIGHT_CAMERA_FOLDER, STUDIOLIGHT_ORIENTATION_CAMERA | STUDIOLIGHT_USER_DEFINED); - studiolight_add_files_from_datafolder(BLENDER_SYSTEM_DATAFILES, STUDIOLIGHT_WORLD_FOLDER, STUDIOLIGHT_ORIENTATION_WORLD); - studiolight_add_files_from_datafolder(BLENDER_USER_DATAFILES, STUDIOLIGHT_WORLD_FOLDER, STUDIOLIGHT_ORIENTATION_WORLD | STUDIOLIGHT_USER_DEFINED); - studiolight_add_files_from_datafolder(BLENDER_SYSTEM_DATAFILES, STUDIOLIGHT_MATCAP_FOLDER, STUDIOLIGHT_ORIENTATION_VIEWNORMAL); - studiolight_add_files_from_datafolder(BLENDER_USER_DATAFILES, STUDIOLIGHT_MATCAP_FOLDER, STUDIOLIGHT_ORIENTATION_VIEWNORMAL | STUDIOLIGHT_USER_DEFINED); + studiolight_add_files_from_datafolder(BLENDER_SYSTEM_DATAFILES, STUDIOLIGHT_LIGHTS_FOLDER, STUDIOLIGHT_TYPE_STUDIO); + studiolight_add_files_from_datafolder(BLENDER_USER_DATAFILES, STUDIOLIGHT_LIGHTS_FOLDER, STUDIOLIGHT_TYPE_STUDIO | STUDIOLIGHT_USER_DEFINED); + studiolight_add_files_from_datafolder(BLENDER_SYSTEM_DATAFILES, STUDIOLIGHT_WORLD_FOLDER, STUDIOLIGHT_TYPE_WORLD); + studiolight_add_files_from_datafolder(BLENDER_USER_DATAFILES, STUDIOLIGHT_WORLD_FOLDER, STUDIOLIGHT_TYPE_WORLD | STUDIOLIGHT_USER_DEFINED); + studiolight_add_files_from_datafolder(BLENDER_SYSTEM_DATAFILES, STUDIOLIGHT_MATCAP_FOLDER, STUDIOLIGHT_TYPE_MATCAP); + studiolight_add_files_from_datafolder(BLENDER_USER_DATAFILES, STUDIOLIGHT_MATCAP_FOLDER, STUDIOLIGHT_TYPE_MATCAP | STUDIOLIGHT_USER_DEFINED); /* sort studio lights on filename. */ BLI_listbase_sort(&studiolights, studiolight_cmp); diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c index 906dc96be01..b2d9a385c6f 100644 --- a/source/blender/blenloader/intern/versioning_280.c +++ b/source/blender/blenloader/intern/versioning_280.c @@ -1670,7 +1670,7 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain) } } if (!DNA_struct_elem_find(fd->filesdna, "View3DShading", "char", "matcap[256]")) { - StudioLight *default_matcap = BKE_studiolight_find_first(STUDIOLIGHT_ORIENTATION_VIEWNORMAL); + StudioLight *default_matcap = BKE_studiolight_find_first(STUDIOLIGHT_TYPE_MATCAP); /* when loading the internal file is loaded before the matcaps */ if (default_matcap) { for (bScreen *screen = bmain->screen.first; screen; screen = screen->id.next) { diff --git a/source/blender/draw/engines/eevee/eevee_lookdev.c b/source/blender/draw/engines/eevee/eevee_lookdev.c index e46526ce6af..298a67b811b 100644 --- a/source/blender/draw/engines/eevee/eevee_lookdev.c +++ b/source/blender/draw/engines/eevee/eevee_lookdev.c @@ -63,7 +63,7 @@ void EEVEE_lookdev_cache_init( View3D *v3d = draw_ctx->v3d; if (LOOK_DEV_STUDIO_LIGHT_ENABLED(v3d)) { StudioLight *sl = BKE_studiolight_find(v3d->shading.studio_light, STUDIOLIGHT_ORIENTATIONS_MATERIAL_MODE); - if (sl && (sl->flag & STUDIOLIGHT_ORIENTATION_WORLD)) { + if (sl && (sl->flag & STUDIOLIGHT_TYPE_WORLD)) { GPUShader *shader = EEVEE_shaders_default_studiolight_sh_get(); struct GPUBatch *geom = DRW_cache_fullscreen_quad_get(); GPUTexture *tex = NULL; diff --git a/source/blender/draw/engines/workbench/shaders/workbench_deferred_composite_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_deferred_composite_frag.glsl index 4aa471f70d8..54475715d07 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_deferred_composite_frag.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_deferred_composite_frag.glsl @@ -9,6 +9,7 @@ uniform sampler2D specularBuffer; uniform sampler2D normalBuffer; /* normalBuffer contains viewport normals */ uniform sampler2D cavityBuffer; +uniform sampler2D matcapImage; uniform vec2 invertedViewportSize; uniform vec4 viewvecs[3]; @@ -16,10 +17,6 @@ uniform float shadowMultiplier; uniform float lightMultiplier; uniform float shadowShift = 0.1; -#ifdef STUDIOLIGHT_ORIENTATION_VIEWNORMAL -uniform sampler2D matcapImage; -#endif - layout(std140) uniform world_block { WorldData world_data; }; diff --git a/source/blender/draw/engines/workbench/shaders/workbench_prepass_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_prepass_frag.glsl index 62c7e4515cd..5b4a7815dc2 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_prepass_frag.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_prepass_frag.glsl @@ -49,7 +49,7 @@ void main() } #else diffuseColor = vec4(materialDiffuseColor.rgb, 0.0); -# ifdef STUDIOLIGHT_ORIENTATION_VIEWNORMAL +# ifdef STUDIOLIGHT_TYPE_MATCAP specularColor = vec4(materialDiffuseColor.rgb, 0.0); # endif diff --git a/source/blender/draw/engines/workbench/workbench_data.c b/source/blender/draw/engines/workbench/workbench_data.c index 522b7d6e8c4..fd72848da49 100644 --- a/source/blender/draw/engines/workbench/workbench_data.c +++ b/source/blender/draw/engines/workbench/workbench_data.c @@ -36,17 +36,17 @@ void workbench_private_data_init(WORKBENCH_PrivateData *wpd) if (wpd->shading.light == V3D_LIGHTING_MATCAP) { wpd->studio_light = BKE_studiolight_find( - wpd->shading.matcap, STUDIOLIGHT_ORIENTATION_VIEWNORMAL); + wpd->shading.matcap, STUDIOLIGHT_TYPE_MATCAP); } else { wpd->studio_light = BKE_studiolight_find( - wpd->shading.studio_light, STUDIOLIGHT_ORIENTATION_CAMERA | STUDIOLIGHT_ORIENTATION_WORLD); + wpd->shading.studio_light, STUDIOLIGHT_TYPE_STUDIO | STUDIOLIGHT_TYPE_WORLD); } /* If matcaps are missing, use this as fallback. */ if (UNLIKELY(wpd->studio_light == NULL)) { wpd->studio_light = BKE_studiolight_find( - wpd->shading.studio_light, STUDIOLIGHT_ORIENTATION_CAMERA | STUDIOLIGHT_ORIENTATION_WORLD); + wpd->shading.studio_light, STUDIOLIGHT_TYPE_STUDIO | STUDIOLIGHT_TYPE_WORLD); } wpd->shadow_multiplier = 1.0 - wpd->shading.shadow_intensity; @@ -168,7 +168,7 @@ void workbench_private_data_get_light_direction(WORKBENCH_PrivateData *wpd, floa mul_v3_mat3_m4v3(wd->shadow_direction_vs, view_matrix, r_light_direction); /* TODO enable when we support studiolight presets. */ - if (STUDIOLIGHT_ORIENTATION_WORLD_ENABLED(wpd) && false) { + if (STUDIOLIGHT_TYPE_WORLD_ENABLED(wpd) && false) { axis_angle_to_mat4_single(rot_matrix, 'Y', -wpd->shading.studiolight_rot_z); mul_m4_m4m4(rot_matrix, rot_matrix, view_matrix); swap_v3_v3(rot_matrix[2], rot_matrix[1]); diff --git a/source/blender/draw/engines/workbench/workbench_deferred.c b/source/blender/draw/engines/workbench/workbench_deferred.c index 5c65cf78820..b801181e1fc 100644 --- a/source/blender/draw/engines/workbench/workbench_deferred.c +++ b/source/blender/draw/engines/workbench/workbench_deferred.c @@ -512,7 +512,7 @@ static void workbench_composite_uniforms(WORKBENCH_PrivateData *wpd, DRWShadingG DRW_shgroup_uniform_block(grp, "world_block", wpd->world_ubo); DRW_shgroup_uniform_vec2(grp, "invertedViewportSize", DRW_viewport_invert_size_get(), 1); - if (STUDIOLIGHT_ORIENTATION_VIEWNORMAL_ENABLED(wpd)) { + if (STUDIOLIGHT_TYPE_MATCAP_ENABLED(wpd)) { BKE_studiolight_ensure_flag(wpd->studio_light, STUDIOLIGHT_EQUIRECT_RADIANCE_GPUTEXTURE); DRW_shgroup_uniform_texture(grp, "matcapImage", wpd->studio_light->equirect_radiance_gputexture ); } diff --git a/source/blender/draw/engines/workbench/workbench_forward.c b/source/blender/draw/engines/workbench/workbench_forward.c index 4365f4ec27c..3a5e592fa69 100644 --- a/source/blender/draw/engines/workbench/workbench_forward.c +++ b/source/blender/draw/engines/workbench/workbench_forward.c @@ -168,7 +168,7 @@ static WORKBENCH_MaterialData *get_or_create_material_data( DRW_shgroup_uniform_float(grp, "alpha", &wpd->shading.xray_alpha, 1); DRW_shgroup_uniform_vec4(grp, "viewvecs[0]", (float *)wpd->viewvecs, 3); workbench_material_copy(material, &material_template); - if (STUDIOLIGHT_ORIENTATION_VIEWNORMAL_ENABLED(wpd)) { + if (STUDIOLIGHT_TYPE_MATCAP_ENABLED(wpd)) { BKE_studiolight_ensure_flag(wpd->studio_light, STUDIOLIGHT_EQUIRECT_RADIANCE_GPUTEXTURE); DRW_shgroup_uniform_texture(grp, "matcapImage", wpd->studio_light->equirect_radiance_gputexture ); } @@ -450,7 +450,7 @@ static void workbench_forward_cache_populate_particles(WORKBENCH_Data *vedata, O * So lower their alpha artificially. */ float hair_alpha = XRAY_ALPHA(wpd) * 0.33f; DRW_shgroup_uniform_float_copy(shgrp, "alpha", hair_alpha); - if (STUDIOLIGHT_ORIENTATION_VIEWNORMAL_ENABLED(wpd)) { + if (STUDIOLIGHT_TYPE_MATCAP_ENABLED(wpd)) { BKE_studiolight_ensure_flag(wpd->studio_light, STUDIOLIGHT_EQUIRECT_RADIANCE_GPUTEXTURE); DRW_shgroup_uniform_texture(shgrp, "matcapImage", wpd->studio_light->equirect_radiance_gputexture ); } diff --git a/source/blender/draw/engines/workbench/workbench_materials.c b/source/blender/draw/engines/workbench/workbench_materials.c index cf0ed3147d0..42e52e037f3 100644 --- a/source/blender/draw/engines/workbench/workbench_materials.c +++ b/source/blender/draw/engines/workbench/workbench_materials.c @@ -83,14 +83,14 @@ char *workbench_material_build_defines(WORKBENCH_PrivateData *wpd, bool use_text if (MATCAP_ENABLED(wpd)) { BLI_dynstr_appendf(ds, "#define V3D_LIGHTING_MATCAP\n"); } - if (STUDIOLIGHT_ORIENTATION_WORLD_ENABLED(wpd)) { - BLI_dynstr_appendf(ds, "#define STUDIOLIGHT_ORIENTATION_WORLD\n"); + if (STUDIOLIGHT_TYPE_WORLD_ENABLED(wpd)) { + BLI_dynstr_appendf(ds, "#define STUDIOLIGHT_TYPE_WORLD\n"); } - if (STUDIOLIGHT_ORIENTATION_CAMERA_ENABLED(wpd)) { - BLI_dynstr_appendf(ds, "#define STUDIOLIGHT_ORIENTATION_CAMERA\n"); + if (STUDIOLIGHT_TYPE_STUDIO_ENABLED(wpd)) { + BLI_dynstr_appendf(ds, "#define STUDIOLIGHT_TYPE_STUDIO\n"); } - if (STUDIOLIGHT_ORIENTATION_VIEWNORMAL_ENABLED(wpd)) { - BLI_dynstr_appendf(ds, "#define STUDIOLIGHT_ORIENTATION_VIEWNORMAL\n"); + if (STUDIOLIGHT_TYPE_MATCAP_ENABLED(wpd)) { + BLI_dynstr_appendf(ds, "#define STUDIOLIGHT_TYPE_MATCAP\n"); } if (NORMAL_VIEWPORT_PASS_ENABLED(wpd)) { BLI_dynstr_appendf(ds, "#define NORMAL_VIEWPORT_PASS_ENABLED\n"); @@ -158,8 +158,8 @@ int workbench_material_get_shader_index(WORKBENCH_PrivateData *wpd, bool use_tex SET_FLAG_FROM_TEST(index, uses_curvature, 1 << 7); SET_FLAG_FROM_TEST(index, uses_curvature && (U.pixelsize > 1.5f), 1 << 8); /* 2 bits STUDIOLIGHT_ORIENTATION */ - SET_FLAG_FROM_TEST(index, wpd->studio_light->flag & STUDIOLIGHT_ORIENTATION_WORLD, 1 << 9); - SET_FLAG_FROM_TEST(index, wpd->studio_light->flag & STUDIOLIGHT_ORIENTATION_VIEWNORMAL, 1 << 10); + SET_FLAG_FROM_TEST(index, wpd->studio_light->flag & STUDIOLIGHT_TYPE_WORLD, 1 << 9); + SET_FLAG_FROM_TEST(index, wpd->studio_light->flag & STUDIOLIGHT_TYPE_MATCAP, 1 << 10); /* 1 bit for hair */ SET_FLAG_FROM_TEST(index, is_hair, 1 << 11); return index; diff --git a/source/blender/draw/engines/workbench/workbench_private.h b/source/blender/draw/engines/workbench/workbench_private.h index 74764a1b159..4ab0d39aa55 100644 --- a/source/blender/draw/engines/workbench/workbench_private.h +++ b/source/blender/draw/engines/workbench/workbench_private.h @@ -46,9 +46,9 @@ #define FLAT_ENABLED(wpd) (wpd->shading.light == V3D_LIGHTING_FLAT) #define STUDIOLIGHT_ENABLED(wpd) (wpd->shading.light == V3D_LIGHTING_STUDIO) #define MATCAP_ENABLED(wpd) (wpd->shading.light == V3D_LIGHTING_MATCAP) -#define STUDIOLIGHT_ORIENTATION_WORLD_ENABLED(wpd) (STUDIOLIGHT_ENABLED(wpd) && (wpd->studio_light->flag & STUDIOLIGHT_ORIENTATION_WORLD)) -#define STUDIOLIGHT_ORIENTATION_CAMERA_ENABLED(wpd) (STUDIOLIGHT_ENABLED(wpd) && (wpd->studio_light->flag & STUDIOLIGHT_ORIENTATION_CAMERA)) -#define STUDIOLIGHT_ORIENTATION_VIEWNORMAL_ENABLED(wpd) (MATCAP_ENABLED(wpd) && (wpd->studio_light->flag & STUDIOLIGHT_ORIENTATION_VIEWNORMAL)) +#define STUDIOLIGHT_TYPE_WORLD_ENABLED(wpd) (STUDIOLIGHT_ENABLED(wpd) && (wpd->studio_light->flag & STUDIOLIGHT_TYPE_WORLD)) +#define STUDIOLIGHT_TYPE_STUDIO_ENABLED(wpd) (STUDIOLIGHT_ENABLED(wpd) && (wpd->studio_light->flag & STUDIOLIGHT_TYPE_STUDIO)) +#define STUDIOLIGHT_TYPE_MATCAP_ENABLED(wpd) (MATCAP_ENABLED(wpd) && (wpd->studio_light->flag & STUDIOLIGHT_TYPE_MATCAP)) #define SSAO_ENABLED(wpd) ((wpd->shading.flag & V3D_SHADING_CAVITY) && ((wpd->shading.cavity_type == V3D_SHADING_CAVITY_SSAO) || (wpd->shading.cavity_type == V3D_SHADING_CAVITY_BOTH))) #define CURVATURE_ENABLED(wpd) ((wpd->shading.flag & V3D_SHADING_CAVITY) && ((wpd->shading.cavity_type == V3D_SHADING_CAVITY_CURVATURE) || (wpd->shading.cavity_type == V3D_SHADING_CAVITY_BOTH))) #define SHADOW_ENABLED(wpd) (wpd->shading.flag & V3D_SHADING_SHADOW) @@ -59,7 +59,7 @@ (IN_RANGE(wpd->user_preferences->gpu_viewport_quality, GPU_VIEWPORT_QUALITY_FXAA, GPU_VIEWPORT_QUALITY_TAA8) || \ ((IS_NAVIGATING(wpd) || wpd->is_playback) && (wpd->user_preferences->gpu_viewport_quality >= GPU_VIEWPORT_QUALITY_TAA8)))) #define TAA_ENABLED(wpd) (DRW_state_is_image_render() || (wpd->user_preferences->gpu_viewport_quality >= GPU_VIEWPORT_QUALITY_TAA8 && !IS_NAVIGATING(wpd) && !wpd->is_playback)) -#define SPECULAR_HIGHLIGHT_ENABLED(wpd) (STUDIOLIGHT_ENABLED(wpd) && (wpd->shading.flag & V3D_SHADING_SPECULAR_HIGHLIGHT) && (!STUDIOLIGHT_ORIENTATION_VIEWNORMAL_ENABLED(wpd))) +#define SPECULAR_HIGHLIGHT_ENABLED(wpd) (STUDIOLIGHT_ENABLED(wpd) && (wpd->shading.flag & V3D_SHADING_SPECULAR_HIGHLIGHT) && (!STUDIOLIGHT_TYPE_MATCAP_ENABLED(wpd))) #define OBJECT_OUTLINE_ENABLED(wpd) (wpd->shading.flag & V3D_SHADING_OBJECT_OUTLINE) #define OBJECT_ID_PASS_ENABLED(wpd) (OBJECT_OUTLINE_ENABLED(wpd) || CURVATURE_ENABLED(wpd)) #define NORMAL_VIEWPORT_COMP_PASS_ENABLED(wpd) (MATCAP_ENABLED(wpd) || STUDIOLIGHT_ENABLED(wpd) || SHADOW_ENABLED(wpd) || SPECULAR_HIGHLIGHT_ENABLED(wpd) || CURVATURE_ENABLED(wpd)) diff --git a/source/blender/editors/interface/interface_icons.c b/source/blender/editors/interface/interface_icons.c index d8bdeaa8159..36624f475ce 100644 --- a/source/blender/editors/interface/interface_icons.c +++ b/source/blender/editors/interface/interface_icons.c @@ -1842,12 +1842,12 @@ int UI_rnaptr_icon_get(bContext *C, PointerRNA *ptr, int rnaicon, const bool big else if (RNA_struct_is_a(ptr->type, &RNA_StudioLight)) { StudioLight *sl = ptr->data; switch (sl->flag & STUDIOLIGHT_FLAG_ORIENTATIONS) { - case STUDIOLIGHT_ORIENTATION_CAMERA: + case STUDIOLIGHT_TYPE_STUDIO: return sl->icon_id_irradiance; - case STUDIOLIGHT_ORIENTATION_WORLD: + case STUDIOLIGHT_TYPE_WORLD: default: return sl->icon_id_radiance; - case STUDIOLIGHT_ORIENTATION_VIEWNORMAL: + case STUDIOLIGHT_TYPE_MATCAP: return sl->icon_id_matcap; } } diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 981aac18894..fd6e7436351 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -807,7 +807,7 @@ static int rna_View3DShading_studio_light_get(PointerRNA *ptr) int flag = STUDIOLIGHT_ORIENTATIONS_SOLID; if (shading->type == OB_SOLID && shading->light == V3D_LIGHTING_MATCAP) { - flag = STUDIOLIGHT_ORIENTATION_VIEWNORMAL; + flag = STUDIOLIGHT_TYPE_MATCAP; dna_storage = shading->matcap; } else if (shading->type == OB_MATERIAL) { @@ -830,7 +830,7 @@ static void rna_View3DShading_studio_light_set(PointerRNA *ptr, int value) int flag = STUDIOLIGHT_ORIENTATIONS_SOLID; if (shading->type == OB_SOLID && shading->light == V3D_LIGHTING_MATCAP) { - flag = STUDIOLIGHT_ORIENTATION_VIEWNORMAL; + flag = STUDIOLIGHT_TYPE_MATCAP; dna_storage = shading->matcap; } else if (shading->type == OB_MATERIAL) { @@ -851,7 +851,7 @@ static const EnumPropertyItem *rna_View3DShading_studio_light_itemf( int totitem = 0; if (shading->type == OB_SOLID && shading->light == V3D_LIGHTING_MATCAP) { - const int flags = (STUDIOLIGHT_EXTERNAL_FILE | STUDIOLIGHT_ORIENTATION_VIEWNORMAL); + const int flags = (STUDIOLIGHT_EXTERNAL_FILE | STUDIOLIGHT_TYPE_MATCAP); LISTBASE_FOREACH(StudioLight *, sl, BKE_studiolight_listbase()) { int icon_id = (shading->flag & V3D_SHADING_MATCAP_FLIP_X) ? sl->icon_id_matcap_flipped: sl->icon_id_matcap; @@ -877,11 +877,11 @@ static const EnumPropertyItem *rna_View3DShading_studio_light_itemf( case OB_SOLID: case OB_TEXTURE: show_studiolight = ( - (sl->flag & (STUDIOLIGHT_ORIENTATION_WORLD | STUDIOLIGHT_ORIENTATION_CAMERA)) != 0); + (sl->flag & (STUDIOLIGHT_TYPE_WORLD | STUDIOLIGHT_TYPE_STUDIO)) != 0); break; case OB_MATERIAL: - show_studiolight = ((sl->flag & STUDIOLIGHT_ORIENTATION_WORLD) != 0); + show_studiolight = ((sl->flag & STUDIOLIGHT_TYPE_WORLD) != 0); icon_id = sl->icon_id_radiance; break; } diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index 3610a9b8514..89f777625a0 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -87,10 +87,10 @@ static const EnumPropertyItem rna_enum_language_default_items[] = { }; #endif -static const EnumPropertyItem rna_enum_studio_light_orientation_items[] = { - {STUDIOLIGHT_ORIENTATION_CAMERA, "CAMERA", 0, "Camera", ""}, - {STUDIOLIGHT_ORIENTATION_WORLD, "WORLD", 0, "World", ""}, - {STUDIOLIGHT_ORIENTATION_VIEWNORMAL, "MATCAP", 0, "MatCap", ""}, +static const EnumPropertyItem rna_enum_studio_light_type_items[] = { + {STUDIOLIGHT_TYPE_STUDIO, "STUDIO", 0, "Studio", ""}, + {STUDIOLIGHT_TYPE_WORLD, "WORLD", 0, "World", ""}, + {STUDIOLIGHT_TYPE_MATCAP, "MATCAP", 0, "MatCap", ""}, {0, NULL, 0, NULL, NULL} }; @@ -628,9 +628,9 @@ static void rna_StudioLights_remove(UserDef *UNUSED(userdef), StudioLight *studi BKE_studiolight_remove(studio_light); } -static StudioLight *rna_StudioLights_new(UserDef *UNUSED(userdef), const char *path, int orientation) +static StudioLight *rna_StudioLights_new(UserDef *UNUSED(userdef), const char *path, int type) { - return BKE_studiolight_new(path, orientation); + return BKE_studiolight_new(path, type); } /* StudioLight.name */ @@ -715,9 +715,9 @@ static bool rna_UserDef_studiolight_is_user_defined_get(PointerRNA *ptr) return (sl->flag & STUDIOLIGHT_USER_DEFINED) != 0; } -/* StudioLight.orientation */ +/* StudioLight.type */ -static int rna_UserDef_studiolight_orientation_get(PointerRNA *ptr) +static int rna_UserDef_studiolight_type_get(PointerRNA *ptr) { StudioLight *sl = (StudioLight *)ptr->data; return sl->flag & STUDIOLIGHT_FLAG_ORIENTATIONS; @@ -3319,7 +3319,7 @@ static void rna_def_userdef_studiolights(BlenderRNA *brna) RNA_def_function_ui_description(func, "Create a new studiolight"); parm = RNA_def_string(func, "path", NULL, 0, "File Path", "File path where the studio light file can be found"); RNA_def_parameter_flags(parm, 0, PARM_REQUIRED); - parm = RNA_def_enum(func, "orientation", rna_enum_studio_light_orientation_items, STUDIOLIGHT_ORIENTATION_WORLD, "Orientation", "The orientation for the new studio light"); + parm = RNA_def_enum(func, "type", rna_enum_studio_light_type_items, STUDIOLIGHT_TYPE_WORLD, "Type", "The type for the new studio light"); RNA_def_parameter_flags(parm, 0, PARM_REQUIRED); parm = RNA_def_pointer(func, "studio_light", "StudioLight", "", "Newly created StudioLight"); RNA_def_function_return(func, parm); @@ -3353,11 +3353,11 @@ static void rna_def_userdef_studiolight(BlenderRNA *brna) RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "User Defined", ""); - prop = RNA_def_property(srna, "orientation", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_items(prop, rna_enum_studio_light_orientation_items); - RNA_def_property_enum_funcs(prop, "rna_UserDef_studiolight_orientation_get", NULL, NULL); + prop = RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, rna_enum_studio_light_type_items); + RNA_def_property_enum_funcs(prop, "rna_UserDef_studiolight_type_get", NULL, NULL); RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "Orientation", ""); + RNA_def_property_ui_text(prop, "Type", ""); prop = RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); RNA_def_property_string_funcs(prop, "rna_UserDef_studiolight_name_get", "rna_UserDef_studiolight_name_length", NULL); |