Blender  V3.3
Classes | Macros | Typedefs | Enumerations | Functions
BKE_studiolight.h File Reference
#include "BLI_sys_types.h"
#include "BLI_path_util.h"
#include "DNA_userdef_types.h"

Go to the source code of this file.

Classes

struct  StudioLightImage
 
struct  StudioLight
 

Macros

#define STUDIOLIGHT_X_POS   0
 
#define STUDIOLIGHT_X_NEG   1
 
#define STUDIOLIGHT_Y_POS   2
 
#define STUDIOLIGHT_Y_NEG   3
 
#define STUDIOLIGHT_Z_POS   4
 
#define STUDIOLIGHT_Z_NEG   5
 
#define STUDIOLIGHT_ICON_ID_TYPE_RADIANCE   (1 << 0)
 
#define STUDIOLIGHT_ICON_ID_TYPE_IRRADIANCE   (1 << 1)
 
#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
 
#define STUDIOLIGHT_SH_BANDS   2
 
#define STUDIOLIGHT_SH_COEFS_LEN   (STUDIOLIGHT_SH_BANDS * STUDIOLIGHT_SH_BANDS)
 
#define STUDIOLIGHT_SH_EFFECTIVE_COEFS_LEN   STUDIOLIGHT_SH_COEFS_LEN
 
#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)
 

Typedefs

typedef void StudioLightFreeFunction(struct StudioLight *, void *data)
 
typedef struct StudioLightImage StudioLightImage
 
typedef struct StudioLight StudioLight
 

Enumerations

enum  StudioLightFlag {
  STUDIOLIGHT_SPHERICAL_HARMONICS_COEFFICIENTS_CALCULATED = (1 << 0) , STUDIOLIGHT_INTERNAL = (1 << 2) , STUDIOLIGHT_EXTERNAL_FILE = (1 << 3) , 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) , STUDIOLIGHT_EQUIRECT_IRRADIANCE_GPUTEXTURE = (1 << 10) , STUDIOLIGHT_RADIANCE_BUFFERS_CALCULATED = (1 << 11) , STUDIOLIGHT_USER_DEFINED = (1 << 12) ,
  STUDIOLIGHT_UI_EXPANDED = (1 << 13) , STUDIOLIGHT_MATCAP_DIFFUSE_GPUTEXTURE = (1 << 14) , STUDIOLIGHT_MATCAP_SPECULAR_GPUTEXTURE = (1 << 15) , STUDIOLIGHT_SPECULAR_HIGHLIGHT_PASS = (1 << 16)
}
 

Functions

void BKE_studiolight_init (void)
 
void BKE_studiolight_free (void)
 
void BKE_studiolight_default (SolidLight lights[4], float light_ambient[3])
 
struct StudioLightBKE_studiolight_find (const char *name, int flag)
 
struct StudioLightBKE_studiolight_findindex (int index, int flag)
 
struct StudioLightBKE_studiolight_find_default (int flag)
 
void BKE_studiolight_preview (uint *icon_buffer, StudioLight *sl, int icon_id_type)
 
struct ListBaseBKE_studiolight_listbase (void)
 
void BKE_studiolight_ensure_flag (StudioLight *sl, int flag)
 
void BKE_studiolight_refresh (void)
 
StudioLightBKE_studiolight_load (const char *path, int type)
 
StudioLightBKE_studiolight_create (const char *path, const SolidLight light[4], const float light_ambient[3])
 
StudioLightBKE_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)
 

Detailed Description

Studio lighting for the 3dview

Definition in file BKE_studiolight.h.

Macro Definition Documentation

◆ STUDIOLIGHT_FLAG_ALL

#define STUDIOLIGHT_FLAG_ALL   (STUDIOLIGHT_INTERNAL | STUDIOLIGHT_EXTERNAL_FILE)

Definition at line 83 of file BKE_studiolight.h.

◆ STUDIOLIGHT_FLAG_ORIENTATIONS

Definition at line 84 of file BKE_studiolight.h.

◆ STUDIOLIGHT_ICON_ID_TYPE_IRRADIANCE

#define STUDIOLIGHT_ICON_ID_TYPE_IRRADIANCE   (1 << 1)

Definition at line 37 of file BKE_studiolight.h.

◆ STUDIOLIGHT_ICON_ID_TYPE_MATCAP

#define STUDIOLIGHT_ICON_ID_TYPE_MATCAP   (1 << 2)

Definition at line 38 of file BKE_studiolight.h.

◆ STUDIOLIGHT_ICON_ID_TYPE_MATCAP_FLIPPED

#define STUDIOLIGHT_ICON_ID_TYPE_MATCAP_FLIPPED   (1 << 3)

Definition at line 39 of file BKE_studiolight.h.

◆ STUDIOLIGHT_ICON_ID_TYPE_RADIANCE

#define STUDIOLIGHT_ICON_ID_TYPE_RADIANCE   (1 << 0)

Definition at line 36 of file BKE_studiolight.h.

◆ STUDIOLIGHT_ICON_SIZE

#define STUDIOLIGHT_ICON_SIZE   96

Definition at line 43 of file BKE_studiolight.h.

◆ STUDIOLIGHT_MAX_LIGHT

#define STUDIOLIGHT_MAX_LIGHT   4

Definition at line 41 of file BKE_studiolight.h.

◆ STUDIOLIGHT_ORIENTATIONS_MATERIAL_MODE

#define STUDIOLIGHT_ORIENTATIONS_MATERIAL_MODE   (STUDIOLIGHT_TYPE_WORLD)

Definition at line 86 of file BKE_studiolight.h.

◆ STUDIOLIGHT_ORIENTATIONS_SOLID

#define STUDIOLIGHT_ORIENTATIONS_SOLID   (STUDIOLIGHT_INTERNAL | STUDIOLIGHT_TYPE_STUDIO)

Definition at line 87 of file BKE_studiolight.h.

◆ STUDIOLIGHT_SH_BANDS

#define STUDIOLIGHT_SH_BANDS   2

Definition at line 46 of file BKE_studiolight.h.

◆ STUDIOLIGHT_SH_COEFS_LEN

#define STUDIOLIGHT_SH_COEFS_LEN   (STUDIOLIGHT_SH_BANDS * STUDIOLIGHT_SH_BANDS)

Definition at line 48 of file BKE_studiolight.h.

◆ STUDIOLIGHT_SH_EFFECTIVE_COEFS_LEN

#define STUDIOLIGHT_SH_EFFECTIVE_COEFS_LEN   STUDIOLIGHT_SH_COEFS_LEN

Definition at line 54 of file BKE_studiolight.h.

◆ STUDIOLIGHT_X_NEG

#define STUDIOLIGHT_X_NEG   1

Definition at line 30 of file BKE_studiolight.h.

◆ STUDIOLIGHT_X_POS

#define STUDIOLIGHT_X_POS   0

Definition at line 29 of file BKE_studiolight.h.

◆ STUDIOLIGHT_Y_NEG

#define STUDIOLIGHT_Y_NEG   3

Definition at line 32 of file BKE_studiolight.h.

◆ STUDIOLIGHT_Y_POS

#define STUDIOLIGHT_Y_POS   2

Definition at line 31 of file BKE_studiolight.h.

◆ STUDIOLIGHT_Z_NEG

#define STUDIOLIGHT_Z_NEG   5

Definition at line 34 of file BKE_studiolight.h.

◆ STUDIOLIGHT_Z_POS

#define STUDIOLIGHT_Z_POS   4

Definition at line 33 of file BKE_studiolight.h.

Typedef Documentation

◆ StudioLight

typedef struct StudioLight StudioLight

◆ StudioLightFreeFunction

typedef void StudioLightFreeFunction(struct StudioLight *, void *data)

Definition at line 89 of file BKE_studiolight.h.

◆ StudioLightImage

Enumeration Type Documentation

◆ StudioLightFlag

StudioLight.flag

Enumerator
STUDIOLIGHT_SPHERICAL_HARMONICS_COEFFICIENTS_CALCULATED 
STUDIOLIGHT_INTERNAL 
STUDIOLIGHT_EXTERNAL_FILE 
STUDIOLIGHT_TYPE_STUDIO 
STUDIOLIGHT_TYPE_WORLD 
STUDIOLIGHT_TYPE_MATCAP 
STUDIOLIGHT_EXTERNAL_IMAGE_LOADED 
STUDIOLIGHT_EQUIRECT_IRRADIANCE_IMAGE_CALCULATED 
STUDIOLIGHT_EQUIRECT_RADIANCE_GPUTEXTURE 
STUDIOLIGHT_EQUIRECT_IRRADIANCE_GPUTEXTURE 
STUDIOLIGHT_RADIANCE_BUFFERS_CALCULATED 
STUDIOLIGHT_USER_DEFINED 
STUDIOLIGHT_UI_EXPANDED 
STUDIOLIGHT_MATCAP_DIFFUSE_GPUTEXTURE 
STUDIOLIGHT_MATCAP_SPECULAR_GPUTEXTURE 
STUDIOLIGHT_SPECULAR_HIGHLIGHT_PASS 

Definition at line 61 of file BKE_studiolight.h.

Function Documentation

◆ BKE_studiolight_create()

StudioLight* BKE_studiolight_create ( const char *  path,
const SolidLight  light[4],
const float  light_ambient[3] 
)

◆ BKE_studiolight_default()

void BKE_studiolight_default ( SolidLight  lights[4],
float  light_ambient[3] 
)

◆ BKE_studiolight_ensure_flag()

void BKE_studiolight_ensure_flag ( StudioLight sl,
int  flag 
)

◆ BKE_studiolight_find()

struct StudioLight* BKE_studiolight_find ( const char *  name,
int  flag 
)

◆ BKE_studiolight_find_default()

struct StudioLight* BKE_studiolight_find_default ( int  flag)

◆ BKE_studiolight_findindex()

struct StudioLight* BKE_studiolight_findindex ( int  index,
int  flag 
)

◆ BKE_studiolight_free()

void BKE_studiolight_free ( void  )

Definition at line 1429 of file studiolight.c.

References BLI_pophead(), studiolight_free(), and studiolights.

Referenced by BKE_blender_free(), and BKE_studiolight_refresh().

◆ BKE_studiolight_init()

void BKE_studiolight_init ( void  )

◆ BKE_studiolight_listbase()

struct ListBase* BKE_studiolight_listbase ( void  )

Definition at line 1489 of file studiolight.c.

References studiolights.

◆ BKE_studiolight_load()

StudioLight* BKE_studiolight_load ( const char *  path,
int  type 
)

Definition at line 1565 of file studiolight.c.

References studiolight_add_file(), STUDIOLIGHT_USER_DEFINED, and type.

◆ BKE_studiolight_preview()

void BKE_studiolight_preview ( uint icon_buffer,
StudioLight sl,
int  icon_id_type 
)

◆ BKE_studiolight_refresh()

void BKE_studiolight_refresh ( void  )

Definition at line 1604 of file studiolight.c.

References BKE_studiolight_free(), and BKE_studiolight_init().

◆ BKE_studiolight_remove()

void BKE_studiolight_remove ( StudioLight sl)

◆ BKE_studiolight_set_free_function()

void BKE_studiolight_set_free_function ( StudioLight sl,
StudioLightFreeFunction free_function,
void data 
)

◆ BKE_studiolight_studio_edit_get()

StudioLight* BKE_studiolight_studio_edit_get ( void  )

Only useful for workbench while editing the user-preferences.

Definition at line 1593 of file studiolight.c.

References StudioLight::flag, StudioLight::light, StudioLight::light_ambient, STUDIOLIGHT_SPECULAR_HIGHLIGHT_PASS, and STUDIOLIGHT_TYPE_STUDIO.

Referenced by workbench_studiolight_data_update().

◆ BKE_studiolight_unset_icon_id()

void BKE_studiolight_unset_icon_id ( StudioLight sl,
int  icon_id 
)