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:
authorJeroen Bakker <j.bakker@atmind.nl>2018-05-16 10:13:48 +0300
committerJeroen Bakker <j.bakker@atmind.nl>2018-05-16 10:14:20 +0300
commitca8e9c881f282f2eb54d811a94b6cb0ff95fd6b1 (patch)
treee858d5d4a26ab844ff9734d0aa4ba9b754439a17 /source/blender/blenkernel
parentd0b62ce041283375f63faf6904d7e45ddf2b104b (diff)
Workbench: Read studiolights from USER + SYSTEM datafiles
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r--source/blender/blenkernel/intern/studiolight.c47
1 files changed, 27 insertions, 20 deletions
diff --git a/source/blender/blenkernel/intern/studiolight.c b/source/blender/blenkernel/intern/studiolight.c
index f0db054620a..24dc274cf20 100644
--- a/source/blender/blenkernel/intern/studiolight.c
+++ b/source/blender/blenkernel/intern/studiolight.c
@@ -158,28 +158,11 @@ static void studiolight_calculate_diffuse_light(StudioLight *sl)
sl->flag |= STUDIOLIGHT_DIFFUSE_LIGHT_CALCULATED;
}
-
-/* API */
-void BKE_studiolight_init(void)
+static void studiolight_add_files_from_datafolder(const int folder_id, const char* subfolder, int flag)
{
StudioLight *sl;
- /* go over the preset folder and add a studiolight for every image with its path */
- /* order studio lights by name */
- /* Also reserve icon space for it. */
- /* Add default studio light */
- sl = studiolight_create();
- BLI_strncpy(sl->name, "INTERNAL_01\0", FILE_MAXFILE);
- sl->flag = STUDIOLIGHT_DIFFUSE_LIGHT_CALCULATED;
- copy_v3_fl(sl->diffuse_light[STUDIOLIGHT_X_POS], 0.0f);
- copy_v3_fl(sl->diffuse_light[STUDIOLIGHT_X_NEG], 0.0f);
- copy_v3_fl(sl->diffuse_light[STUDIOLIGHT_Y_POS], 0.0f);
- copy_v3_fl(sl->diffuse_light[STUDIOLIGHT_Y_NEG], 0.0f);
- copy_v3_fl(sl->diffuse_light[STUDIOLIGHT_Z_POS], 1.0f);
- copy_v3_fl(sl->diffuse_light[STUDIOLIGHT_Z_NEG], 0.0f);
- BLI_addtail(&studiolights, sl);
-
struct direntry *dir;
- const char *folder = BKE_appdir_folder_id(BLENDER_DATAFILES, STUDIO_LIGHT_FOLDER);
+ const char *folder = BKE_appdir_folder_id(folder_id, subfolder);
if (folder) {
unsigned int totfile = BLI_filelist_dir_contents(folder, &dir);
int i;
@@ -189,7 +172,7 @@ void BKE_studiolight_init(void)
const char *path = dir[i].path;
if (BLI_testextensie_n(filename, STUDIO_LIGHT_EXTENSIONS, NULL)) {
sl = studiolight_create();
- sl->flag = STUDIOLIGHT_EXTERNAL_FILE;
+ sl->flag = STUDIOLIGHT_EXTERNAL_FILE | flag;
BLI_strncpy(sl->name, filename, FILE_MAXFILE);
BLI_strncpy(sl->path, path, FILE_MAXFILE);
BLI_addtail(&studiolights, sl);
@@ -199,6 +182,30 @@ void BKE_studiolight_init(void)
BLI_filelist_free(dir, totfile);
dir = NULL;
}
+
+}
+
+/* API */
+void BKE_studiolight_init(void)
+{
+ StudioLight *sl;
+ /* go over the preset folder and add a studiolight for every image with its path */
+ /* order studio lights by name */
+ /* Also reserve icon space for it. */
+ /* Add default studio light */
+ sl = studiolight_create();
+ BLI_strncpy(sl->name, "INTERNAL_01\0", FILE_MAXFILE);
+ sl->flag = STUDIOLIGHT_DIFFUSE_LIGHT_CALCULATED;
+ copy_v3_fl(sl->diffuse_light[STUDIOLIGHT_X_POS], 0.0f);
+ copy_v3_fl(sl->diffuse_light[STUDIOLIGHT_X_NEG], 0.0f);
+ copy_v3_fl(sl->diffuse_light[STUDIOLIGHT_Y_POS], 0.0f);
+ copy_v3_fl(sl->diffuse_light[STUDIOLIGHT_Y_NEG], 0.0f);
+ copy_v3_fl(sl->diffuse_light[STUDIOLIGHT_Z_POS], 1.0f);
+ copy_v3_fl(sl->diffuse_light[STUDIOLIGHT_Z_NEG], 0.0f);
+ BLI_addtail(&studiolights, sl);
+
+ studiolight_add_files_from_datafolder(BLENDER_SYSTEM_DATAFILES, STUDIO_LIGHT_FOLDER, 0);
+ studiolight_add_files_from_datafolder(BLENDER_USER_DATAFILES, STUDIO_LIGHT_FOLDER, 0);
}
void BKE_studiolight_free(void)