66   INLINE 
size_t get_hash() 
const;
    68   INLINE 
bool is_empty() 
const;
    70   INLINE 
bool has_cull_callback() 
const;
    90                                int num_attribs, 
int override = 0);
   101   CPT(
RenderState) adjust_all_priorities(
int adjustment) 
const;
   103   INLINE 
bool has_attrib(
TypeHandle type) 
const;
   104   INLINE 
bool has_attrib(
int slot) 
const;
   106   ALWAYS_INLINE 
const RenderAttrib *get_attrib(
int slot) 
const;
   107   INLINE 
const RenderAttrib *get_attrib_def(
int slot) 
const;
   108   INLINE 
int get_override(
TypeHandle type) 
const;
   109   INLINE 
int get_override(
int slot) 
const;
   111   MAKE_MAP_PROPERTY(attribs, has_attrib, get_attrib);
   115   virtual bool unref() 
const;
   122   INLINE 
size_t get_composition_cache_num_entries() 
const;
   123   INLINE 
size_t get_invert_composition_cache_num_entries() 
const;
   125   INLINE 
size_t get_composition_cache_size() 
const;
   126   INLINE 
const RenderState *get_composition_cache_source(
size_t n) 
const;
   127   INLINE 
const RenderState *get_composition_cache_result(
size_t n) 
const;
   128   INLINE 
size_t get_invert_composition_cache_size() 
const;
   129   INLINE 
const RenderState *get_invert_composition_cache_source(
size_t n) 
const;
   130   INLINE 
const RenderState *get_invert_composition_cache_result(
size_t n) 
const;
   131   EXTENSION(PyObject *get_composition_cache() 
const);
   132   EXTENSION(PyObject *get_invert_composition_cache() 
const);
   134   void output(std::ostream &out) 
const;
   135   void write(std::ostream &out, 
int indent_level) 
const;
   137   static int get_max_priority();
   139   static int get_num_states();
   140   static int get_num_unused_states();
   141   static int clear_cache();
   142   static void clear_munger_cache();
   143   static int garbage_collect();
   144   static void list_cycles(std::ostream &out);
   145   static void list_states(std::ostream &out);
   146   static bool validate_states();
   147   EXTENSION(
static PyObject *get_states());
   152   INLINE 
int get_draw_order() 
const;
   153   INLINE 
int get_bin_index() 
const;
   154   int get_geom_rendering(
int geom_rendering) 
const;
   157   static void bin_removed(
int bin_index);
   159   INLINE 
static void flush_level();
   162   template<
class AttribType>
   163   INLINE 
bool get_attrib(
const AttribType *&attrib) 
const;
   164   template<
class AttribType>
   165   INLINE 
bool get_attrib(CPT(AttribType) &attrib) 
const;
   166   template<
class AttribType>
   167   INLINE 
void get_attrib_def(
const AttribType *&attrib) 
const;
   168   template<
class AttribType>
   169   INLINE 
void get_attrib_def(CPT(AttribType) &attrib) 
const;
   173   INLINE 
void check_hash() 
const;
   174   bool validate_filled_slots() 
const;
   175   INLINE 
bool do_cache_unref() 
const;
   176   INLINE 
bool do_node_unref() 
const;
   177   INLINE 
void calc_hash();
   180   class CompositionCycleDescEntry {
   182     INLINE CompositionCycleDescEntry(
const RenderState *obj,
   196   void detect_and_break_cycles();
   197   static bool r_detect_cycles(
const RenderState *start_state,
   201   static bool r_detect_reverse_cycles(
const RenderState *start_state,
   207   void remove_cache_pointers();
   209   void determine_bin_index();
   210   void determine_cull_callback();
   213   INLINE 
void set_destructing();
   214   INLINE 
bool is_destructing() 
const;
   216   INLINE 
void consider_update_pstats(
int old_referenced_bits) 
const;
   217   static void update_pstats(
int old_referenced_bits, 
int new_referenced_bits);
   220   static void init_states();
   250     INLINE Composition();
   251     INLINE Composition(
const Composition ©);
   273   mutable int _last_mi;
   286   static size_t _garbage_index;
   303     INLINE Attribute(
const RenderAttrib *attrib, 
int override);
   304     INLINE Attribute(
int override = 0);
   305     INLINE Attribute(
const Attribute ©);
   306     INLINE 
void operator = (
const Attribute ©);
   307     INLINE 
void set(
const RenderAttrib *attrib, 
int override);
   308     INLINE 
int compare_to(
const Attribute &other) 
const;
   313   Attribute _attributes[RenderAttribRegistry::_max_slots];
   326     F_checked_bin_index       = 0x000001,
   327     F_checked_cull_callback   = 0x000002,
   328     F_has_cull_callback       = 0x000004,
   329     F_is_destructing          = 0x000008,
   330     F_hash_known              = 0x000010,
   334   vector_int *_read_overrides;  
   342   static void register_with_read_factory();
   356   static void init_type() {
   357     NodeCachedReferenceCount::init_type();
   359                   NodeCachedReferenceCount::get_class_type());
   362     return get_class_type();
   364   virtual TypeHandle force_init_type() {init_type(); 
return get_class_type();}
   380 INLINE std::ostream &operator << (std::ostream &out, 
const RenderState &state) {
 This is just a simple derivative of GeomMunger that adds the ability to munge states.
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
 
This is the base class for a number of render attributes (other than transform) that may be set on sc...
 
virtual void finalize(BamReader *manager)
Called by the BamReader to perform any final actions needed for setting up the object after all objec...
 
This class further specializes CachedTypedWritableReferenceCount to also add a node_ref_count,...
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
 
This is the fundamental interface for extracting binary objects from a Bam file, as generated by a Ba...
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
 
Objects of this class are used to convert vertex data from a Geom into a format suitable for passing ...
 
This is the base class for PointerTo and ConstPointerTo.
 
Base class for objects that can be written to and read from Bam files.
 
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_type(),...
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
 
A lightweight reentrant mutex.
 
This collects together the pieces of data that are accumulated for each node while walking the scene ...
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
 
void node_ref() const
Explicitly increments the reference count.
 
This template class implements an unordered map of keys to data, implemented as a hashtable.
 
This is the fundamental interface for writing binary objects to a Bam file, to be extracted later by ...
 
This is our own Panda specialization on the default STL list.
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
 
virtual void fillin(DatagramIterator &scan, BamReader *manager)
This internal function is intended to be called by each class's make_from_bam() method to read in all...
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
 
virtual void write_datagram(BamWriter *manager, Datagram &dg)
Writes the contents of this object to the datagram for shipping out to a Bam file.
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
 
This is our own Panda specialization on the default STL vector.
 
A lightweight class that represents a single element that may be timed and/or counted via stats.
 
bool cache_unref() const
Explicitly decrements the cache reference count and the normal reference count simultaneously.
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
 
virtual int complete_pointers(TypedWritable **p_list, BamReader *manager)
Receives an array of pointers, one for each time manager->read_pointer() was called in fillin().
 
This class is used to associate each RenderAttrib with a different slot index at runtime,...
 
An instance of this class is passed to the Factory when requesting it to do its business and construc...
 
void cache_ref() const
Explicitly increments the cache reference count and the normal reference count simultaneously.
 
bool node_unref() const
Explicitly decrements the node reference count and the normal reference count simultaneously.
 
The default class template does not define any methods.
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
 
This represents a unique collection of RenderAttrib objects that correspond to a particular renderabl...
 
This is the default hash_compare class, which assumes the Key is a size_t value or can be implicitly ...
 
An STL function object class, this is intended to be used on any ordered collection of class objects ...
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
 
This is used to track the utilization of the TransformState and RenderState caches,...
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
 
Encapsulates all the communication with a particular instance of a given rendering backend.
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
 
A class to retrieve the individual data elements previously stored in a Datagram.
 
TypeHandle is the identifier used to differentiate C++ class types.
 
This is a sequence number that increments monotonically.
 
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
 
This is a standard, non-reentrant mutex, similar to the Mutex class.
 
An ordered list of data elements, formatted in memory for transmission over a socket or writing to a ...
 
This object performs a depth-first traversal of the scene graph, with optional view-frustum culling,...
 
virtual bool unref() const
Explicitly decrements the reference count.