Blender V4.3
BKE_studiolight.h File Reference
#include "BLI_sys_types.h"
#include "BLI_path_utils.hh"
#include "DNA_userdef_types.h"

Go to the source code of this file.

Classes

struct  StudioLightImage
 
struct  StudioLight
 

Macros

#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_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_INTERNAL = (1 << 0) , STUDIOLIGHT_EXTERNAL_FILE = (1 << 1) , STUDIOLIGHT_TYPE_STUDIO = (1 << 2) , STUDIOLIGHT_TYPE_WORLD = (1 << 3) ,
  STUDIOLIGHT_TYPE_MATCAP = (1 << 4) , STUDIOLIGHT_EXTERNAL_IMAGE_LOADED = (1 << 5) , STUDIOLIGHT_EQUIRECT_RADIANCE_GPUTEXTURE = (1 << 6) , STUDIOLIGHT_USER_DEFINED = (1 << 7) ,
  STUDIOLIGHT_MATCAP_DIFFUSE_GPUTEXTURE = (1 << 8) , STUDIOLIGHT_MATCAP_SPECULAR_GPUTEXTURE = (1 << 9) , STUDIOLIGHT_SPECULAR_HIGHLIGHT_PASS = (1 << 10)
}
 

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 *filepath, int type)
 
StudioLightBKE_studiolight_create (const char *filepath, 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 55 of file BKE_studiolight.h.

◆ STUDIOLIGHT_FLAG_ORIENTATIONS

Definition at line 56 of file BKE_studiolight.h.

Referenced by UI_icon_from_rnaptr().

◆ STUDIOLIGHT_ICON_ID_TYPE_IRRADIANCE

#define STUDIOLIGHT_ICON_ID_TYPE_IRRADIANCE   (1 << 1)

Definition at line 26 of file BKE_studiolight.h.

Referenced by BKE_studiolight_preview(), and studiolight_create().

◆ STUDIOLIGHT_ICON_ID_TYPE_MATCAP

#define STUDIOLIGHT_ICON_ID_TYPE_MATCAP   (1 << 2)

Definition at line 27 of file BKE_studiolight.h.

Referenced by BKE_studiolight_preview(), and studiolight_create().

◆ STUDIOLIGHT_ICON_ID_TYPE_MATCAP_FLIPPED

#define STUDIOLIGHT_ICON_ID_TYPE_MATCAP_FLIPPED   (1 << 3)

Definition at line 28 of file BKE_studiolight.h.

Referenced by BKE_studiolight_preview(), and studiolight_create().

◆ STUDIOLIGHT_ICON_ID_TYPE_RADIANCE

#define STUDIOLIGHT_ICON_ID_TYPE_RADIANCE   (1 << 0)

Definition at line 25 of file BKE_studiolight.h.

Referenced by BKE_studiolight_preview(), and studiolight_create().

◆ STUDIOLIGHT_ICON_SIZE

◆ STUDIOLIGHT_MAX_LIGHT

#define STUDIOLIGHT_MAX_LIGHT   4

Definition at line 30 of file BKE_studiolight.h.

Referenced by studiolight_lights_eval().

◆ STUDIOLIGHT_ORIENTATIONS_MATERIAL_MODE

#define STUDIOLIGHT_ORIENTATIONS_MATERIAL_MODE   (STUDIOLIGHT_TYPE_WORLD)

◆ STUDIOLIGHT_ORIENTATIONS_SOLID

#define STUDIOLIGHT_ORIENTATIONS_SOLID   (STUDIOLIGHT_INTERNAL | STUDIOLIGHT_TYPE_STUDIO)

Definition at line 59 of file BKE_studiolight.h.

Typedef Documentation

◆ StudioLight

typedef struct StudioLight StudioLight

◆ StudioLightFreeFunction

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

Definition at line 61 of file BKE_studiolight.h.

◆ StudioLightImage

typedef struct StudioLightImage StudioLightImage

Enumeration Type Documentation

◆ StudioLightFlag

StudioLight.flag

Enumerator
STUDIOLIGHT_INTERNAL 
STUDIOLIGHT_EXTERNAL_FILE 
STUDIOLIGHT_TYPE_STUDIO 
STUDIOLIGHT_TYPE_WORLD 
STUDIOLIGHT_TYPE_MATCAP 
STUDIOLIGHT_EXTERNAL_IMAGE_LOADED 
STUDIOLIGHT_EQUIRECT_RADIANCE_GPUTEXTURE 

GPU Texture used for lookdev mode.

STUDIOLIGHT_USER_DEFINED 
STUDIOLIGHT_MATCAP_DIFFUSE_GPUTEXTURE 
STUDIOLIGHT_MATCAP_SPECULAR_GPUTEXTURE 
STUDIOLIGHT_SPECULAR_HIGHLIGHT_PASS 

Definition at line 38 of file BKE_studiolight.h.

Function Documentation

◆ BKE_studiolight_create()

◆ BKE_studiolight_default()

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

◆ BKE_studiolight_ensure_flag()

◆ BKE_studiolight_find()

◆ BKE_studiolight_find_default()

◆ BKE_studiolight_findindex()

struct StudioLight * BKE_studiolight_findindex ( int index,
int flag )

Definition at line 919 of file studiolight.cc.

References BKE_studiolight_find_default(), flag, LISTBASE_FOREACH, and studiolights.

◆ BKE_studiolight_free()

void BKE_studiolight_free ( void )

Definition at line 871 of file studiolight.cc.

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

Referenced by BKE_blender_free(), and BKE_studiolight_refresh().

◆ BKE_studiolight_init()

◆ BKE_studiolight_listbase()

struct ListBase * BKE_studiolight_listbase ( void )

Definition at line 930 of file studiolight.cc.

References studiolights.

◆ BKE_studiolight_load()

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

Definition at line 991 of file studiolight.cc.

References studiolight_add_file(), and STUDIOLIGHT_USER_DEFINED.

◆ BKE_studiolight_preview()

◆ BKE_studiolight_refresh()

void BKE_studiolight_refresh ( void )

Definition at line 1030 of file studiolight.cc.

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 1019 of file studiolight.cc.

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

Referenced by blender::workbench::SceneResources::init().

◆ BKE_studiolight_unset_icon_id()

void BKE_studiolight_unset_icon_id ( StudioLight * sl,
int icon_id )