62 bool initSceneSetForRender(
76 unsigned shadowmap_size,
79 bool is_antialiased) = 0;
84 unsigned shadowmap_index) {}
87 virtual bool hasShadowMap() = 0;
91 static void cleanupShaders();
105 void *light_block,
int light_size,
106 void *shadow_block,
int shadow_size);
112 bool is_cube =
false);
142 static inline void intrusive_ptr_add_ref(
GR_Light *gl) { gl->
incref(); }
143 static inline void intrusive_ptr_release(
GR_Light *gl) { gl->
decref(); }
159 auto entry = myLightMap.find(
id);
160 return (entry != myLightMap.end());
166 auto entry = myLightMap.find(
id);
167 if(entry != myLightMap.end())
168 return myList(entry->second);
177 myLightMap[
id] =
int(myList.entries());
178 myList.append(new_light);
182 auto entry = myLightMap.find(
id);
183 if(entry != myLightMap.end())
185 int index = entry->second;
187 myList.removeIndex(index);
188 for(
int i=0; i<myList.entries(); i++)
189 myLightMap[myList(i)->id()] = i;
195 void removeAllBut(
const UT_Set<int> &active_lights);
A collection of Vulkan UBO, SSBO, and Image shader bindings (descriptor set)
void setLightID(exint id)
typedef int(APIENTRYP RE_PFNGLXSWAPINTERVALSGIPROC)(int)
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
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)
GR_LightPtr getLight(int id) const
Base class for all light types.
const UT_StringHolder & lightLink() const
Wrapper around hboost::intrusive_ptr.
GLuint const GLchar * name
void setLightLink(const UT_StringHolder &link)
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)
virtual void finishShadowRenders(RE_RenderContext)
void setGLLights(RE_LightList *list)
void setShadowMask(const UT_StringHolder &mask)
void setHeadlight(bool e)
virtual void finishShadowRender(RE_RenderContext)
RE_LightList * glLights()
const RE_LightList * glLights() const