28 return compose_impl(other);
49 return invert_compose_impl(other);
61 INLINE
bool RenderAttrib::
62 always_reissue()
const {
63 return _always_reissue;
84 if (type != other_type) {
89 return compare_to_impl(&other);
138 get_auto_shader_attrib(const
RenderState *state)
const {
139 return get_auto_shader_attrib_impl(state);
147 INLINE
void RenderAttrib::
149 size_t hash = get_hash_impl();
164 RenderAttribRegistry::MakeDefaultFunc *make_default_func) {
166 return reg->
register_slot(type_handle, sort, make_default_func);
static int register_slot(TypeHandle type_handle, int sort, RenderAttribRegistry::MakeDefaultFunc *make_default_func)
Adds the indicated TypeHandle to the registry, if it is not there already, and returns a unique slot ...
This is the base class for a number of render attributes (other than transform) that may be set on sc...
int get_index() const
Returns the integer index associated with this TypeHandle.
size_t get_hash() const
Returns a suitable hash value for phash_map.
static size_t add_hash(size_t start, const Key &key)
Adds the indicated key into a running hash.
int register_slot(TypeHandle type_handle, int sort, MakeDefaultFunc *make_default_func)
Adds the indicated TypeHandle to the registry, if it is not there already, and returns a unique slot ...
This class is used to associate each RenderAttrib with a different slot index at runtime, so we can store a list of RenderAttribs in the RenderState object, and very quickly look them up by type.
This represents a unique collection of RenderAttrib objects that correspond to a particular renderabl...
int compare_to(const RenderAttrib &other) const
Provides an arbitrary ordering among all unique RenderAttribs, so we can store the essentially differ...
TypeHandle is the identifier used to differentiate C++ class types.