diff options
Diffstat (limited to 'source/blender/blenkernel/BKE_studiolight.h')
-rw-r--r-- | source/blender/blenkernel/BKE_studiolight.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/source/blender/blenkernel/BKE_studiolight.h b/source/blender/blenkernel/BKE_studiolight.h index 6616af355ac..25931e2bbf5 100644 --- a/source/blender/blenkernel/BKE_studiolight.h +++ b/source/blender/blenkernel/BKE_studiolight.h @@ -39,6 +39,7 @@ #include "BLI_sys_types.h" #include "DNA_space_types.h" +#include "DNA_userdef_types.h" #include "IMB_imbuf_types.h" @@ -59,6 +60,8 @@ #define STUDIOLIGHT_ICON_ID_TYPE_MATCAP (1 << 2) #define STUDIOLIGHT_ICON_ID_TYPE_MATCAP_FLIPPED (1 << 3) +#define STUDIOLIGHT_MAX_LIGHT 4 + #define STUDIOLIGHT_ICON_SIZE 96 /* Only 1 - 5 is supported */ @@ -97,7 +100,7 @@ enum StudioLightFlag { #define STUDIOLIGHT_FLAG_ALL (STUDIOLIGHT_INTERNAL | STUDIOLIGHT_EXTERNAL_FILE) #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) +#define STUDIOLIGHT_ORIENTATIONS_SOLID (STUDIOLIGHT_INTERNAL | STUDIOLIGHT_TYPE_STUDIO) typedef void StudioLightFreeFunction(struct StudioLight *, void *data); @@ -121,6 +124,8 @@ typedef struct StudioLight { ImBuf *radiance_cubemap_buffers[6]; struct GPUTexture *equirect_radiance_gputexture; struct GPUTexture *equirect_irradiance_gputexture; + SolidLight light[STUDIOLIGHT_MAX_LIGHT]; + float light_ambient[3]; /* * Free function to clean up the running icons previews (wmJob) the usage is in @@ -140,7 +145,9 @@ void BKE_studiolight_preview(uint *icon_buffer, StudioLight *sl, int icon_id_typ struct ListBase *BKE_studiolight_listbase(void); void BKE_studiolight_ensure_flag(StudioLight *sl, int flag); void BKE_studiolight_refresh(void); -StudioLight *BKE_studiolight_new(const char *path, int orientation); +StudioLight *BKE_studiolight_load(const char *path, int orientation); +StudioLight *BKE_studiolight_create(const char *path, const SolidLight light[4], const float light_ambient[3]); +StudioLight *BKE_studiolight_studio_edit_get(void); void BKE_studiolight_remove(StudioLight *sl); void BKE_studiolight_set_free_function(StudioLight *sl, StudioLightFreeFunction *free_function, void *data); void BKE_studiolight_unset_icon_id(StudioLight *sl, int icon_id); |