vsg  1.1.0
VulkanSceneGraph library
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
vsg::ViewDependentState Class Reference

#include <ViewDependentState.h>

Inheritance diagram for vsg::ViewDependentState:
Inheritance graph
[legend]
Collaboration diagram for vsg::ViewDependentState:
Collaboration graph
[legend]

Classes

struct  ShadowMap
 

Public Member Functions

 ViewDependentState (View *in_view)
 
void traverse (Visitor &visitor) override
 
void traverse (ConstVisitor &visitor) const override
 
void traverse (RecordTraversal &rt) const override
 
virtual void init (ResourceRequirements &requirements)
 
virtual void update (ResourceRequirements &requirements)
 
virtual void clear ()
 
virtual void bindDescriptorSets (CommandBuffer &commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet)
 
virtual void compile (Context &context)
 
- Public Member Functions inherited from vsg::Inherit< Object, ViewDependentState >
 Inherit (Args &&... args)
 
std::size_t sizeofObject () const noexcept override
 
const char * className () const noexcept override
 
const std::type_info & type_info () const noexcept override
 
bool is_compatible (const std::type_info &type) const noexcept override
 
int compare (const Object &rhs) const override
 
void accept (Visitor &visitor) override
 
void accept (ConstVisitor &visitor) const override
 
void accept (RecordTraversal &visitor) const override
 
- Public Member Functions inherited from vsg::Object
 Object (const Object &)
 
Objectoperator= (const Object &)
 
template<class T >
T * cast ()
 
template<class T >
const T * cast () const
 
virtual void read (Input &input)
 
virtual void write (Output &output) const
 
void ref () const noexcept
 
void unref () const noexcept
 
void unref_nodelete () const noexcept
 
unsigned int referenceCount () const noexcept
 
template<typename T >
void setValue (const std::string &key, const T &value)
 
void setValue (const std::string &key, const char *value)
 specialization of setValue to handle passing C strings
 
template<typename T >
bool getValue (const std::string &key, T &value) const
 get specified value type, return false if value associated with key is not assigned or is not the correct type
 
void setObject (const std::string &key, ref_ptr< Object > object)
 assign an Object associated with key
 
ObjectgetObject (const std::string &key)
 get Object pointer associated with key, return nullptr if no object associated with key has been assigned
 
const ObjectgetObject (const std::string &key) const
 get const Object pointer associated with key, return nullptr if no object associated with key has been assigned
 
template<class T >
T * getObject (const std::string &key)
 get object pointer of specified type associated with key, return nullptr if no object associated with key has been assigned
 
template<class T >
const T * getObject (const std::string &key) const
 get const object pointer of specified type associated with key, return nullptr if no object associated with key has been assigned
 
ref_ptr< ObjectgetRefObject (const std::string &key)
 get ref_ptr<Object> associated with key, return nullptr if no object associated with key has been assigned
 
ref_ptr< const ObjectgetRefObject (const std::string &key) const
 get ref_ptr<const Object> pointer associated with key, return nullptr if no object associated with key has been assigned
 
template<class T >
ref_ptr< T > getRefObject (const std::string &key)
 get ref_ptr<T> of specified type associated with key, return nullptr if no object associated with key has been assigned
 
template<class T >
const ref_ptr< const T > getRefObject (const std::string &key) const
 get ref_ptr<const T> of specified type associated with key, return nullptr if no object associated with key has been assigned
 
void removeObject (const std::string &key)
 remove meta object or value associated with key
 
AuxiliarygetOrCreateAuxiliary ()
 
AuxiliarygetAuxiliary ()
 
const AuxiliarygetAuxiliary () const
 

Static Public Member Functions

template<class N , class V >
static void t_traverse (N &node, V &visitor)
 
- Static Public Member Functions inherited from vsg::Inherit< Object, ViewDependentState >
static ref_ptr< ViewDependentStatecreate (Args &&... args)
 
static ref_ptr< ViewDependentStatecreate_if (bool flag, Args &&... args)
 
- Static Public Member Functions inherited from vsg::Object
static ref_ptr< Objectcreate ()
 
static ref_ptr< Objectcreate_if (bool flag)
 
static void * operator new (std::size_t count)
 provide new and delete to enable custom memory management via the vsg::Allocator singleton, using the MEMORY_AFFINTY_OBJECTS
 
static void operator delete (void *ptr)
 

Public Attributes

std::vector< std::pair< dmat4, const AmbientLight * > > ambientLights
 
std::vector< std::pair< dmat4, const DirectionalLight * > > directionalLights
 
std::vector< std::pair< dmat4, const PointLight * > > pointLights
 
std::vector< std::pair< dmat4, const SpotLight * > > spotLights
 
Viewview = nullptr
 
ref_ptr< vec4Array > lightData
 
ref_ptr< BufferInfolightDataBufferInfo
 
ref_ptr< vec4Array > viewportData
 
ref_ptr< BufferInfoviewportDataBufferInfo
 
ref_ptr< ImageshadowDepthImage
 
ref_ptr< DescriptorImageshadowMapImages
 
ref_ptr< DescriptorSetLayoutdescriptorSetLayout
 
ref_ptr< DescriptorBufferdescriptor
 
ref_ptr< DescriptorSetdescriptorSet
 
double maxShadowDistance = 1e8
 
double shadowMapBias = 0.005
 
double lambda = 0.5
 
ref_ptr< CommandGraphpreRenderCommandGraph
 
ref_ptr< SwitchpreRenderSwitch
 
std::vector< ShadowMapshadowMaps
 

Additional Inherited Members

- Protected Member Functions inherited from vsg::Object
virtual void _attemptDelete () const
 
void setAuxiliary (Auxiliary *auxiliary)
 

Detailed Description

ViewDependentState to manage lighting, clip planes and texture projection By default assigned to the vsg::View, for standard usage you don't need to create or modify the ViewDependentState If you wish to override the standard lighting support provided by ViewDependentState you can subclass it.

To leverage the state that the ViewDependentState provides you need to set up the graphics pipelines with the vsg::ViewDescriptorSetLayout, and add a vsg::BindViewDescriptorSet to a StateGroup. You don't need to explicitly add these if you have created your scene graph using vsg::Builder or used loaders like vsgXchange::Assimp.


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