[Bf-blender-cvs] [95869f58388] blender2.8: Workbench: Support HDR files as HDRI studio lighting

Jeroen Bakker noreply at git.blender.org
Mon May 14 09:56:38 CEST 2018


Commit: 95869f58388a318a897dc7dc262677ffb0cb7fc2
Author: Jeroen Bakker
Date:   Mon May 14 09:55:23 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB95869f58388a318a897dc7dc262677ffb0cb7fc2

Workbench: Support HDR files as HDRI studio lighting

support Radiance HDR files for studio lighting.
Fix crash when studiolight folder does not exist.

===================================================================

M	source/blender/blenkernel/intern/studiolight.c

===================================================================

diff --git a/source/blender/blenkernel/intern/studiolight.c b/source/blender/blenkernel/intern/studiolight.c
index 9bc678a1820..c5d2903e7cc 100644
--- a/source/blender/blenkernel/intern/studiolight.c
+++ b/source/blender/blenkernel/intern/studiolight.c
@@ -52,6 +52,7 @@
 
 /* Statics */
 static ListBase studiolights;
+#define STUDIO_LIGHT_EXTENSIONS ".jpg", ".hdr"
 static const char *STUDIO_LIGHT_FOLDER = "studiolights/";
 
 /* FUNCTIONS */
@@ -178,23 +179,25 @@ void BKE_studiolight_init(void)
 
 	struct direntry *dir;
 	const char *folder = BKE_appdir_folder_id(BLENDER_DATAFILES, STUDIO_LIGHT_FOLDER);
-	unsigned int totfile = BLI_filelist_dir_contents(folder, &dir);
-	int i;
-	for (i = 0; i < totfile; i++) {
-		if ((dir[i].type & S_IFREG)) {
-			const char *filename = dir[i].relname;
-			const char *path = dir[i].path;
-			if (BLI_testextensie(filename, ".jpg")) {
-				sl = studiolight_create();
-				sl->flag = STUDIOLIGHT_EXTERNAL_FILE;
-				BLI_strncpy(sl->name, filename, FILE_MAXFILE);
-				BLI_strncpy(sl->path, path, FILE_MAXFILE);
-				BLI_addtail(&studiolights, sl);
+	if (folder) {
+		unsigned int totfile = BLI_filelist_dir_contents(folder, &dir);
+		int i;
+		for (i = 0; i < totfile; i++) {
+			if ((dir[i].type & S_IFREG)) {
+				const char *filename = dir[i].relname;
+				const char *path = dir[i].path;
+				if (BLI_testextensie_n(filename, STUDIO_LIGHT_EXTENSIONS, NULL)) {
+					sl = studiolight_create();
+					sl->flag = STUDIOLIGHT_EXTERNAL_FILE;
+					BLI_strncpy(sl->name, filename, FILE_MAXFILE);
+					BLI_strncpy(sl->path, path, FILE_MAXFILE);
+					BLI_addtail(&studiolights, sl);
+				}
 			}
 		}
+		BLI_filelist_free(dir, totfile);
+		dir = NULL;
 	}
-	BLI_filelist_free(dir, totfile);
-	dir = NULL;
 }
 
 void BKE_studiolight_free(void)



More information about the Bf-blender-cvs mailing list