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();
100 void *light_block,
int light_size,
101 void *shadow_block,
int shadow_size);
107 bool is_cube =
false);
135 static inline void intrusive_ptr_add_ref(
GR_Light *gl) { gl->
incref(); }
136 static inline void intrusive_ptr_release(
GR_Light *gl) { gl->
decref(); }
152 auto entry = myLightMap.find(
id);
153 return (entry != myLightMap.end());
159 auto entry = myLightMap.find(
id);
160 if(entry != myLightMap.end())
161 return myList(entry->second);
170 myLightMap[
id] =
int(myList.entries());
171 myList.append(new_light);
175 auto entry = myLightMap.find(
id);
176 if(entry != myLightMap.end())
178 int index = entry->second;
180 myList.removeIndex(index);
181 for(
int i=0; i<myList.entries(); i++)
182 myLightMap[myList(i)->id()] = i;
188 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.
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.
Wrapper around hboost::intrusive_ptr.
GLuint const GLchar * name
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 setHeadlight(bool e)
virtual void finishShadowRender(RE_RenderContext)
RE_LightList * glLights()
const RE_LightList * glLights() const