HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GR_Light Class Referenceabstract

Base class for all light types. More...

#include <GR_Light.h>

+ Inheritance diagram for GR_Light:

Public Types

enum  LightType {
  AMBIENT, DISTANT, POINT, ENVIRONMENT,
  AREA
}
 

Public Member Functions

LightType type () const
 
bool isHeadlight () const
 
void setHeadlight (bool e)
 
bool isEnabled () const
 
void setEnabled (bool e)
 
void setTransform (const UT_Matrix4D &t)
 
const UT_Matrix4Dtransform () const
 
void setLightID (exint id)
 
bool initSceneSetForRender (RV_Render *r, RV_ShaderProgram *shader, UT_UniquePtr< RV_ShaderBlock > &scene_block, UT_UniquePtr< RV_ShaderVariableSet > &scene_set)
 
bool initLightSetForRender (RV_Render *r, RV_ShaderProgramBase *shader)
 
bool bindSets (RV_Render *r, RV_ShaderProgramBase *shader)
 
virtual bool initBlocks (RV_Render *r)=0
 
virtual RV_ShaderProgramgetShader (bool shadows, bool per_sample)=0
 
- Public Member Functions inherited from GR_SceneItem
const UT_StringHoldername () const
 
exint id () const
 
int64 getVersion () const
 
void setVersion (int64 v)
 
void incref ()
 
void decref ()
 
void setName (const UT_StringHolder &name)
 
void setID (int id)
 

Static Public Member Functions

static bool initShaders (RV_Instance *inst)
 
static void cleanupShaders ()
 

Protected Types

enum  { GLOBAL_SET = 0, LIGHT_SET = 1 }
 

Protected Member Functions

 GR_Light (const UT_StringHolder &name, LightType type)
 
 ~GR_Light () override
 
 UT_NON_COPYABLE (GR_Light)
 
bool privInitBlocks (RV_Render *r, void *light_block, int light_size, void *shadow_block, int shadow_size)
 
void privBindTexture (RV_Render *r, const UT_StringHolder &map_name, int rel_op_id, RV_TextureRef &map_id, const UT_StringHolder &sampler_name, RV_TextureParms *tex_parms=nullptr, bool is_cube=false)
 
RV_ShaderProgramprivGetShader (exint tags)
 
- Protected Member Functions inherited from GR_SceneItem
 GR_SceneItem (const UT_StringHolder &name, int id)
 
virtual ~GR_SceneItem ()
 
 UT_NON_COPYABLE (GR_SceneItem)
 

Protected Attributes

bool myDirtyFlag
 
bool myShadowDirtyFlag
 
bool mySetBound
 

Detailed Description

Base class for all light types.

Definition at line 36 of file GR_Light.h.

Member Enumeration Documentation

anonymous enum
protected
Enumerator
GLOBAL_SET 
LIGHT_SET 

Definition at line 103 of file GR_Light.h.

Enumerator
AMBIENT 
DISTANT 
POINT 
ENVIRONMENT 
AREA 

Definition at line 39 of file GR_Light.h.

Constructor & Destructor Documentation

GR_Light::GR_Light ( const UT_StringHolder name,
LightType  type 
)
protected
GR_Light::~GR_Light ( )
overrideprotected

Member Function Documentation

bool GR_Light::bindSets ( RV_Render r,
RV_ShaderProgramBase shader 
)
static void GR_Light::cleanupShaders ( )
static
virtual RV_ShaderProgram* GR_Light::getShader ( bool  shadows,
bool  per_sample 
)
pure virtual
virtual bool GR_Light::initBlocks ( RV_Render r)
pure virtual
bool GR_Light::initLightSetForRender ( RV_Render r,
RV_ShaderProgramBase shader 
)
bool GR_Light::initSceneSetForRender ( RV_Render r,
RV_ShaderProgram shader,
UT_UniquePtr< RV_ShaderBlock > &  scene_block,
UT_UniquePtr< RV_ShaderVariableSet > &  scene_set 
)
static bool GR_Light::initShaders ( RV_Instance inst)
static
bool GR_Light::isEnabled ( ) const
inline

Definition at line 53 of file GR_Light.h.

bool GR_Light::isHeadlight ( ) const
inline

Definition at line 50 of file GR_Light.h.

void GR_Light::privBindTexture ( RV_Render r,
const UT_StringHolder map_name,
int  rel_op_id,
RV_TextureRef map_id,
const UT_StringHolder sampler_name,
RV_TextureParms tex_parms = nullptr,
bool  is_cube = false 
)
protected
RV_ShaderProgram* GR_Light::privGetShader ( exint  tags)
protected
bool GR_Light::privInitBlocks ( RV_Render r,
void light_block,
int  light_size,
void shadow_block,
int  shadow_size 
)
protected
void GR_Light::setEnabled ( bool  e)
inline

Definition at line 54 of file GR_Light.h.

void GR_Light::setHeadlight ( bool  e)
inline

Definition at line 51 of file GR_Light.h.

void GR_Light::setLightID ( exint  id)
inline

Definition at line 59 of file GR_Light.h.

void GR_Light::setTransform ( const UT_Matrix4D t)
inline

Definition at line 56 of file GR_Light.h.

const UT_Matrix4D& GR_Light::transform ( ) const
inline

Definition at line 57 of file GR_Light.h.

LightType GR_Light::type ( ) const
inline

Definition at line 48 of file GR_Light.h.

GR_Light::UT_NON_COPYABLE ( GR_Light  )
protected

Member Data Documentation

bool GR_Light::myDirtyFlag
protected

Definition at line 99 of file GR_Light.h.

bool GR_Light::mySetBound
protected

Definition at line 101 of file GR_Light.h.

bool GR_Light::myShadowDirtyFlag
protected

Definition at line 100 of file GR_Light.h.


The documentation for this class was generated from the following file: