78     void        setTimeDependent(
bool timedep, 
fpreal t = 0.0);
 
   79     void        setOPTimeDependent(
bool timedep, 
fpreal t = 0.0);
 
   89                         exint cache_version = 0;
 
   93                         if(myTexCacheVersion != cache_version)
 
   96                     if(myDirtyFlag || myDepNode.isDirty())
 
  107                         myDepNode.update(myTime);
 
  143                     return bindSets(r, shader, for_curve);
 
  149                     bool created = 
false;
 
  150                     return (initMaterialSetForRender(r, shader, created) &&
 
  151                             initBlocks(r, opts) &&
 
  152                             bindSets(r, shader, for_curve));
 
  160     virtual bool initMaterialSetForRender(
RV_Render *
r,
 
  178     void        setOverrides(
const UT_Options *overrides);
 
  181     void        setFallbacks(
const UT_Options *attrib_fallbacks);
 
  193                     { myExtraInputs = extra_inputs; }
 
  196     static exint getUniqueMaterialID();
 
  204     void        clearOpIDs() { myOpNodes.clear(); myOpDepsDirty = 
true; }
 
  205     void        addOpID(
int id);
 
  207     bool        timeChangeCheck() 
const;
 
  229     exint           myTexCacheVersion = 0;
 
  230     unsigned        myTimeDep : 1,
 
  235                     myHasDisplacement : 1,
 
  238                     myTexturesLoaded : 1,
 
  255                 { 
return myDefault; }
 
  259                 { 
return myFactory; }
 
  267                     if(myAltAtlas && material_id < 0)
 
  268                         return myAltAtlas->get(-material_id);
 
  270                         return myDefault ? myDefault : myFactory;
 
  273                         return entry->second;
 
  281                     if(myAltAtlas && material_id < 0)
 
  282                         return myAltAtlas->get(-material_id);
 
  284                     if(material_id == 0 && dp.vk_default_mat_id != 0)
 
  285                         material_id = dp.vk_default_mat_id;
 
  288                         return myDefault ? myDefault : myFactory;
 
  292                         return entry->second;
 
  298                 { (*this)[ material->id() ] = material; }
 
  303             { myDefault = material; 
if(add_list && material) 
add(material); }
 
  308             { myFactory = material; 
if(add_list && material) 
add(material); }
 
  313             { myAltAtlas = atlas; }
 
  320                 return (entry != 
end());
 
  344     bool       hasParm(
exint ptype) 
const;
 
  346     int        getParmI(
exint ptype, 
int defval = 0) 
const;
 
  369     static void initCache();
 
  370     static void destroyCache();
 
  371     static void clearCache();
 
  388     static void  cacheComputeShader(
exint entry, 
const GR_Material &for_material,
 
  411     exint                 myCurrentID = 1;
 
void setFactoryMaterial(const GR_MaterialPtr &material, bool add_list=true)
 
void dirty(bool dirty=true)
 
virtual RV_ShaderProgram * getSurfaceShader() const 
 
virtual void dirtyTextures()
 
const GR_MaterialPtr & getFactoryMaterial() const 
 
Base class for various things that can appear in a scene outside of geometry. 
 
bool isTimeDependent() const 
 
bool opDependenciesDirty() const 
 
GT_API const UT_StringHolder time
 
const UT_Options * getOverrides() const 
 
GLsizei const GLfloat * value
 
bool isOPTimeDependent() const 
 
FMT_CONSTEXPR auto find(Ptr first, Ptr last, T value, Ptr &out) -> bool
 
UT_NON_COPYABLE(GR_SceneItem)
 
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects. 
 
bool texturesLoaded() const 
 
const GR_MaterialAtlas * alternateMaterials() const 
 
fpreal getCurrentTime() const 
 
void setTransparent(bool has_tex)
 
bool isTransparent() const 
 
GLint GLint GLsizei GLint GLenum GLenum type
 
bool bindWithoutUpdate(RV_Render *r, RV_ShaderProgramBase *shader, const GR_DisplayOption *opts, bool for_curve=false)
 
bool needsTangents() const 
 
const UT_StringMap< InputType > & extraInputs() const 
 
const UT_Options * getFallbacks() const 
 
static const UT_Matrix4T< float > & getIdentityMatrix()
 
MaterialType type() const 
 
void setHasDisplacement(bool has_disp)
 
#define UT_NON_COPYABLE(CLASS)
Define deleted copy constructor and assignment operator inside a class. 
 
const UT_Set< int > opDependencies() const 
 
void add(const GR_MaterialPtr &material)
 
virtual RV_ShaderCompute * getDisplaceShader() const 
 
void setNeedsTangents(bool tan)
 
static exint cacheRefresh()
 
bool isDirty(fpreal time)
 
GLuint const GLchar * name
 
bool bind(RV_Render *r, RV_ShaderProgramBase *shader, const GR_DisplayOption *opts, bool for_curve=false)
 
void clearOpDependenciesDirty()
 
SYS_API double tan(double x)
 
A map of string to various well defined value types. 
 
GA_API const UT_StringHolder parms
 
DEP_MicroNode & dependencies()
 
void setTextured(bool has_tex)
 
void setNeedsUVs(bool uvs)
 
void setHasUDIM(bool has_udim)
 
void setTexturesLoaded(bool loaded)
 
virtual RV_ShaderProgram * getCurveShader() const 
 
void setDefaultMaterial(const GR_MaterialPtr &material, bool add_list=true)
 
bool hasMaterial(int material_id) const 
 
bool hasDisplacement() const 
 
GR_MaterialAtlas * alternateMaterials()
 
ImageBuf OIIO_API add(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
 
This is a fast, non-string access and cut-down version of UT_Options. 
 
void setAlternateMaterials(GR_MaterialAtlas *atlas)
 
bool SYSisEqual(const UT_Vector2T< T > &a, const UT_Vector2T< T > &b, S tol=SYS_FTOLERANCE)
Componentwise equality. 
 
const GR_MaterialPtr & getDefaultMaterial() const 
 
Reader/Writer mutex class. 
 
Base::const_iterator const_iterator
 
void setExtraInputs(const UT_StringMap< InputType > &extra_inputs)