68 bool isInstanced()
const {
return (myInstanceParms.size()>0); }
71 bool initSceneSetForRender(
80 bool isDirty()
const {
return myDirtyFlag; }
86 unsigned shadowmap_size,
90 bool is_raytrace) = 0;
98 unsigned shadowmap_index) {}
101 virtual bool needsShadowMap() = 0;
102 virtual bool hasShadowMap() = 0;
112 { myShadowMask=
mask; }
122 void *light_block,
int light_size,
123 void *shadow_block,
int shadow_size);
129 bool is_cube =
false);
188 static inline void intrusive_ptr_add_ref(
GR_Light *gl) { gl->
incref(); }
189 static inline void intrusive_ptr_release(
GR_Light *gl) { gl->
decref(); }
208 auto entry = myLightMap.find(
id);
209 return (entry != myLightMap.end());
215 auto entry = myLightMap.find(
id);
216 if(entry != myLightMap.end())
217 return myList(entry->second);
227 myLightMap[
id] =
int(myList.entries());
228 myList.append(new_light);
232 auto entry = myLightMap.find(
id);
233 if(entry != myLightMap.end())
235 int index = entry->second;
237 myList.removeIndex(index);
238 for(
int i=0; i<myList.entries(); i++)
239 myLightMap[myList(i)->id()] = i;
245 void removeAllBut(
const UT_Set<int> &active_lights);
248 bool myUseHeadlights =
false;
A collection of Vulkan UBO, SSBO, and Image shader bindings (descriptor set)
void setLightID(exint id)
typedef int(APIENTRYP RE_PFNGLXSWAPINTERVALSGIPROC)(int)
void setCanShadow(bool e)
Base class for various things that can appear in a scene outside of geometry.
const UT_StringHolder & shadowMask() const
Opaque reference to a texture stored in the RV_TextureCache.
GR_LightPtr getLightByIndex(int index) const
virtual void clearShadowMap()
bool hasLight(int id) const
UT_IntrusivePtr< GR_Light > GR_LightPtr
UT_NON_COPYABLE(GR_SceneItem)
Temporary container for either a RV_Render and an RE_Render.
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
void add(int id, GR_Light *new_light)
virtual void startShadowRender(RE_RenderContext rc, unsigned shadowmap_index)
GLint GLint GLsizei GLint GLenum GLenum type
GR_LightPtr getLight(int id) const
virtual bool canRayTraceShadow() const
Base class for all light types.
RV_API void cleanupShaders()
const UT_StringHolder & lightLink() const
Wrapper around hboost::intrusive_ptr.
GLuint const GLchar * name
bool useHeadlights() const
void setLightLink(const UT_StringHolder &link)
GA_API const UT_StringHolder transform
Handle to the main interface of Vulkan.
that also have some descendant prim *whose name begins with which in turn has a child named baz where *the predicate active
virtual void attachShadowMap(RE_RenderContext)
RV_API bool initShaders(RV_Instance *inst)
GA_API const UT_StringHolder parms
virtual void finishShadowRenders(RE_RenderContext)
UT_StringHolder myShadowMask
void setGLLights(RE_LightList *list)
void setHeadlight(bool e)
virtual void finishShadowRender(RE_RenderContext)
virtual void setShadowMask(const UT_StringHolder &mask)
RE_LightList * glLights()
void setUseHeadlights(bool v)
const RE_LightList * glLights() const