28 return compose_impl(other);
49 return invert_compose_impl(other);
61 INLINE
bool RenderAttrib::
62 always_reissue()
const {
63 return _always_reissue;
78 INLINE
int RenderAttrib::
84 if (type != other_type) {
89 return compare_to_impl(&other);
97 INLINE
size_t RenderAttrib::
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.
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...
TypeHandle is the identifier used to differentiate C++ class types.