1565844137 3 3 9 libp3gobj 4 qQJq 12 panda3d.core 1572 1596 11 AdaptiveLru 0 4 3168 24 AdaptiveLru::AdaptiveLru 0 1 1 10 /** * */ 81 explicit AdaptiveLru::AdaptiveLru(std::string const &name, std::size_t max_size); 1597 12 ~AdaptiveLru 0 4 3168 25 AdaptiveLru::~AdaptiveLru 0 0 10 /** * */ 32 AdaptiveLru::~AdaptiveLru(void); 1598 14 get_total_size 0 4 3168 27 AdaptiveLru::get_total_size 0 1 2 77 /** * Returns the total size of all objects currently active on the LRU. */ 59 inline std::size_t AdaptiveLru::get_total_size(void) const; 1599 12 get_max_size 0 4 3168 25 AdaptiveLru::get_max_size 0 1 3 91 /** * Returns the max size of all objects that are allowed to be active on the * LRU. */ 57 inline std::size_t AdaptiveLru::get_max_size(void) const; 1600 12 set_max_size 0 4 3168 25 AdaptiveLru::set_max_size 0 1 4 143 /** * Changes the max size of all objects that are allowed to be active on the * LRU. * * If the size is (size_t)-1, there is no limit. */ 60 inline void AdaptiveLru::set_max_size(std::size_t max_size); 1601 17 count_active_size 0 4 3168 30 AdaptiveLru::count_active_size 0 1 5 106 /** * Returns the total size of the pages that were enqueued since the last call * to begin_epoch(). */ 55 std::size_t AdaptiveLru::count_active_size(void) const; 1602 14 consider_evict 0 4 3168 27 AdaptiveLru::consider_evict 0 1 6 61 /** * Evicts a sequence of objects if the queue is full. */ 46 inline void AdaptiveLru::consider_evict(void); 1603 8 evict_to 0 4 3168 21 AdaptiveLru::evict_to 0 1 7 132 /** * Evicts a sequence of objects until the queue fits within the indicated * target size, regardless of its normal max size. */ 59 inline void AdaptiveLru::evict_to(std::size_t target_size); 1604 11 begin_epoch 0 4 3168 24 AdaptiveLru::begin_epoch 0 1 8 184 /** * Marks the end of the previous epoch and the beginning of the next one. * This will evict any objects that are pending eviction, and also update any * internal bookkeeping. */ 36 void AdaptiveLru::begin_epoch(void); 1605 8 validate 0 4 3168 21 AdaptiveLru::validate 0 1 9 125 /** * Checks that the LRU is internally self-consistent. Returns true if * successful, false if there is some problem. */ 40 inline bool AdaptiveLru::validate(void); 1606 6 output 0 4 3168 19 AdaptiveLru::output 0 1 10 10 /** * */ 50 void AdaptiveLru::output(std::ostream &out) const; 1607 5 write 0 4 3168 18 AdaptiveLru::write 0 1 11 10 /** * */ 67 void AdaptiveLru::write(std::ostream &out, int indent_level) const; 1608 10 set_weight 0 4 3168 23 AdaptiveLru::set_weight 0 1 12 283 // The following methods are specific to AdaptiveLru, and do not exist in // the SimpleLru implementation. In most cases, the defaults will be // sufficient, so you do not need to mess with them. /** * Specifies the weight value used to compute the exponential moving average. */ 56 inline void AdaptiveLru::set_weight(PN_stdfloat weight); 1609 10 get_weight 0 4 3168 23 AdaptiveLru::get_weight 0 1 13 83 /** * Returns the weight value used to compute the exponential moving average. */ 55 inline PN_stdfloat AdaptiveLru::get_weight(void) const; 1610 25 set_max_updates_per_frame 0 4 3168 38 AdaptiveLru::set_max_updates_per_frame 0 1 14 214 /** * Specifies the maximum number of pages the AdaptiveLru will update each * frame. This is a performance optimization: keeping this number low limits * the impact of the AdaptiveLru's adaptive algorithm. */ 78 inline void AdaptiveLru::set_max_updates_per_frame(int max_updates_per_frame); 1611 25 get_max_updates_per_frame 0 4 3168 38 AdaptiveLru::get_max_updates_per_frame 0 1 15 86 /** * Returns the maximum number of pages the AdaptiveLru will update each frame. */ 62 inline int AdaptiveLru::get_max_updates_per_frame(void) const; 1612 36 upcast_to_AdaptiveLruPageDynamicList 0 12 3170 53 AdaptiveLruPage::upcast_to_AdaptiveLruPageDynamicList 0 0 57 upcast from AdaptiveLruPage to AdaptiveLruPageDynamicList 88 AdaptiveLruPageDynamicList *AdaptiveLruPage::upcast_to_AdaptiveLruPageDynamicList(void); 1613 27 downcast_to_AdaptiveLruPage 0 12 3171 55 AdaptiveLruPageDynamicList::downcast_to_AdaptiveLruPage 0 0 59 downcast from AdaptiveLruPageDynamicList to AdaptiveLruPage 79 AdaptiveLruPage *AdaptiveLruPageDynamicList::downcast_to_AdaptiveLruPage(void); 1614 35 upcast_to_AdaptiveLruPageStaticList 0 12 3170 52 AdaptiveLruPage::upcast_to_AdaptiveLruPageStaticList 0 0 56 upcast from AdaptiveLruPage to AdaptiveLruPageStaticList 86 AdaptiveLruPageStaticList *AdaptiveLruPage::upcast_to_AdaptiveLruPageStaticList(void); 1615 27 downcast_to_AdaptiveLruPage 0 12 3172 54 AdaptiveLruPageStaticList::downcast_to_AdaptiveLruPage 0 0 58 downcast from AdaptiveLruPageStaticList to AdaptiveLruPage 78 AdaptiveLruPage *AdaptiveLruPageStaticList::downcast_to_AdaptiveLruPage(void); 1616 15 AdaptiveLruPage 0 4 3170 32 AdaptiveLruPage::AdaptiveLruPage 0 2 16 17 22 /** * */ /** * */ 127 explicit AdaptiveLruPage::AdaptiveLruPage(std::size_t lru_size); AdaptiveLruPage::AdaptiveLruPage(AdaptiveLruPage const ©); 1617 10 operator = 0 4 3170 27 AdaptiveLruPage::operator = 0 1 18 0 62 void AdaptiveLruPage::operator =(AdaptiveLruPage const ©); 1618 16 ~AdaptiveLruPage 0 6 3170 33 AdaptiveLruPage::~AdaptiveLruPage 0 0 10 /** * */ 48 virtual AdaptiveLruPage::~AdaptiveLruPage(void); 1619 7 get_lru 0 4 3170 24 AdaptiveLruPage::get_lru 0 1 19 104 /** * Returns the LRU that manages this page, or NULL if it is not currently * managed by any LRU. */ 57 inline AdaptiveLru *AdaptiveLruPage::get_lru(void) const; 1620 11 enqueue_lru 0 4 3170 28 AdaptiveLruPage::enqueue_lru 0 1 20 183 /** * Adds the page to the LRU for the first time, or marks it recently-accessed * if it has already been added. * * If lru is NULL, it means to remove this page from its LRU. */ 52 void AdaptiveLruPage::enqueue_lru(AdaptiveLru *lru); 1621 11 dequeue_lru 0 4 3170 28 AdaptiveLruPage::dequeue_lru 0 1 21 49 /** * Removes the page from its AdaptiveLru. */ 47 inline void AdaptiveLruPage::dequeue_lru(void); 1622 13 mark_used_lru 0 4 3170 30 AdaptiveLruPage::mark_used_lru 0 2 22 23 341 /** * To be called when the page is used; this will move it to the tail of the * AdaptiveLru queue it is already on. * * This method is const because it's not technically modifying the contents of * the page itself. */ /** * To be called when the page is used; this will move it to the tail of the * specified AdaptiveLru queue. */ 117 inline void AdaptiveLruPage::mark_used_lru(void) const; inline void AdaptiveLruPage::mark_used_lru(AdaptiveLru *lru); 1623 12 get_lru_size 0 4 3170 29 AdaptiveLruPage::get_lru_size 0 1 24 85 /** * Returns the size of this page as reported to the LRU, presumably in bytes. */ 61 inline std::size_t AdaptiveLruPage::get_lru_size(void) const; 1624 12 set_lru_size 0 4 3170 29 AdaptiveLruPage::set_lru_size 0 1 25 98 /** * Specifies the size of this page, presumably in bytes, although any unit is * possible. */ 64 inline void AdaptiveLruPage::set_lru_size(std::size_t lru_size); 1625 9 evict_lru 0 6 3170 26 AdaptiveLruPage::evict_lru 0 1 26 455 /** * Evicts the page from the LRU. Called internally when the LRU determines * that it is full. May also be called externally when necessary to * explicitly evict the page. * * It is legal for this method to either evict the page as requested, do * nothing (in which case the eviction will be requested again at the next * epoch), or requeue itself on the tail of the queue (in which case the * eviction will be requested again much later). */ 46 virtual void AdaptiveLruPage::evict_lru(void); 1626 6 output 0 6 3170 23 AdaptiveLruPage::output 0 1 27 10 /** * */ 62 virtual void AdaptiveLruPage::output(std::ostream &out) const; 1627 5 write 0 6 3170 22 AdaptiveLruPage::write 0 1 28 10 /** * */ 79 virtual void AdaptiveLruPage::write(std::ostream &out, int indent_level) const; 1628 14 get_num_frames 0 4 3170 31 AdaptiveLruPage::get_num_frames 0 1 29 157 // Not defined in SimpleLruPage. /** * Returns the number of frames since the page was first added to its LRU. * Returns 0 if it does not have an LRU. */ 57 unsigned int AdaptiveLruPage::get_num_frames(void) const; 1629 23 get_num_inactive_frames 0 4 3170 40 AdaptiveLruPage::get_num_inactive_frames 0 1 30 125 /** * Returns the number of frames since the page was last accessed on its LRU. * Returns 0 if it does not have an LRU. */ 66 unsigned int AdaptiveLruPage::get_num_inactive_frames(void) const; 1630 9 GeomEnums 0 4 3173 20 GeomEnums::GeomEnums 0 2 31 32 0 102 inline GeomEnums::GeomEnums(void) = default; inline GeomEnums::GeomEnums(GeomEnums const &) = default; 1631 10 ~GeomEnums 0 4 3173 21 GeomEnums::~GeomEnums 0 0 0 28 GeomEnums::~GeomEnums(void); 1632 23 GeomVertexAnimationSpec 0 4 3181 48 GeomVertexAnimationSpec::GeomVertexAnimationSpec 0 2 33 34 22 /** * */ /** * */ 157 inline GeomVertexAnimationSpec::GeomVertexAnimationSpec(void); inline GeomVertexAnimationSpec::GeomVertexAnimationSpec(GeomVertexAnimationSpec const &other); 1633 10 operator = 0 4 3181 35 GeomVertexAnimationSpec::operator = 0 1 35 0 86 inline void GeomVertexAnimationSpec::operator =(GeomVertexAnimationSpec const &other); 1634 18 get_animation_type 0 4 3181 43 GeomVertexAnimationSpec::get_animation_type 0 1 36 66 /** * Returns the type of animation represented by this spec. */ 88 inline GeomEnums::AnimationType GeomVertexAnimationSpec::get_animation_type(void) const; 1635 18 get_num_transforms 0 4 3181 43 GeomVertexAnimationSpec::get_num_transforms 0 1 37 202 /** * This is only meaningful for animation_type AT_hardware. It specifies the * maximum number of transforms that might be simultaneously applied to any * one vertex by the data in this format. */ 67 inline int GeomVertexAnimationSpec::get_num_transforms(void) const; 1636 22 get_indexed_transforms 0 4 3181 47 GeomVertexAnimationSpec::get_indexed_transforms 0 1 38 231 /** * This is only meaningful for animation_type AT_hardware. If true, it * indicates that the format uses indexed animation tables. It is false if * each vertex will reference the first _num_transforms table entries only. */ 72 inline bool GeomVertexAnimationSpec::get_indexed_transforms(void) const; 1637 8 set_none 0 4 3181 33 GeomVertexAnimationSpec::set_none 0 1 39 74 /** * Specifies that no vertex animation is represented by this spec. */ 52 inline void GeomVertexAnimationSpec::set_none(void); 1638 9 set_panda 0 4 3181 34 GeomVertexAnimationSpec::set_panda 0 1 40 168 /** * Specifies that vertex animation is to be performed by Panda. This is the * most general setting and can handle any kind of vertex animation * represented. */ 53 inline void GeomVertexAnimationSpec::set_panda(void); 1639 12 set_hardware 0 4 3181 37 GeomVertexAnimationSpec::set_hardware 0 1 41 391 /** * Specifies that vertex animation is to be performed by the graphics hardware * (or at least by the graphics backend API, which is actually still free to * animate the vertices on the CPU). * * This is only legal if the graphics hardware can support the specified * limits on number of transforms and/or indexed transforms. Also, no current * graphics API's support morphing. */ 95 inline void GeomVertexAnimationSpec::set_hardware(int num_transforms, bool indexed_transforms); 1640 6 output 0 4 3181 31 GeomVertexAnimationSpec::output 0 1 42 10 /** * */ 62 void GeomVertexAnimationSpec::output(std::ostream &out) const; 1641 24 ~GeomVertexAnimationSpec 0 4 3181 49 GeomVertexAnimationSpec::~GeomVertexAnimationSpec 0 0 0 56 GeomVertexAnimationSpec::~GeomVertexAnimationSpec(void); 1642 4 make 0 4 3184 18 InternalName::make 0 2 43 44 650 // These versions are exposed to Python, which have additional logic to map // from Python interned strings. /** * The public interface for constructing an InternalName pointer. This will * return a new InternalName representing the indicated name, if this is the * first time the particular name has been requested; if the name is already * in use, it will return the existing pointer. * * If the string contains the '.' character, the string will be divided at the * dots and the so-defined hierarchy of names will be registered. This is * handled transparently. */ /** * Make using a string and an integer. Concatenates the two. */ 156 static PointerTo< InternalName > InternalName::make(std::string const &name, int index); static PointerTo< InternalName > InternalName::make(PyObject *str); 1643 6 append 0 4 3184 20 InternalName::append 0 1 45 221 /** * Constructs a new InternalName based on this name, with the indicated string * following it. This is a cheaper way to construct a hierarchical name than * InternalName::make(parent->get_name() + ".basename"). */ 76 PointerTo< InternalName > InternalName::append(std::string const &basename); 1644 10 get_parent 0 4 3184 24 InternalName::get_parent 0 1 46 101 /** * Return the parent of this InternalName. All names have a parent, except * the root name. */ 58 inline InternalName *InternalName::get_parent(void) const; 1645 8 get_name 0 4 3184 22 InternalName::get_name 0 1 47 95 /** * Returns the complete name represented by the InternalName and all of its * parents. */ 47 std::string InternalName::get_name(void) const; 1646 4 join 0 4 3184 18 InternalName::join 0 1 48 69 /** * Like get_name, but uses a custom separator instead of ".". */ 61 std::string InternalName::join(std::string const &sep) const; 1647 12 get_basename 0 4 3184 26 InternalName::get_basename 0 1 49 159 /** * Return the name represented by just this particular InternalName object, * ignoring its parents names. This is everything after the rightmost dot. */ 65 inline std::string const &InternalName::get_basename(void) const; 1648 13 find_ancestor 0 4 3184 27 InternalName::find_ancestor 0 1 50 293 /** * Returns the index of the ancestor with the indicated basename, or -1 if no * ancestor has that basename. Returns 0 if this name has the basename. * * This index value may be passed to get_ancestor() or get_net_basename() to * retrieve more information about the indicated name. */ 67 int InternalName::find_ancestor(std::string const &basename) const; 1649 12 get_ancestor 0 4 3184 26 InternalName::get_ancestor 0 1 51 222 /** * Returns the ancestor with the indicated index number. 0 is this name * itself, 1 is the name's parent, 2 is the parent's parent, and so on. If * there are not enough ancestors, returns the root InternalName. */ 60 InternalName const *InternalName::get_ancestor(int n) const; 1650 7 get_top 0 4 3184 21 InternalName::get_top 0 1 52 206 /** * Returns the oldest ancestor in the InternalName's chain, not counting the * root. This will be the first name in the string, e.g. "texcoord.foo.bar" * will return the InternalName "texcoord". */ 54 InternalName const *InternalName::get_top(void) const; 1651 16 get_net_basename 0 4 3184 30 InternalName::get_net_basename 0 1 53 192 /** * Returns the basename of this name prefixed by the indicated number of * ancestors. 0 is this name's basename, 1 is parent.basename, 2 is * grandparent.parent.basename, and so on. */ 56 std::string InternalName::get_net_basename(int n) const; 1652 6 output 0 4 3184 20 InternalName::output 0 1 54 10 /** * */ 51 void InternalName::output(std::ostream &out) const; 1653 8 get_root 0 4 3184 22 InternalName::get_root 0 1 55 210 // Some predefined built-in names. /** * Returns the standard root InternalName. This is the root of all other * InternalNames. It has no name itself, and it is the only InternalName with * no parent. */ 69 static inline PointerTo< InternalName > InternalName::get_root(void); 1654 9 get_error 0 4 3184 23 InternalName::get_error 0 1 56 53 /** * Returns the standard InternalName "error". */ 70 static inline PointerTo< InternalName > InternalName::get_error(void); 1655 10 get_vertex 0 4 3184 24 InternalName::get_vertex 0 1 57 148 /** * Returns the standard InternalName "vertex". This is the column header for * the 3-d or 4-d vertex position information for each vertex. */ 71 static inline PointerTo< InternalName > InternalName::get_vertex(void); 1656 10 get_normal 0 4 3184 24 InternalName::get_normal 0 1 58 129 /** * Returns the standard InternalName "normal". This is the column header for * the 3-d lighting normal for each vertex. */ 71 static inline PointerTo< InternalName > InternalName::get_normal(void); 1657 11 get_tangent 0 4 3184 25 InternalName::get_tangent 0 1 59 295 /** * Returns the standard InternalName "tangent". This is the column header for * the tangent vector associated with each vertex, which is a unit vector * usually perpendicular to the normal and in the direction of the U texture * coordinate change. It is used for deriving bump maps. */ 72 static inline PointerTo< InternalName > InternalName::get_tangent(void); 1658 16 get_tangent_name 0 4 3184 30 InternalName::get_tangent_name 0 1 60 184 /** * Returns the InternalName "tangent.name", where name is the supplied string. * This is the column header for the tangent associated with the named texture * coordinate set. */ 96 static inline PointerTo< InternalName > InternalName::get_tangent_name(std::string const &name); 1659 12 get_binormal 0 4 3184 26 InternalName::get_binormal 0 1 61 321 /** * Returns the standard InternalName "binormal". This is the column header * for the tangent vector associated with each vertex, which is a unit vector * usually perpendicular to both the normal and the tangent, and in the * direction of the V texture coordinate change. It is used for deriving bump * maps. */ 73 static inline PointerTo< InternalName > InternalName::get_binormal(void); 1660 17 get_binormal_name 0 4 3184 31 InternalName::get_binormal_name 0 1 62 187 /** * Returns the InternalName "binormal.name", where name is the supplied * string. This is the column header for the binormal associated with the * named texture coordinate set. */ 97 static inline PointerTo< InternalName > InternalName::get_binormal_name(std::string const &name); 1661 12 get_texcoord 0 4 3184 26 InternalName::get_texcoord 0 1 63 232 /** * Returns the standard InternalName "texcoord". This is the column header * for the default texture coordinate set for each vertex. It is also used * for identifying the default texture coordinate set in a TextureStage. */ 73 static inline PointerTo< InternalName > InternalName::get_texcoord(void); 1662 17 get_texcoord_name 0 4 3184 31 InternalName::get_texcoord_name 0 1 64 262 /** * Returns the InternalName "texcoord.name", where name is the supplied * string. This is the column header for the named texture coordinate set for * each vertex. It is also used for identifying the named texture coordinate * set in a TextureStage. */ 97 static inline PointerTo< InternalName > InternalName::get_texcoord_name(std::string const &name); 1663 9 get_color 0 4 3184 23 InternalName::get_color 0 1 65 132 /** * Returns the standard InternalName "color". This is the column header for * the 4-component color value for each vertex. */ 70 static inline PointerTo< InternalName > InternalName::get_color(void); 1664 10 get_rotate 0 4 3184 24 InternalName::get_rotate 0 1 66 217 /** * Returns the standard InternalName "rotate". This is the column header for * the floating-point rotate value, which represents a number of degrees * counter-clockwise to rotate each point or point sprite. */ 71 static inline PointerTo< InternalName > InternalName::get_rotate(void); 1665 8 get_size 0 4 3184 22 InternalName::get_size 0 1 67 225 /** * Returns the standard InternalName "size". This is the column header for * the floating-point size value, which overrides the thickness parameter of * the RenderModeAttrib on a per-vertex (e.g. per-point) basis. */ 69 static inline PointerTo< InternalName > InternalName::get_size(void); 1666 16 get_aspect_ratio 0 4 3184 30 InternalName::get_aspect_ratio 0 1 68 250 /** * Returns the standard InternalName "aspect_ratio". This is the column header * for the floating-point aspect ratio value, which is used to define non- * square points. This number is the ratio x / y, where y is the point size * (above). */ 77 static inline PointerTo< InternalName > InternalName::get_aspect_ratio(void); 1667 19 get_transform_blend 0 4 3184 33 InternalName::get_transform_blend 0 1 69 264 /** * Returns the standard InternalName "transform_blend". This is the column * header for the integer transform_blend index, which is used to define * vertex animation on the CPU by indexing to a particular vertex weighting * from the TransformBlendTable. */ 80 static inline PointerTo< InternalName > InternalName::get_transform_blend(void); 1668 20 get_transform_weight 0 4 3184 34 InternalName::get_transform_weight 0 1 70 474 /** * Returns the standard InternalName "transform_weight". This is the column * header for the n-component transform_weight value, which is used in * conjuntion with "transform_index" to define vertex animation on the * graphics card. The transform_weight value specifies the weight of the nth * transform. By convention, there are 1 fewer weight values than transforms, * since the weights are assumed to sum to 1 (and the last value is therefore * implicit). */ 81 static inline PointerTo< InternalName > InternalName::get_transform_weight(void); 1669 19 get_transform_index 0 4 3184 33 InternalName::get_transform_index 0 1 71 444 /** * Returns the standard InternalName "transform_index". This is the column * header for the n-component transform_index value, which is used in * conjuntion with "transform_weight" to define vertex animation on the * graphics card. The transform_index value specifies the nth transform, by * lookup in the TransformTable. The transform_index column may be omitted, * in which case the nth transform is the nth entry in the table. */ 80 static inline PointerTo< InternalName > InternalName::get_transform_index(void); 1670 9 get_morph 0 4 3184 23 InternalName::get_morph 0 1 72 348 /** * Returns an InternalName derived from the given base column name and the * given slider name, which is the column header for the offset vector that * should be applied to the base column name when the named morph slider is * engaged. * * Each morph slider requires a set of n morph columns, one for each base * column it applies to. */ 113 static inline PointerTo< InternalName > InternalName::get_morph(InternalName *column, std::string const &slider); 1671 9 get_index 0 4 3184 23 InternalName::get_index 0 1 73 233 /** * Returns the standard InternalName "index". This is the column header for * the integer vertex index. It is not used in the vertex data itself, but is * used in the GeomPrimitive structure to index into the vertex data. */ 70 static inline PointerTo< InternalName > InternalName::get_index(void); 1672 9 get_world 0 4 3184 23 InternalName::get_world 0 1 74 108 /** * Returns the standard InternalName "world". This is used as a keyword in * the shader subsystem. */ 70 static inline PointerTo< InternalName > InternalName::get_world(void); 1673 10 get_camera 0 4 3184 24 InternalName::get_camera 0 1 75 109 /** * Returns the standard InternalName "camera". This is used as a keyword in * the shader subsystem. */ 71 static inline PointerTo< InternalName > InternalName::get_camera(void); 1674 9 get_model 0 4 3184 23 InternalName::get_model 0 1 76 108 /** * Returns the standard InternalName "model". This is used as a keyword in * the shader subsystem. */ 70 static inline PointerTo< InternalName > InternalName::get_model(void); 1675 8 get_view 0 4 3184 22 InternalName::get_view 0 1 77 107 /** * Returns the standard InternalName "view". This is used as a keyword in the * shader subsystem. */ 69 static inline PointerTo< InternalName > InternalName::get_view(void); 1676 14 get_class_type 0 4 3184 28 InternalName::get_class_type 0 1 78 0 53 static TypeHandle InternalName::get_class_type(void); 1677 16 GeomVertexColumn 0 4 3190 34 GeomVertexColumn::GeomVertexColumn 0 2 79 80 107 /** * Creates an invalid column. Used only when constructing from a bam file. */ /** * */ /** * */ 317 inline explicit GeomVertexColumn::GeomVertexColumn(CPT_InternalName name, int num_components, GeomEnums::NumericType numeric_type, GeomEnums::Contents contents, int start, int column_alignment = 0, int num_elements = 0, int element_stride = 0); inline GeomVertexColumn::GeomVertexColumn(GeomVertexColumn const ©); 1678 10 operator = 0 4 3190 28 GeomVertexColumn::operator = 0 1 81 0 64 void GeomVertexColumn::operator =(GeomVertexColumn const ©); 1679 17 ~GeomVertexColumn 0 4 3190 35 GeomVertexColumn::~GeomVertexColumn 0 0 10 /** * */ 49 inline GeomVertexColumn::~GeomVertexColumn(void); 1680 8 get_name 0 4 3190 26 GeomVertexColumn::get_name 0 1 82 267 /** * Returns the name of this particular data field, e.g. "vertex" or "normal". * The name may be a user-defined string, or it may be one of the standard * system-defined field types. Only the system-defined field types are used * for the actual rendering. */ 66 inline InternalName const *GeomVertexColumn::get_name(void) const; 1681 18 get_num_components 0 4 3190 36 GeomVertexColumn::get_num_components 0 1 83 194 /** * Returns the number of components of the column: the number of instances of * the NumericType in each element. This is usually, but not always, the same * thing as get_num_values(). */ 60 inline int GeomVertexColumn::get_num_components(void) const; 1682 14 get_num_values 0 4 3190 32 GeomVertexColumn::get_num_values 0 1 84 337 /** * Returns the number of numeric values of the column: the number of distinct * numeric values that go into each element. This is usually, but not always, * the same thing as get_num_components(); the difference is in the case of a * composite numeric type like NT_packed_dcba, which has four numeric values * per component. */ 56 inline int GeomVertexColumn::get_num_values(void) const; 1683 16 get_num_elements 0 4 3190 34 GeomVertexColumn::get_num_elements 0 1 85 107 /** * Returns the number of times this column is repeated. This is usually 1, * except for matrices. */ 58 inline int GeomVertexColumn::get_num_elements(void) const; 1684 16 get_numeric_type 0 4 3190 34 GeomVertexColumn::get_numeric_type 0 1 86 79 /** * Returns the token representing the numeric type of the data storage. */ 77 inline GeomEnums::NumericType GeomVertexColumn::get_numeric_type(void) const; 1685 12 get_contents 0 4 3190 30 GeomVertexColumn::get_contents 0 1 87 83 /** * Returns the token representing the semantic meaning of the stored value. */ 70 inline GeomEnums::Contents GeomVertexColumn::get_contents(void) const; 1686 9 get_start 0 4 3190 27 GeomVertexColumn::get_start 0 1 88 145 /** * Returns the byte within the array record at which this column starts. This * can be set to non-zero to implement interleaved arrays. */ 51 inline int GeomVertexColumn::get_start(void) const; 1687 20 get_column_alignment 0 4 3190 38 GeomVertexColumn::get_column_alignment 0 1 89 299 /** * Returns the alignment requirements for this column. If this is greater * than 1, it restricts the column to appear only on memory addresses that are * integer multiples of this value; this has implications for this column's * start value, as well as the stride of the resulting array. */ 62 inline int GeomVertexColumn::get_column_alignment(void) const; 1688 18 get_element_stride 0 4 3190 36 GeomVertexColumn::get_element_stride 0 1 90 133 /** * This value is only relevant for matrix types. Returns the number of bytes * to add to access the next row of the matrix. */ 60 inline int GeomVertexColumn::get_element_stride(void) const; 1689 19 get_component_bytes 0 4 3190 37 GeomVertexColumn::get_component_bytes 0 1 91 111 /** * Returns the number of bytes used by each component (that is, by one element * of the numeric type). */ 61 inline int GeomVertexColumn::get_component_bytes(void) const; 1690 15 get_total_bytes 0 4 3190 33 GeomVertexColumn::get_total_bytes 0 1 92 111 /** * Returns the number of bytes used by each element of the column: * component_bytes * num_components. */ 57 inline int GeomVertexColumn::get_total_bytes(void) const; 1691 21 has_homogeneous_coord 0 4 3190 39 GeomVertexColumn::has_homogeneous_coord 0 1 93 392 /** * Returns true if this Contents type is one that includes a homogeneous * coordinate in the fourth component, or false otherwise. If this is true, * correct operation on the vertex data may require scaling by the homogeneous * coordinate from time to time (but in general this is handled automatically * if you use the 3-component or smaller forms of get_data() and set_data()). */ 64 inline bool GeomVertexColumn::has_homogeneous_coord(void) const; 1692 13 overlaps_with 0 4 3190 31 GeomVertexColumn::overlaps_with 0 1 94 118 /** * Returns true if this column overlaps with any of the bytes in the indicated * range, false if it does not. */ 81 inline bool GeomVertexColumn::overlaps_with(int start_byte, int num_bytes) const; 1693 22 is_bytewise_equivalent 0 4 3190 40 GeomVertexColumn::is_bytewise_equivalent 0 1 95 159 /** * Returns true if the data store of this column is exactly the same as that * of the other, irrespective of name or start position within the record. */ 90 inline bool GeomVertexColumn::is_bytewise_equivalent(GeomVertexColumn const &other) const; 1694 8 set_name 0 4 3190 26 GeomVertexColumn::set_name 0 1 96 148 /** * Replaces the name of an existing column. This is only legal on an * unregistered format (i.e. when constructing the format initially). */ 52 void GeomVertexColumn::set_name(InternalName *name); 1695 18 set_num_components 0 4 3190 36 GeomVertexColumn::set_num_components 0 1 97 163 /** * Changes the number of components of an existing column. This is only legal * on an unregistered format (i.e. when constructing the format initially). */ 62 void GeomVertexColumn::set_num_components(int num_components); 1696 16 set_numeric_type 0 4 3190 34 GeomVertexColumn::set_numeric_type 0 1 98 152 /** * Changes the numeric type an existing column. This is only legal on an * unregistered format (i.e. when constructing the format initially). */ 77 void GeomVertexColumn::set_numeric_type(GeomEnums::NumericType numeric_type); 1697 12 set_contents 0 4 3190 30 GeomVertexColumn::set_contents 0 1 99 159 /** * Changes the semantic meaning of an existing column. This is only legal on * an unregistered format (i.e. when constructing the format initially). */ 66 void GeomVertexColumn::set_contents(GeomEnums::Contents contents); 1698 9 set_start 0 4 3190 27 GeomVertexColumn::set_start 0 1 100 153 /** * Changes the start byte of an existing column. This is only legal on an * unregistered format (i.e. when constructing the format initially). */ 44 void GeomVertexColumn::set_start(int start); 1699 20 set_column_alignment 0 4 3190 38 GeomVertexColumn::set_column_alignment 0 1 101 159 /** * Changes the column alignment of an existing column. This is only legal on * an unregistered format (i.e. when constructing the format initially). */ 66 void GeomVertexColumn::set_column_alignment(int column_alignment); 1700 6 output 0 4 3190 24 GeomVertexColumn::output 0 1 102 10 /** * */ 55 void GeomVertexColumn::output(std::ostream &out) const; 1701 37 upcast_to_TypedWritableReferenceCount 0 12 3191 60 GeomVertexArrayFormat::upcast_to_TypedWritableReferenceCount 0 1 138 64 upcast from GeomVertexArrayFormat to TypedWritableReferenceCount 96 TypedWritableReferenceCount *GeomVertexArrayFormat::upcast_to_TypedWritableReferenceCount(void); 1702 33 downcast_to_GeomVertexArrayFormat 0 12 3185 62 TypedWritableReferenceCount::downcast_to_GeomVertexArrayFormat 0 0 66 downcast from TypedWritableReferenceCount to GeomVertexArrayFormat 92 GeomVertexArrayFormat *TypedWritableReferenceCount::downcast_to_GeomVertexArrayFormat(void); 1703 19 upcast_to_GeomEnums 0 12 3191 42 GeomVertexArrayFormat::upcast_to_GeomEnums 0 1 139 46 upcast from GeomVertexArrayFormat to GeomEnums 60 GeomEnums *GeomVertexArrayFormat::upcast_to_GeomEnums(void); 1704 33 downcast_to_GeomVertexArrayFormat 0 12 3173 44 GeomEnums::downcast_to_GeomVertexArrayFormat 0 0 48 downcast from GeomEnums to GeomVertexArrayFormat 74 GeomVertexArrayFormat *GeomEnums::downcast_to_GeomVertexArrayFormat(void); 1705 21 GeomVertexArrayFormat 0 4 3191 44 GeomVertexArrayFormat::GeomVertexArrayFormat 0 6 103 104 105 106 107 108 70 /** * */ /** * */ /** * */ /** * */ /** * */ /** * */ 1456 GeomVertexArrayFormat::GeomVertexArrayFormat(void); GeomVertexArrayFormat::GeomVertexArrayFormat(GeomVertexArrayFormat const ©); GeomVertexArrayFormat::GeomVertexArrayFormat(CPT_InternalName name0, int num_components0, GeomEnums::NumericType numeric_type0, GeomEnums::Contents contents0); GeomVertexArrayFormat::GeomVertexArrayFormat(CPT_InternalName name0, int num_components0, GeomEnums::NumericType numeric_type0, GeomEnums::Contents contents0, CPT_InternalName name1, int num_components1, GeomEnums::NumericType numeric_type1, GeomEnums::Contents contents1); GeomVertexArrayFormat::GeomVertexArrayFormat(CPT_InternalName name0, int num_components0, GeomEnums::NumericType numeric_type0, GeomEnums::Contents contents0, CPT_InternalName name1, int num_components1, GeomEnums::NumericType numeric_type1, GeomEnums::Contents contents1, CPT_InternalName name2, int num_components2, GeomEnums::NumericType numeric_type2, GeomEnums::Contents contents2); GeomVertexArrayFormat::GeomVertexArrayFormat(CPT_InternalName name0, int num_components0, GeomEnums::NumericType numeric_type0, GeomEnums::Contents contents0, CPT_InternalName name1, int num_components1, GeomEnums::NumericType numeric_type1, GeomEnums::Contents contents1, CPT_InternalName name2, int num_components2, GeomEnums::NumericType numeric_type2, GeomEnums::Contents contents2, CPT_InternalName name3, int num_components3, GeomEnums::NumericType numeric_type3, GeomEnums::Contents contents3); 1706 10 operator = 0 4 3191 33 GeomVertexArrayFormat::operator = 0 1 109 0 74 void GeomVertexArrayFormat::operator =(GeomVertexArrayFormat const ©); 1707 22 ~GeomVertexArrayFormat 0 6 3191 45 GeomVertexArrayFormat::~GeomVertexArrayFormat 0 0 10 /** * */ 60 virtual GeomVertexArrayFormat::~GeomVertexArrayFormat(void); 1708 5 unref 0 6 3191 28 GeomVertexArrayFormat::unref 0 1 110 123 /** * This method overrides ReferenceCount::unref() to unregister the object when * its reference count goes to zero. */ 54 virtual bool GeomVertexArrayFormat::unref(void) const; 1709 13 is_registered 0 4 3191 36 GeomVertexArrayFormat::is_registered 0 1 111 198 /** * Returns true if this format has been registered, false if it has not. It * may not be used for a Geom until it has been registered, but once * registered, it may no longer be modified. */ 61 inline bool GeomVertexArrayFormat::is_registered(void) const; 1710 15 register_format 0 4 3191 38 GeomVertexArrayFormat::register_format 0 1 112 421 /** * Adds the indicated format to the registry, if there is not an equivalent * format already there; in either case, returns the pointer to the equivalent * format now in the registry. * * This is similar to GeomVertexFormat::register_format(), except that you * generally need not call it explicitly. Calling * GeomVertexFormat::register_format() automatically registers all of the * nested array formats. */ 130 static inline ConstPointerTo< GeomVertexArrayFormat > GeomVertexArrayFormat::register_format(GeomVertexArrayFormat const *format); 1711 10 get_stride 0 4 3191 33 GeomVertexArrayFormat::get_stride 0 1 113 83 /** * Returns the total number of bytes reserved in the array for each vertex. */ 57 inline int GeomVertexArrayFormat::get_stride(void) const; 1712 10 set_stride 0 4 3191 33 GeomVertexArrayFormat::set_stride 0 1 114 175 /** * Changes the total number of bytes reserved in the array for each vertex. * You may not reduce this below get_total_bytes(), but you may increase it * arbitrarily. */ 58 inline void GeomVertexArrayFormat::set_stride(int stride); 1713 10 get_pad_to 0 4 3191 33 GeomVertexArrayFormat::get_pad_to 0 1 115 347 /** * Returns the byte divisor to which the data record must be padded to meet * hardware limitations. For instance, if this is 4, the stride will be * automatically rounded up to the next multiple of 4 bytes. This value is * automatically increased as needed to ensure the individual numeric * components in the array are word-aligned. */ 57 inline int GeomVertexArrayFormat::get_pad_to(void) const; 1714 10 set_pad_to 0 4 3191 33 GeomVertexArrayFormat::set_pad_to 0 1 116 355 /** * Explicitly sets the byte divisor to which the data record must be padded to * meet hardware limitations. See get_pad_to(). Normally it is not necessary * to call this unless you have some specific requirements for row-to-row data * alignment. Note that this value may be automatically increased at each * subsequent call to add_column(). */ 58 inline void GeomVertexArrayFormat::set_pad_to(int pad_to); 1715 11 get_divisor 0 4 3191 34 GeomVertexArrayFormat::get_divisor 0 1 117 214 /** * Returns the divisor attribute for the data in this array. If 0, it * contains per-vertex data. If 1, it contains per-instance data. If higher * than 1, the read row is advanced for each n instances. */ 58 inline int GeomVertexArrayFormat::get_divisor(void) const; 1716 11 set_divisor 0 4 3191 34 GeomVertexArrayFormat::set_divisor 0 1 118 206 /** * Set this to 0 to indicate that this array contains per-vertex data, or to 1 * to indicate that it contains per-instance data. If higher than 1, the read * row is advanced for each n instances. */ 60 inline void GeomVertexArrayFormat::set_divisor(int divisor); 1717 15 get_total_bytes 0 4 3191 38 GeomVertexArrayFormat::get_total_bytes 0 1 119 122 /** * Returns the total number of bytes used by the data types within the format, * including gaps between elements. */ 62 inline int GeomVertexArrayFormat::get_total_bytes(void) const; 1718 10 add_column 0 4 3191 33 GeomVertexArrayFormat::add_column 0 2 120 121 792 /** * Adds a new column to the specification. This is a table of per-vertex * floating-point numbers such as "vertex" or "normal"; you must specify where * in each record the table starts, and how many components (dimensions) exist * per vertex. * * The return value is the index number of the new data type. */ /** * Adds a new column to the specification. This is a table of per-vertex * floating-point numbers such as "vertex" or "normal"; you must specify where * in each record the table starts, and how many components (dimensions) exist * per vertex. * * Adding a column with the same name as a previous type, or that overlaps * with one or more previous types, quietly removes the previous type(s). * * The return value is the index number of the new data type. */ 261 int GeomVertexArrayFormat::add_column(CPT_InternalName name, int num_components, GeomEnums::NumericType numeric_type, GeomEnums::Contents contents, int start = -1, int column_alignment = 0); int GeomVertexArrayFormat::add_column(GeomVertexColumn const &column); 1719 13 remove_column 0 4 3191 36 GeomVertexArrayFormat::remove_column 0 1 122 107 /** * Removes the column with the indicated name, if any. This leaves a gap in * the byte structure. */ 68 void GeomVertexArrayFormat::remove_column(InternalName const *name); 1720 13 clear_columns 0 4 3191 36 GeomVertexArrayFormat::clear_columns 0 1 123 104 /** * Removes all columns previously added, sets the stride to zero, and prepares * to start over. */ 48 void GeomVertexArrayFormat::clear_columns(void); 1721 12 pack_columns 0 4 3191 35 GeomVertexArrayFormat::pack_columns 0 1 124 48 /** * Removes wasted space between columns. */ 47 void GeomVertexArrayFormat::pack_columns(void); 1722 27 align_columns_for_animation 0 4 3191 50 GeomVertexArrayFormat::align_columns_for_animation 0 1 125 319 /** * Reprocesses the columns in the format to align the C_point and C_vector * columns to 16-byte boundaries to allow for the more efficient SSE2 * operations (assuming SSE2 is enabled in the build). * * The caller is responsible for testing vertex_animation_align_16 to decide * whether to call this method. */ 62 void GeomVertexArrayFormat::align_columns_for_animation(void); 1723 15 get_num_columns 0 4 3191 38 GeomVertexArrayFormat::get_num_columns 0 1 126 64 /** * Returns the number of different columns in the array. */ 62 inline int GeomVertexArrayFormat::get_num_columns(void) const; 1724 10 get_column 0 4 3191 33 GeomVertexArrayFormat::get_column 0 3 127 128 129 273 /** * Returns the ith column of the array. */ /** * Returns the specification with the indicated name, or NULL if the name is * not used. */ /** * Returns the first specification that overlaps with any of the indicated * bytes in the range, or NULL if none do. */ 265 inline GeomVertexColumn const *GeomVertexArrayFormat::get_column(int i) const; GeomVertexColumn const *GeomVertexArrayFormat::get_column(InternalName const *name) const; GeomVertexColumn const *GeomVertexArrayFormat::get_column(int start_byte, int num_bytes) const; 1725 0 0 0 0 0 0 0 0 0 1726 10 has_column 0 4 3191 33 GeomVertexArrayFormat::has_column 0 1 130 75 /** * Returns true if the array has the named column, false otherwise. */ 78 inline bool GeomVertexArrayFormat::has_column(InternalName const *name) const; 1727 17 is_data_subset_of 0 4 3191 40 GeomVertexArrayFormat::is_data_subset_of 0 1 131 309 /** * Returns true if all of the fields in this array format are also present and * equivalent in the other array format, and in the same byte positions, and * the stride is the same. That is, true if this format can share the same * data pointer as the other format (with possibly some unused gaps). */ 88 bool GeomVertexArrayFormat::is_data_subset_of(GeomVertexArrayFormat const &other) const; 1728 18 count_unused_space 0 4 3191 41 GeomVertexArrayFormat::count_unused_space 0 1 132 83 /** * Returns the number of bytes per row that are not assigned to any column. */ 58 int GeomVertexArrayFormat::count_unused_space(void) const; 1729 6 output 0 4 3191 29 GeomVertexArrayFormat::output 0 1 133 10 /** * */ 60 void GeomVertexArrayFormat::output(std::ostream &out) const; 1730 5 write 0 4 3191 28 GeomVertexArrayFormat::write 0 1 134 10 /** * */ 81 void GeomVertexArrayFormat::write(std::ostream &out, int indent_level = 0) const; 1731 15 write_with_data 0 4 3191 38 GeomVertexArrayFormat::write_with_data 0 1 135 10 /** * */ 126 void GeomVertexArrayFormat::write_with_data(std::ostream &out, int indent_level, GeomVertexArrayData const *array_data) const; 1732 17 get_format_string 0 4 3191 40 GeomVertexArrayFormat::get_format_string 0 1 136 242 /** * Returns a string with format codes representing the exact memory layout of * the columns in memory, as understood by Python's struct module. If pad is * true, extra padding bytes are added to the end as 'x' characters as needed. */ 76 std::string GeomVertexArrayFormat::get_format_string(bool pad = true) const; 1733 14 get_class_type 0 4 3191 37 GeomVertexArrayFormat::get_class_type 0 1 137 0 62 static TypeHandle GeomVertexArrayFormat::get_class_type(void); 1734 37 upcast_to_TypedWritableReferenceCount 0 12 3194 55 GeomVertexFormat::upcast_to_TypedWritableReferenceCount 0 1 199 59 upcast from GeomVertexFormat to TypedWritableReferenceCount 91 TypedWritableReferenceCount *GeomVertexFormat::upcast_to_TypedWritableReferenceCount(void); 1735 28 downcast_to_GeomVertexFormat 0 12 3185 57 TypedWritableReferenceCount::downcast_to_GeomVertexFormat 0 0 61 downcast from TypedWritableReferenceCount to GeomVertexFormat 82 GeomVertexFormat *TypedWritableReferenceCount::downcast_to_GeomVertexFormat(void); 1736 19 upcast_to_GeomEnums 0 12 3194 37 GeomVertexFormat::upcast_to_GeomEnums 0 1 200 41 upcast from GeomVertexFormat to GeomEnums 55 GeomEnums *GeomVertexFormat::upcast_to_GeomEnums(void); 1737 28 downcast_to_GeomVertexFormat 0 12 3173 39 GeomEnums::downcast_to_GeomVertexFormat 0 0 43 downcast from GeomEnums to GeomVertexFormat 64 GeomVertexFormat *GeomEnums::downcast_to_GeomVertexFormat(void); 1738 16 GeomVertexFormat 0 4 3194 34 GeomVertexFormat::GeomVertexFormat 0 3 140 141 142 34 /** * */ /** * */ /** * */ 186 GeomVertexFormat::GeomVertexFormat(void); GeomVertexFormat::GeomVertexFormat(GeomVertexArrayFormat const *array_format); GeomVertexFormat::GeomVertexFormat(GeomVertexFormat const ©); 1739 10 operator = 0 4 3194 28 GeomVertexFormat::operator = 0 1 143 0 64 void GeomVertexFormat::operator =(GeomVertexFormat const ©); 1740 17 ~GeomVertexFormat 0 6 3194 35 GeomVertexFormat::~GeomVertexFormat 0 0 10 /** * */ 50 virtual GeomVertexFormat::~GeomVertexFormat(void); 1741 5 unref 0 6 3194 23 GeomVertexFormat::unref 0 1 144 123 /** * This method overrides ReferenceCount::unref() to unregister the object when * its reference count goes to zero. */ 49 virtual bool GeomVertexFormat::unref(void) const; 1742 13 is_registered 0 4 3194 31 GeomVertexFormat::is_registered 0 1 145 198 /** * Returns true if this format has been registered, false if it has not. It * may not be used for a Geom until it has been registered, but once * registered, it may no longer be modified. */ 56 inline bool GeomVertexFormat::is_registered(void) const; 1743 15 register_format 0 4 3194 33 GeomVertexFormat::register_format 0 2 146 147 604 /** * Adds the indicated format to the registry, if there is not an equivalent * format already there; in either case, returns the pointer to the equivalent * format now in the registry. * * This must be called before a format may be used in a Geom. After this * call, you should discard the original pointer you passed in (which may or * may not now be invalid) and let its reference count decrement normally; you * should use only the returned value from this point on. */ /** * This flavor of register_format() implicitly creates a one-array vertex * format from the array definition. */ 236 static inline ConstPointerTo< GeomVertexFormat > GeomVertexFormat::register_format(GeomVertexFormat const *format); static inline ConstPointerTo< GeomVertexFormat > GeomVertexFormat::register_format(GeomVertexArrayFormat const *format); 1744 13 get_animation 0 4 3194 31 GeomVertexFormat::get_animation 0 1 148 117 /** * Returns the GeomVertexAnimationSpec that indicates how this format's * vertices are set up for animation. */ 82 inline GeomVertexAnimationSpec const &GeomVertexFormat::get_animation(void) const; 1745 13 set_animation 0 4 3194 31 GeomVertexFormat::set_animation 0 1 149 260 /** * Resets the GeomVertexAnimationSpec that indicates how this format's * vertices are set up for animation. You should also, of course, change the * columns in the tables accordingly. * * This may not be called once the format has been registered. */ 86 inline void GeomVertexFormat::set_animation(GeomVertexAnimationSpec const &animation); 1746 24 get_post_animated_format 0 4 3194 42 GeomVertexFormat::get_post_animated_format 0 1 150 325 /** * Returns a suitable vertex format for sending the animated vertices to the * graphics backend. This is the same format as the source format, with the * CPU-animation data elements removed. * * This may only be called after the format has been registered. The return * value will have been already registered. */ 90 ConstPointerTo< GeomVertexFormat > GeomVertexFormat::get_post_animated_format(void) const; 1747 16 get_union_format 0 4 3194 34 GeomVertexFormat::get_union_format 0 1 151 447 /** * Returns a new GeomVertexFormat that includes all of the columns defined in * either this GeomVertexFormat or the other one. If any column is defined in * both formats with different sizes (for instance, texcoord2 vs. texcoord3), * the new format will include the larger of the two definitions. * * This may only be called after both source formats have been registered. * The return value will also have been already registered. */ 107 ConstPointerTo< GeomVertexFormat > GeomVertexFormat::get_union_format(GeomVertexFormat const *other) const; 1748 14 get_num_arrays 0 4 3194 32 GeomVertexFormat::get_num_arrays 0 1 152 223 /** * Returns the number of individual arrays required by the format. If the * array data is completely interleaved, this will be 1; if it is completely * parallel, this will be the same as the number of data types. */ 64 inline std::size_t GeomVertexFormat::get_num_arrays(void) const; 1749 9 get_array 0 4 3194 27 GeomVertexFormat::get_array 0 1 153 71 /** * Returns the description of the nth array used by the format. */ 89 inline GeomVertexArrayFormat const *GeomVertexFormat::get_array(std::size_t array) const; 1750 12 modify_array 0 4 3194 30 GeomVertexFormat::modify_array 0 1 154 190 /** * Returns a modifiable pointer to the indicated array. This means * duplicating it if it is shared or registered. * * This may not be called once the format has been registered. */ 73 GeomVertexArrayFormat *GeomVertexFormat::modify_array(std::size_t array); 1751 9 set_array 0 4 3194 27 GeomVertexFormat::set_array 0 1 155 124 /** * Replaces the definition of the indicated array. * * This may not be called once the format has been registered. */ 89 void GeomVertexFormat::set_array(std::size_t array, GeomVertexArrayFormat const *format); 1752 12 remove_array 0 4 3194 30 GeomVertexFormat::remove_array 0 1 156 115 /** * Removes the nth array from the format. * * This may not be called once the format has been registered. */ 55 void GeomVertexFormat::remove_array(std::size_t array); 1753 9 add_array 0 4 3194 27 GeomVertexFormat::add_array 0 1 157 243 /** * Adds the indicated array definition to the list of arrays included within * this vertex format definition. The return value is the index number of the * new array. * * This may not be called once the format has been registered. */ 83 std::size_t GeomVertexFormat::add_array(GeomVertexArrayFormat const *array_format); 1754 12 insert_array 0 4 3194 30 GeomVertexFormat::insert_array 0 1 158 275 /** * Adds the indicated array definition to the list of arrays at the indicated * position. This works just like add_array(), except that you can specify * which array index the new array should have. * * This may not be called once the format has been registered. */ 98 void GeomVertexFormat::insert_array(std::size_t array, GeomVertexArrayFormat const *array_format); 1755 12 clear_arrays 0 4 3194 30 GeomVertexFormat::clear_arrays 0 1 159 146 /** * Removes all of the array definitions from the format and starts over. * * This may not be called once the format has been registered. */ 42 void GeomVertexFormat::clear_arrays(void); 1756 19 remove_empty_arrays 0 4 3194 37 GeomVertexFormat::remove_empty_arrays 0 1 160 119 /** * Removes the arrays that define no columns. * * This may not be called once the format has been registered. */ 49 void GeomVertexFormat::remove_empty_arrays(void); 1757 15 get_num_columns 0 4 3194 33 GeomVertexFormat::get_num_columns 0 1 161 100 /** * Returns the total number of different columns in the specification, across * all arrays. */ 58 std::size_t GeomVertexFormat::get_num_columns(void) const; 1758 14 get_array_with 0 4 3194 32 GeomVertexFormat::get_array_with 0 2 162 163 699 /** * Returns the index number of the array with the ith column. * * The return value can be passed to get_array_format() to get the format of * the array. It may also be passed to GeomVertexData::get_array_data() or * get_data() or set_data() to manipulate the actual array data. */ /** * Returns the index number of the array with the indicated column, or -1 if * no arrays contained that name. * * The return value can be passed to get_array_format() to get the format of * the array. It may also be passed to GeomVertexData::get_array_data() or * get_data() or set_data() to manipulate the actual array data. * * This may only be called after the format has been registered. */ 128 int GeomVertexFormat::get_array_with(std::size_t i) const; int GeomVertexFormat::get_array_with(InternalName const *name) const; 1759 10 get_column 0 4 3194 28 GeomVertexFormat::get_column 0 2 164 165 255 /** * Returns the ith column of the specification, across all arrays. */ /** * Returns the specification with the indicated name, or NULL if the name is * not used. Use get_array_with() to determine which array this column is * associated with. */ 160 GeomVertexColumn const *GeomVertexFormat::get_column(std::size_t i) const; GeomVertexColumn const *GeomVertexFormat::get_column(InternalName const *name) const; 1760 10 has_column 0 4 3194 28 GeomVertexFormat::has_column 0 1 166 76 /** * Returns true if the format has the named column, false otherwise. */ 73 inline bool GeomVertexFormat::has_column(InternalName const *name) const; 1761 15 get_column_name 0 4 3194 33 GeomVertexFormat::get_column_name 0 1 167 65 /** * Returns the name of the ith column, across all arrays. */ 75 InternalName const *GeomVertexFormat::get_column_name(std::size_t i) const; 1762 13 remove_column 0 4 3194 31 GeomVertexFormat::remove_column 0 1 168 370 /** * Removes the named column from the format, from whichever array it exists * in. If there are other columns remaining in the array, the array is left * with a gap where the column used to be; if this was the only column in the * array, the array is removed (unless keep_empty_array is true). * * This may not be called once the format has been registered. */ 94 void GeomVertexFormat::remove_column(InternalName const *name, bool keep_empty_array = false); 1763 12 pack_columns 0 4 3194 30 GeomVertexFormat::pack_columns 0 1 169 48 /** * Removes wasted space between columns. */ 42 void GeomVertexFormat::pack_columns(void); 1764 27 align_columns_for_animation 0 4 3194 45 GeomVertexFormat::align_columns_for_animation 0 1 170 259 /** * Reprocesses the columns in the format to align the C_point and C_vector * columns to 16-byte boundaries to allow for the more efficient SSE2 * operations (assuming SSE2 is enabled in the build). * * Also see maybe_align_columns_for_animation(). */ 57 void GeomVertexFormat::align_columns_for_animation(void); 1765 33 maybe_align_columns_for_animation 0 4 3194 51 GeomVertexFormat::maybe_align_columns_for_animation 0 1 171 172 /** * Calls align_columns_for_animation() if this format's AnimationSpec * indicates that it contains animated vertices, and if vertex-animation- * align-16 is true. */ 63 void GeomVertexFormat::maybe_align_columns_for_animation(void); 1766 14 get_num_points 0 4 3194 32 GeomVertexFormat::get_num_points 0 1 172 161 /** * Returns the number of columns within the format that represent points in * space. * * This may only be called after the format has been registered. */ 64 inline std::size_t GeomVertexFormat::get_num_points(void) const; 1767 9 get_point 0 4 3194 27 GeomVertexFormat::get_point 0 1 173 219 /** * Returns the name of the nth point column. This represents a point in * space, which should be transformed by any spatial transform matrix. * * This may only be called after the format has been registered. */ 76 inline InternalName const *GeomVertexFormat::get_point(std::size_t n) const; 1768 15 get_num_vectors 0 4 3194 33 GeomVertexFormat::get_num_vectors 0 1 174 165 /** * Returns the number of columns within the format that represent directional * vectors. * * This may only be called after the format has been registered. */ 65 inline std::size_t GeomVertexFormat::get_num_vectors(void) const; 1769 10 get_vector 0 4 3194 28 GeomVertexFormat::get_vector 0 1 175 239 /** * Returns the name of the nth vector column. This represents a directional * vector, which should be transformed by any spatial transform matrix as a * vector. * * This may only be called after the format has been registered. */ 77 inline InternalName const *GeomVertexFormat::get_vector(std::size_t n) const; 1770 17 get_num_texcoords 0 4 3194 35 GeomVertexFormat::get_num_texcoords 0 1 176 165 /** * Returns the number of columns within the format that represent texture * coordinates. * * This may only be called after the format has been registered. */ 67 inline std::size_t GeomVertexFormat::get_num_texcoords(void) const; 1771 12 get_texcoord 0 4 3194 30 GeomVertexFormat::get_texcoord 0 1 177 165 /** * Returns the name of the nth texcoord column. This represents a texture * coordinate. * * This may only be called after the format has been registered. */ 79 inline InternalName const *GeomVertexFormat::get_texcoord(std::size_t n) const; 1772 14 get_num_morphs 0 4 3194 32 GeomVertexFormat::get_num_morphs 0 1 178 158 /** * Returns the number of columns within the format that represent morph * deltas. * * This may only be called after the format has been registered. */ 64 inline std::size_t GeomVertexFormat::get_num_morphs(void) const; 1773 16 get_morph_slider 0 4 3194 34 GeomVertexFormat::get_morph_slider 0 1 179 288 /** * Returns the slider name associated with the nth morph column. This is the * name of the slider that will control the morph, and should be defined * within the SliderTable associated with the GeomVertexData. * * This may only be called after the format has been registered. */ 83 inline InternalName const *GeomVertexFormat::get_morph_slider(std::size_t n) const; 1774 14 get_morph_base 0 4 3194 32 GeomVertexFormat::get_morph_base 0 1 180 265 /** * Returns the name of the base column that the nth morph modifies. This * column will also be defined within the format, and can be retrieved via * get_array_with() and/or get_column(). * * This may only be called after the format has been registered. */ 81 inline InternalName const *GeomVertexFormat::get_morph_base(std::size_t n) const; 1775 15 get_morph_delta 0 4 3194 33 GeomVertexFormat::get_morph_delta 0 1 181 356 /** * Returns the name of the column that defines the nth morph. This contains * the delta offsets that are to be applied to the column defined by * get_morph_base(). This column will be defined within the format, and can * be retrieved via get_array_with() and/or get_column(). * * This may only be called after the format has been registered. */ 82 inline InternalName const *GeomVertexFormat::get_morph_delta(std::size_t n) const; 1776 0 0 0 0 0 0 0 0 0 1777 0 0 0 0 0 0 0 0 0 1778 0 0 0 0 0 0 0 0 0 1779 0 0 0 0 0 0 0 0 0 1780 6 output 0 4 3194 24 GeomVertexFormat::output 0 1 182 10 /** * */ 55 void GeomVertexFormat::output(std::ostream &out) const; 1781 5 write 0 4 3194 23 GeomVertexFormat::write 0 1 183 10 /** * */ 76 void GeomVertexFormat::write(std::ostream &out, int indent_level = 0) const; 1782 15 write_with_data 0 4 3194 33 GeomVertexFormat::write_with_data 0 1 184 10 /** * */ 110 void GeomVertexFormat::write_with_data(std::ostream &out, int indent_level, GeomVertexData const *data) const; 1783 9 get_empty 0 4 3194 27 GeomVertexFormat::get_empty 0 1 185 115 /** * Returns a standard vertex format containing no arrays at all, useful for * pull-style vertex rendering. */ 72 static inline GeomVertexFormat const *GeomVertexFormat::get_empty(void); 1784 6 get_v3 0 4 3194 24 GeomVertexFormat::get_v3 0 1 186 288 // Some standard vertex formats. No particular requirement to use one of // these, but the DirectX renderers can use these formats directly, whereas // any other format will have to be converted first. /** * Returns a standard vertex format with just a 3-component vertex position. */ 69 static inline GeomVertexFormat const *GeomVertexFormat::get_v3(void); 1785 8 get_v3n3 0 4 3194 26 GeomVertexFormat::get_v3n3 0 1 187 107 /** * Returns a standard vertex format with a 3-component normal and a * 3-component vertex position. */ 71 static inline GeomVertexFormat const *GeomVertexFormat::get_v3n3(void); 1786 8 get_v3t2 0 4 3194 26 GeomVertexFormat::get_v3t2 0 1 188 124 /** * Returns a standard vertex format with a 2-component texture coordinate pair * and a 3-component vertex position. */ 71 static inline GeomVertexFormat const *GeomVertexFormat::get_v3t2(void); 1787 10 get_v3n3t2 0 4 3194 28 GeomVertexFormat::get_v3n3t2 0 1 189 147 /** * Returns a standard vertex format with a 2-component texture coordinate * pair, a 3-component normal, and a 3-component vertex position. */ 73 static inline GeomVertexFormat const *GeomVertexFormat::get_v3n3t2(void); 1788 8 get_v3cp 0 4 3194 26 GeomVertexFormat::get_v3cp 0 1 190 372 // These formats, with the DirectX-style packed color, may not be supported // directly by OpenGL. If you use them and the driver does not support // them, the GLGraphicsStateGuardian will automatically convert to native // OpenGL form (with a small runtime overhead). /** * Returns a standard vertex format with a packed color and a 3-component * vertex position. */ 71 static inline GeomVertexFormat const *GeomVertexFormat::get_v3cp(void); 1789 10 get_v3cpt2 0 4 3194 28 GeomVertexFormat::get_v3cpt2 0 1 191 141 /** * Returns a standard vertex format with a 2-component texture coordinate * pair, a packed color, and a 3-component vertex position. */ 73 static inline GeomVertexFormat const *GeomVertexFormat::get_v3cpt2(void); 1790 10 get_v3n3cp 0 4 3194 28 GeomVertexFormat::get_v3n3cp 0 1 192 124 /** * Returns a standard vertex format with a packed color, a 3-component normal, * and a 3-component vertex position. */ 73 static inline GeomVertexFormat const *GeomVertexFormat::get_v3n3cp(void); 1791 12 get_v3n3cpt2 0 4 3194 30 GeomVertexFormat::get_v3n3cpt2 0 1 193 166 /** * Returns a standard vertex format with a 2-component texture coordinate * pair, a packed color, a 3-component normal, and a 3-component vertex * position. */ 75 static inline GeomVertexFormat const *GeomVertexFormat::get_v3n3cpt2(void); 1792 8 get_v3c4 0 4 3194 26 GeomVertexFormat::get_v3c4 0 1 194 426 // These formats, with an OpenGL-style four-byte color, are not supported // directly by DirectX. If you use them, the DXGraphicsStateGuardian will // automatically convert to DirectX form (with a larger runtime overhead, // since DirectX8, and old DirectX9 drivers, require everything to be // interleaved together). /** * Returns a standard vertex format with a 4-component color and a 3-component * vertex position. */ 71 static inline GeomVertexFormat const *GeomVertexFormat::get_v3c4(void); 1793 10 get_v3c4t2 0 4 3194 28 GeomVertexFormat::get_v3c4t2 0 1 195 146 /** * Returns a standard vertex format with a 2-component texture coordinate * pair, a 4-component color, and a 3-component vertex position. */ 73 static inline GeomVertexFormat const *GeomVertexFormat::get_v3c4t2(void); 1794 10 get_v3n3c4 0 4 3194 28 GeomVertexFormat::get_v3n3c4 0 1 196 129 /** * Returns a standard vertex format with a 4-component color, a 3-component * normal, and a 3-component vertex position. */ 73 static inline GeomVertexFormat const *GeomVertexFormat::get_v3n3c4(void); 1795 12 get_v3n3c4t2 0 4 3194 30 GeomVertexFormat::get_v3n3c4t2 0 1 197 171 /** * Returns a standard vertex format with a 2-component texture coordinate * pair, a 4-component color, a 3-component normal, and a 3-component vertex * position. */ 75 static inline GeomVertexFormat const *GeomVertexFormat::get_v3n3c4t2(void); 1796 14 get_class_type 0 4 3194 32 GeomVertexFormat::get_class_type 0 1 198 0 57 static TypeHandle GeomVertexFormat::get_class_type(void); 1797 24 upcast_to_LinkedListNode 0 12 3200 35 SimpleLru::upcast_to_LinkedListNode 0 1 212 39 upcast from SimpleLru to LinkedListNode 58 LinkedListNode *SimpleLru::upcast_to_LinkedListNode(void); 1798 21 downcast_to_SimpleLru 0 12 3201 37 LinkedListNode::downcast_to_SimpleLru 0 0 41 downcast from LinkedListNode to SimpleLru 55 SimpleLru *LinkedListNode::downcast_to_SimpleLru(void); 1799 17 upcast_to_Namable 0 12 3200 28 SimpleLru::upcast_to_Namable 0 1 213 32 upcast from SimpleLru to Namable 44 Namable *SimpleLru::upcast_to_Namable(void); 1800 21 downcast_to_SimpleLru 0 12 3169 30 Namable::downcast_to_SimpleLru 0 0 34 downcast from Namable to SimpleLru 48 SimpleLru *Namable::downcast_to_SimpleLru(void); 1801 9 SimpleLru 0 4 3200 20 SimpleLru::SimpleLru 0 1 201 10 /** * */ 77 explicit SimpleLru::SimpleLru(std::string const &name, std::size_t max_size); 1802 10 ~SimpleLru 0 4 3200 21 SimpleLru::~SimpleLru 0 0 10 /** * */ 28 SimpleLru::~SimpleLru(void); 1803 14 get_total_size 0 4 3200 25 SimpleLru::get_total_size 0 1 202 77 /** * Returns the total size of all objects currently active on the LRU. */ 57 inline std::size_t SimpleLru::get_total_size(void) const; 1804 12 get_max_size 0 4 3200 23 SimpleLru::get_max_size 0 1 203 91 /** * Returns the max size of all objects that are allowed to be active on the * LRU. */ 55 inline std::size_t SimpleLru::get_max_size(void) const; 1805 12 set_max_size 0 4 3200 23 SimpleLru::set_max_size 0 1 204 143 /** * Changes the max size of all objects that are allowed to be active on the * LRU. * * If the size is (size_t)-1, there is no limit. */ 58 inline void SimpleLru::set_max_size(std::size_t max_size); 1806 17 count_active_size 0 4 3200 28 SimpleLru::count_active_size 0 1 205 106 /** * Returns the total size of the pages that were enqueued since the last call * to begin_epoch(). */ 53 std::size_t SimpleLru::count_active_size(void) const; 1807 14 consider_evict 0 4 3200 25 SimpleLru::consider_evict 0 1 206 61 /** * Evicts a sequence of objects if the queue is full. */ 44 inline void SimpleLru::consider_evict(void); 1808 8 evict_to 0 4 3200 19 SimpleLru::evict_to 0 1 207 132 /** * Evicts a sequence of objects until the queue fits within the indicated * target size, regardless of its normal max size. */ 57 inline void SimpleLru::evict_to(std::size_t target_size); 1809 11 begin_epoch 0 4 3200 22 SimpleLru::begin_epoch 0 1 208 184 /** * Marks the end of the previous epoch and the beginning of the next one. * This will evict any objects that are pending eviction, and also update any * internal bookkeeping. */ 41 inline void SimpleLru::begin_epoch(void); 1810 8 validate 0 4 3200 19 SimpleLru::validate 0 1 209 125 /** * Checks that the LRU is internally self-consistent. Returns true if * successful, false if there is some problem. */ 38 inline bool SimpleLru::validate(void); 1811 6 output 0 4 3200 17 SimpleLru::output 0 1 210 10 /** * */ 48 void SimpleLru::output(std::ostream &out) const; 1812 5 write 0 4 3200 16 SimpleLru::write 0 1 211 10 /** * */ 65 void SimpleLru::write(std::ostream &out, int indent_level) const; 1813 24 upcast_to_LinkedListNode 0 12 3202 39 SimpleLruPage::upcast_to_LinkedListNode 0 1 227 43 upcast from SimpleLruPage to LinkedListNode 62 LinkedListNode *SimpleLruPage::upcast_to_LinkedListNode(void); 1814 25 downcast_to_SimpleLruPage 0 12 3201 41 LinkedListNode::downcast_to_SimpleLruPage 0 0 45 downcast from LinkedListNode to SimpleLruPage 63 SimpleLruPage *LinkedListNode::downcast_to_SimpleLruPage(void); 1815 13 SimpleLruPage 0 4 3202 28 SimpleLruPage::SimpleLruPage 0 2 214 215 22 /** * */ /** * */ 131 inline explicit SimpleLruPage::SimpleLruPage(std::size_t lru_size); inline SimpleLruPage::SimpleLruPage(SimpleLruPage const ©); 1816 10 operator = 0 4 3202 25 SimpleLruPage::operator = 0 1 216 0 65 inline void SimpleLruPage::operator =(SimpleLruPage const ©); 1817 14 ~SimpleLruPage 0 6 3202 29 SimpleLruPage::~SimpleLruPage 0 0 10 /** * */ 44 virtual SimpleLruPage::~SimpleLruPage(void); 1818 7 get_lru 0 4 3202 22 SimpleLruPage::get_lru 0 1 217 104 /** * Returns the LRU that manages this page, or NULL if it is not currently * managed by any LRU. */ 53 inline SimpleLru *SimpleLruPage::get_lru(void) const; 1819 11 enqueue_lru 0 4 3202 26 SimpleLruPage::enqueue_lru 0 1 218 183 /** * Adds the page to the LRU for the first time, or marks it recently-accessed * if it has already been added. * * If lru is NULL, it means to remove this page from its LRU. */ 48 void SimpleLruPage::enqueue_lru(SimpleLru *lru); 1820 11 dequeue_lru 0 4 3202 26 SimpleLruPage::dequeue_lru 0 1 219 47 /** * Removes the page from its SimpleLru. */ 45 inline void SimpleLruPage::dequeue_lru(void); 1821 13 mark_used_lru 0 4 3202 28 SimpleLruPage::mark_used_lru 0 2 220 221 337 /** * To be called when the page is used; this will move it to the tail of the * SimpleLru queue it is already on. * * This method is const because it's not technically modifying the contents of * the page itself. */ /** * To be called when the page is used; this will move it to the tail of the * specified SimpleLru queue. */ 111 inline void SimpleLruPage::mark_used_lru(void) const; inline void SimpleLruPage::mark_used_lru(SimpleLru *lru); 1822 12 get_lru_size 0 4 3202 27 SimpleLruPage::get_lru_size 0 1 222 85 /** * Returns the size of this page as reported to the LRU, presumably in bytes. */ 59 inline std::size_t SimpleLruPage::get_lru_size(void) const; 1823 12 set_lru_size 0 4 3202 27 SimpleLruPage::set_lru_size 0 1 223 98 /** * Specifies the size of this page, presumably in bytes, although any unit is * possible. */ 62 inline void SimpleLruPage::set_lru_size(std::size_t lru_size); 1824 9 evict_lru 0 6 3202 24 SimpleLruPage::evict_lru 0 1 224 455 /** * Evicts the page from the LRU. Called internally when the LRU determines * that it is full. May also be called externally when necessary to * explicitly evict the page. * * It is legal for this method to either evict the page as requested, do * nothing (in which case the eviction will be requested again at the next * epoch), or requeue itself on the tail of the queue (in which case the * eviction will be requested again much later). */ 44 virtual void SimpleLruPage::evict_lru(void); 1825 6 output 0 6 3202 21 SimpleLruPage::output 0 1 225 10 /** * */ 60 virtual void SimpleLruPage::output(std::ostream &out) const; 1826 5 write 0 6 3202 20 SimpleLruPage::write 0 1 226 10 /** * */ 77 virtual void SimpleLruPage::write(std::ostream &out, int indent_level) const; 1827 24 upcast_to_LinkedListNode 0 12 3203 41 SimpleAllocator::upcast_to_LinkedListNode 0 1 239 45 upcast from SimpleAllocator to LinkedListNode 64 LinkedListNode *SimpleAllocator::upcast_to_LinkedListNode(void); 1828 27 downcast_to_SimpleAllocator 0 12 3201 43 LinkedListNode::downcast_to_SimpleAllocator 0 0 47 downcast from LinkedListNode to SimpleAllocator 67 SimpleAllocator *LinkedListNode::downcast_to_SimpleAllocator(void); 1829 15 SimpleAllocator 0 4 3203 32 SimpleAllocator::SimpleAllocator 0 2 228 229 40 /** * */ /** * Move constructor. */ 151 inline explicit SimpleAllocator::SimpleAllocator(std::size_t max_size, Mutex &lock); SimpleAllocator::SimpleAllocator(SimpleAllocator &&from) noexcept; 1830 16 ~SimpleAllocator 0 6 3203 33 SimpleAllocator::~SimpleAllocator 0 0 10 /** * */ 48 virtual SimpleAllocator::~SimpleAllocator(void); 1831 5 alloc 0 4 3203 22 SimpleAllocator::alloc 0 1 230 198 /** * Allocates a new block. Returns NULL if a block of the requested size * cannot be allocated. * * To free the allocated block, call block->free(), or simply delete the block * pointer. */ 97 inline SimpleAllocatorBlock *SimpleAllocator::alloc(std::size_t size, std::size_t alignment = 1); 1832 8 is_empty 0 4 3203 25 SimpleAllocator::is_empty 0 1 231 108 /** * Returns true if there are no blocks allocated on this page, or false if * there is at least one. */ 50 inline bool SimpleAllocator::is_empty(void) const; 1833 14 get_total_size 0 4 3203 31 SimpleAllocator::get_total_size 0 1 232 55 /** * Returns the total size of allocated objects. */ 63 inline std::size_t SimpleAllocator::get_total_size(void) const; 1834 12 get_max_size 0 4 3203 29 SimpleAllocator::get_max_size 0 1 233 61 /** * Returns the available space for allocated objects. */ 61 inline std::size_t SimpleAllocator::get_max_size(void) const; 1835 12 set_max_size 0 4 3203 29 SimpleAllocator::set_max_size 0 1 234 172 /** * Changes the available space for allocated objects. This will not affect * any already-allocated objects, but will have an effect on future calls to * alloc(). */ 64 inline void SimpleAllocator::set_max_size(std::size_t max_size); 1836 14 get_contiguous 0 4 3203 31 SimpleAllocator::get_contiguous 0 1 235 299 /** * Returns an upper-bound estimate of the size of the largest contiguous block * that may be allocated. It is guaranteed that an attempt to allocate a * block larger than this will fail, though it is not guaranteed that an * attempt to allocate a block this size or smaller will succeed. */ 63 inline std::size_t SimpleAllocator::get_contiguous(void) const; 1837 15 get_first_block 0 4 3203 32 SimpleAllocator::get_first_block 0 1 236 103 /** * Returns a pointer to the first allocated block, or NULL if there are no * allocated blocks. */ 74 inline SimpleAllocatorBlock *SimpleAllocator::get_first_block(void) const; 1838 6 output 0 4 3203 23 SimpleAllocator::output 0 1 237 10 /** * */ 54 void SimpleAllocator::output(std::ostream &out) const; 1839 5 write 0 4 3203 22 SimpleAllocator::write 0 1 238 10 /** * */ 53 void SimpleAllocator::write(std::ostream &out) const; 1840 21 ~SimpleAllocatorBlock 0 4 3204 43 SimpleAllocatorBlock::~SimpleAllocatorBlock 0 0 66 /** * The block automatically frees itself when it destructs. */ 57 inline SimpleAllocatorBlock::~SimpleAllocatorBlock(void); 1841 4 free 0 4 3204 26 SimpleAllocatorBlock::free 0 1 240 40 /** * Releases the allocated space. */ 45 inline void SimpleAllocatorBlock::free(void); 1842 13 get_allocator 0 4 3204 35 SimpleAllocatorBlock::get_allocator 0 1 241 113 /** * Returns the SimpleAllocator object that owns this block. Returns NULL if * the block has been freed. */ 72 inline SimpleAllocator *SimpleAllocatorBlock::get_allocator(void) const; 1843 9 get_start 0 4 3204 31 SimpleAllocatorBlock::get_start 0 1 242 113 /** * Returns the starting point of this block. It is an error to call this if * the block has been freed. */ 63 inline std::size_t SimpleAllocatorBlock::get_start(void) const; 1844 8 get_size 0 4 3204 30 SimpleAllocatorBlock::get_size 0 1 243 103 /** * Returns the size of this block. It is an error to call this if the block * has been freed. */ 62 inline std::size_t SimpleAllocatorBlock::get_size(void) const; 1845 7 is_free 0 4 3204 29 SimpleAllocatorBlock::is_free 0 1 244 80 /** * Returns true if the block has been freed, false if it is still valid. */ 54 inline bool SimpleAllocatorBlock::is_free(void) const; 1846 12 get_max_size 0 4 3204 34 SimpleAllocatorBlock::get_max_size 0 1 245 107 /** * Returns the maximum size this block can be reallocated to, as limited by * the following block. */ 66 inline std::size_t SimpleAllocatorBlock::get_max_size(void) const; 1847 7 realloc 0 4 3204 29 SimpleAllocatorBlock::realloc 0 1 246 144 /** * Changes the size of this block to the specified size. Returns true if the * change is accepted, false if there was not enough room. */ 60 inline bool SimpleAllocatorBlock::realloc(std::size_t size); 1848 14 get_next_block 0 4 3204 36 SimpleAllocatorBlock::get_next_block 0 1 247 120 /** * Returns a pointer to the next allocated block in the chain, or NULL if * there are no more allocated blocks. */ 78 inline SimpleAllocatorBlock *SimpleAllocatorBlock::get_next_block(void) const; 1849 6 output 0 4 3204 28 SimpleAllocatorBlock::output 0 1 248 10 /** * */ 59 void SimpleAllocatorBlock::output(std::ostream &out) const; 1850 8 is_valid 0 4 3205 28 VertexDataSaveFile::is_valid 0 1 249 119 /** * Returns true if the save file was successfully created and is ready for * use, false if there was an error. */ 53 inline bool VertexDataSaveFile::is_valid(void) const; 1851 19 get_total_file_size 0 4 3205 39 VertexDataSaveFile::get_total_file_size 0 1 250 95 /** * Returns the amount of space consumed by the save file, including unused * portions. */ 71 inline std::size_t VertexDataSaveFile::get_total_file_size(void) const; 1852 18 get_used_file_size 0 4 3205 38 VertexDataSaveFile::get_used_file_size 0 1 251 85 /** * Returns the amount of space within the save file that is currently in use. */ 70 inline std::size_t VertexDataSaveFile::get_used_file_size(void) const; 1853 25 upcast_to_SimpleAllocator 0 12 3206 41 VertexDataPage::upcast_to_SimpleAllocator 0 1 270 45 upcast from VertexDataPage to SimpleAllocator 65 SimpleAllocator *VertexDataPage::upcast_to_SimpleAllocator(void); 1854 26 downcast_to_VertexDataPage 0 12 3203 43 SimpleAllocator::downcast_to_VertexDataPage 0 0 47 downcast from SimpleAllocator to VertexDataPage 66 VertexDataPage *SimpleAllocator::downcast_to_VertexDataPage(void); 1855 23 upcast_to_SimpleLruPage 0 12 3206 39 VertexDataPage::upcast_to_SimpleLruPage 0 1 271 43 upcast from VertexDataPage to SimpleLruPage 61 SimpleLruPage *VertexDataPage::upcast_to_SimpleLruPage(void); 1856 26 downcast_to_VertexDataPage 0 12 3202 41 SimpleLruPage::downcast_to_VertexDataPage 0 0 45 downcast from SimpleLruPage to VertexDataPage 64 VertexDataPage *SimpleLruPage::downcast_to_VertexDataPage(void); 1857 13 get_ram_class 0 4 3206 29 VertexDataPage::get_ram_class 0 1 252 135 /** * Returns the current ram class of the array. If this is other than * RC_resident, the array data is not resident in memory. */ 74 inline VertexDataPage::RamClass VertexDataPage::get_ram_class(void) const; 1858 21 get_pending_ram_class 0 4 3206 37 VertexDataPage::get_pending_ram_class 0 1 253 212 /** * Returns the pending ram class of the array. If this is different from * get_ram_class(), this page has been queued to be processed by the thread. * Eventually the page will be set to this ram class. */ 82 inline VertexDataPage::RamClass VertexDataPage::get_pending_ram_class(void) const; 1859 16 request_resident 0 4 3206 32 VertexDataPage::request_resident 0 1 254 128 /** * Ensures that the page will become resident soon. Future calls to * get_page_data() will eventually return non-NULL. */ 51 inline void VertexDataPage::request_resident(void); 1860 5 alloc 0 4 3206 21 VertexDataPage::alloc 0 1 255 198 /** * Allocates a new block. Returns NULL if a block of the requested size * cannot be allocated. * * To free the allocated block, call block->free(), or simply delete the block * pointer. */ 64 inline VertexDataBlock *VertexDataPage::alloc(std::size_t size); 1861 15 get_first_block 0 4 3206 31 VertexDataPage::get_first_block 0 1 256 103 /** * Returns a pointer to the first allocated block, or NULL if there are no * allocated blocks. */ 68 inline VertexDataBlock *VertexDataPage::get_first_block(void) const; 1862 8 get_book 0 4 3206 24 VertexDataPage::get_book 0 1 257 61 /** * Returns a pointer to the book that owns this page. */ 60 inline VertexDataBook *VertexDataPage::get_book(void) const; 1863 14 get_global_lru 0 4 3206 30 VertexDataPage::get_global_lru 0 1 258 119 /** * Returns a pointer to the global LRU object that manages the * VertexDataPage's with the indicated RamClass. */ 89 static inline SimpleLru *VertexDataPage::get_global_lru(VertexDataPage::RamClass rclass); 1864 15 get_pending_lru 0 4 3206 31 VertexDataPage::get_pending_lru 0 1 259 133 /** * Returns a pointer to the global LRU object that manages the * VertexDataPage's that are pending processing by the thread. */ 63 static inline SimpleLru *VertexDataPage::get_pending_lru(void); 1865 13 get_save_file 0 4 3206 29 VertexDataPage::get_save_file 0 1 260 121 /** * Returns the global VertexDataSaveFile that will be used to save vertex data * buffers to disk when necessary. */ 70 static inline VertexDataSaveFile *VertexDataPage::get_save_file(void); 1866 12 save_to_disk 0 4 3206 28 VertexDataPage::save_to_disk 0 1 261 205 /** * Writes the page to disk, but does not evict it from memory or affect its * LRU status. If it gets evicted later without having been modified, it will * not need to write itself to disk again. */ 47 inline bool VertexDataPage::save_to_disk(void); 1867 15 get_num_threads 0 4 3206 31 VertexDataPage::get_num_threads 0 1 262 285 /** * Returns the number of threads that have been spawned to service vertex * paging requests, or 0 if no threads have been spawned (which may mean * either that all paging requests will be handled by the main thread, or * simply that no paging requests have yet been issued). */ 56 static inline int VertexDataPage::get_num_threads(void); 1868 21 get_num_pending_reads 0 4 3206 37 VertexDataPage::get_num_pending_reads 0 1 263 94 /** * Returns the number of read requests that are waiting to be serviced by a * thread. */ 62 static inline int VertexDataPage::get_num_pending_reads(void); 1869 22 get_num_pending_writes 0 4 3206 38 VertexDataPage::get_num_pending_writes 0 1 264 95 /** * Returns the number of write requests that are waiting to be serviced by a * thread. */ 63 static inline int VertexDataPage::get_num_pending_writes(void); 1870 12 stop_threads 0 4 3206 28 VertexDataPage::stop_threads 0 1 265 141 /** * Call this to stop the paging threads, if they were started. This may block * until all of the pending tasks have been completed. */ 47 static void VertexDataPage::stop_threads(void); 1871 13 flush_threads 0 4 3206 29 VertexDataPage::flush_threads 0 1 266 80 /** * Waits for all of the pending thread tasks to finish before returning. */ 48 static void VertexDataPage::flush_threads(void); 1872 6 output 0 6 3206 22 VertexDataPage::output 0 1 267 10 /** * */ 61 virtual void VertexDataPage::output(std::ostream &out) const; 1873 5 write 0 6 3206 21 VertexDataPage::write 0 1 268 10 /** * */ 78 virtual void VertexDataPage::write(std::ostream &out, int indent_level) const; 1874 14 get_class_type 0 4 3206 30 VertexDataPage::get_class_type 0 1 269 0 55 static TypeHandle VertexDataPage::get_class_type(void); 1875 14 VertexDataBook 0 4 3209 30 VertexDataBook::VertexDataBook 0 1 272 10 /** * */ 64 explicit VertexDataBook::VertexDataBook(std::size_t block_size); 1876 15 ~VertexDataBook 0 4 3209 31 VertexDataBook::~VertexDataBook 0 0 10 /** * */ 38 VertexDataBook::~VertexDataBook(void); 1877 5 alloc 0 4 3209 21 VertexDataBook::alloc 0 1 273 78 /** * Allocates and returns a new VertexDataBuffer of the requested size. */ 64 inline VertexDataBlock *VertexDataBook::alloc(std::size_t size); 1878 13 get_num_pages 0 4 3209 29 VertexDataBook::get_num_pages 0 1 274 60 /** * Returns the number of pages created for the book. */ 61 inline std::size_t VertexDataBook::get_num_pages(void) const; 1879 21 count_total_page_size 0 4 3209 37 VertexDataBook::count_total_page_size 0 2 275 276 209 /** * Returns the total size of all bytes owned by all pages owned by this book. */ /** * Returns the total size of all bytes owned by all pages owned by this book * that have the indicated ram class. */ 155 std::size_t VertexDataBook::count_total_page_size(void) const; std::size_t VertexDataBook::count_total_page_size(VertexDataPage::RamClass ram_class) const; 1880 20 count_allocated_size 0 4 3209 36 VertexDataBook::count_allocated_size 0 2 277 278 220 /** * Returns the total size of all bytes allocated within pages owned by this * book. */ /** * Returns the total size of all bytes allocated within pages owned by this * book that have the indicated ram class. */ 153 std::size_t VertexDataBook::count_allocated_size(void) const; std::size_t VertexDataBook::count_allocated_size(VertexDataPage::RamClass ram_class) const; 1881 12 save_to_disk 0 4 3209 28 VertexDataBook::save_to_disk 0 1 279 223 /** * Writes all pages to disk immediately, just in case they get evicted later. * It makes sense to make this call just before taking down a loading screen, * to minimize chugs from saving pages inadvertently later. */ 40 void VertexDataBook::save_to_disk(void); 1882 30 upcast_to_SimpleAllocatorBlock 0 12 3210 47 VertexDataBlock::upcast_to_SimpleAllocatorBlock 0 1 282 51 upcast from VertexDataBlock to SimpleAllocatorBlock 76 SimpleAllocatorBlock *VertexDataBlock::upcast_to_SimpleAllocatorBlock(void); 1883 27 downcast_to_VertexDataBlock 0 12 3204 49 SimpleAllocatorBlock::downcast_to_VertexDataBlock 0 0 53 downcast from SimpleAllocatorBlock to VertexDataBlock 73 VertexDataBlock *SimpleAllocatorBlock::downcast_to_VertexDataBlock(void); 1884 24 upcast_to_ReferenceCount 0 12 3210 41 VertexDataBlock::upcast_to_ReferenceCount 0 1 283 45 upcast from VertexDataBlock to ReferenceCount 64 ReferenceCount *VertexDataBlock::upcast_to_ReferenceCount(void); 1885 27 downcast_to_VertexDataBlock 0 12 3211 43 ReferenceCount::downcast_to_VertexDataBlock 0 0 47 downcast from ReferenceCount to VertexDataBlock 67 VertexDataBlock *ReferenceCount::downcast_to_VertexDataBlock(void); 1886 8 get_page 0 4 3210 25 VertexDataBlock::get_page 0 1 280 65 /** * Returns the page from which this buffer was allocated. */ 61 inline VertexDataPage *VertexDataBlock::get_page(void) const; 1887 14 get_next_block 0 4 3210 31 VertexDataBlock::get_next_block 0 1 281 120 /** * Returns a pointer to the next allocated block in the chain, or NULL if * there are no more allocated blocks. */ 68 inline VertexDataBlock *VertexDataBlock::get_next_block(void) const; 1888 16 ~VertexDataBlock 0 4 3210 33 VertexDataBlock::~VertexDataBlock 0 0 0 40 VertexDataBlock::~VertexDataBlock(void); 1889 27 upcast_to_CopyOnWriteObject 0 12 3212 48 GeomVertexArrayData::upcast_to_CopyOnWriteObject 0 1 318 52 upcast from GeomVertexArrayData to CopyOnWriteObject 74 CopyOnWriteObject *GeomVertexArrayData::upcast_to_CopyOnWriteObject(void); 1890 31 downcast_to_GeomVertexArrayData 0 12 3213 50 CopyOnWriteObject::downcast_to_GeomVertexArrayData 0 0 54 downcast from CopyOnWriteObject to GeomVertexArrayData 78 GeomVertexArrayData *CopyOnWriteObject::downcast_to_GeomVertexArrayData(void); 1891 23 upcast_to_SimpleLruPage 0 12 3212 44 GeomVertexArrayData::upcast_to_SimpleLruPage 0 1 319 48 upcast from GeomVertexArrayData to SimpleLruPage 66 SimpleLruPage *GeomVertexArrayData::upcast_to_SimpleLruPage(void); 1892 31 downcast_to_GeomVertexArrayData 0 12 3202 46 SimpleLruPage::downcast_to_GeomVertexArrayData 0 0 50 downcast from SimpleLruPage to GeomVertexArrayData 74 GeomVertexArrayData *SimpleLruPage::downcast_to_GeomVertexArrayData(void); 1893 19 upcast_to_GeomEnums 0 12 3212 40 GeomVertexArrayData::upcast_to_GeomEnums 0 1 320 44 upcast from GeomVertexArrayData to GeomEnums 58 GeomEnums *GeomVertexArrayData::upcast_to_GeomEnums(void); 1894 31 downcast_to_GeomVertexArrayData 0 12 3173 42 GeomEnums::downcast_to_GeomVertexArrayData 0 0 46 downcast from GeomEnums to GeomVertexArrayData 70 GeomVertexArrayData *GeomEnums::downcast_to_GeomVertexArrayData(void); 1895 19 GeomVertexArrayData 0 4 3212 40 GeomVertexArrayData::GeomVertexArrayData 0 2 284 285 118 /** * Constructs an invalid object. This is only used when reading from the bam * file. */ /** * */ /** * */ 201 explicit GeomVertexArrayData::GeomVertexArrayData(GeomVertexArrayFormat const *array_format, GeomEnums::UsageHint usage_hint); GeomVertexArrayData::GeomVertexArrayData(GeomVertexArrayData const ©); 1896 10 operator = 0 4 3212 31 GeomVertexArrayData::operator = 0 1 286 0 70 void GeomVertexArrayData::operator =(GeomVertexArrayData const ©); 1897 20 ~GeomVertexArrayData 0 6 3212 41 GeomVertexArrayData::~GeomVertexArrayData 0 0 10 /** * */ 56 virtual GeomVertexArrayData::~GeomVertexArrayData(void); 1898 12 operator new 0 4 3212 33 GeomVertexArrayData::operator new 0 1 287 0 142 inline void *GeomVertexArrayData::operator new(std::size_t size); inline void *GeomVertexArrayData::operator new(std::size_t size, void *ptr); 1899 15 operator delete 0 4 3212 36 GeomVertexArrayData::operator delete 0 0 0 126 inline void GeomVertexArrayData::operator delete(void *ptr); inline void GeomVertexArrayData::operator delete(void *, void *); 1900 12 validate_ptr 0 4 3212 33 GeomVertexArrayData::validate_ptr 0 0 0 70 static inline bool GeomVertexArrayData::validate_ptr(void const *ptr); 1901 10 compare_to 0 4 3212 31 GeomVertexArrayData::compare_to 0 1 288 96 /** * Returns 0 if the two arrays are equivalent, even if they are not the same * pointer. */ 76 int GeomVertexArrayData::compare_to(GeomVertexArrayData const &other) const; 1902 16 get_array_format 0 4 3212 37 GeomVertexArrayData::get_array_format 0 1 289 63 /** * Returns the format object that describes this array. */ 86 inline GeomVertexArrayFormat const *GeomVertexArrayData::get_array_format(void) const; 1903 14 get_usage_hint 0 4 3212 35 GeomVertexArrayData::get_usage_hint 0 1 290 154 /** * Returns the usage hint that describes to the rendering backend how often * the vertex data will be modified and/or rendered. See geomEnums.h. */ 76 inline GeomEnums::UsageHint GeomVertexArrayData::get_usage_hint(void) const; 1904 14 set_usage_hint 0 4 3212 35 GeomVertexArrayData::set_usage_hint 0 1 291 228 /** * Changes the UsageHint hint for this array. See get_usage_hint(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 74 void GeomVertexArrayData::set_usage_hint(GeomEnums::UsageHint usage_hint); 1905 10 has_column 0 4 3212 31 GeomVertexArrayData::has_column 0 1 292 153 /** * Returns true if the array has the named column, false otherwise. This is * really just a shortcut for asking the same thing from the format. */ 76 inline bool GeomVertexArrayData::has_column(InternalName const *name) const; 1906 12 get_num_rows 0 4 3212 33 GeomVertexArrayData::get_num_rows 0 1 293 187 /** * Returns the number of rows stored in the array, based on the number of * bytes and the stride. This should be the same for all arrays within a * given GeomVertexData object. */ 57 inline int GeomVertexArrayData::get_num_rows(void) const; 1907 12 set_num_rows 0 4 3212 33 GeomVertexArrayData::set_num_rows 0 1 294 659 /** * Sets the length of the array to n rows. * * Normally, you would not call this directly, since all of the arrays in a * particular GeomVertexData must have the same number of rows; instead, call * GeomVertexData::set_num_rows(). * * The return value is true if the number of rows was changed, false if the * object already contained n rows (or if there was some error). * * The new vertex data is initialized to 0, including the "color" column (but * see GeomVertexData::set_num_rows()). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 53 inline bool GeomVertexArrayData::set_num_rows(int n); 1908 20 unclean_set_num_rows 0 4 3212 41 GeomVertexArrayData::unclean_set_num_rows 0 1 295 423 /** * This method behaves like set_num_rows(), except the new data is not * initialized. Furthermore, after this call, *any* of the data in the * GeomVertexArrayData may be uninitialized, including the earlier rows. * * Normally, you would not call this directly, since all of the arrays in a * particular GeomVertexData must have the same number of rows; instead, call * GeomVertexData::unclean_set_num_rows(). */ 61 inline bool GeomVertexArrayData::unclean_set_num_rows(int n); 1909 16 reserve_num_rows 0 4 3212 37 GeomVertexArrayData::reserve_num_rows 0 1 296 313 /** * This ensures that enough memory space for n rows is allocated, so that you * may increase the number of rows to n without causing a new memory * allocation. This is a performance optimization only; it is especially * useful when you know ahead of time that you will be adding n rows to the * data. */ 57 inline bool GeomVertexArrayData::reserve_num_rows(int n); 1910 10 clear_rows 0 4 3212 31 GeomVertexArrayData::clear_rows 0 1 297 96 /** * Removes all of the rows in the array. Functionally equivalent to * set_num_rows(0). */ 50 inline void GeomVertexArrayData::clear_rows(void); 1911 19 get_data_size_bytes 0 4 3212 40 GeomVertexArrayData::get_data_size_bytes 0 1 298 59 /** * Returns the number of bytes stored in the array. */ 72 inline std::size_t GeomVertexArrayData::get_data_size_bytes(void) const; 1912 12 get_modified 0 4 3212 33 GeomVertexArrayData::get_modified 0 1 299 124 /** * Returns a sequence number which is guaranteed to change at least every time * the array vertex data is modified. */ 63 inline UpdateSeq GeomVertexArrayData::get_modified(void) const; 1913 6 output 0 6 3212 27 GeomVertexArrayData::output 0 1 300 10 /** * */ 66 virtual void GeomVertexArrayData::output(std::ostream &out) const; 1914 5 write 0 6 3212 26 GeomVertexArrayData::write 0 1 301 10 /** * */ 87 virtual void GeomVertexArrayData::write(std::ostream &out, int indent_level = 0) const; 1915 16 request_resident 0 4 3212 37 GeomVertexArrayData::request_resident 0 1 302 281 /** * Returns true if the vertex data is currently resident in memory. If this * returns true, the next call to get_handle()->get_read_pointer() will * probably not block. If this returns false, the vertex data will be brought * back into memory shortly; try again later. */ 111 inline bool GeomVertexArrayData::request_resident(Thread *current_thread = Thread::get_current_thread()) const; 1916 10 get_handle 0 4 3212 31 GeomVertexArrayData::get_handle 0 1 303 250 /** * Returns an object that can be used to read the actual data bytes stored in * the array. Calling this method locks the data, and will block any other * threads attempting to read or write the data, until the returned object * destructs. */ 144 inline ConstPointerTo< GeomVertexArrayDataHandle > GeomVertexArrayData::get_handle(Thread *current_thread = Thread::get_current_thread()) const; 1917 13 modify_handle 0 4 3212 34 GeomVertexArrayData::modify_handle 0 1 304 259 /** * Returns an object that can be used to read or write the actual data bytes * stored in the array. Calling this method locks the data, and will block * any other threads attempting to read or write the data, until the returned * object destructs. */ 136 inline PointerTo< GeomVertexArrayDataHandle > GeomVertexArrayData::modify_handle(Thread *current_thread = Thread::get_current_thread()); 1918 7 prepare 0 4 3212 28 GeomVertexArrayData::prepare 0 1 305 344 /** * Indicates that the data should be enqueued to be prepared in the indicated * prepared_objects at the beginning of the next frame. This will ensure the * data is already loaded into the GSG if it is expected to be rendered soon. * * Use this function instead of prepare_now() to preload datas from a user * interface standpoint. */ 77 void GeomVertexArrayData::prepare(PreparedGraphicsObjects *prepared_objects); 1919 11 is_prepared 0 4 3212 32 GeomVertexArrayData::is_prepared 0 1 306 131 /** * Returns true if the data has already been prepared or enqueued for * preparation on the indicated GSG, false otherwise. */ 87 bool GeomVertexArrayData::is_prepared(PreparedGraphicsObjects *prepared_objects) const; 1920 11 prepare_now 0 4 3212 32 GeomVertexArrayData::prepare_now 0 1 307 527 /** * Creates a context for the data on the particular GSG, if it does not * already exist. Returns the new (or old) VertexBufferContext. This assumes * that the GraphicsStateGuardian is the currently active rendering context * and that it is ready to accept new datas. If this is not necessarily the * case, you should use prepare() instead. * * Normally, this is not called directly except by the GraphicsStateGuardian; * a data does not need to be explicitly prepared by the user before it may be * rendered. */ 129 VertexBufferContext *GeomVertexArrayData::prepare_now(PreparedGraphicsObjects *prepared_objects, GraphicsStateGuardianBase *gsg); 1921 7 release 0 4 3212 28 GeomVertexArrayData::release 0 1 308 154 /** * Frees the data context only on the indicated object, if it exists there. * Returns true if it was released, false if it had not been prepared. */ 77 bool GeomVertexArrayData::release(PreparedGraphicsObjects *prepared_objects); 1922 11 release_all 0 4 3212 32 GeomVertexArrayData::release_all 0 1 309 149 /** * Frees the context allocated on all objects for which the data has been * declared. Returns the number of contexts which have been freed. */ 43 int GeomVertexArrayData::release_all(void); 1923 19 get_independent_lru 0 4 3212 40 GeomVertexArrayData::get_independent_lru 0 1 310 131 /** * Returns a pointer to the global LRU object that manages the * GeomVertexArrayData's that have not (yet) been paged out. */ 72 static inline SimpleLru *GeomVertexArrayData::get_independent_lru(void); 1924 13 get_small_lru 0 4 3212 34 GeomVertexArrayData::get_small_lru 0 1 311 138 /** * Returns a pointer to the global LRU object that manages the * GeomVertexArrayData's that are deemed too small to be paged out. */ 66 static inline SimpleLru *GeomVertexArrayData::get_small_lru(void); 1925 9 lru_epoch 0 4 3212 30 GeomVertexArrayData::lru_epoch 0 1 312 124 /** * Marks that an epoch has passed in each LRU. Asks the LRU's to consider * whether they should perform evictions. */ 49 static void GeomVertexArrayData::lru_epoch(void); 1926 8 get_book 0 4 3212 29 GeomVertexArrayData::get_book 0 1 313 98 /** * Returns the global VertexDataBook that will be used to allocate vertex data * buffers. */ 66 static inline VertexDataBook &GeomVertexArrayData::get_book(void); 1927 13 __getbuffer__ 0 4 3212 34 GeomVertexArrayData::__getbuffer__ 0 2 314 315 0 173 int GeomVertexArrayData::__getbuffer__(PyObject *self, Py_buffer *view, int flags); int GeomVertexArrayData::__getbuffer__(PyObject *self, Py_buffer *view, int flags) const; 1928 17 __releasebuffer__ 0 4 3212 38 GeomVertexArrayData::__releasebuffer__ 0 1 316 0 83 void GeomVertexArrayData::__releasebuffer__(PyObject *self, Py_buffer *view) const; 1929 14 get_class_type 0 4 3212 35 GeomVertexArrayData::get_class_type 0 1 317 0 60 static TypeHandle GeomVertexArrayData::get_class_type(void); 1930 24 upcast_to_ReferenceCount 0 12 3217 51 GeomVertexArrayDataHandle::upcast_to_ReferenceCount 0 1 345 55 upcast from GeomVertexArrayDataHandle to ReferenceCount 74 ReferenceCount *GeomVertexArrayDataHandle::upcast_to_ReferenceCount(void); 1931 37 downcast_to_GeomVertexArrayDataHandle 0 12 3211 53 ReferenceCount::downcast_to_GeomVertexArrayDataHandle 0 0 57 downcast from ReferenceCount to GeomVertexArrayDataHandle 87 GeomVertexArrayDataHandle *ReferenceCount::downcast_to_GeomVertexArrayDataHandle(void); 1932 19 upcast_to_GeomEnums 0 12 3217 46 GeomVertexArrayDataHandle::upcast_to_GeomEnums 0 1 346 50 upcast from GeomVertexArrayDataHandle to GeomEnums 64 GeomEnums *GeomVertexArrayDataHandle::upcast_to_GeomEnums(void); 1933 37 downcast_to_GeomVertexArrayDataHandle 0 12 3173 48 GeomEnums::downcast_to_GeomVertexArrayDataHandle 0 0 52 downcast from GeomEnums to GeomVertexArrayDataHandle 82 GeomVertexArrayDataHandle *GeomEnums::downcast_to_GeomVertexArrayDataHandle(void); 1934 26 ~GeomVertexArrayDataHandle 0 6 3217 53 GeomVertexArrayDataHandle::~GeomVertexArrayDataHandle 0 0 10 /** * */ 75 virtual inline GeomVertexArrayDataHandle::~GeomVertexArrayDataHandle(void); 1935 10 get_object 0 4 3217 37 GeomVertexArrayDataHandle::get_object 0 2 321 322 22 /** * */ /** * */ 157 inline GeomVertexArrayData const *GeomVertexArrayDataHandle::get_object(void) const; inline GeomVertexArrayData *GeomVertexArrayDataHandle::get_object(void); 1936 16 get_array_format 0 4 3217 43 GeomVertexArrayDataHandle::get_array_format 0 1 323 10 /** * */ 92 inline GeomVertexArrayFormat const *GeomVertexArrayDataHandle::get_array_format(void) const; 1937 14 get_usage_hint 0 4 3217 41 GeomVertexArrayDataHandle::get_usage_hint 0 1 324 10 /** * */ 82 inline GeomEnums::UsageHint GeomVertexArrayDataHandle::get_usage_hint(void) const; 1938 12 get_num_rows 0 4 3217 39 GeomVertexArrayDataHandle::get_num_rows 0 1 325 10 /** * */ 63 inline int GeomVertexArrayDataHandle::get_num_rows(void) const; 1939 12 set_num_rows 0 4 3217 39 GeomVertexArrayDataHandle::set_num_rows 0 1 326 10 /** * */ 52 bool GeomVertexArrayDataHandle::set_num_rows(int n); 1940 20 unclean_set_num_rows 0 4 3217 47 GeomVertexArrayDataHandle::unclean_set_num_rows 0 1 327 10 /** * */ 60 bool GeomVertexArrayDataHandle::unclean_set_num_rows(int n); 1941 16 reserve_num_rows 0 4 3217 43 GeomVertexArrayDataHandle::reserve_num_rows 0 1 328 10 /** * */ 56 bool GeomVertexArrayDataHandle::reserve_num_rows(int n); 1942 10 clear_rows 0 4 3217 37 GeomVertexArrayDataHandle::clear_rows 0 1 329 10 /** * */ 56 inline void GeomVertexArrayDataHandle::clear_rows(void); 1943 19 get_data_size_bytes 0 4 3217 46 GeomVertexArrayDataHandle::get_data_size_bytes 0 1 330 10 /** * */ 78 inline std::size_t GeomVertexArrayDataHandle::get_data_size_bytes(void) const; 1944 12 get_modified 0 4 3217 39 GeomVertexArrayDataHandle::get_modified 0 1 331 10 /** * */ 69 inline UpdateSeq GeomVertexArrayDataHandle::get_modified(void) const; 1945 16 request_resident 0 4 3217 43 GeomVertexArrayDataHandle::request_resident 0 1 332 281 /** * Returns true if the vertex data is currently resident in memory. If this * returns true, the next call to get_handle()->get_read_pointer() will * probably not block. If this returns false, the vertex data will be brought * back into memory shortly; try again later. */ 68 inline bool GeomVertexArrayDataHandle::request_resident(void) const; 1946 11 prepare_now 0 4 3217 38 GeomVertexArrayDataHandle::prepare_now 0 1 333 527 /** * Creates a context for the data on the particular GSG, if it does not * already exist. Returns the new (or old) VertexBufferContext. This assumes * that the GraphicsStateGuardian is the currently active rendering context * and that it is ready to accept new datas. If this is not necessarily the * case, you should use prepare() instead. * * Normally, this is not called directly except by the GraphicsStateGuardian; * a data does not need to be explicitly prepared by the user before it may be * rendered. */ 148 inline VertexBufferContext *GeomVertexArrayDataHandle::prepare_now(PreparedGraphicsObjects *prepared_objects, GraphicsStateGuardianBase *gsg) const; 1947 14 copy_data_from 0 4 3217 41 GeomVertexArrayDataHandle::copy_data_from 0 2 334 335 120 /** * Copies the entire data array from the other object. */ /** * Copies the entire data array from the buffer. */ 248 void GeomVertexArrayDataHandle::copy_data_from(GeomVertexArrayDataHandle const *other); void GeomVertexArrayDataHandle::copy_data_from(unsigned char const *source, std::size_t size); void GeomVertexArrayDataHandle::copy_data_from(PyObject *buffer); 1948 17 copy_subdata_from 0 4 3217 44 GeomVertexArrayDataHandle::copy_subdata_from 0 3 336 337 338 398 /** * Copies a portion of the data array from the other object into a portion of * the data array of this object. If to_size != from_size, the size of this * data array is adjusted accordingly. */ /** * Copies a portion of the data array from the buffer into a portion of the * data array of this object. If to_size != from_size, the size of this data * array is adjusted accordingly. */ 621 void GeomVertexArrayDataHandle::copy_subdata_from(std::size_t to_start, std::size_t to_size, GeomVertexArrayDataHandle const *other, std::size_t from_start, std::size_t from_size); void GeomVertexArrayDataHandle::copy_subdata_from(std::size_t to_start, std::size_t to_size, unsigned char const *source, std::size_t from_start, std::size_t from_size); void GeomVertexArrayDataHandle::copy_subdata_from(std::size_t to_start, std::size_t to_size, PyObject *buffer); void GeomVertexArrayDataHandle::copy_subdata_from(std::size_t to_start, std::size_t to_size, PyObject *buffer, std::size_t from_start, std::size_t from_size); 1949 8 get_data 0 4 3217 35 GeomVertexArrayDataHandle::get_data 0 1 339 177 /** * Returns the entire raw data of the GeomVertexArrayData object, formatted as * a string. This is primarily for the benefit of high-level languages such * as Python. */ 68 inline vector_uchar GeomVertexArrayDataHandle::get_data(void) const; 1950 8 set_data 0 4 3217 35 GeomVertexArrayDataHandle::set_data 0 1 340 166 /** * Replaces the entire raw data array with the contents of the indicated * string. This is primarily for the benefit of high-level languages like * Python. */ 67 void GeomVertexArrayDataHandle::set_data(vector_uchar const &data); 1951 11 get_subdata 0 4 3217 38 GeomVertexArrayDataHandle::get_subdata 0 1 341 182 /** * Returns a subset of the raw data of the GeomVertexArrayData object, * formatted as a string. This is primarily for the benefit of high-level * languages such as Python. */ 102 inline vector_uchar GeomVertexArrayDataHandle::get_subdata(std::size_t start, std::size_t size) const; 1952 11 set_subdata 0 4 3217 38 GeomVertexArrayDataHandle::set_subdata 0 1 342 232 /** * Replaces a portion of the data array from the indicated string. If size != * data.size(), the size of this data array is adjusted accordingly. * * This is primarily for the benefit of high-level languages like Python. */ 107 void GeomVertexArrayDataHandle::set_subdata(std::size_t start, std::size_t size, vector_uchar const &data); 1953 9 mark_used 0 4 3217 36 GeomVertexArrayDataHandle::mark_used 0 1 343 46 /** * Marks the array data recently-used. */ 61 inline void GeomVertexArrayDataHandle::mark_used(void) const; 1954 14 get_class_type 0 4 3217 41 GeomVertexArrayDataHandle::get_class_type 0 1 344 0 66 static TypeHandle GeomVertexArrayDataHandle::get_class_type(void); 1955 12 set_max_size 0 4 3219 30 GeomCacheManager::set_max_size 0 1 347 482 /** * Specifies the maximum number of entries in the cache for storing pre- * processed data for rendering vertices. This limit is flexible, and may be * temporarily exceeded if many different Geoms are pre-processed during the * space of a single frame. * * This is not a limit on the actual vertex data, which is what it is; it is * also not a limit on the amount of memory used by the video driver or the * system graphics interface, which Panda has no control over. */ 63 inline void GeomCacheManager::set_max_size(int max_size) const; 1956 12 get_max_size 0 4 3219 30 GeomCacheManager::get_max_size 0 1 348 141 /** * Returns the maximum number of entries in the cache for storing pre- * processed data for rendering vertices. See set_max_size(). */ 54 inline int GeomCacheManager::get_max_size(void) const; 1957 14 get_total_size 0 4 3219 32 GeomCacheManager::get_total_size 0 1 349 64 /** * Returns the number of entries currently in the cache. */ 56 inline int GeomCacheManager::get_total_size(void) const; 1958 5 flush 0 4 3219 23 GeomCacheManager::flush 0 1 350 57 /** * Immediately empties all elements in the cache. */ 35 void GeomCacheManager::flush(void); 1959 14 get_global_ptr 0 4 3219 32 GeomCacheManager::get_global_ptr 0 1 351 52 /** * Returns the global cache manager pointer. */ 64 static GeomCacheManager *GeomCacheManager::get_global_ptr(void); 1960 10 get_matrix 0 6 3220 27 VertexTransform::get_matrix 0 1 352 0 69 virtual void VertexTransform::get_matrix(LMatrix4 &matrix) const = 0; 1961 11 mult_matrix 0 6 3220 28 VertexTransform::mult_matrix 0 1 353 277 /** * Premultiplies this transform's matrix with the indicated previous matrix, * so that the result is the net composition of the given transform with this * transform. The result is stored in the parameter "result", which should * not be the same matrix as previous. */ 92 virtual void VertexTransform::mult_matrix(LMatrix4 &result, LMatrix4 const &previous) const; 1962 17 accumulate_matrix 0 6 3220 34 VertexTransform::accumulate_matrix 0 1 354 200 /** * Adds the value of this transform's matrix, modified by the indicated * weight, into the indicated accumulation matrix. This is used to compute * the result of several blended transforms. */ 91 virtual void VertexTransform::accumulate_matrix(LMatrix4 &accum, PN_stdfloat weight) const; 1963 12 get_modified 0 4 3220 29 VertexTransform::get_modified 0 1 355 131 /** * Returns a sequence number that's guaranteed to change at least every time * the value reported by get_matrix() changes. */ 108 inline UpdateSeq VertexTransform::get_modified(Thread *current_thread = Thread::get_current_thread()) const; 1964 6 output 0 6 3220 23 VertexTransform::output 0 1 356 10 /** * */ 62 virtual void VertexTransform::output(std::ostream &out) const; 1965 5 write 0 6 3220 22 VertexTransform::write 0 1 357 10 /** * */ 79 virtual void VertexTransform::write(std::ostream &out, int indent_level) const; 1966 17 get_next_modified 0 4 3220 34 VertexTransform::get_next_modified 0 1 358 417 /** * Returns a monotonically increasing sequence. Each time this is called, a * new sequence number is returned, higher than the previous value. * * This is used to ensure that all VertexTransform::get_modified() calls * return an increasing number in the same space, so that * TransformBlend::get_modified() is easy to determine. It is similar to * Geom::get_modified(), but it is in a different space. */ 76 static UpdateSeq VertexTransform::get_next_modified(Thread *current_thread); 1967 19 get_global_modified 0 4 3220 36 VertexTransform::get_global_modified 0 1 359 197 /** * Returns the currently highest VertexTransform::get_modified() value in the * world. This can be used as a quick way to determine if any * VertexTransforms have changed value recently. */ 85 static inline UpdateSeq VertexTransform::get_global_modified(Thread *current_thread); 1968 14 get_class_type 0 4 3220 31 VertexTransform::get_class_type 0 1 360 0 56 static TypeHandle VertexTransform::get_class_type(void); 1969 14 TransformTable 0 4 3221 30 TransformTable::TransformTable 0 2 361 362 22 /** * */ /** * */ 97 TransformTable::TransformTable(void); TransformTable::TransformTable(TransformTable const ©); 1970 10 operator = 0 4 3221 26 TransformTable::operator = 0 1 363 0 60 void TransformTable::operator =(TransformTable const ©); 1971 13 is_registered 0 4 3221 29 TransformTable::is_registered 0 1 364 228 /** * Returns true if this table has been registered. Once it has been * registered, the set of transforms in a TransformTable may not be further * modified; but it must be registered before it can be assigned to a Geom. */ 54 inline bool TransformTable::is_registered(void) const; 1972 14 register_table 0 4 3221 30 TransformTable::register_table 0 1 365 551 /** * Registers a TransformTable for use. This is similar to * GeomVertexFormat::register_format(). Once registered, a TransformTable may * no longer be modified (although the individual VertexTransform objects may * modify their reported transforms). * * This must be called before a table may be used in a Geom. After this call, * you should discard the original pointer you passed in (which may or may not * now be invalid) and let its reference count decrement normally; you should * use only the returned value from this point on. */ 107 static inline ConstPointerTo< TransformTable > TransformTable::register_table(TransformTable const *table); 1973 18 get_num_transforms 0 4 3221 34 TransformTable::get_num_transforms 0 1 366 57 /** * Returns the number of transforms in the table. */ 66 inline std::size_t TransformTable::get_num_transforms(void) const; 1974 13 get_transform 0 4 3221 29 TransformTable::get_transform 0 1 367 50 /** * Returns the nth transform in the table. */ 81 inline VertexTransform const *TransformTable::get_transform(std::size_t n) const; 1975 12 get_modified 0 4 3221 28 TransformTable::get_modified 0 1 368 276 /** * Returns a sequence number that's guaranteed to change at least when any * VertexTransforms in the table change. (However, this is only true for a * registered table. An unregistered table may or may not reflect an update * here when a VertexTransform changes.) */ 107 inline UpdateSeq TransformTable::get_modified(Thread *current_thread = Thread::get_current_thread()) const; 1976 13 set_transform 0 4 3221 29 TransformTable::set_transform 0 1 369 75 /** * Replaces the nth transform. Only valid for unregistered tables. */ 84 void TransformTable::set_transform(std::size_t n, VertexTransform const *transform); 1977 16 insert_transform 0 4 3221 32 TransformTable::insert_transform 0 1 370 321 /** * Inserts a new transform to the table at the given index position. If the * index is beyond the end of the table, appends it to the end. Only valid * for unregistered tables. * * This does not automatically uniquify the pointer; if the transform is * already present in the table, it will be added twice. */ 87 void TransformTable::insert_transform(std::size_t n, VertexTransform const *transform); 1978 16 remove_transform 0 4 3221 32 TransformTable::remove_transform 0 1 371 74 /** * Removes the nth transform. Only valid for unregistered tables. */ 53 void TransformTable::remove_transform(std::size_t n); 1979 13 add_transform 0 4 3221 29 TransformTable::add_transform 0 1 372 268 /** * Adds a new transform to the table and returns the index number of the new * transform. Only valid for unregistered tables. * * This does not automatically uniquify the pointer; if the transform is * already present in the table, it will be added twice. */ 76 std::size_t TransformTable::add_transform(VertexTransform const *transform); 1980 5 write 0 4 3221 21 TransformTable::write 0 1 373 10 /** * */ 52 void TransformTable::write(std::ostream &out) const; 1981 0 0 0 0 0 0 0 0 0 1982 14 get_class_type 0 4 3221 30 TransformTable::get_class_type 0 1 374 0 55 static TypeHandle TransformTable::get_class_type(void); 1983 14 TransformBlend 0 4 3224 30 TransformBlend::TransformBlend 0 6 375 376 377 378 379 380 70 /** * */ /** * */ /** * */ /** * */ /** * */ /** * */ 827 inline TransformBlend::TransformBlend(void); inline TransformBlend::TransformBlend(VertexTransform const *transform0, PN_stdfloat weight0); inline TransformBlend::TransformBlend(VertexTransform const *transform0, PN_stdfloat weight0, VertexTransform const *transform1, PN_stdfloat weight1); inline TransformBlend::TransformBlend(VertexTransform const *transform0, PN_stdfloat weight0, VertexTransform const *transform1, PN_stdfloat weight1, VertexTransform const *transform2, PN_stdfloat weight2); inline TransformBlend::TransformBlend(VertexTransform const *transform0, PN_stdfloat weight0, VertexTransform const *transform1, PN_stdfloat weight1, VertexTransform const *transform2, PN_stdfloat weight2, VertexTransform const *transform3, PN_stdfloat weight3); inline TransformBlend::TransformBlend(TransformBlend const ©); 1984 10 operator = 0 4 3224 26 TransformBlend::operator = 0 1 381 0 67 inline void TransformBlend::operator =(TransformBlend const ©); 1985 15 ~TransformBlend 0 4 3224 31 TransformBlend::~TransformBlend 0 0 10 /** * */ 45 inline TransformBlend::~TransformBlend(void); 1986 10 compare_to 0 4 3224 26 TransformBlend::compare_to 0 1 382 68 /** * Defines an arbitrary ordering for TransformBlend objects. */ 66 int TransformBlend::compare_to(TransformBlend const &other) const; 1987 10 operator < 0 4 3224 26 TransformBlend::operator < 0 1 383 0 74 inline bool TransformBlend::operator <(TransformBlend const &other) const; 1988 11 operator == 0 4 3224 27 TransformBlend::operator == 0 1 384 0 75 inline bool TransformBlend::operator ==(TransformBlend const &other) const; 1989 11 operator != 0 4 3224 27 TransformBlend::operator != 0 1 385 0 75 inline bool TransformBlend::operator !=(TransformBlend const &other) const; 1990 13 add_transform 0 4 3224 29 TransformBlend::add_transform 0 1 386 112 /** * Adds a new transform to the blend. If the transform already existed, * increases its weight factor. */ 89 void TransformBlend::add_transform(VertexTransform const *transform, PN_stdfloat weight); 1991 16 remove_transform 0 4 3224 32 TransformBlend::remove_transform 0 2 387 388 124 /** * Removes the nth transform stored in the blend object. */ /** * Removes the indicated transform from the blend. */ 133 void TransformBlend::remove_transform(VertexTransform const *transform); inline void TransformBlend::remove_transform(std::size_t n); 1992 16 limit_transforms 0 4 3224 32 TransformBlend::limit_transforms 0 1 389 192 /** * If the total number of transforms in the blend exceeds max_transforms, * removes the n least-important transforms as needed to reduce the number of * transforms to max_transforms. */ 58 void TransformBlend::limit_transforms(int max_transforms); 1993 17 normalize_weights 0 4 3224 33 TransformBlend::normalize_weights 0 1 390 189 /** * Rescales all of the weights on the various transforms so that they sum to * 1.0. It is generally a good idea to call this after adding or removing * transforms from the blend. */ 45 void TransformBlend::normalize_weights(void); 1994 13 has_transform 0 4 3224 29 TransformBlend::has_transform 0 1 391 82 /** * Returns true if the blend has the indicated transform, false otherwise. */ 75 bool TransformBlend::has_transform(VertexTransform const *transform) const; 1995 10 get_weight 0 4 3224 26 TransformBlend::get_weight 0 2 392 393 214 /** * Returns the weight associated with the nth transform stored in the blend * object. */ /** * Returns the weight associated with the indicated transform, or 0 if there * is no entry for the transform. */ 147 PN_stdfloat TransformBlend::get_weight(VertexTransform const *transform) const; inline PN_stdfloat TransformBlend::get_weight(std::size_t n) const; 1996 18 get_num_transforms 0 4 3224 34 TransformBlend::get_num_transforms 0 1 394 71 /** * Returns the number of transforms stored in the blend object. */ 66 inline std::size_t TransformBlend::get_num_transforms(void) const; 1997 13 get_transform 0 4 3224 29 TransformBlend::get_transform 0 1 395 64 /** * Returns the nth transform stored in the blend object. */ 81 inline VertexTransform const *TransformBlend::get_transform(std::size_t n) const; 1998 13 set_transform 0 4 3224 29 TransformBlend::set_transform 0 1 396 65 /** * Replaces the nth transform stored in the blend object. */ 91 inline void TransformBlend::set_transform(std::size_t n, VertexTransform const *transform); 1999 10 set_weight 0 4 3224 26 TransformBlend::set_weight 0 1 397 95 /** * Replaces the weight associated with the nth transform stored in the blend * object. */ 74 inline void TransformBlend::set_weight(std::size_t n, PN_stdfloat weight); 2000 0 0 0 0 0 0 0 0 0 2001 0 0 0 0 0 0 0 0 0 2002 12 update_blend 0 4 3224 28 TransformBlend::update_blend 0 1 398 156 /** * Recomputes the internal representation of the blend value, if necessary. * You should call this before calling get_blend() or transform_point(). */ 71 inline void TransformBlend::update_blend(Thread *current_thread) const; 2003 9 get_blend 0 4 3224 25 TransformBlend::get_blend 0 1 399 249 /** * Returns the current value of the blend, based on the current value of all * of the nested transform objects and their associated weights. * * You should call update_blend() to ensure that the cache is up-to-date * before calling this. */ 86 inline void TransformBlend::get_blend(LMatrix4 &result, Thread *current_thread) const; 2004 15 transform_point 0 4 3224 31 TransformBlend::transform_point 0 4 400 401 402 403 654 /** * Transforms the indicated point by the blend matrix. * * You should call update_blend() to ensure that the cache is up-to-date * before calling this. */ /** * Transforms the indicated point by the blend matrix. * * You should call update_blend() to ensure that the cache is up-to-date * before calling this. */ /** * Transforms the indicated point by the blend matrix. * * You should call update_blend() to ensure that the cache is up-to-date * before calling this. */ /** * Transforms the indicated point by the blend matrix. * * You should call update_blend() to ensure that the cache is up-to-date * before calling this. */ 367 inline void TransformBlend::transform_point(LPoint4f &point, Thread *current_thread) const; inline void TransformBlend::transform_point(LPoint3f &point, Thread *current_thread) const; inline void TransformBlend::transform_point(LPoint4d &point, Thread *current_thread) const; inline void TransformBlend::transform_point(LPoint3d &point, Thread *current_thread) const; 2005 16 transform_vector 0 4 3224 32 TransformBlend::transform_vector 0 2 404 405 328 /** * Transforms the indicated vector by the blend matrix. * * You should call update_blend() to ensure that the cache is up-to-date * before calling this. */ /** * Transforms the indicated vector by the blend matrix. * * You should call update_blend() to ensure that the cache is up-to-date * before calling this. */ 187 inline void TransformBlend::transform_vector(LVector3f &point, Thread *current_thread) const; inline void TransformBlend::transform_vector(LVector3d &point, Thread *current_thread) const; 2006 12 get_modified 0 4 3224 28 TransformBlend::get_modified 0 1 406 120 /** * Returns a counter which is guaranteed to increment at least as often as the * result of get_blend() changes. */ 107 inline UpdateSeq TransformBlend::get_modified(Thread *current_thread = Thread::get_current_thread()) const; 2007 6 output 0 4 3224 22 TransformBlend::output 0 1 407 10 /** * */ 53 void TransformBlend::output(std::ostream &out) const; 2008 5 write 0 4 3224 21 TransformBlend::write 0 1 408 10 /** * */ 70 void TransformBlend::write(std::ostream &out, int indent_level) const; 2009 14 get_class_type 0 4 3224 30 TransformBlend::get_class_type 0 1 409 0 55 static TypeHandle TransformBlend::get_class_type(void); 2010 19 TransformBlendTable 0 4 3227 40 TransformBlendTable::TransformBlendTable 0 2 410 411 22 /** * */ /** * */ 122 TransformBlendTable::TransformBlendTable(void); TransformBlendTable::TransformBlendTable(TransformBlendTable const ©); 2011 10 operator = 0 4 3227 31 TransformBlendTable::operator = 0 1 412 0 70 void TransformBlendTable::operator =(TransformBlendTable const ©); 2012 14 get_num_blends 0 4 3227 35 TransformBlendTable::get_num_blends 0 1 413 81 /** * Returns the total number of different blend combinations in the table. */ 67 inline std::size_t TransformBlendTable::get_num_blends(void) const; 2013 9 get_blend 0 4 3227 30 TransformBlendTable::get_blend 0 1 414 46 /** * Returns the nth blend in the table. */ 81 inline TransformBlend const &TransformBlendTable::get_blend(std::size_t n) const; 2014 12 get_modified 0 4 3227 33 TransformBlendTable::get_modified 0 1 415 129 /** * Returns a counter which is guaranteed to increment at least when any * TransformBlends within the table have changed. */ 112 inline UpdateSeq TransformBlendTable::get_modified(Thread *current_thread = Thread::get_current_thread()) const; 2015 9 set_blend 0 4 3227 30 TransformBlendTable::set_blend 0 1 416 75 /** * Replaces the blend at the nth position with the indicated value. */ 80 void TransformBlendTable::set_blend(std::size_t n, TransformBlend const &blend); 2016 12 remove_blend 0 4 3227 33 TransformBlendTable::remove_blend 0 1 417 49 /** * Removes the blend at the nth position. */ 54 void TransformBlendTable::remove_blend(std::size_t n); 2017 9 add_blend 0 4 3227 30 TransformBlendTable::add_blend 0 1 418 167 /** * Adds a new blend to the table, and returns its index number. If there is * already an identical blend in the table, simply returns that number * instead. */ 72 std::size_t TransformBlendTable::add_blend(TransformBlend const &blend); 2018 18 get_num_transforms 0 4 3227 39 TransformBlendTable::get_num_transforms 0 1 419 299 /** * Returns the number of unique VertexTransform objects represented in the * table. This will correspond to the size of the TransformTable object that * would represent the same table. This is also the same limit reflected by * GraphicsStateGuardian::get_max_vertex_transform_indices(). */ 63 inline int TransformBlendTable::get_num_transforms(void) const; 2019 31 get_max_simultaneous_transforms 0 4 3227 52 TransformBlendTable::get_max_simultaneous_transforms 0 1 420 217 /** * Returns the maximum number of unique VertexTransform objects that are * applied to any one vertex simultaneously. This is the same limit reflected * by GraphicsStateGuardian::get_max_vertex_transforms(). */ 76 inline int TransformBlendTable::get_max_simultaneous_transforms(void) const; 2020 8 set_rows 0 4 3227 29 TransformBlendTable::set_rows 0 1 421 134 /** * Specifies the subset of rows (vertices) in the associated GeomVertexData * that this TransformBlendTable actually affects. */ 67 inline void TransformBlendTable::set_rows(SparseArray const &rows); 2021 8 get_rows 0 4 3227 29 TransformBlendTable::get_rows 0 1 422 132 /** * Returns the subset of rows (vertices) in the associated GeomVertexData that * this TransformBlendTable actually affects. */ 68 inline SparseArray const &TransformBlendTable::get_rows(void) const; 2022 11 modify_rows 0 4 3227 32 TransformBlendTable::modify_rows 0 1 423 192 /** * Returns a modifiable reference to the SparseArray that specifies the subset * of rows (vertices) in the associated GeomVertexData that this * TransformBlendTable actually affects. */ 59 inline SparseArray &TransformBlendTable::modify_rows(void); 2023 5 write 0 4 3227 26 TransformBlendTable::write 0 1 424 10 /** * */ 75 void TransformBlendTable::write(std::ostream &out, int indent_level) const; 2024 0 0 0 0 0 0 0 0 0 2025 14 get_class_type 0 4 3227 35 TransformBlendTable::get_class_type 0 1 425 0 60 static TypeHandle TransformBlendTable::get_class_type(void); 2026 8 get_name 0 4 3231 22 VertexSlider::get_name 0 1 426 201 /** * Returns the name of this particular slider. Every unique blend shape * within a particular Geom must be identified with a different name, which is * shared by the slider that controls it. */ 62 inline InternalName const *VertexSlider::get_name(void) const; 2027 10 get_slider 0 6 3231 24 VertexSlider::get_slider 0 1 427 0 61 virtual PN_stdfloat VertexSlider::get_slider(void) const = 0; 2028 12 get_modified 0 4 3231 26 VertexSlider::get_modified 0 1 428 131 /** * Returns a sequence number that's guaranteed to change at least every time * the value reported by get_slider() changes. */ 105 inline UpdateSeq VertexSlider::get_modified(Thread *current_thread = Thread::get_current_thread()) const; 2029 6 output 0 6 3231 20 VertexSlider::output 0 1 429 10 /** * */ 59 virtual void VertexSlider::output(std::ostream &out) const; 2030 5 write 0 6 3231 19 VertexSlider::write 0 1 430 10 /** * */ 76 virtual void VertexSlider::write(std::ostream &out, int indent_level) const; 2031 14 get_class_type 0 4 3231 28 VertexSlider::get_class_type 0 1 431 0 53 static TypeHandle VertexSlider::get_class_type(void); 2032 11 SliderTable 0 4 3232 24 SliderTable::SliderTable 0 2 432 433 22 /** * */ /** * */ 82 SliderTable::SliderTable(void); SliderTable::SliderTable(SliderTable const ©); 2033 10 operator = 0 4 3232 23 SliderTable::operator = 0 1 434 0 54 void SliderTable::operator =(SliderTable const ©); 2034 13 is_registered 0 4 3232 26 SliderTable::is_registered 0 1 435 222 /** * Returns true if this table has been registered. Once it has been * registered, the set of sliders in a SliderTable may not be further * modified; but it must be registered before it can be assigned to a Geom. */ 51 inline bool SliderTable::is_registered(void) const; 2035 14 register_table 0 4 3232 27 SliderTable::register_table 0 1 436 539 /** * Registers a SliderTable for use. This is similar to * GeomVertexFormat::register_format(). Once registered, a SliderTable may no * longer be modified (although the individual VertexSlider objects may modify * their reported sliders). * * This must be called before a table may be used in a Geom. After this call, * you should discard the original pointer you passed in (which may or may not * now be invalid) and let its reference count decrement normally; you should * use only the returned value from this point on. */ 98 static inline ConstPointerTo< SliderTable > SliderTable::register_table(SliderTable const *table); 2036 15 get_num_sliders 0 4 3232 28 SliderTable::get_num_sliders 0 1 437 54 /** * Returns the number of sliders in the table. */ 60 inline std::size_t SliderTable::get_num_sliders(void) const; 2037 10 get_slider 0 4 3232 23 SliderTable::get_slider 0 1 438 47 /** * Returns the nth slider in the table. */ 72 inline VertexSlider const *SliderTable::get_slider(std::size_t n) const; 2038 15 get_slider_rows 0 4 3232 28 SliderTable::get_slider_rows 0 1 439 86 /** * Returns the set of rows (vertices) governed by the nth slider in the table. */ 76 inline SparseArray const &SliderTable::get_slider_rows(std::size_t n) const; 2039 12 find_sliders 0 4 3232 25 SliderTable::find_sliders 0 1 440 174 /** * Returns a list of slider indices that represent the list of sliders with * the indicated name, or an empty SparseArray if no slider in the table has * that name. */ 84 inline SparseArray const &SliderTable::find_sliders(InternalName const *name) const; 2040 10 has_slider 0 4 3232 23 SliderTable::has_slider 0 1 441 103 /** * Returns true if the table has at least one slider by the indicated name, * false otherwise. */ 68 inline bool SliderTable::has_slider(InternalName const *name) const; 2041 8 is_empty 0 4 3232 21 SliderTable::is_empty 0 1 442 82 /** * Returns true if the table has no sliders, false if it has at least one. */ 46 inline bool SliderTable::is_empty(void) const; 2042 12 get_modified 0 4 3232 25 SliderTable::get_modified 0 1 443 270 /** * Returns a sequence number that's guaranteed to change at least when any * VertexSliders in the table change. (However, this is only true for a * registered table. An unregistered table may or may not reflect an update * here when a VertexSlider changes.) */ 104 inline UpdateSeq SliderTable::get_modified(Thread *current_thread = Thread::get_current_thread()) const; 2043 10 set_slider 0 4 3232 23 SliderTable::set_slider 0 1 444 72 /** * Replaces the nth slider. Only valid for unregistered tables. */ 72 void SliderTable::set_slider(std::size_t n, VertexSlider const *slider); 2044 15 set_slider_rows 0 4 3232 28 SliderTable::set_slider_rows 0 1 445 96 /** * Replaces the rows affected by the nth slider. Only valid for unregistered * tables. */ 74 void SliderTable::set_slider_rows(std::size_t n, SparseArray const &rows); 2045 13 remove_slider 0 4 3232 26 SliderTable::remove_slider 0 1 446 71 /** * Removes the nth slider. Only valid for unregistered tables. */ 47 void SliderTable::remove_slider(std::size_t n); 2046 10 add_slider 0 4 3232 23 SliderTable::add_slider 0 1 447 130 /** * Adds a new slider to the table, and returns the index number of the new * slider. Only valid for unregistered tables. */ 89 std::size_t SliderTable::add_slider(VertexSlider const *slider, SparseArray const &rows); 2047 5 write 0 4 3232 18 SliderTable::write 0 1 448 10 /** * */ 49 void SliderTable::write(std::ostream &out) const; 2048 14 get_class_type 0 4 3232 27 SliderTable::get_class_type 0 1 449 0 52 static TypeHandle SliderTable::get_class_type(void); 2049 27 upcast_to_CopyOnWriteObject 0 12 3233 43 GeomVertexData::upcast_to_CopyOnWriteObject 0 1 508 47 upcast from GeomVertexData to CopyOnWriteObject 69 CopyOnWriteObject *GeomVertexData::upcast_to_CopyOnWriteObject(void); 2050 26 downcast_to_GeomVertexData 0 12 3213 45 CopyOnWriteObject::downcast_to_GeomVertexData 0 0 49 downcast from CopyOnWriteObject to GeomVertexData 68 GeomVertexData *CopyOnWriteObject::downcast_to_GeomVertexData(void); 2051 19 upcast_to_GeomEnums 0 12 3233 35 GeomVertexData::upcast_to_GeomEnums 0 1 509 39 upcast from GeomVertexData to GeomEnums 53 GeomEnums *GeomVertexData::upcast_to_GeomEnums(void); 2052 26 downcast_to_GeomVertexData 0 12 3173 37 GeomEnums::downcast_to_GeomVertexData 0 0 41 downcast from GeomEnums to GeomVertexData 60 GeomVertexData *GeomEnums::downcast_to_GeomVertexData(void); 2053 14 GeomVertexData 0 4 3233 30 GeomVertexData::GeomVertexData 0 3 450 451 452 336 /** * Constructs an invalid object. This is only used when reading from the bam * file. */ /** * */ /** * */ /** * This constructor copies all of the basic properties of the source * VertexData, like usage_hint and animation tables, but does not copy the * actual data, and it allows you to specify a different format. */ 291 explicit GeomVertexData::GeomVertexData(std::string const &name, GeomVertexFormat const *format, GeomEnums::UsageHint usage_hint); GeomVertexData::GeomVertexData(GeomVertexData const ©); explicit GeomVertexData::GeomVertexData(GeomVertexData const ©, GeomVertexFormat const *format); 2054 10 operator = 0 4 3233 26 GeomVertexData::operator = 0 1 453 0 60 void GeomVertexData::operator =(GeomVertexData const ©); 2055 15 ~GeomVertexData 0 6 3233 31 GeomVertexData::~GeomVertexData 0 0 10 /** * */ 46 virtual GeomVertexData::~GeomVertexData(void); 2056 12 operator new 0 4 3233 28 GeomVertexData::operator new 0 1 454 0 132 inline void *GeomVertexData::operator new(std::size_t size); inline void *GeomVertexData::operator new(std::size_t size, void *ptr); 2057 15 operator delete 0 4 3233 31 GeomVertexData::operator delete 0 0 0 116 inline void GeomVertexData::operator delete(void *ptr); inline void GeomVertexData::operator delete(void *, void *); 2058 12 validate_ptr 0 4 3233 28 GeomVertexData::validate_ptr 0 0 0 65 static inline bool GeomVertexData::validate_ptr(void const *ptr); 2059 10 compare_to 0 4 3233 26 GeomVertexData::compare_to 0 1 455 97 /** * Returns 0 if the two objects are equivalent, even if they are not the same * pointer. */ 66 int GeomVertexData::compare_to(GeomVertexData const &other) const; 2060 8 get_name 0 4 3233 24 GeomVertexData::get_name 0 1 456 133 /** * Returns the name passed to the constructor, if any. This name is reported * on the PStats graph for vertex computations. */ 63 inline std::string const &GeomVertexData::get_name(void) const; 2061 8 set_name 0 4 3233 24 GeomVertexData::set_name 0 1 457 118 /** * Changes the name of the vertex data. This name is reported on the PStats * graph for vertex computations. */ 55 void GeomVertexData::set_name(std::string const &name); 2062 14 get_usage_hint 0 4 3233 30 GeomVertexData::get_usage_hint 0 1 458 438 /** * Returns the usage hint that was passed to the constructor, and which will * be passed to each array data object created initially, and arrays created * as the result of a convert_to() operation. See geomEnums.h. * * However, each individual array may be replaced with a different array * object with an independent usage hint specified, so there is no guarantee * that the individual arrays all have the same usage_hint. */ 71 inline GeomEnums::UsageHint GeomVertexData::get_usage_hint(void) const; 2063 14 set_usage_hint 0 4 3233 30 GeomVertexData::set_usage_hint 0 1 459 285 /** * Changes the UsageHint hint for this vertex data, and for all of the arrays * that share this data. See get_usage_hint(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 69 void GeomVertexData::set_usage_hint(GeomEnums::UsageHint usage_hint); 2064 10 get_format 0 4 3233 26 GeomVertexData::get_format 0 1 460 86 /** * Returns a pointer to the GeomVertexFormat structure that defines this data. */ 70 inline GeomVertexFormat const *GeomVertexData::get_format(void) const; 2065 10 set_format 0 4 3233 26 GeomVertexData::set_format 0 1 461 294 /** * Changes the format of the vertex data. If the data is not empty, this will * implicitly change every row to match the new format. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 64 void GeomVertexData::set_format(GeomVertexFormat const *format); 2066 18 unclean_set_format 0 4 3233 34 GeomVertexData::unclean_set_format 0 1 462 440 /** * Changes the format of the vertex data, without reformatting the data to * match. The data is exactly the same after this operation, but will be * reinterpreted according to the new format. This assumes that the new * format is fundamentally compatible with the old format; in particular, it * must have the same number of arrays with the same stride in each one. No * checking is performed that the data remains sensible. */ 72 void GeomVertexData::unclean_set_format(GeomVertexFormat const *format); 2067 10 has_column 0 4 3233 26 GeomVertexData::has_column 0 1 463 152 /** * Returns true if the data has the named column, false otherwise. This is * really just a shortcut for asking the same thing from the format. */ 71 inline bool GeomVertexData::has_column(InternalName const *name) const; 2068 12 get_num_rows 0 4 3233 28 GeomVertexData::get_num_rows 0 1 464 114 /** * Returns the number of rows stored within all the arrays. All arrays store * data for the same n rows. */ 52 inline int GeomVertexData::get_num_rows(void) const; 2069 12 set_num_rows 0 4 3233 28 GeomVertexData::set_num_rows 0 1 465 736 /** * Sets the length of the array to n rows in all of the various arrays * (presumably by adding rows). * * The new vertex data is initialized to 0, except for the "color" column, * which is initialized to (1, 1, 1, 1). * * The return value is true if the number of rows was changed, false if the * object already contained n rows (or if there was some error). * * This can be used when you know exactly how many rows you will be needing. * It is faster than reserve_num_rows(). Also see unclean_set_num_rows() if * you are planning to fill in all the data yourself. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 48 inline bool GeomVertexData::set_num_rows(int n); 2070 20 unclean_set_num_rows 0 4 3233 36 GeomVertexData::unclean_set_num_rows 0 1 466 518 /** * This method behaves like set_num_rows(), except the new data is not * initialized. Furthermore, after this call, *any* of the data in the * GeomVertexData may be uninitialized, including the earlier rows. * * This is intended for applications that are about to completely fill the * GeomVertexData with new data anyway; it provides a tiny performance boost * over set_num_rows(). * * This can be used when you know exactly how many rows you will be needing. * It is faster than reserve_num_rows(). */ 56 inline bool GeomVertexData::unclean_set_num_rows(int n); 2071 16 reserve_num_rows 0 4 3233 32 GeomVertexData::reserve_num_rows 0 1 467 461 /** * This ensures that enough memory space for n rows is allocated, so that you * may increase the number of rows to n without causing a new memory * allocation. This is a performance optimization only; it is especially * useful when you know ahead of time that you will be adding n rows to the * data. * * If you know exactly how many rows you will be needing, it is significantly * faster to use set_num_rows() or unclean_set_num_rows() instead. */ 52 inline bool GeomVertexData::reserve_num_rows(int n); 2072 10 clear_rows 0 4 3233 26 GeomVertexData::clear_rows 0 1 468 263 /** * Removes all of the rows from the arrays; functionally equivalent to * set_num_rows(0) (but faster). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 38 void GeomVertexData::clear_rows(void); 2073 14 get_num_arrays 0 4 3233 30 GeomVertexData::get_num_arrays 0 1 469 126 /** * Returns the number of individual arrays stored within the data. This must * match get_format()->get_num_arrays(). */ 62 inline std::size_t GeomVertexData::get_num_arrays(void) const; 2074 9 get_array 0 4 3233 25 GeomVertexData::get_array 0 1 470 170 /** * Returns a const pointer to the vertex data for the indicated array, for * application code to directly examine (but not modify) the underlying vertex * data. */ 92 inline ConstPointerTo< GeomVertexArrayData > GeomVertexData::get_array(std::size_t i) const; 2075 16 get_array_handle 0 4 3233 32 GeomVertexData::get_array_handle 0 1 471 51 /** * Equivalent to get_array(i).get_handle(). */ 105 inline ConstPointerTo< GeomVertexArrayDataHandle > GeomVertexData::get_array_handle(std::size_t i) const; 2076 12 modify_array 0 4 3233 28 GeomVertexData::modify_array 0 1 472 419 /** * Returns a modifiable pointer to the indicated vertex array, so that * application code may directly manipulate the data. You should avoid * changing the length of this array, since all of the arrays should be kept * in sync--use set_num_rows() instead. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 84 inline PointerTo< GeomVertexArrayData > GeomVertexData::modify_array(std::size_t i); 2077 19 modify_array_handle 0 4 3233 35 GeomVertexData::modify_array_handle 0 1 473 57 /** * Equivalent to modify_array(i).modify_handle(). */ 97 inline PointerTo< GeomVertexArrayDataHandle > GeomVertexData::modify_array_handle(std::size_t i); 2078 9 set_array 0 4 3233 25 GeomVertexData::set_array 0 1 474 363 /** * Replaces the indicated vertex data array with a completely new array. You * should be careful that the new array has the same length and format as the * old one, unless you know what you are doing. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 87 inline void GeomVertexData::set_array(std::size_t i, GeomVertexArrayData const *array); 2079 0 0 0 0 0 0 0 0 0 2080 19 get_transform_table 0 4 3233 35 GeomVertexData::get_transform_table 0 1 475 494 /** * Returns a const pointer to the TransformTable assigned to this data. * Vertices within the table will index into this table to indicate their * dynamic skinning information; this table is used when the vertex animation * is to be performed by the graphics hardware (but also see * get_transform_blend_table()). * * This will return NULL if the vertex data does not have a TransformTable * assigned (which implies the vertices will not be animated by the graphics * hardware). */ 77 inline TransformTable const *GeomVertexData::get_transform_table(void) const; 2081 19 set_transform_table 0 4 3233 35 GeomVertexData::set_transform_table 0 1 476 376 /** * Replaces the TransformTable on this vertex data with the indicated table. * The length of this table should be consistent with the maximum table index * assigned to the vertices under the "transform_index" name. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 70 void GeomVertexData::set_transform_table(TransformTable const *table); 2082 21 clear_transform_table 0 4 3233 37 GeomVertexData::clear_transform_table 0 1 477 144 /** * Sets the TransformTable pointer to NULL, removing the table from the vertex * data. This disables hardware-driven vertex animation. */ 56 inline void GeomVertexData::clear_transform_table(void); 2083 25 get_transform_blend_table 0 4 3233 41 GeomVertexData::get_transform_blend_table 0 1 478 467 /** * Returns a const pointer to the TransformBlendTable assigned to this data. * Vertices within the table will index into this table to indicate their * dynamic skinning information; this table is used when the vertex animation * is to be performed by the CPU (but also see get_transform_table()). * * This will return NULL if the vertex data does not have a * TransformBlendTable assigned (which implies the vertices will not be * animated by the CPU). */ 99 inline ConstPointerTo< TransformBlendTable > GeomVertexData::get_transform_blend_table(void) const; 2084 28 modify_transform_blend_table 0 4 3233 44 GeomVertexData::modify_transform_blend_table 0 1 479 342 /** * Returns a modifiable pointer to the current TransformBlendTable on this * vertex data, if any, or NULL if there is not a TransformBlendTable. See * get_transform_blend_table(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 84 PointerTo< TransformBlendTable > GeomVertexData::modify_transform_blend_table(void); 2085 25 set_transform_blend_table 0 4 3233 41 GeomVertexData::set_transform_blend_table 0 1 480 382 /** * Replaces the TransformBlendTable on this vertex data with the indicated * table. The length of this table should be consistent with the maximum * table index assigned to the vertices under the "transform_blend" name. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 81 void GeomVertexData::set_transform_blend_table(TransformBlendTable const *table); 2086 27 clear_transform_blend_table 0 4 3233 43 GeomVertexData::clear_transform_blend_table 0 1 481 144 /** * Sets the TransformBlendTable pointer to NULL, removing the table from the * vertex data. This disables CPU-driven vertex animation. */ 62 inline void GeomVertexData::clear_transform_blend_table(void); 2087 16 get_slider_table 0 4 3233 32 GeomVertexData::get_slider_table 0 1 482 264 /** * Returns a const pointer to the SliderTable assigned to this data. Vertices * within the vertex data will look up their morph offsets, if any, within * this table. * * This will return NULL if the vertex data does not have a SliderTable * assigned. */ 71 inline SliderTable const *GeomVertexData::get_slider_table(void) const; 2088 16 set_slider_table 0 4 3233 32 GeomVertexData::set_slider_table 0 1 483 437 /** * Replaces the SliderTable on this vertex data with the indicated table. * There should be an entry in this table for each kind of morph offset * defined in the vertex data. * * The SliderTable object must have been registered prior to setting it on the * GeomVertexData. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 64 void GeomVertexData::set_slider_table(SliderTable const *table); 2089 18 clear_slider_table 0 4 3233 34 GeomVertexData::clear_slider_table 0 1 484 138 /** * Sets the SliderTable pointer to NULL, removing the table from the vertex * data. This disables morph (blend shape) animation. */ 53 inline void GeomVertexData::clear_slider_table(void); 2090 13 get_num_bytes 0 4 3233 29 GeomVertexData::get_num_bytes 0 1 485 100 /** * Returns the total number of bytes consumed by the different arrays of the * vertex data. */ 53 inline int GeomVertexData::get_num_bytes(void) const; 2091 12 get_modified 0 4 3233 28 GeomVertexData::get_modified 0 1 486 118 /** * Returns a sequence number which is guaranteed to change at least every time * the vertex data is modified. */ 107 inline UpdateSeq GeomVertexData::get_modified(Thread *current_thread = Thread::get_current_thread()) const; 2092 16 request_resident 0 4 3233 32 GeomVertexData::request_resident 0 1 487 180 /** * Returns true if the vertex data is currently resident in memory. If this * returns false, the vertex data will be brought back into memory shortly; * try again later. */ 50 bool GeomVertexData::request_resident(void) const; 2093 9 copy_from 0 4 3233 25 GeomVertexData::copy_from 0 1 488 691 /** * Copies all the data from the other array into the corresponding data types * in this array, by matching data types name-by-name. * * keep_data_objects specifies what to do when one or more of the arrays can * be copied without the need to apply any conversion operation. If it is * true, the original GeomVertexArrayData objects in this object are retained, * and their data arrays are copied byte-by-byte from the source; if it is * false, then the GeomVertexArrayData objects are copied pointerwise from the * source. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 140 void GeomVertexData::copy_from(GeomVertexData const *source, bool keep_data_objects, Thread *current_thread = Thread::get_current_thread()); 2094 13 copy_row_from 0 4 3233 29 GeomVertexData::copy_row_from 0 1 489 335 /** * Copies a single row of the data from the other array into the indicated row * of this array. In this case, the source format must exactly match the * destination format. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 119 void GeomVertexData::copy_row_from(int dest_row, GeomVertexData const *source, int source_row, Thread *current_thread); 2095 10 convert_to 0 4 3233 26 GeomVertexData::convert_to 0 1 490 162 /** * Returns a new GeomVertexData that represents the same contents as this one, * with all data types matched up name-by-name to the indicated new format. */ 102 ConstPointerTo< GeomVertexData > GeomVertexData::convert_to(GeomVertexFormat const *new_format) const; 2096 11 scale_color 0 4 3233 27 GeomVertexData::scale_color 0 2 491 492 517 /** * Returns a new GeomVertexData object with the color table modified in-place * to apply the indicated scale. * * If the vertex data does not include a color column, a new one will not be * added. */ /** * Returns a new GeomVertexData object with the color table replaced with a * new color table that has been scaled by the indicated value. The new color * table will be added as a new array; if the old color table was interleaved * with a previous array, the previous array will not be repacked. */ 282 ConstPointerTo< GeomVertexData > GeomVertexData::scale_color(LVecBase4 const &color_scale) const; ConstPointerTo< GeomVertexData > GeomVertexData::scale_color(LVecBase4 const &color_scale, int num_components, GeomEnums::NumericType numeric_type, GeomEnums::Contents contents) const; 2097 9 set_color 0 4 3233 25 GeomVertexData::set_color 0 2 493 494 508 /** * Returns a new GeomVertexData object with the color data modified in-place * with the new value. * * If the vertex data does not include a color column, a new one will not be * added. */ /** * Returns a new GeomVertexData object with the color table replaced with a * new color table for which each vertex has the indicated value. The new * color table will be added as a new array; if the old color table was * interleaved with a previous array, the previous array will not be repacked. */ 260 ConstPointerTo< GeomVertexData > GeomVertexData::set_color(LColor const &color) const; ConstPointerTo< GeomVertexData > GeomVertexData::set_color(LColor const &color, int num_components, GeomEnums::NumericType numeric_type, GeomEnums::Contents contents) const; 2098 15 reverse_normals 0 4 3233 31 GeomVertexData::reverse_normals 0 1 495 281 /** * Returns a new GeomVertexData object with the normal data modified in-place, * so that each lighting normal is now facing in the opposite direction. * * If the vertex data does not include a normal column, this returns the * original GeomVertexData object, unchanged. */ 77 ConstPointerTo< GeomVertexData > GeomVertexData::reverse_normals(void) const; 2099 16 animate_vertices 0 4 3233 32 GeomVertexData::animate_vertices 0 1 496 861 /** * Returns a GeomVertexData that represents the results of computing the * vertex animation on the CPU for this GeomVertexData. * * If there is no CPU-defined vertex animation on this object, this just * returns the original object. * * If there is vertex animation, but the VertexTransform values have not * changed since last time, this may return the same pointer it returned * previously. Even if the VertexTransform values have changed, it may still * return the same pointer, but with its contents modified (this is preferred, * since it allows the graphics backend to update vertex buffers optimally). * * If force is false, this method may return immediately with stale data, if * the vertex data is not completely resident. If force is true, this method * will never return stale data, but may block until the data is available. */ 108 ConstPointerTo< GeomVertexData > GeomVertexData::animate_vertices(bool force, Thread *current_thread) const; 2100 23 clear_animated_vertices 0 4 3233 39 GeomVertexData::clear_animated_vertices 0 1 497 268 /** * Removes the cache of animated vertices computed by a previous call to * animate_vertices() within the same frame. This will force the next call to * animate_vertices() to recompute these values from scratch. Normally it is * not necessary to call this. */ 51 void GeomVertexData::clear_animated_vertices(void); 2101 18 transform_vertices 0 4 3233 34 GeomVertexData::transform_vertices 0 3 498 499 500 616 /** * Applies the indicated transform matrix to all of the vertices in the * GeomVertexData. The transform is applied to all "point" and "vector" type * columns described in the format. */ /** * Applies the indicated transform matrix to all of the vertices from * begin_row up to but not including end_row. The transform is applied to all * "point" and "vector" type columns described in the format. */ /** * Applies the indicated transform matrix to all of the vertices mentioned in * the sparse array. The transform is applied to all "point" and "vector" * type columns described in the format. */ 238 void GeomVertexData::transform_vertices(LMatrix4 const &mat); void GeomVertexData::transform_vertices(LMatrix4 const &mat, int begin_row, int end_row); void GeomVertexData::transform_vertices(LMatrix4 const &mat, SparseArray const &rows); 2102 14 replace_column 0 4 3233 30 GeomVertexData::replace_column 0 1 501 435 /** * Returns a new GeomVertexData object, suitable for modification, with the * indicated data type replaced with a new table filled with undefined values. * The new table will be added as a new array; if the old table was * interleaved with a previous array, the previous array will not be repacked. * * If num_components is 0, the indicated name is simply removed from the type, * without replacing it with anything else. */ 172 PointerTo< GeomVertexData > GeomVertexData::replace_column(InternalName *name, int num_components, GeomEnums::NumericType numeric_type, GeomEnums::Contents contents) const; 2103 6 output 0 4 3233 22 GeomVertexData::output 0 1 502 10 /** * */ 53 void GeomVertexData::output(std::ostream &out) const; 2104 5 write 0 4 3233 21 GeomVertexData::write 0 1 503 10 /** * */ 74 void GeomVertexData::write(std::ostream &out, int indent_level = 0) const; 2105 15 describe_vertex 0 4 3233 31 GeomVertexData::describe_vertex 0 1 504 90 /** * Writes a verbose, human-friendly description of the indicated vertex * number. */ 71 void GeomVertexData::describe_vertex(std::ostream &out, int row) const; 2106 11 clear_cache 0 4 3233 27 GeomVertexData::clear_cache 0 1 505 263 /** * Removes all of the previously-cached results of convert_to(). * * This blows away the entire cache, upstream and downstream the pipeline. * Use clear_cache_stage() instead if you only want to blow away the cache at * the current stage and upstream. */ 39 void GeomVertexData::clear_cache(void); 2107 17 clear_cache_stage 0 4 3233 33 GeomVertexData::clear_cache_stage 0 1 506 310 /** * Removes all of the previously-cached results of convert_to(), at the * current pipeline stage and upstream. Does not affect the downstream cache. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 45 void GeomVertexData::clear_cache_stage(void); 2108 14 get_class_type 0 4 3233 30 GeomVertexData::get_class_type 0 1 507 0 55 static TypeHandle GeomVertexData::get_class_type(void); 2109 22 AnimateVerticesRequest 0 4 3241 46 AnimateVerticesRequest::AnimateVerticesRequest 0 2 510 511 47 /** * Create a new AnimateVerticesRequest. */ 194 inline explicit AnimateVerticesRequest::AnimateVerticesRequest(GeomVertexData *geom_vertex_data); inline AnimateVerticesRequest::AnimateVerticesRequest(AnimateVerticesRequest const &) = default; 2110 8 is_ready 0 4 3241 32 AnimateVerticesRequest::is_ready 0 1 512 154 /** * Returns true if this request has completed, false if it is still pending. * Equivalent to `req.done() and not req.cancelled()`. * @see done() */ 57 inline bool AnimateVerticesRequest::is_ready(void) const; 2111 14 get_class_type 0 4 3241 38 AnimateVerticesRequest::get_class_type 0 1 513 0 63 static TypeHandle AnimateVerticesRequest::get_class_type(void); 2112 23 ~AnimateVerticesRequest 0 4 3241 47 AnimateVerticesRequest::~AnimateVerticesRequest 0 0 0 54 AnimateVerticesRequest::~AnimateVerticesRequest(void); 2113 14 get_class_type 0 4 3243 28 SavedContext::get_class_type 0 1 514 0 53 static TypeHandle SavedContext::get_class_type(void); 2114 13 ~SavedContext 0 4 3243 27 SavedContext::~SavedContext 0 0 0 34 SavedContext::~SavedContext(void); 2115 22 upcast_to_SavedContext 0 12 3245 37 BufferContext::upcast_to_SavedContext 0 1 520 41 upcast from BufferContext to SavedContext 58 SavedContext *BufferContext::upcast_to_SavedContext(void); 2116 25 downcast_to_BufferContext 0 12 3243 39 SavedContext::downcast_to_BufferContext 0 0 43 downcast from SavedContext to BufferContext 61 BufferContext *SavedContext::downcast_to_BufferContext(void); 2117 14 ~BufferContext 0 6 3245 29 BufferContext::~BufferContext 0 0 10 /** * */ 44 virtual BufferContext::~BufferContext(void); 2118 19 get_data_size_bytes 0 4 3245 34 BufferContext::get_data_size_bytes 0 1 515 271 /** * Returns the number of bytes previously reported for the data object. This * is used to track changes in the data object's allocated size; if it changes * from this, we need to create a new buffer. This is also used to track * memory utilization in PStats. */ 66 inline std::size_t BufferContext::get_data_size_bytes(void) const; 2119 12 get_modified 0 4 3245 27 BufferContext::get_modified 0 1 516 93 /** * Returns the UpdateSeq that was recorded the last time mark_loaded() was * called. */ 57 inline UpdateSeq BufferContext::get_modified(void) const; 2120 10 get_active 0 4 3245 25 BufferContext::get_active 0 1 517 141 /** * Returns the active flag associated with this object. An object is * considered "active" if it was rendered in the current frame. */ 50 inline bool BufferContext::get_active(void) const; 2121 12 get_resident 0 4 3245 27 BufferContext::get_resident 0 1 518 152 /** * Returns the resident flag associated with this object. An object is * considered "resident" if it appears to be resident in texture memory. */ 52 inline bool BufferContext::get_resident(void) const; 2122 10 get_object 0 4 3245 25 BufferContext::get_object 0 0 41 /** * Returns the associated object. */ 74 inline TypedWritableReferenceCount *BufferContext::get_object(void) const; 2123 14 get_class_type 0 4 3245 29 BufferContext::get_class_type 0 1 519 0 54 static TypeHandle BufferContext::get_class_type(void); 2124 27 upcast_to_CopyOnWriteObject 0 12 3247 42 GeomPrimitive::upcast_to_CopyOnWriteObject 0 1 598 46 upcast from GeomPrimitive to CopyOnWriteObject 68 CopyOnWriteObject *GeomPrimitive::upcast_to_CopyOnWriteObject(void); 2125 25 downcast_to_GeomPrimitive 0 12 3213 44 CopyOnWriteObject::downcast_to_GeomPrimitive 0 0 48 downcast from CopyOnWriteObject to GeomPrimitive 66 GeomPrimitive *CopyOnWriteObject::downcast_to_GeomPrimitive(void); 2126 19 upcast_to_GeomEnums 0 12 3247 34 GeomPrimitive::upcast_to_GeomEnums 0 1 599 38 upcast from GeomPrimitive to GeomEnums 52 GeomEnums *GeomPrimitive::upcast_to_GeomEnums(void); 2127 25 downcast_to_GeomPrimitive 0 12 3173 36 GeomEnums::downcast_to_GeomPrimitive 0 0 40 downcast from GeomEnums to GeomPrimitive 58 GeomPrimitive *GeomEnums::downcast_to_GeomPrimitive(void); 2128 10 operator = 0 4 3247 25 GeomPrimitive::operator = 0 1 521 0 58 void GeomPrimitive::operator =(GeomPrimitive const ©); 2129 14 ~GeomPrimitive 0 6 3247 29 GeomPrimitive::~GeomPrimitive 0 0 10 /** * */ 44 virtual GeomPrimitive::~GeomPrimitive(void); 2130 12 operator new 0 4 3247 27 GeomPrimitive::operator new 0 1 522 0 130 inline void *GeomPrimitive::operator new(std::size_t size); inline void *GeomPrimitive::operator new(std::size_t size, void *ptr); 2131 15 operator delete 0 4 3247 30 GeomPrimitive::operator delete 0 0 0 114 inline void GeomPrimitive::operator delete(void *ptr); inline void GeomPrimitive::operator delete(void *, void *); 2132 12 validate_ptr 0 4 3247 27 GeomPrimitive::validate_ptr 0 0 0 64 static inline bool GeomPrimitive::validate_ptr(void const *ptr); 2133 9 make_copy 0 6 3247 24 GeomPrimitive::make_copy 0 1 523 0 76 virtual PointerTo< GeomPrimitive > GeomPrimitive::make_copy(void) const = 0; 2134 18 get_primitive_type 0 6 3247 33 GeomPrimitive::get_primitive_type 0 1 524 0 83 virtual GeomEnums::PrimitiveType GeomPrimitive::get_primitive_type(void) const = 0; 2135 18 get_geom_rendering 0 6 3247 33 GeomPrimitive::get_geom_rendering 0 1 525 135 /** * Returns the set of GeomRendering bits that represent the rendering * properties required to properly render this primitive. */ 58 virtual int GeomPrimitive::get_geom_rendering(void) const; 2136 15 get_shade_model 0 4 3247 30 GeomPrimitive::get_shade_model 0 1 526 170 /** * Returns the ShadeModel hint for this primitive. This is intended as a hint * to the renderer to tell it how the per-vertex colors and normals are * applied. */ 72 inline GeomEnums::ShadeModel GeomPrimitive::get_shade_model(void) const; 2137 15 set_shade_model 0 4 3247 30 GeomPrimitive::set_shade_model 0 1 527 512 /** * Changes the ShadeModel hint for this primitive. This is different from the * ShadeModelAttrib that might also be applied from the scene graph. This * does not affect the shade model that is in effect when rendering, but * rather serves as a hint to the renderer to tell it how the per-vertex * colors and normals on this primitive are applied. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 78 inline void GeomPrimitive::set_shade_model(GeomEnums::ShadeModel shade_model); 2138 14 get_usage_hint 0 4 3247 29 GeomPrimitive::get_usage_hint 0 1 528 554 /** * Returns the usage hint for this primitive. See geomEnums.h. This has * nothing to do with the usage hint associated with the primitive's vertices; * this only specifies how often the vertex indices that define the primitive * will be modified. * * It is perfectly legal (and, in fact, common) for a GeomPrimitive to have * UH_static on itself, while referencing vertex data with UH_dynamic. This * means that the vertices themselves will be animated, but the primitive will * always reference the same set of vertices from the pool. */ 70 inline GeomEnums::UsageHint GeomPrimitive::get_usage_hint(void) const; 2139 14 set_usage_hint 0 4 3247 29 GeomPrimitive::set_usage_hint 0 1 529 232 /** * Changes the UsageHint hint for this primitive. See get_usage_hint(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 68 void GeomPrimitive::set_usage_hint(GeomEnums::UsageHint usage_hint); 2140 14 get_index_type 0 4 3247 29 GeomPrimitive::get_index_type 0 1 530 114 /** * Returns the numeric type of the index column. Normally, this will be * either NT_uint16 or NT_uint32. */ 72 inline GeomEnums::NumericType GeomPrimitive::get_index_type(void) const; 2141 14 set_index_type 0 4 3247 29 GeomPrimitive::set_index_type 0 1 531 556 /** * Changes the numeric type of the index column. Normally, this should be * either NT_uint16 or NT_uint32. * * The index type must be large enough to include all of the index values in * the primitive. It may be automatically elevated, if necessary, to a larger * index type, by a subsequent call to add_index() that names an index value * that does not fit in the index type you specify. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 70 void GeomPrimitive::set_index_type(GeomEnums::NumericType index_type); 2142 12 is_composite 0 4 3247 27 GeomPrimitive::is_composite 0 1 532 178 /** * Returns true if the primitive is a composite primitive such as a tristrip * or trifan, or false if it is a fundamental primitive such as a collection * of triangles. */ 52 inline bool GeomPrimitive::is_composite(void) const; 2143 10 is_indexed 0 4 3247 25 GeomPrimitive::is_indexed 0 1 533 379 /** * Returns true if the primitive is indexed, false otherwise. An indexed * primitive stores a table of index numbers into its GeomVertexData, so that * it can reference the vertices in any order. A nonindexed primitive, on the * other hand, stores only the first vertex number and number of vertices * used, so that it can only reference the vertices consecutively. */ 50 inline bool GeomPrimitive::is_indexed(void) const; 2144 16 get_first_vertex 0 4 3247 31 GeomPrimitive::get_first_vertex 0 1 534 257 /** * Returns the first vertex number referenced by the primitive. This is * particularly important in the case of a nonindexed primitive, in which case * get_first_vertex() and get_num_vertices() completely define the extent of * the vertex range. */ 55 inline int GeomPrimitive::get_first_vertex(void) const; 2145 16 get_num_vertices 0 4 3247 31 GeomPrimitive::get_num_vertices 0 1 535 83 /** * Returns the number of indices used by all the primitives in this object. */ 55 inline int GeomPrimitive::get_num_vertices(void) const; 2146 10 get_vertex 0 4 3247 25 GeomPrimitive::get_vertex 0 1 536 53 /** * Returns the ith vertex index in the table. */ 50 inline int GeomPrimitive::get_vertex(int i) const; 2147 10 add_vertex 0 4 3247 25 GeomPrimitive::add_vertex 0 1 537 445 /** * Adds the indicated vertex to the list of vertex indices used by the * graphics primitive type. To define a primitive, you must call add_vertex() * for each vertex of the new primitive, and then call close_primitive() after * you have specified the last vertex of each primitive. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 43 void GeomPrimitive::add_vertex(int vertex); 2148 12 add_vertices 0 4 3247 27 GeomPrimitive::add_vertices 0 3 538 539 540 130 /** * Adds several vertices in a row. */ /** * Adds several vertices in a row. */ /** * Adds several vertices in a row. */ 194 inline void GeomPrimitive::add_vertices(int v1, int v2); inline void GeomPrimitive::add_vertices(int v1, int v2, int v3); inline void GeomPrimitive::add_vertices(int v1, int v2, int v3, int v4); 2149 24 add_consecutive_vertices 0 4 3247 39 GeomPrimitive::add_consecutive_vertices 0 1 541 244 /** * Adds a consecutive sequence of vertices, beginning at start, to the * primitive. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 74 void GeomPrimitive::add_consecutive_vertices(int start, int num_vertices); 2150 17 add_next_vertices 0 4 3247 32 GeomPrimitive::add_next_vertices 0 1 542 327 /** * Adds the next n vertices in sequence, beginning from the last vertex added * to the primitive + 1. * * This is most useful when you are building up a primitive and a * GeomVertexData at the same time, and you just want the primitive to * reference the first n vertices from the data, then the next n, and so on. */ 56 void GeomPrimitive::add_next_vertices(int num_vertices); 2151 20 reserve_num_vertices 0 4 3247 35 GeomPrimitive::reserve_num_vertices 0 1 543 813 /** * This ensures that enough memory space for n vertices is allocated, so that * you may increase the number of vertices to n without causing a new memory * allocation. This is a performance optimization only; it is especially * useful when you know ahead of time that you will be adding n vertices to * the primitive. * * Note that the total you specify here should also include implicit vertices * which may be added at each close_primitive() call, according to * get_num_unused_vertices_per_primitive(). * * Note also that making this call will implicitly make the primitive indexed * if it is not already, which could result in a performance *penalty*. If * you would prefer not to lose the nonindexed nature of your existing * GeomPrimitives, check is_indexed() before making this call. */ 59 void GeomPrimitive::reserve_num_vertices(int num_vertices); 2152 15 close_primitive 0 4 3247 30 GeomPrimitive::close_primitive 0 1 544 345 /** * Indicates that the previous n calls to add_vertex(), since the last call to * close_primitive(), have fully defined a new primitive. Returns true if * successful, false otherwise. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 42 bool GeomPrimitive::close_primitive(void); 2153 14 clear_vertices 0 4 3247 29 GeomPrimitive::clear_vertices 0 1 545 250 /** * Removes all of the vertices and primitives from the object, so they can be * re-added. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 41 void GeomPrimitive::clear_vertices(void); 2154 15 offset_vertices 0 4 3247 30 GeomPrimitive::offset_vertices 0 2 546 547 582 /** * Adds the indicated offset to all vertices used by the primitive. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ /** * Adds the indicated offset to the indicated segment of vertices used by the * primitive. Unlike the other version of offset_vertices, this makes the * geometry indexed if it isn't already. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 125 void GeomPrimitive::offset_vertices(int offset); void GeomPrimitive::offset_vertices(int offset, int begin_row, int end_row); 2155 15 make_nonindexed 0 4 3247 30 GeomPrimitive::make_nonindexed 0 1 548 202 /** * Converts the primitive from indexed to nonindexed by duplicating vertices * as necessary into the indicated dest GeomVertexData. Note: does not * support primitives with strip cut indices. */ 88 void GeomPrimitive::make_nonindexed(GeomVertexData *dest, GeomVertexData const *source); 2156 13 pack_vertices 0 4 3247 28 GeomPrimitive::pack_vertices 0 1 549 135 /** * Packs the vertices used by the primitive from the indicated source array * onto the end of the indicated destination array. */ 86 void GeomPrimitive::pack_vertices(GeomVertexData *dest, GeomVertexData const *source); 2157 12 make_indexed 0 4 3247 27 GeomPrimitive::make_indexed 0 1 550 466 /** * Converts the primitive from nonindexed form to indexed form. This will * simply create an index table that is numbered consecutively from * get_first_vertex(); it does not automatically collapse together identical * vertices that may have been split apart by a previous call to * make_nonindexed(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 39 void GeomPrimitive::make_indexed(void); 2158 18 get_num_primitives 0 4 3247 33 GeomPrimitive::get_num_primitives 0 1 551 119 /** * Returns the number of individual primitives stored within this object. All * primitives are the same type. */ 57 inline int GeomPrimitive::get_num_primitives(void) const; 2159 19 get_primitive_start 0 4 3247 34 GeomPrimitive::get_primitive_start 0 1 552 457 /** * Returns the element within the _vertices list at which the nth primitive * starts. * * If i is one more than the highest valid primitive vertex, the return value * will be one more than the last valid vertex. Thus, it is generally true * that the vertices used by a particular primitive i are the set * get_primitive_start(n) <= vi < get_primitive_start(n + 1) (although this * range also includes the unused vertices between primitives). */ 52 int GeomPrimitive::get_primitive_start(int n) const; 2160 17 get_primitive_end 0 4 3247 32 GeomPrimitive::get_primitive_end 0 1 553 156 /** * Returns the element within the _vertices list at which the nth primitive * ends. This is one past the last valid element for the nth primitive. */ 50 int GeomPrimitive::get_primitive_end(int n) const; 2161 26 get_primitive_num_vertices 0 4 3247 41 GeomPrimitive::get_primitive_num_vertices 0 1 554 145 /** * Returns the number of vertices used by the nth primitive. This is the same * thing as get_primitive_end(n) - get_primitive_start(n). */ 59 int GeomPrimitive::get_primitive_num_vertices(int n) const; 2162 21 get_num_used_vertices 0 4 3247 36 GeomPrimitive::get_num_used_vertices 0 1 555 278 /** * Returns the number of vertices used by all of the primitives. This is the * same as summing get_primitive_num_vertices(n) for n in * get_num_primitives(). It is like get_num_vertices except that it excludes * all of the degenerate vertices and strip-cut indices. */ 53 int GeomPrimitive::get_num_used_vertices(void) const; 2163 13 get_num_faces 0 4 3247 28 GeomPrimitive::get_num_faces 0 1 556 145 /** * Returns the number of triangles or other fundamental type (such as line * segments) represented by all the primitives in this object. */ 52 inline int GeomPrimitive::get_num_faces(void) const; 2164 23 get_primitive_num_faces 0 4 3247 38 GeomPrimitive::get_primitive_num_faces 0 1 557 144 /** * Returns the number of triangles or other fundamental type (such as line * segments) represented by the nth primitive in this object. */ 63 inline int GeomPrimitive::get_primitive_num_faces(int n) const; 2165 14 get_min_vertex 0 4 3247 29 GeomPrimitive::get_min_vertex 0 1 558 96 /** * Returns the minimum vertex index number used by all the primitives in this * object. */ 53 inline int GeomPrimitive::get_min_vertex(void) const; 2166 24 get_primitive_min_vertex 0 4 3247 39 GeomPrimitive::get_primitive_min_vertex 0 1 559 95 /** * Returns the minimum vertex index number used by the nth primitive in this * object. */ 57 int GeomPrimitive::get_primitive_min_vertex(int n) const; 2167 14 get_max_vertex 0 4 3247 29 GeomPrimitive::get_max_vertex 0 1 560 96 /** * Returns the maximum vertex index number used by all the primitives in this * object. */ 53 inline int GeomPrimitive::get_max_vertex(void) const; 2168 24 get_primitive_max_vertex 0 4 3247 39 GeomPrimitive::get_primitive_max_vertex 0 1 561 95 /** * Returns the maximum vertex index number used by the nth primitive in this * object. */ 57 int GeomPrimitive::get_primitive_max_vertex(int n) const; 2169 9 decompose 0 4 3247 24 GeomPrimitive::decompose 0 1 562 464 /** * Decomposes a complex primitive type into a simpler primitive type, for * instance triangle strips to triangles, and returns a pointer to the new * primitive definition. If the decomposition cannot be performed, this might * return the original object. * * This method is useful for application code that wants to iterate through * the set of triangles on the primitive without having to write handlers for * each possible kind of primitive type. */ 69 ConstPointerTo< GeomPrimitive > GeomPrimitive::decompose(void) const; 2170 6 rotate 0 4 3247 21 GeomPrimitive::rotate 0 1 563 408 /** * Returns a new primitive with the shade_model reversed (if it is flat * shaded), if possible. If the primitive type cannot be rotated, returns the * original primitive, unrotated. * * If the current shade_model indicates flat_vertex_last, this should bring * the last vertex to the first position; if it indicates flat_vertex_first, * this should bring the first vertex to the last position. */ 66 ConstPointerTo< GeomPrimitive > GeomPrimitive::rotate(void) const; 2171 10 doubleside 0 4 3247 25 GeomPrimitive::doubleside 0 1 564 493 /** * Duplicates triangles in the primitive so that each triangle is back-to-back * with another triangle facing in the opposite direction. Note that this * doesn't affect vertex normals, so this operation alone won't work in the * presence of lighting (but see SceneGraphReducer::doubleside()). * * Also see CullFaceAttrib, which can enable rendering of both sides of a * triangle without having to duplicate it (but which doesn't necessarily work * in the presence of lighting). */ 70 ConstPointerTo< GeomPrimitive > GeomPrimitive::doubleside(void) const; 2172 7 reverse 0 4 3247 22 GeomPrimitive::reverse 0 1 565 477 /** * Reverses the winding order in the primitive so that each triangle is facing * in the opposite direction it was originally. Note that this doesn't affect * vertex normals, so this operation alone won't work in the presence of * lighting (but see SceneGraphReducer::reverse()). * * Also see CullFaceAttrib, which can change the visible direction of a * triangle without having to duplicate it (but which doesn't necessarily work * in the presence of lighting). */ 67 ConstPointerTo< GeomPrimitive > GeomPrimitive::reverse(void) const; 2173 17 match_shade_model 0 4 3247 32 GeomPrimitive::match_shade_model 0 1 566 346 /** * Returns a new primitive that is compatible with the indicated shade model, * if possible, or NULL if this is not possible. * * In most cases, this will return either NULL or the original primitive. In * the case of a SM_flat_first_vertex vs. a SM_flat_last_vertex (or vice- * versa), however, it will return a rotated primitive. */ 106 ConstPointerTo< GeomPrimitive > GeomPrimitive::match_shade_model(GeomEnums::ShadeModel shade_model) const; 2174 11 make_points 0 4 3247 26 GeomPrimitive::make_points 0 1 567 245 /** * Returns a new GeomPoints primitive that represents each of the vertices in * the original primitive, rendered exactly once. If the original primitive * is already a GeomPoints primitive, returns the original primitive * unchanged. */ 71 ConstPointerTo< GeomPrimitive > GeomPrimitive::make_points(void) const; 2175 10 make_lines 0 4 3247 25 GeomPrimitive::make_lines 0 1 568 233 /** * Returns a new GeomLines primitive that represents each of the edges in the * original primitive rendered as a line. If the original primitive is * already a GeomLines primitive, returns the original primitive unchanged. */ 70 ConstPointerTo< GeomPrimitive > GeomPrimitive::make_lines(void) const; 2176 12 make_patches 0 4 3247 27 GeomPrimitive::make_patches 0 1 569 418 /** * Decomposes a complex primitive type into a simpler primitive type, for * instance triangle strips to triangles, puts these in a new GeomPatches * object and returns a pointer to the new primitive definition. If the * decomposition cannot be performed, this might return the original object. * * This method is useful for application code that wants to use tesselation * shaders on arbitrary geometry. */ 72 ConstPointerTo< GeomPrimitive > GeomPrimitive::make_patches(void) const; 2177 14 make_adjacency 0 6 3247 29 GeomPrimitive::make_adjacency 0 1 570 161 /** * Adds adjacency information to this primitive. May return null if this type * of geometry does not support adjacency information. * * @since 1.10.0 */ 82 virtual ConstPointerTo< GeomPrimitive > GeomPrimitive::make_adjacency(void) const; 2178 13 get_num_bytes 0 4 3247 28 GeomPrimitive::get_num_bytes 0 1 571 91 /** * Returns the number of bytes consumed by the primitive and its index * table(s). */ 45 int GeomPrimitive::get_num_bytes(void) const; 2179 19 get_data_size_bytes 0 4 3247 34 GeomPrimitive::get_data_size_bytes 0 1 572 68 /** * Returns the number of bytes stored in the vertices array. */ 58 inline int GeomPrimitive::get_data_size_bytes(void) const; 2180 12 get_modified 0 4 3247 27 GeomPrimitive::get_modified 0 1 573 125 /** * Returns a sequence number which is guaranteed to change at least every time * the vertex index array is modified. */ 57 inline UpdateSeq GeomPrimitive::get_modified(void) const; 2181 16 request_resident 0 4 3247 31 GeomPrimitive::request_resident 0 1 574 186 /** * Returns true if the primitive data is currently resident in memory. If * this returns false, the primitive data will be brought back into memory * shortly; try again later. */ 98 bool GeomPrimitive::request_resident(Thread *current_thread = Thread::get_current_thread()) const; 2182 11 check_valid 0 4 3247 26 GeomPrimitive::check_valid 0 2 575 576 207 /** * Verifies that the primitive only references vertices that actually exist * within the indicated GeomVertexData. Returns true if the primitive appears * to be valid, false otherwise. */ /** * */ 175 inline bool GeomPrimitive::check_valid(GeomVertexData const *vertex_data) const; inline bool GeomPrimitive::check_valid(GeomVertexDataPipelineReader const *data_reader) const; 2183 6 output 0 6 3247 21 GeomPrimitive::output 0 1 577 10 /** * */ 60 virtual void GeomPrimitive::output(std::ostream &out) const; 2184 5 write 0 6 3247 20 GeomPrimitive::write 0 1 578 10 /** * */ 77 virtual void GeomPrimitive::write(std::ostream &out, int indent_level) const; 2185 12 get_vertices 0 4 3247 27 GeomPrimitive::get_vertices 0 1 579 479 /** * Returns a const pointer to the vertex index array so application code can * read it directly. This might return NULL if the primitive is nonindexed. * Do not attempt to modify the returned array; use modify_vertices() or * set_vertices() for this. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 85 inline ConstPointerTo< GeomVertexArrayData > GeomPrimitive::get_vertices(void) const; 2186 19 get_vertices_handle 0 4 3247 34 GeomPrimitive::get_vertices_handle 0 1 580 53 /** * Equivalent to get_vertices().get_handle(). */ 116 inline ConstPointerTo< GeomVertexArrayDataHandle > GeomPrimitive::get_vertices_handle(Thread *current_thread) const; 2187 15 modify_vertices 0 4 3247 30 GeomPrimitive::modify_vertices 0 1 581 869 /** * Returns a modifiable pointer to the vertex index list, so application code * can directly fiddle with this data. Use with caution, since there are no * checks that the data will be left in a stable state. * * If this is called on a nonindexed primitive, it will implicitly be * converted to an indexed primitive. * * If num_vertices is not -1, it specifies an artificial limit to the number * of vertices in the array. Otherwise, all of the vertices in the array will * be used. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 87 PointerTo< GeomVertexArrayData > GeomPrimitive::modify_vertices(int num_vertices = -1); 2188 22 modify_vertices_handle 0 4 3247 37 GeomPrimitive::modify_vertices_handle 0 1 582 56 /** * Equivalent to modify_vertices().get_handle(). */ 108 inline PointerTo< GeomVertexArrayDataHandle > GeomPrimitive::modify_vertices_handle(Thread *current_thread); 2189 12 set_vertices 0 4 3247 27 GeomPrimitive::set_vertices 0 1 583 711 /** * Completely replaces the vertex index list with a new table. Chances are * good that you should also replace the ends list with set_ends() at the same * time. * * If num_vertices is not -1, it specifies an artificial limit to the number * of vertices in the array. Otherwise, all of the vertices in the array will * be used. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 93 void GeomPrimitive::set_vertices(GeomVertexArrayData const *vertices, int num_vertices = -1); 2190 23 set_nonindexed_vertices 0 4 3247 38 GeomPrimitive::set_nonindexed_vertices 0 1 584 465 /** * Sets the primitive up as a nonindexed primitive, using the indicated vertex * range. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 80 void GeomPrimitive::set_nonindexed_vertices(int first_vertex, int num_vertices); 2191 16 get_index_stride 0 4 3247 31 GeomPrimitive::get_index_stride 0 1 585 334 /** * A convenience function to return the gap between successive index numbers, * in bytes, of the index data. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 55 inline int GeomPrimitive::get_index_stride(void) const; 2192 19 get_strip_cut_index 0 4 3247 34 GeomPrimitive::get_strip_cut_index 0 1 586 454 /** * If relevant, returns the index value that may be used in some cases to * signify the end of a primitive. This is typically the highest value that * the numeric type can store. */ /** * Returns the index of the indicated type that is reserved for use as a strip * cut index, if enabled for the primitive. When the renderer encounters this * index, it will restart the primitive. This is guaranteed not to point to * an actual vertex. */ 58 inline int GeomPrimitive::get_strip_cut_index(void) const; 2193 8 get_ends 0 4 3247 23 GeomPrimitive::get_ends 0 1 587 580 /** * Returns a const pointer to the primitive ends array so application code can * read it directly. Do not attempt to modify the returned array; use * modify_ends() or set_ends() for this. * * Note that simple primitive types, like triangles, do not have a ends array: * since all the primitives have the same number of vertices, it is not * needed. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 52 inline CPTA_int GeomPrimitive::get_ends(void) const; 2194 11 modify_ends 0 4 3247 26 GeomPrimitive::modify_ends 0 1 588 755 /** * Returns a modifiable pointer to the primitive ends array, so application * code can directly fiddle with this data. Use with caution, since there are * no checks that the data will be left in a stable state. * * Note that simple primitive types, like triangles, do not have a ends array: * since all the primitives have the same number of vertices, it is not * needed. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 41 PTA_int GeomPrimitive::modify_ends(void); 2195 8 set_ends 0 4 3247 23 GeomPrimitive::set_ends 0 1 589 716 /** * Completely replaces the primitive ends array with a new table. Chances are * good that you should also replace the vertices list with set_vertices() at * the same time. * * Note that simple primitive types, like triangles, do not have a ends array: * since all the primitives have the same number of vertices, it is not * needed. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 43 void GeomPrimitive::set_ends(PTA_int ends); 2196 8 get_mins 0 4 3247 23 GeomPrimitive::get_mins 0 1 590 482 /** * Returns a const pointer to the primitive mins array so application code can * read it directly. Do not attempt to modify the returned array; use * set_minmax() for this. * * Note that simple primitive types, like triangles, do not have a mins array. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 81 inline ConstPointerTo< GeomVertexArrayData > GeomPrimitive::get_mins(void) const; 2197 8 get_maxs 0 4 3247 23 GeomPrimitive::get_maxs 0 1 591 473 /** * Returns a const pointer to the primitive maxs array so application code can * read it directly. Do not attempt to modify the returned array; use * set_minmax(). * * Note that simple primitive types, like triangles, do not have a maxs array. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 81 inline ConstPointerTo< GeomVertexArrayData > GeomPrimitive::get_maxs(void) const; 2198 10 set_minmax 0 4 3247 25 GeomPrimitive::set_minmax 0 1 592 687 /** * Explicitly specifies the minimum and maximum vertices, as well as the lists * of per-component min and max. * * Use this method with extreme caution. It's generally better to let the * GeomPrimitive compute these explicitly, unless for some reason you can do * it faster and you absolutely need the speed improvement. * * Note that any modification to the vertex array will normally cause this to * be recomputed, unless you set it immediately again. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 117 void GeomPrimitive::set_minmax(int min_vertex, int max_vertex, GeomVertexArrayData *mins, GeomVertexArrayData *maxs); 2199 12 clear_minmax 0 4 3247 27 GeomPrimitive::clear_minmax 0 1 593 339 /** * Undoes a previous call to set_minmax(), and allows the minimum and maximum * values to be recomputed normally. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 39 void GeomPrimitive::clear_minmax(void); 2200 30 get_num_vertices_per_primitive 0 6 3247 45 GeomPrimitive::get_num_vertices_per_primitive 0 1 594 558 /** * If the primitive type is a simple type in which all primitives have the * same number of vertices, like triangles, returns the number of vertices per * primitive. If the primitive type is a more complex type in which different * primitives might have different numbers of vertices, for instance a * triangle strip, returns 0. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 70 virtual int GeomPrimitive::get_num_vertices_per_primitive(void) const; 2201 34 get_min_num_vertices_per_primitive 0 6 3247 49 GeomPrimitive::get_min_num_vertices_per_primitive 0 1 595 336 /** * Returns the minimum number of vertices that must be added before * close_primitive() may legally be called. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 74 virtual int GeomPrimitive::get_min_num_vertices_per_primitive(void) const; 2202 37 get_num_unused_vertices_per_primitive 0 6 3247 52 GeomPrimitive::get_num_unused_vertices_per_primitive 0 1 596 479 /** * Returns the number of vertices that are added between primitives that * aren't, strictly speaking, part of the primitives themselves. This is * used, for instance, to define degenerate triangles to connect otherwise * disconnected triangle strips. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 77 virtual int GeomPrimitive::get_num_unused_vertices_per_primitive(void) const; 2203 14 get_class_type 0 4 3247 29 GeomPrimitive::get_class_type 0 1 597 0 54 static TypeHandle GeomPrimitive::get_class_type(void); 2204 12 TextureStage 0 4 3248 26 TextureStage::TextureStage 0 2 600 601 107 /** * Initialize the texture stage from other */ /** * Initialize the texture stage at construction */ 122 explicit TextureStage::TextureStage(std::string const &name); inline TextureStage::TextureStage(TextureStage const ©); 2205 10 operator = 0 4 3248 24 TextureStage::operator = 0 1 602 0 56 void TextureStage::operator =(TextureStage const ©); 2206 8 set_name 0 4 3248 22 TextureStage::set_name 0 1 603 49 /** * Changes the name of this texture stage */ 60 inline void TextureStage::set_name(std::string const &name); 2207 8 get_name 0 4 3248 22 TextureStage::get_name 0 1 604 49 /** * Returns the name of this texture stage */ 61 inline std::string const &TextureStage::get_name(void) const; 2208 8 set_sort 0 4 3248 22 TextureStage::set_sort 0 1 605 439 /** * Changes the order in which the texture associated with this stage is * rendered relative to the other texture stages. When geometry is rendered * with multiple textures, the textures are rendered in order from the lowest * sort number to the highest sort number. * * Also see set_priority(), which is used to select the most important * textures for rendering when some must be omitted because of hardware * limitations. */ 45 inline void TextureStage::set_sort(int sort); 2209 8 get_sort 0 4 3248 22 TextureStage::get_sort 0 1 606 56 /** * Returns the sort order of this texture stage. */ 46 inline int TextureStage::get_sort(void) const; 2210 12 set_priority 0 4 3248 26 TextureStage::set_priority 0 1 607 555 /** * Changes the relative importance of the texture associated with this stage * relative to the other texture stages that are applied simultaneously. * * This is unrelated to set_sort(), which controls the order in which multiple * textures are applied. The priority number is used to decide which of the * requested textures are to be selected for rendering when more textures are * requested than the hardware will support. The highest-priority n textures * are selected for rendering, and then rendered in order by their sort * factor. */ 53 inline void TextureStage::set_priority(int priority); 2211 12 get_priority 0 4 3248 26 TextureStage::get_priority 0 1 608 163 /** * Returns the priority associated with this stage. * * This is specially helpful for cards that do not support more than n stages * of multi-texturing. */ 50 inline int TextureStage::get_priority(void) const; 2212 17 set_texcoord_name 0 4 3248 31 TextureStage::set_texcoord_name 0 2 609 610 324 /** * Indicate which set of UV's this texture stage will use. Geometry may have * any number of associated UV sets, each of which must have a unique name. */ /** * Indicate which set of UV's this texture stage will use. Geometry may have * any number of associated UV sets, each of which must have a unique name. */ 143 inline void TextureStage::set_texcoord_name(InternalName *name); inline void TextureStage::set_texcoord_name(std::string const &texcoord_name); 2213 17 get_texcoord_name 0 4 3248 31 TextureStage::get_texcoord_name 0 1 611 79 /** * See set_texcoord_name. The default is InternalName::get_texcoord(). */ 65 inline InternalName *TextureStage::get_texcoord_name(void) const; 2214 16 get_tangent_name 0 4 3248 30 TextureStage::get_tangent_name 0 1 612 153 /** * Returns the set of tangents this texture stage will use. This is the same * as get_texcoord_name(), except that the first part is "tangent". */ 64 inline InternalName *TextureStage::get_tangent_name(void) const; 2215 17 get_binormal_name 0 4 3248 31 TextureStage::get_binormal_name 0 1 613 155 /** * Returns the set of binormals this texture stage will use. This is the same * as get_binormal_name(), except that the first part is "binormal". */ 65 inline InternalName *TextureStage::get_binormal_name(void) const; 2216 8 set_mode 0 4 3248 22 TextureStage::set_mode 0 1 614 45 /** * Set the mode of this texture stage */ 60 inline void TextureStage::set_mode(TextureStage::Mode mode); 2217 8 get_mode 0 4 3248 22 TextureStage::get_mode 0 1 615 40 /** * Return the mode of this stage */ 61 inline TextureStage::Mode TextureStage::get_mode(void) const; 2218 17 is_fixed_function 0 4 3248 31 TextureStage::is_fixed_function 0 1 616 168 /** * Returns true if the TextureStage is relevant to the classic fixed function * pipeline. This excludes texture stages such as normal mapping and the * like. */ 56 inline bool TextureStage::is_fixed_function(void) const; 2219 9 set_color 0 4 3248 23 TextureStage::set_color 0 1 617 39 /** * Set the color for this stage */ 57 inline void TextureStage::set_color(LColor const &color); 2220 9 get_color 0 4 3248 23 TextureStage::get_color 0 1 618 42 /** * return the color for this stage */ 50 inline LColor TextureStage::get_color(void) const; 2221 13 set_rgb_scale 0 4 3248 27 TextureStage::set_rgb_scale 0 1 619 215 /** * Sets an additional factor that will scale all three r, g, b components * after the texture has been applied. This is used only when the mode is * CM_combine. * * The only legal values are 1, 2, or 4. */ 55 inline void TextureStage::set_rgb_scale(int rgb_scale); 2222 13 get_rgb_scale 0 4 3248 27 TextureStage::get_rgb_scale 0 1 620 31 /** * See set_rgb_scale(). */ 51 inline int TextureStage::get_rgb_scale(void) const; 2223 15 set_alpha_scale 0 4 3248 29 TextureStage::set_alpha_scale 0 1 621 203 /** * Sets an additional factor that will scale the alpha component after the * texture has been applied. This is used only when the mode is CM_combine. * * The only legal values are 1, 2, or 4. */ 59 inline void TextureStage::set_alpha_scale(int alpha_scale); 2224 15 get_alpha_scale 0 4 3248 29 TextureStage::get_alpha_scale 0 1 622 33 /** * See set_alpha_scale(). */ 53 inline int TextureStage::get_alpha_scale(void) const; 2225 16 set_saved_result 0 4 3248 30 TextureStage::set_saved_result 0 1 623 471 /** * Sets the saved_result flag. When this is true, the output of this stage * will be supplied as the "last_saved_result" source for any future stages, * until the next TextureStage with a saved_result set true is encountered. * * This can be used to reuse the results of this texture stage as input to * more than one stage later in the pipeline. * * The last texture in the pipeline (the one with the highest sort value) * should not have this flag set. */ 62 inline void TextureStage::set_saved_result(bool saved_result); 2226 16 get_saved_result 0 4 3248 30 TextureStage::get_saved_result 0 1 624 92 /** * Returns the current setting of the saved_result flag. See * set_saved_result(). */ 55 inline bool TextureStage::get_saved_result(void) const; 2227 19 set_tex_view_offset 0 4 3248 33 TextureStage::set_tex_view_offset 0 1 625 342 /** * Sets the tex_view_offset value. This is used only when a special multiview * texture is bound to the TextureStage, and it selects the particular view of * the texture that is to be used. * * This value is added to the similar parameter on DisplayRegion to derive the * final texture view index that is selected for rendering. */ 67 inline void TextureStage::set_tex_view_offset(int tex_view_offset); 2228 19 get_tex_view_offset 0 4 3248 33 TextureStage::get_tex_view_offset 0 1 626 93 /** * Returns the current setting of the tex_view_offset. See * set_tex_view_offset(). */ 57 inline int TextureStage::get_tex_view_offset(void) const; 2229 15 set_combine_rgb 0 4 3248 29 TextureStage::set_combine_rgb 0 3 627 628 629 452 /** * Specifies any of the CombineMode values that represent a one-parameter * operation. Specifically, this is CM_replace only. */ /** * Specifies any of the CombineMode values that represent a two-parameter * operation. Specifically, this is everything except for CM_replace and * CM_interpolate. */ /** * Specifies any of the CombineMode values that represent a one-parameter * operation. Specifically, this is CM_interpolate only. */ 680 inline void TextureStage::set_combine_rgb(TextureStage::CombineMode mode, TextureStage::CombineSource source0, TextureStage::CombineOperand operand0); inline void TextureStage::set_combine_rgb(TextureStage::CombineMode mode, TextureStage::CombineSource source0, TextureStage::CombineOperand operand0, TextureStage::CombineSource source1, TextureStage::CombineOperand operand1); inline void TextureStage::set_combine_rgb(TextureStage::CombineMode mode, TextureStage::CombineSource source0, TextureStage::CombineOperand operand0, TextureStage::CombineSource source1, TextureStage::CombineOperand operand1, TextureStage::CombineSource source2, TextureStage::CombineOperand operand2); 2230 20 get_combine_rgb_mode 0 4 3248 34 TextureStage::get_combine_rgb_mode 0 1 630 35 /** * Get the combine_rgb_mode */ 80 inline TextureStage::CombineMode TextureStage::get_combine_rgb_mode(void) const; 2231 28 get_num_combine_rgb_operands 0 4 3248 42 TextureStage::get_num_combine_rgb_operands 0 1 631 139 /** * Returns the number of meaningful operands that may be retrieved via * get_combine_rgb_sourceN() and get_combine_rgb_operandN(). */ 66 inline int TextureStage::get_num_combine_rgb_operands(void) const; 2232 23 get_combine_rgb_source0 0 4 3248 37 TextureStage::get_combine_rgb_source0 0 1 632 42 /** * Get source0 of combine_rgb_mode */ 85 inline TextureStage::CombineSource TextureStage::get_combine_rgb_source0(void) const; 2233 24 get_combine_rgb_operand0 0 4 3248 38 TextureStage::get_combine_rgb_operand0 0 1 633 43 /** * Get operand0 of combine_rgb_mode */ 87 inline TextureStage::CombineOperand TextureStage::get_combine_rgb_operand0(void) const; 2234 23 get_combine_rgb_source1 0 4 3248 37 TextureStage::get_combine_rgb_source1 0 1 634 42 /** * Get source1 of combine_rgb_mode */ 85 inline TextureStage::CombineSource TextureStage::get_combine_rgb_source1(void) const; 2235 24 get_combine_rgb_operand1 0 4 3248 38 TextureStage::get_combine_rgb_operand1 0 1 635 43 /** * Get operand1 of combine_rgb_mode */ 87 inline TextureStage::CombineOperand TextureStage::get_combine_rgb_operand1(void) const; 2236 23 get_combine_rgb_source2 0 4 3248 37 TextureStage::get_combine_rgb_source2 0 1 636 42 /** * Get source2 of combine_rgb_mode */ 85 inline TextureStage::CombineSource TextureStage::get_combine_rgb_source2(void) const; 2237 24 get_combine_rgb_operand2 0 4 3248 38 TextureStage::get_combine_rgb_operand2 0 1 637 43 /** * Get operand2 of combine_rgb_mode */ 87 inline TextureStage::CombineOperand TextureStage::get_combine_rgb_operand2(void) const; 2238 17 set_combine_alpha 0 4 3248 31 TextureStage::set_combine_alpha 0 3 638 639 640 452 /** * Specifies any of the CombineMode values that represent a one-parameter * operation. Specifically, this is CM_replace only. */ /** * Specifies any of the CombineMode values that represent a two-parameter * operation. Specifically, this is everything except for CM_replace and * CM_interpolate. */ /** * Specifies any of the CombineMode values that represent a one-parameter * operation. Specifically, this is CM_interpolate only. */ 686 inline void TextureStage::set_combine_alpha(TextureStage::CombineMode mode, TextureStage::CombineSource source0, TextureStage::CombineOperand operand0); inline void TextureStage::set_combine_alpha(TextureStage::CombineMode mode, TextureStage::CombineSource source0, TextureStage::CombineOperand operand0, TextureStage::CombineSource source1, TextureStage::CombineOperand operand1); inline void TextureStage::set_combine_alpha(TextureStage::CombineMode mode, TextureStage::CombineSource source0, TextureStage::CombineOperand operand0, TextureStage::CombineSource source1, TextureStage::CombineOperand operand1, TextureStage::CombineSource source2, TextureStage::CombineOperand operand2); 2239 22 get_combine_alpha_mode 0 4 3248 36 TextureStage::get_combine_alpha_mode 0 1 641 33 /** * Get combine_alpha_mode */ 82 inline TextureStage::CombineMode TextureStage::get_combine_alpha_mode(void) const; 2240 30 get_num_combine_alpha_operands 0 4 3248 44 TextureStage::get_num_combine_alpha_operands 0 1 642 143 /** * Returns the number of meaningful operands that may be retrieved via * get_combine_alpha_sourceN() and get_combine_alpha_operandN(). */ 68 inline int TextureStage::get_num_combine_alpha_operands(void) const; 2241 25 get_combine_alpha_source0 0 4 3248 39 TextureStage::get_combine_alpha_source0 0 1 643 44 /** * Get source0 of combine_alpha_mode */ 87 inline TextureStage::CombineSource TextureStage::get_combine_alpha_source0(void) const; 2242 26 get_combine_alpha_operand0 0 4 3248 40 TextureStage::get_combine_alpha_operand0 0 1 644 45 /** * Get operand0 of combine_alpha_mode */ 89 inline TextureStage::CombineOperand TextureStage::get_combine_alpha_operand0(void) const; 2243 25 get_combine_alpha_source1 0 4 3248 39 TextureStage::get_combine_alpha_source1 0 1 645 44 /** * Get source1 of combine_alpha_mode */ 87 inline TextureStage::CombineSource TextureStage::get_combine_alpha_source1(void) const; 2244 26 get_combine_alpha_operand1 0 4 3248 40 TextureStage::get_combine_alpha_operand1 0 1 646 45 /** * Get operand1 of combine_alpha_mode */ 89 inline TextureStage::CombineOperand TextureStage::get_combine_alpha_operand1(void) const; 2245 25 get_combine_alpha_source2 0 4 3248 39 TextureStage::get_combine_alpha_source2 0 1 647 44 /** * Get source2 of combine_alpha_mode */ 87 inline TextureStage::CombineSource TextureStage::get_combine_alpha_source2(void) const; 2246 26 get_combine_alpha_operand2 0 4 3248 40 TextureStage::get_combine_alpha_operand2 0 1 648 45 /** * Get operand2 of combine_alpha_mode */ 89 inline TextureStage::CombineOperand TextureStage::get_combine_alpha_operand2(void) const; 2247 20 involves_color_scale 0 4 3248 34 TextureStage::involves_color_scale 0 1 649 123 /** * Returns true if the TextureStage is affected by the setting of the current * ColorScaleAttrib, false otherwise. */ 59 inline bool TextureStage::involves_color_scale(void) const; 2248 10 uses_color 0 4 3248 24 TextureStage::uses_color 0 1 650 120 /** * Returns true if the TextureStage makes use of whatever color is specified * in set_color(), false otherwise. */ 49 inline bool TextureStage::uses_color(void) const; 2249 18 uses_primary_color 0 4 3248 32 TextureStage::uses_primary_color 0 1 651 96 /** * Returns true if the TextureStage makes use of the CS_primary_color combine * source. */ 57 inline bool TextureStage::uses_primary_color(void) const; 2250 22 uses_last_saved_result 0 4 3248 36 TextureStage::uses_last_saved_result 0 1 652 96 /** * Returns true if the TextureStage makes use of the CS_primary_color combine * source. */ 61 inline bool TextureStage::uses_last_saved_result(void) const; 2251 11 operator == 0 4 3248 25 TextureStage::operator == 0 1 653 0 71 inline bool TextureStage::operator ==(TextureStage const &other) const; 2252 11 operator != 0 4 3248 25 TextureStage::operator != 0 1 654 0 71 inline bool TextureStage::operator !=(TextureStage const &other) const; 2253 10 operator < 0 4 3248 24 TextureStage::operator < 0 1 655 0 70 inline bool TextureStage::operator <(TextureStage const &other) const; 2254 10 compare_to 0 4 3248 24 TextureStage::compare_to 0 1 656 267 /** * Returns a number less than zero if this TextureStage sorts before the other * one, greater than zero if it sorts after, or zero if they are equivalent. * The sorting order is arbitrary and largely meaningless, except to * differentiate different stages. */ 62 int TextureStage::compare_to(TextureStage const &other) const; 2255 5 write 0 4 3248 19 TextureStage::write 0 1 657 43 /** * Writes the details of this stage */ 50 void TextureStage::write(std::ostream &out) const; 2256 6 output 0 4 3248 20 TextureStage::output 0 1 658 36 /** * Just a single line output */ 51 void TextureStage::output(std::ostream &out) const; 2257 11 get_default 0 4 3248 25 TextureStage::get_default 0 1 659 180 /** * Returns the default TextureStage that will be used for all texturing that * does not name a particular stage. This generally handles the normal * single-texture case. */ 60 static inline TextureStage *TextureStage::get_default(void); 2258 14 get_class_type 0 4 3248 28 TextureStage::get_class_type 0 1 660 0 53 static TypeHandle TextureStage::get_class_type(void); 2259 27 upcast_to_CopyOnWriteObject 0 12 3257 33 Geom::upcast_to_CopyOnWriteObject 0 1 727 37 upcast from Geom to CopyOnWriteObject 59 CopyOnWriteObject *Geom::upcast_to_CopyOnWriteObject(void); 2260 16 downcast_to_Geom 0 12 3213 35 CopyOnWriteObject::downcast_to_Geom 0 0 39 downcast from CopyOnWriteObject to Geom 48 Geom *CopyOnWriteObject::downcast_to_Geom(void); 2261 19 upcast_to_GeomEnums 0 12 3257 25 Geom::upcast_to_GeomEnums 0 1 728 29 upcast from Geom to GeomEnums 43 GeomEnums *Geom::upcast_to_GeomEnums(void); 2262 16 downcast_to_Geom 0 12 3173 27 GeomEnums::downcast_to_Geom 0 0 31 downcast from GeomEnums to Geom 40 Geom *GeomEnums::downcast_to_Geom(void); 2263 4 Geom 0 4 3257 10 Geom::Geom 0 1 661 59 /** * */ /** * Use make_copy() to duplicate a Geom. */ 48 explicit Geom::Geom(GeomVertexData const *data); 2264 10 operator = 0 4 3257 16 Geom::operator = 0 1 662 0 40 void Geom::operator =(Geom const ©); 2265 5 ~Geom 0 6 3257 11 Geom::~Geom 0 0 10 /** * */ 26 virtual Geom::~Geom(void); 2266 12 operator new 0 4 3257 18 Geom::operator new 0 1 663 0 112 inline void *Geom::operator new(std::size_t size); inline void *Geom::operator new(std::size_t size, void *ptr); 2267 15 operator delete 0 4 3257 21 Geom::operator delete 0 0 0 96 inline void Geom::operator delete(void *ptr); inline void Geom::operator delete(void *, void *); 2268 12 validate_ptr 0 4 3257 18 Geom::validate_ptr 0 0 0 55 static inline bool Geom::validate_ptr(void const *ptr); 2269 9 make_copy 0 6 3257 15 Geom::make_copy 0 1 664 200 /** * Returns a newly-allocated Geom that is a shallow copy of this one. It will * be a different Geom pointer, but its internal data may or may not be shared * with that of the original Geom. */ 42 virtual Geom *Geom::make_copy(void) const; 2270 18 get_primitive_type 0 4 3257 24 Geom::get_primitive_type 0 1 665 361 /** * Returns the fundamental primitive type that is common to all GeomPrimitives * added within the Geom. All nested primitives within a particular Geom must * be the same type (that is, you can mix triangles and tristrips, because * they are both the same fundamental type PT_polygons, but you cannot mix * triangles and points withn the same Geom). */ 69 inline GeomEnums::PrimitiveType Geom::get_primitive_type(void) const; 2271 15 get_shade_model 0 4 3257 21 Geom::get_shade_model 0 1 666 118 /** * Returns the shade model common to all of the individual GeomPrimitives that * have been added to the geom. */ 63 inline GeomEnums::ShadeModel Geom::get_shade_model(void) const; 2272 18 get_geom_rendering 0 4 3257 24 Geom::get_geom_rendering 0 1 667 130 /** * Returns the set of GeomRendering bits that represent the rendering * properties required to properly render this Geom. */ 48 inline int Geom::get_geom_rendering(void) const; 2273 14 get_usage_hint 0 4 3257 20 Geom::get_usage_hint 0 1 668 189 /** * Returns the minimum (i.e. most dynamic) usage_hint among all of the * individual GeomPrimitives that have been added to the geom. * @deprecated This is no longer very useful. */ 54 GeomEnums::UsageHint Geom::get_usage_hint(void) const; 2274 14 set_usage_hint 0 4 3257 20 Geom::set_usage_hint 0 1 669 273 /** * Changes the UsageHint hint for all of the primitives on this Geom to the * same value. See get_usage_hint(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 59 void Geom::set_usage_hint(GeomEnums::UsageHint usage_hint); 2275 15 get_vertex_data 0 4 3257 21 Geom::get_vertex_data 0 1 670 146 /** * Returns a const pointer to the GeomVertexData, for application code to * directly examine (but not modify) the geom's underlying data. */ 123 inline ConstPointerTo< GeomVertexData > Geom::get_vertex_data(Thread *current_thread = Thread::get_current_thread()) const; 2276 18 modify_vertex_data 0 4 3257 24 Geom::modify_vertex_data 0 1 671 294 /** * Returns a modifiable pointer to the GeomVertexData, so that application * code may directly maniuplate the geom's underlying data. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 59 PointerTo< GeomVertexData > Geom::modify_vertex_data(void); 2277 15 set_vertex_data 0 4 3257 21 Geom::set_vertex_data 0 1 672 243 /** * Replaces the Geom's underlying vertex data table with a completely new * table. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 55 void Geom::set_vertex_data(GeomVertexData const *data); 2278 15 offset_vertices 0 4 3257 21 Geom::offset_vertices 0 1 673 501 /** * Replaces a Geom's vertex table with a new table, and simultaneously adds * the indicated offset to all vertex references within the Geom's primitives. * This is intended to be used to combine multiple GeomVertexDatas from * different Geoms into a single big buffer, with each Geom referencing a * subset of the vertices in the buffer. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 67 void Geom::offset_vertices(GeomVertexData const *data, int offset); 2279 15 make_nonindexed 0 4 3257 21 Geom::make_nonindexed 0 1 674 414 /** * Converts the geom from indexed to nonindexed by duplicating vertices as * necessary. If composite_only is true, then only composite primitives such * as trifans and tristrips are converted. Returns the number of * GeomPrimitive objects converted. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 47 int Geom::make_nonindexed(bool composite_only); 2280 24 get_animated_vertex_data 0 4 3257 30 Geom::get_animated_vertex_data 0 1 675 865 /** * Returns a GeomVertexData that represents the results of computing the * vertex animation on the CPU for this Geom's vertex data. * * If there is no CPU-defined vertex animation on this object, this just * returns the original object. * * If there is vertex animation, but the VertexTransform values have not * changed since last time, this may return the same pointer it returned * previously. Even if the VertexTransform values have changed, it may still * return the same pointer, but with its contents modified (this is preferred, * since it allows the graphics backend to update vertex buffers optimally). * * If force is false, this method may return immediately with stale data, if * the vertex data is not completely resident. If force is true, this method * will never return stale data, but may block until the data is available. */ 106 ConstPointerTo< GeomVertexData > Geom::get_animated_vertex_data(bool force, Thread *current_thread) const; 2281 8 is_empty 0 4 3257 14 Geom::is_empty 0 1 676 120 /** * Returns true if there appear to be no vertices to be rendered by this Geom, * false if has some actual data. */ 39 inline bool Geom::is_empty(void) const; 2282 18 get_num_primitives 0 4 3257 24 Geom::get_num_primitives 0 1 677 151 /** * Returns the number of GeomPrimitive objects stored within the Geom, each of * which represents a number of primitives of a particular type. */ 56 inline std::size_t Geom::get_num_primitives(void) const; 2283 13 get_primitive 0 4 3257 19 Geom::get_primitive 0 1 678 211 /** * Returns a const pointer to the ith GeomPrimitive object stored within the * Geom. Use this call only to inspect the ith object; use modify_primitive() * or set_primitive() if you want to modify it. */ 80 inline ConstPointerTo< GeomPrimitive > Geom::get_primitive(std::size_t i) const; 2284 16 modify_primitive 0 4 3257 22 Geom::modify_primitive 0 1 679 331 /** * Returns a modifiable pointer to the ith GeomPrimitive object stored within * the Geom, so application code can directly manipulate the properties of * this primitive. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 72 inline PointerTo< GeomPrimitive > Geom::modify_primitive(std::size_t i); 2285 13 set_primitive 0 4 3257 19 Geom::set_primitive 0 1 680 247 /** * Replaces the ith GeomPrimitive object stored within the Geom with the new * object. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 72 void Geom::set_primitive(std::size_t i, GeomPrimitive const *primitive); 2286 16 insert_primitive 0 4 3257 22 Geom::insert_primitive 0 1 681 342 /** * Inserts a new GeomPrimitive structure to the Geom object. This specifies a * particular subset of vertices that are used to define geometric primitives * of the indicated type. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 75 void Geom::insert_primitive(std::size_t i, GeomPrimitive const *primitive); 2287 13 add_primitive 0 4 3257 19 Geom::add_primitive 0 1 682 342 /** * Inserts a new GeomPrimitive structure to the Geom object. This specifies a * particular subset of vertices that are used to define geometric primitives * of the indicated type. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 64 inline void Geom::add_primitive(GeomPrimitive const *primitive); 2288 16 remove_primitive 0 4 3257 22 Geom::remove_primitive 0 1 683 203 /** * Removes the ith primitive from the list. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 43 void Geom::remove_primitive(std::size_t i); 2289 16 clear_primitives 0 4 3257 22 Geom::clear_primitives 0 1 684 332 /** * Removes all the primitives from the Geom object (but keeps the same table * of vertices). You may then re-add primitives one at a time via calls to * add_primitive(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 34 void Geom::clear_primitives(void); 2290 0 0 0 0 0 0 0 0 0 2291 9 decompose 0 4 3257 15 Geom::decompose 0 1 685 118 /** * Decomposes all of the primitives within this Geom, returning the result. * See GeomPrimitive::decompose(). */ 53 inline PointerTo< Geom > Geom::decompose(void) const; 2292 10 doubleside 0 4 3257 16 Geom::doubleside 0 1 686 120 /** * Doublesides all of the primitives within this Geom, returning the result. * See GeomPrimitive::doubleside(). */ 54 inline PointerTo< Geom > Geom::doubleside(void) const; 2293 7 reverse 0 4 3257 13 Geom::reverse 0 1 687 115 /** * Reverses all of the primitives within this Geom, returning the result. See * GeomPrimitive::reverse(). */ 51 inline PointerTo< Geom > Geom::reverse(void) const; 2294 6 rotate 0 4 3257 12 Geom::rotate 0 1 688 113 /** * Rotates all of the primitives within this Geom, returning the result. See * GeomPrimitive::rotate(). */ 50 inline PointerTo< Geom > Geom::rotate(void) const; 2295 5 unify 0 4 3257 11 Geom::unify 0 1 689 541 /** * Unifies all of the primitives contained within this Geom into a single (or * as few as possible, within the constraints of max_indices) primitive * objects. This may require decomposing the primitives if, for instance, the * Geom contains both triangle strips and triangle fans. * * max_indices represents the maximum number of indices that will be put in * any one GeomPrimitive. If preserve_order is true, then the primitives will * not be reordered during the operation, even if this results in a suboptimal * result. */ 81 inline PointerTo< Geom > Geom::unify(int max_indices, bool preserve_order) const; 2296 11 make_points 0 4 3257 17 Geom::make_points 0 1 690 100 /** * Returns a new Geom with points at all the vertices. See * GeomPrimitive::make_points(). */ 55 inline PointerTo< Geom > Geom::make_points(void) const; 2297 10 make_lines 0 4 3257 16 Geom::make_lines 0 1 691 95 /** * Returns a new Geom with lines at all the edges. See * GeomPrimitive::make_lines(). */ 54 inline PointerTo< Geom > Geom::make_lines(void) const; 2298 12 make_patches 0 4 3257 18 Geom::make_patches 0 1 692 102 /** * Returns a new Geom with each primitive converted into a patch. Calls * decompose() first. */ 56 inline PointerTo< Geom > Geom::make_patches(void) const; 2299 14 make_adjacency 0 4 3257 20 Geom::make_adjacency 0 1 693 139 /** * Returns a new Geom with each primitive converted into a corresponding * version with adjacency information. * * @since 1.10.0 */ 58 inline PointerTo< Geom > Geom::make_adjacency(void) const; 2300 18 decompose_in_place 0 4 3257 24 Geom::decompose_in_place 0 1 694 279 /** * Decomposes all of the primitives within this Geom, leaving the results in * place. See GeomPrimitive::decompose(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 36 void Geom::decompose_in_place(void); 2301 19 doubleside_in_place 0 4 3257 25 Geom::doubleside_in_place 0 1 695 281 /** * Doublesides all of the primitives within this Geom, leaving the results in * place. See GeomPrimitive::doubleside(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 37 void Geom::doubleside_in_place(void); 2302 16 reverse_in_place 0 4 3257 22 Geom::reverse_in_place 0 1 696 275 /** * Reverses all of the primitives within this Geom, leaving the results in * place. See GeomPrimitive::reverse(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 34 void Geom::reverse_in_place(void); 2303 15 rotate_in_place 0 4 3257 21 Geom::rotate_in_place 0 1 697 273 /** * Rotates all of the primitives within this Geom, leaving the results in * place. See GeomPrimitive::rotate(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 33 void Geom::rotate_in_place(void); 2304 14 unify_in_place 0 4 3257 20 Geom::unify_in_place 0 1 698 693 /** * Unifies all of the primitives contained within this Geom into a single (or * as few as possible, within the constraints of max_indices) primitive * objects. This may require decomposing the primitives if, for instance, the * Geom contains both triangle strips and triangle fans. * * max_indices represents the maximum number of indices that will be put in * any one GeomPrimitive. If preserve_order is true, then the primitives will * not be reordered during the operation, even if this results in a suboptimal * result. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 64 void Geom::unify_in_place(int max_indices, bool preserve_order); 2305 20 make_points_in_place 0 4 3257 26 Geom::make_points_in_place 0 1 699 275 /** * Replaces the GeomPrimitives within this Geom with corresponding GeomPoints. * See GeomPrimitive::make_points(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 38 void Geom::make_points_in_place(void); 2306 19 make_lines_in_place 0 4 3257 25 Geom::make_lines_in_place 0 1 700 321 /** * Replaces the GeomPrimitives within this Geom with corresponding GeomLines, * representing a wireframe of the primitives. See * GeomPrimitive::make_lines(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 37 void Geom::make_lines_in_place(void); 2307 21 make_patches_in_place 0 4 3257 27 Geom::make_patches_in_place 0 1 701 278 /** * Replaces the GeomPrimitives within this Geom with corresponding * GeomPatches. See GeomPrimitive::make_patches(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 39 void Geom::make_patches_in_place(void); 2308 23 make_adjacency_in_place 0 4 3257 29 Geom::make_adjacency_in_place 0 1 702 324 /** * Replaces the GeomPrimitives within this Geom with corresponding versions * with adjacency information. See GeomPrimitive::make_adjacency(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. * * @since 1.10.0 */ 41 void Geom::make_adjacency_in_place(void); 2309 20 copy_primitives_from 0 6 3257 26 Geom::copy_primitives_from 0 1 703 451 /** * Copies the primitives from the indicated Geom into this one. This does * require that both Geoms contain the same fundamental type primitives, both * have a compatible shade model, and both use the same GeomVertexData. Both * Geoms must also be the same specific class type (i.e. if one is a * GeomTextGlyph, they both must be.) * * Returns true if the copy is successful, or false otherwise (because the * Geoms were mismatched). */ 59 virtual bool Geom::copy_primitives_from(Geom const *other); 2310 13 get_num_bytes 0 4 3257 19 Geom::get_num_bytes 0 1 704 119 /** * Returns the number of bytes consumed by the geom and its primitives (but * not including its vertex table). */ 36 int Geom::get_num_bytes(void) const; 2311 12 get_modified 0 4 3257 18 Geom::get_modified 0 1 705 281 /** * Returns a sequence number which is guaranteed to change at least every time * any of the primitives in the Geom is modified, or the set of primitives is * modified. However, this does not include modifications to the vertex data, * which should be tested separately. */ 97 inline UpdateSeq Geom::get_modified(Thread *current_thread = Thread::get_current_thread()) const; 2312 16 request_resident 0 4 3257 22 Geom::request_resident 0 1 706 286 /** * Returns true if all the primitive arrays are currently resident in memory. * If this returns false, the data will be brought back into memory shortly; * try again later. * * This does not also test the Geom's associated GeomVertexData. That must be * tested separately. */ 40 bool Geom::request_resident(void) const; 2313 18 transform_vertices 0 4 3257 24 Geom::transform_vertices 0 1 707 477 /** * Applies the indicated transform to all of the vertices in the Geom. If the * Geom happens to share a vertex table with another Geom, this operation will * duplicate the vertex table instead of breaking the other Geom; however, if * multiple Geoms with shared tables are transformed by the same matrix, they * will no longer share tables after the operation. Consider using the * GeomTransformer if you will be applying the same transform to multiple * Geoms. */ 51 void Geom::transform_vertices(LMatrix4 const &mat); 2314 11 check_valid 0 4 3257 17 Geom::check_valid 0 2 708 709 423 /** * Verifies that the all of the primitives within the geom reference vertices * that actually exist within the geom's GeomVertexData. Returns true if the * geom appears to be valid, false otherwise. */ /** * Verifies that the all of the primitives within the geom reference vertices * that actually exist within the indicated GeomVertexData. Returns true if * the geom appears to be valid, false otherwise. */ 100 bool Geom::check_valid(void) const; bool Geom::check_valid(GeomVertexData const *vertex_data) const; 2315 10 get_bounds 0 4 3257 16 Geom::get_bounds 0 1 710 52 /** * Returns the bounding volume for the Geom. */ 111 ConstPointerTo< BoundingVolume > Geom::get_bounds(Thread *current_thread = Thread::get_current_thread()) const; 2316 19 get_nested_vertices 0 4 3257 25 Geom::get_nested_vertices 0 1 711 85 /** * Returns the number of vertices rendered by all primitives within the Geom. */ 91 int Geom::get_nested_vertices(Thread *current_thread = Thread::get_current_thread()) const; 2317 17 mark_bounds_stale 0 4 3257 23 Geom::mark_bounds_stale 0 1 712 147 /** * Marks the bounding volume of the Geom as stale so that it should be * recomputed. Usually it is not necessary to call this explicitly. */ 48 inline void Geom::mark_bounds_stale(void) const; 2318 15 set_bounds_type 0 4 3257 21 Geom::set_bounds_type 0 1 713 594 /** * Specifies the desired type of bounding volume that will be created for this * Geom. This is normally BoundingVolume::BT_default, which means to set the * type according to the config variable "bounds-type". * * If this is BT_sphere or BT_box, a BoundingSphere or BoundingBox is * explicitly created. If it is BT_best, a BoundingBox is created. * * This affects the implicit bounding volume only. If an explicit bounding * volume is set on the Geom with set_bounds(), that bounding volume type is * used. (This is different behavior from the similar method on PandaNode.) */ 74 inline void Geom::set_bounds_type(BoundingVolume::BoundsType bounds_type); 2319 15 get_bounds_type 0 4 3257 21 Geom::get_bounds_type 0 1 714 71 /** * Returns the bounding volume type set with set_bounds_type(). */ 68 inline BoundingVolume::BoundsType Geom::get_bounds_type(void) const; 2320 10 set_bounds 0 4 3257 16 Geom::set_bounds 0 1 715 417 /** * Resets the bounding volume so that it is the indicated volume. When it is * explicitly set, the bounding volume will no longer be automatically * computed; call clear_bounds() if you would like to return the bounding * volume to its default behavior. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 59 inline void Geom::set_bounds(BoundingVolume const *volume); 2321 12 clear_bounds 0 4 3257 18 Geom::clear_bounds 0 1 716 317 /** * Reverses the effect of a previous call to set_bounds(), and allows the * bounding volume to be automatically computed once more based on the * vertices. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 37 inline void Geom::clear_bounds(void); 2322 6 output 0 6 3257 12 Geom::output 0 1 717 10 /** * */ 51 virtual void Geom::output(std::ostream &out) const; 2323 5 write 0 6 3257 11 Geom::write 0 1 718 10 /** * */ 72 virtual void Geom::write(std::ostream &out, int indent_level = 0) const; 2324 11 clear_cache 0 4 3257 17 Geom::clear_cache 0 1 719 263 /** * Removes all of the previously-cached results of munge_geom(). * * This blows away the entire cache, upstream and downstream the pipeline. * Use clear_cache_stage() instead if you only want to blow away the cache at * the current stage and upstream. */ 29 void Geom::clear_cache(void); 2325 17 clear_cache_stage 0 4 3257 23 Geom::clear_cache_stage 0 1 720 310 /** * Removes all of the previously-cached results of munge_geom(), at the * current pipeline stage and upstream. Does not affect the downstream cache. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 53 void Geom::clear_cache_stage(Thread *current_thread); 2326 7 prepare 0 4 3257 13 Geom::prepare 0 1 721 351 /** * Indicates that the geom should be enqueued to be prepared in the indicated * prepared_objects at the beginning of the next frame. This will ensure the * geom is already loaded into geom memory if it is expected to be rendered * soon. * * Use this function instead of prepare_now() to preload geoms from a user * interface standpoint. */ 62 void Geom::prepare(PreparedGraphicsObjects *prepared_objects); 2327 11 is_prepared 0 4 3257 17 Geom::is_prepared 0 1 722 131 /** * Returns true if the geom has already been prepared or enqueued for * preparation on the indicated GSG, false otherwise. */ 72 bool Geom::is_prepared(PreparedGraphicsObjects *prepared_objects) const; 2328 7 release 0 4 3257 13 Geom::release 0 1 723 154 /** * Frees the geom context only on the indicated object, if it exists there. * Returns true if it was released, false if it had not been prepared. */ 62 bool Geom::release(PreparedGraphicsObjects *prepared_objects); 2329 11 release_all 0 4 3257 17 Geom::release_all 0 1 724 149 /** * Frees the context allocated on all objects for which the geom has been * declared. Returns the number of contexts which have been freed. */ 28 int Geom::release_all(void); 2330 11 prepare_now 0 4 3257 17 Geom::prepare_now 0 1 725 519 /** * Creates a context for the geom on the particular GSG, if it does not * already exist. Returns the new (or old) GeomContext. This assumes that * the GraphicsStateGuardian is the currently active rendering context and * that it is ready to accept new geoms. If this is not necessarily the case, * you should use prepare() instead. * * Normally, this is not called directly except by the GraphicsStateGuardian; * a geom does not need to be explicitly prepared by the user before it may be * rendered. */ 106 GeomContext *Geom::prepare_now(PreparedGraphicsObjects *prepared_objects, GraphicsStateGuardianBase *gsg); 2331 14 get_class_type 0 4 3257 20 Geom::get_class_type 0 1 726 0 45 static TypeHandle Geom::get_class_type(void); 2332 8 get_geom 0 4 3261 21 GeomContext::get_geom 0 1 729 10 /** * */ 47 inline Geom *GeomContext::get_geom(void) const; 2333 14 get_class_type 0 4 3261 27 GeomContext::get_class_type 0 1 730 0 52 static TypeHandle GeomContext::get_class_type(void); 2334 12 ~GeomContext 0 4 3261 25 GeomContext::~GeomContext 0 0 0 32 GeomContext::~GeomContext(void); 2335 9 GeomLines 0 4 3263 20 GeomLines::GeomLines 0 2 731 732 22 /** * */ /** * */ 108 explicit GeomLines::GeomLines(GeomEnums::UsageHint usage_hint); GeomLines::GeomLines(GeomLines const ©); 2336 12 operator new 0 4 3263 23 GeomLines::operator new 0 1 733 0 122 inline void *GeomLines::operator new(std::size_t size); inline void *GeomLines::operator new(std::size_t size, void *ptr); 2337 15 operator delete 0 4 3263 26 GeomLines::operator delete 0 0 0 106 inline void GeomLines::operator delete(void *ptr); inline void GeomLines::operator delete(void *, void *); 2338 12 validate_ptr 0 4 3263 23 GeomLines::validate_ptr 0 0 0 60 static inline bool GeomLines::validate_ptr(void const *ptr); 2339 14 get_class_type 0 4 3263 25 GeomLines::get_class_type 0 1 734 0 50 static TypeHandle GeomLines::get_class_type(void); 2340 18 GeomLinesAdjacency 0 4 3264 38 GeomLinesAdjacency::GeomLinesAdjacency 0 2 735 736 22 /** * */ /** * */ 153 explicit GeomLinesAdjacency::GeomLinesAdjacency(GeomEnums::UsageHint usage_hint); GeomLinesAdjacency::GeomLinesAdjacency(GeomLinesAdjacency const ©); 2341 12 operator new 0 4 3264 32 GeomLinesAdjacency::operator new 0 1 737 0 140 inline void *GeomLinesAdjacency::operator new(std::size_t size); inline void *GeomLinesAdjacency::operator new(std::size_t size, void *ptr); 2342 15 operator delete 0 4 3264 35 GeomLinesAdjacency::operator delete 0 0 0 124 inline void GeomLinesAdjacency::operator delete(void *ptr); inline void GeomLinesAdjacency::operator delete(void *, void *); 2343 12 validate_ptr 0 4 3264 32 GeomLinesAdjacency::validate_ptr 0 0 0 69 static inline bool GeomLinesAdjacency::validate_ptr(void const *ptr); 2344 14 get_class_type 0 4 3264 34 GeomLinesAdjacency::get_class_type 0 1 738 0 59 static TypeHandle GeomLinesAdjacency::get_class_type(void); 2345 14 GeomLinestrips 0 4 3265 30 GeomLinestrips::GeomLinestrips 0 2 739 740 22 /** * */ /** * */ 133 explicit GeomLinestrips::GeomLinestrips(GeomEnums::UsageHint usage_hint); GeomLinestrips::GeomLinestrips(GeomLinestrips const ©); 2346 12 operator new 0 4 3265 28 GeomLinestrips::operator new 0 1 741 0 132 inline void *GeomLinestrips::operator new(std::size_t size); inline void *GeomLinestrips::operator new(std::size_t size, void *ptr); 2347 15 operator delete 0 4 3265 31 GeomLinestrips::operator delete 0 0 0 116 inline void GeomLinestrips::operator delete(void *ptr); inline void GeomLinestrips::operator delete(void *, void *); 2348 12 validate_ptr 0 4 3265 28 GeomLinestrips::validate_ptr 0 0 0 65 static inline bool GeomLinestrips::validate_ptr(void const *ptr); 2349 14 get_class_type 0 4 3265 30 GeomLinestrips::get_class_type 0 1 742 0 55 static TypeHandle GeomLinestrips::get_class_type(void); 2350 23 GeomLinestripsAdjacency 0 4 3266 48 GeomLinestripsAdjacency::GeomLinestripsAdjacency 0 2 743 744 22 /** * */ /** * */ 178 explicit GeomLinestripsAdjacency::GeomLinestripsAdjacency(GeomEnums::UsageHint usage_hint); GeomLinestripsAdjacency::GeomLinestripsAdjacency(GeomLinestripsAdjacency const ©); 2351 12 operator new 0 4 3266 37 GeomLinestripsAdjacency::operator new 0 1 745 0 150 inline void *GeomLinestripsAdjacency::operator new(std::size_t size); inline void *GeomLinestripsAdjacency::operator new(std::size_t size, void *ptr); 2352 15 operator delete 0 4 3266 40 GeomLinestripsAdjacency::operator delete 0 0 0 134 inline void GeomLinestripsAdjacency::operator delete(void *ptr); inline void GeomLinestripsAdjacency::operator delete(void *, void *); 2353 12 validate_ptr 0 4 3266 37 GeomLinestripsAdjacency::validate_ptr 0 0 0 74 static inline bool GeomLinestripsAdjacency::validate_ptr(void const *ptr); 2354 14 get_class_type 0 4 3266 39 GeomLinestripsAdjacency::get_class_type 0 1 746 0 64 static TypeHandle GeomLinestripsAdjacency::get_class_type(void); 2355 11 GeomPatches 0 4 3267 24 GeomPatches::GeomPatches 0 2 747 748 252 /** * The number of vertices per patch must be specified to the GeomPatches * constructor, and it may not be changed during the lifetime of the * GeomPatches object. Create a new GeomPatches if you need to have a * different value. */ /** * */ 146 explicit GeomPatches::GeomPatches(int num_vertices_per_patch, GeomEnums::UsageHint usage_hint); GeomPatches::GeomPatches(GeomPatches const ©); 2356 12 operator new 0 4 3267 25 GeomPatches::operator new 0 1 749 0 126 inline void *GeomPatches::operator new(std::size_t size); inline void *GeomPatches::operator new(std::size_t size, void *ptr); 2357 15 operator delete 0 4 3267 28 GeomPatches::operator delete 0 0 0 110 inline void GeomPatches::operator delete(void *ptr); inline void GeomPatches::operator delete(void *, void *); 2358 12 validate_ptr 0 4 3267 25 GeomPatches::validate_ptr 0 0 0 62 static inline bool GeomPatches::validate_ptr(void const *ptr); 2359 14 get_class_type 0 4 3267 27 GeomPatches::get_class_type 0 1 750 0 52 static TypeHandle GeomPatches::get_class_type(void); 2360 10 GeomPoints 0 4 3268 22 GeomPoints::GeomPoints 0 2 751 752 22 /** * */ /** * */ 113 explicit GeomPoints::GeomPoints(GeomEnums::UsageHint usage_hint); GeomPoints::GeomPoints(GeomPoints const ©); 2361 12 operator new 0 4 3268 24 GeomPoints::operator new 0 1 753 0 124 inline void *GeomPoints::operator new(std::size_t size); inline void *GeomPoints::operator new(std::size_t size, void *ptr); 2362 15 operator delete 0 4 3268 27 GeomPoints::operator delete 0 0 0 108 inline void GeomPoints::operator delete(void *ptr); inline void GeomPoints::operator delete(void *, void *); 2363 12 validate_ptr 0 4 3268 24 GeomPoints::validate_ptr 0 0 0 61 static inline bool GeomPoints::validate_ptr(void const *ptr); 2364 14 get_class_type 0 4 3268 26 GeomPoints::get_class_type 0 1 754 0 51 static TypeHandle GeomPoints::get_class_type(void); 2365 13 GeomTriangles 0 4 3269 28 GeomTriangles::GeomTriangles 0 2 755 756 22 /** * */ /** * */ 128 explicit GeomTriangles::GeomTriangles(GeomEnums::UsageHint usage_hint); GeomTriangles::GeomTriangles(GeomTriangles const ©); 2366 12 operator new 0 4 3269 27 GeomTriangles::operator new 0 1 757 0 130 inline void *GeomTriangles::operator new(std::size_t size); inline void *GeomTriangles::operator new(std::size_t size, void *ptr); 2367 15 operator delete 0 4 3269 30 GeomTriangles::operator delete 0 0 0 114 inline void GeomTriangles::operator delete(void *ptr); inline void GeomTriangles::operator delete(void *, void *); 2368 12 validate_ptr 0 4 3269 27 GeomTriangles::validate_ptr 0 0 0 64 static inline bool GeomTriangles::validate_ptr(void const *ptr); 2369 14 get_class_type 0 4 3269 29 GeomTriangles::get_class_type 0 1 758 0 54 static TypeHandle GeomTriangles::get_class_type(void); 2370 22 GeomTrianglesAdjacency 0 4 3270 46 GeomTrianglesAdjacency::GeomTrianglesAdjacency 0 2 759 760 22 /** * */ /** * */ 173 explicit GeomTrianglesAdjacency::GeomTrianglesAdjacency(GeomEnums::UsageHint usage_hint); GeomTrianglesAdjacency::GeomTrianglesAdjacency(GeomTrianglesAdjacency const ©); 2371 12 operator new 0 4 3270 36 GeomTrianglesAdjacency::operator new 0 1 761 0 148 inline void *GeomTrianglesAdjacency::operator new(std::size_t size); inline void *GeomTrianglesAdjacency::operator new(std::size_t size, void *ptr); 2372 15 operator delete 0 4 3270 39 GeomTrianglesAdjacency::operator delete 0 0 0 132 inline void GeomTrianglesAdjacency::operator delete(void *ptr); inline void GeomTrianglesAdjacency::operator delete(void *, void *); 2373 12 validate_ptr 0 4 3270 36 GeomTrianglesAdjacency::validate_ptr 0 0 0 73 static inline bool GeomTrianglesAdjacency::validate_ptr(void const *ptr); 2374 14 get_class_type 0 4 3270 38 GeomTrianglesAdjacency::get_class_type 0 1 762 0 63 static TypeHandle GeomTrianglesAdjacency::get_class_type(void); 2375 11 GeomTrifans 0 4 3271 24 GeomTrifans::GeomTrifans 0 2 763 764 22 /** * */ /** * */ 118 explicit GeomTrifans::GeomTrifans(GeomEnums::UsageHint usage_hint); GeomTrifans::GeomTrifans(GeomTrifans const ©); 2376 12 operator new 0 4 3271 25 GeomTrifans::operator new 0 1 765 0 126 inline void *GeomTrifans::operator new(std::size_t size); inline void *GeomTrifans::operator new(std::size_t size, void *ptr); 2377 15 operator delete 0 4 3271 28 GeomTrifans::operator delete 0 0 0 110 inline void GeomTrifans::operator delete(void *ptr); inline void GeomTrifans::operator delete(void *, void *); 2378 12 validate_ptr 0 4 3271 25 GeomTrifans::validate_ptr 0 0 0 62 static inline bool GeomTrifans::validate_ptr(void const *ptr); 2379 14 get_class_type 0 4 3271 27 GeomTrifans::get_class_type 0 1 766 0 52 static TypeHandle GeomTrifans::get_class_type(void); 2380 13 GeomTristrips 0 4 3272 28 GeomTristrips::GeomTristrips 0 2 767 768 22 /** * */ /** * */ 128 explicit GeomTristrips::GeomTristrips(GeomEnums::UsageHint usage_hint); GeomTristrips::GeomTristrips(GeomTristrips const ©); 2381 12 operator new 0 4 3272 27 GeomTristrips::operator new 0 1 769 0 130 inline void *GeomTristrips::operator new(std::size_t size); inline void *GeomTristrips::operator new(std::size_t size, void *ptr); 2382 15 operator delete 0 4 3272 30 GeomTristrips::operator delete 0 0 0 114 inline void GeomTristrips::operator delete(void *ptr); inline void GeomTristrips::operator delete(void *, void *); 2383 12 validate_ptr 0 4 3272 27 GeomTristrips::validate_ptr 0 0 0 64 static inline bool GeomTristrips::validate_ptr(void const *ptr); 2384 14 get_class_type 0 4 3272 29 GeomTristrips::get_class_type 0 1 770 0 54 static TypeHandle GeomTristrips::get_class_type(void); 2385 22 GeomTristripsAdjacency 0 4 3273 46 GeomTristripsAdjacency::GeomTristripsAdjacency 0 2 771 772 22 /** * */ /** * */ 173 explicit GeomTristripsAdjacency::GeomTristripsAdjacency(GeomEnums::UsageHint usage_hint); GeomTristripsAdjacency::GeomTristripsAdjacency(GeomTristripsAdjacency const ©); 2386 12 operator new 0 4 3273 36 GeomTristripsAdjacency::operator new 0 1 773 0 148 inline void *GeomTristripsAdjacency::operator new(std::size_t size); inline void *GeomTristripsAdjacency::operator new(std::size_t size, void *ptr); 2387 15 operator delete 0 4 3273 39 GeomTristripsAdjacency::operator delete 0 0 0 132 inline void GeomTristripsAdjacency::operator delete(void *ptr); inline void GeomTristripsAdjacency::operator delete(void *, void *); 2388 12 validate_ptr 0 4 3273 36 GeomTristripsAdjacency::validate_ptr 0 0 0 73 static inline bool GeomTristripsAdjacency::validate_ptr(void const *ptr); 2389 14 get_class_type 0 4 3273 38 GeomTristripsAdjacency::get_class_type 0 1 774 0 63 static TypeHandle GeomTristripsAdjacency::get_class_type(void); 2390 16 GeomVertexReader 0 4 3274 34 GeomVertexReader::GeomVertexReader 0 6 775 776 777 778 779 780 802 /** * Constructs an invalid GeomVertexReader. You must use the assignment * operator to assign a valid GeomVertexReader to this object before you can * use it. */ /** * Constructs a new reader to process the vertices of the indicated data * object. */ /** * Constructs a new reader to process the vertices of the indicated data * object. This flavor creates the reader specifically to process the named * data type. */ /** * Constructs a new reader to process the vertices of the indicated array * only. */ /** * Constructs a new reader to process the vertices of the indicated array * only. */ /** * Constructs a new reader to process the vertices of the indicated data * object. This flavor creates the reader specifically to process the named * data type. */ /** * */ 745 inline GeomVertexReader::GeomVertexReader(Thread *current_thread = Thread::get_current_thread()); inline GeomVertexReader::GeomVertexReader(GeomVertexData const *vertex_data, Thread *current_thread = Thread::get_current_thread()); inline GeomVertexReader::GeomVertexReader(GeomVertexData const *vertex_data, CPT_InternalName name, Thread *current_thread = Thread::get_current_thread()); inline GeomVertexReader::GeomVertexReader(GeomVertexArrayData const *array_data, Thread *current_thread = Thread::get_current_thread()); inline GeomVertexReader::GeomVertexReader(GeomVertexArrayData const *array_data, int column, Thread *current_thread = Thread::get_current_thread()); inline GeomVertexReader::GeomVertexReader(GeomVertexReader const ©); 2391 10 operator = 0 4 3274 28 GeomVertexReader::operator = 0 1 781 0 71 inline void GeomVertexReader::operator =(GeomVertexReader const ©); 2392 17 ~GeomVertexReader 0 4 3274 35 GeomVertexReader::~GeomVertexReader 0 0 10 /** * */ 49 inline GeomVertexReader::~GeomVertexReader(void); 2393 15 get_vertex_data 0 4 3274 33 GeomVertexReader::get_vertex_data 0 1 782 155 /** * Returns the vertex data object that the reader is processing. This may * return NULL if the reader was constructed with just an array pointer. */ 75 inline GeomVertexData const *GeomVertexReader::get_vertex_data(void) const; 2394 14 get_array_data 0 4 3274 32 GeomVertexReader::get_array_data 0 1 783 90 /** * Returns the particular array object that the reader is currently * processing. */ 79 inline GeomVertexArrayData const *GeomVertexReader::get_array_data(void) const; 2395 16 get_array_handle 0 4 3274 34 GeomVertexReader::get_array_handle 0 1 784 146 /** * Returns the read handle to the array object that the read is currently * processing. This low-level call should be used with caution. */ 87 inline GeomVertexArrayDataHandle const *GeomVertexReader::get_array_handle(void) const; 2396 10 get_stride 0 4 3274 28 GeomVertexReader::get_stride 0 1 785 197 /** * Returns the per-row stride (bytes between consecutive rows) of the * underlying vertex array. This low-level information is normally not needed * to use the GeomVertexReader directly. */ 60 inline std::size_t GeomVertexReader::get_stride(void) const; 2397 18 get_current_thread 0 4 3274 36 GeomVertexReader::get_current_thread 0 1 786 120 /** * Returns the Thread pointer of the currently-executing thread, as passed to * the constructor of this object. */ 64 inline Thread *GeomVertexReader::get_current_thread(void) const; 2398 9 set_force 0 4 3274 27 GeomVertexReader::set_force 0 1 787 563 /** * Sets the value of the force flag. When this is true (the default), vertex * data will be paged in from disk if necessary. When this is false, the * GeomVertexData will simply return a failure code when attempting to read * vertex data that is not resident (but will put it on the queue to become * resident later). * * Normally, vertex data is always resident, so this will not be an issue. It * is only possible for vertex data to be nonresident if you have enabled * vertex paging via the GeomVertexArrayData and VertexDataPage interfaces. */ 52 inline void GeomVertexReader::set_force(bool force); 2399 9 get_force 0 4 3274 27 GeomVertexReader::get_force 0 1 788 65 /** * Returns the value of the force flag. See set_force(). */ 52 inline bool GeomVertexReader::get_force(void) const; 2400 10 set_column 0 4 3274 28 GeomVertexReader::set_column 0 3 789 790 791 981 /** * Sets up the reader to use the nth data type of the GeomVertexFormat, * numbering from 0. * * This also resets the read row number to the start row (the same value * passed to a previous call to set_row(), or 0 if set_row() was never * called.) * * The return value is true if the data type is valid, false otherwise. */ /** * Sets up the reader to use the data type with the indicated name. * * This also resets the read row number to the start row (the same value * passed to a previous call to set_row(), or 0 if set_row() was never * called.) * * The return value is true if the data type is valid, false otherwise. */ /** * Sets up the reader to use the indicated column description on the given * array. * * This also resets the current read row number to the start row (the same * value passed to a previous call to set_row(), or 0 if set_row() was never * called.) * * The return value is true if the data type is valid, false otherwise. */ 196 inline bool GeomVertexReader::set_column(int column); inline bool GeomVertexReader::set_column(CPT_InternalName name); bool GeomVertexReader::set_column(int array, GeomVertexColumn const *column); 2401 5 clear 0 4 3274 23 GeomVertexReader::clear 0 1 792 60 /** * Resets the GeomVertexReader to the initial state. */ 42 inline void GeomVertexReader::clear(void); 2402 10 has_column 0 4 3274 28 GeomVertexReader::has_column 0 1 793 183 /** * Returns true if a valid data type has been successfully set, or false if * the data type does not exist (or if get_force() is false and the vertex * data is nonresident). */ 53 inline bool GeomVertexReader::has_column(void) const; 2403 9 get_array 0 4 3274 27 GeomVertexReader::get_array 0 1 794 93 /** * Returns the array index containing the data type that the reader is working * on. */ 51 inline int GeomVertexReader::get_array(void) const; 2404 10 get_column 0 4 3274 28 GeomVertexReader::get_column 0 1 795 82 /** * Returns the description of the data type that the reader is working on. */ 72 inline GeomVertexColumn const *GeomVertexReader::get_column(void) const; 2405 14 set_row_unsafe 0 4 3274 32 GeomVertexReader::set_row_unsafe 0 1 796 344 /** * Sets the start row to the indicated value, without internal checks. This * is the same as set_row(), but it does not check for the possibility that * the array has been reallocated internally for some reason; use only when * you are confident that the array is unchanged and you really need every bit * of available performance. */ 54 inline void GeomVertexReader::set_row_unsafe(int row); 2406 7 set_row 0 4 3274 25 GeomVertexReader::set_row 0 1 797 260 /** * Sets the start row to the indicated value. The reader will begin reading * from the indicated row; each subsequent get_data*() call will return the * data from the subsequent row. If set_column() is called, the reader will * return to this row. */ 47 inline void GeomVertexReader::set_row(int row); 2407 13 get_start_row 0 4 3274 31 GeomVertexReader::get_start_row 0 1 798 125 /** * Returns the row index at which the reader started. It will return to this * row if you reset the current column. */ 55 inline int GeomVertexReader::get_start_row(void) const; 2408 12 get_read_row 0 4 3274 30 GeomVertexReader::get_read_row 0 1 799 106 /** * Returns the row index from which the data will be retrieved by the next * call to get_data*(). */ 54 inline int GeomVertexReader::get_read_row(void) const; 2409 9 is_at_end 0 4 3274 27 GeomVertexReader::is_at_end 0 1 800 179 /** * Returns true if the reader is currently at the end of the list of vertices, * false otherwise. If this is true, another call to get_data*() will result * in a crash. */ 52 inline bool GeomVertexReader::is_at_end(void) const; 2410 10 get_data1f 0 4 3274 28 GeomVertexReader::get_data1f 0 1 801 121 /** * Returns the data associated with the read row, expressed as a 1-component * value, and advances the read row. */ 48 inline float GeomVertexReader::get_data1f(void); 2411 10 get_data2f 0 4 3274 28 GeomVertexReader::get_data2f 0 1 802 121 /** * Returns the data associated with the read row, expressed as a 2-component * value, and advances the read row. */ 60 inline LVecBase2f const &GeomVertexReader::get_data2f(void); 2412 10 get_data3f 0 4 3274 28 GeomVertexReader::get_data3f 0 1 803 121 /** * Returns the data associated with the read row, expressed as a 3-component * value, and advances the read row. */ 60 inline LVecBase3f const &GeomVertexReader::get_data3f(void); 2413 10 get_data4f 0 4 3274 28 GeomVertexReader::get_data4f 0 1 804 121 /** * Returns the data associated with the read row, expressed as a 4-component * value, and advances the read row. */ 60 inline LVecBase4f const &GeomVertexReader::get_data4f(void); 2414 12 get_matrix3f 0 4 3274 30 GeomVertexReader::get_matrix3f 0 1 805 210 /** * Returns the 3-by-3 matrix associated with the read row and advances the * read row. This is a special method that only works when the column in * question contains a matrix of an appropriate size. */ 54 inline LMatrix3f GeomVertexReader::get_matrix3f(void); 2415 12 get_matrix4f 0 4 3274 30 GeomVertexReader::get_matrix4f 0 1 806 210 /** * Returns the 4-by-4 matrix associated with the read row and advances the * read row. This is a special method that only works when the column in * question contains a matrix of an appropriate size. */ 54 inline LMatrix4f GeomVertexReader::get_matrix4f(void); 2416 10 get_data1d 0 4 3274 28 GeomVertexReader::get_data1d 0 1 807 121 /** * Returns the data associated with the read row, expressed as a 1-component * value, and advances the read row. */ 49 inline double GeomVertexReader::get_data1d(void); 2417 10 get_data2d 0 4 3274 28 GeomVertexReader::get_data2d 0 1 808 121 /** * Returns the data associated with the read row, expressed as a 2-component * value, and advances the read row. */ 60 inline LVecBase2d const &GeomVertexReader::get_data2d(void); 2418 10 get_data3d 0 4 3274 28 GeomVertexReader::get_data3d 0 1 809 121 /** * Returns the data associated with the read row, expressed as a 3-component * value, and advances the read row. */ 60 inline LVecBase3d const &GeomVertexReader::get_data3d(void); 2419 10 get_data4d 0 4 3274 28 GeomVertexReader::get_data4d 0 1 810 121 /** * Returns the data associated with the read row, expressed as a 4-component * value, and advances the read row. */ 60 inline LVecBase4d const &GeomVertexReader::get_data4d(void); 2420 12 get_matrix3d 0 4 3274 30 GeomVertexReader::get_matrix3d 0 1 811 210 /** * Returns the 3-by-3 matrix associated with the read row and advances the * read row. This is a special method that only works when the column in * question contains a matrix of an appropriate size. */ 54 inline LMatrix3d GeomVertexReader::get_matrix3d(void); 2421 12 get_matrix4d 0 4 3274 30 GeomVertexReader::get_matrix4d 0 1 812 210 /** * Returns the 4-by-4 matrix associated with the read row and advances the * read row. This is a special method that only works when the column in * question contains a matrix of an appropriate size. */ 54 inline LMatrix4d GeomVertexReader::get_matrix4d(void); 2422 9 get_data1 0 4 3274 27 GeomVertexReader::get_data1 0 1 813 121 /** * Returns the data associated with the read row, expressed as a 1-component * value, and advances the read row. */ 53 inline PN_stdfloat GeomVertexReader::get_data1(void); 2423 9 get_data2 0 4 3274 27 GeomVertexReader::get_data2 0 1 814 121 /** * Returns the data associated with the read row, expressed as a 2-component * value, and advances the read row. */ 58 inline LVecBase2 const &GeomVertexReader::get_data2(void); 2424 9 get_data3 0 4 3274 27 GeomVertexReader::get_data3 0 1 815 121 /** * Returns the data associated with the read row, expressed as a 3-component * value, and advances the read row. */ 58 inline LVecBase3 const &GeomVertexReader::get_data3(void); 2425 9 get_data4 0 4 3274 27 GeomVertexReader::get_data4 0 1 816 121 /** * Returns the data associated with the read row, expressed as a 4-component * value, and advances the read row. */ 58 inline LVecBase4 const &GeomVertexReader::get_data4(void); 2426 11 get_matrix3 0 4 3274 29 GeomVertexReader::get_matrix3 0 1 817 210 /** * Returns the 3-by-3 matrix associated with the read row and advances the * read row. This is a special method that only works when the column in * question contains a matrix of an appropriate size. */ 52 inline LMatrix3 GeomVertexReader::get_matrix3(void); 2427 11 get_matrix4 0 4 3274 29 GeomVertexReader::get_matrix4 0 1 818 210 /** * Returns the 4-by-4 matrix associated with the read row and advances the * read row. This is a special method that only works when the column in * question contains a matrix of an appropriate size. */ 52 inline LMatrix4 GeomVertexReader::get_matrix4(void); 2428 10 get_data1i 0 4 3274 28 GeomVertexReader::get_data1i 0 1 819 121 /** * Returns the data associated with the read row, expressed as a 1-component * value, and advances the read row. */ 46 inline int GeomVertexReader::get_data1i(void); 2429 10 get_data2i 0 4 3274 28 GeomVertexReader::get_data2i 0 1 820 121 /** * Returns the data associated with the read row, expressed as a 2-component * value, and advances the read row. */ 60 inline LVecBase2i const &GeomVertexReader::get_data2i(void); 2430 10 get_data3i 0 4 3274 28 GeomVertexReader::get_data3i 0 1 821 121 /** * Returns the data associated with the read row, expressed as a 3-component * value, and advances the read row. */ 60 inline LVecBase3i const &GeomVertexReader::get_data3i(void); 2431 10 get_data4i 0 4 3274 28 GeomVertexReader::get_data4i 0 1 822 121 /** * Returns the data associated with the read row, expressed as a 4-component * value, and advances the read row. */ 60 inline LVecBase4i const &GeomVertexReader::get_data4i(void); 2432 6 output 0 4 3274 24 GeomVertexReader::output 0 1 823 10 /** * */ 55 void GeomVertexReader::output(std::ostream &out) const; 2433 16 GeomVertexWriter 0 4 3275 34 GeomVertexWriter::GeomVertexWriter 0 6 824 825 826 827 828 829 802 /** * Constructs an invalid GeomVertexWriter. You must use the assignment * operator to assign a valid GeomVertexWriter to this object before you can * use it. */ /** * Constructs a new writer to process the vertices of the indicated data * object. */ /** * Constructs a new writer to process the vertices of the indicated data * object. This flavor creates the writer specifically to process the named * data type. */ /** * Constructs a new writer to process the vertices of the indicated array * only. */ /** * Constructs a new writer to process the vertices of the indicated array * only. */ /** * Constructs a new writer to process the vertices of the indicated data * object. This flavor creates the writer specifically to process the named * data type. */ /** * */ 721 inline GeomVertexWriter::GeomVertexWriter(Thread *current_thread = Thread::get_current_thread()); inline GeomVertexWriter::GeomVertexWriter(GeomVertexData *vertex_data, Thread *current_thread = Thread::get_current_thread()); inline GeomVertexWriter::GeomVertexWriter(GeomVertexData *vertex_data, CPT_InternalName name, Thread *current_thread = Thread::get_current_thread()); inline GeomVertexWriter::GeomVertexWriter(GeomVertexArrayData *array_data, Thread *current_thread = Thread::get_current_thread()); inline GeomVertexWriter::GeomVertexWriter(GeomVertexArrayData *array_data, int column, Thread *current_thread = Thread::get_current_thread()); inline GeomVertexWriter::GeomVertexWriter(GeomVertexWriter const ©); 2434 10 operator = 0 4 3275 28 GeomVertexWriter::operator = 0 1 830 0 71 inline void GeomVertexWriter::operator =(GeomVertexWriter const ©); 2435 17 ~GeomVertexWriter 0 4 3275 35 GeomVertexWriter::~GeomVertexWriter 0 0 10 /** * */ 49 inline GeomVertexWriter::~GeomVertexWriter(void); 2436 15 get_vertex_data 0 4 3275 33 GeomVertexWriter::get_vertex_data 0 1 831 155 /** * Returns the vertex data object that the writer is processing. This may * return NULL if the writer was constructed with just an array pointer. */ 69 inline GeomVertexData *GeomVertexWriter::get_vertex_data(void) const; 2437 14 get_array_data 0 4 3275 32 GeomVertexWriter::get_array_data 0 1 832 90 /** * Returns the particular array object that the writer is currently * processing. */ 73 inline GeomVertexArrayData *GeomVertexWriter::get_array_data(void) const; 2438 16 get_array_handle 0 4 3275 34 GeomVertexWriter::get_array_handle 0 1 833 238 /** * Returns the write handle to the array object that the writer is currently * processing. This low-level call should be used with caution; be careful * with modifying the data in the handle out from under the GeomVertexWriter. */ 81 inline GeomVertexArrayDataHandle *GeomVertexWriter::get_array_handle(void) const; 2439 10 get_stride 0 4 3275 28 GeomVertexWriter::get_stride 0 1 834 197 /** * Returns the per-row stride (bytes between consecutive rows) of the * underlying vertex array. This low-level information is normally not needed * to use the GeomVertexWriter directly. */ 60 inline std::size_t GeomVertexWriter::get_stride(void) const; 2440 18 get_current_thread 0 4 3275 36 GeomVertexWriter::get_current_thread 0 1 835 120 /** * Returns the Thread pointer of the currently-executing thread, as passed to * the constructor of this object. */ 64 inline Thread *GeomVertexWriter::get_current_thread(void) const; 2441 10 set_column 0 4 3275 28 GeomVertexWriter::set_column 0 3 836 837 838 977 /** * Sets up the writer to use the nth data type of the GeomVertexFormat, * numbering from 0. * * This also resets the write row number to the start row (the same value * passed to a previous call to set_row(), or 0 if set_row() was never * called.) * * The return value is true if the data type is valid, false otherwise. */ /** * Sets up the writer to use the data type with the indicated name. * * This also resets the write number to the start row (the same value passed * to a previous call to set_row(), or 0 if set_row() was never called.) * * The return value is true if the data type is valid, false otherwise. */ /** * Sets up the writer to use the indicated column description on the given * array. * * This also resets the current write row number to the start row (the same * value passed to a previous call to set_row(), or 0 if set_row() was never * called.) * * The return value is true if the data type is valid, false otherwise. */ 196 inline bool GeomVertexWriter::set_column(int column); inline bool GeomVertexWriter::set_column(CPT_InternalName name); bool GeomVertexWriter::set_column(int array, GeomVertexColumn const *column); 2442 5 clear 0 4 3275 23 GeomVertexWriter::clear 0 1 839 60 /** * Resets the GeomVertexWriter to the initial state. */ 42 inline void GeomVertexWriter::clear(void); 2443 16 reserve_num_rows 0 4 3275 34 GeomVertexWriter::reserve_num_rows 0 1 840 297 /** * This ensures that enough memory space for num_rows is allocated, so that * you may add up to num_rows rows without causing a new memory allocation. * This is a performance optimization only; it is especially useful when you * know the number of rows you will be adding ahead of time. */ 54 bool GeomVertexWriter::reserve_num_rows(int num_rows); 2444 10 has_column 0 4 3275 28 GeomVertexWriter::has_column 0 1 841 116 /** * Returns true if a valid data type has been successfully set, or false if * the data type does not exist. */ 53 inline bool GeomVertexWriter::has_column(void) const; 2445 9 get_array 0 4 3275 27 GeomVertexWriter::get_array 0 1 842 93 /** * Returns the array index containing the data type that the writer is working * on. */ 51 inline int GeomVertexWriter::get_array(void) const; 2446 10 get_column 0 4 3275 28 GeomVertexWriter::get_column 0 1 843 82 /** * Returns the description of the data type that the writer is working on. */ 72 inline GeomVertexColumn const *GeomVertexWriter::get_column(void) const; 2447 14 set_row_unsafe 0 4 3275 32 GeomVertexWriter::set_row_unsafe 0 1 844 344 /** * Sets the start row to the indicated value, without internal checks. This * is the same as set_row(), but it does not check for the possibility that * the array has been reallocated internally for some reason; use only when * you are confident that the array is unchanged and you really need every bit * of available performance. */ 54 inline void GeomVertexWriter::set_row_unsafe(int row); 2448 7 set_row 0 4 3275 25 GeomVertexWriter::set_row 0 1 845 257 /** * Sets the start row to the indicated value. The writer will begin writing * to the indicated row; each subsequent set_data*() call will store the data * into the subsequent row. If set_column() is called, the writer will return * to this row. */ 47 inline void GeomVertexWriter::set_row(int row); 2449 13 get_start_row 0 4 3275 31 GeomVertexWriter::get_start_row 0 1 846 125 /** * Returns the row index at which the writer started. It will return to this * row if you reset the current column. */ 55 inline int GeomVertexWriter::get_start_row(void) const; 2450 13 get_write_row 0 4 3275 31 GeomVertexWriter::get_write_row 0 1 847 117 /** * Returns the row index to which the data will be written at the next call to * set_data*() or add_data*(). */ 55 inline int GeomVertexWriter::get_write_row(void) const; 2451 9 is_at_end 0 4 3275 27 GeomVertexWriter::is_at_end 0 1 848 231 /** * Returns true if the writer is currently at the end of the list of vertices, * false otherwise. If this is true, another call to set_data*() will result * in a crash, but another call to add_data*() will add a new row. */ 52 inline bool GeomVertexWriter::is_at_end(void) const; 2452 10 set_data1f 0 4 3275 28 GeomVertexWriter::set_data1f 0 1 849 167 /** * Sets the write row to a particular 1-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 53 inline void GeomVertexWriter::set_data1f(float data); 2453 10 set_data2f 0 4 3275 28 GeomVertexWriter::set_data2f 0 2 850 851 336 /** * Sets the write row to a particular 2-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ /** * Sets the write row to a particular 2-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 125 inline void GeomVertexWriter::set_data2f(float x, float y); inline void GeomVertexWriter::set_data2f(LVecBase2f const &data); 2454 10 set_data3f 0 4 3275 28 GeomVertexWriter::set_data3f 0 2 852 853 336 /** * Sets the write row to a particular 3-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ /** * Sets the write row to a particular 3-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 134 inline void GeomVertexWriter::set_data3f(float x, float y, float z); inline void GeomVertexWriter::set_data3f(LVecBase3f const &data); 2455 10 set_data4f 0 4 3275 28 GeomVertexWriter::set_data4f 0 2 854 855 336 /** * Sets the write row to a particular 4-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ /** * Sets the write row to a particular 4-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 143 inline void GeomVertexWriter::set_data4f(float x, float y, float z, float w); inline void GeomVertexWriter::set_data4f(LVecBase4f const &data); 2456 12 set_matrix3f 0 4 3275 30 GeomVertexWriter::set_matrix3f 0 1 856 219 /** * Sets the write row to a 3-by-3 matrix, and advances the write row. This is * a special method that can only be used on matrix columns. * * It is an error for the write row to advance past the end of data. */ 65 inline void GeomVertexWriter::set_matrix3f(LMatrix3f const &mat); 2457 12 set_matrix4f 0 4 3275 30 GeomVertexWriter::set_matrix4f 0 1 857 219 /** * Sets the write row to a 4-by-4 matrix, and advances the write row. This is * a special method that can only be used on matrix columns. * * It is an error for the write row to advance past the end of data. */ 65 inline void GeomVertexWriter::set_matrix4f(LMatrix4f const &mat); 2458 10 set_data1d 0 4 3275 28 GeomVertexWriter::set_data1d 0 1 858 167 /** * Sets the write row to a particular 1-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 54 inline void GeomVertexWriter::set_data1d(double data); 2459 10 set_data2d 0 4 3275 28 GeomVertexWriter::set_data2d 0 2 859 860 336 /** * Sets the write row to a particular 2-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ /** * Sets the write row to a particular 2-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 127 inline void GeomVertexWriter::set_data2d(double x, double y); inline void GeomVertexWriter::set_data2d(LVecBase2d const &data); 2460 10 set_data3d 0 4 3275 28 GeomVertexWriter::set_data3d 0 2 861 862 336 /** * Sets the write row to a particular 3-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ /** * Sets the write row to a particular 3-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 137 inline void GeomVertexWriter::set_data3d(double x, double y, double z); inline void GeomVertexWriter::set_data3d(LVecBase3d const &data); 2461 10 set_data4d 0 4 3275 28 GeomVertexWriter::set_data4d 0 2 863 864 336 /** * Sets the write row to a particular 4-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ /** * Sets the write row to a particular 4-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 147 inline void GeomVertexWriter::set_data4d(double x, double y, double z, double w); inline void GeomVertexWriter::set_data4d(LVecBase4d const &data); 2462 12 set_matrix3d 0 4 3275 30 GeomVertexWriter::set_matrix3d 0 1 865 219 /** * Sets the write row to a 3-by-3 matrix, and advances the write row. This is * a special method that can only be used on matrix columns. * * It is an error for the write row to advance past the end of data. */ 65 inline void GeomVertexWriter::set_matrix3d(LMatrix3d const &mat); 2463 12 set_matrix4d 0 4 3275 30 GeomVertexWriter::set_matrix4d 0 1 866 219 /** * Sets the write row to a 4-by-4 matrix, and advances the write row. This is * a special method that can only be used on matrix columns. * * It is an error for the write row to advance past the end of data. */ 65 inline void GeomVertexWriter::set_matrix4d(LMatrix4d const &mat); 2464 9 set_data1 0 4 3275 27 GeomVertexWriter::set_data1 0 1 867 167 /** * Sets the write row to a particular 1-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 58 inline void GeomVertexWriter::set_data1(PN_stdfloat data); 2465 9 set_data2 0 4 3275 27 GeomVertexWriter::set_data2 0 2 868 869 336 /** * Sets the write row to a particular 2-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ /** * Sets the write row to a particular 2-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 134 inline void GeomVertexWriter::set_data2(PN_stdfloat x, PN_stdfloat y); inline void GeomVertexWriter::set_data2(LVecBase2 const &data); 2466 9 set_data3 0 4 3275 27 GeomVertexWriter::set_data3 0 2 870 871 336 /** * Sets the write row to a particular 3-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ /** * Sets the write row to a particular 3-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 149 inline void GeomVertexWriter::set_data3(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z); inline void GeomVertexWriter::set_data3(LVecBase3 const &data); 2467 9 set_data4 0 4 3275 27 GeomVertexWriter::set_data4 0 2 872 873 336 /** * Sets the write row to a particular 4-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ /** * Sets the write row to a particular 4-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 164 inline void GeomVertexWriter::set_data4(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z, PN_stdfloat w); inline void GeomVertexWriter::set_data4(LVecBase4 const &data); 2468 11 set_matrix3 0 4 3275 29 GeomVertexWriter::set_matrix3 0 1 874 219 /** * Sets the write row to a 3-by-3 matrix, and advances the write row. This is * a special method that can only be used on matrix columns. * * It is an error for the write row to advance past the end of data. */ 63 inline void GeomVertexWriter::set_matrix3(LMatrix3 const &mat); 2469 11 set_matrix4 0 4 3275 29 GeomVertexWriter::set_matrix4 0 1 875 219 /** * Sets the write row to a 4-by-4 matrix, and advances the write row. This is * a special method that can only be used on matrix columns. * * It is an error for the write row to advance past the end of data. */ 63 inline void GeomVertexWriter::set_matrix4(LMatrix4 const &mat); 2470 10 set_data1i 0 4 3275 28 GeomVertexWriter::set_data1i 0 1 876 167 /** * Sets the write row to a particular 1-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 51 inline void GeomVertexWriter::set_data1i(int data); 2471 10 set_data2i 0 4 3275 28 GeomVertexWriter::set_data2i 0 2 877 878 336 /** * Sets the write row to a particular 2-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ /** * Sets the write row to a particular 2-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 121 inline void GeomVertexWriter::set_data2i(int a, int b); inline void GeomVertexWriter::set_data2i(LVecBase2i const &data); 2472 10 set_data3i 0 4 3275 28 GeomVertexWriter::set_data3i 0 2 879 880 336 /** * Sets the write row to a particular 3-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ /** * Sets the write row to a particular 3-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 128 inline void GeomVertexWriter::set_data3i(int a, int b, int c); inline void GeomVertexWriter::set_data3i(LVecBase3i const &data); 2473 10 set_data4i 0 4 3275 28 GeomVertexWriter::set_data4i 0 2 881 882 336 /** * Sets the write row to a particular 4-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ /** * Sets the write row to a particular 4-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 135 inline void GeomVertexWriter::set_data4i(int a, int b, int c, int d); inline void GeomVertexWriter::set_data4i(LVecBase4i const &data); 2474 10 add_data1f 0 4 3275 28 GeomVertexWriter::add_data1f 0 1 883 191 /** * Sets the write row to a particular 1-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 53 inline void GeomVertexWriter::add_data1f(float data); 2475 10 add_data2f 0 4 3275 28 GeomVertexWriter::add_data2f 0 2 884 885 384 /** * Sets the write row to a particular 2-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ /** * Sets the write row to a particular 2-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 125 inline void GeomVertexWriter::add_data2f(float x, float y); inline void GeomVertexWriter::add_data2f(LVecBase2f const &data); 2476 10 add_data3f 0 4 3275 28 GeomVertexWriter::add_data3f 0 2 886 887 384 /** * Sets the write row to a particular 3-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ /** * Sets the write row to a particular 3-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 134 inline void GeomVertexWriter::add_data3f(float x, float y, float z); inline void GeomVertexWriter::add_data3f(LVecBase3f const &data); 2477 10 add_data4f 0 4 3275 28 GeomVertexWriter::add_data4f 0 2 888 889 384 /** * Sets the write row to a particular 4-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ /** * Sets the write row to a particular 4-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 143 inline void GeomVertexWriter::add_data4f(float x, float y, float z, float w); inline void GeomVertexWriter::add_data4f(LVecBase4f const &data); 2478 12 add_matrix3f 0 4 3275 30 GeomVertexWriter::add_matrix3f 0 1 890 243 /** * Sets the write row to a 3-by-3 matrix, and advances the write row. This is * a special method that can only be used on matrix columns. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 65 inline void GeomVertexWriter::add_matrix3f(LMatrix3f const &mat); 2479 12 add_matrix4f 0 4 3275 30 GeomVertexWriter::add_matrix4f 0 1 891 243 /** * Sets the write row to a 4-by-4 matrix, and advances the write row. This is * a special method that can only be used on matrix columns. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 65 inline void GeomVertexWriter::add_matrix4f(LMatrix4f const &mat); 2480 10 add_data1d 0 4 3275 28 GeomVertexWriter::add_data1d 0 1 892 191 /** * Sets the write row to a particular 1-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 54 inline void GeomVertexWriter::add_data1d(double data); 2481 10 add_data2d 0 4 3275 28 GeomVertexWriter::add_data2d 0 2 893 894 384 /** * Sets the write row to a particular 2-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ /** * Sets the write row to a particular 2-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 127 inline void GeomVertexWriter::add_data2d(double x, double y); inline void GeomVertexWriter::add_data2d(LVecBase2d const &data); 2482 10 add_data3d 0 4 3275 28 GeomVertexWriter::add_data3d 0 2 895 896 384 /** * Sets the write row to a particular 3-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ /** * Sets the write row to a particular 3-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 137 inline void GeomVertexWriter::add_data3d(double x, double y, double z); inline void GeomVertexWriter::add_data3d(LVecBase3d const &data); 2483 10 add_data4d 0 4 3275 28 GeomVertexWriter::add_data4d 0 2 897 898 384 /** * Sets the write row to a particular 4-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ /** * Sets the write row to a particular 4-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 147 inline void GeomVertexWriter::add_data4d(double x, double y, double z, double w); inline void GeomVertexWriter::add_data4d(LVecBase4d const &data); 2484 12 add_matrix3d 0 4 3275 30 GeomVertexWriter::add_matrix3d 0 1 899 243 /** * Sets the write row to a 3-by-3 matrix, and advances the write row. This is * a special method that can only be used on matrix columns. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 65 inline void GeomVertexWriter::add_matrix3d(LMatrix3d const &mat); 2485 12 add_matrix4d 0 4 3275 30 GeomVertexWriter::add_matrix4d 0 1 900 243 /** * Sets the write row to a 4-by-4 matrix, and advances the write row. This is * a special method that can only be used on matrix columns. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 65 inline void GeomVertexWriter::add_matrix4d(LMatrix4d const &mat); 2486 9 add_data1 0 4 3275 27 GeomVertexWriter::add_data1 0 1 901 191 /** * Sets the write row to a particular 1-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 58 inline void GeomVertexWriter::add_data1(PN_stdfloat data); 2487 9 add_data2 0 4 3275 27 GeomVertexWriter::add_data2 0 2 902 903 384 /** * Sets the write row to a particular 2-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ /** * Sets the write row to a particular 2-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 134 inline void GeomVertexWriter::add_data2(PN_stdfloat x, PN_stdfloat y); inline void GeomVertexWriter::add_data2(LVecBase2 const &data); 2488 9 add_data3 0 4 3275 27 GeomVertexWriter::add_data3 0 2 904 905 384 /** * Sets the write row to a particular 3-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ /** * Sets the write row to a particular 3-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 149 inline void GeomVertexWriter::add_data3(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z); inline void GeomVertexWriter::add_data3(LVecBase3 const &data); 2489 9 add_data4 0 4 3275 27 GeomVertexWriter::add_data4 0 2 906 907 384 /** * Sets the write row to a particular 4-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ /** * Sets the write row to a particular 4-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 164 inline void GeomVertexWriter::add_data4(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z, PN_stdfloat w); inline void GeomVertexWriter::add_data4(LVecBase4 const &data); 2490 11 add_matrix3 0 4 3275 29 GeomVertexWriter::add_matrix3 0 1 908 243 /** * Sets the write row to a 3-by-3 matrix, and advances the write row. This is * a special method that can only be used on matrix columns. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 63 inline void GeomVertexWriter::add_matrix3(LMatrix3 const &mat); 2491 11 add_matrix4 0 4 3275 29 GeomVertexWriter::add_matrix4 0 1 909 243 /** * Sets the write row to a 4-by-4 matrix, and advances the write row. This is * a special method that can only be used on matrix columns. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 63 inline void GeomVertexWriter::add_matrix4(LMatrix4 const &mat); 2492 10 add_data1i 0 4 3275 28 GeomVertexWriter::add_data1i 0 1 910 191 /** * Sets the write row to a particular 1-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 51 inline void GeomVertexWriter::add_data1i(int data); 2493 10 add_data2i 0 4 3275 28 GeomVertexWriter::add_data2i 0 2 911 912 384 /** * Sets the write row to a particular 2-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ /** * Sets the write row to a particular 2-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 121 inline void GeomVertexWriter::add_data2i(int a, int b); inline void GeomVertexWriter::add_data2i(LVecBase2i const &data); 2494 10 add_data3i 0 4 3275 28 GeomVertexWriter::add_data3i 0 2 913 914 384 /** * Sets the write row to a particular 3-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ /** * Sets the write row to a particular 3-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 128 inline void GeomVertexWriter::add_data3i(int a, int b, int c); inline void GeomVertexWriter::add_data3i(LVecBase3i const &data); 2495 10 add_data4i 0 4 3275 28 GeomVertexWriter::add_data4i 0 2 915 916 384 /** * Sets the write row to a particular 4-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ /** * Sets the write row to a particular 4-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 135 inline void GeomVertexWriter::add_data4i(int a, int b, int c, int d); inline void GeomVertexWriter::add_data4i(LVecBase4i const &data); 2496 6 output 0 4 3275 24 GeomVertexWriter::output 0 1 917 10 /** * */ 55 void GeomVertexWriter::output(std::ostream &out) const; 2497 26 upcast_to_GeomVertexWriter 0 12 3276 46 GeomVertexRewriter::upcast_to_GeomVertexWriter 0 1 942 50 upcast from GeomVertexRewriter to GeomVertexWriter 71 GeomVertexWriter *GeomVertexRewriter::upcast_to_GeomVertexWriter(void); 2498 30 downcast_to_GeomVertexRewriter 0 12 3275 48 GeomVertexWriter::downcast_to_GeomVertexRewriter 0 0 52 downcast from GeomVertexWriter to GeomVertexRewriter 75 GeomVertexRewriter *GeomVertexWriter::downcast_to_GeomVertexRewriter(void); 2499 26 upcast_to_GeomVertexReader 0 12 3276 46 GeomVertexRewriter::upcast_to_GeomVertexReader 0 1 943 50 upcast from GeomVertexRewriter to GeomVertexReader 71 GeomVertexReader *GeomVertexRewriter::upcast_to_GeomVertexReader(void); 2500 30 downcast_to_GeomVertexRewriter 0 12 3274 48 GeomVertexReader::downcast_to_GeomVertexRewriter 0 0 52 downcast from GeomVertexReader to GeomVertexRewriter 75 GeomVertexRewriter *GeomVertexReader::downcast_to_GeomVertexRewriter(void); 2501 18 GeomVertexRewriter 0 4 3276 38 GeomVertexRewriter::GeomVertexRewriter 0 6 918 919 920 921 922 923 643 /** * Constructs an invalid GeomVertexRewriter. You must use the assignment * operator to assign a valid GeomVertexRewriter to this object before you can * use it. */ /** * Constructs a new rewriter to process the vertices of the indicated data * object. */ /** * Constructs a new rewriter to process the vertices of the indicated data * object. This flavor creates the rewriter specifically to process the named * data type. */ /** * Constructs a new rewriter to process the vertices of the indicated array * only. */ /** * Constructs a new rewriter to process the vertices of the indicated array * only. */ /** * */ 747 inline GeomVertexRewriter::GeomVertexRewriter(Thread *current_thread = Thread::get_current_thread()); inline GeomVertexRewriter::GeomVertexRewriter(GeomVertexData *vertex_data, Thread *current_thread = Thread::get_current_thread()); inline GeomVertexRewriter::GeomVertexRewriter(GeomVertexData *vertex_data, CPT_InternalName name, Thread *current_thread = Thread::get_current_thread()); inline GeomVertexRewriter::GeomVertexRewriter(GeomVertexArrayData *array_data, Thread *current_thread = Thread::get_current_thread()); inline GeomVertexRewriter::GeomVertexRewriter(GeomVertexArrayData *array_data, int column, Thread *current_thread = Thread::get_current_thread()); inline GeomVertexRewriter::GeomVertexRewriter(GeomVertexRewriter const ©); 2502 10 operator = 0 4 3276 30 GeomVertexRewriter::operator = 0 1 924 0 75 inline void GeomVertexRewriter::operator =(GeomVertexRewriter const ©); 2503 19 ~GeomVertexRewriter 0 4 3276 39 GeomVertexRewriter::~GeomVertexRewriter 0 0 10 /** * */ 53 inline GeomVertexRewriter::~GeomVertexRewriter(void); 2504 15 get_vertex_data 0 4 3276 35 GeomVertexRewriter::get_vertex_data 0 1 925 74 /** * Returns the vertex data object that the rewriter is processing. */ 71 inline GeomVertexData *GeomVertexRewriter::get_vertex_data(void) const; 2505 14 get_array_data 0 4 3276 34 GeomVertexRewriter::get_array_data 0 1 926 92 /** * Returns the particular array object that the rewriter is currently * processing. */ 75 inline GeomVertexArrayData *GeomVertexRewriter::get_array_data(void) const; 2506 16 get_array_handle 0 4 3276 36 GeomVertexRewriter::get_array_handle 0 1 927 245 /** * Returns the write handle to the array object that the rewriter is currently * processing. This low-level call should be used with caution; be careful * with modifying the data in the handle out from under the * GeomVertexRewriter. */ 83 inline GeomVertexArrayDataHandle *GeomVertexRewriter::get_array_handle(void) const; 2507 10 get_stride 0 4 3276 30 GeomVertexRewriter::get_stride 0 1 928 199 /** * Returns the per-row stride (bytes between consecutive rows) of the * underlying vertex array. This low-level information is normally not needed * to use the GeomVertexRewriter directly. */ 62 inline std::size_t GeomVertexRewriter::get_stride(void) const; 2508 18 get_current_thread 0 4 3276 38 GeomVertexRewriter::get_current_thread 0 1 929 120 /** * Returns the Thread pointer of the currently-executing thread, as passed to * the constructor of this object. */ 66 inline Thread *GeomVertexRewriter::get_current_thread(void) const; 2509 10 set_column 0 4 3276 30 GeomVertexRewriter::set_column 0 3 930 931 932 1027 /** * Sets up the rewriter to use the nth data type of the GeomVertexFormat, * numbering from 0. * * This also resets both the read and write row numbers to the start row (the * same value passed to a previous call to set_row(), or 0 if set_row() was * never called.) * * The return value is true if the data type is valid, false otherwise. */ /** * Sets up the rewriter to use the data type with the indicated name. * * This also resets both the read and write row numbers to the start row (the * same value passed to a previous call to set_row(), or 0 if set_row() was * never called.) * * The return value is true if the data type is valid, false otherwise. */ /** * Sets up the rewriter to use the indicated column description on the given * array. * * This also resets both the read and write row numbers to the start row (the * same value passed to a previous call to set_row(), or 0 if set_row() was * never called.) * * The return value is true if the data type is valid, false otherwise. */ 209 inline bool GeomVertexRewriter::set_column(int column); inline bool GeomVertexRewriter::set_column(CPT_InternalName name); inline bool GeomVertexRewriter::set_column(int array, GeomVertexColumn const *column); 2510 5 clear 0 4 3276 25 GeomVertexRewriter::clear 0 1 933 62 /** * Resets the GeomVertexRewriter to the initial state. */ 44 inline void GeomVertexRewriter::clear(void); 2511 10 has_column 0 4 3276 30 GeomVertexRewriter::has_column 0 1 934 116 /** * Returns true if a valid data type has been successfully set, or false if * the data type does not exist. */ 55 inline bool GeomVertexRewriter::has_column(void) const; 2512 9 get_array 0 4 3276 29 GeomVertexRewriter::get_array 0 1 935 95 /** * Returns the array index containing the data type that the rewriter is * working on. */ 53 inline int GeomVertexRewriter::get_array(void) const; 2513 10 get_column 0 4 3276 30 GeomVertexRewriter::get_column 0 1 936 84 /** * Returns the description of the data type that the rewriter is working on. */ 74 inline GeomVertexColumn const *GeomVertexRewriter::get_column(void) const; 2514 14 set_row_unsafe 0 4 3276 34 GeomVertexRewriter::set_row_unsafe 0 1 937 344 /** * Sets the start row to the indicated value, without internal checks. This * is the same as set_row(), but it does not check for the possibility that * the array has been reallocated internally for some reason; use only when * you are confident that the array is unchanged and you really need every bit * of available performance. */ 56 inline void GeomVertexRewriter::set_row_unsafe(int row); 2515 7 set_row 0 4 3276 27 GeomVertexRewriter::set_row 0 1 938 132 /** * Sets the start, write, and write index to the indicated value. The * rewriter will begin traversing from the given row. */ 49 inline void GeomVertexRewriter::set_row(int row); 2516 13 get_start_row 0 4 3276 33 GeomVertexRewriter::get_start_row 0 1 939 127 /** * Returns the row index at which the rewriter started. It will return to * this row if you reset the current column. */ 57 inline int GeomVertexRewriter::get_start_row(void) const; 2517 9 is_at_end 0 4 3276 29 GeomVertexRewriter::is_at_end 0 1 940 116 /** * Returns true if the reader or writer is currently at the end of the list of * vertices, false otherwise. */ 54 inline bool GeomVertexRewriter::is_at_end(void) const; 2518 6 output 0 4 3276 26 GeomVertexRewriter::output 0 1 941 10 /** * */ 57 void GeomVertexRewriter::output(std::ostream &out) const; 2519 12 SamplerState 0 4 3277 26 SamplerState::SamplerState 0 2 944 945 72 /** * Creates a new SamplerState initialized to the default values. */ 107 inline SamplerState::SamplerState(void); inline SamplerState::SamplerState(SamplerState const &) = default; 2520 11 get_default 0 4 3277 25 SamplerState::get_default 0 1 946 83 /** * Returns a reference to the global default immutable SamplerState object. */ 66 static inline SamplerState const &SamplerState::get_default(void); 2521 10 set_wrap_u 0 4 3277 24 SamplerState::set_wrap_u 0 1 947 221 /** * This setting determines what happens when the SamplerState is sampled with * a U value outside the range 0.0-1.0. The default is WM_repeat, which * indicates that the SamplerState should repeat indefinitely. */ 66 inline void SamplerState::set_wrap_u(SamplerState::WrapMode wrap); 2522 10 set_wrap_v 0 4 3277 24 SamplerState::set_wrap_v 0 1 948 221 /** * This setting determines what happens when the SamplerState is sampled with * a V value outside the range 0.0-1.0. The default is WM_repeat, which * indicates that the SamplerState should repeat indefinitely. */ 66 inline void SamplerState::set_wrap_v(SamplerState::WrapMode wrap); 2523 10 set_wrap_w 0 4 3277 24 SamplerState::set_wrap_w 0 1 949 67 /** * The W wrap direction is only used for 3-d SamplerStates. */ 66 inline void SamplerState::set_wrap_w(SamplerState::WrapMode wrap); 2524 13 set_minfilter 0 4 3277 27 SamplerState::set_minfilter 0 1 950 106 /** * Sets the filtering method that should be used when viewing the SamplerState * from a distance. */ 73 inline void SamplerState::set_minfilter(SamplerState::FilterType filter); 2525 13 set_magfilter 0 4 3277 27 SamplerState::set_magfilter 0 1 951 99 /** * Sets the filtering method that should be used when viewing the SamplerState * up close. */ 73 inline void SamplerState::set_magfilter(SamplerState::FilterType filter); 2526 22 set_anisotropic_degree 0 4 3277 36 SamplerState::set_anisotropic_degree 0 1 952 418 /** * Specifies the level of anisotropic filtering to apply to the SamplerState. * Set this 0 to indicate the default value, which is specified in the * SamplerState-anisotropic-degree config variable. * * To explicitly disable anisotropic filtering, set this value to 1. To * explicitly enable anisotropic filtering, set it to a value higher than 1; * larger numbers indicate greater degrees of filtering. */ 73 inline void SamplerState::set_anisotropic_degree(int anisotropic_degree); 2527 16 set_border_color 0 4 3277 30 SamplerState::set_border_color 0 1 953 198 /** * Specifies the solid color of the SamplerState's border. Some OpenGL * implementations use a border for tiling SamplerStates; in Panda, it is only * used for specifying the clamp color. */ 64 inline void SamplerState::set_border_color(LColor const &color); 2528 11 set_min_lod 0 4 3277 25 SamplerState::set_min_lod 0 1 954 123 /** * Sets the minimum level of detail that will be used when sampling this * texture. This may be a negative value. */ 59 inline void SamplerState::set_min_lod(PN_stdfloat min_lod); 2529 11 set_max_lod 0 4 3277 25 SamplerState::set_max_lod 0 1 955 159 /** * Sets the maximum level of detail that will be used when sampling this * texture. This may exceed the number of mipmap levels that the texture has. */ 59 inline void SamplerState::set_max_lod(PN_stdfloat max_lod); 2530 12 set_lod_bias 0 4 3277 26 SamplerState::set_lod_bias 0 1 956 211 /** * Sets the value that will be added to the level of detail when sampling the * texture. This may be a negative value, although some graphics hardware may * not support the use of negative LOD values. */ 61 inline void SamplerState::set_lod_bias(PN_stdfloat lod_bias); 2531 10 get_wrap_u 0 4 3277 24 SamplerState::get_wrap_u 0 1 957 67 /** * Returns the wrap mode of the texture in the U direction. */ 67 inline SamplerState::WrapMode SamplerState::get_wrap_u(void) const; 2532 10 get_wrap_v 0 4 3277 24 SamplerState::get_wrap_v 0 1 958 67 /** * Returns the wrap mode of the texture in the V direction. */ 67 inline SamplerState::WrapMode SamplerState::get_wrap_v(void) const; 2533 10 get_wrap_w 0 4 3277 24 SamplerState::get_wrap_w 0 1 959 116 /** * Returns the wrap mode of the texture in the W direction. This is the depth * direction of 3-d textures. */ 67 inline SamplerState::WrapMode SamplerState::get_wrap_w(void) const; 2534 13 get_minfilter 0 4 3277 27 SamplerState::get_minfilter 0 1 960 214 /** * Returns the filter mode of the texture for minification. If this is one of * the mipmap constants, then the texture requires mipmaps. This may return * FT_default; see also get_effective_minfilter(). */ 72 inline SamplerState::FilterType SamplerState::get_minfilter(void) const; 2535 13 get_magfilter 0 4 3277 27 SamplerState::get_magfilter 0 1 961 179 /** * Returns the filter mode of the texture for magnification. The mipmap * constants are invalid here. This may return FT_default; see also * get_effective_minfilter(). */ 72 inline SamplerState::FilterType SamplerState::get_magfilter(void) const; 2536 23 get_effective_minfilter 0 4 3277 37 SamplerState::get_effective_minfilter 0 1 962 200 /** * Returns the filter mode of the texture for minification, with special * treatment for FT_default. This will normally not return FT_default, unless * there is an error in the config file. */ 75 SamplerState::FilterType SamplerState::get_effective_minfilter(void) const; 2537 23 get_effective_magfilter 0 4 3277 37 SamplerState::get_effective_magfilter 0 1 963 201 /** * Returns the filter mode of the texture for magnification, with special * treatment for FT_default. This will normally not return FT_default, unless * there is an error in the config file. */ 75 SamplerState::FilterType SamplerState::get_effective_magfilter(void) const; 2538 22 get_anisotropic_degree 0 4 3277 36 SamplerState::get_anisotropic_degree 0 1 964 198 /** * Returns the degree of anisotropic filtering that should be applied to the * texture. This value may return 0, indicating the default value; see also * get_effective_anisotropic_degree. */ 60 inline int SamplerState::get_anisotropic_degree(void) const; 2539 32 get_effective_anisotropic_degree 0 4 3277 46 SamplerState::get_effective_anisotropic_degree 0 1 965 184 /** * Returns the degree of anisotropic filtering that should be applied to the * texture. This value will normally not return 0, unless there is an error * in the config file. */ 70 inline int SamplerState::get_effective_anisotropic_degree(void) const; 2540 16 get_border_color 0 4 3277 30 SamplerState::get_border_color 0 1 966 186 /** * Returns the solid color of the texture's border. Some OpenGL * implementations use a border for tiling textures; in Panda, it is only used * for specifying the clamp color. */ 64 inline LColor const &SamplerState::get_border_color(void) const; 2541 11 get_min_lod 0 4 3277 25 SamplerState::get_min_lod 0 1 967 99 /** * Returns the minimum level of detail that will be observed when sampling * this texture. */ 57 inline PN_stdfloat SamplerState::get_min_lod(void) const; 2542 11 get_max_lod 0 4 3277 25 SamplerState::get_max_lod 0 1 968 99 /** * Returns the maximum level of detail that will be observed when sampling * this texture. */ 57 inline PN_stdfloat SamplerState::get_max_lod(void) const; 2543 12 get_lod_bias 0 4 3277 26 SamplerState::get_lod_bias 0 1 969 108 /** * Returns the bias that will be added to the texture level of detail when * sampling this texture. */ 58 inline PN_stdfloat SamplerState::get_lod_bias(void) const; 2544 12 uses_mipmaps 0 4 3277 26 SamplerState::uses_mipmaps 0 1 970 117 /** * Returns true if the minfilter settings on this sampler indicate the use of * mipmapping, false otherwise. */ 51 inline bool SamplerState::uses_mipmaps(void) const; 2545 9 is_mipmap 0 4 3277 23 SamplerState::is_mipmap 0 1 971 109 /** * Returns true if the indicated filter type requires the use of mipmaps, or * false if it does not. */ 74 static inline bool SamplerState::is_mipmap(SamplerState::FilterType type); 2546 18 format_filter_type 0 4 3277 32 SamplerState::format_filter_type 0 1 972 71 /** * Returns the indicated FilterType converted to a string word. */ 81 static std::string SamplerState::format_filter_type(SamplerState::FilterType ft); 2547 18 string_filter_type 0 4 3277 32 SamplerState::string_filter_type 0 1 973 165 /** * Returns the FilterType value associated with the given string * representation, or FT_invalid if the string does not match any known * FilterType value. */ 89 static SamplerState::FilterType SamplerState::string_filter_type(std::string const &str); 2548 16 format_wrap_mode 0 4 3277 30 SamplerState::format_wrap_mode 0 1 974 69 /** * Returns the indicated WrapMode converted to a string word. */ 77 static std::string SamplerState::format_wrap_mode(SamplerState::WrapMode wm); 2549 16 string_wrap_mode 0 4 3277 30 SamplerState::string_wrap_mode 0 1 975 158 /** * Returns the WrapMode value associated with the given string representation, * or WM_invalid if the string does not match any known WrapMode value. */ 85 static SamplerState::WrapMode SamplerState::string_wrap_mode(std::string const &str); 2550 11 operator == 0 4 3277 25 SamplerState::operator == 0 1 976 0 71 inline bool SamplerState::operator ==(SamplerState const &other) const; 2551 11 operator != 0 4 3277 25 SamplerState::operator != 0 1 977 0 71 inline bool SamplerState::operator !=(SamplerState const &other) const; 2552 10 operator < 0 4 3277 24 SamplerState::operator < 0 1 978 0 70 inline bool SamplerState::operator <(SamplerState const &other) const; 2553 7 prepare 0 4 3277 21 SamplerState::prepare 0 1 979 250 /** * Indicates that the sampler should be enqueued to be prepared in the * indicated prepared_objects at the beginning of the next frame. * * Use this function instead of prepare_now() to preload samplers from a user * interface standpoint. */ 76 void SamplerState::prepare(PreparedGraphicsObjects *prepared_objects) const; 2554 11 is_prepared 0 4 3277 25 SamplerState::is_prepared 0 1 980 134 /** * Returns true if the sampler has already been prepared or enqueued for * preparation on the indicated GSG, false otherwise. */ 80 bool SamplerState::is_prepared(PreparedGraphicsObjects *prepared_objects) const; 2555 7 release 0 4 3277 21 SamplerState::release 0 1 981 157 /** * Frees the texture context only on the indicated object, if it exists there. * Returns true if it was released, false if it had not been prepared. */ 76 void SamplerState::release(PreparedGraphicsObjects *prepared_objects) const; 2556 11 prepare_now 0 4 3277 25 SamplerState::prepare_now 0 1 982 531 /** * Creates a context for the sampler on the particular GSG, if it does not * already exist. Returns the new (or old) SamplerContext. This assumes that * the GraphicsStateGuardian is the currently active rendering context and * that it is ready to accept new textures. If this is not necessarily the * case, you should use prepare() instead. * * Normally, this is not called directly except by the GraphicsStateGuardian; * a sampler does not need to be explicitly prepared by the user before it may * be rendered. */ 123 SamplerContext *SamplerState::prepare_now(PreparedGraphicsObjects *prepared_objects, GraphicsStateGuardianBase *gsg) const; 2557 14 get_class_type 0 4 3277 28 SamplerState::get_class_type 0 1 983 0 53 static TypeHandle SamplerState::get_class_type(void); 2558 13 ~SamplerState 0 4 3277 27 SamplerState::~SamplerState 0 0 0 34 SamplerState::~SamplerState(void); 2559 37 upcast_to_TypedWritableReferenceCount 0 12 3281 46 Texture::upcast_to_TypedWritableReferenceCount 0 1 1206 50 upcast from Texture to TypedWritableReferenceCount 82 TypedWritableReferenceCount *Texture::upcast_to_TypedWritableReferenceCount(void); 2560 19 downcast_to_Texture 0 12 3185 48 TypedWritableReferenceCount::downcast_to_Texture 0 0 52 downcast from TypedWritableReferenceCount to Texture 64 Texture *TypedWritableReferenceCount::downcast_to_Texture(void); 2561 17 upcast_to_Namable 0 12 3281 26 Texture::upcast_to_Namable 0 1 1207 30 upcast from Texture to Namable 42 Namable *Texture::upcast_to_Namable(void); 2562 19 downcast_to_Texture 0 12 3169 28 Namable::downcast_to_Texture 0 0 32 downcast from Namable to Texture 44 Texture *Namable::downcast_to_Texture(void); 2563 7 Texture 0 4 3281 16 Texture::Texture 0 1 984 278 /** * Constructs an empty texture. The default is to set up the texture as an * empty 2-d texture; follow up with one of the variants of setup_texture() if * this is not what you want. */ /** * Use Texture::make_copy() to make a duplicate copy of an existing Texture. */ 62 explicit Texture::Texture(std::string const &name = string()); 2564 8 ~Texture 0 6 3281 17 Texture::~Texture 0 0 10 /** * */ 32 virtual Texture::~Texture(void); 2565 9 make_copy 0 4 3281 18 Texture::make_copy 0 1 985 369 /** * Returns a new copy of the same Texture. This copy, if applied to geometry, * will be copied into texture as a separate texture from the original, so it * will be duplicated in texture memory (and may be independently modified if * desired). * * If the Texture is a VideoTexture, the resulting duplicate may be animated * independently of the original. */ 59 inline PointerTo< Texture > Texture::make_copy(void) const; 2566 5 clear 0 4 3281 14 Texture::clear 0 1 986 90 /** * Reinitializes the texture to its default, empty state (except for the * name). */ 33 inline void Texture::clear(void); 2567 13 setup_texture 0 4 3281 22 Texture::setup_texture 0 1 987 243 /** * Sets the texture to the indicated type and dimensions, presumably in * preparation for calling read() or load(), or set_ram_image() or * modify_ram_image(), or use set_clear_color to let the texture be cleared to * a solid color. */ 169 inline void Texture::setup_texture(Texture::TextureType texture_type, int x_size, int y_size, int z_size, Texture::ComponentType component_type, Texture::Format format); 2568 16 setup_1d_texture 0 4 3281 25 Texture::setup_1d_texture 0 2 988 989 485 /** * Sets the texture as an empty 1-d texture with no dimensions. Follow up * with read() or load() to fill the texture properties and image data, or use * set_clear_color to let the texture be cleared to a solid color. */ /** * Sets the texture as an empty 1-d texture with the specified dimensions and * properties. Follow up with set_ram_image() or modify_ram_image() to fill * the image data, or use set_clear_color to let the texture be cleared to a * solid color. */ 158 inline void Texture::setup_1d_texture(void); inline void Texture::setup_1d_texture(int x_size, Texture::ComponentType component_type, Texture::Format format); 2569 16 setup_2d_texture 0 4 3281 25 Texture::setup_2d_texture 0 2 990 991 485 /** * Sets the texture as an empty 2-d texture with no dimensions. Follow up * with read() or load() to fill the texture properties and image data, or use * set_clear_color to let the texture be cleared to a solid color. */ /** * Sets the texture as an empty 2-d texture with the specified dimensions and * properties. Follow up with set_ram_image() or modify_ram_image() to fill * the image data, or use set_clear_color to let the texture be cleared to a * solid color. */ 170 inline void Texture::setup_2d_texture(void); inline void Texture::setup_2d_texture(int x_size, int y_size, Texture::ComponentType component_type, Texture::Format format); 2570 16 setup_3d_texture 0 4 3281 25 Texture::setup_3d_texture 0 2 992 993 496 /** * Sets the texture as an empty 3-d texture with no dimensions (though if you * know the depth ahead of time, it saves a bit of reallocation later). Follow * up with read() or load() to fill the texture properties and image data, or * use set_clear_color to let the texture be cleared to a solid color. */ /** * Sets the texture as an empty 3-d texture with the specified dimensions and * properties. Follow up with set_ram_image() or modify_ram_image() to fill * the image data. */ 192 inline void Texture::setup_3d_texture(int z_size = 1); inline void Texture::setup_3d_texture(int x_size, int y_size, int z_size, Texture::ComponentType component_type, Texture::Format format); 2571 14 setup_cube_map 0 4 3281 23 Texture::setup_cube_map 0 2 994 995 632 /** * Sets the texture as an empty cube map texture with no dimensions. Follow * up with read() or load() to fill the texture properties and image data, or * use set_clear_color to let the texture be cleared to a solid color. */ /** * Sets the texture as an empty cube map texture with the specified dimensions * and properties. Follow up with set_ram_image() or modify_ram_image() to * fill the image data, or use set_clear_color to let the texture be cleared * to a solid color. * * Note that a cube map should always consist of six square images, so x_size * and y_size will be the same, and z_size is always 6. */ 152 inline void Texture::setup_cube_map(void); inline void Texture::setup_cube_map(int size, Texture::ComponentType component_type, Texture::Format format); 2572 22 setup_2d_texture_array 0 4 3281 31 Texture::setup_2d_texture_array 0 2 996 997 585 /** * Sets the texture as an empty 2-d texture array with no dimensions (though * if you know the depth ahead of time, it saves a bit of reallocation later). * Follow up with read() or load() to fill the texture properties and image * data, or use set_clear_color to let the texture be cleared to a solid * color. */ /** * Sets the texture as an empty 2-d texture array with the specified * dimensions and properties. Follow up with set_ram_image() or * modify_ram_image() to fill the image data, or use set_clear_color to let * the texture be cleared to a solid color. */ 204 inline void Texture::setup_2d_texture_array(int z_size = 1); inline void Texture::setup_2d_texture_array(int x_size, int y_size, int z_size, Texture::ComponentType component_type, Texture::Format format); 2573 20 setup_cube_map_array 0 4 3281 29 Texture::setup_cube_map_array 0 2 998 999 675 /** * Sets the texture as cube map array with N cube maps. Note that this number * is not the same as the z_size. Follow up with read() or load() to fill the * texture properties and image data, or use set_clear_color to let the * texture be cleared to a solid color. * * @since 1.10.0 */ /** * Sets the texture as cube map array with N cube maps with the specified * dimensions and format. Follow up with set_ram_image() or * modify_ram_image() to fill the image data, or use set_clear_color to let * the texture be cleared to a solid color. * * The num_cube_maps given here is multiplied by six to become the z_size of * the image. * * @since 1.10.0 */ 196 inline void Texture::setup_cube_map_array(int num_cube_maps); inline void Texture::setup_cube_map_array(int size, int num_cube_maps, Texture::ComponentType component_type, Texture::Format format); 2574 20 setup_buffer_texture 0 4 3281 29 Texture::setup_buffer_texture 0 1 1000 329 /** * Sets the texture as an empty buffer texture with the specified size and * properties. Follow up with set_ram_image() or modify_ram_image() to fill * the image data, or use set_clear_color to let the texture be cleared to a * solid color. * * Note that a buffer texture's format needs to match the component type. */ 143 inline void Texture::setup_buffer_texture(int size, Texture::ComponentType component_type, Texture::Format format, GeomEnums::UsageHint usage); 2575 31 generate_normalization_cube_map 0 4 3281 40 Texture::generate_normalization_cube_map 0 1 1001 296 /** * Generates a special cube map image in the texture that can be used to apply * bump mapping effects: for each texel in the cube map that is indexed by the * 3-d texture coordinates (x, y, z), the resulting value is the normalized * vector (x, y, z) (compressed from -1..1 into 0..1). */ 56 void Texture::generate_normalization_cube_map(int size); 2576 24 generate_alpha_scale_map 0 4 3281 33 Texture::generate_alpha_scale_map 0 1 1002 253 /** * Generates a special 256x1 1-d texture that can be used to apply an * arbitrary alpha scale to objects by judicious use of texture matrix. The * texture is a gradient, with an alpha of 0 on the left (U = 0), and 255 on * the right (U = 1). */ 45 void Texture::generate_alpha_scale_map(void); 2577 11 clear_image 0 4 3281 20 Texture::clear_image 0 1 1003 445 /** * Clears the texture data without changing its format or resolution. The * texture is cleared on both the graphics hardware and from RAM, unlike * clear_ram_image, which only removes the data from RAM. * * If a clear color has been specified using set_clear_color, the texture will * be cleared using a solid color. * * The texture data will be cleared the first time in which the texture is * used after this method is called. */ 39 inline void Texture::clear_image(void); 2578 15 has_clear_color 0 4 3281 24 Texture::has_clear_color 0 1 1004 76 /** * Returns true if a color was previously set using set_clear_color. */ 49 inline bool Texture::has_clear_color(void) const; 2579 15 get_clear_color 0 4 3281 24 Texture::get_clear_color 0 1 1005 75 /** * Returns the color that was previously set using set_clear_color. */ 51 inline LColor Texture::get_clear_color(void) const; 2580 15 set_clear_color 0 4 3281 24 Texture::set_clear_color 0 1 1006 359 /** * Sets the color that will be used to fill the texture image in absence of * any image data. It is used when any of the setup_texture functions or * clear_image is called and image data is not provided using read() or * modify_ram_image(). * * This does not affect a texture that has already been cleared; call * clear_image to clear it again. */ 58 inline void Texture::set_clear_color(LColor const &color); 2581 17 clear_clear_color 0 4 3281 26 Texture::clear_clear_color 0 1 1007 161 /** * The opposite of set_clear_color. If the image is cleared after setting * this, its contents may be undefined (or may in fact not be cleared at all). */ 45 inline void Texture::clear_clear_color(void); 2582 14 get_clear_data 0 4 3281 23 Texture::get_clear_data 0 1 1008 94 /** * Returns the raw image data for a single pixel if it were set to the clear * color. */ 56 inline vector_uchar Texture::get_clear_data(void) const; 2583 4 read 0 4 3281 13 Texture::read 0 4 1009 1010 1011 1012 3436 /** * Reads the named filename into the texture. */ /** * Combine a 3-component image with a grayscale image to get a 4-component * image. * * See the description of the full-parameter read() method for the meaning of * the primary_file_num_channels and alpha_file_channel parameters. */ /** * Reads a single file into a single page or mipmap level, or automatically * reads a series of files into a series of pages and/or mipmap levels. * * See the description of the full-parameter read() method for the meaning of * the various parameters. */ /** * Reads the texture from the indicated filename. If * primary_file_num_channels is not 0, it specifies the number of components * to downgrade the image to if it is greater than this number. * * If the filename has the extension .txo, this implicitly reads a texture * object instead of a filename (which replaces all of the texture * properties). In this case, all the rest of the parameters are ignored, and * the filename should not contain any hash marks; just the one named file * will be read, since a single .txo file can contain all pages and mipmaps * necessary to define a texture. * * If alpha_fullpath is not empty, it specifies the name of a file from which * to retrieve the alpha. In this case, alpha_file_channel represents the * numeric channel of this image file to use as the resulting texture's alpha * channel; usually, this is 0 to indicate the grayscale combination of r, g, * b; or it may be a one-based channel number, e.g. 1 for the red channel, 2 * for the green channel, and so on. * * If read pages is false, then z indicates the page number into which this * image will be assigned. Normally this is 0 for the first (or only) page of * the texture. 3-D textures have one page for each level of depth, and cube * map textures always have six pages. * * If read_pages is true, multiple images will be read at once, one for each * page of a cube map or a 3-D texture. In this case, the filename should * contain a sequence of one or more hash marks ("#") which will be filled in * with the z value of each page, zero-based. In this case, the z parameter * indicates the maximum z value that will be loaded, or 0 to load all * filenames that exist. * * If read_mipmaps is false, then n indicates the mipmap level to which this * image will be assigned. Normally this is 0 for the base texture image, but * it is possible to load custom mipmap levels into the later images. After * the base texture image is loaded (thus defining the size of the texture), * you can call get_expected_num_mipmap_levels() to determine the maximum * sensible value for n. * * If read_mipmaps is true, multiple images will be read as above, but this * time the images represent the different mipmap levels of the texture image. * In this case, the n parameter indicates the maximum n value that will be * loaded, or 0 to load all filenames that exist (up to the expected number of * mipmap levels). * * If both read_pages and read_mipmaps is true, then both sequences will be * read; the filename should contain two sequences of hash marks, separated by * some character such as a hyphen, underscore, or dot. The first hash mark * sequence will be filled in with the mipmap level, while the second hash * mark sequence will be the page index. * * This method implicitly sets keep_ram_image to false. */ 683 bool Texture::read(Filename const &fullpath, LoaderOptions const &options = LoaderOptions()); bool Texture::read(Filename const &fullpath, Filename const &alpha_fullpath, int primary_file_num_channels, int alpha_file_channel, LoaderOptions const &options = LoaderOptions()); bool Texture::read(Filename const &fullpath, int z, int n, bool read_pages, bool read_mipmaps, LoaderOptions const &options = LoaderOptions()); bool Texture::read(Filename const &fullpath, Filename const &alpha_fullpath, int primary_file_num_channels, int alpha_file_channel, int z, int n, bool read_pages, bool read_mipmaps, BamCacheRecord *record = nullptr, LoaderOptions const &options = LoaderOptions()); 2584 5 write 0 4 3281 14 Texture::write 0 3 1013 1014 1015 2416 /** * Writes the texture to the named filename. */ /** * Writes a single page or mipmap level to a single file, or automatically * writes a series of pages and/or mipmap levels to a numbered series of * files. * * If the filename ends in the extension .txo, this implicitly writes a Panda * texture object (.txo) instead of an image file. In this case, the * remaining parameters are ignored, and only one file is written, which will * contain all of the pages and resident mipmap levels in the texture. * * If write_pages is false, then z indicates the page number to write. 3-D * textures have one page number for each level of depth; cube maps have six * pages number 0 through 5. Other kinds of textures have only one page, * numbered 0. If there are multiple views, the range of z is increased; the * total range is [0, get_num_pages()). * * If write_pages is true, then all pages of the texture will be written. In * this case z is ignored, and the filename should contain a sequence of hash * marks ("#") which will be filled in with the page index number. * * If write_mipmaps is false, then n indicates the mipmap level number to * write. Normally, this is 0, for the base texture image. Normally, the * mipmap levels of a texture are not available in RAM (they are generated * automatically by the graphics card). However, if you have the mipmap levels * available, for instance because you called generate_ram_mipmap_images() to * generate them internally, or you called * GraphicsEngine::extract_texture_data() to retrieve them from the graphics * card, then you may write out each mipmap level with this parameter. * * If write_mipmaps is true, then all mipmap levels of the texture will be * written. In this case n is ignored, and the filename should contain a * sequence of hash marks ("#") which will be filled in with the mipmap level * number. * * If both write_pages and write_mipmaps is true, then all pages and all * mipmap levels will be written. In this case, the filename should contain * two different sequences of hash marks, separated by a character such as a * hyphen, underscore, or dot. The first hash mark sequence will be filled in * with the mipmap level, while the second hash mark sequence will be the page * index. */ /** * Not to be confused with write(Filename), this method simply describes the * texture properties. */ 223 inline bool Texture::write(Filename const &fullpath); inline bool Texture::write(Filename const &fullpath, int z, int n, bool write_pages, bool write_mipmaps); void Texture::write(std::ostream &out, int indent_level) const; 2585 8 read_txo 0 4 3281 17 Texture::read_txo 0 1 1016 380 /** * Reads the texture from a Panda texture object. This defines the complete * Texture specification, including the image data as well as all texture * properties. This only works if the txo file contains a static Texture * image, as opposed to a subclass of Texture such as a movie texture. * * Pass a real filename if it is available, or empty string if it is not. */ 75 bool Texture::read_txo(std::istream &in, std::string const &filename = ""); 2586 13 make_from_txo 0 4 3281 22 Texture::make_from_txo 0 1 1017 310 /** * Constructs a new Texture object from the txo file. This is similar to * Texture::read_txo(), but it constructs and returns a new object, which * allows it to return a subclass of Texture (for instance, a movie texture). * * Pass a real filename if it is available, or empty string if it is not. */ 103 static PointerTo< Texture > Texture::make_from_txo(std::istream &in, std::string const &filename = ""); 2587 9 write_txo 0 4 3281 18 Texture::write_txo 0 1 1018 214 /** * Writes the texture to a Panda texture object. This defines the complete * Texture specification, including the image data as well as all texture * properties. * * The filename is just for reference. */ 83 bool Texture::write_txo(std::ostream &out, std::string const &filename = "") const; 2588 8 read_dds 0 4 3281 17 Texture::read_dds 0 1 1019 381 /** * Reads the texture from a DDS file object. This is a Microsoft-defined file * format; it is similar in principle to a txo object, in that it is designed * to contain the texture image in a form as similar as possible to its * runtime image, and it can contain mipmaps, pre-compressed textures, and so * on. * * As with read_txo, the filename is just for reference. */ 101 bool Texture::read_dds(std::istream &in, std::string const &filename = "", bool header_only = false); 2589 8 read_ktx 0 4 3281 17 Texture::read_ktx 0 1 1020 379 /** * Reads the texture from a KTX file object. This is a Khronos-defined file * format; it is similar in principle to a dds object, in that it is designed * to contain the texture image in a form as similar as possible to its * runtime image, and it can contain mipmaps, pre-compressed textures, and so * on. * * As with read_dds, the filename is just for reference. */ 101 bool Texture::read_ktx(std::istream &in, std::string const &filename = "", bool header_only = false); 2590 4 load 0 4 3281 13 Texture::load 0 4 1021 1022 1023 1024 292 /** * Replaces the texture with the indicated image. */ /** * Stores the indicated image in the given page and mipmap level. See read(). */ /** * Replaces the texture with the indicated image. */ /** * Stores the indicated image in the given page and mipmap level. See read(). */ 419 inline bool Texture::load(PNMImage const &pnmimage, LoaderOptions const &options = LoaderOptions()); inline bool Texture::load(PNMImage const &pnmimage, int z, int n, LoaderOptions const &options = LoaderOptions()); inline bool Texture::load(PfmFile const &pfm, LoaderOptions const &options = LoaderOptions()); inline bool Texture::load(PfmFile const &pfm, int z, int n, LoaderOptions const &options = LoaderOptions()); 2591 14 load_sub_image 0 4 3281 23 Texture::load_sub_image 0 1 1025 328 /** * Stores the indicated image in a region of the texture. The texture * properties remain unchanged. This can be more efficient than updating an * entire texture, but has a few restrictions: for one, you must ensure that * the texture is still in RAM (eg. using set_keep_ram_image) and it may not * be compressed. */ 98 inline bool Texture::load_sub_image(PNMImage const &pnmimage, int x, int y, int z = 0, int n = 0); 2592 5 store 0 4 3281 14 Texture::store 0 4 1026 1027 1028 1029 344 /** * Saves the texture to the indicated PNMImage, but does not write it to disk. */ /** * Saves the indicated page and mipmap level of the texture to the PNMImage. */ /** * Saves the texture to the indicated PfmFile, but does not write it to disk. */ /** * Saves the indicated page and mipmap level of the texture to the PfmFile. */ 231 inline bool Texture::store(PNMImage &pnmimage) const; inline bool Texture::store(PNMImage &pnmimage, int z, int n) const; inline bool Texture::store(PfmFile &pfm) const; inline bool Texture::store(PfmFile &pfm, int z, int n) const; 2593 6 reload 0 4 3281 15 Texture::reload 0 1 1030 269 /** * Re-reads the Texture from its disk file. Useful when you know the image on * disk has recently changed, and you want to update the Texture image. * * Returns true on success, false on failure (in which case, the Texture may * or may not still be valid). */ 34 inline bool Texture::reload(void); 2594 12 load_related 0 4 3281 21 Texture::load_related 0 1 1031 189 /** * Loads a texture whose filename is derived by concatenating a suffix to the * filename of this texture. May return NULL, for example, if this texture * doesn't have a filename. */ 65 Texture *Texture::load_related(InternalName const *suffix) const; 2595 12 has_filename 0 4 3281 21 Texture::has_filename 0 1 1032 94 /** * Returns true if the filename has been set and is available. See * set_filename(). */ 46 inline bool Texture::has_filename(void) const; 2596 12 get_filename 0 4 3281 21 Texture::get_filename 0 1 1033 130 /** * Returns the filename that has been set. This is the name of the file as it * was requested. Also see get_fullpath(). */ 57 inline Filename const &Texture::get_filename(void) const; 2597 12 set_filename 0 4 3281 21 Texture::set_filename 0 1 1034 376 /** * Sets the name of the file that contains the image's contents. Normally, * this is set automatically when the image is loaded, for instance via * Texture::read(). * * The Texture's get_name() function used to return the filename, but now * returns just the basename (without the extension), which is a more useful * name for identifying an image in show code. */ 60 inline void Texture::set_filename(Filename const &filename); 2598 14 clear_filename 0 4 3281 23 Texture::clear_filename 0 1 1035 85 /** * Removes the alpha filename, if it was previously set. See set_filename(). */ 42 inline void Texture::clear_filename(void); 2599 18 has_alpha_filename 0 4 3281 27 Texture::has_alpha_filename 0 1 1036 106 /** * Returns true if the alpha_filename has been set and is available. See * set_alpha_filename(). */ 52 inline bool Texture::has_alpha_filename(void) const; 2600 18 get_alpha_filename 0 4 3281 27 Texture::get_alpha_filename 0 1 1037 214 /** * Returns the alpha_filename that has been set. If this is set, it * represents the name of the alpha component, which is stored in a separate * file. See also get_filename(), and get_alpha_fullpath(). */ 63 inline Filename const &Texture::get_alpha_filename(void) const; 2601 18 set_alpha_filename 0 4 3281 27 Texture::set_alpha_filename 0 1 1038 549 /** * Sets the name of the file that contains the image's alpha channel contents. * Normally, this is set automatically when the image is loaded, for instance * via Texture::read(). * * The Texture's get_filename() function returns the name of the image file * that was loaded into the buffer. In the case where a texture specified two * separate files to load, a 1- or 3-channel color image and a 1-channel alpha * image, this Filename is update to contain the name of the image file that * was loaded into the buffer's alpha channel. */ 72 inline void Texture::set_alpha_filename(Filename const &alpha_filename); 2602 20 clear_alpha_filename 0 4 3281 29 Texture::clear_alpha_filename 0 1 1039 94 /** * Removes the alpha filename, if it was previously set. See * set_alpha_filename(). */ 48 inline void Texture::clear_alpha_filename(void); 2603 12 has_fullpath 0 4 3281 21 Texture::has_fullpath 0 1 1040 94 /** * Returns true if the fullpath has been set and is available. See * set_fullpath(). */ 46 inline bool Texture::has_fullpath(void) const; 2604 12 get_fullpath 0 4 3281 21 Texture::get_fullpath 0 1 1041 135 /** * Returns the fullpath that has been set. This is the full path to the file * as it was found along the texture search path. */ 57 inline Filename const &Texture::get_fullpath(void) const; 2605 12 set_fullpath 0 4 3281 21 Texture::set_fullpath 0 1 1042 216 /** * Sets the full pathname to the file that contains the image's contents, as * found along the search path. Normally, this is set automatically when the * image is loaded, for instance via Texture::read(). */ 60 inline void Texture::set_fullpath(Filename const &fullpath); 2606 14 clear_fullpath 0 4 3281 23 Texture::clear_fullpath 0 1 1043 85 /** * Removes the alpha fullpath, if it was previously set. See set_fullpath(). */ 42 inline void Texture::clear_fullpath(void); 2607 18 has_alpha_fullpath 0 4 3281 27 Texture::has_alpha_fullpath 0 1 1044 106 /** * Returns true if the alpha_fullpath has been set and is available. See * set_alpha_fullpath(). */ 52 inline bool Texture::has_alpha_fullpath(void) const; 2608 18 get_alpha_fullpath 0 4 3281 27 Texture::get_alpha_fullpath 0 1 1045 168 /** * * Returns the alpha_fullpath that has been set. This is the full path to the * alpha part of the image file as it was found along the texture search path. */ 63 inline Filename const &Texture::get_alpha_fullpath(void) const; 2609 18 set_alpha_fullpath 0 4 3281 27 Texture::set_alpha_fullpath 0 1 1046 230 /** * Sets the full pathname to the file that contains the image's alpha channel * contents, as found along the search path. Normally, this is set * automatically when the image is loaded, for instance via Texture::read(). */ 72 inline void Texture::set_alpha_fullpath(Filename const &alpha_fullpath); 2610 20 clear_alpha_fullpath 0 4 3281 29 Texture::clear_alpha_fullpath 0 1 1047 94 /** * Removes the alpha fullpath, if it was previously set. See * set_alpha_fullpath(). */ 48 inline void Texture::clear_alpha_fullpath(void); 2611 10 get_x_size 0 4 3281 19 Texture::get_x_size 0 1 1048 60 /** * Returns the width of the texture image in texels. */ 43 inline int Texture::get_x_size(void) const; 2612 10 set_x_size 0 4 3281 19 Texture::set_x_size 0 1 1049 132 /** * Changes the x size indicated for the texture. This also implicitly unloads * the texture if it has already been loaded. */ 44 inline void Texture::set_x_size(int x_size); 2613 10 get_y_size 0 4 3281 19 Texture::get_y_size 0 1 1050 100 /** * Returns the height of the texture image in texels. For a 1-d texture, this * will be 1. */ 43 inline int Texture::get_y_size(void) const; 2614 10 set_y_size 0 4 3281 19 Texture::set_y_size 0 1 1051 132 /** * Changes the y size indicated for the texture. This also implicitly unloads * the texture if it has already been loaded. */ 44 inline void Texture::set_y_size(int y_size); 2615 10 get_z_size 0 4 3281 19 Texture::get_z_size 0 1 1052 154 /** * Returns the depth of the texture image in texels. For a 1-d texture or 2-d * texture, this will be 1. For a cube map texture, this will be 6. */ 43 inline int Texture::get_z_size(void) const; 2616 10 set_z_size 0 4 3281 19 Texture::set_z_size 0 1 1053 132 /** * Changes the z size indicated for the texture. This also implicitly unloads * the texture if it has already been loaded. */ 44 inline void Texture::set_z_size(int z_size); 2617 13 get_num_views 0 4 3281 22 Texture::get_num_views 0 1 1054 426 /** * Returns the number of "views" in the texture. A view is a completely * separate image stored within the Texture object. Most textures have only * one view, but a stereo texture, for instance, may have two views, a left * and a right image. Other uses for multiple views are not yet defined. * * If this value is greater than one, the additional views are accessed as * additional pages beyond get_z_size(). */ 46 inline int Texture::get_num_views(void) const; 2618 13 set_num_views 0 4 3281 22 Texture::set_num_views 0 1 1055 503 /** * Sets the number of "views" within a texture. A view is a completely * separate image stored within the Texture object. Most textures have only * one view, but a stereo texture, for instance, may have two views, a left * and a right image. Other uses for multiple views are not yet defined. * * If this value is greater than one, the additional views are accessed as * additional pages beyond get_z_size(). * * This also implicitly unloads the texture if it has already been loaded. */ 50 inline void Texture::set_num_views(int num_views); 2619 13 get_num_pages 0 4 3281 22 Texture::get_num_pages 0 1 1056 318 /** * Returns the total number of pages in the texture. Each "page" is a 2-d * texture image within the larger image--a face of a cube map, or a level of * a 3-d texture. Normally, get_num_pages() is the same as get_z_size(). * However, in a multiview texture, this returns get_z_size() * * get_num_views(). */ 46 inline int Texture::get_num_pages(void) const; 2620 18 get_num_components 0 4 3281 27 Texture::get_num_components 0 1 1057 194 /** * Returns the number of color components for each texel of the texture image. * This is 3 for an rgb texture or 4 for an rgba texture; it may also be 1 or * 2 for a grayscale texture. */ 51 inline int Texture::get_num_components(void) const; 2621 19 get_component_width 0 4 3281 28 Texture::get_component_width 0 1 1058 141 /** * Returns the number of bytes stored for each color component of a texel. * Typically this is 1, but it may be 2 for 16-bit texels. */ 52 inline int Texture::get_component_width(void) const; 2622 16 get_texture_type 0 4 3281 25 Texture::get_texture_type 0 1 1059 61 /** * Returns the overall interpretation of the texture. */ 66 inline Texture::TextureType Texture::get_texture_type(void) const; 2623 14 get_usage_hint 0 4 3281 23 Texture::get_usage_hint 0 1 1060 114 /** * Returns the usage hint specified for buffer textures, or UH_unspecified for * all other texture types. */ 64 inline GeomEnums::UsageHint Texture::get_usage_hint(void) const; 2624 10 get_format 0 4 3281 19 Texture::get_format 0 1 1061 153 /** * Returns the format of the texture, which represents both the semantic * meaning of the texels and, to some extent, their storage information. */ 55 inline Texture::Format Texture::get_format(void) const; 2625 10 set_format 0 4 3281 19 Texture::set_format 0 1 1062 112 /** * Changes the format value for the texture components. This implicitly sets * num_components as well. */ 56 inline void Texture::set_format(Texture::Format format); 2626 18 get_component_type 0 4 3281 27 Texture::get_component_type 0 1 1063 79 /** * Returns the numeric interpretation of each component of the texture. */ 70 inline Texture::ComponentType Texture::get_component_type(void) const; 2627 18 set_component_type 0 4 3281 27 Texture::set_component_type 0 1 1064 111 /** * Changes the data value for the texture components. This implicitly sets * component_width as well. */ 79 inline void Texture::set_component_type(Texture::ComponentType component_type); 2628 10 get_wrap_u 0 4 3281 19 Texture::get_wrap_u 0 1 1065 208 /** * Returns the wrap mode of the texture in the U direction. * * This returns the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 62 inline SamplerState::WrapMode Texture::get_wrap_u(void) const; 2629 10 set_wrap_u 0 4 3281 19 Texture::set_wrap_u 0 1 1066 349 /** * This setting determines what happens when the texture is sampled with a U * value outside the range 0.0-1.0. The default is WM_repeat, which indicates * that the texture should repeat indefinitely. * * This sets the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 56 inline void Texture::set_wrap_u(Texture::WrapMode wrap); 2630 10 get_wrap_v 0 4 3281 19 Texture::get_wrap_v 0 1 1067 208 /** * Returns the wrap mode of the texture in the V direction. * * This returns the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 62 inline SamplerState::WrapMode Texture::get_wrap_v(void) const; 2631 10 set_wrap_v 0 4 3281 19 Texture::set_wrap_v 0 1 1068 349 /** * This setting determines what happens when the texture is sampled with a V * value outside the range 0.0-1.0. The default is WM_repeat, which indicates * that the texture should repeat indefinitely. * * This sets the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 56 inline void Texture::set_wrap_v(Texture::WrapMode wrap); 2632 10 get_wrap_w 0 4 3281 19 Texture::get_wrap_w 0 1 1069 257 /** * Returns the wrap mode of the texture in the W direction. This is the depth * direction of 3-d textures. * * This returns the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 62 inline SamplerState::WrapMode Texture::get_wrap_w(void) const; 2633 10 set_wrap_w 0 4 3281 19 Texture::set_wrap_w 0 1 1070 200 /** * The W wrap direction is only used for 3-d textures. * * This sets the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 56 inline void Texture::set_wrap_w(Texture::WrapMode wrap); 2634 13 get_minfilter 0 4 3281 22 Texture::get_minfilter 0 1 1071 355 /** * Returns the filter mode of the texture for minification. If this is one of * the mipmap constants, then the texture requires mipmaps. This may return * FT_default; see also get_effective_minfilter(). * * This returns the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 67 inline SamplerState::FilterType Texture::get_minfilter(void) const; 2635 23 get_effective_minfilter 0 4 3281 32 Texture::get_effective_minfilter 0 1 1072 341 /** * Returns the filter mode of the texture for minification, with special * treatment for FT_default. This will normally not return FT_default, unless * there is an error in the config file. * * This returns the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 77 inline SamplerState::FilterType Texture::get_effective_minfilter(void) const; 2636 13 set_minfilter 0 4 3281 22 Texture::set_minfilter 0 1 1073 239 /** * Sets the filtering method that should be used when viewing the texture from * a distance. * * This sets the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 63 inline void Texture::set_minfilter(Texture::FilterType filter); 2637 13 get_magfilter 0 4 3281 22 Texture::get_magfilter 0 1 1074 320 /** * Returns the filter mode of the texture for magnification. The mipmap * constants are invalid here. This may return FT_default; see also * get_effective_minfilter(). * * This returns the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 67 inline SamplerState::FilterType Texture::get_magfilter(void) const; 2638 23 get_effective_magfilter 0 4 3281 32 Texture::get_effective_magfilter 0 1 1075 342 /** * Returns the filter mode of the texture for magnification, with special * treatment for FT_default. This will normally not return FT_default, unless * there is an error in the config file. * * This returns the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 77 inline SamplerState::FilterType Texture::get_effective_magfilter(void) const; 2639 13 set_magfilter 0 4 3281 22 Texture::set_magfilter 0 1 1076 232 /** * Sets the filtering method that should be used when viewing the texture up * close. * * This sets the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 63 inline void Texture::set_magfilter(Texture::FilterType filter); 2640 22 get_anisotropic_degree 0 4 3281 31 Texture::get_anisotropic_degree 0 1 1077 339 /** * Returns the degree of anisotropic filtering that should be applied to the * texture. This value may return 0, indicating the default value; see also * get_effective_anisotropic_degree. * * This returns the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 55 inline int Texture::get_anisotropic_degree(void) const; 2641 32 get_effective_anisotropic_degree 0 4 3281 41 Texture::get_effective_anisotropic_degree 0 1 1078 325 /** * Returns the degree of anisotropic filtering that should be applied to the * texture. This value will normally not return 0, unless there is an error * in the config file. * * This returns the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 65 inline int Texture::get_effective_anisotropic_degree(void) const; 2642 22 set_anisotropic_degree 0 4 3281 31 Texture::set_anisotropic_degree 0 1 1079 548 /** * Specifies the level of anisotropic filtering to apply to the texture. Set * this 0 to indicate the default value, which is specified in the texture- * anisotropic-degree config variable. * * To explicitly disable anisotropic filtering, set this value to 1. To * explicitly enable anisotropic filtering, set it to a value higher than 1; * larger numbers indicate greater degrees of filtering. * * This sets the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 68 inline void Texture::set_anisotropic_degree(int anisotropic_degree); 2643 16 get_border_color 0 4 3281 25 Texture::get_border_color 0 1 1080 327 /** * Returns the solid color of the texture's border. Some OpenGL * implementations use a border for tiling textures; in Panda, it is only used * for specifying the clamp color. * * This returns the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 52 inline LColor Texture::get_border_color(void) const; 2644 16 set_border_color 0 4 3281 25 Texture::set_border_color 0 1 1081 326 /** * Specifies the solid color of the texture's border. Some OpenGL * implementations use a border for tiling textures; in Panda, it is only used * for specifying the clamp color. * * This sets the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 59 inline void Texture::set_border_color(LColor const &color); 2645 15 has_compression 0 4 3281 24 Texture::has_compression 0 1 1082 430 /** * Returns true if the texture indicates it wants to be compressed, either * with CM_on or higher, or CM_default and compressed-textures is true. * * If true returned, this is not a guarantee that the texture is actually * successfully compressed on the GSG. It may be that the GSG does not * support the requested compression mode, in which case the texture may * actually be stored uncompressed in texture memory. */ 49 inline bool Texture::has_compression(void) const; 2646 15 get_compression 0 4 3281 24 Texture::get_compression 0 1 1083 431 /** * Returns the compression mode requested for this particular texture, or * CM_off if the texture is not to be compressed. * * If a value other than CM_off is returned, this is not a guarantee that the * texture is actually successfully compressed on the GSG. It may be that the * GSG does not support the requested compression mode, in which case the * texture may actually be stored uncompressed in texture memory. */ 69 inline Texture::CompressionMode Texture::get_compression(void) const; 2647 15 set_compression 0 4 3281 24 Texture::set_compression 0 1 1084 645 /** * Requests that this particular Texture be compressed when it is loaded into * texture memory. * * This refers to the internal compression of the texture image within texture * memory; it is not related to jpeg or png compression, which are disk file * compression formats. The actual disk file that generated this texture may * be stored in a compressed or uncompressed format supported by Panda; it * will be decompressed on load, and then recompressed by the graphics API if * this parameter is not CM_off. * * If the GSG does not support this texture compression mode, the texture will * silently be loaded uncompressed. */ 75 inline void Texture::set_compression(Texture::CompressionMode compression); 2648 21 get_render_to_texture 0 4 3281 30 Texture::get_render_to_texture 0 1 1085 378 /** * Returns a flag on the texture that indicates whether the texture is * intended to be used as a direct-render target, by binding a framebuffer to * a texture and rendering directly into the texture. * * Normally, a user should not need to set this flag directly; it is set * automatically by the low-level display code when a texture is bound to a * framebuffer. */ 55 inline bool Texture::get_render_to_texture(void) const; 2649 21 set_render_to_texture 0 4 3281 30 Texture::set_render_to_texture 0 1 1086 539 /** * Sets a flag on the texture that indicates whether the texture is intended * to be used as a direct-render target, by binding a framebuffer to a texture * and rendering directly into the texture. * * This controls some low-level choices made about the texture object itself. * For instance, compressed textures are disallowed when this flag is set * true. * * Normally, a user should not need to set this flag directly; it is set * automatically by the low-level display code when a texture is bound to a * framebuffer. */ 67 inline void Texture::set_render_to_texture(bool render_to_texture); 2650 19 get_default_sampler 0 4 3281 28 Texture::get_default_sampler 0 1 1087 222 /** * This returns the default sampler state for this texture, containing the * wrap and filter properties specified on the texture level; it may still be * overridden by a sampler state specified at a higher level. */ 68 inline SamplerState const &Texture::get_default_sampler(void) const; 2651 19 set_default_sampler 0 4 3281 28 Texture::set_default_sampler 0 1 1088 502 /** * This sets the default sampler state for this texture, containing the wrap * and filter properties specified on the texture level; it may still be * overridden by a sampler state specified at a higher level. This * encompasses the settings for get_wrap_u, get_minfilter, * get_anisotropic_degree, etc. * * This makes a copy of the SamplerState object, so future modifications of * the same SamplerState will have no effect on this texture unless you call * set_default_sampler again. */ 70 inline void Texture::set_default_sampler(SamplerState const &sampler); 2652 12 uses_mipmaps 0 4 3281 21 Texture::uses_mipmaps 0 1 1089 117 /** * Returns true if the minfilter settings on this texture indicate the use of * mipmapping, false otherwise. */ 46 inline bool Texture::uses_mipmaps(void) const; 2653 17 get_quality_level 0 4 3281 26 Texture::get_quality_level 0 1 1090 149 /** * Returns the current quality_level hint. See set_quality_level(). This * value may return QL_default; see get_effective_quality_level(). */ 68 inline Texture::QualityLevel Texture::get_quality_level(void) const; 2654 27 get_effective_quality_level 0 4 3281 36 Texture::get_effective_quality_level 0 1 1091 235 /** * Returns the current quality_level hint, or the global default quality_level * if this texture doesn't specify a quality level. This value will not * normally return QL_default (unless there is an error in the config file) */ 78 inline Texture::QualityLevel Texture::get_effective_quality_level(void) const; 2655 17 set_quality_level 0 4 3281 26 Texture::set_quality_level 0 1 1092 264 /** * Sets a hint to the renderer about the desired performance / quality * tradeoff for this particular texture. This is most useful for the * tinydisplay software renderer; for normal, hardware-accelerated renderers, * this may have little or no effect. */ 76 inline void Texture::set_quality_level(Texture::QualityLevel quality_level); 2656 30 get_expected_num_mipmap_levels 0 4 3281 39 Texture::get_expected_num_mipmap_levels 0 1 1093 249 /** * Returns the number of mipmap levels that should be defined for this * texture, given the texture's size. * * Note that this returns a number appropriate for mipmapping, even if the * texture does not currently have mipmapping enabled. */ 63 inline int Texture::get_expected_num_mipmap_levels(void) const; 2657 26 get_expected_mipmap_x_size 0 4 3281 35 Texture::get_expected_mipmap_x_size 0 1 1094 100 /** * Returns the x_size that the nth mipmap level should have, based on the * texture's size. */ 60 inline int Texture::get_expected_mipmap_x_size(int n) const; 2658 26 get_expected_mipmap_y_size 0 4 3281 35 Texture::get_expected_mipmap_y_size 0 1 1095 100 /** * Returns the y_size that the nth mipmap level should have, based on the * texture's size. */ 60 inline int Texture::get_expected_mipmap_y_size(int n) const; 2659 26 get_expected_mipmap_z_size 0 4 3281 35 Texture::get_expected_mipmap_z_size 0 1 1096 100 /** * Returns the z_size that the nth mipmap level should have, based on the * texture's size. */ 60 inline int Texture::get_expected_mipmap_z_size(int n) const; 2660 29 get_expected_mipmap_num_pages 0 4 3281 38 Texture::get_expected_mipmap_num_pages 0 1 1097 280 /** * Returns the total number of pages that the nth mipmap level should have, * based on the texture's size. This is usually the same as * get_expected_mipmap_z_size(), except for a multiview texture, in which case * it is get_expected_mipmap_z_size() * get_num_views(). */ 63 inline int Texture::get_expected_mipmap_num_pages(int n) const; 2661 13 has_ram_image 0 4 3281 22 Texture::has_ram_image 0 1 1098 1090 /** * Returns true if the Texture has its image contents available in main RAM, * false if it exists only in texture memory or in the prepared GSG context. * * Note that this has nothing to do with whether get_ram_image() will fail or * not. Even if has_ram_image() returns false, get_ram_image() may still * return a valid RAM image, because get_ram_image() will automatically load * the texture from disk if necessary. The only thing has_ram_image() tells * you is whether the texture is available right now without hitting the disk * first. * * Note also that if an application uses only one GSG, it may appear that * has_ram_image() returns true if the texture has not yet been loaded by the * GSG, but this correlation is not true in general and should not be depended * on. Specifically, if an application ever uses multiple GSG's in its * lifetime (for instance, by opening more than one window, or by closing its * window and opening another one later), then has_ram_image() may well return * false on textures that have never been loaded on the current GSG. */ 47 inline bool Texture::has_ram_image(void) const; 2662 26 has_uncompressed_ram_image 0 4 3281 35 Texture::has_uncompressed_ram_image 0 1 1099 146 /** * Returns true if the Texture has its image contents available in main RAM * and is uncompressed, false otherwise. See has_ram_image(). */ 60 inline bool Texture::has_uncompressed_ram_image(void) const; 2663 20 might_have_ram_image 0 4 3281 29 Texture::might_have_ram_image 0 1 1100 284 /** * Returns true if the texture's image contents are currently available in * main RAM, or there is reason to believe it can be loaded on demand. That * is, this function returns a "best guess" as to whether get_ram_image() will * succeed without actually calling it first. */ 54 inline bool Texture::might_have_ram_image(void) const; 2664 18 get_ram_image_size 0 4 3281 27 Texture::get_ram_image_size 0 1 1101 141 /** * Returns the total number of bytes used by the in-memory image, across all * pages and views, or 0 if there is no in-memory image. */ 59 inline std::size_t Texture::get_ram_image_size(void) const; 2665 17 get_ram_view_size 0 4 3281 26 Texture::get_ram_view_size 0 1 1102 208 /** * Returns the number of bytes used by the in-memory image per view, or 0 if * there is no in-memory image. Since each view is a stack of z_size pages, * this is get_z_size() * get_ram_page_size(). */ 58 inline std::size_t Texture::get_ram_view_size(void) const; 2666 17 get_ram_page_size 0 4 3281 26 Texture::get_ram_page_size 0 1 1103 345 /** * Returns the number of bytes used by the in-memory image per page, or 0 if * there is no in-memory image. * * For a non-compressed texture, this is the same as * get_expected_ram_page_size(). For a compressed texture, this may be a * smaller value. (We do assume that all pages will be the same size on a * compressed texture). */ 58 inline std::size_t Texture::get_ram_page_size(void) const; 2667 27 get_expected_ram_image_size 0 4 3281 36 Texture::get_expected_ram_image_size 0 1 1104 122 /** * Returns the number of bytes that *ought* to be used by the in-memory image, * based on the texture parameters. */ 68 inline std::size_t Texture::get_expected_ram_image_size(void) const; 2668 26 get_expected_ram_page_size 0 4 3281 35 Texture::get_expected_ram_page_size 0 1 1105 178 /** * Returns the number of bytes that should be used per each Z page of the 3-d * texture. For a 2-d or 1-d texture, this is the same as * get_expected_ram_image_size(). */ 67 inline std::size_t Texture::get_expected_ram_page_size(void) const; 2669 13 get_ram_image 0 4 3281 22 Texture::get_ram_image 0 1 1106 1159 /** * Returns the system-RAM image data associated with the texture. If the * texture does not currently have an associated RAM image, and the texture * was generated by loading an image from a disk file (the most common case), * this forces the reload of the same texture. This can happen if * keep_texture_ram is configured to false, and we have previously prepared * this texture with a GSG. * * Note that it is not correct to call has_ram_image() first to test whether * this function will fail. A false return value from has_ram_image() * indicates only that get_ram_image() may need to reload the texture from * disk, which it will do automatically. However, you can call * might_have_ram_image(), which will return true if the ram image exists, or * there is a reasonable reason to believe it can be loaded. * * On the other hand, it is possible that the texture cannot be found on disk * or is otherwise unavailable. If that happens, this function will return * NULL. There is no way to predict with 100% accuracy whether get_ram_image() * will return NULL without calling it first; might_have_ram_image() is the * closest. */ 47 inline CPTA_uchar Texture::get_ram_image(void); 2670 25 get_ram_image_compression 0 4 3281 34 Texture::get_ram_image_compression 0 1 1107 338 /** * Returns the compression mode in which the ram image is already stored pre- * compressed. If this is other than CM_off, you cannot rely on the contents * of the ram image to be anything predicatable (it will not be an array of x * by y pixels, and it probably won't have the same length as * get_expected_ram_image_size()). */ 79 inline Texture::CompressionMode Texture::get_ram_image_compression(void) const; 2671 26 get_uncompressed_ram_image 0 4 3281 35 Texture::get_uncompressed_ram_image 0 1 1108 586 /** * Returns the system-RAM image associated with the texture, in an * uncompressed form if at all possible. * * If get_ram_image_compression() is CM_off, then the system-RAM image is * already uncompressed, and this returns the same thing as get_ram_image(). * * If get_ram_image_compression() is anything else, then the system-RAM image * is compressed. In this case, the image will be reloaded from the * *original* file (not from the cache), in the hopes that an uncompressed * image will be found there. * * If an uncompressed image cannot be found, returns NULL. */ 60 inline CPTA_uchar Texture::get_uncompressed_ram_image(void); 2672 16 get_ram_image_as 0 4 3281 25 Texture::get_ram_image_as 0 1 1109 1220 /** * Returns the uncompressed system-RAM image data associated with the texture. * Rather than just returning a pointer to the data, like * get_uncompressed_ram_image, this function first processes the data and * reorders the components using the specified format string, and places these * into a new char array. * * The 'format' argument should specify in which order the components of the * texture must be. For example, valid format strings are "RGBA", "GA", * "ABRG" or "AAA". A component can also be written as "0" or "1", which * means an empty/black or a full/white channel, respectively. * * This function is particularly useful to copy an image in-memory to a * different library (for example, PIL or wxWidgets) that require a different * component order than Panda's internal format, BGRA. Note, however, that * this conversion can still be too slow if you want to do it every frame, and * should thus be avoided for that purpose. * * The only requirement for the reordering is that an uncompressed image must * be available. If the RAM image is compressed, it will attempt to re-load * the texture from disk, if it doesn't find an uncompressed image there, it * will return NULL. */ 74 CPTA_uchar Texture::get_ram_image_as(std::string const &requested_format); 2673 16 modify_ram_image 0 4 3281 25 Texture::modify_ram_image 0 1 1110 246 /** * Returns a modifiable pointer to the system-RAM image. This assumes the RAM * image should be uncompressed. If the RAM image has been dumped, or is * stored compressed, creates a new one. * * This does *not* affect keep_ram_image. */ 49 inline PTA_uchar Texture::modify_ram_image(void); 2674 14 make_ram_image 0 4 3281 23 Texture::make_ram_image 0 1 1111 198 /** * Discards the current system-RAM image for the texture, if any, and * allocates a new buffer of the appropriate size. Returns the new buffer. * * This does *not* affect keep_ram_image. */ 47 inline PTA_uchar Texture::make_ram_image(void); 2675 13 set_ram_image 0 4 3281 22 Texture::set_ram_image 0 1 1112 231 /** * Replaces the current system-RAM image with the new data. If compression is * not CM_off, it indicates that the new data is already pre-compressed in the * indicated format. * * This does *not* affect keep_ram_image. */ 130 void Texture::set_ram_image(PyObject *image, Texture::CompressionMode compression = ::Texture::CM_off, std::size_t page_size = 0); 2676 16 set_ram_image_as 0 4 3281 25 Texture::set_ram_image_as 0 1 1113 307 /** * Replaces the current system-RAM image with the new data, converting it * first if necessary from the indicated component-order format. See * get_ram_image_as() for specifications about the format. This method cannot * support compressed image data or sub-pages; use set_ram_image() for that. */ 84 void Texture::set_ram_image_as(PyObject *image, std::string const &provided_format); 2677 15 clear_ram_image 0 4 3281 24 Texture::clear_ram_image 0 1 1114 49 /** * Discards the current system-RAM image. */ 43 inline void Texture::clear_ram_image(void); 2678 18 set_keep_ram_image 0 4 3281 27 Texture::set_keep_ram_image 0 1 1115 476 /** * Sets the flag that indicates whether this Texture is eligible to have its * main RAM copy of the texture memory dumped when the texture is prepared for * rendering. * * This will be false for most textures, which can reload their images if * needed by rereading the input file. However, textures that were generated * dynamically and cannot be easily reloaded will want to set this flag to * true, so that the texture will always keep its image copy around. */ 61 inline void Texture::set_keep_ram_image(bool keep_ram_image); 2679 18 get_keep_ram_image 0 6 3281 27 Texture::get_keep_ram_image 0 1 1116 207 /** * Returns the flag that indicates whether this Texture is eligible to have * its main RAM copy of the texture memory dumped when the texture is prepared * for rendering. See set_keep_ram_image(). */ 53 virtual bool Texture::get_keep_ram_image(void) const; 2680 12 is_cacheable 0 6 3281 21 Texture::is_cacheable 0 1 1117 200 /** * Returns true if there is enough information in this Texture object to write * it to the bam cache successfully, false otherwise. For most textures, this * is the same as has_ram_image(). */ 47 virtual bool Texture::is_cacheable(void) const; 2681 18 compress_ram_image 0 4 3281 27 Texture::compress_ram_image 0 1 1118 802 /** * Attempts to compress the texture's RAM image internally, to a format * supported by the indicated GSG. In order for this to work, the squish * library must have been compiled into Panda. * * If compression is CM_on, then an appropriate compression method that is * supported by the indicated GSG is automatically chosen. If the GSG pointer * is NULL, any of the standard DXT1/3/5 compression methods will be used, * regardless of whether it is supported. * * If compression is any specific compression method, that method is used * regardless of whether the GSG supports it. * * quality_level determines the speed/quality tradeoff of the compression. If * it is QL_default, the texture's own quality_level parameter is used. * * Returns true if successful, false otherwise. */ 200 inline bool Texture::compress_ram_image(Texture::CompressionMode compression = ::Texture::CM_on, Texture::QualityLevel quality_level = ::Texture::QL_default, GraphicsStateGuardianBase *gsg = nullptr); 2682 20 uncompress_ram_image 0 4 3281 29 Texture::uncompress_ram_image 0 1 1119 279 /** * Attempts to uncompress the texture's RAM image internally. In order for * this to work, the squish library must have been compiled into Panda, and * the ram image must be compressed in a format supported by squish. * * Returns true if successful, false otherwise. */ 48 inline bool Texture::uncompress_ram_image(void); 2683 25 get_num_ram_mipmap_images 0 4 3281 34 Texture::get_num_ram_mipmap_images 0 1 1120 285 /** * Returns the maximum number of mipmap level images available in system * memory. The actual number may be less than this (that is, there might be * gaps in the sequence); use has_ram_mipmap_image() to verify each level. * * Also see get_num_loadable_ram_mipmap_images(). */ 58 inline int Texture::get_num_ram_mipmap_images(void) const; 2684 20 has_ram_mipmap_image 0 4 3281 29 Texture::has_ram_mipmap_image 0 1 1121 317 /** * Returns true if the Texture has the nth mipmap level available in system * memory, false otherwise. If the texture's minfilter mode requires * mipmapping (see uses_mipmaps()), and all the texture's mipmap levels are * not available when the texture is rendered, they will be generated * automatically. */ 55 inline bool Texture::has_ram_mipmap_image(int n) const; 2685 34 get_num_loadable_ram_mipmap_images 0 4 3281 43 Texture::get_num_loadable_ram_mipmap_images 0 1 1122 558 /** * Returns the number of contiguous mipmap levels that exist in RAM, up until * the first gap in the sequence. It is guaranteed that at least mipmap * levels [0, get_num_ram_mipmap_images()) exist. * * The number returned will never exceed the number of required mipmap images * based on the size of the texture and its filter mode. * * This method is different from get_num_ram_mipmap_images() in that it * returns only the number of mipmap levels that can actually be usefully * loaded, regardless of the actual number that may be stored. */ 60 int Texture::get_num_loadable_ram_mipmap_images(void) const; 2686 25 has_all_ram_mipmap_images 0 4 3281 34 Texture::has_all_ram_mipmap_images 0 1 1123 149 /** * Returns true if all expected mipmap levels have been defined and exist in * the system RAM, or false if even one mipmap level is missing. */ 59 inline bool Texture::has_all_ram_mipmap_images(void) const; 2687 25 get_ram_mipmap_image_size 0 4 3281 34 Texture::get_ram_mipmap_image_size 0 1 1124 148 /** * Returns the number of bytes used by the in-memory image for mipmap level n, * or 0 if there is no in-memory image for this mipmap level. */ 67 inline std::size_t Texture::get_ram_mipmap_image_size(int n) const; 2688 24 get_ram_mipmap_view_size 0 4 3281 33 Texture::get_ram_mipmap_view_size 0 1 1125 542 /** * Returns the number of bytes used by the in-memory image per view for mipmap * level n, or 0 if there is no in-memory image for this mipmap level. * * A "view" is a collection of z_size pages for each mipmap level. Most * textures have only one view, except for multiview or stereo textures. * * For a non-compressed texture, this is the same as * get_expected_ram_mipmap_view_size(). For a compressed texture, this may be * a smaller value. (We do assume that all pages will be the same size on a * compressed texture). */ 66 inline std::size_t Texture::get_ram_mipmap_view_size(int n) const; 2689 24 get_ram_mipmap_page_size 0 4 3281 33 Texture::get_ram_mipmap_page_size 0 1 1126 393 /** * Returns the number of bytes used by the in-memory image per page for mipmap * level n, or 0 if there is no in-memory image for this mipmap level. * * For a non-compressed texture, this is the same as * get_expected_ram_mipmap_page_size(). For a compressed texture, this may be * a smaller value. (We do assume that all pages will be the same size on a * compressed texture). */ 66 inline std::size_t Texture::get_ram_mipmap_page_size(int n) const; 2690 34 get_expected_ram_mipmap_image_size 0 4 3281 43 Texture::get_expected_ram_mipmap_image_size 0 1 1127 141 /** * Returns the number of bytes that *ought* to be used by the in-memory image * for mipmap level n, based on the texture parameters. */ 76 inline std::size_t Texture::get_expected_ram_mipmap_image_size(int n) const; 2691 33 get_expected_ram_mipmap_view_size 0 4 3281 42 Texture::get_expected_ram_mipmap_view_size 0 1 1128 258 /** * Returns the number of bytes that *ought* to be used by each view of the in- * memory image for mipmap level n, based on the texture parameters. For a * normal, non-multiview texture, this is the same as * get_expected_ram_mipmap_image_size(n). */ 75 inline std::size_t Texture::get_expected_ram_mipmap_view_size(int n) const; 2692 33 get_expected_ram_mipmap_page_size 0 4 3281 42 Texture::get_expected_ram_mipmap_page_size 0 1 1129 205 /** * Returns the number of bytes that should be used per each Z page of the 3-d * texture, for mipmap level n. For a 2-d or 1-d texture, this is the same as * get_expected_ram_mipmap_view_size(n). */ 75 inline std::size_t Texture::get_expected_ram_mipmap_page_size(int n) const; 2693 20 get_ram_mipmap_image 0 4 3281 29 Texture::get_ram_mipmap_image 0 1 1130 151 /** * Returns the system-RAM image data associated with the nth mipmap level, if * present. Returns NULL if the nth mipmap level is not present. */ 54 CPTA_uchar Texture::get_ram_mipmap_image(int n) const; 2694 22 get_ram_mipmap_pointer 0 4 3281 31 Texture::get_ram_mipmap_pointer 0 1 1131 182 /** * Similiar to get_ram_mipmap_image(), however, in this case the void pointer * for the given ram image is returned. This will be NULL unless it has been * explicitly set. */ 51 void *Texture::get_ram_mipmap_pointer(int n) const; 2695 23 modify_ram_mipmap_image 0 4 3281 32 Texture::modify_ram_mipmap_image 0 1 1132 231 /** * Returns a modifiable pointer to the system-RAM image for the nth mipmap * level. This assumes the RAM image is uncompressed; if this is not the * case, raises an assertion. * * This does *not* affect keep_ram_image. */ 57 inline PTA_uchar Texture::modify_ram_mipmap_image(int n); 2696 21 make_ram_mipmap_image 0 4 3281 30 Texture::make_ram_mipmap_image 0 1 1133 207 /** * Discards the current system-RAM image for the nth mipmap level, if any, and * allocates a new buffer of the appropriate size. Returns the new buffer. * * This does *not* affect keep_ram_image. */ 55 inline PTA_uchar Texture::make_ram_mipmap_image(int n); 2697 22 set_ram_mipmap_pointer 0 4 3281 31 Texture::set_ram_mipmap_pointer 0 0 489 /** * Sets an explicit void pointer as the texture's mipmap image for the * indicated level. This is a special call to direct a texture to reference * some external image location, for instance from a webcam input. * * The texture will henceforth reference this pointer directly, instead of its * own internal storage; the user is responsible for ensuring the data at this * address remains allocated and valid, and in the correct format, during the * lifetime of the texture. */ 84 void Texture::set_ram_mipmap_pointer(int n, void *image, std::size_t page_size = 0); 2698 31 set_ram_mipmap_pointer_from_int 0 4 3281 40 Texture::set_ram_mipmap_pointer_from_int 0 1 1134 287 /** * Accepts a raw pointer cast as an int, which is then passed to * set_ram_mipmap_pointer(); see the documentation for that method. * * This variant is particularly useful to set an external pointer from a * language like Python, which doesn't support void pointers directly. */ 91 void Texture::set_ram_mipmap_pointer_from_int(long long int pointer, int n, int page_size); 2699 20 set_ram_mipmap_image 0 4 3281 29 Texture::set_ram_mipmap_image 0 1 1135 262 /** * Replaces the current system-RAM image for the indicated mipmap level with * the new data. If compression is not CM_off, it indicates that the new data * is already pre-compressed in the indicated format. * * This does *not* affect keep_ram_image. */ 94 inline void Texture::set_ram_mipmap_image(int n, CPTA_uchar image, std::size_t page_size = 0); 2700 22 clear_ram_mipmap_image 0 4 3281 31 Texture::clear_ram_mipmap_image 0 1 1136 74 /** * Discards the current system-RAM image for the nth mipmap level. */ 44 void Texture::clear_ram_mipmap_image(int n); 2701 23 clear_ram_mipmap_images 0 4 3281 32 Texture::clear_ram_mipmap_images 0 1 1137 107 /** * Discards the current system-RAM image for all mipmap levels, except level 0 * (the base image). */ 51 inline void Texture::clear_ram_mipmap_images(void); 2702 26 generate_ram_mipmap_images 0 4 3281 35 Texture::generate_ram_mipmap_images 0 1 1138 453 /** * Automatically fills in the n mipmap levels of the Texture, based on the * texture's source image. This requires the texture's uncompressed ram image * to be available in system memory. If it is not already, it will be fetched * if possible. * * This call is not normally necessary, since the mipmap levels will be * generated automatically if needed. But there may be certain cases in which * you would like to call this explicitly. */ 54 inline void Texture::generate_ram_mipmap_images(void); 2703 17 get_simple_x_size 0 4 3281 26 Texture::get_simple_x_size 0 1 1139 61 /** * Returns the width of the "simple" image in texels. */ 50 inline int Texture::get_simple_x_size(void) const; 2704 17 get_simple_y_size 0 4 3281 26 Texture::get_simple_y_size 0 1 1140 62 /** * Returns the height of the "simple" image in texels. */ 50 inline int Texture::get_simple_y_size(void) const; 2705 20 has_simple_ram_image 0 4 3281 29 Texture::has_simple_ram_image 0 1 1141 82 /** * Returns true if the Texture has a "simple" image available in main RAM. */ 54 inline bool Texture::has_simple_ram_image(void) const; 2706 25 get_simple_ram_image_size 0 4 3281 34 Texture::get_simple_ram_image_size 0 1 1142 103 /** * Returns the number of bytes used by the "simple" image, or 0 if there is no * simple image. */ 66 inline std::size_t Texture::get_simple_ram_image_size(void) const; 2707 20 get_simple_ram_image 0 4 3281 29 Texture::get_simple_ram_image 0 1 1143 511 /** * Returns the image data associated with the "simple" texture image. This is * provided for some textures as an option to display while the main texture * image is being loaded from disk. * * Unlike get_ram_image(), this function will always return immediately. * Either the simple image is available, or it is not. * * The "simple" image is always 4 components, 1 byte each, regardless of the * parameters of the full texture. The simple image is only supported for * ordinary 2-d textures. */ 60 inline CPTA_uchar Texture::get_simple_ram_image(void) const; 2708 20 set_simple_ram_image 0 4 3281 29 Texture::set_simple_ram_image 0 1 1144 638 /** * Replaces the internal "simple" texture image. This can be used as an * option to display while the main texture image is being loaded from disk. * It is normally a very small image, 16x16 or smaller (and maybe even 1x1), * that is designed to give just enough sense of color to serve as a * placeholder until the full texture is available. * * The "simple" image is always 4 components, 1 byte each, regardless of the * parameters of the full texture. The simple image is only supported for * ordinary 2-d textures. * * Also see generate_simple_ram_image(), modify_simple_ram_image(), and * new_simple_ram_image(). */ 84 inline void Texture::set_simple_ram_image(CPTA_uchar image, int x_size, int y_size); 2709 23 modify_simple_ram_image 0 4 3281 32 Texture::modify_simple_ram_image 0 1 1145 111 /** * Returns a modifiable pointer to the internal "simple" texture image. See * set_simple_ram_image(). */ 49 PTA_uchar Texture::modify_simple_ram_image(void); 2710 20 new_simple_ram_image 0 4 3281 29 Texture::new_simple_ram_image 0 1 1146 164 /** * Creates an empty array for the simple ram image of the indicated size, and * returns a modifiable pointer to the new array. See set_simple_ram_image(). */ 64 PTA_uchar Texture::new_simple_ram_image(int x_size, int y_size); 2711 25 generate_simple_ram_image 0 4 3281 34 Texture::generate_simple_ram_image 0 1 1147 185 /** * Computes the "simple" ram image by loading the main RAM image, if it is not * already available, and reducing it to 16x16 or smaller. This may be an * expensive operation. */ 46 void Texture::generate_simple_ram_image(void); 2712 22 clear_simple_ram_image 0 4 3281 31 Texture::clear_simple_ram_image 0 1 1148 47 /** * Discards the current "simple" image. */ 50 inline void Texture::clear_simple_ram_image(void); 2713 4 peek 0 4 3281 13 Texture::peek 0 1 1149 492 /** * Returns a TexturePeeker object that can be used to examine the individual * texels stored within this Texture by (u, v) coordinate. * * If the texture has a ram image resident, that image is used. If it does * not have a full ram image but does have a simple_ram_image resident, that * image is used instead. If neither image is resident the full image is * reloaded. * * Returns NULL if the texture cannot find an image to load, or the texture * format is incompatible. */ 47 PointerTo< TexturePeeker > Texture::peek(void); 2714 23 get_properties_modified 0 4 3281 32 Texture::get_properties_modified 0 1 1150 151 /** * Returns a sequence number which is guaranteed to change at least every time * the texture properties (unrelated to the image) are modified. */ 62 inline UpdateSeq Texture::get_properties_modified(void) const; 2715 18 get_image_modified 0 4 3281 27 Texture::get_image_modified 0 1 1151 152 /** * Returns a sequence number which is guaranteed to change at least every time * the texture image data (including mipmap levels) are modified. */ 57 inline UpdateSeq Texture::get_image_modified(void) const; 2716 25 get_simple_image_modified 0 4 3281 34 Texture::get_simple_image_modified 0 1 1152 136 /** * Returns a sequence number which is guaranteed to change at least every time * the texture's "simple" image data is modified. */ 64 inline UpdateSeq Texture::get_simple_image_modified(void) const; 2717 22 has_auto_texture_scale 0 4 3281 31 Texture::has_auto_texture_scale 0 1 1153 136 /** * Returns true if set_auto_texture_scale() has been set to something other * than ATS_unspecified for this particular texture. */ 56 inline bool Texture::has_auto_texture_scale(void) const; 2718 22 get_auto_texture_scale 0 4 3281 31 Texture::get_auto_texture_scale 0 1 1154 171 /** * Returns the power-of-2 texture-scaling mode that will be applied to this * particular texture when it is next loaded from disk. See * set_textures_power_2(). */ 68 inline AutoTextureScale Texture::get_auto_texture_scale(void) const; 2719 22 set_auto_texture_scale 0 4 3281 31 Texture::set_auto_texture_scale 0 1 1155 173 /** * Specifies the power-of-2 texture-scaling mode that will be applied to this * particular texture when it is next loaded from disk. See * set_textures_power_2(). */ 68 inline void Texture::set_auto_texture_scale(AutoTextureScale scale); 2720 7 prepare 0 4 3281 16 Texture::prepare 0 1 1156 363 /** * Indicates that the texture should be enqueued to be prepared in the * indicated prepared_objects at the beginning of the next frame. This will * ensure the texture is already loaded into texture memory if it is expected * to be rendered soon. * * Use this function instead of prepare_now() to preload textures from a user * interface standpoint. */ 85 PointerTo< AsyncFuture > Texture::prepare(PreparedGraphicsObjects *prepared_objects); 2721 11 is_prepared 0 4 3281 20 Texture::is_prepared 0 1 1157 134 /** * Returns true if the texture has already been prepared or enqueued for * preparation on the indicated GSG, false otherwise. */ 75 bool Texture::is_prepared(PreparedGraphicsObjects *prepared_objects) const; 2722 18 was_image_modified 0 4 3281 27 Texture::was_image_modified 0 1 1158 176 /** * Returns true if the texture needs to be re-loaded onto the indicated GSG, * either because its image data is out-of-date, or because it's not fully * prepared now. */ 82 bool Texture::was_image_modified(PreparedGraphicsObjects *prepared_objects) const; 2723 19 get_data_size_bytes 0 4 3281 28 Texture::get_data_size_bytes 0 1 1159 335 /** * Returns the number of bytes which the texture is reported to consume within * graphics memory, for the indicated GSG. This may return a nonzero value * even if the texture is not currently resident; you should also check * get_resident() if you want to know how much space the texture is actually * consuming right now. */ 90 std::size_t Texture::get_data_size_bytes(PreparedGraphicsObjects *prepared_objects) const; 2724 10 get_active 0 4 3281 19 Texture::get_active 0 1 1160 106 /** * Returns true if this Texture was rendered in the most recent frame within * the indicated GSG. */ 74 bool Texture::get_active(PreparedGraphicsObjects *prepared_objects) const; 2725 12 get_resident 0 4 3281 21 Texture::get_resident 0 1 1161 115 /** * Returns true if this Texture is reported to be resident within graphics * memory for the indicated GSG. */ 76 bool Texture::get_resident(PreparedGraphicsObjects *prepared_objects) const; 2726 7 release 0 4 3281 16 Texture::release 0 1 1162 157 /** * Frees the texture context only on the indicated object, if it exists there. * Returns true if it was released, false if it had not been prepared. */ 65 bool Texture::release(PreparedGraphicsObjects *prepared_objects); 2727 11 release_all 0 4 3281 20 Texture::release_all 0 1 1163 152 /** * Frees the context allocated on all objects for which the texture has been * declared. Returns the number of contexts which have been freed. */ 31 int Texture::release_all(void); 2728 23 estimate_texture_memory 0 4 3281 32 Texture::estimate_texture_memory 0 1 1164 437 /** * Estimates the amount of texture memory that will be consumed by loading * this texture. This returns a value that is not specific to any particular * graphics card or driver; it tries to make a reasonable assumption about how * a driver will load the texture. It does not account for texture * compression or anything fancy. This is mainly useful for debugging and * reporting purposes. * * Returns a value in bytes. */ 57 std::size_t Texture::estimate_texture_memory(void) const; 2729 12 set_aux_data 0 4 3281 21 Texture::set_aux_data 0 1 1165 237 /** * Records an arbitrary object in the Texture, associated with a specified * key. The object may later be retrieved by calling get_aux_data() with the * same key. * * These data objects are not recorded to a bam or txo file. */ 82 void Texture::set_aux_data(std::string const &key, TypedReferenceCount *aux_data); 2730 14 clear_aux_data 0 4 3281 23 Texture::clear_aux_data 0 1 1166 67 /** * Removes a record previously recorded via set_aux_data(). */ 53 void Texture::clear_aux_data(std::string const &key); 2731 12 get_aux_data 0 4 3281 21 Texture::get_aux_data 0 1 1167 142 /** * Returns a record previously recorded via set_aux_data(). Returns NULL if * there was no record associated with the indicated key. */ 73 TypedReferenceCount *Texture::get_aux_data(std::string const &key) const; 2732 0 0 0 0 0 0 0 0 0 2733 20 set_textures_power_2 0 4 3281 29 Texture::set_textures_power_2 0 1 1168 232 /** * Set this flag to ATS_none, ATS_up, ATS_down, or ATS_pad to control the * scaling of textures in general, if a particular texture does not override * this. See also set_auto_texture_scale() for the per-texture override. */ 73 static inline void Texture::set_textures_power_2(AutoTextureScale scale); 2734 20 get_textures_power_2 0 4 3281 29 Texture::get_textures_power_2 0 1 1169 251 /** * This flag returns ATS_none, ATS_up, or ATS_down and controls the scaling of * textures in general. It is initialized from the config variable of the * same name, but it can be subsequently adjusted. See also * get_auto_texture_scale(). */ 67 static inline AutoTextureScale Texture::get_textures_power_2(void); 2735 20 has_textures_power_2 0 4 3281 29 Texture::has_textures_power_2 0 1 1170 181 /** * If true, then get_textures_power_2 has been set using set_textures_power_2. * If false, then get_textures_power_2 simply returns the config variable of * the same name. */ 55 static inline bool Texture::has_textures_power_2(void); 2736 14 get_pad_x_size 0 4 3281 23 Texture::get_pad_x_size 0 1 1171 61 /** * Returns size of the pad region. See set_pad_size. */ 47 inline int Texture::get_pad_x_size(void) const; 2737 14 get_pad_y_size 0 4 3281 23 Texture::get_pad_y_size 0 1 1172 61 /** * Returns size of the pad region. See set_pad_size. */ 47 inline int Texture::get_pad_y_size(void) const; 2738 14 get_pad_z_size 0 4 3281 23 Texture::get_pad_z_size 0 1 1173 61 /** * Returns size of the pad region. See set_pad_size. */ 47 inline int Texture::get_pad_z_size(void) const; 2739 13 get_tex_scale 0 4 3281 22 Texture::get_tex_scale 0 1 1174 523 /** * Returns a scale pair that is suitable for applying to geometry via * NodePath::set_tex_scale(), which will convert texture coordinates on the * geometry from the range 0..1 into the appropriate range to render the video * part of the texture. * * This is necessary only if a padding size has been set via set_pad_size() * (or implicitly via something like "textures-power-2 pad" in the config.prc * file). In this case, this is a convenient way to generate UV's that * reflect the built-in padding size. */ 52 inline LVecBase2 Texture::get_tex_scale(void) const; 2740 12 set_pad_size 0 4 3281 21 Texture::set_pad_size 0 1 1175 468 /** * Sets the size of the pad region. * * Sometimes, when a video card demands power-of-two textures, it is necessary * to create a big texture and then only use a portion of it. The pad region * indicates which portion of the texture is not really in use. All * operations use the texture as a whole, including the pad region, unless * they explicitly state that they use only the non-pad region. * * Changing the texture's size clears the pad region. */ 67 inline void Texture::set_pad_size(int x = 0, int y = 0, int z = 0); 2741 15 set_size_padded 0 4 3281 24 Texture::set_size_padded 0 1 1176 104 /** * Changes the size of the texture, padding if necessary, and setting the pad * region as well. */ 63 void Texture::set_size_padded(int x = 1, int y = 1, int z = 1); 2742 20 get_orig_file_x_size 0 4 3281 29 Texture::get_orig_file_x_size 0 1 1177 168 /** * Returns the X size of the original disk image that this Texture was loaded * from (if it came from a disk file), before any automatic rescaling by * Panda. */ 53 inline int Texture::get_orig_file_x_size(void) const; 2743 20 get_orig_file_y_size 0 4 3281 29 Texture::get_orig_file_y_size 0 1 1178 168 /** * Returns the Y size of the original disk image that this Texture was loaded * from (if it came from a disk file), before any automatic rescaling by * Panda. */ 53 inline int Texture::get_orig_file_y_size(void) const; 2744 20 get_orig_file_z_size 0 4 3281 29 Texture::get_orig_file_z_size 0 1 1179 168 /** * Returns the Z size of the original disk image that this Texture was loaded * from (if it came from a disk file), before any automatic rescaling by * Panda. */ 53 inline int Texture::get_orig_file_z_size(void) const; 2745 18 set_orig_file_size 0 4 3281 27 Texture::set_orig_file_size 0 1 1180 113 /** * Specifies the size of the texture as it exists in its original disk file, * before any Panda scaling. */ 58 void Texture::set_orig_file_size(int x, int y, int z = 1); 2746 21 set_loaded_from_image 0 4 3281 30 Texture::set_loaded_from_image 0 1 1181 274 /** * Sets the flag that indicates the texture has been loaded from a disk file * or PNMImage. You should also ensure the filename has been set correctly. * When this flag is true, the texture may be automatically reloaded when its * ram image needs to be replaced. */ 61 inline void Texture::set_loaded_from_image(bool flag = true); 2747 21 get_loaded_from_image 0 4 3281 30 Texture::get_loaded_from_image 0 1 1182 133 /** * Returns the flag that indicates the texture has been loaded from a disk * file or PNMImage. See set_loaded_from_image(). */ 55 inline bool Texture::get_loaded_from_image(void) const; 2748 19 set_loaded_from_txo 0 4 3281 28 Texture::set_loaded_from_txo 0 1 1183 189 /** * Sets the flag that indicates the texture has been loaded from a txo file. * You probably shouldn't be setting this directly; it is set automatically * when a Texture is loaded. */ 59 inline void Texture::set_loaded_from_txo(bool flag = true); 2749 19 get_loaded_from_txo 0 4 3281 28 Texture::get_loaded_from_txo 0 1 1184 90 /** * Returns the flag that indicates the texture has been loaded from a txo * file. */ 53 inline bool Texture::get_loaded_from_txo(void) const; 2750 28 get_match_framebuffer_format 0 4 3281 37 Texture::get_match_framebuffer_format 0 1 1185 289 /** * Returns true if the special flag was set that indicates to the GSG that the * Texture's format should be chosen to exactly match the framebuffer's * format, presumably because the application intends to copy image data from * the framebuffer into the Texture (or vice-versa). */ 62 inline bool Texture::get_match_framebuffer_format(void) const; 2751 28 set_match_framebuffer_format 0 4 3281 37 Texture::set_match_framebuffer_format 0 1 1186 399 /** * Sets the special flag that, if true, indicates to the GSG that the * Texture's format should be chosen to exactly match the framebuffer's * format, presumably because the application intends to copy image data from * the framebuffer into the Texture (or vice-versa). * * This sets only the graphics card's idea of the texture format; it is not * related to the system-memory format. */ 61 inline void Texture::set_match_framebuffer_format(bool flag); 2752 25 get_post_load_store_cache 0 4 3281 34 Texture::get_post_load_store_cache 0 1 1187 102 /** * Returns the setting of the post_load_store_cache flag. See * set_post_load_store_cache(). */ 59 inline bool Texture::get_post_load_store_cache(void) const; 2753 25 set_post_load_store_cache 0 4 3281 34 Texture::set_post_load_store_cache 0 1 1188 418 /** * Sets the post_load_store_cache flag. When this is set, the next time the * texture is loaded on a GSG, it will automatically extract its RAM image * from the GSG and save it to the global BamCache. * * This is used to store compressed RAM images in the BamCache. This flag * should not be set explicitly; it is set automatically by the TexturePool * when model-cache-compressed-textures is set true. */ 58 inline void Texture::set_post_load_store_cache(bool flag); 2754 11 prepare_now 0 4 3281 20 Texture::prepare_now 0 1 1189 531 /** * Creates a context for the texture on the particular GSG, if it does not * already exist. Returns the new (or old) TextureContext. This assumes that * the GraphicsStateGuardian is the currently active rendering context and * that it is ready to accept new textures. If this is not necessarily the * case, you should use prepare() instead. * * Normally, this is not called directly except by the GraphicsStateGuardian; * a texture does not need to be explicitly prepared by the user before it may * be rendered. */ 122 TextureContext *Texture::prepare_now(int view, PreparedGraphicsObjects *prepared_objects, GraphicsStateGuardianBase *gsg); 2755 13 up_to_power_2 0 4 3281 22 Texture::up_to_power_2 0 1 1190 74 /** * Returns the smallest power of 2 greater than or equal to value. */ 45 static int Texture::up_to_power_2(int value); 2756 15 down_to_power_2 0 4 3281 24 Texture::down_to_power_2 0 1 1191 70 /** * Returns the largest power of 2 less than or equal to value. */ 47 static int Texture::down_to_power_2(int value); 2757 16 consider_rescale 0 4 3281 25 Texture::consider_rescale 0 2 1192 1193 904 /** * Asks the PNMImage to change its scale when it reads the image, according to * the whims of the Config.prc file. * * For most efficient results, this method should be called after * pnmimage.read_header() has been called, but before pnmimage.read(). This * method may also be called after pnmimage.read(), i.e. when the pnmimage is * already loaded; in this case it will rescale the image on the spot. Also * see rescale_texture(). */ /** * Asks the PNMImage to change its scale when it reads the image, according to * the whims of the Config.prc file. * * For most efficient results, this method should be called after * pnmimage.read_header() has been called, but before pnmimage.read(). This * method may also be called after pnmimage.read(), i.e. when the pnmimage is * already loaded; in this case it will rescale the image on the spot. Also * see rescale_texture(). */ 192 void Texture::consider_rescale(PNMImage &pnmimage); static void Texture::consider_rescale(PNMImage &pnmimage, std::string const &name, AutoTextureScale auto_texture_scale = ::ATS_unspecified); 2758 15 rescale_texture 0 4 3281 24 Texture::rescale_texture 0 1 1194 391 /** * This method is similar to consider_rescale(), but instead of scaling a * separate PNMImage, it will ask the Texture to rescale its own internal * image to a power of 2, according to the config file requirements. This may * be useful after loading a Texture image by hand, instead of reading it from * a disk file. Returns true if the texture is changed, false if it was not. */ 43 inline bool Texture::rescale_texture(void); 2759 19 format_texture_type 0 4 3281 28 Texture::format_texture_type 0 1 1195 72 /** * Returns the indicated TextureType converted to a string word. */ 73 static std::string Texture::format_texture_type(Texture::TextureType tt); 2760 19 string_texture_type 0 4 3281 28 Texture::string_texture_type 0 1 1196 78 /** * Returns the TextureType corresponding to the indicated string word. */ 81 static Texture::TextureType Texture::string_texture_type(std::string const &str); 2761 21 format_component_type 0 4 3281 30 Texture::format_component_type 0 1 1197 74 /** * Returns the indicated ComponentType converted to a string word. */ 77 static std::string Texture::format_component_type(Texture::ComponentType ct); 2762 21 string_component_type 0 4 3281 30 Texture::string_component_type 0 1 1198 80 /** * Returns the ComponentType corresponding to the indicated string word. */ 85 static Texture::ComponentType Texture::string_component_type(std::string const &str); 2763 13 format_format 0 4 3281 22 Texture::format_format 0 1 1199 67 /** * Returns the indicated Format converted to a string word. */ 61 static std::string Texture::format_format(Texture::Format f); 2764 13 string_format 0 4 3281 22 Texture::string_format 0 1 1200 73 /** * Returns the Format corresponding to the indicated string word. */ 70 static Texture::Format Texture::string_format(std::string const &str); 2765 23 format_compression_mode 0 4 3281 32 Texture::format_compression_mode 0 1 1201 76 /** * Returns the indicated CompressionMode converted to a string word. */ 81 static std::string Texture::format_compression_mode(Texture::CompressionMode cm); 2766 23 string_compression_mode 0 4 3281 32 Texture::string_compression_mode 0 1 1202 96 /** * Returns the CompressionMode value associated with the given string * representation. */ 89 static Texture::CompressionMode Texture::string_compression_mode(std::string const &str); 2767 20 format_quality_level 0 4 3281 29 Texture::format_quality_level 0 1 1203 73 /** * Returns the indicated QualityLevel converted to a string word. */ 76 static std::string Texture::format_quality_level(Texture::QualityLevel tql); 2768 20 string_quality_level 0 4 3281 29 Texture::string_quality_level 0 1 1204 93 /** * Returns the QualityLevel value associated with the given string * representation. */ 83 static Texture::QualityLevel Texture::string_quality_level(std::string const &str); 2769 14 get_class_type 0 4 3281 23 Texture::get_class_type 0 1 1205 0 48 static TypeHandle Texture::get_class_type(void); 2770 4 load 0 4 3297 12 Shader::load 0 2 1209 1210 238 /** * Loads the shader from the given string(s). Returns a boolean indicating * success or failure. */ /** * Loads the shader with the given filename. */ /** * This variant of Shader::load loads all shader programs separately. */ 335 static PointerTo< Shader > Shader::load(Filename const &file, Shader::ShaderLanguage lang = ::Shader::SL_none); static PointerTo< Shader > Shader::load(Shader::ShaderLanguage lang, Filename const &vertex, Filename const &fragment, Filename const &geometry = "", Filename const &tess_control = "", Filename const &tess_evaluation = ""); 2771 4 make 0 4 3297 12 Shader::make 0 2 1211 1212 127 /** * Loads the shader, using the string as shader body. */ /** * Loads the shader, using the strings as shader bodies. */ 311 static PointerTo< Shader > Shader::make(std::string body, Shader::ShaderLanguage lang = ::Shader::SL_none); static PointerTo< Shader > Shader::make(Shader::ShaderLanguage lang, std::string vertex, std::string fragment, std::string geometry = "", std::string tess_control = "", std::string tess_evaluation = ""); 2772 12 load_compute 0 4 3297 20 Shader::load_compute 0 1 1213 34 /** * Loads a compute shader. */ 97 static PointerTo< Shader > Shader::load_compute(Shader::ShaderLanguage lang, Filename const &fn); 2773 12 make_compute 0 4 3297 20 Shader::make_compute 0 1 1214 58 /** * Loads the compute shader from the given string. */ 95 static PointerTo< Shader > Shader::make_compute(Shader::ShaderLanguage lang, std::string body); 2774 12 get_filename 0 4 3297 20 Shader::get_filename 0 1 1215 66 /** * Return the Shader's filename for the given shader type. */ 88 inline Filename Shader::get_filename(Shader::ShaderType type = ::Shader::ST_none) const; 2775 12 set_filename 0 4 3297 20 Shader::set_filename 0 1 1216 154 /** * Sets the Shader's filename for the given shader type. Useful for * associating a shader created with Shader.make with a name for diagnostics. */ 84 inline void Shader::set_filename(Shader::ShaderType type, Filename const &filename); 2776 8 get_text 0 4 3297 16 Shader::get_text 0 1 1217 62 /** * Return the Shader's text for the given shader type. */ 94 inline std::string const &Shader::get_text(Shader::ShaderType type = ::Shader::ST_none) const; 2777 14 get_error_flag 0 4 3297 22 Shader::get_error_flag 0 1 1218 160 /** * Returns true if the shader contains a compile-time error. This doesn't * tell you whether or not the shader is supported on the current video card. */ 47 inline bool Shader::get_error_flag(void) const; 2778 12 get_language 0 4 3297 20 Shader::get_language 0 1 1219 72 /** * Returns the shader language in which this shader was written. */ 63 inline Shader::ShaderLanguage Shader::get_language(void) const; 2779 12 has_fullpath 0 4 3297 20 Shader::has_fullpath 0 1 1220 94 /** * Returns true if the fullpath has been set and is available. See * set_fullpath(). */ 45 inline bool Shader::has_fullpath(void) const; 2780 12 get_fullpath 0 4 3297 20 Shader::get_fullpath 0 1 1221 126 /** * Returns the fullpath that has been set. This is the full path to the file * as it was found along the model-path. */ 56 inline Filename const &Shader::get_fullpath(void) const; 2781 25 get_cache_compiled_shader 0 4 3297 33 Shader::get_cache_compiled_shader 0 1 1222 102 /** * Returns the setting of the cache_compiled_shader flag. See * set_cache_compiled_shader(). */ 58 inline bool Shader::get_cache_compiled_shader(void) const; 2782 25 set_cache_compiled_shader 0 4 3297 33 Shader::set_cache_compiled_shader 0 1 1223 414 /** * Sets the cache_compiled_shader flag. When this is set, the next time the * Shader is loaded on a GSG, it will automatically extract the compiled * shader from the GSG and save it to the global BamCache. * * This is used to store compiled shaders in the BamCache. This flag should * not be set explicitly; it is set automatically by the ShaderPool when * model-cache-compiled-shaders is set true. */ 57 inline void Shader::set_cache_compiled_shader(bool flag); 2783 7 prepare 0 4 3297 15 Shader::prepare 0 1 1224 362 /** * Indicates that the shader should be enqueued to be prepared in the * indicated prepared_objects at the beginning of the next frame. This will * ensure the texture is already loaded into texture memory if it is expected * to be rendered soon. * * Use this function instead of prepare_now() to preload textures from a user * interface standpoint. */ 84 PointerTo< AsyncFuture > Shader::prepare(PreparedGraphicsObjects *prepared_objects); 2784 11 is_prepared 0 4 3297 19 Shader::is_prepared 0 1 1225 133 /** * Returns true if the shader has already been prepared or enqueued for * preparation on the indicated GSG, false otherwise. */ 74 bool Shader::is_prepared(PreparedGraphicsObjects *prepared_objects) const; 2785 7 release 0 4 3297 15 Shader::release 0 1 1226 157 /** * Frees the texture context only on the indicated object, if it exists there. * Returns true if it was released, false if it had not been prepared. */ 64 bool Shader::release(PreparedGraphicsObjects *prepared_objects); 2786 11 release_all 0 4 3297 19 Shader::release_all 0 1 1227 152 /** * Frees the context allocated on all objects for which the texture has been * declared. Returns the number of contexts which have been freed. */ 30 int Shader::release_all(void); 2787 11 prepare_now 0 4 3297 19 Shader::prepare_now 0 1 1228 528 /** * Creates a context for the shader on the particular GSG, if it does not * already exist. Returns the new (or old) ShaderContext. This assumes that * the GraphicsStateGuardian is the currently active rendering context and * that it is ready to accept new textures. If this is not necessarily the * case, you should use prepare() instead. * * Normally, this is not called directly except by the GraphicsStateGuardian; * a shader does not need to be explicitly prepared by the user before it may * be rendered. */ 110 ShaderContext *Shader::prepare_now(PreparedGraphicsObjects *prepared_objects, GraphicsStateGuardianBase *gsg); 2788 14 get_class_type 0 4 3297 22 Shader::get_class_type 0 1 1229 0 47 static TypeHandle Shader::get_class_type(void); 2789 6 Shader 0 4 3297 14 Shader::Shader 0 1 1208 84 /** * Construct a Shader that will be filled in using fillin() or read() later. */ 48 inline Shader::Shader(Shader const &) = default; 2790 37 upcast_to_TypedWritableReferenceCount 0 12 3302 51 ShaderBuffer::upcast_to_TypedWritableReferenceCount 0 1 1239 55 upcast from ShaderBuffer to TypedWritableReferenceCount 87 TypedWritableReferenceCount *ShaderBuffer::upcast_to_TypedWritableReferenceCount(void); 2791 24 downcast_to_ShaderBuffer 0 12 3185 53 TypedWritableReferenceCount::downcast_to_ShaderBuffer 0 0 57 downcast from TypedWritableReferenceCount to ShaderBuffer 74 ShaderBuffer *TypedWritableReferenceCount::downcast_to_ShaderBuffer(void); 2792 17 upcast_to_Namable 0 12 3302 31 ShaderBuffer::upcast_to_Namable 0 1 1240 35 upcast from ShaderBuffer to Namable 47 Namable *ShaderBuffer::upcast_to_Namable(void); 2793 24 downcast_to_ShaderBuffer 0 12 3169 33 Namable::downcast_to_ShaderBuffer 0 0 37 downcast from Namable to ShaderBuffer 54 ShaderBuffer *Namable::downcast_to_ShaderBuffer(void); 2794 19 upcast_to_GeomEnums 0 12 3302 33 ShaderBuffer::upcast_to_GeomEnums 0 1 1241 37 upcast from ShaderBuffer to GeomEnums 51 GeomEnums *ShaderBuffer::upcast_to_GeomEnums(void); 2795 24 downcast_to_ShaderBuffer 0 12 3173 35 GeomEnums::downcast_to_ShaderBuffer 0 0 39 downcast from GeomEnums to ShaderBuffer 56 ShaderBuffer *GeomEnums::downcast_to_ShaderBuffer(void); 2796 13 ~ShaderBuffer 0 6 3302 27 ShaderBuffer::~ShaderBuffer 0 0 22 /** * Destructor. */ 42 virtual ShaderBuffer::~ShaderBuffer(void); 2797 12 ShaderBuffer 0 4 3302 26 ShaderBuffer::ShaderBuffer 0 3 1230 1231 1232 309 /** * Creates an uninitialized buffer object with the given size. For now, these * parameters cannot be modified, but this may change in the future. */ /** * Creates a buffer object initialized with the given data. For now, these * parameters cannot be modified, but this may change in the future. */ 312 inline explicit ShaderBuffer::ShaderBuffer(std::string const &name, uint64_t size, GeomEnums::UsageHint usage_hint); inline explicit ShaderBuffer::ShaderBuffer(std::string const &name, vector_uchar initial_data, GeomEnums::UsageHint usage_hint); inline ShaderBuffer::ShaderBuffer(ShaderBuffer const &) = default; 2798 19 get_data_size_bytes 0 4 3302 33 ShaderBuffer::get_data_size_bytes 0 0 44 /** * Returns the buffer size in bytes. */ 62 inline uint64_t ShaderBuffer::get_data_size_bytes(void) const; 2799 14 get_usage_hint 0 4 3302 28 ShaderBuffer::get_usage_hint 0 0 41 /** * Returns the buffer usage hint. */ 69 inline GeomEnums::UsageHint ShaderBuffer::get_usage_hint(void) const; 2800 7 prepare 0 4 3302 21 ShaderBuffer::prepare 0 1 1233 344 /** * Indicates that the data should be enqueued to be prepared in the indicated * prepared_objects at the beginning of the next frame. This will ensure the * data is already loaded into the GSG if it is expected to be rendered soon. * * Use this function instead of prepare_now() to preload datas from a user * interface standpoint. */ 70 void ShaderBuffer::prepare(PreparedGraphicsObjects *prepared_objects); 2801 11 is_prepared 0 4 3302 25 ShaderBuffer::is_prepared 0 1 1234 131 /** * Returns true if the data has already been prepared or enqueued for * preparation on the indicated GSG, false otherwise. */ 80 bool ShaderBuffer::is_prepared(PreparedGraphicsObjects *prepared_objects) const; 2802 11 prepare_now 0 4 3302 25 ShaderBuffer::prepare_now 0 1 1235 521 /** * Creates a context for the data on the particular GSG, if it does not * already exist. Returns the new (or old) BufferContext. This assumes * that the GraphicsStateGuardian is the currently active rendering context * and that it is ready to accept new datas. If this is not necessarily the * case, you should use prepare() instead. * * Normally, this is not called directly except by the GraphicsStateGuardian; * a data does not need to be explicitly prepared by the user before it may be * rendered. */ 116 BufferContext *ShaderBuffer::prepare_now(PreparedGraphicsObjects *prepared_objects, GraphicsStateGuardianBase *gsg); 2803 7 release 0 4 3302 21 ShaderBuffer::release 0 1 1236 154 /** * Frees the data context only on the indicated object, if it exists there. * Returns true if it was released, false if it had not been prepared. */ 70 bool ShaderBuffer::release(PreparedGraphicsObjects *prepared_objects); 2804 11 release_all 0 4 3302 25 ShaderBuffer::release_all 0 1 1237 149 /** * Frees the context allocated on all objects for which the data has been * declared. Returns the number of contexts which have been freed. */ 36 int ShaderBuffer::release_all(void); 2805 14 get_class_type 0 4 3302 28 ShaderBuffer::get_class_type 0 1 1238 0 53 static TypeHandle ShaderBuffer::get_class_type(void); 2806 8 get_name 0 4 3304 33 PreparedGraphicsObjects::get_name 0 1 1242 167 /** * Returns the name of the PreparedGraphicsObjects structure. This is an * arbitrary name that serves mainly to uniquify the context for PStats * reporting. */ 72 inline std::string const &PreparedGraphicsObjects::get_name(void) const; 2807 25 set_graphics_memory_limit 0 4 3304 50 PreparedGraphicsObjects::set_graphics_memory_limit 0 1 1243 503 /** * Sets an artificial cap on graphics memory that will be imposed on this GSG. * * This limits the total amount of graphics memory, including texture memory * and vertex buffer memory, that will be consumed by the GSG, regardless of * whether the hardware claims to provide more graphics memory than this. It * is useful to put a ceiling on graphics memory consumed, since some drivers * seem to allow the application to consume more memory than the hardware can * realistically support. */ 75 void PreparedGraphicsObjects::set_graphics_memory_limit(std::size_t limit); 2808 25 get_graphics_memory_limit 0 4 3304 50 PreparedGraphicsObjects::get_graphics_memory_limit 0 1 1244 127 /** * Returns the artificial cap on graphics memory that will be imposed on this * GSG. See set_graphics_memory_limit(). */ 82 inline std::size_t PreparedGraphicsObjects::get_graphics_memory_limit(void) const; 2809 24 show_graphics_memory_lru 0 4 3304 49 PreparedGraphicsObjects::show_graphics_memory_lru 0 1 1245 127 /** * Writes to the indicated ostream a report of how the various textures and * vertex buffers are allocated in the LRU. */ 80 void PreparedGraphicsObjects::show_graphics_memory_lru(std::ostream &out) const; 2810 23 show_residency_trackers 0 4 3304 48 PreparedGraphicsObjects::show_residency_trackers 0 1 1246 127 /** * Writes to the indicated ostream a report of how the various textures and * vertex buffers are allocated in the LRU. */ 79 void PreparedGraphicsObjects::show_residency_trackers(std::ostream &out) const; 2811 11 release_all 0 4 3304 36 PreparedGraphicsObjects::release_all 0 1 1247 62 /** * Releases all prepared objects of all kinds at once. */ 55 inline void PreparedGraphicsObjects::release_all(void); 2812 14 get_num_queued 0 4 3304 39 PreparedGraphicsObjects::get_num_queued 0 1 1248 107 /** * Returns the number of objects of any kind that have been enqueued to be * prepared on this GSG. */ 63 inline int PreparedGraphicsObjects::get_num_queued(void) const; 2813 16 get_num_prepared 0 4 3304 41 PreparedGraphicsObjects::get_num_prepared 0 1 1249 100 /** * Returns the number of objects of any kind that have already been prepared * on this GSG. */ 65 inline int PreparedGraphicsObjects::get_num_prepared(void) const; 2814 15 enqueue_texture 0 4 3304 40 PreparedGraphicsObjects::enqueue_texture 0 1 1250 156 /** * Indicates that a texture would like to be put on the list to be prepared * when the GSG is next ready to do this (presumably at the next frame). */ 60 void PreparedGraphicsObjects::enqueue_texture(Texture *tex); 2815 17 is_texture_queued 0 4 3304 42 PreparedGraphicsObjects::is_texture_queued 0 1 1251 84 /** * Returns true if the texture has been queued on this GSG, false otherwise. */ 74 bool PreparedGraphicsObjects::is_texture_queued(Texture const *tex) const; 2816 15 dequeue_texture 0 4 3304 40 PreparedGraphicsObjects::dequeue_texture 0 1 1252 385 /** * Removes a texture from the queued list of textures to be prepared. * Normally it is not necessary to call this, unless you change your mind * about preparing it at the last minute, since the texture will automatically * be dequeued and prepared at the next frame. * * The return value is true if the texture is successfully dequeued, false if * it had not been queued. */ 60 bool PreparedGraphicsObjects::dequeue_texture(Texture *tex); 2817 19 is_texture_prepared 0 4 3304 44 PreparedGraphicsObjects::is_texture_prepared 0 1 1253 86 /** * Returns true if the texture has been prepared on this GSG, false otherwise. */ 76 bool PreparedGraphicsObjects::is_texture_prepared(Texture const *tex) const; 2818 15 release_texture 0 4 3304 40 PreparedGraphicsObjects::release_texture 0 2 1254 1255 587 /** * Indicates that a texture context, created by a previous call to * prepare_texture(), is no longer needed. The driver resources will not be * freed until some GSG calls update(), indicating it is at a stage where it * is ready to release textures--this prevents conflicts from threading or * multiple GSG's sharing textures (we have no way of knowing which graphics * context is currently active, or what state it's in, at the time * release_texture is called). */ /** * Releases a texture if it has already been prepared, or removes it from the * preparation queue. */ 127 void PreparedGraphicsObjects::release_texture(TextureContext *tc); void PreparedGraphicsObjects::release_texture(Texture *tex); 2819 20 release_all_textures 0 4 3304 45 PreparedGraphicsObjects::release_all_textures 0 1 1256 184 /** * Releases all textures at once. This will force them to be reloaded into * texture memory for all GSG's that share this object. Returns the number of * textures released. */ 56 int PreparedGraphicsObjects::release_all_textures(void); 2820 23 get_num_queued_textures 0 4 3304 48 PreparedGraphicsObjects::get_num_queued_textures 0 1 1257 96 /** * Returns the number of textures that have been enqueued to be prepared on * this GSG. */ 65 int PreparedGraphicsObjects::get_num_queued_textures(void) const; 2821 25 get_num_prepared_textures 0 4 3304 50 PreparedGraphicsObjects::get_num_prepared_textures 0 1 1258 86 /** * Returns the number of textures that have already been prepared on this GSG. */ 67 int PreparedGraphicsObjects::get_num_prepared_textures(void) const; 2822 19 prepare_texture_now 0 4 3304 44 PreparedGraphicsObjects::prepare_texture_now 0 1 1259 727 /** * Immediately creates a new TextureContext for the indicated texture and * returns it. This assumes that the GraphicsStateGuardian is the currently * active rendering context and that it is ready to accept new textures. If * this is not necessarily the case, you should use enqueue_texture() instead. * * Normally, this function is not called directly. Call * Texture::prepare_now() instead. * * The TextureContext contains all of the pertinent information needed by the * GSG to keep track of this one particular texture, and will exist as long as * the texture is ready to be rendered. * * When either the Texture or the PreparedGraphicsObjects object destructs, * the TextureContext will be deleted. */ 117 TextureContext *PreparedGraphicsObjects::prepare_texture_now(Texture *tex, int view, GraphicsStateGuardianBase *gsg); 2823 15 enqueue_sampler 0 4 3304 40 PreparedGraphicsObjects::enqueue_sampler 0 1 1260 156 /** * Indicates that a sampler would like to be put on the list to be prepared * when the GSG is next ready to do this (presumably at the next frame). */ 75 void PreparedGraphicsObjects::enqueue_sampler(SamplerState const &sampler); 2824 17 is_sampler_queued 0 4 3304 42 PreparedGraphicsObjects::is_sampler_queued 0 1 1261 84 /** * Returns true if the sampler has been queued on this GSG, false otherwise. */ 83 bool PreparedGraphicsObjects::is_sampler_queued(SamplerState const &sampler) const; 2825 15 dequeue_sampler 0 4 3304 40 PreparedGraphicsObjects::dequeue_sampler 0 1 1262 385 /** * Removes a sampler from the queued list of samplers to be prepared. * Normally it is not necessary to call this, unless you change your mind * about preparing it at the last minute, since the sampler will automatically * be dequeued and prepared at the next frame. * * The return value is true if the sampler is successfully dequeued, false if * it had not been queued. */ 75 bool PreparedGraphicsObjects::dequeue_sampler(SamplerState const &sampler); 2826 19 is_sampler_prepared 0 4 3304 44 PreparedGraphicsObjects::is_sampler_prepared 0 1 1263 86 /** * Returns true if the sampler has been prepared on this GSG, false otherwise. */ 85 bool PreparedGraphicsObjects::is_sampler_prepared(SamplerState const &sampler) const; 2827 15 release_sampler 0 4 3304 40 PreparedGraphicsObjects::release_sampler 0 2 1264 1265 370 /** * Indicates that a sampler context, created by a previous call to * prepare_sampler(), is no longer needed. The driver resources will not be * freed until some GSG calls update(), indicating it is at a stage where it * is ready to release samplers. */ /** * Releases a sampler if it has already been prepared, or removes it from the * preparation queue. */ 142 void PreparedGraphicsObjects::release_sampler(SamplerContext *sc); void PreparedGraphicsObjects::release_sampler(SamplerState const &sampler); 2828 20 release_all_samplers 0 4 3304 45 PreparedGraphicsObjects::release_all_samplers 0 1 1266 161 /** * Releases all samplers at once. This will force them to be reloaded for all * GSG's that share this object. Returns the number of samplers released. */ 56 int PreparedGraphicsObjects::release_all_samplers(void); 2829 23 get_num_queued_samplers 0 4 3304 48 PreparedGraphicsObjects::get_num_queued_samplers 0 1 1267 96 /** * Returns the number of samplers that have been enqueued to be prepared on * this GSG. */ 65 int PreparedGraphicsObjects::get_num_queued_samplers(void) const; 2830 25 get_num_prepared_samplers 0 4 3304 50 PreparedGraphicsObjects::get_num_prepared_samplers 0 1 1268 86 /** * Returns the number of samplers that have already been prepared on this GSG. */ 67 int PreparedGraphicsObjects::get_num_prepared_samplers(void) const; 2831 19 prepare_sampler_now 0 4 3304 44 PreparedGraphicsObjects::prepare_sampler_now 0 1 1269 727 /** * Immediately creates a new SamplerContext for the indicated sampler and * returns it. This assumes that the GraphicsStateGuardian is the currently * active rendering context and that it is ready to accept new samplers. If * this is not necessarily the case, you should use enqueue_sampler() instead. * * Normally, this function is not called directly. Call * Sampler::prepare_now() instead. * * The SamplerContext contains all of the pertinent information needed by the * GSG to keep track of this one particular sampler, and will exist as long as * the sampler is ready to be rendered. * * When either the Sampler or the PreparedGraphicsObjects object destructs, * the SamplerContext will be deleted. */ 122 SamplerContext *PreparedGraphicsObjects::prepare_sampler_now(SamplerState const &sampler, GraphicsStateGuardianBase *gsg); 2832 12 enqueue_geom 0 4 3304 37 PreparedGraphicsObjects::enqueue_geom 0 1 1270 153 /** * Indicates that a geom would like to be put on the list to be prepared when * the GSG is next ready to do this (presumably at the next frame). */ 55 void PreparedGraphicsObjects::enqueue_geom(Geom *geom); 2833 14 is_geom_queued 0 4 3304 39 PreparedGraphicsObjects::is_geom_queued 0 1 1271 81 /** * Returns true if the geom has been queued on this GSG, false otherwise. */ 69 bool PreparedGraphicsObjects::is_geom_queued(Geom const *geom) const; 2834 12 dequeue_geom 0 4 3304 37 PreparedGraphicsObjects::dequeue_geom 0 1 1272 374 /** * Removes a geom from the queued list of geoms to be prepared. Normally it * is not necessary to call this, unless you change your mind about preparing * it at the last minute, since the geom will automatically be dequeued and * prepared at the next frame. * * The return value is true if the geom is successfully dequeued, false if it * had not been queued. */ 55 bool PreparedGraphicsObjects::dequeue_geom(Geom *geom); 2835 16 is_geom_prepared 0 4 3304 41 PreparedGraphicsObjects::is_geom_prepared 0 1 1273 95 /** * Returns true if the vertex buffer has been prepared on this GSG, false * otherwise. */ 71 bool PreparedGraphicsObjects::is_geom_prepared(Geom const *geom) const; 2836 12 release_geom 0 4 3304 37 PreparedGraphicsObjects::release_geom 0 1 1274 463 /** * Indicates that a geom context, created by a previous call to * prepare_geom(), is no longer needed. The driver resources will not be * freed until some GSG calls update(), indicating it is at a stage where it * is ready to release geoms--this prevents conflicts from threading or * multiple GSG's sharing geoms (we have no way of knowing which graphics * context is currently active, or what state it's in, at the time * release_geom is called). */ 60 void PreparedGraphicsObjects::release_geom(GeomContext *gc); 2837 17 release_all_geoms 0 4 3304 42 PreparedGraphicsObjects::release_all_geoms 0 1 1275 175 /** * Releases all geoms at once. This will force them to be reloaded into geom * memory for all GSG's that share this object. Returns the number of geoms * released. */ 53 int PreparedGraphicsObjects::release_all_geoms(void); 2838 20 get_num_queued_geoms 0 4 3304 45 PreparedGraphicsObjects::get_num_queued_geoms 0 1 1276 93 /** * Returns the number of geoms that have been enqueued to be prepared on this * GSG. */ 62 int PreparedGraphicsObjects::get_num_queued_geoms(void) const; 2839 22 get_num_prepared_geoms 0 4 3304 47 PreparedGraphicsObjects::get_num_prepared_geoms 0 1 1277 83 /** * Returns the number of geoms that have already been prepared on this GSG. */ 64 int PreparedGraphicsObjects::get_num_prepared_geoms(void) const; 2840 16 prepare_geom_now 0 4 3304 41 PreparedGraphicsObjects::prepare_geom_now 0 1 1278 697 /** * Immediately creates a new GeomContext for the indicated geom and returns * it. This assumes that the GraphicsStateGuardian is the currently active * rendering context and that it is ready to accept new geoms. If this is not * necessarily the case, you should use enqueue_geom() instead. * * Normally, this function is not called directly. Call Geom::prepare_now() * instead. * * The GeomContext contains all of the pertinent information needed by the GSG * to keep track of this one particular geom, and will exist as long as the * geom is ready to be rendered. * * When either the Geom or the PreparedGraphicsObjects object destructs, the * GeomContext will be deleted. */ 99 GeomContext *PreparedGraphicsObjects::prepare_geom_now(Geom *geom, GraphicsStateGuardianBase *gsg); 2841 14 enqueue_shader 0 4 3304 39 PreparedGraphicsObjects::enqueue_shader 0 1 1279 155 /** * Indicates that a shader would like to be put on the list to be prepared * when the GSG is next ready to do this (presumably at the next frame). */ 61 void PreparedGraphicsObjects::enqueue_shader(Shader *shader); 2842 16 is_shader_queued 0 4 3304 41 PreparedGraphicsObjects::is_shader_queued 0 1 1280 83 /** * Returns true if the shader has been queued on this GSG, false otherwise. */ 75 bool PreparedGraphicsObjects::is_shader_queued(Shader const *shader) const; 2843 14 dequeue_shader 0 4 3304 39 PreparedGraphicsObjects::dequeue_shader 0 1 1281 382 /** * Removes a shader from the queued list of shaders to be prepared. Normally * it is not necessary to call this, unless you change your mind about * preparing it at the last minute, since the shader will automatically be * dequeued and prepared at the next frame. * * The return value is true if the shader is successfully dequeued, false if * it had not been queued. */ 61 bool PreparedGraphicsObjects::dequeue_shader(Shader *shader); 2844 18 is_shader_prepared 0 4 3304 43 PreparedGraphicsObjects::is_shader_prepared 0 1 1282 85 /** * Returns true if the shader has been prepared on this GSG, false otherwise. */ 77 bool PreparedGraphicsObjects::is_shader_prepared(Shader const *shader) const; 2845 14 release_shader 0 4 3304 39 PreparedGraphicsObjects::release_shader 0 1 1283 473 /** * Indicates that a shader context, created by a previous call to * prepare_shader(), is no longer needed. The driver resources will not be * freed until some GSG calls update(), indicating it is at a stage where it * is ready to release shaders--this prevents conflicts from threading or * multiple GSG's sharing shaders (we have no way of knowing which graphics * context is currently active, or what state it's in, at the time * release_shader is called). */ 64 void PreparedGraphicsObjects::release_shader(ShaderContext *sc); 2846 19 release_all_shaders 0 4 3304 44 PreparedGraphicsObjects::release_all_shaders 0 1 1284 181 /** * Releases all shaders at once. This will force them to be reloaded into * shader memory for all GSG's that share this object. Returns the number of * shaders released. */ 55 int PreparedGraphicsObjects::release_all_shaders(void); 2847 22 get_num_queued_shaders 0 4 3304 47 PreparedGraphicsObjects::get_num_queued_shaders 0 1 1285 95 /** * Returns the number of shaders that have been enqueued to be prepared on * this GSG. */ 64 int PreparedGraphicsObjects::get_num_queued_shaders(void) const; 2848 24 get_num_prepared_shaders 0 4 3304 49 PreparedGraphicsObjects::get_num_prepared_shaders 0 1 1286 85 /** * Returns the number of shaders that have already been prepared on this GSG. */ 66 int PreparedGraphicsObjects::get_num_prepared_shaders(void) const; 2849 18 prepare_shader_now 0 4 3304 43 PreparedGraphicsObjects::prepare_shader_now 0 1 1287 717 /** * Immediately creates a new ShaderContext for the indicated shader and * returns it. This assumes that the GraphicsStateGuardian is the currently * active rendering context and that it is ready to accept new shaders. If * this is not necessarily the case, you should use enqueue_shader() instead. * * Normally, this function is not called directly. Call Shader::prepare_now() * instead. * * The ShaderContext contains all of the pertinent information needed by the * GSG to keep track of this one particular shader, and will exist as long as * the shader is ready to be rendered. * * When either the Shader or the PreparedGraphicsObjects object destructs, the * ShaderContext will be deleted. */ 107 ShaderContext *PreparedGraphicsObjects::prepare_shader_now(Shader *shader, GraphicsStateGuardianBase *gsg); 2850 21 enqueue_vertex_buffer 0 4 3304 46 PreparedGraphicsObjects::enqueue_vertex_buffer 0 1 1288 155 /** * Indicates that a buffer would like to be put on the list to be prepared * when the GSG is next ready to do this (presumably at the next frame). */ 79 void PreparedGraphicsObjects::enqueue_vertex_buffer(GeomVertexArrayData *data); 2851 23 is_vertex_buffer_queued 0 4 3304 48 PreparedGraphicsObjects::is_vertex_buffer_queued 0 1 1289 93 /** * Returns true if the vertex buffer has been queued on this GSG, false * otherwise. */ 93 bool PreparedGraphicsObjects::is_vertex_buffer_queued(GeomVertexArrayData const *data) const; 2852 21 dequeue_vertex_buffer 0 4 3304 46 PreparedGraphicsObjects::dequeue_vertex_buffer 0 1 1290 383 /** * Removes a buffer from the queued list of data arrays to be prepared. * Normally it is not necessary to call this, unless you change your mind * about preparing it at the last minute, since the data will automatically be * dequeued and prepared at the next frame. * * The return value is true if the buffer is successfully dequeued, false if * it had not been queued. */ 79 bool PreparedGraphicsObjects::dequeue_vertex_buffer(GeomVertexArrayData *data); 2853 25 is_vertex_buffer_prepared 0 4 3304 50 PreparedGraphicsObjects::is_vertex_buffer_prepared 0 1 1291 95 /** * Returns true if the vertex buffer has been prepared on this GSG, false * otherwise. */ 95 bool PreparedGraphicsObjects::is_vertex_buffer_prepared(GeomVertexArrayData const *data) const; 2854 21 release_vertex_buffer 0 4 3304 46 PreparedGraphicsObjects::release_vertex_buffer 0 1 1292 481 /** * Indicates that a data context, created by a previous call to * prepare_vertex_buffer(), is no longer needed. The driver resources will * not be freed until some GSG calls update(), indicating it is at a stage * where it is ready to release datas--this prevents conflicts from threading * or multiple GSG's sharing datas (we have no way of knowing which graphics * context is currently active, or what state it's in, at the time * release_vertex_buffer is called). */ 78 void PreparedGraphicsObjects::release_vertex_buffer(VertexBufferContext *vbc); 2855 26 release_all_vertex_buffers 0 4 3304 51 PreparedGraphicsObjects::release_all_vertex_buffers 0 1 1293 175 /** * Releases all datas at once. This will force them to be reloaded into data * memory for all GSG's that share this object. Returns the number of datas * released. */ 62 int PreparedGraphicsObjects::release_all_vertex_buffers(void); 2856 29 get_num_queued_vertex_buffers 0 4 3304 54 PreparedGraphicsObjects::get_num_queued_vertex_buffers 0 1 1294 102 /** * Returns the number of vertex buffers that have been enqueued to be prepared * on this GSG. */ 71 int PreparedGraphicsObjects::get_num_queued_vertex_buffers(void) const; 2857 31 get_num_prepared_vertex_buffers 0 4 3304 56 PreparedGraphicsObjects::get_num_prepared_vertex_buffers 0 1 1295 95 /** * Returns the number of vertex buffers that have already been prepared on * this GSG. */ 73 int PreparedGraphicsObjects::get_num_prepared_vertex_buffers(void) const; 2858 25 prepare_vertex_buffer_now 0 4 3304 50 PreparedGraphicsObjects::prepare_vertex_buffer_now 0 1 1296 733 /** * Immediately creates a new VertexBufferContext for the indicated data and * returns it. This assumes that the GraphicsStateGuardian is the currently * active rendering context and that it is ready to accept new datas. If this * is not necessarily the case, you should use enqueue_vertex_buffer() * instead. * * Normally, this function is not called directly. Call Data::prepare_now() * instead. * * The VertexBufferContext contains all of the pertinent information needed by * the GSG to keep track of this one particular data, and will exist as long * as the data is ready to be rendered. * * When either the Data or the PreparedGraphicsObjects object destructs, the * VertexBufferContext will be deleted. */ 131 VertexBufferContext *PreparedGraphicsObjects::prepare_vertex_buffer_now(GeomVertexArrayData *data, GraphicsStateGuardianBase *gsg); 2859 20 enqueue_index_buffer 0 4 3304 45 PreparedGraphicsObjects::enqueue_index_buffer 0 1 1297 155 /** * Indicates that a buffer would like to be put on the list to be prepared * when the GSG is next ready to do this (presumably at the next frame). */ 72 void PreparedGraphicsObjects::enqueue_index_buffer(GeomPrimitive *data); 2860 22 is_index_buffer_queued 0 4 3304 47 PreparedGraphicsObjects::is_index_buffer_queued 0 1 1298 92 /** * Returns true if the index buffer has been queued on this GSG, false * otherwise. */ 86 bool PreparedGraphicsObjects::is_index_buffer_queued(GeomPrimitive const *data) const; 2861 20 dequeue_index_buffer 0 4 3304 45 PreparedGraphicsObjects::dequeue_index_buffer 0 1 1299 383 /** * Removes a buffer from the queued list of data arrays to be prepared. * Normally it is not necessary to call this, unless you change your mind * about preparing it at the last minute, since the data will automatically be * dequeued and prepared at the next frame. * * The return value is true if the buffer is successfully dequeued, false if * it had not been queued. */ 72 bool PreparedGraphicsObjects::dequeue_index_buffer(GeomPrimitive *data); 2862 24 is_index_buffer_prepared 0 4 3304 49 PreparedGraphicsObjects::is_index_buffer_prepared 0 1 1300 94 /** * Returns true if the index buffer has been prepared on this GSG, false * otherwise. */ 88 bool PreparedGraphicsObjects::is_index_buffer_prepared(GeomPrimitive const *data) const; 2863 20 release_index_buffer 0 4 3304 45 PreparedGraphicsObjects::release_index_buffer 0 1 1301 479 /** * Indicates that a data context, created by a previous call to * prepare_index_buffer(), is no longer needed. The driver resources will not * be freed until some GSG calls update(), indicating it is at a stage where * it is ready to release datas--this prevents conflicts from threading or * multiple GSG's sharing datas (we have no way of knowing which graphics * context is currently active, or what state it's in, at the time * release_index_buffer is called). */ 76 void PreparedGraphicsObjects::release_index_buffer(IndexBufferContext *ibc); 2864 25 release_all_index_buffers 0 4 3304 50 PreparedGraphicsObjects::release_all_index_buffers 0 1 1302 175 /** * Releases all datas at once. This will force them to be reloaded into data * memory for all GSG's that share this object. Returns the number of datas * released. */ 61 int PreparedGraphicsObjects::release_all_index_buffers(void); 2865 28 get_num_queued_index_buffers 0 4 3304 53 PreparedGraphicsObjects::get_num_queued_index_buffers 0 1 1303 101 /** * Returns the number of index buffers that have been enqueued to be prepared * on this GSG. */ 70 int PreparedGraphicsObjects::get_num_queued_index_buffers(void) const; 2866 30 get_num_prepared_index_buffers 0 4 3304 55 PreparedGraphicsObjects::get_num_prepared_index_buffers 0 1 1304 94 /** * Returns the number of index buffers that have already been prepared on this * GSG. */ 72 int PreparedGraphicsObjects::get_num_prepared_index_buffers(void) const; 2867 24 prepare_index_buffer_now 0 4 3304 49 PreparedGraphicsObjects::prepare_index_buffer_now 0 1 1305 726 /** * Immediately creates a new IndexBufferContext for the indicated data and * returns it. This assumes that the GraphicsStateGuardian is the currently * active rendering context and that it is ready to accept new datas. If this * is not necessarily the case, you should use enqueue_index_buffer() instead. * * Normally, this function is not called directly. Call Data::prepare_now() * instead. * * The IndexBufferContext contains all of the pertinent information needed by * the GSG to keep track of this one particular data, and will exist as long * as the data is ready to be rendered. * * When either the Data or the PreparedGraphicsObjects object destructs, the * IndexBufferContext will be deleted. */ 123 IndexBufferContext *PreparedGraphicsObjects::prepare_index_buffer_now(GeomPrimitive *data, GraphicsStateGuardianBase *gsg); 2868 21 enqueue_shader_buffer 0 4 3304 46 PreparedGraphicsObjects::enqueue_shader_buffer 0 1 1306 155 /** * Indicates that a buffer would like to be put on the list to be prepared * when the GSG is next ready to do this (presumably at the next frame). */ 72 void PreparedGraphicsObjects::enqueue_shader_buffer(ShaderBuffer *data); 2869 23 is_shader_buffer_queued 0 4 3304 48 PreparedGraphicsObjects::is_shader_buffer_queued 0 1 1307 92 /** * Returns true if the index buffer has been queued on this GSG, false * otherwise. */ 86 bool PreparedGraphicsObjects::is_shader_buffer_queued(ShaderBuffer const *data) const; 2870 21 dequeue_shader_buffer 0 4 3304 46 PreparedGraphicsObjects::dequeue_shader_buffer 0 1 1308 383 /** * Removes a buffer from the queued list of data arrays to be prepared. * Normally it is not necessary to call this, unless you change your mind * about preparing it at the last minute, since the data will automatically be * dequeued and prepared at the next frame. * * The return value is true if the buffer is successfully dequeued, false if * it had not been queued. */ 72 bool PreparedGraphicsObjects::dequeue_shader_buffer(ShaderBuffer *data); 2871 25 is_shader_buffer_prepared 0 4 3304 50 PreparedGraphicsObjects::is_shader_buffer_prepared 0 1 1309 94 /** * Returns true if the index buffer has been prepared on this GSG, false * otherwise. */ 88 bool PreparedGraphicsObjects::is_shader_buffer_prepared(ShaderBuffer const *data) const; 2872 21 release_shader_buffer 0 4 3304 46 PreparedGraphicsObjects::release_shader_buffer 0 1 1310 481 /** * Indicates that a data context, created by a previous call to * prepare_shader_buffer(), is no longer needed. The driver resources will not * be freed until some GSG calls update(), indicating it is at a stage where * it is ready to release datas--this prevents conflicts from threading or * multiple GSG's sharing datas (we have no way of knowing which graphics * context is currently active, or what state it's in, at the time * release_shader_buffer is called). */ 71 void PreparedGraphicsObjects::release_shader_buffer(BufferContext *bc); 2873 26 release_all_shader_buffers 0 4 3304 51 PreparedGraphicsObjects::release_all_shader_buffers 0 1 1311 175 /** * Releases all datas at once. This will force them to be reloaded into data * memory for all GSG's that share this object. Returns the number of datas * released. */ 62 int PreparedGraphicsObjects::release_all_shader_buffers(void); 2874 29 get_num_queued_shader_buffers 0 4 3304 54 PreparedGraphicsObjects::get_num_queued_shader_buffers 0 1 1312 101 /** * Returns the number of index buffers that have been enqueued to be prepared * on this GSG. */ 71 int PreparedGraphicsObjects::get_num_queued_shader_buffers(void) const; 2875 31 get_num_prepared_shader_buffers 0 4 3304 56 PreparedGraphicsObjects::get_num_prepared_shader_buffers 0 1 1313 94 /** * Returns the number of index buffers that have already been prepared on this * GSG. */ 73 int PreparedGraphicsObjects::get_num_prepared_shader_buffers(void) const; 2876 25 prepare_shader_buffer_now 0 4 3304 50 PreparedGraphicsObjects::prepare_shader_buffer_now 0 1 1314 712 /** * Immediately creates a new BufferContext for the indicated data and * returns it. This assumes that the GraphicsStateGuardian is the currently * active rendering context and that it is ready to accept new datas. If this * is not necessarily the case, you should use enqueue_shader_buffer() instead. * * Normally, this function is not called directly. Call Data::prepare_now() * instead. * * The BufferContext contains all of the pertinent information needed by * the GSG to keep track of this one particular data, and will exist as long * as the data is ready to be rendered. * * When either the Data or the PreparedGraphicsObjects object destructs, the * BufferContext will be deleted. */ 118 BufferContext *PreparedGraphicsObjects::prepare_shader_buffer_now(ShaderBuffer *data, GraphicsStateGuardianBase *gsg); 2877 23 upcast_to_BufferContext 0 12 3305 43 IndexBufferContext::upcast_to_BufferContext 0 1 1320 47 upcast from IndexBufferContext to BufferContext 65 BufferContext *IndexBufferContext::upcast_to_BufferContext(void); 2878 30 downcast_to_IndexBufferContext 0 12 3245 45 BufferContext::downcast_to_IndexBufferContext 0 0 49 downcast from BufferContext to IndexBufferContext 72 IndexBufferContext *BufferContext::downcast_to_IndexBufferContext(void); 2879 25 upcast_to_AdaptiveLruPage 0 12 3305 45 IndexBufferContext::upcast_to_AdaptiveLruPage 0 1 1321 49 upcast from IndexBufferContext to AdaptiveLruPage 69 AdaptiveLruPage *IndexBufferContext::upcast_to_AdaptiveLruPage(void); 2880 30 downcast_to_IndexBufferContext 0 12 3170 47 AdaptiveLruPage::downcast_to_IndexBufferContext 0 0 51 downcast from AdaptiveLruPage to IndexBufferContext 74 IndexBufferContext *AdaptiveLruPage::downcast_to_IndexBufferContext(void); 2881 8 get_data 0 4 3305 28 IndexBufferContext::get_data 0 1 1315 68 /** * Returns the pointer to the client-side array data object. */ 63 inline GeomPrimitive *IndexBufferContext::get_data(void) const; 2882 12 changed_size 0 4 3305 32 IndexBufferContext::changed_size 0 1 1316 101 /** * Returns true if the data has changed size since the last time mark_loaded() * was called. */ 94 inline bool IndexBufferContext::changed_size(GeomPrimitivePipelineReader const *reader) const; 2883 18 changed_usage_hint 0 4 3305 38 IndexBufferContext::changed_usage_hint 0 1 1317 111 /** * Returns true if the data has changed its usage hint since the last time * mark_loaded() was called. */ 100 inline bool IndexBufferContext::changed_usage_hint(GeomPrimitivePipelineReader const *reader) const; 2884 12 was_modified 0 4 3305 32 IndexBufferContext::was_modified 0 1 1318 102 /** * Returns true if the data has been modified since the last time * mark_loaded() was called. */ 94 inline bool IndexBufferContext::was_modified(GeomPrimitivePipelineReader const *reader) const; 2885 14 get_class_type 0 4 3305 34 IndexBufferContext::get_class_type 0 1 1319 0 59 static TypeHandle IndexBufferContext::get_class_type(void); 2886 19 ~IndexBufferContext 0 4 3305 39 IndexBufferContext::~IndexBufferContext 0 0 0 46 IndexBufferContext::~IndexBufferContext(void); 2887 9 make_copy 0 6 3306 15 Lens::make_copy 0 1 1322 0 58 virtual PointerTo< Lens > Lens::make_copy(void) const = 0; 2888 7 extrude 0 4 3306 13 Lens::extrude 0 2 1323 1324 948 /** * Given a 2-d point in the range (-1,1) in both dimensions, where (0,0) is * the center of the lens and (-1,-1) is the lower-left corner, compute the * corresponding vector in space that maps to this point, if such a vector can * be determined. The vector is returned by indicating the points on the near * plane and far plane that both map to the indicated 2-d point. * * Returns true if the vector is defined, or false otherwise. */ /** * Given a 2-d point in the range (-1,1) in both dimensions, where (0,0) is * the center of the lens and (-1,-1) is the lower-left corner, compute the * corresponding vector in space that maps to this point, if such a vector can * be determined. The vector is returned by indicating the points on the near * plane and far plane that both map to the indicated 2-d point. * * The z coordinate of the 2-d point is ignored. * * Returns true if the vector is defined, or false otherwise. */ 195 inline bool Lens::extrude(LPoint2 const &point2d, LPoint3 &near_point, LPoint3 &far_point) const; inline bool Lens::extrude(LPoint3 const &point2d, LPoint3 &near_point, LPoint3 &far_point) const; 2889 13 extrude_depth 0 4 3306 19 Lens::extrude_depth 0 1 1325 262 /** * Uses the depth component of the 3-d result from project() to compute the * original point in 3-d space corresponding to a particular point on the * lens. This exactly reverses project(), assuming the point does fall * legitimately within the lens. */ 80 inline bool Lens::extrude_depth(LPoint3 const &point2d, LPoint3 &point3d) const; 2890 11 extrude_vec 0 4 3306 17 Lens::extrude_vec 0 2 1326 1327 1080 /** * Given a 2-d point in the range (-1,1) in both dimensions, where (0,0) is * the center of the lens and (-1,-1) is the lower-left corner, compute the * vector that corresponds to the view direction. This will be parallel to * the normal on the surface (the far plane) corresponding to the lens shape * at this point. * * See the comment block on Lens::extrude_vec_impl() for a more in-depth * comment on the meaning of this vector. * * Returns true if the vector is defined, or false otherwise. */ /** * Given a 2-d point in the range (-1,1) in both dimensions, where (0,0) is * the center of the lens and (-1,-1) is the lower-left corner, compute the * vector that corresponds to the view direction. This will be parallel to * the normal on the surface (the far plane) corresponding to the lens shape * at this point. * * See the comment block on Lens::extrude_vec_impl() for a more in-depth * comment on the meaning of this vector. * * The z coordinate of the 2-d point is ignored. * * Returns true if the vector is defined, or false otherwise. */ 155 inline bool Lens::extrude_vec(LPoint2 const &point2d, LVector3 &vec3d) const; inline bool Lens::extrude_vec(LPoint3 const &point2d, LVector3 &vec3d) const; 2891 7 project 0 4 3306 13 Lens::project 0 2 1328 1329 1069 /** * Given a 3-d point in space, determine the 2-d point this maps to, in the * range (-1,1) in both dimensions, where (0,0) is the center of the lens and * (-1,-1) is the lower-left corner. * * Returns true if the 3-d point is in front of the lens and within the * viewing frustum (in which case point2d is filled in), or false otherwise * (in which case point2d will be filled in with something, which may or may * not be meaningful). */ /** * Given a 3-d point in space, determine the 2-d point this maps to, in the * range (-1,1) in both dimensions, where (0,0) is the center of the lens and * (-1,-1) is the lower-left corner. * * The z coordinate will also be set to a value in the range (-1, 1), where 1 * represents a point on the near plane, and -1 represents a point on the far * plane. * * Returns true if the 3-d point is in front of the lens and within the * viewing frustum (in which case point2d is filled in), or false otherwise * (in which case point2d will be filled in with something, which may or may * not be meaningful). */ 149 inline bool Lens::project(LPoint3 const &point3d, LPoint3 &point2d) const; inline bool Lens::project(LPoint3 const &point3d, LPoint2 &point2d) const; 2892 16 set_change_event 0 4 3306 22 Lens::set_change_event 0 1 1330 343 /** * Sets the name of the event that will be generated whenever any properties * of the Lens have changed. If this is not set for a particular lens, no * event will be generated. * * The event is thrown with one parameter, the lens itself. This can be used * to automatically track changes to camera fov, etc. in the application. */ 61 inline void Lens::set_change_event(std::string const &event); 2893 16 get_change_event 0 4 3306 22 Lens::get_change_event 0 1 1331 128 /** * Returns the name of the event that will be generated whenever any * properties of this particular Lens have changed. */ 61 inline std::string const &Lens::get_change_event(void) const; 2894 21 set_coordinate_system 0 4 3306 27 Lens::set_coordinate_system 0 1 1332 138 /** * Specifies the coordinate system that all 3-d computations are performed * within for this Lens. Normally, this is CS_default. */ 54 void Lens::set_coordinate_system(CoordinateSystem cs); 2895 21 get_coordinate_system 0 4 3306 27 Lens::get_coordinate_system 0 1 1333 136 /** * Returns the coordinate system that all 3-d computations are performed * within for this Lens. Normally, this is CS_default. */ 64 inline CoordinateSystem Lens::get_coordinate_system(void) const; 2896 5 clear 0 4 3306 11 Lens::clear 0 1 1334 72 /** * Resets all lens parameters to their initial default settings. */ 23 void Lens::clear(void); 2897 13 set_film_size 0 4 3306 19 Lens::set_film_size 0 3 1335 1336 1337 1744 /** * Sets the horizontal size of the film without changing its shape. The * aspect ratio remains unchanged; this computes the vertical size of the film * to automatically maintain the aspect ratio. */ /** * Sets the size and shape of the "film" within the lens. This both * establishes the units used by calls like set_focal_length(), and * establishes the aspect ratio of the frame. * * In a physical camera, the field of view of a lens is determined by the * lens' focal length and by the size of the film area exposed by the lens. * For instance, a 35mm camera exposes a rectangle on the film about 24mm x * 36mm, which means a 50mm lens gives about a 40-degree horizontal field of * view. * * In the virtual camera, you may set the film size to any units here, and * specify a focal length in the same units to simulate the same effect. Or, * you may ignore this parameter, and specify the field of view and aspect * ratio of the lens directly. */ /** * Sets the size and shape of the "film" within the lens. This both * establishes the units used by calls like set_focal_length(), and * establishes the aspect ratio of the frame. * * In a physical camera, the field of view of a lens is determined by the * lens' focal length and by the size of the film area exposed by the lens. * For instance, a 35mm camera exposes a rectangle on the film about 24mm x * 36mm, which means a 50mm lens gives about a 40-degree horizontal field of * view. * * In the virtual camera, you may set the film size to any units here, and * specify a focal length in the same units to simulate the same effect. Or, * you may ignore this parameter, and specify the field of view and aspect * ratio of the lens directly. */ 184 inline void Lens::set_film_size(PN_stdfloat width); inline void Lens::set_film_size(PN_stdfloat width, PN_stdfloat height); inline void Lens::set_film_size(LVecBase2 const &film_size); 2898 13 get_film_size 0 4 3306 19 Lens::get_film_size 0 1 1338 102 /** * Returns the horizontal and vertical film size of the virtual film. See * set_film_size(). */ 56 inline LVecBase2 const &Lens::get_film_size(void) const; 2899 15 set_film_offset 0 4 3306 21 Lens::set_film_offset 0 2 1339 1340 388 /** * Sets the horizontal and vertical offset amounts of this Lens. These are * both in the same units specified in set_film_size(). * * This can be used to establish an off-axis lens. */ /** * Sets the horizontal and vertical offset amounts of this Lens. These are * both in the same units specified in set_film_size(). * * This can be used to establish an off-axis lens. */ 129 inline void Lens::set_film_offset(PN_stdfloat x, PN_stdfloat y); inline void Lens::set_film_offset(LVecBase2 const &film_offset); 2900 15 get_film_offset 0 4 3306 21 Lens::get_film_offset 0 1 1341 102 /** * Returns the horizontal and vertical offset amounts of this Lens. See * set_film_offset(). */ 57 inline LVector2 const &Lens::get_film_offset(void) const; 2901 16 set_focal_length 0 4 3306 22 Lens::set_focal_length 0 1 1342 246 /** * Sets the focal length of the lens. This may adjust the field-of-view * correspondingly, and is an alternate way to specify field of view. * * For certain kinds of lenses (e.g. OrthographicLens), the focal length has * no meaning. */ 61 inline void Lens::set_focal_length(PN_stdfloat focal_length); 2902 16 get_focal_length 0 4 3306 22 Lens::get_focal_length 0 1 1343 257 /** * Returns the focal length of the lens. This may have been set explicitly by * a previous call to set_focal_length(), or it may be computed based on the * lens' fov and film_size. For certain kinds of lenses, the focal length has * no meaning. */ 54 inline PN_stdfloat Lens::get_focal_length(void) const; 2903 11 set_min_fov 0 4 3306 17 Lens::set_min_fov 0 1 1344 499 /** * Sets the field of view of the smallest dimension of the window. If the * window is wider than it is tall, this specifies the vertical field of view; * if it is taller than it is wide, this specifies the horizontal field of * view. * * In many cases, this is preferable to setting either the horizontal or * vertical field of view explicitly. Setting this parameter means that * pulling the window wider will widen the field of view, which is usually * what you expect to happen. */ 44 void Lens::set_min_fov(PN_stdfloat min_fov); 2904 7 set_fov 0 4 3306 13 Lens::set_fov 0 3 1345 1346 1347 837 /** * Sets the horizontal field of view of the lens without changing the aspect * ratio. The vertical field of view is adjusted to maintain the same aspect * ratio. */ /** * Sets the field of view of the lens in both dimensions. This establishes * both the field of view and the aspect ratio of the lens. This is one way * to specify the field of view of a lens; set_focal_length() is another way. * * For certain kinds of lenses (like OrthoLens), the field of view has no * meaning. */ /** * Sets the field of view of the lens in both dimensions. This establishes * both the field of view and the aspect ratio of the lens. This is one way * to specify the field of view of a lens; set_focal_length() is another way. * * For certain kinds of lenses (like OrthographicLens), the field of view has * no meaning. */ 155 inline void Lens::set_fov(PN_stdfloat fov); inline void Lens::set_fov(PN_stdfloat hfov, PN_stdfloat vfov); inline void Lens::set_fov(LVecBase2 const &fov); 2905 7 get_fov 0 4 3306 13 Lens::get_fov 0 1 1348 96 /** * Returns the horizontal and vertical film size of the virtual film. See * set_fov(). */ 50 inline LVecBase2 const &Lens::get_fov(void) const; 2906 8 get_hfov 0 4 3306 14 Lens::get_hfov 0 1 1349 72 /** * Returns the horizontal component of fov only. See get_fov(). */ 46 inline PN_stdfloat Lens::get_hfov(void) const; 2907 8 get_vfov 0 4 3306 14 Lens::get_vfov 0 1 1350 70 /** * Returns the vertical component of fov only. See get_fov(). */ 46 inline PN_stdfloat Lens::get_vfov(void) const; 2908 11 get_min_fov 0 4 3306 17 Lens::get_min_fov 0 1 1351 101 /** * Returns the field of view of the narrowest dimension of the window. See * set_min_fov(). */ 42 PN_stdfloat Lens::get_min_fov(void) const; 2909 16 set_aspect_ratio 0 4 3306 22 Lens::set_aspect_ratio 0 1 1352 189 /** * Sets the aspect ratio of the lens. This is the ratio of the height to the * width of the generated image. Setting this overrides the two-parameter fov * or film size setting. */ 61 inline void Lens::set_aspect_ratio(PN_stdfloat aspect_ratio); 2910 16 get_aspect_ratio 0 4 3306 22 Lens::get_aspect_ratio 0 1 1353 126 /** * Returns the aspect ratio of the Lens. This is determined based on the * indicated film size; see set_film_size(). */ 54 inline PN_stdfloat Lens::get_aspect_ratio(void) const; 2911 8 set_near 0 4 3306 14 Lens::set_near 0 1 1354 142 /** * Defines the position of the near plane (or cylinder, sphere, whatever). * Points closer to the lens than this may not be rendered. */ 54 inline void Lens::set_near(PN_stdfloat near_distance); 2912 8 get_near 0 4 3306 14 Lens::get_near 0 1 1355 82 /** * Returns the position of the near plane (or cylinder, sphere, whatever). */ 46 inline PN_stdfloat Lens::get_near(void) const; 2913 7 set_far 0 4 3306 13 Lens::set_far 0 1 1356 144 /** * Defines the position of the far plane (or cylinder, sphere, whatever). * Points farther from the lens than this may not be rendered. */ 52 inline void Lens::set_far(PN_stdfloat far_distance); 2914 7 get_far 0 4 3306 13 Lens::get_far 0 1 1357 81 /** * Returns the position of the far plane (or cylinder, sphere, whatever). */ 45 inline PN_stdfloat Lens::get_far(void) const; 2915 12 set_near_far 0 4 3306 18 Lens::set_near_far 0 1 1358 58 /** * Simultaneously changes the near and far planes. */ 84 inline void Lens::set_near_far(PN_stdfloat near_distance, PN_stdfloat far_distance); 2916 16 get_default_near 0 4 3306 22 Lens::get_default_near 0 1 1359 143 /** * Returns the default near plane distance that will be assigned to each * newly-created lens. This is read from the Config.prc file. */ 48 static PN_stdfloat Lens::get_default_near(void); 2917 15 get_default_far 0 4 3306 21 Lens::get_default_far 0 1 1360 143 /** * Returns the default far plane distance that will be assigned to each newly- * created lens. This is read from the Config.prc file. */ 47 static PN_stdfloat Lens::get_default_far(void); 2918 12 set_view_hpr 0 4 3306 18 Lens::set_view_hpr 0 2 1361 1362 624 /** * Sets the direction in which the lens is facing. Normally, this is down the * forward axis (usually the Y axis), but it may be rotated. This is only one * way of specifying the rotation; you may also specify an explicit vector in * which to look, or you may give a complete transformation matrix. */ /** * Sets the direction in which the lens is facing. Normally, this is down the * forward axis (usually the Y axis), but it may be rotated. This is only one * way of specifying the rotation; you may also specify an explicit vector in * which to look, or you may give a complete transformation matrix. */ 128 inline void Lens::set_view_hpr(PN_stdfloat h, PN_stdfloat p, PN_stdfloat r); void Lens::set_view_hpr(LVecBase3 const &view_hpr); 2919 12 get_view_hpr 0 4 3306 18 Lens::get_view_hpr 0 1 1363 61 /** * Returns the direction in which the lens is facing. */ 48 LVecBase3 const &Lens::get_view_hpr(void) const; 2920 15 set_view_vector 0 4 3306 21 Lens::set_view_vector 0 2 1364 1365 372 /** * Specifies the direction in which the lens is facing by giving an axis to * look along, and a perpendicular (or at least non-parallel) up axis. * * See also set_view_hpr(). */ /** * Specifies the direction in which the lens is facing by giving an axis to * look along, and a perpendicular (or at least non-parallel) up axis. * * See also set_view_hpr(). */ 208 inline void Lens::set_view_vector(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z, PN_stdfloat i, PN_stdfloat j, PN_stdfloat k); void Lens::set_view_vector(LVector3 const &view_vector, LVector3 const &up_vector); 2921 15 get_view_vector 0 4 3306 21 Lens::get_view_vector 0 1 1366 59 /** * Returns the axis along which the lens is facing. */ 50 LVector3 const &Lens::get_view_vector(void) const; 2922 13 get_up_vector 0 4 3306 19 Lens::get_up_vector 0 1 1367 107 /** * Returns the axis perpendicular to the camera's view vector that indicates * the "up" direction. */ 48 LVector3 const &Lens::get_up_vector(void) const; 2923 15 get_nodal_point 0 4 3306 21 Lens::get_nodal_point 0 1 1368 93 /** * Returns the center point of the lens: the point from which the lens is * viewing. */ 42 LPoint3 Lens::get_nodal_point(void) const; 2924 24 set_interocular_distance 0 4 3306 30 Lens::set_interocular_distance 0 1 1369 459 /** * Sets the distance between the left and right eyes of a stereo camera. This * distance is used to apply a stereo effect when the lens is rendered on a * stereo display region. It only has an effect on a PerspectiveLens. * * The left eye and the right eye are each offset along the X axis by half of * this distance, so that this parameter specifies the total distance between * them. * * Also see set_convergence_distance(), which relates. */ 77 inline void Lens::set_interocular_distance(PN_stdfloat interocular_distance); 2925 24 get_interocular_distance 0 4 3306 30 Lens::get_interocular_distance 0 1 1370 42 /** * See set_interocular_distance(). */ 62 inline PN_stdfloat Lens::get_interocular_distance(void) const; 2926 24 set_convergence_distance 0 4 3306 30 Lens::set_convergence_distance 0 1 1371 1332 /** * Sets the distance between between the camera plane and the point in the * distance that the left and right eyes are both looking at. This distance * is used to apply a stereo effect when the lens is rendered on a stereo * display region. It only has an effect on a PerspectiveLens. * * This parameter must be greater than 0, but may be as large as you like. It * controls the distance at which the two stereo images will appear to * converge, which is a normal property of stereo vision. Normally this * should be set to the distance from the camera to the area of interest in * your scene. Anything beyond this distance will appear to go into the * screen, and anything closer will appear to come out of the screen. If you * want to simulate parallel stereo, set this to infinity. * * Note that this creates an off-axis frustum, which means that the lenses are * still pointing in the same direction, which is usually more desirable than * the more naive toe-in approach, where the two lenses are simply tilted * toward each other. * * Prior to Panda3D 1.9.0, the convergence was being calculated incorrectly. * It has since been corrected. To restore the legacy behavior you can set * the stereo-lens-old-convergence variable to true. * * Also see set_interocular_distance(), which relates. */ 77 inline void Lens::set_convergence_distance(PN_stdfloat convergence_distance); 2927 24 get_convergence_distance 0 4 3306 30 Lens::get_convergence_distance 0 1 1372 42 /** * See set_convergence_distance(). */ 62 inline PN_stdfloat Lens::get_convergence_distance(void) const; 2928 12 set_view_mat 0 4 3306 18 Lens::set_view_mat 0 1 1373 489 /** * Sets an arbitrary transformation on the lens. This replaces the individual * transformation components like set_view_hpr(). * * Setting a transformation here will have a slightly different effect than * putting one on the LensNode that contains this lens. In particular, * lighting and other effects computations will still be performed on the lens * in its untransformed (facing forward) position, but the actual projection * matrix will be transformed by this matrix. */ 57 inline void Lens::set_view_mat(LMatrix4 const &view_mat); 2929 12 get_view_mat 0 4 3306 18 Lens::get_view_mat 0 1 1374 61 /** * Returns the direction in which the lens is facing. */ 54 inline LMatrix4 const &Lens::get_view_mat(void) const; 2930 14 clear_view_mat 0 4 3306 20 Lens::clear_view_mat 0 1 1375 49 /** * Resets the lens transform to identity. */ 32 void Lens::clear_view_mat(void); 2931 12 set_keystone 0 4 3306 18 Lens::set_keystone 0 1 1376 617 /** * Indicates the ratio of keystone correction to perform on the lens, in each * of three axes. This will build a special non-affine scale factor into the * projection matrix that will compensate for keystoning of a projected image; * this can be used to compensate for a projector that for physical reasons * cannot be aimed directly at its screen. * * The default value is taken from the default-keystone Config variable. 0, 0 * indicates no keystone correction; specify a small value (usually in the * range -1 .. 1) in either the x or y position to generate a keystone * correction in that axis. */ 51 void Lens::set_keystone(LVecBase2 const &keystone); 2932 12 get_keystone 0 4 3306 18 Lens::get_keystone 0 1 1377 66 /** * Returns the keystone correction specified for the lens. */ 55 inline LVecBase2 const &Lens::get_keystone(void) const; 2933 14 clear_keystone 0 4 3306 20 Lens::clear_keystone 0 1 1378 49 /** * Disables the lens keystone correction. */ 32 void Lens::clear_keystone(void); 2934 19 set_custom_film_mat 0 4 3306 25 Lens::set_custom_film_mat 0 1 1379 425 /** * Specifies a custom matrix to transform the points on the film after they * have been converted into nominal film space (-1 .. 1 in U and V). This can * be used to introduce arbitrary scales, rotations, or other linear * transforms to the media plane. This is normally a 2-d matrix, but a full * 4x4 matrix may be specified. This is applied on top of any film size, lens * shift, and/or keystone correction. */ 64 void Lens::set_custom_film_mat(LMatrix4 const &custom_film_mat); 2935 19 get_custom_film_mat 0 4 3306 25 Lens::get_custom_film_mat 0 1 1380 62 /** * Returns the custom_film_mat specified for the lens. */ 61 inline LMatrix4 const &Lens::get_custom_film_mat(void) const; 2936 21 clear_custom_film_mat 0 4 3306 27 Lens::clear_custom_film_mat 0 1 1381 56 /** * Disables the lens custom_film_mat correction. */ 39 void Lens::clear_custom_film_mat(void); 2937 24 set_frustum_from_corners 0 4 3306 30 Lens::set_frustum_from_corners 0 1 1382 2189 /** * Sets up the lens to use the frustum defined by the four indicated points. * This is most useful for a PerspectiveLens, but it may be called for other * kinds of lenses as well. * * The frustum will be rooted at the origin (or by whatever translation might * have been specified in a previous call to set_view_mat). * * It is legal for the four points not to be arranged in a rectangle; if this * is the case, the frustum will be fitted as tightly as possible to cover all * four points. * * The flags parameter contains the union of one or more of the following bits * to control the behavior of this function: * * FC_roll - If this is included, the camera may be rotated so that its up * vector is perpendicular to the top line. Otherwise, the standard up vector * is used. * * FC_camera_plane - This allows the camera plane to be adjusted to be as * nearly perpendicular to the center of the frustum as possible. Without * this bit, the orientation camera plane is defined by position of the four * points (which should all be coplanar). With this bit, the camera plane is * arbitarary, and may be chosen so that the four points do not themselves lie * in the camera plane (but the points will still be within the frustum). * * FC_off_axis - This allows the resulting frustum to be off-axis to get the * tightest possible fit. Without this bit, the viewing axis will be centered * within the frustum, but there may be more wasted space along the edges. * * FC_aspect_ratio - This allows the frustum to be scaled non-proportionately * in the vertical and horizontal dimensions, if necessary, to get a tighter * fit. Without this bit, the current aspect ratio will be preserved. * * FC_shear - This allows the frustum to be sheared, if necessary, to get the * tightest possible fit. This may result in a parallelogram-based frustum, * which will give a slanted appearance to the rendered image. Without this * bit, the frustum will be rectangle-based. * * In general, if 0 is passed in as the value for flags, the generated frustum * will be a loose fit but sane; if -1 is passed in, it will be a tighter fit * and possibly screwy. */ 131 void Lens::set_frustum_from_corners(LVecBase3 const &ul, LVecBase3 const &ur, LVecBase3 const &ll, LVecBase3 const &lr, int flags); 2938 13 recompute_all 0 4 3306 19 Lens::recompute_all 0 1 1383 169 /** * Forces all internal parameters of the Lens to be recomputed. Normally, * this should never need to be called; it is provided only to assist in * debugging. */ 31 void Lens::recompute_all(void); 2939 9 is_linear 0 6 3306 15 Lens::is_linear 0 1 1384 206 /** * Returns true if the lens represents a linear projection (e.g. * PerspectiveLens, OrthographicLens), and therefore there is a valid matrix * returned by get_projection_mat(), or false otherwise. */ 41 virtual bool Lens::is_linear(void) const; 2940 14 is_perspective 0 6 3306 20 Lens::is_perspective 0 1 1385 124 /** * Returns true if the lens represents a perspective projection (i.e. it is a * PerspectiveLens), false otherwise. */ 46 virtual bool Lens::is_perspective(void) const; 2941 15 is_orthographic 0 6 3306 21 Lens::is_orthographic 0 1 1386 126 /** * Returns true if the lens represents a orthographic projection (i.e. it is * a OrthographicLens), false otherwise. */ 47 virtual bool Lens::is_orthographic(void) const; 2942 13 make_geometry 0 6 3306 19 Lens::make_geometry 0 1 1387 236 /** * Allocates and returns a new Geom that can be rendered to show a visible * representation of the frustum used for this kind of lens, if it makes sense * to do so. If a visible representation cannot be created, returns NULL. */ 52 virtual PointerTo< Geom > Lens::make_geometry(void); 2943 11 make_bounds 0 6 3306 17 Lens::make_bounds 0 1 1388 190 /** * Allocates and returns a new BoundingVolume that encloses the frustum used * for this kind of lens, if possible. If a suitable bounding volume cannot * be created, returns NULL. */ 66 virtual PointerTo< BoundingVolume > Lens::make_bounds(void) const; 2944 18 get_projection_mat 0 4 3306 24 Lens::get_projection_mat 0 1 1389 183 /** * Returns the complete transformation matrix from a 3-d point in space to a * point on the film, if such a matrix exists, or the identity matrix if the * lens is nonlinear. */ 101 inline LMatrix4 const &Lens::get_projection_mat(Lens::StereoChannel channel = ::Lens::SC_mono) const; 2945 22 get_projection_mat_inv 0 4 3306 28 Lens::get_projection_mat_inv 0 1 1390 128 /** * Returns the matrix that transforms from a 2-d point on the film to a 3-d * vector in space, if such a matrix exists. */ 105 inline LMatrix4 const &Lens::get_projection_mat_inv(Lens::StereoChannel channel = ::Lens::SC_mono) const; 2946 12 get_film_mat 0 4 3306 18 Lens::get_film_mat 0 1 1391 101 /** * Returns the matrix that transforms from a point behind the lens to a point * on the film. */ 54 inline LMatrix4 const &Lens::get_film_mat(void) const; 2947 16 get_film_mat_inv 0 4 3306 22 Lens::get_film_mat_inv 0 1 1392 101 /** * Returns the matrix that transforms from a point on the film to a point * behind the lens. */ 58 inline LMatrix4 const &Lens::get_film_mat_inv(void) const; 2948 12 get_lens_mat 0 4 3306 18 Lens::get_lens_mat 0 1 1393 103 /** * Returns the matrix that transforms from a point in front of the lens to a * point in space. */ 54 inline LMatrix4 const &Lens::get_lens_mat(void) const; 2949 16 get_lens_mat_inv 0 4 3306 22 Lens::get_lens_mat_inv 0 1 1394 103 /** * Returns the matrix that transforms from a point in space to a point in * front of the lens. */ 58 inline LMatrix4 const &Lens::get_lens_mat_inv(void) const; 2950 6 output 0 6 3306 12 Lens::output 0 1 1395 10 /** * */ 51 virtual void Lens::output(std::ostream &out) const; 2951 5 write 0 6 3306 11 Lens::write 0 1 1396 10 /** * */ 72 virtual void Lens::write(std::ostream &out, int indent_level = 0) const; 2952 15 get_last_change 0 4 3306 21 Lens::get_last_change 0 1 1397 192 /** * Returns the UpdateSeq that is incremented whenever the lens properties are * changed. As long as this number remains the same, you may assume the lens * properties are unchanged. */ 51 inline UpdateSeq Lens::get_last_change(void) const; 2953 14 get_class_type 0 4 3306 20 Lens::get_class_type 0 1 1398 0 45 static TypeHandle Lens::get_class_type(void); 2954 5 ~Lens 0 4 3306 11 Lens::~Lens 0 0 0 18 Lens::~Lens(void); 2955 37 upcast_to_TypedWritableReferenceCount 0 12 3324 47 Material::upcast_to_TypedWritableReferenceCount 0 1 1448 51 upcast from Material to TypedWritableReferenceCount 83 TypedWritableReferenceCount *Material::upcast_to_TypedWritableReferenceCount(void); 2956 20 downcast_to_Material 0 12 3185 49 TypedWritableReferenceCount::downcast_to_Material 0 0 53 downcast from TypedWritableReferenceCount to Material 66 Material *TypedWritableReferenceCount::downcast_to_Material(void); 2957 17 upcast_to_Namable 0 12 3324 27 Material::upcast_to_Namable 0 1 1449 31 upcast from Material to Namable 43 Namable *Material::upcast_to_Namable(void); 2958 20 downcast_to_Material 0 12 3169 29 Namable::downcast_to_Material 0 0 33 downcast from Namable to Material 46 Material *Namable::downcast_to_Material(void); 2959 8 Material 0 4 3324 18 Material::Material 0 2 1399 1400 22 /** * */ /** * */ 114 inline explicit Material::Material(std::string const &name = ""); inline Material::Material(Material const ©); 2960 10 operator = 0 4 3324 20 Material::operator = 0 1 1401 0 48 void Material::operator =(Material const ©); 2961 9 ~Material 0 6 3324 19 Material::~Material 0 0 10 /** * */ 41 virtual inline Material::~Material(void); 2962 11 get_default 0 4 3324 21 Material::get_default 0 1 1402 40 /** * Returns the default material. */ 52 static inline Material *Material::get_default(void); 2963 14 has_base_color 0 4 3324 24 Material::has_base_color 0 1 1403 104 /** * Returns true if the base color has been explicitly set for this material, * false otherwise. */ 49 inline bool Material::has_base_color(void) const; 2964 14 get_base_color 0 4 3324 24 Material::get_base_color 0 1 1404 162 /** * Returns the base_color color setting, if it has been set. If neither the * base color nor the metallic have been set, this returns the diffuse color. */ 58 inline LColor const &Material::get_base_color(void) const; 2965 14 set_base_color 0 4 3324 24 Material::set_base_color 0 1 1405 444 /** * Specifies the base color of the material. In conjunction with * set_metallic, this is an alternate way to specify the color of a material. * For dielectrics, this will determine the value of the diffuse color, and * for metals, this will determine the value of the specular color. * * Setting this will clear an explicit specular, diffuse or ambient color * assignment. * * If this is not set, the object color will be used. */ 51 void Material::set_base_color(LColor const &color); 2966 16 clear_base_color 0 4 3324 26 Material::clear_base_color 0 1 1406 67 /** * Removes the explicit base_color color from the material. */ 38 void Material::clear_base_color(void); 2967 11 has_ambient 0 4 3324 21 Material::has_ambient 0 1 1407 107 /** * Returns true if the ambient color has been explicitly set for this * material, false otherwise. */ 46 inline bool Material::has_ambient(void) const; 2968 11 get_ambient 0 4 3324 21 Material::get_ambient 0 1 1408 126 /** * Returns the ambient color setting, if it has been set. Returns (0,0,0,0) * if the ambient color has not been set. */ 55 inline LColor const &Material::get_ambient(void) const; 2969 11 set_ambient 0 4 3324 21 Material::set_ambient 0 1 1409 313 /** * Specifies the ambient color setting of the material. This will be the * multiplied by any ambient lights in effect on the material to set its base * color. * * This is the color of the object as it appears in the absence of direct * light. * * If this is not set, the object color will be used. */ 48 void Material::set_ambient(LColor const &color); 2970 13 clear_ambient 0 4 3324 23 Material::clear_ambient 0 1 1410 64 /** * Removes the explicit ambient color from the material. */ 42 inline void Material::clear_ambient(void); 2971 11 has_diffuse 0 4 3324 21 Material::has_diffuse 0 1 1411 107 /** * Returns true if the diffuse color has been explicitly set for this * material, false otherwise. */ 46 inline bool Material::has_diffuse(void) const; 2972 11 get_diffuse 0 4 3324 21 Material::get_diffuse 0 1 1412 126 /** * Returns the diffuse color setting, if it has been set. Returns (1,1,1,1) * if the diffuse color has not been set. */ 55 inline LColor const &Material::get_diffuse(void) const; 2973 11 set_diffuse 0 4 3324 21 Material::set_diffuse 0 1 1413 396 /** * Specifies the diffuse color setting of the material. This will be * multiplied by any lights in effect on the material to get the color in the * parts of the object illuminated by the lights. * * This is the primary color of an object; the color of the object as it * appears in direct light, in the absence of highlights. * * If this is not set, the object color will be used. */ 48 void Material::set_diffuse(LColor const &color); 2974 13 clear_diffuse 0 4 3324 23 Material::clear_diffuse 0 1 1414 64 /** * Removes the explicit diffuse color from the material. */ 42 inline void Material::clear_diffuse(void); 2975 12 has_specular 0 4 3324 22 Material::has_specular 0 1 1415 108 /** * Returns true if the specular color has been explicitly set for this * material, false otherwise. */ 47 inline bool Material::has_specular(void) const; 2976 12 get_specular 0 4 3324 22 Material::get_specular 0 1 1416 128 /** * Returns the specular color setting, if it has been set. Returns (0,0,0,0) * if the specular color has not been set. */ 56 inline LColor const &Material::get_specular(void) const; 2977 12 set_specular 0 4 3324 22 Material::set_specular 0 1 1417 448 /** * Specifies the specular color setting of the material. This will be * multiplied by any lights in effect on the material to compute the color of * specular highlights on the object. * * This is the highlight color of an object: the color of small highlight * reflections. * * If this is not set, the specular color is taken from the index of * refraction, which is 1 by default (meaning no specular reflections are * generated). */ 49 void Material::set_specular(LColor const &color); 2978 14 clear_specular 0 4 3324 24 Material::clear_specular 0 1 1418 65 /** * Removes the explicit specular color from the material. */ 36 void Material::clear_specular(void); 2979 12 has_emission 0 4 3324 22 Material::has_emission 0 1 1419 108 /** * Returns true if the emission color has been explicitly set for this * material, false otherwise. */ 47 inline bool Material::has_emission(void) const; 2980 12 get_emission 0 4 3324 22 Material::get_emission 0 1 1420 128 /** * Returns the emission color setting, if it has been set. Returns (0,0,0,0) * if the emission color has not been set. */ 56 inline LColor const &Material::get_emission(void) const; 2981 12 set_emission 0 4 3324 22 Material::set_emission 0 1 1421 437 /** * Specifies the emission color setting of the material. This is the color of * the object as it appears in the absence of any light whatsover, including * ambient light. It is as if the object is glowing by this color (although * of course it will not illuminate neighboring objects). * * If this is not set, the object will not glow by its own light and will only * appear visible in the presence of one or more lights. */ 49 void Material::set_emission(LColor const &color); 2982 14 clear_emission 0 4 3324 24 Material::clear_emission 0 1 1422 65 /** * Removes the explicit emission color from the material. */ 43 inline void Material::clear_emission(void); 2983 13 get_shininess 0 4 3324 23 Material::get_shininess 0 1 1423 58 /** * Returns the shininess exponent of the material. */ 55 inline PN_stdfloat Material::get_shininess(void) const; 2984 13 set_shininess 0 4 3324 23 Material::set_shininess 0 1 1424 429 /** * Sets the shininess exponent of the material. This controls the size of the * specular highlight spot. In general, larger number produce a smaller * specular highlight, which makes the object appear shinier. Smaller numbers * produce a larger highlight, which makes the object appear less shiny. * * This is usually in the range 0..128. * * Setting a shininess value removes any previous roughness assignment. */ 52 void Material::set_shininess(PN_stdfloat shininess); 2985 13 has_roughness 0 4 3324 23 Material::has_roughness 0 1 1425 103 /** * Returns true if the roughness has been explicitly set for this material, * false otherwise. */ 48 inline bool Material::has_roughness(void) const; 2986 13 get_roughness 0 4 3324 23 Material::get_roughness 0 1 1426 152 /** * Returns the roughness previously specified by set_roughness. If none was * previously set, this value is computed from the shininess value. */ 48 PN_stdfloat Material::get_roughness(void) const; 2987 13 set_roughness 0 4 3324 23 Material::set_roughness 0 1 1427 379 /** * Sets the roughness exponent of the material, where 0 is completely shiny * (infinite shininess), and 1 is a completely dull object (0 shininess). * This is a different, more perceptually intuitive way of controlling the * size of the specular spot, and more commonly used in physically-based * rendering. * * Setting a roughness recalculates the shininess value. */ 52 void Material::set_roughness(PN_stdfloat roughness); 2988 12 has_metallic 0 4 3324 22 Material::has_metallic 0 1 1428 102 /** * Returns true if the metallic has been explicitly set for this material, * false otherwise. */ 47 inline bool Material::has_metallic(void) const; 2989 12 get_metallic 0 4 3324 22 Material::get_metallic 0 1 1429 98 /** * Returns the metallic setting, if it has been set. Returns 0 if it has not * been set. */ 54 inline PN_stdfloat Material::get_metallic(void) const; 2990 12 set_metallic 0 4 3324 22 Material::set_metallic 0 1 1430 369 /** * Sets the metallic setting of the material, which is is used for physically- * based rendering models. This is usually 0 for dielectric materials and 1 * for metals. It really does not make sense to set this to a value other * than 0 or 1, but it is nonetheless a float for compatibility with tools * that allow setting this to values other than 0 or 1. */ 50 void Material::set_metallic(PN_stdfloat metallic); 2991 14 clear_metallic 0 4 3324 24 Material::clear_metallic 0 1 1431 67 /** * Removes the explicit metallic setting from the material. */ 36 void Material::clear_metallic(void); 2992 20 has_refractive_index 0 4 3324 30 Material::has_refractive_index 0 1 1432 97 /** * Returns true if a refractive index has explicitly been specified for this * material. */ 55 inline bool Material::has_refractive_index(void) const; 2993 20 get_refractive_index 0 4 3324 30 Material::get_refractive_index 0 1 1433 91 /** * Returns the index of refraction, or 1 if none has been set for this * material. */ 62 inline PN_stdfloat Material::get_refractive_index(void) const; 2994 20 set_refractive_index 0 4 3324 30 Material::set_refractive_index 0 1 1434 356 /** * Sets the index of refraction of the material, which is used to determine * the specular color in absence of an explicit specular color assignment. * This is usually 1.5 for dielectric materials. It is not very useful for * metals, since they cannot be described as easily with a single number. * * Should be 1 or higher. The default is 1. */ 66 void Material::set_refractive_index(PN_stdfloat refractive_index); 2995 9 get_local 0 4 3324 19 Material::get_local 0 1 1435 59 /** * Returns the local viewer flag. Set set_local(). */ 44 inline bool Material::get_local(void) const; 2996 9 set_local 0 4 3324 19 Material::set_local 0 1 1436 252 /** * Sets the local viewer flag. Set this true to enable camera-relative * specular highlights, or false to use orthogonal specular highlights. The * default value is true. Applications that use orthogonal projection should * specify false. */ 44 inline void Material::set_local(bool local); 2997 11 get_twoside 0 4 3324 21 Material::get_twoside 0 1 1437 80 /** * Returns the state of the two-sided lighting flag. See set_twoside(). */ 46 inline bool Material::get_twoside(void) const; 2998 11 set_twoside 0 4 3324 21 Material::set_twoside 0 1 1438 241 /** * Set this true to enable two-sided lighting. When two-sided lighting is on, * both sides of a polygon will be lit by this material. The default is for * two-sided lighting to be off, in which case only the front surface is lit. */ 48 inline void Material::set_twoside(bool twoside); 2999 11 operator == 0 4 3324 21 Material::operator == 0 1 1439 0 63 inline bool Material::operator ==(Material const &other) const; 3000 11 operator != 0 4 3324 21 Material::operator != 0 1 1440 0 63 inline bool Material::operator !=(Material const &other) const; 3001 10 operator < 0 4 3324 20 Material::operator < 0 1 1441 0 62 inline bool Material::operator <(Material const &other) const; 3002 10 compare_to 0 4 3324 20 Material::compare_to 0 1 1442 266 /** * Returns a number less than zero if this material sorts before the other * one, greater than zero if it sorts after, or zero if they are equivalent. * The sorting order is arbitrary and largely meaningless, except to * differentiate different materials. */ 54 int Material::compare_to(Material const &other) const; 3003 6 output 0 4 3324 16 Material::output 0 1 1443 10 /** * */ 47 void Material::output(std::ostream &out) const; 3004 5 write 0 4 3324 15 Material::write 0 1 1444 10 /** * */ 58 void Material::write(std::ostream &out, int indent) const; 3005 16 is_attrib_locked 0 4 3324 26 Material::is_attrib_locked 0 1 1445 62 /** * @deprecated This no longer has any meaning in 1.10. */ 51 inline bool Material::is_attrib_locked(void) const; 3006 15 set_attrib_lock 0 4 3324 25 Material::set_attrib_lock 0 1 1446 62 /** * @deprecated This no longer has any meaning in 1.10. */ 44 inline void Material::set_attrib_lock(void); 3007 14 get_class_type 0 4 3324 24 Material::get_class_type 0 1 1447 0 49 static TypeHandle Material::get_class_type(void); 3008 12 get_material 0 4 3325 26 MaterialPool::get_material 0 1 1450 657 /** * Returns a Material pointer that represents the same material described by * temp, except that it is a shared pointer. * * Each call to get_material() passing an equivalent Material pointer will * return the same shared pointer. * * If you modify the shared pointer, it will automatically disassociate it * from the pool. * * Also, the return value may be a different pointer than that passed in, or * it may be the same pointer. In either case, the passed in pointer has now * been sacrificed to the greater good and should not be used again (like any * other PointerTo, it will be freed when the last reference count is * removed). */ 67 static inline Material *MaterialPool::get_material(Material *temp); 3009 16 release_material 0 4 3325 30 MaterialPool::release_material 0 1 1451 56 /** * Removes the indicated material from the pool. */ 66 static inline void MaterialPool::release_material(Material *temp); 3010 21 release_all_materials 0 4 3325 35 MaterialPool::release_all_materials 0 1 1452 90 /** * Releases all materials in the pool and restores the pool to the empty * state. */ 61 static inline void MaterialPool::release_all_materials(void); 3011 15 garbage_collect 0 4 3325 29 MaterialPool::garbage_collect 0 1 1453 215 /** * Releases only those materials in the pool that have a reference count of * exactly 1; i.e. only those materials that are not being used outside of * the pool. Returns the number of materials released. */ 54 static inline int MaterialPool::garbage_collect(void); 3012 13 list_contents 0 4 3325 27 MaterialPool::list_contents 0 1 1454 82 /** * Lists the contents of the material pool to the indicated output stream. */ 66 static inline void MaterialPool::list_contents(std::ostream &out); 3013 5 write 0 4 3325 19 MaterialPool::write 0 1 1455 82 /** * Lists the contents of the material pool to the indicated output stream. */ 51 static void MaterialPool::write(std::ostream &out); 3014 13 ~MaterialPool 0 4 3325 27 MaterialPool::~MaterialPool 0 0 0 34 MaterialPool::~MaterialPool(void); 3015 10 MatrixLens 0 4 3326 22 MatrixLens::MatrixLens 0 1 1456 22 /** * */ /** * */ 36 inline MatrixLens::MatrixLens(void); 3016 12 set_user_mat 0 4 3326 24 MatrixLens::set_user_mat 0 1 1457 559 /** * Explicitly specifies the projection matrix. This matrix should convert X * and Y to the range [-film_size/2, film_size/2], where (-fs/2,-fs/2) is the * lower left corner of the screen and (fs/2, fs/2) is the upper right. Z * should go to the range [-1, 1], where -1 is the far plane and 1 is the near * plane. Note that this is a left-handed Y-up coordinate system. * * The default film_size for a MatrixLens is 2, so the default range is [-1, * 1] for both X and Y. This is consistent with the GL conventions for * projection matrices. */ 63 inline void MatrixLens::set_user_mat(LMatrix4 const &user_mat); 3017 12 get_user_mat 0 4 3326 24 MatrixLens::get_user_mat 0 1 1458 161 /** * Returns the explicit projection matrix as set by the user. This does not * include transforms on the lens or film (e.g. a film offset or view hpr). */ 60 inline LMatrix4 const &MatrixLens::get_user_mat(void) const; 3018 16 set_left_eye_mat 0 4 3326 28 MatrixLens::set_left_eye_mat 0 1 1459 424 /** * Sets a custom projection matrix for the left eye. This is only used if the * lens is attached to a stereo camera, in which case the left eye matrix will * be used to draw the scene in the left eye (but the center matrix--the * user_mat--will still be used to cull the scene). * * This matrix should not be too different from the center matrix (set by * set_user_mat()) or culling errors may become obvious. */ 67 inline void MatrixLens::set_left_eye_mat(LMatrix4 const &user_mat); 3019 18 clear_left_eye_mat 0 4 3326 30 MatrixLens::clear_left_eye_mat 0 1 1460 130 /** * Removes the custom projection matrix set for the left eye, and uses the * center matrix (set by set_user_mat) instead. */ 49 inline void MatrixLens::clear_left_eye_mat(void); 3020 16 has_left_eye_mat 0 4 3326 28 MatrixLens::has_left_eye_mat 0 1 1461 179 /** * Returns true if the camera has a custom projection matrix set for the left * eye, or false if the center matrix (set by set_user_mat) will be used for * the left eye. */ 53 inline bool MatrixLens::has_left_eye_mat(void) const; 3021 16 get_left_eye_mat 0 4 3326 28 MatrixLens::get_left_eye_mat 0 1 1462 148 /** * Returns the custom projection matrix for the left eye, if any, or the * center matrix if there is no custom matrix set for the left eye. */ 64 inline LMatrix4 const &MatrixLens::get_left_eye_mat(void) const; 3022 17 set_right_eye_mat 0 4 3326 29 MatrixLens::set_right_eye_mat 0 1 1463 427 /** * Sets a custom projection matrix for the right eye. This is only used if * the lens is attached to a stereo camera, in which case the right eye matrix * will be used to draw the scene in the right eye (but the center matrix--the * user_mat--will still be used to cull the scene). * * This matrix should not be too different from the center matrix (set by * set_user_mat()) or culling errors may become obvious. */ 68 inline void MatrixLens::set_right_eye_mat(LMatrix4 const &user_mat); 3023 19 clear_right_eye_mat 0 4 3326 31 MatrixLens::clear_right_eye_mat 0 1 1464 131 /** * Removes the custom projection matrix set for the right eye, and uses the * center matrix (set by set_user_mat) instead. */ 50 inline void MatrixLens::clear_right_eye_mat(void); 3024 17 has_right_eye_mat 0 4 3326 29 MatrixLens::has_right_eye_mat 0 1 1465 181 /** * Returns true if the camera has a custom projection matrix set for the right * eye, or false if the center matrix (set by set_user_mat) will be used for * the right eye. */ 54 inline bool MatrixLens::has_right_eye_mat(void) const; 3025 17 get_right_eye_mat 0 4 3326 29 MatrixLens::get_right_eye_mat 0 1 1466 150 /** * Returns the custom projection matrix for the right eye, if any, or the * center matrix if there is no custom matrix set for the right eye. */ 65 inline LMatrix4 const &MatrixLens::get_right_eye_mat(void) const; 3026 14 get_class_type 0 4 3326 26 MatrixLens::get_class_type 0 1 1467 0 51 static TypeHandle MatrixLens::get_class_type(void); 3027 11 ~MatrixLens 0 4 3326 23 MatrixLens::~MatrixLens 0 0 0 30 MatrixLens::~MatrixLens(void); 3028 16 OrthographicLens 0 4 3327 34 OrthographicLens::OrthographicLens 0 1 1468 22 /** * */ /** * */ 48 inline OrthographicLens::OrthographicLens(void); 3029 14 get_class_type 0 4 3327 32 OrthographicLens::get_class_type 0 1 1469 0 57 static TypeHandle OrthographicLens::get_class_type(void); 3030 17 ~OrthographicLens 0 4 3327 35 OrthographicLens::~OrthographicLens 0 0 0 42 OrthographicLens::~OrthographicLens(void); 3031 19 ParamTextureSampler 0 4 3328 40 ParamTextureSampler::ParamTextureSampler 0 1 1470 94 /** * Creates a new ParamTextureSampler storing the given texture and sampler * objects. */ 91 inline ParamTextureSampler::ParamTextureSampler(Texture *tex, SamplerState const &sampler); 3032 11 get_texture 0 4 3328 32 ParamTextureSampler::get_texture 0 1 1471 57 /** * Retrieves the texture stored in the parameter. */ 61 inline Texture *ParamTextureSampler::get_texture(void) const; 3033 11 get_sampler 0 4 3328 32 ParamTextureSampler::get_sampler 0 1 1472 63 /** * Retrieves the sampler state stored in the parameter. */ 72 inline SamplerState const &ParamTextureSampler::get_sampler(void) const; 3034 14 get_class_type 0 4 3328 35 ParamTextureSampler::get_class_type 0 1 1473 0 60 static TypeHandle ParamTextureSampler::get_class_type(void); 3035 20 ~ParamTextureSampler 0 4 3328 41 ParamTextureSampler::~ParamTextureSampler 0 0 0 48 ParamTextureSampler::~ParamTextureSampler(void); 3036 17 ParamTextureImage 0 4 3331 36 ParamTextureImage::ParamTextureImage 0 1 1474 101 /** * Creates a new ParamTextureImage storing the given texture and image binding * parameters. */ 104 inline ParamTextureImage::ParamTextureImage(Texture *tex, bool read, bool write, int z = -1, int n = 0); 3037 11 get_texture 0 4 3331 30 ParamTextureImage::get_texture 0 1 1475 57 /** * Retrieves the texture stored in the parameter. */ 59 inline Texture *ParamTextureImage::get_texture(void) const; 3038 15 has_read_access 0 4 3331 34 ParamTextureImage::has_read_access 0 1 1476 79 /** * Returns true if this image should be bound with read access enabled. */ 59 inline bool ParamTextureImage::has_read_access(void) const; 3039 16 has_write_access 0 4 3331 35 ParamTextureImage::has_write_access 0 1 1477 80 /** * Returns true if this image should be bound with write access enabled. */ 60 inline bool ParamTextureImage::has_write_access(void) const; 3040 16 get_bind_layered 0 4 3331 35 ParamTextureImage::get_bind_layered 0 1 1478 83 /** * Returns true if all layers of this image should be bound simultaneously. */ 60 inline bool ParamTextureImage::get_bind_layered(void) const; 3041 14 get_bind_level 0 4 3331 33 ParamTextureImage::get_bind_level 0 1 1479 56 /** * Returns the image level that should be bound. */ 57 inline int ParamTextureImage::get_bind_level(void) const; 3042 14 get_bind_layer 0 4 3331 33 ParamTextureImage::get_bind_layer 0 1 1480 115 /** * Returns the image layer that should be bound. This is undefined if * get_bind_layered() returns false. */ 57 inline int ParamTextureImage::get_bind_layer(void) const; 3043 14 get_class_type 0 4 3331 33 ParamTextureImage::get_class_type 0 1 1481 0 58 static TypeHandle ParamTextureImage::get_class_type(void); 3044 18 ~ParamTextureImage 0 4 3331 37 ParamTextureImage::~ParamTextureImage 0 0 0 44 ParamTextureImage::~ParamTextureImage(void); 3045 15 PerspectiveLens 0 4 3332 32 PerspectiveLens::PerspectiveLens 0 2 1482 1483 34 /** * */ /** * */ /** * */ 132 inline PerspectiveLens::PerspectiveLens(void); inline explicit PerspectiveLens::PerspectiveLens(PN_stdfloat hfov, PN_stdfloat vfov); 3046 14 get_class_type 0 4 3332 31 PerspectiveLens::get_class_type 0 1 1484 0 56 static TypeHandle PerspectiveLens::get_class_type(void); 3047 16 ~PerspectiveLens 0 4 3332 33 PerspectiveLens::~PerspectiveLens 0 0 0 40 PerspectiveLens::~PerspectiveLens(void); 3048 20 TextureReloadRequest 0 4 3333 42 TextureReloadRequest::TextureReloadRequest 0 2 1485 1486 122 /** * Create a new TextureReloadRequest, and add it to the loader via * load_async(), to begin an asynchronous load. */ 246 inline explicit TextureReloadRequest::TextureReloadRequest(std::string const &name, PreparedGraphicsObjects *pgo, Texture *texture, bool allow_compressed); inline TextureReloadRequest::TextureReloadRequest(TextureReloadRequest const &) = default; 3049 29 get_prepared_graphics_objects 0 4 3333 51 TextureReloadRequest::get_prepared_graphics_objects 0 1 1487 112 /** * Returns the PreparedGraphicsObjects object associated with this * asynchronous TextureReloadRequest. */ 96 inline PreparedGraphicsObjects *TextureReloadRequest::get_prepared_graphics_objects(void) const; 3050 11 get_texture 0 4 3333 33 TextureReloadRequest::get_texture 0 1 1488 96 /** * Returns the Texture object associated with this asynchronous * TextureReloadRequest. */ 62 inline Texture *TextureReloadRequest::get_texture(void) const; 3051 20 get_allow_compressed 0 4 3333 42 TextureReloadRequest::get_allow_compressed 0 1 1489 105 /** * Returns the "allow compressed" flag associated with this asynchronous * TextureReloadRequest. */ 67 inline bool TextureReloadRequest::get_allow_compressed(void) const; 3052 8 is_ready 0 4 3333 30 TextureReloadRequest::is_ready 0 1 1490 154 /** * Returns true if this request has completed, false if it is still pending. * Equivalent to `req.done() and not req.cancelled()`. * @see done() */ 55 inline bool TextureReloadRequest::is_ready(void) const; 3053 14 get_class_type 0 4 3333 36 TextureReloadRequest::get_class_type 0 1 1491 0 61 static TypeHandle TextureReloadRequest::get_class_type(void); 3054 21 ~TextureReloadRequest 0 4 3333 43 TextureReloadRequest::~TextureReloadRequest 0 0 0 50 TextureReloadRequest::~TextureReloadRequest(void); 3055 23 upcast_to_BufferContext 0 12 3334 39 TextureContext::upcast_to_BufferContext 0 1 1504 43 upcast from TextureContext to BufferContext 61 BufferContext *TextureContext::upcast_to_BufferContext(void); 3056 26 downcast_to_TextureContext 0 12 3245 41 BufferContext::downcast_to_TextureContext 0 0 45 downcast from BufferContext to TextureContext 64 TextureContext *BufferContext::downcast_to_TextureContext(void); 3057 25 upcast_to_AdaptiveLruPage 0 12 3334 41 TextureContext::upcast_to_AdaptiveLruPage 0 1 1505 45 upcast from TextureContext to AdaptiveLruPage 65 AdaptiveLruPage *TextureContext::upcast_to_AdaptiveLruPage(void); 3058 26 downcast_to_TextureContext 0 12 3170 43 AdaptiveLruPage::downcast_to_TextureContext 0 0 47 downcast from AdaptiveLruPage to TextureContext 66 TextureContext *AdaptiveLruPage::downcast_to_TextureContext(void); 3059 11 get_texture 0 4 3334 27 TextureContext::get_texture 0 1 1492 64 /** * Returns the pointer to the associated Texture object. */ 56 inline Texture *TextureContext::get_texture(void) const; 3060 8 get_view 0 4 3334 24 TextureContext::get_view 0 1 1493 152 /** * Returns the specific view of a multiview texture this context represents. * In the usual case, with a non-multiview texture, this will be 0. */ 48 inline int TextureContext::get_view(void) const; 3061 13 get_native_id 0 6 3334 29 TextureContext::get_native_id 0 1 1494 198 /** * Returns an implementation-defined handle or pointer that can be used * to interface directly with the underlying API. * Returns 0 if the underlying implementation does not support this. */ 59 virtual uint64_t TextureContext::get_native_id(void) const; 3062 20 get_native_buffer_id 0 6 3334 36 TextureContext::get_native_buffer_id 0 1 1495 253 /** * Similar to get_native_id, but some implementations use a separate * identifier for the buffer object associated with buffer textures. * Returns 0 if the underlying implementation does not support this, or * if this is not a buffer texture. */ 66 virtual uint64_t TextureContext::get_native_buffer_id(void) const; 3063 12 was_modified 0 4 3334 28 TextureContext::was_modified 0 1 1496 126 /** * Returns true if the texture properties or image have been modified since * the last time mark_loaded() was called. */ 53 inline bool TextureContext::was_modified(void) const; 3064 23 was_properties_modified 0 4 3334 39 TextureContext::was_properties_modified 0 1 1497 142 /** * Returns true if the texture properties (unrelated to the image) have been * modified since the last time mark_loaded() was called. */ 64 inline bool TextureContext::was_properties_modified(void) const; 3065 18 was_image_modified 0 4 3334 34 TextureContext::was_image_modified 0 1 1498 111 /** * Returns true if the texture image has been modified since the last time * mark_loaded() was called. */ 59 inline bool TextureContext::was_image_modified(void) const; 3066 25 was_simple_image_modified 0 4 3334 41 TextureContext::was_simple_image_modified 0 1 1499 129 /** * Returns true if the texture's "simple" image has been modified since the * last time mark_simple_loaded() was called. */ 66 inline bool TextureContext::was_simple_image_modified(void) const; 3067 23 get_properties_modified 0 4 3334 39 TextureContext::get_properties_modified 0 1 1500 151 /** * Returns a sequence number which is guaranteed to change at least every time * the texture properties (unrelated to the image) are modified. */ 69 inline UpdateSeq TextureContext::get_properties_modified(void) const; 3068 18 get_image_modified 0 4 3334 34 TextureContext::get_image_modified 0 1 1501 152 /** * Returns a sequence number which is guaranteed to change at least every time * the texture image data (including mipmap levels) are modified. */ 64 inline UpdateSeq TextureContext::get_image_modified(void) const; 3069 25 get_simple_image_modified 0 4 3334 41 TextureContext::get_simple_image_modified 0 1 1502 136 /** * Returns a sequence number which is guaranteed to change at least every time * the texture's "simple" image data is modified. */ 71 inline UpdateSeq TextureContext::get_simple_image_modified(void) const; 3070 14 get_class_type 0 4 3334 30 TextureContext::get_class_type 0 1 1503 0 55 static TypeHandle TextureContext::get_class_type(void); 3071 15 ~TextureContext 0 4 3334 31 TextureContext::~TextureContext 0 0 0 38 TextureContext::~TextureContext(void); 3072 10 get_shader 0 4 3335 25 ShaderContext::get_shader 0 1 1506 10 /** * */ 53 inline Shader *ShaderContext::get_shader(void) const; 3073 14 get_class_type 0 4 3335 29 ShaderContext::get_class_type 0 1 1507 0 54 static TypeHandle ShaderContext::get_class_type(void); 3074 14 ~ShaderContext 0 4 3335 29 ShaderContext::~ShaderContext 0 0 0 36 ShaderContext::~ShaderContext(void); 3075 16 UserVertexSlider 0 4 3337 34 UserVertexSlider::UserVertexSlider 0 2 1508 1509 22 /** * */ /** * */ 140 explicit UserVertexSlider::UserVertexSlider(std::string const &name); explicit UserVertexSlider::UserVertexSlider(InternalName const *name); 3076 10 set_slider 0 4 3337 28 UserVertexSlider::set_slider 0 1 1510 45 /** * Stores the indicated slider value. */ 61 inline void UserVertexSlider::set_slider(PN_stdfloat slider); 3077 14 get_class_type 0 4 3337 32 UserVertexSlider::get_class_type 0 1 1511 0 57 static TypeHandle UserVertexSlider::get_class_type(void); 3078 17 ~UserVertexSlider 0 4 3337 35 UserVertexSlider::~UserVertexSlider 0 0 0 42 UserVertexSlider::~UserVertexSlider(void); 3079 19 UserVertexTransform 0 4 3338 40 UserVertexTransform::UserVertexTransform 0 1 1512 10 /** * */ 75 explicit UserVertexTransform::UserVertexTransform(std::string const &name); 3080 8 get_name 0 4 3338 29 UserVertexTransform::get_name 0 1 1513 77 /** * Returns the name passed to the constructor. Completely arbitrary. */ 68 inline std::string const &UserVertexTransform::get_name(void) const; 3081 10 set_matrix 0 4 3338 31 UserVertexTransform::set_matrix 0 1 1514 39 /** * Stores the indicated matrix. */ 68 inline void UserVertexTransform::set_matrix(LMatrix4 const &matrix); 3082 14 get_class_type 0 4 3338 35 UserVertexTransform::get_class_type 0 1 1515 0 60 static TypeHandle UserVertexTransform::get_class_type(void); 3083 20 ~UserVertexTransform 0 4 3338 41 UserVertexTransform::~UserVertexTransform 0 0 0 48 UserVertexTransform::~UserVertexTransform(void); 3084 17 upcast_to_Texture 0 12 3339 31 VideoTexture::upcast_to_Texture 0 1 1520 35 upcast from VideoTexture to Texture 47 Texture *VideoTexture::upcast_to_Texture(void); 3085 24 downcast_to_VideoTexture 0 12 3281 33 Texture::downcast_to_VideoTexture 0 0 37 downcast from Texture to VideoTexture 54 VideoTexture *Texture::downcast_to_VideoTexture(void); 3086 23 upcast_to_AnimInterface 0 12 3339 37 VideoTexture::upcast_to_AnimInterface 0 1 1521 41 upcast from VideoTexture to AnimInterface 59 AnimInterface *VideoTexture::upcast_to_AnimInterface(void); 3087 24 downcast_to_VideoTexture 0 12 3340 39 AnimInterface::downcast_to_VideoTexture 0 0 43 downcast from AnimInterface to VideoTexture 60 VideoTexture *AnimInterface::downcast_to_VideoTexture(void); 3088 18 get_keep_ram_image 0 6 3339 32 VideoTexture::get_keep_ram_image 0 1 1516 207 /** * Returns the flag that indicates whether this Texture is eligible to have * its main RAM copy of the texture memory dumped when the texture is prepared * for rendering. See set_keep_ram_image(). */ 58 virtual bool VideoTexture::get_keep_ram_image(void) const; 3089 15 get_video_width 0 4 3339 29 VideoTexture::get_video_width 0 1 1517 200 /** * Returns the width in texels of the source video stream. This is not * necessarily the width of the actual texture, since the texture may have * been expanded to raise it to a power of 2. */ 53 inline int VideoTexture::get_video_width(void) const; 3090 16 get_video_height 0 4 3339 30 VideoTexture::get_video_height 0 1 1518 202 /** * Returns the height in texels of the source video stream. This is not * necessarily the height of the actual texture, since the texture may have * been expanded to raise it to a power of 2. */ 54 inline int VideoTexture::get_video_height(void) const; 3091 14 get_class_type 0 4 3339 28 VideoTexture::get_class_type 0 1 1519 0 53 static TypeHandle VideoTexture::get_class_type(void); 3092 13 ~VideoTexture 0 4 3339 27 VideoTexture::~VideoTexture 0 0 0 34 VideoTexture::~VideoTexture(void); 3093 23 upcast_to_BufferContext 0 12 3341 44 VertexBufferContext::upcast_to_BufferContext 0 1 1527 48 upcast from VertexBufferContext to BufferContext 66 BufferContext *VertexBufferContext::upcast_to_BufferContext(void); 3094 31 downcast_to_VertexBufferContext 0 12 3245 46 BufferContext::downcast_to_VertexBufferContext 0 0 50 downcast from BufferContext to VertexBufferContext 74 VertexBufferContext *BufferContext::downcast_to_VertexBufferContext(void); 3095 25 upcast_to_AdaptiveLruPage 0 12 3341 46 VertexBufferContext::upcast_to_AdaptiveLruPage 0 1 1528 50 upcast from VertexBufferContext to AdaptiveLruPage 70 AdaptiveLruPage *VertexBufferContext::upcast_to_AdaptiveLruPage(void); 3096 31 downcast_to_VertexBufferContext 0 12 3170 48 AdaptiveLruPage::downcast_to_VertexBufferContext 0 0 52 downcast from AdaptiveLruPage to VertexBufferContext 76 VertexBufferContext *AdaptiveLruPage::downcast_to_VertexBufferContext(void); 3097 8 get_data 0 4 3341 29 VertexBufferContext::get_data 0 1 1522 68 /** * Returns the pointer to the client-side array data object. */ 70 inline GeomVertexArrayData *VertexBufferContext::get_data(void) const; 3098 12 changed_size 0 4 3341 33 VertexBufferContext::changed_size 0 1 1523 101 /** * Returns true if the data has changed size since the last time mark_loaded() * was called. */ 93 inline bool VertexBufferContext::changed_size(GeomVertexArrayDataHandle const *reader) const; 3099 18 changed_usage_hint 0 4 3341 39 VertexBufferContext::changed_usage_hint 0 1 1524 111 /** * Returns true if the data has changed its usage hint since the last time * mark_loaded() was called. */ 99 inline bool VertexBufferContext::changed_usage_hint(GeomVertexArrayDataHandle const *reader) const; 3100 12 was_modified 0 4 3341 33 VertexBufferContext::was_modified 0 1 1525 102 /** * Returns true if the data has been modified since the last time * mark_loaded() was called. */ 93 inline bool VertexBufferContext::was_modified(GeomVertexArrayDataHandle const *reader) const; 3101 14 get_class_type 0 4 3341 35 VertexBufferContext::get_class_type 0 1 1526 0 60 static TypeHandle VertexBufferContext::get_class_type(void); 3102 20 ~VertexBufferContext 0 4 3341 41 VertexBufferContext::~VertexBufferContext 0 0 0 48 VertexBufferContext::~VertexBufferContext(void); 3103 17 TextureCollection 0 4 3342 36 TextureCollection::TextureCollection 0 3 1529 1530 1531 22 /** * */ /** * */ 186 TextureCollection::TextureCollection(void); TextureCollection::TextureCollection(TextureCollection const ©); TextureCollection::TextureCollection(PyObject *self, PyObject *sequence); 3104 10 operator = 0 4 3342 29 TextureCollection::operator = 0 1 1532 0 66 void TextureCollection::operator =(TextureCollection const ©); 3105 18 ~TextureCollection 0 4 3342 37 TextureCollection::~TextureCollection 0 0 10 /** * */ 51 inline TextureCollection::~TextureCollection(void); 3106 10 __reduce__ 0 4 3342 29 TextureCollection::__reduce__ 0 1 1533 0 62 PyObject *TextureCollection::__reduce__(PyObject *self) const; 3107 11 add_texture 0 4 3342 30 TextureCollection::add_texture 0 1 1534 48 /** * Adds a new Texture to the collection. */ 54 void TextureCollection::add_texture(Texture *texture); 3108 14 remove_texture 0 4 3342 33 TextureCollection::remove_texture 0 1 1535 154 /** * Removes the indicated Texture from the collection. Returns true if the * texture was removed, false if it was not a member of the collection. */ 57 bool TextureCollection::remove_texture(Texture *texture); 3109 17 add_textures_from 0 4 3342 36 TextureCollection::add_textures_from 0 1 1536 211 /** * Adds all the Textures indicated in the other collection to this texture. * The other textures are simply appended to the end of the textures in this * list; duplicates are not automatically removed. */ 74 void TextureCollection::add_textures_from(TextureCollection const &other); 3110 20 remove_textures_from 0 4 3342 39 TextureCollection::remove_textures_from 0 1 1537 94 /** * Removes from this collection all of the Textures listed in the other * collection. */ 77 void TextureCollection::remove_textures_from(TextureCollection const &other); 3111 25 remove_duplicate_textures 0 4 3342 44 TextureCollection::remove_duplicate_textures 0 1 1538 195 /** * Removes any duplicate entries of the same Textures on this collection. If * a Texture appears multiple times, the first appearance is retained; * subsequent appearances are removed. */ 56 void TextureCollection::remove_duplicate_textures(void); 3112 11 has_texture 0 4 3342 30 TextureCollection::has_texture 0 1 1539 96 /** * Returns true if the indicated Texture appears in this collection, false * otherwise. */ 60 bool TextureCollection::has_texture(Texture *texture) const; 3113 5 clear 0 4 3342 24 TextureCollection::clear 0 1 1540 52 /** * Removes all Textures from the collection. */ 36 void TextureCollection::clear(void); 3114 7 reserve 0 4 3342 26 TextureCollection::reserve 0 1 1541 157 /** * This is a hint to Panda to allocate enough memory to hold the given number * of NodePaths, if you know ahead of time how many you will be adding. */ 49 void TextureCollection::reserve(std::size_t num); 3115 12 find_texture 0 4 3342 31 TextureCollection::find_texture 0 1 1542 121 /** * Returns the texture in the collection with the indicated name, if any, or * NULL if no texture has that name. */ 72 Texture *TextureCollection::find_texture(std::string const &name) const; 3116 16 get_num_textures 0 4 3342 35 TextureCollection::get_num_textures 0 1 1543 60 /** * Returns the number of Textures in the collection. */ 52 int TextureCollection::get_num_textures(void) const; 3117 11 get_texture 0 4 3342 30 TextureCollection::get_texture 0 1 1544 53 /** * Returns the nth Texture in the collection. */ 57 Texture *TextureCollection::get_texture(int index) const; 3118 11 operator [] 0 4 3342 30 TextureCollection::operator [] 0 1 1545 142 /** * Returns the nth Texture in the collection. This is the same as * get_texture(), but it may be a more convenient way to access it. */ 57 Texture *TextureCollection::operator [](int index) const; 3119 4 size 0 4 3342 23 TextureCollection::size 0 1 1546 110 /** * Returns the number of textures in the collection. This is the same thing * as get_num_textures(). */ 40 int TextureCollection::size(void) const; 3120 11 operator += 0 4 3342 30 TextureCollection::operator += 0 1 1547 0 75 inline void TextureCollection::operator +=(TextureCollection const &other); 3121 10 operator + 0 4 3342 29 TextureCollection::operator + 0 1 1548 0 93 inline TextureCollection TextureCollection::operator +(TextureCollection const &other) const; 3122 6 append 0 4 3342 25 TextureCollection::append 0 1 1549 205 // Method names to satisfy Python's conventions. /** * Adds a new Texture to the collection. This method duplicates the * add_texture() method; it is provided to satisfy Python's naming convention. */ 56 inline void TextureCollection::append(Texture *texture); 3123 6 extend 0 4 3342 25 TextureCollection::extend 0 1 1550 157 /** * Appends the other list onto the end of this one. This method duplicates * the += operator; it is provided to satisfy Python's naming convention. */ 70 inline void TextureCollection::extend(TextureCollection const &other); 3124 6 output 0 4 3342 25 TextureCollection::output 0 1 1551 106 /** * Writes a brief one-line description of the TextureCollection to the * indicated output stream. */ 56 void TextureCollection::output(std::ostream &out) const; 3125 5 write 0 4 3342 24 TextureCollection::write 0 1 1552 111 /** * Writes a complete multi-line description of the TextureCollection to the * indicated output stream. */ 77 void TextureCollection::write(std::ostream &out, int indent_level = 0) const; 3126 11 has_texture 0 4 3343 24 TexturePool::has_texture 0 1 1553 77 /** * Returns true if the texture has ever been loaded, false otherwise. */ 70 static inline bool TexturePool::has_texture(Filename const &filename); 3127 14 verify_texture 0 4 3343 27 TexturePool::verify_texture 0 1 1554 313 /** * Loads the given filename up into a texture, if it has not already been * loaded, and returns true to indicate success, or false to indicate failure. * If this returns true, it is guaranteed that a subsequent call to * load_texture() with the same texture name will return a valid Texture * pointer. */ 73 static inline bool TexturePool::verify_texture(Filename const &filename); 3128 12 load_texture 0 4 3343 25 TexturePool::load_texture 0 2 1555 1556 978 /** * Loads the given filename up into a texture, if it has not already been * loaded, and returns the new texture. If a texture with the same filename * was previously loaded, returns that one instead. If the texture file * cannot be found, returns NULL. * * If read_mipmaps is true, the filename should contain a hash mark ('#'), * which will be filled in with the mipmap level number; and the texture will * be defined with a series of images, one for each mipmap level. */ /** * Loads the given filename up into a texture, if it has not already been * loaded, and returns the new texture. If a texture with the same filename * was previously loaded, returns that one instead. If the texture file * cannot be found, returns NULL. * * If read_mipmaps is true, both filenames should contain a hash mark ('#'), * which will be filled in with the mipmap level number; and the texture will * be defined with a series of images, two for each mipmap level. */ 431 static inline Texture *TexturePool::load_texture(Filename const &filename, int primary_file_num_channels = 0, bool read_mipmaps = false, LoaderOptions const &options = LoaderOptions()); static inline Texture *TexturePool::load_texture(Filename const &filename, Filename const &alpha_filename, int primary_file_num_channels = 0, int alpha_file_channel = 0, bool read_mipmaps = false, LoaderOptions const &options = LoaderOptions()); 3129 15 load_3d_texture 0 4 3343 28 TexturePool::load_3d_texture 0 1 1557 490 /** * Loads a 3-D texture that is specified with a series of n pages, all * numbered in sequence, and beginning with index 0. The filename should * include a sequence of one or more hash characters ("#") which will be * filled in with the index number of each level. * * If read_mipmaps is true, the filename should contain an additional hash * mark. The first hash mark will be filled in with the mipmap level number, * and the second with the index number of each 3-d level. */ 161 static inline Texture *TexturePool::load_3d_texture(Filename const &filename_pattern, bool read_mipmaps = false, LoaderOptions const &options = LoaderOptions()); 3130 21 load_2d_texture_array 0 4 3343 34 TexturePool::load_2d_texture_array 0 1 1558 496 /** * Loads a 2-D texture array that is specified with a series of n pages, all * numbered in sequence, and beginning with index 0. The filename should * include a sequence of one or more hash characters ("#") which will be * filled in with the index number of each level. * * If read_mipmaps is true, the filename should contain an additional hash * mark. The first hash mark will be filled in with the mipmap level number, * and the second with the index number of each 2-d level. */ 167 static inline Texture *TexturePool::load_2d_texture_array(Filename const &filename_pattern, bool read_mipmaps = false, LoaderOptions const &options = LoaderOptions()); 3131 13 load_cube_map 0 4 3343 26 TexturePool::load_cube_map 0 1 1559 457 /** * Loads a cube map texture that is specified with a series of 6 pages, * numbered 0 through 5. The filename should include a sequence of one or * more hash characters ("#") which will be filled in with the index number of * each pagee. * * If read_mipmaps is true, the filename should contain an additional hash * mark. The first hash mark will be filled in with the mipmap level number, * and the second with the face number, 0 through 5. */ 159 static inline Texture *TexturePool::load_cube_map(Filename const &filename_pattern, bool read_mipmaps = false, LoaderOptions const &options = LoaderOptions()); 3132 26 get_normalization_cube_map 0 4 3343 39 TexturePool::get_normalization_cube_map 0 1 1560 290 /** * Returns a standard Texture object that has been created with * Texture::generate_normalization_cube_map(). This Texture may be shared by * any application code requiring a normalization cube map. It will be at * least as large as the specified size, though it may be larger. */ 73 static inline Texture *TexturePool::get_normalization_cube_map(int size); 3133 19 get_alpha_scale_map 0 4 3343 32 TexturePool::get_alpha_scale_map 0 1 1561 296 /** * Returns a standard Texture object that has been created with * Texture::generate_alpha_scale_map(). * * This Texture object is used internally by Panda to apply an alpha scale to * an object (instead of munging its vertices) when * gsg->get_alpha_scale_via_texture() returns true. */ 62 static inline Texture *TexturePool::get_alpha_scale_map(void); 3134 11 add_texture 0 4 3343 24 TexturePool::add_texture 0 1 1562 226 /** * Adds the indicated already-loaded texture to the pool. The texture must * have a filename set for its name. The texture will always replace any * previously-loaded texture in the pool that had the same filename. */ 62 static inline void TexturePool::add_texture(Texture *texture); 3135 15 release_texture 0 4 3343 28 TexturePool::release_texture 0 1 1563 404 /** * Removes the indicated texture from the pool, indicating it will never be * loaded again; the texture may then be freed. If this function is never * called, a reference count will be maintained on every texture every loaded, * and textures will never be freed. * * The texture's name should not have been changed during its lifetime, or * this function may fail to locate it in the pool. */ 66 static inline void TexturePool::release_texture(Texture *texture); 3136 20 release_all_textures 0 4 3343 33 TexturePool::release_all_textures 0 1 1564 86 /** * Releases all textures in the pool and restores the pool to the empty state. */ 59 static inline void TexturePool::release_all_textures(void); 3137 6 rehash 0 4 3343 19 TexturePool::rehash 0 1 1565 131 /** * Should be called when the model-path changes, to blow away the cache of * texture pathnames found along the model-path. */ 45 static inline void TexturePool::rehash(void); 3138 15 garbage_collect 0 4 3343 28 TexturePool::garbage_collect 0 1 1566 212 /** * Releases only those textures in the pool that have a reference count of * exactly 1; i.e. only those textures that are not being used outside of the * pool. Returns the number of textures released. */ 53 static inline int TexturePool::garbage_collect(void); 3139 13 list_contents 0 4 3343 26 TexturePool::list_contents 0 2 1567 1568 140 /** * Lists the contents of the texture pool to the indicated output stream. */ /** * Lists the contents of the texture pool to cout */ 118 static inline void TexturePool::list_contents(std::ostream &out); static inline void TexturePool::list_contents(void); 3140 12 find_texture 0 4 3343 25 TexturePool::find_texture 0 1 1569 182 /** * Returns the first texture found in the pool that matches the indicated name * (which may contain wildcards). Returns the texture if it is found, or NULL * if it is not. */ 74 static inline Texture *TexturePool::find_texture(std::string const &name); 3141 17 find_all_textures 0 4 3343 30 TexturePool::find_all_textures 0 1 1570 124 /** * Returns the set of all textures found in the pool that match the indicated * name (which may contain wildcards). */ 94 static inline TextureCollection TexturePool::find_all_textures(std::string const &name = "*"); 3142 22 set_fake_texture_image 0 4 3343 35 TexturePool::set_fake_texture_image 0 1 1571 109 /** * Sets a bogus filename that will be loaded in lieu of any textures requested * from this point on. */ 81 static inline void TexturePool::set_fake_texture_image(Filename const &filename); 3143 24 clear_fake_texture_image 0 4 3343 37 TexturePool::clear_fake_texture_image 0 1 1572 79 /** * Restores normal behavior of loading the textures actually requested. */ 63 static inline void TexturePool::clear_fake_texture_image(void); 3144 22 has_fake_texture_image 0 4 3343 35 TexturePool::has_fake_texture_image 0 1 1573 107 /** * Returns true if fake_texture_image mode has been enabled, false if we are * in the normal mode. */ 61 static inline bool TexturePool::has_fake_texture_image(void); 3145 22 get_fake_texture_image 0 4 3343 35 TexturePool::get_fake_texture_image 0 1 1574 103 /** * Returns the filename that was specified with a previous call to * set_fake_texture_image(). */ 72 static inline Filename const &TexturePool::get_fake_texture_image(void); 3146 12 make_texture 0 4 3343 25 TexturePool::make_texture 0 1 1575 185 /** * Creates a new Texture object of the appropriate type for the indicated * filename extension, according to the types that have been registered via * register_texture_type(). */ 91 static inline PointerTo< Texture > TexturePool::make_texture(std::string const &extension); 3147 5 write 0 4 3343 18 TexturePool::write 0 1 1576 100 /** * Lists the contents of the texture pool to the indicated output stream. For * debugging. */ 50 static void TexturePool::write(std::ostream &out); 3148 12 ~TexturePool 0 4 3343 25 TexturePool::~TexturePool 0 0 0 32 TexturePool::~TexturePool(void); 3149 10 get_x_size 0 4 3344 25 TexturePeeker::get_x_size 0 1 1578 191 /** * Returns the width of the texture image that is contributing to the * TexturePeeker's information. This may be either the Texture's full width, * or its simple ram image's width. */ 49 inline int TexturePeeker::get_x_size(void) const; 3150 10 get_y_size 0 4 3344 25 TexturePeeker::get_y_size 0 1 1579 194 /** * Returns the height of the texture image that is contributing to the * TexturePeeker's information. This may be either the Texture's full height, * or its simple ram image's height. */ 49 inline int TexturePeeker::get_y_size(void) const; 3151 10 get_z_size 0 4 3344 25 TexturePeeker::get_z_size 0 1 1580 109 /** * Returns the depth of the texture image that is contributing to the * TexturePeeker's information. */ 49 inline int TexturePeeker::get_z_size(void) const; 3152 9 has_pixel 0 4 3344 24 TexturePeeker::has_pixel 0 1 1581 82 /** * Returns whether a given coordinate is inside of the texture dimensions. */ 57 inline bool TexturePeeker::has_pixel(int x, int y) const; 3153 6 lookup 0 4 3344 21 TexturePeeker::lookup 0 2 1582 1583 623 /** * Fills "color" with the RGBA color of the texel at point (u, v). * * The texel color is determined via nearest-point sampling (no filtering of * adjacent pixels), regardless of the filter type associated with the * texture. u, v, and w will wrap around regardless of the texture's wrap * mode. */ /** * Fills "color" with the RGBA color of the texel at point (u, v, w). * * The texel color is determined via nearest-point sampling (no filtering of * adjacent pixels), regardless of the filter type associated with the * texture. u, v, and w will wrap around regardless of the texture's wrap * mode. */ 172 void TexturePeeker::lookup(LColor &color, PN_stdfloat u, PN_stdfloat v) const; void TexturePeeker::lookup(LColor &color, PN_stdfloat u, PN_stdfloat v, PN_stdfloat w) const; 3154 11 fetch_pixel 0 4 3344 26 TexturePeeker::fetch_pixel 0 1 1584 108 /** * Works like TexturePeeker::lookup(), but instead uv-coordinates integer * coordinates are used. */ 67 void TexturePeeker::fetch_pixel(LColor &color, int x, int y) const; 3155 15 lookup_bilinear 0 4 3344 30 TexturePeeker::lookup_bilinear 0 1 1585 233 /** * Performs a bilinear lookup to retrieve the color value stored at the uv * coordinate (u, v). * * In case the point is outside of the uv range, color is set to zero, * and false is returned. Otherwise true is returned. */ 87 bool TexturePeeker::lookup_bilinear(LColor &color, PN_stdfloat u, PN_stdfloat v) const; 3156 11 filter_rect 0 4 3344 26 TexturePeeker::filter_rect 0 2 1586 1587 546 /** * Fills "color" with the average RGBA color of the texels within the * rectangle defined by the specified coordinate range. * * The texel color is linearly filtered over the entire region. u, v, and w * will wrap around regardless of the texture's wrap mode. */ /** * Fills "color" with the average RGBA color of the texels within the * rectangle defined by the specified coordinate range. * * The texel color is linearly filtered over the entire region. u, v, and w * will wrap around regardless of the texture's wrap mode. */ 297 void TexturePeeker::filter_rect(LColor &color, PN_stdfloat min_u, PN_stdfloat min_v, PN_stdfloat max_u, PN_stdfloat max_v) const; void TexturePeeker::filter_rect(LColor &color, PN_stdfloat min_u, PN_stdfloat min_v, PN_stdfloat min_w, PN_stdfloat max_u, PN_stdfloat max_v, PN_stdfloat max_w) const; 3157 13 TexturePeeker 0 4 3344 28 TexturePeeker::TexturePeeker 0 1 1577 169 /** * Use Texture::peek() to construct a TexturePeeker. * * This constructor is called only by Texture::peek(), and assumes the * texture's lock is already held. */ 69 inline TexturePeeker::TexturePeeker(TexturePeeker const &) = default; 3158 14 ~TexturePeeker 0 4 3344 29 TexturePeeker::~TexturePeeker 0 0 0 36 TexturePeeker::~TexturePeeker(void); 3159 9 get_stage 0 4 3345 27 TextureStagePool::get_stage 0 1 1588 666 /** * Returns a TextureStage pointer that represents the same TextureStage * described by temp, except that it is a shared pointer. * * Each call to get_stage() passing an equivalent TextureStage pointer will * return the same shared pointer. * * If you modify the shared pointer, it will automatically disassociate it * from the pool. * * Also, the return value may be a different pointer than that passed in, or * it may be the same pointer. In either case, the passed in pointer has now * been sacrificed to the greater good and should not be used again (like any * other PointerTo, it will be freed when the last reference count is * removed). */ 76 static inline TextureStage *TextureStagePool::get_stage(TextureStage *temp); 3160 13 release_stage 0 4 3345 31 TextureStagePool::release_stage 0 1 1589 60 /** * Removes the indicated TextureStage from the pool. */ 71 static inline void TextureStagePool::release_stage(TextureStage *temp); 3161 18 release_all_stages 0 4 3345 36 TextureStagePool::release_all_stages 0 1 1590 94 /** * Releases all TextureStages in the pool and restores the pool to the empty * state. */ 62 static inline void TextureStagePool::release_all_stages(void); 3162 8 set_mode 0 4 3345 26 TextureStagePool::set_mode 0 1 1591 489 /** * Specifies the fundamental operating mode of the TextureStagePool. * * If this is M_none, each call to get_stage() returns the same TextureStage * pointer that was passed in (the pool is effectively disabled). If this is * M_name, each call to get_stage() returns the last TextureStage passed in * with the same name, whether it has different properties or not. If this is * M_unique, then each call to get_stage() returns only TextureStages with * identical properties. */ 75 static inline void TextureStagePool::set_mode(TextureStagePool::Mode mode); 3163 8 get_mode 0 4 3345 26 TextureStagePool::get_mode 0 1 1592 94 /** * Returns the fundamental operating mode of the TextureStagePool. See * set_mode(). */ 70 static inline TextureStagePool::Mode TextureStagePool::get_mode(void); 3164 15 garbage_collect 0 4 3345 33 TextureStagePool::garbage_collect 0 1 1593 227 /** * Releases only those TextureStages in the pool that have a reference count * of exactly 1; i.e. only those TextureStages that are not being used * outside of the pool. Returns the number of TextureStages released. */ 58 static inline int TextureStagePool::garbage_collect(void); 3165 13 list_contents 0 4 3345 31 TextureStagePool::list_contents 0 1 1594 86 /** * Lists the contents of the TextureStage pool to the indicated output stream. */ 70 static inline void TextureStagePool::list_contents(std::ostream &out); 3166 5 write 0 4 3345 23 TextureStagePool::write 0 1 1595 86 /** * Lists the contents of the TextureStage pool to the indicated output stream. */ 55 static void TextureStagePool::write(std::ostream &out); 3167 17 ~TextureStagePool 0 4 3345 35 TextureStagePool::~TextureStagePool 0 0 0 42 TextureStagePool::~TextureStagePool(void); 1595 1 0 0 7 3 3348 1597 0 10 /** * */ 2 4 name 1 3347 8 max_size 1 3214 2 0 0 6 5 3214 0 0 77 /** * Returns the total size of all objects currently active on the LRU. */ 1 4 this 3 3349 3 0 0 6 6 3214 0 0 91 /** * Returns the max size of all objects that are allowed to be active on the * LRU. */ 1 4 this 3 3349 4 0 0 4 7 3351 0 0 143 /** * Changes the max size of all objects that are allowed to be active on the * LRU. * * If the size is (size_t)-1, there is no limit. */ 2 4 this 3 3348 8 max_size 1 3214 5 0 0 6 8 3214 0 0 106 /** * Returns the total size of the pages that were enqueued since the last call * to begin_epoch(). */ 1 4 this 3 3349 6 0 0 4 9 3351 0 0 61 /** * Evicts a sequence of objects if the queue is full. */ 1 4 this 3 3348 7 0 0 4 10 3351 0 0 132 /** * Evicts a sequence of objects until the queue fits within the indicated * target size, regardless of its normal max size. */ 2 4 this 3 3348 11 target_size 1 3214 8 0 0 4 11 3351 0 0 184 /** * Marks the end of the previous epoch and the beginning of the next one. * This will evict any objects that are pending eviction, and also update any * internal bookkeeping. */ 1 4 this 3 3348 9 0 0 6 12 3183 0 0 125 /** * Checks that the LRU is internally self-consistent. Returns true if * successful, false if there is some problem. */ 1 4 this 3 3348 10 0 0 4 13 3351 0 0 10 /** * */ 2 4 this 3 3349 3 out 1 3352 11 0 0 4 14 3351 0 0 10 /** * */ 3 4 this 3 3349 3 out 1 3352 12 indent_level 1 3182 12 0 0 4 15 3351 0 0 196 // The following methods are specific to AdaptiveLru, and do not exist in // the SimpleLru implementation. In most cases, the defaults will be // sufficient, so you do not need to mess with them. 2 4 this 3 3348 6 weight 1 3225 13 0 0 6 16 3225 0 0 83 /** * Returns the weight value used to compute the exponential moving average. */ 1 4 this 3 3349 14 0 0 4 17 3351 0 0 214 /** * Specifies the maximum number of pages the AdaptiveLru will update each * frame. This is a performance optimization: keeping this number low limits * the impact of the AdaptiveLru's adaptive algorithm. */ 2 4 this 3 3348 21 max_updates_per_frame 1 3182 15 0 0 6 18 3182 0 0 86 /** * Returns the maximum number of pages the AdaptiveLru will update each frame. */ 1 4 this 3 3349 16 0 0 7 26 3356 1618 0 10 /** * */ 1 4 copy 1 3354 17 0 0 7 26 3356 1618 0 10 /** * */ 1 8 lru_size 1 3214 18 0 0 6 27 3356 0 0 0 2 4 this 3 3356 4 copy 1 3354 19 0 0 6 29 3348 0 0 104 /** * Returns the LRU that manages this page, or NULL if it is not currently * managed by any LRU. */ 1 4 this 3 3354 20 0 0 4 30 3351 0 0 183 /** * Adds the page to the LRU for the first time, or marks it recently-accessed * if it has already been added. * * If lru is NULL, it means to remove this page from its LRU. */ 2 4 this 3 3356 3 lru 1 3348 21 0 0 4 31 3351 0 0 49 /** * Removes the page from its AdaptiveLru. */ 1 4 this 3 3356 22 0 0 4 32 3351 0 0 224 /** * To be called when the page is used; this will move it to the tail of the * AdaptiveLru queue it is already on. * * This method is const because it's not technically modifying the contents of * the page itself. */ 1 4 this 3 3354 23 0 0 4 32 3351 0 0 115 /** * To be called when the page is used; this will move it to the tail of the * specified AdaptiveLru queue. */ 2 4 this 3 3356 3 lru 1 3348 24 0 0 6 33 3214 0 0 85 /** * Returns the size of this page as reported to the LRU, presumably in bytes. */ 1 4 this 3 3354 25 0 0 4 34 3351 0 0 98 /** * Specifies the size of this page, presumably in bytes, although any unit is * possible. */ 2 4 this 3 3356 8 lru_size 1 3214 26 0 0 4 35 3351 0 0 455 /** * Evicts the page from the LRU. Called internally when the LRU determines * that it is full. May also be called externally when necessary to * explicitly evict the page. * * It is legal for this method to either evict the page as requested, do * nothing (in which case the eviction will be requested again at the next * epoch), or requeue itself on the tail of the queue (in which case the * eviction will be requested again much later). */ 1 4 this 3 3356 27 0 0 4 36 3351 0 0 10 /** * */ 2 4 this 3 3354 3 out 1 3352 28 0 0 4 37 3351 0 0 10 /** * */ 3 4 this 3 3354 3 out 1 3352 12 indent_level 1 3182 29 0 0 6 38 3357 0 0 123 /** * Returns the number of frames since the page was first added to its LRU. * Returns 0 if it does not have an LRU. */ 1 4 this 3 3354 30 0 0 6 39 3357 0 0 125 /** * Returns the number of frames since the page was last accessed on its LRU. * Returns 0 if it does not have an LRU. */ 1 4 this 3 3354 31 0 0 7 48 3358 1631 0 0 0 32 0 0 7 48 3358 1631 0 0 1 6 param0 0 3359 33 0 0 7 51 3361 1641 0 10 /** * */ 0 34 0 0 7 51 3361 1641 0 10 /** * */ 1 5 other 1 3362 35 0 0 6 52 3361 0 0 0 2 4 this 3 3361 5 other 1 3362 36 0 0 6 53 3180 0 0 66 /** * Returns the type of animation represented by this spec. */ 1 4 this 3 3362 37 0 0 6 55 3182 0 0 202 /** * This is only meaningful for animation_type AT_hardware. It specifies the * maximum number of transforms that might be simultaneously applied to any * one vertex by the data in this format. */ 1 4 this 3 3362 38 0 0 6 56 3183 0 0 231 /** * This is only meaningful for animation_type AT_hardware. If true, it * indicates that the format uses indexed animation tables. It is false if * each vertex will reference the first _num_transforms table entries only. */ 1 4 this 3 3362 39 0 0 4 61 3351 0 0 74 /** * Specifies that no vertex animation is represented by this spec. */ 1 4 this 3 3361 40 0 0 4 62 3351 0 0 168 /** * Specifies that vertex animation is to be performed by Panda. This is the * most general setting and can handle any kind of vertex animation * represented. */ 1 4 this 3 3361 41 0 0 4 63 3351 0 0 391 /** * Specifies that vertex animation is to be performed by the graphics hardware * (or at least by the graphics backend API, which is actually still free to * animate the vertices on the CPU). * * This is only legal if the graphics hardware can support the specified * limits on number of transforms and/or indexed transforms. Also, no current * graphics API's support morphing. */ 3 4 this 3 3361 14 num_transforms 1 3182 18 indexed_transforms 1 3183 42 0 0 4 64 3351 0 0 10 /** * */ 2 4 this 3 3362 3 out 1 3352 43 0 0 7 68 3186 0 0 108 // These versions are exposed to Python, which have additional logic to map // from Python interned strings. 1 3 str 1 3363 44 0 0 7 68 3186 0 0 69 /** * Make using a string and an integer. Concatenates the two. */ 2 4 name 1 3347 5 index 1 3182 45 0 0 7 69 3186 0 0 221 /** * Constructs a new InternalName based on this name, with the indicated string * following it. This is a cheaper way to construct a hierarchical name than * InternalName::make(parent->get_name() + ".basename"). */ 2 4 this 3 3186 8 basename 1 3347 46 0 0 7 70 3186 0 0 101 /** * Return the parent of this InternalName. All names have a parent, except * the root name. */ 1 4 this 3 3198 47 0 0 6 71 3347 0 0 95 /** * Returns the complete name represented by the InternalName and all of its * parents. */ 1 4 this 3 3198 48 0 0 6 72 3347 0 0 69 /** * Like get_name, but uses a custom separator instead of ".". */ 2 4 this 3 3198 3 sep 1 3347 49 0 0 6 73 3347 0 0 159 /** * Return the name represented by just this particular InternalName object, * ignoring its parents names. This is everything after the rightmost dot. */ 1 4 this 3 3198 50 0 0 6 81 3182 0 0 293 /** * Returns the index of the ancestor with the indicated basename, or -1 if no * ancestor has that basename. Returns 0 if this name has the basename. * * This index value may be passed to get_ancestor() or get_net_basename() to * retrieve more information about the indicated name. */ 2 4 this 3 3198 8 basename 1 3347 51 0 0 7 82 3198 0 0 222 /** * Returns the ancestor with the indicated index number. 0 is this name * itself, 1 is the name's parent, 2 is the parent's parent, and so on. If * there are not enough ancestors, returns the root InternalName. */ 2 4 this 3 3198 1 n 1 3182 52 0 0 7 83 3198 0 0 206 /** * Returns the oldest ancestor in the InternalName's chain, not counting the * root. This will be the first name in the string, e.g. "texcoord.foo.bar" * will return the InternalName "texcoord". */ 1 4 this 3 3198 53 0 0 6 84 3347 0 0 192 /** * Returns the basename of this name prefixed by the indicated number of * ancestors. 0 is this name's basename, 1 is parent.basename, 2 is * grandparent.parent.basename, and so on. */ 2 4 this 3 3198 1 n 1 3182 54 0 0 4 85 3351 0 0 10 /** * */ 2 4 this 3 3198 3 out 1 3352 55 0 0 7 86 3186 0 0 174 /** * Returns the standard root InternalName. This is the root of all other * InternalNames. It has no name itself, and it is the only InternalName with * no parent. */ 0 56 0 0 7 87 3186 0 0 53 /** * Returns the standard InternalName "error". */ 0 57 0 0 7 88 3186 0 0 148 /** * Returns the standard InternalName "vertex". This is the column header for * the 3-d or 4-d vertex position information for each vertex. */ 0 58 0 0 7 89 3186 0 0 129 /** * Returns the standard InternalName "normal". This is the column header for * the 3-d lighting normal for each vertex. */ 0 59 0 0 7 90 3186 0 0 295 /** * Returns the standard InternalName "tangent". This is the column header for * the tangent vector associated with each vertex, which is a unit vector * usually perpendicular to the normal and in the direction of the U texture * coordinate change. It is used for deriving bump maps. */ 0 60 0 0 7 91 3186 0 0 184 /** * Returns the InternalName "tangent.name", where name is the supplied string. * This is the column header for the tangent associated with the named texture * coordinate set. */ 1 4 name 1 3347 61 0 0 7 92 3186 0 0 321 /** * Returns the standard InternalName "binormal". This is the column header * for the tangent vector associated with each vertex, which is a unit vector * usually perpendicular to both the normal and the tangent, and in the * direction of the V texture coordinate change. It is used for deriving bump * maps. */ 0 62 0 0 7 93 3186 0 0 187 /** * Returns the InternalName "binormal.name", where name is the supplied * string. This is the column header for the binormal associated with the * named texture coordinate set. */ 1 4 name 1 3347 63 0 0 7 94 3186 0 0 232 /** * Returns the standard InternalName "texcoord". This is the column header * for the default texture coordinate set for each vertex. It is also used * for identifying the default texture coordinate set in a TextureStage. */ 0 64 0 0 7 95 3186 0 0 262 /** * Returns the InternalName "texcoord.name", where name is the supplied * string. This is the column header for the named texture coordinate set for * each vertex. It is also used for identifying the named texture coordinate * set in a TextureStage. */ 1 4 name 1 3347 65 0 0 7 96 3186 0 0 132 /** * Returns the standard InternalName "color". This is the column header for * the 4-component color value for each vertex. */ 0 66 0 0 7 97 3186 0 0 217 /** * Returns the standard InternalName "rotate". This is the column header for * the floating-point rotate value, which represents a number of degrees * counter-clockwise to rotate each point or point sprite. */ 0 67 0 0 7 98 3186 0 0 225 /** * Returns the standard InternalName "size". This is the column header for * the floating-point size value, which overrides the thickness parameter of * the RenderModeAttrib on a per-vertex (e.g. per-point) basis. */ 0 68 0 0 7 99 3186 0 0 250 /** * Returns the standard InternalName "aspect_ratio". This is the column header * for the floating-point aspect ratio value, which is used to define non- * square points. This number is the ratio x / y, where y is the point size * (above). */ 0 69 0 0 7 100 3186 0 0 264 /** * Returns the standard InternalName "transform_blend". This is the column * header for the integer transform_blend index, which is used to define * vertex animation on the CPU by indexing to a particular vertex weighting * from the TransformBlendTable. */ 0 70 0 0 7 101 3186 0 0 474 /** * Returns the standard InternalName "transform_weight". This is the column * header for the n-component transform_weight value, which is used in * conjuntion with "transform_index" to define vertex animation on the * graphics card. The transform_weight value specifies the weight of the nth * transform. By convention, there are 1 fewer weight values than transforms, * since the weights are assumed to sum to 1 (and the last value is therefore * implicit). */ 0 71 0 0 7 102 3186 0 0 444 /** * Returns the standard InternalName "transform_index". This is the column * header for the n-component transform_index value, which is used in * conjuntion with "transform_weight" to define vertex animation on the * graphics card. The transform_index value specifies the nth transform, by * lookup in the TransformTable. The transform_index column may be omitted, * in which case the nth transform is the nth entry in the table. */ 0 72 0 0 7 103 3186 0 0 348 /** * Returns an InternalName derived from the given base column name and the * given slider name, which is the column header for the offset vector that * should be applied to the base column name when the named morph slider is * engaged. * * Each morph slider requires a set of n morph columns, one for each base * column it applies to. */ 2 6 column 1 3186 6 slider 1 3347 73 0 0 7 104 3186 0 0 233 /** * Returns the standard InternalName "index". This is the column header for * the integer vertex index. It is not used in the vertex data itself, but is * used in the GeomPrimitive structure to index into the vertex data. */ 0 74 0 0 7 105 3186 0 0 108 /** * Returns the standard InternalName "world". This is used as a keyword in * the shader subsystem. */ 0 75 0 0 7 106 3186 0 0 109 /** * Returns the standard InternalName "camera". This is used as a keyword in * the shader subsystem. */ 0 76 0 0 7 107 3186 0 0 108 /** * Returns the standard InternalName "model". This is used as a keyword in * the shader subsystem. */ 0 77 0 0 7 108 3186 0 0 107 /** * Returns the standard InternalName "view". This is used as a keyword in the * shader subsystem. */ 0 78 0 0 7 109 3367 0 0 0 0 79 0 0 7 111 3368 1679 0 10 /** * */ 8 4 name 1 3198 14 num_components 1 3182 12 numeric_type 1 3178 8 contents 1 3179 5 start 1 3182 16 column_alignment 1 3182 12 num_elements 1 3182 14 element_stride 1 3182 80 0 0 7 111 3368 1679 0 10 /** * */ 1 4 copy 1 3192 81 0 0 6 112 3368 0 0 0 2 4 this 3 3368 4 copy 1 3192 82 0 0 7 114 3198 0 0 267 /** * Returns the name of this particular data field, e.g. "vertex" or "normal". * The name may be a user-defined string, or it may be one of the standard * system-defined field types. Only the system-defined field types are used * for the actual rendering. */ 1 4 this 3 3192 83 0 0 6 115 3182 0 0 194 /** * Returns the number of components of the column: the number of instances of * the NumericType in each element. This is usually, but not always, the same * thing as get_num_values(). */ 1 4 this 3 3192 84 0 0 6 116 3182 0 0 337 /** * Returns the number of numeric values of the column: the number of distinct * numeric values that go into each element. This is usually, but not always, * the same thing as get_num_components(); the difference is in the case of a * composite numeric type like NT_packed_dcba, which has four numeric values * per component. */ 1 4 this 3 3192 85 0 0 6 117 3182 0 0 107 /** * Returns the number of times this column is repeated. This is usually 1, * except for matrices. */ 1 4 this 3 3192 86 0 0 6 118 3178 0 0 79 /** * Returns the token representing the numeric type of the data storage. */ 1 4 this 3 3192 87 0 0 6 119 3179 0 0 83 /** * Returns the token representing the semantic meaning of the stored value. */ 1 4 this 3 3192 88 0 0 6 120 3182 0 0 145 /** * Returns the byte within the array record at which this column starts. This * can be set to non-zero to implement interleaved arrays. */ 1 4 this 3 3192 89 0 0 6 121 3182 0 0 299 /** * Returns the alignment requirements for this column. If this is greater * than 1, it restricts the column to appear only on memory addresses that are * integer multiples of this value; this has implications for this column's * start value, as well as the stride of the resulting array. */ 1 4 this 3 3192 90 0 0 6 122 3182 0 0 133 /** * This value is only relevant for matrix types. Returns the number of bytes * to add to access the next row of the matrix. */ 1 4 this 3 3192 91 0 0 6 123 3182 0 0 111 /** * Returns the number of bytes used by each component (that is, by one element * of the numeric type). */ 1 4 this 3 3192 92 0 0 6 124 3182 0 0 111 /** * Returns the number of bytes used by each element of the column: * component_bytes * num_components. */ 1 4 this 3 3192 93 0 0 6 125 3183 0 0 392 /** * Returns true if this Contents type is one that includes a homogeneous * coordinate in the fourth component, or false otherwise. If this is true, * correct operation on the vertex data may require scaling by the homogeneous * coordinate from time to time (but in general this is handled automatically * if you use the 3-component or smaller forms of get_data() and set_data()). */ 1 4 this 3 3192 94 0 0 6 126 3183 0 0 118 /** * Returns true if this column overlaps with any of the bytes in the indicated * range, false if it does not. */ 3 4 this 3 3192 10 start_byte 1 3182 9 num_bytes 1 3182 95 0 0 6 127 3183 0 0 159 /** * Returns true if the data store of this column is exactly the same as that * of the other, irrespective of name or start position within the record. */ 2 4 this 3 3192 5 other 1 3192 96 0 0 4 128 3351 0 0 148 /** * Replaces the name of an existing column. This is only legal on an * unregistered format (i.e. when constructing the format initially). */ 2 4 this 3 3368 4 name 1 3186 97 0 0 4 129 3351 0 0 163 /** * Changes the number of components of an existing column. This is only legal * on an unregistered format (i.e. when constructing the format initially). */ 2 4 this 3 3368 14 num_components 1 3182 98 0 0 4 130 3351 0 0 152 /** * Changes the numeric type an existing column. This is only legal on an * unregistered format (i.e. when constructing the format initially). */ 2 4 this 3 3368 12 numeric_type 1 3178 99 0 0 4 131 3351 0 0 159 /** * Changes the semantic meaning of an existing column. This is only legal on * an unregistered format (i.e. when constructing the format initially). */ 2 4 this 3 3368 8 contents 1 3179 100 0 0 4 132 3351 0 0 153 /** * Changes the start byte of an existing column. This is only legal on an * unregistered format (i.e. when constructing the format initially). */ 2 4 this 3 3368 5 start 1 3182 101 0 0 4 133 3351 0 0 159 /** * Changes the column alignment of an existing column. This is only legal on * an unregistered format (i.e. when constructing the format initially). */ 2 4 this 3 3368 16 column_alignment 1 3182 102 0 0 4 134 3351 0 0 10 /** * */ 2 4 this 3 3192 3 out 1 3352 103 0 0 7 140 3369 1707 0 10 /** * */ 0 104 0 0 7 140 3369 1707 0 10 /** * */ 4 5 name0 1 3198 15 num_components0 1 3182 13 numeric_type0 1 3178 9 contents0 1 3179 105 0 0 7 140 3369 1707 0 10 /** * */ 8 5 name0 1 3198 15 num_components0 1 3182 13 numeric_type0 1 3178 9 contents0 1 3179 5 name1 1 3198 15 num_components1 1 3182 13 numeric_type1 1 3178 9 contents1 1 3179 106 0 0 7 140 3369 1707 0 10 /** * */ 12 5 name0 1 3198 15 num_components0 1 3182 13 numeric_type0 1 3178 9 contents0 1 3179 5 name1 1 3198 15 num_components1 1 3182 13 numeric_type1 1 3178 9 contents1 1 3179 5 name2 1 3198 15 num_components2 1 3182 13 numeric_type2 1 3178 9 contents2 1 3179 107 0 0 7 140 3369 1707 0 10 /** * */ 16 5 name0 1 3198 15 num_components0 1 3182 13 numeric_type0 1 3178 9 contents0 1 3179 5 name1 1 3198 15 num_components1 1 3182 13 numeric_type1 1 3178 9 contents1 1 3179 5 name2 1 3198 15 num_components2 1 3182 13 numeric_type2 1 3178 9 contents2 1 3179 5 name3 1 3198 15 num_components3 1 3182 13 numeric_type3 1 3178 9 contents3 1 3179 108 0 0 7 140 3369 1707 0 10 /** * */ 1 4 copy 1 3196 109 0 0 7 141 3369 1707 0 0 2 4 this 3 3369 4 copy 1 3196 110 0 0 6 143 3183 0 0 123 /** * This method overrides ReferenceCount::unref() to unregister the object when * its reference count goes to zero. */ 1 4 this 3 3196 111 0 0 6 144 3183 0 0 198 /** * Returns true if this format has been registered, false if it has not. It * may not be used for a Geom until it has been registered, but once * registered, it may no longer be modified. */ 1 4 this 3 3196 112 0 0 7 145 3196 0 0 421 /** * Adds the indicated format to the registry, if there is not an equivalent * format already there; in either case, returns the pointer to the equivalent * format now in the registry. * * This is similar to GeomVertexFormat::register_format(), except that you * generally need not call it explicitly. Calling * GeomVertexFormat::register_format() automatically registers all of the * nested array formats. */ 1 6 format 1 3196 113 0 0 6 147 3182 0 0 83 /** * Returns the total number of bytes reserved in the array for each vertex. */ 1 4 this 3 3196 114 0 0 4 148 3351 0 0 175 /** * Changes the total number of bytes reserved in the array for each vertex. * You may not reduce this below get_total_bytes(), but you may increase it * arbitrarily. */ 2 4 this 3 3369 6 stride 1 3182 115 0 0 6 150 3182 0 0 347 /** * Returns the byte divisor to which the data record must be padded to meet * hardware limitations. For instance, if this is 4, the stride will be * automatically rounded up to the next multiple of 4 bytes. This value is * automatically increased as needed to ensure the individual numeric * components in the array are word-aligned. */ 1 4 this 3 3196 116 0 0 4 151 3351 0 0 355 /** * Explicitly sets the byte divisor to which the data record must be padded to * meet hardware limitations. See get_pad_to(). Normally it is not necessary * to call this unless you have some specific requirements for row-to-row data * alignment. Note that this value may be automatically increased at each * subsequent call to add_column(). */ 2 4 this 3 3369 6 pad_to 1 3182 117 0 0 6 153 3182 0 0 214 /** * Returns the divisor attribute for the data in this array. If 0, it * contains per-vertex data. If 1, it contains per-instance data. If higher * than 1, the read row is advanced for each n instances. */ 1 4 this 3 3196 118 0 0 4 154 3351 0 0 206 /** * Set this to 0 to indicate that this array contains per-vertex data, or to 1 * to indicate that it contains per-instance data. If higher than 1, the read * row is advanced for each n instances. */ 2 4 this 3 3369 7 divisor 1 3182 119 0 0 6 156 3182 0 0 122 /** * Returns the total number of bytes used by the data types within the format, * including gaps between elements. */ 1 4 this 3 3196 120 0 0 6 158 3182 0 0 319 /** * Adds a new column to the specification. This is a table of per-vertex * floating-point numbers such as "vertex" or "normal"; you must specify where * in each record the table starts, and how many components (dimensions) exist * per vertex. * * The return value is the index number of the new data type. */ 7 4 this 3 3369 4 name 1 3198 14 num_components 1 3182 12 numeric_type 1 3178 8 contents 1 3179 5 start 1 3182 16 column_alignment 1 3182 121 0 0 6 158 3182 0 0 471 /** * Adds a new column to the specification. This is a table of per-vertex * floating-point numbers such as "vertex" or "normal"; you must specify where * in each record the table starts, and how many components (dimensions) exist * per vertex. * * Adding a column with the same name as a previous type, or that overlaps * with one or more previous types, quietly removes the previous type(s). * * The return value is the index number of the new data type. */ 2 4 this 3 3369 6 column 1 3192 122 0 0 4 159 3351 0 0 107 /** * Removes the column with the indicated name, if any. This leaves a gap in * the byte structure. */ 2 4 this 3 3369 4 name 1 3198 123 0 0 4 160 3351 0 0 104 /** * Removes all columns previously added, sets the stride to zero, and prepares * to start over. */ 1 4 this 3 3369 124 0 0 4 161 3351 0 0 48 /** * Removes wasted space between columns. */ 1 4 this 3 3369 125 0 0 4 162 3351 0 0 319 /** * Reprocesses the columns in the format to align the C_point and C_vector * columns to 16-byte boundaries to allow for the more efficient SSE2 * operations (assuming SSE2 is enabled in the build). * * The caller is responsible for testing vertex_animation_align_16 to decide * whether to call this method. */ 1 4 this 3 3369 126 0 0 6 163 3182 0 0 64 /** * Returns the number of different columns in the array. */ 1 4 this 3 3196 127 0 0 6 164 3192 0 0 97 /** * Returns the specification with the indicated name, or NULL if the name is * not used. */ 2 4 this 3 3196 4 name 1 3198 128 0 0 6 164 3192 0 0 47 /** * Returns the ith column of the array. */ 2 4 this 3 3196 1 i 1 3182 129 0 0 6 164 3192 0 0 125 /** * Returns the first specification that overlaps with any of the indicated * bytes in the range, or NULL if none do. */ 3 4 this 3 3196 10 start_byte 1 3182 9 num_bytes 1 3182 130 0 0 6 170 3183 0 0 75 /** * Returns true if the array has the named column, false otherwise. */ 2 4 this 3 3196 4 name 1 3198 131 0 0 6 171 3183 0 0 309 /** * Returns true if all of the fields in this array format are also present and * equivalent in the other array format, and in the same byte positions, and * the stride is the same. That is, true if this format can share the same * data pointer as the other format (with possibly some unused gaps). */ 2 4 this 3 3196 5 other 1 3196 132 0 0 6 172 3182 0 0 83 /** * Returns the number of bytes per row that are not assigned to any column. */ 1 4 this 3 3196 133 0 0 4 173 3351 0 0 10 /** * */ 2 4 this 3 3196 3 out 1 3352 134 0 0 4 174 3351 0 0 10 /** * */ 3 4 this 3 3196 3 out 1 3352 12 indent_level 1 3182 135 0 0 4 175 3351 0 0 10 /** * */ 4 4 this 3 3196 3 out 1 3352 12 indent_level 1 3182 10 array_data 1 3370 136 0 0 6 176 3347 0 0 242 /** * Returns a string with format codes representing the exact memory layout of * the columns in memory, as understood by Python's struct module. If pad is * true, extra padding bytes are added to the end as 'x' characters as needed. */ 2 4 this 3 3196 3 pad 1 3183 137 0 0 7 177 3367 0 0 0 0 138 0 0 7 136 3246 0 0 0 1 4 this 3 3369 139 0 0 6 138 3358 0 0 0 1 4 this 3 3369 140 0 0 7 183 3372 1740 0 10 /** * */ 0 141 0 0 7 183 3372 1740 0 10 /** * */ 1 12 array_format 1 3196 142 0 0 7 183 3372 1740 0 10 /** * */ 1 4 copy 1 3234 143 0 0 7 184 3372 1740 0 0 2 4 this 3 3372 4 copy 1 3234 144 0 0 6 186 3183 0 0 123 /** * This method overrides ReferenceCount::unref() to unregister the object when * its reference count goes to zero. */ 1 4 this 3 3234 145 0 0 6 187 3183 0 0 198 /** * Returns true if this format has been registered, false if it has not. It * may not be used for a Geom until it has been registered, but once * registered, it may no longer be modified. */ 1 4 this 3 3234 146 0 0 7 188 3234 0 0 118 /** * This flavor of register_format() implicitly creates a one-array vertex * format from the array definition. */ 1 6 format 1 3196 147 0 0 7 188 3234 0 0 484 /** * Adds the indicated format to the registry, if there is not an equivalent * format already there; in either case, returns the pointer to the equivalent * format now in the registry. * * This must be called before a format may be used in a Geom. After this * call, you should discard the original pointer you passed in (which may or * may not now be invalid) and let its reference count decrement normally; you * should use only the returned value from this point on. */ 1 6 format 1 3234 148 0 0 6 190 3362 0 0 117 /** * Returns the GeomVertexAnimationSpec that indicates how this format's * vertices are set up for animation. */ 1 4 this 3 3234 149 0 0 4 191 3351 0 0 260 /** * Resets the GeomVertexAnimationSpec that indicates how this format's * vertices are set up for animation. You should also, of course, change the * columns in the tables accordingly. * * This may not be called once the format has been registered. */ 2 4 this 3 3372 9 animation 1 3362 150 0 0 7 194 3234 0 0 325 /** * Returns a suitable vertex format for sending the animated vertices to the * graphics backend. This is the same format as the source format, with the * CPU-animation data elements removed. * * This may only be called after the format has been registered. The return * value will have been already registered. */ 1 4 this 3 3234 151 0 0 7 195 3234 0 0 447 /** * Returns a new GeomVertexFormat that includes all of the columns defined in * either this GeomVertexFormat or the other one. If any column is defined in * both formats with different sizes (for instance, texcoord2 vs. texcoord3), * the new format will include the larger of the two definitions. * * This may only be called after both source formats have been registered. * The return value will also have been already registered. */ 2 4 this 3 3234 5 other 1 3234 152 0 0 6 196 3214 0 0 223 /** * Returns the number of individual arrays required by the format. If the * array data is completely interleaved, this will be 1; if it is completely * parallel, this will be the same as the number of data types. */ 1 4 this 3 3234 153 0 0 7 197 3196 0 0 71 /** * Returns the description of the nth array used by the format. */ 2 4 this 3 3234 5 array 1 3214 154 0 0 7 199 3369 1707 0 190 /** * Returns a modifiable pointer to the indicated array. This means * duplicating it if it is shared or registered. * * This may not be called once the format has been registered. */ 2 4 this 3 3372 5 array 1 3214 155 0 0 4 200 3351 0 0 124 /** * Replaces the definition of the indicated array. * * This may not be called once the format has been registered. */ 3 4 this 3 3372 5 array 1 3214 6 format 1 3196 156 0 0 4 201 3351 0 0 115 /** * Removes the nth array from the format. * * This may not be called once the format has been registered. */ 2 4 this 3 3372 5 array 1 3214 157 0 0 6 202 3214 0 0 243 /** * Adds the indicated array definition to the list of arrays included within * this vertex format definition. The return value is the index number of the * new array. * * This may not be called once the format has been registered. */ 2 4 this 3 3372 12 array_format 1 3196 158 0 0 4 203 3351 0 0 275 /** * Adds the indicated array definition to the list of arrays at the indicated * position. This works just like add_array(), except that you can specify * which array index the new array should have. * * This may not be called once the format has been registered. */ 3 4 this 3 3372 5 array 1 3214 12 array_format 1 3196 159 0 0 4 204 3351 0 0 146 /** * Removes all of the array definitions from the format and starts over. * * This may not be called once the format has been registered. */ 1 4 this 3 3372 160 0 0 4 205 3351 0 0 119 /** * Removes the arrays that define no columns. * * This may not be called once the format has been registered. */ 1 4 this 3 3372 161 0 0 6 206 3214 0 0 100 /** * Returns the total number of different columns in the specification, across * all arrays. */ 1 4 this 3 3234 162 0 0 6 207 3182 0 0 407 /** * Returns the index number of the array with the indicated column, or -1 if * no arrays contained that name. * * The return value can be passed to get_array_format() to get the format of * the array. It may also be passed to GeomVertexData::get_array_data() or * get_data() or set_data() to manipulate the actual array data. * * This may only be called after the format has been registered. */ 2 4 this 3 3234 4 name 1 3198 163 0 0 6 207 3182 0 0 290 /** * Returns the index number of the array with the ith column. * * The return value can be passed to get_array_format() to get the format of * the array. It may also be passed to GeomVertexData::get_array_data() or * get_data() or set_data() to manipulate the actual array data. */ 2 4 this 3 3234 1 i 1 3214 164 0 0 6 208 3192 0 0 179 /** * Returns the specification with the indicated name, or NULL if the name is * not used. Use get_array_with() to determine which array this column is * associated with. */ 2 4 this 3 3234 4 name 1 3198 165 0 0 6 208 3192 0 0 74 /** * Returns the ith column of the specification, across all arrays. */ 2 4 this 3 3234 1 i 1 3214 166 0 0 6 209 3183 0 0 76 /** * Returns true if the format has the named column, false otherwise. */ 2 4 this 3 3234 4 name 1 3198 167 0 0 7 210 3198 0 0 65 /** * Returns the name of the ith column, across all arrays. */ 2 4 this 3 3234 1 i 1 3214 168 0 0 4 212 3351 0 0 370 /** * Removes the named column from the format, from whichever array it exists * in. If there are other columns remaining in the array, the array is left * with a gap where the column used to be; if this was the only column in the * array, the array is removed (unless keep_empty_array is true). * * This may not be called once the format has been registered. */ 3 4 this 3 3372 4 name 1 3198 16 keep_empty_array 1 3183 169 0 0 4 213 3351 0 0 48 /** * Removes wasted space between columns. */ 1 4 this 3 3372 170 0 0 4 214 3351 0 0 259 /** * Reprocesses the columns in the format to align the C_point and C_vector * columns to 16-byte boundaries to allow for the more efficient SSE2 * operations (assuming SSE2 is enabled in the build). * * Also see maybe_align_columns_for_animation(). */ 1 4 this 3 3372 171 0 0 4 215 3351 0 0 172 /** * Calls align_columns_for_animation() if this format's AnimationSpec * indicates that it contains animated vertices, and if vertex-animation- * align-16 is true. */ 1 4 this 3 3372 172 0 0 6 216 3214 0 0 161 /** * Returns the number of columns within the format that represent points in * space. * * This may only be called after the format has been registered. */ 1 4 this 3 3234 173 0 0 7 217 3198 0 0 219 /** * Returns the name of the nth point column. This represents a point in * space, which should be transformed by any spatial transform matrix. * * This may only be called after the format has been registered. */ 2 4 this 3 3234 1 n 1 3214 174 0 0 6 219 3214 0 0 165 /** * Returns the number of columns within the format that represent directional * vectors. * * This may only be called after the format has been registered. */ 1 4 this 3 3234 175 0 0 7 220 3198 0 0 239 /** * Returns the name of the nth vector column. This represents a directional * vector, which should be transformed by any spatial transform matrix as a * vector. * * This may only be called after the format has been registered. */ 2 4 this 3 3234 1 n 1 3214 176 0 0 6 222 3214 0 0 165 /** * Returns the number of columns within the format that represent texture * coordinates. * * This may only be called after the format has been registered. */ 1 4 this 3 3234 177 0 0 7 223 3198 0 0 165 /** * Returns the name of the nth texcoord column. This represents a texture * coordinate. * * This may only be called after the format has been registered. */ 2 4 this 3 3234 1 n 1 3214 178 0 0 6 225 3214 0 0 158 /** * Returns the number of columns within the format that represent morph * deltas. * * This may only be called after the format has been registered. */ 1 4 this 3 3234 179 0 0 7 226 3198 0 0 288 /** * Returns the slider name associated with the nth morph column. This is the * name of the slider that will control the morph, and should be defined * within the SliderTable associated with the GeomVertexData. * * This may only be called after the format has been registered. */ 2 4 this 3 3234 1 n 1 3214 180 0 0 7 227 3198 0 0 265 /** * Returns the name of the base column that the nth morph modifies. This * column will also be defined within the format, and can be retrieved via * get_array_with() and/or get_column(). * * This may only be called after the format has been registered. */ 2 4 this 3 3234 1 n 1 3214 181 0 0 7 228 3198 0 0 356 /** * Returns the name of the column that defines the nth morph. This contains * the delta offsets that are to be applied to the column defined by * get_morph_base(). This column will be defined within the format, and can * be retrieved via get_array_with() and/or get_column(). * * This may only be called after the format has been registered. */ 2 4 this 3 3234 1 n 1 3214 182 0 0 4 244 3351 0 0 10 /** * */ 2 4 this 3 3234 3 out 1 3352 183 0 0 4 245 3351 0 0 10 /** * */ 3 4 this 3 3234 3 out 1 3352 12 indent_level 1 3182 184 0 0 4 246 3351 0 0 10 /** * */ 4 4 this 3 3234 3 out 1 3352 12 indent_level 1 3182 4 data 1 3373 185 0 0 7 247 3234 0 0 115 /** * Returns a standard vertex format containing no arrays at all, useful for * pull-style vertex rendering. */ 0 186 0 0 7 248 3234 0 0 202 // Some standard vertex formats. No particular requirement to use one of // these, but the DirectX renderers can use these formats directly, whereas // any other format will have to be converted first. 0 187 0 0 7 249 3234 0 0 107 /** * Returns a standard vertex format with a 3-component normal and a * 3-component vertex position. */ 0 188 0 0 7 250 3234 0 0 124 /** * Returns a standard vertex format with a 2-component texture coordinate pair * and a 3-component vertex position. */ 0 189 0 0 7 251 3234 0 0 147 /** * Returns a standard vertex format with a 2-component texture coordinate * pair, a 3-component normal, and a 3-component vertex position. */ 0 190 0 0 7 252 3234 0 0 269 // These formats, with the DirectX-style packed color, may not be supported // directly by OpenGL. If you use them and the driver does not support // them, the GLGraphicsStateGuardian will automatically convert to native // OpenGL form (with a small runtime overhead). 0 191 0 0 7 253 3234 0 0 141 /** * Returns a standard vertex format with a 2-component texture coordinate * pair, a packed color, and a 3-component vertex position. */ 0 192 0 0 7 254 3234 0 0 124 /** * Returns a standard vertex format with a packed color, a 3-component normal, * and a 3-component vertex position. */ 0 193 0 0 7 255 3234 0 0 166 /** * Returns a standard vertex format with a 2-component texture coordinate * pair, a packed color, a 3-component normal, and a 3-component vertex * position. */ 0 194 0 0 7 256 3234 0 0 318 // These formats, with an OpenGL-style four-byte color, are not supported // directly by DirectX. If you use them, the DXGraphicsStateGuardian will // automatically convert to DirectX form (with a larger runtime overhead, // since DirectX8, and old DirectX9 drivers, require everything to be // interleaved together). 0 195 0 0 7 257 3234 0 0 146 /** * Returns a standard vertex format with a 2-component texture coordinate * pair, a 4-component color, and a 3-component vertex position. */ 0 196 0 0 7 258 3234 0 0 129 /** * Returns a standard vertex format with a 4-component color, a 3-component * normal, and a 3-component vertex position. */ 0 197 0 0 7 259 3234 0 0 171 /** * Returns a standard vertex format with a 2-component texture coordinate * pair, a 4-component color, a 3-component normal, and a 3-component vertex * position. */ 0 198 0 0 7 260 3367 0 0 0 0 199 0 0 7 179 3246 0 0 0 1 4 this 3 3372 200 0 0 6 181 3358 0 0 0 1 4 this 3 3372 201 0 0 7 267 3375 1802 0 10 /** * */ 2 4 name 1 3347 8 max_size 1 3214 202 0 0 6 269 3214 0 0 77 /** * Returns the total size of all objects currently active on the LRU. */ 1 4 this 3 3376 203 0 0 6 270 3214 0 0 91 /** * Returns the max size of all objects that are allowed to be active on the * LRU. */ 1 4 this 3 3376 204 0 0 4 271 3351 0 0 143 /** * Changes the max size of all objects that are allowed to be active on the * LRU. * * If the size is (size_t)-1, there is no limit. */ 2 4 this 3 3375 8 max_size 1 3214 205 0 0 6 272 3214 0 0 106 /** * Returns the total size of the pages that were enqueued since the last call * to begin_epoch(). */ 1 4 this 3 3376 206 0 0 4 273 3351 0 0 61 /** * Evicts a sequence of objects if the queue is full. */ 1 4 this 3 3375 207 0 0 4 274 3351 0 0 132 /** * Evicts a sequence of objects until the queue fits within the indicated * target size, regardless of its normal max size. */ 2 4 this 3 3375 11 target_size 1 3214 208 0 0 4 275 3351 0 0 184 /** * Marks the end of the previous epoch and the beginning of the next one. * This will evict any objects that are pending eviction, and also update any * internal bookkeeping. */ 1 4 this 3 3375 209 0 0 6 276 3183 0 0 125 /** * Checks that the LRU is internally self-consistent. Returns true if * successful, false if there is some problem. */ 1 4 this 3 3375 210 0 0 4 277 3351 0 0 10 /** * */ 2 4 this 3 3376 3 out 1 3352 211 0 0 4 278 3351 0 0 10 /** * */ 3 4 this 3 3376 3 out 1 3352 12 indent_level 1 3182 212 0 0 6 263 3378 0 0 0 1 4 this 3 3375 213 0 0 6 265 3379 0 0 0 1 4 this 3 3375 214 0 0 7 282 3382 1817 0 10 /** * */ 1 4 copy 1 3380 215 0 0 7 282 3382 1817 0 10 /** * */ 1 8 lru_size 1 3214 216 0 0 6 283 3382 0 0 0 2 4 this 3 3382 4 copy 1 3380 217 0 0 6 285 3375 0 0 104 /** * Returns the LRU that manages this page, or NULL if it is not currently * managed by any LRU. */ 1 4 this 3 3380 218 0 0 4 286 3351 0 0 183 /** * Adds the page to the LRU for the first time, or marks it recently-accessed * if it has already been added. * * If lru is NULL, it means to remove this page from its LRU. */ 2 4 this 3 3382 3 lru 1 3375 219 0 0 4 287 3351 0 0 47 /** * Removes the page from its SimpleLru. */ 1 4 this 3 3382 220 0 0 4 288 3351 0 0 222 /** * To be called when the page is used; this will move it to the tail of the * SimpleLru queue it is already on. * * This method is const because it's not technically modifying the contents of * the page itself. */ 1 4 this 3 3380 221 0 0 4 288 3351 0 0 113 /** * To be called when the page is used; this will move it to the tail of the * specified SimpleLru queue. */ 2 4 this 3 3382 3 lru 1 3375 222 0 0 6 289 3214 0 0 85 /** * Returns the size of this page as reported to the LRU, presumably in bytes. */ 1 4 this 3 3380 223 0 0 4 290 3351 0 0 98 /** * Specifies the size of this page, presumably in bytes, although any unit is * possible. */ 2 4 this 3 3382 8 lru_size 1 3214 224 0 0 4 291 3351 0 0 455 /** * Evicts the page from the LRU. Called internally when the LRU determines * that it is full. May also be called externally when necessary to * explicitly evict the page. * * It is legal for this method to either evict the page as requested, do * nothing (in which case the eviction will be requested again at the next * epoch), or requeue itself on the tail of the queue (in which case the * eviction will be requested again much later). */ 1 4 this 3 3382 225 0 0 4 292 3351 0 0 10 /** * */ 2 4 this 3 3380 3 out 1 3352 226 0 0 4 293 3351 0 0 10 /** * */ 3 4 this 3 3380 3 out 1 3352 12 indent_level 1 3182 227 0 0 6 280 3378 0 0 0 1 4 this 3 3382 228 0 0 7 297 3383 1830 0 28 /** * Move constructor. */ 1 4 from 1 3383 229 0 0 7 297 3383 1830 0 10 /** * */ 2 8 max_size 1 3214 4 lock 1 3384 230 0 0 6 299 3386 0 0 198 /** * Allocates a new block. Returns NULL if a block of the requested size * cannot be allocated. * * To free the allocated block, call block->free(), or simply delete the block * pointer. */ 3 4 this 3 3383 4 size 1 3214 9 alignment 1 3214 231 0 0 6 300 3183 0 0 108 /** * Returns true if there are no blocks allocated on this page, or false if * there is at least one. */ 1 4 this 3 3387 232 0 0 6 301 3214 0 0 55 /** * Returns the total size of allocated objects. */ 1 4 this 3 3387 233 0 0 6 302 3214 0 0 61 /** * Returns the available space for allocated objects. */ 1 4 this 3 3387 234 0 0 4 303 3351 0 0 172 /** * Changes the available space for allocated objects. This will not affect * any already-allocated objects, but will have an effect on future calls to * alloc(). */ 2 4 this 3 3383 8 max_size 1 3214 235 0 0 6 304 3214 0 0 299 /** * Returns an upper-bound estimate of the size of the largest contiguous block * that may be allocated. It is guaranteed that an attempt to allocate a * block larger than this will fail, though it is not guaranteed that an * attempt to allocate a block this size or smaller will succeed. */ 1 4 this 3 3387 236 0 0 6 305 3386 0 0 103 /** * Returns a pointer to the first allocated block, or NULL if there are no * allocated blocks. */ 1 4 this 3 3387 237 0 0 4 306 3351 0 0 10 /** * */ 2 4 this 3 3387 3 out 1 3352 238 0 0 4 307 3351 0 0 10 /** * */ 2 4 this 3 3387 3 out 1 3352 239 0 0 6 295 3378 0 0 0 1 4 this 3 3383 240 0 0 4 310 3351 0 0 40 /** * Releases the allocated space. */ 1 4 this 3 3386 241 0 0 6 311 3383 0 0 113 /** * Returns the SimpleAllocator object that owns this block. Returns NULL if * the block has been freed. */ 1 4 this 3 3389 242 0 0 6 312 3214 0 0 113 /** * Returns the starting point of this block. It is an error to call this if * the block has been freed. */ 1 4 this 3 3389 243 0 0 6 313 3214 0 0 103 /** * Returns the size of this block. It is an error to call this if the block * has been freed. */ 1 4 this 3 3389 244 0 0 6 314 3183 0 0 80 /** * Returns true if the block has been freed, false if it is still valid. */ 1 4 this 3 3389 245 0 0 6 315 3214 0 0 107 /** * Returns the maximum size this block can be reallocated to, as limited by * the following block. */ 1 4 this 3 3389 246 0 0 6 316 3183 0 0 144 /** * Changes the size of this block to the specified size. Returns true if the * change is accepted, false if there was not enough room. */ 2 4 this 3 3386 4 size 1 3214 247 0 0 6 317 3386 0 0 120 /** * Returns a pointer to the next allocated block in the chain, or NULL if * there are no more allocated blocks. */ 1 4 this 3 3389 248 0 0 4 318 3351 0 0 10 /** * */ 2 4 this 3 3389 3 out 1 3352 249 0 0 6 320 3183 0 0 119 /** * Returns true if the save file was successfully created and is ready for * use, false if there was an error. */ 1 4 this 3 3391 250 0 0 6 321 3214 0 0 95 /** * Returns the amount of space consumed by the save file, including unused * portions. */ 1 4 this 3 3391 251 0 0 6 322 3214 0 0 85 /** * Returns the amount of space within the save file that is currently in use. */ 1 4 this 3 3391 252 0 0 6 329 3207 0 0 135 /** * Returns the current ram class of the array. If this is other than * RC_resident, the array data is not resident in memory. */ 1 4 this 3 3393 253 0 0 6 330 3207 0 0 212 /** * Returns the pending ram class of the array. If this is different from * get_ram_class(), this page has been queued to be processed by the thread. * Eventually the page will be set to this ram class. */ 1 4 this 3 3393 254 0 0 4 331 3351 0 0 128 /** * Ensures that the page will become resident soon. Future calls to * get_page_data() will eventually return non-NULL. */ 1 4 this 3 3395 255 0 0 7 332 3396 1888 0 198 /** * Allocates a new block. Returns NULL if a block of the requested size * cannot be allocated. * * To free the allocated block, call block->free(), or simply delete the block * pointer. */ 2 4 this 3 3395 4 size 1 3214 256 0 0 7 333 3396 1888 0 103 /** * Returns a pointer to the first allocated block, or NULL if there are no * allocated blocks. */ 1 4 this 3 3393 257 0 0 6 334 3397 0 0 61 /** * Returns a pointer to the book that owns this page. */ 1 4 this 3 3393 258 0 0 6 335 3375 0 0 119 /** * Returns a pointer to the global LRU object that manages the * VertexDataPage's with the indicated RamClass. */ 1 6 rclass 1 3207 259 0 0 6 336 3375 0 0 133 /** * Returns a pointer to the global LRU object that manages the * VertexDataPage's that are pending processing by the thread. */ 0 260 0 0 6 337 3208 0 0 121 /** * Returns the global VertexDataSaveFile that will be used to save vertex data * buffers to disk when necessary. */ 0 261 0 0 6 340 3183 0 0 205 /** * Writes the page to disk, but does not evict it from memory or affect its * LRU status. If it gets evicted later without having been modified, it will * not need to write itself to disk again. */ 1 4 this 3 3395 262 0 0 6 341 3182 0 0 285 /** * Returns the number of threads that have been spawned to service vertex * paging requests, or 0 if no threads have been spawned (which may mean * either that all paging requests will be handled by the main thread, or * simply that no paging requests have yet been issued). */ 0 263 0 0 6 342 3182 0 0 94 /** * Returns the number of read requests that are waiting to be serviced by a * thread. */ 0 264 0 0 6 343 3182 0 0 95 /** * Returns the number of write requests that are waiting to be serviced by a * thread. */ 0 265 0 0 4 344 3351 0 0 141 /** * Call this to stop the paging threads, if they were started. This may block * until all of the pending tasks have been completed. */ 0 266 0 0 4 345 3351 0 0 80 /** * Waits for all of the pending thread tasks to finish before returning. */ 0 267 0 0 4 346 3351 0 0 10 /** * */ 2 4 this 3 3393 3 out 1 3352 268 0 0 4 347 3351 0 0 10 /** * */ 3 4 this 3 3393 3 out 1 3352 12 indent_level 1 3182 269 0 0 7 348 3367 0 0 0 0 270 0 0 6 324 3383 0 0 0 1 4 this 3 3395 271 0 0 6 326 3382 0 0 0 1 4 this 3 3395 272 0 0 7 350 3397 1876 0 10 /** * */ 1 10 block_size 1 3214 273 0 0 7 352 3396 1888 0 78 /** * Allocates and returns a new VertexDataBuffer of the requested size. */ 2 4 this 3 3397 4 size 1 3214 274 0 0 6 353 3214 0 0 60 /** * Returns the number of pages created for the book. */ 1 4 this 3 3398 275 0 0 6 354 3214 0 0 85 /** * Returns the total size of all bytes owned by all pages owned by this book. */ 1 4 this 3 3398 276 0 0 6 354 3214 0 0 122 /** * Returns the total size of all bytes owned by all pages owned by this book * that have the indicated ram class. */ 2 4 this 3 3398 9 ram_class 1 3207 277 0 0 6 355 3214 0 0 92 /** * Returns the total size of all bytes allocated within pages owned by this * book. */ 1 4 this 3 3398 278 0 0 6 355 3214 0 0 126 /** * Returns the total size of all bytes allocated within pages owned by this * book that have the indicated ram class. */ 2 4 this 3 3398 9 ram_class 1 3207 279 0 0 4 356 3351 0 0 223 /** * Writes all pages to disk immediately, just in case they get evicted later. * It makes sense to make this call just before taking down a loading screen, * to minimize chugs from saving pages inadvertently later. */ 1 4 this 3 3397 280 0 0 6 363 3395 0 0 65 /** * Returns the page from which this buffer was allocated. */ 1 4 this 3 3400 281 0 0 7 364 3396 1888 0 120 /** * Returns a pointer to the next allocated block in the chain, or NULL if * there are no more allocated blocks. */ 1 4 this 3 3400 282 0 0 6 358 3386 0 0 0 1 4 this 3 3396 283 0 0 7 361 3402 0 0 0 1 4 this 3 3396 284 0 0 7 374 3218 1897 0 10 /** * */ 1 4 copy 1 3370 285 0 0 7 374 3218 1897 0 10 /** * */ 2 12 array_format 1 3196 10 usage_hint 1 3174 286 0 0 7 375 3218 1897 0 0 2 4 this 3 3218 4 copy 1 3370 287 0 0 4 377 3351 0 0 0 2 4 this 3 3218 4 size 1 3214 288 0 0 6 380 3182 0 0 96 /** * Returns 0 if the two arrays are equivalent, even if they are not the same * pointer. */ 2 4 this 3 3370 5 other 1 3370 289 0 0 7 381 3196 0 0 63 /** * Returns the format object that describes this array. */ 1 4 this 3 3370 290 0 0 6 383 3174 0 0 154 /** * Returns the usage hint that describes to the rendering backend how often * the vertex data will be modified and/or rendered. See geomEnums.h. */ 1 4 this 3 3370 291 0 0 4 384 3351 0 0 228 /** * Changes the UsageHint hint for this array. See get_usage_hint(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 2 4 this 3 3218 10 usage_hint 1 3174 292 0 0 6 386 3183 0 0 153 /** * Returns true if the array has the named column, false otherwise. This is * really just a shortcut for asking the same thing from the format. */ 2 4 this 3 3370 4 name 1 3198 293 0 0 6 387 3182 0 0 187 /** * Returns the number of rows stored in the array, based on the number of * bytes and the stride. This should be the same for all arrays within a * given GeomVertexData object. */ 1 4 this 3 3370 294 0 0 6 388 3183 0 0 659 /** * Sets the length of the array to n rows. * * Normally, you would not call this directly, since all of the arrays in a * particular GeomVertexData must have the same number of rows; instead, call * GeomVertexData::set_num_rows(). * * The return value is true if the number of rows was changed, false if the * object already contained n rows (or if there was some error). * * The new vertex data is initialized to 0, including the "color" column (but * see GeomVertexData::set_num_rows()). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 2 4 this 3 3218 1 n 1 3182 295 0 0 6 389 3183 0 0 423 /** * This method behaves like set_num_rows(), except the new data is not * initialized. Furthermore, after this call, *any* of the data in the * GeomVertexArrayData may be uninitialized, including the earlier rows. * * Normally, you would not call this directly, since all of the arrays in a * particular GeomVertexData must have the same number of rows; instead, call * GeomVertexData::unclean_set_num_rows(). */ 2 4 this 3 3218 1 n 1 3182 296 0 0 6 390 3183 0 0 313 /** * This ensures that enough memory space for n rows is allocated, so that you * may increase the number of rows to n without causing a new memory * allocation. This is a performance optimization only; it is especially * useful when you know ahead of time that you will be adding n rows to the * data. */ 2 4 this 3 3218 1 n 1 3182 297 0 0 4 391 3351 0 0 96 /** * Removes all of the rows in the array. Functionally equivalent to * set_num_rows(0). */ 1 4 this 3 3218 298 0 0 6 392 3214 0 0 59 /** * Returns the number of bytes stored in the array. */ 1 4 this 3 3370 299 0 0 7 393 3403 0 0 124 /** * Returns a sequence number which is guaranteed to change at least every time * the array vertex data is modified. */ 1 4 this 3 3370 300 0 0 4 399 3351 0 0 10 /** * */ 2 4 this 3 3370 3 out 1 3352 301 0 0 4 400 3351 0 0 10 /** * */ 3 4 this 3 3370 3 out 1 3352 12 indent_level 1 3182 302 0 0 6 401 3183 0 0 281 /** * Returns true if the vertex data is currently resident in memory. If this * returns true, the next call to get_handle()->get_read_pointer() will * probably not block. If this returns false, the vertex data will be brought * back into memory shortly; try again later. */ 2 4 this 3 3370 14 current_thread 1 3404 303 0 0 7 402 3407 0 0 250 /** * Returns an object that can be used to read the actual data bytes stored in * the array. Calling this method locks the data, and will block any other * threads attempting to read or write the data, until the returned object * destructs. */ 2 4 this 3 3370 14 current_thread 1 3404 304 0 0 7 403 3408 1934 0 259 /** * Returns an object that can be used to read or write the actual data bytes * stored in the array. Calling this method locks the data, and will block * any other threads attempting to read or write the data, until the returned * object destructs. */ 2 4 this 3 3218 14 current_thread 1 3404 305 0 0 4 404 3351 0 0 344 /** * Indicates that the data should be enqueued to be prepared in the indicated * prepared_objects at the beginning of the next frame. This will ensure the * data is already loaded into the GSG if it is expected to be rendered soon. * * Use this function instead of prepare_now() to preload datas from a user * interface standpoint. */ 2 4 this 3 3218 16 prepared_objects 1 3409 306 0 0 6 405 3183 0 0 131 /** * Returns true if the data has already been prepared or enqueued for * preparation on the indicated GSG, false otherwise. */ 2 4 this 3 3370 16 prepared_objects 1 3409 307 0 0 6 406 3412 0 0 527 /** * Creates a context for the data on the particular GSG, if it does not * already exist. Returns the new (or old) VertexBufferContext. This assumes * that the GraphicsStateGuardian is the currently active rendering context * and that it is ready to accept new datas. If this is not necessarily the * case, you should use prepare() instead. * * Normally, this is not called directly except by the GraphicsStateGuardian; * a data does not need to be explicitly prepared by the user before it may be * rendered. */ 3 4 this 3 3218 16 prepared_objects 1 3409 3 gsg 1 3410 308 0 0 6 407 3183 0 0 154 /** * Frees the data context only on the indicated object, if it exists there. * Returns true if it was released, false if it had not been prepared. */ 2 4 this 3 3218 16 prepared_objects 1 3409 309 0 0 6 408 3182 0 0 149 /** * Frees the context allocated on all objects for which the data has been * declared. Returns the number of contexts which have been freed. */ 1 4 this 3 3218 310 0 0 6 409 3375 0 0 131 /** * Returns a pointer to the global LRU object that manages the * GeomVertexArrayData's that have not (yet) been paged out. */ 0 311 0 0 6 410 3375 0 0 138 /** * Returns a pointer to the global LRU object that manages the * GeomVertexArrayData's that are deemed too small to be paged out. */ 0 312 0 0 4 411 3351 0 0 124 /** * Marks that an epoch has passed in each LRU. Asks the LRU's to consider * whether they should perform evictions. */ 0 313 0 0 6 412 3397 0 0 98 /** * Returns the global VertexDataBook that will be used to allocate vertex data * buffers. */ 0 314 0 0 6 413 3182 0 0 0 3 4 this 3 3218 4 view 1 3413 5 flags 1 3182 315 0 0 6 413 3182 0 0 0 3 4 this 3 3370 4 view 1 3413 5 flags 1 3182 316 0 0 4 414 3351 0 0 0 2 4 this 3 3370 4 view 1 3413 317 0 0 7 415 3367 0 0 0 0 318 0 0 7 368 3416 0 0 0 1 4 this 3 3218 319 0 0 6 370 3382 0 0 0 1 4 this 3 3218 320 0 0 6 372 3358 0 0 0 1 4 this 3 3218 321 0 0 7 422 3218 1897 0 10 /** * */ 1 4 this 3 3408 322 0 0 7 422 3370 0 0 10 /** * */ 1 4 this 3 3407 323 0 0 7 425 3196 0 0 10 /** * */ 1 4 this 3 3407 324 0 0 6 426 3174 0 0 10 /** * */ 1 4 this 3 3407 325 0 0 6 429 3182 0 0 10 /** * */ 1 4 this 3 3407 326 0 0 6 430 3183 0 0 10 /** * */ 2 4 this 3 3408 1 n 1 3182 327 0 0 6 431 3183 0 0 10 /** * */ 2 4 this 3 3408 1 n 1 3182 328 0 0 6 432 3183 0 0 10 /** * */ 2 4 this 3 3408 1 n 1 3182 329 0 0 4 433 3351 0 0 10 /** * */ 1 4 this 3 3408 330 0 0 6 434 3214 0 0 10 /** * */ 1 4 this 3 3407 331 0 0 7 435 3403 0 0 10 /** * */ 1 4 this 3 3407 332 0 0 6 438 3183 0 0 281 /** * Returns true if the vertex data is currently resident in memory. If this * returns true, the next call to get_handle()->get_read_pointer() will * probably not block. If this returns false, the vertex data will be brought * back into memory shortly; try again later. */ 1 4 this 3 3407 333 0 0 6 439 3412 0 0 527 /** * Creates a context for the data on the particular GSG, if it does not * already exist. Returns the new (or old) VertexBufferContext. This assumes * that the GraphicsStateGuardian is the currently active rendering context * and that it is ready to accept new datas. If this is not necessarily the * case, you should use prepare() instead. * * Normally, this is not called directly except by the GraphicsStateGuardian; * a data does not need to be explicitly prepared by the user before it may be * rendered. */ 3 4 this 3 3407 16 prepared_objects 1 3409 3 gsg 1 3410 334 0 0 4 440 3351 0 0 62 /** * Copies the entire data array from the other object. */ 2 4 this 3 3408 5 other 1 3407 335 0 0 4 440 3351 0 0 0 2 4 this 3 3408 6 buffer 1 3363 336 0 0 4 441 3351 0 0 201 /** * Copies a portion of the data array from the other object into a portion of * the data array of this object. If to_size != from_size, the size of this * data array is adjusted accordingly. */ 6 4 this 3 3408 8 to_start 1 3214 7 to_size 1 3214 5 other 1 3407 10 from_start 1 3214 9 from_size 1 3214 337 0 0 4 441 3351 0 0 0 4 4 this 3 3408 8 to_start 1 3214 7 to_size 1 3214 6 buffer 1 3363 338 0 0 4 441 3351 0 0 0 6 4 this 3 3408 8 to_start 1 3214 7 to_size 1 3214 6 buffer 1 3363 10 from_start 1 3214 9 from_size 1 3214 339 0 0 6 442 3417 0 0 177 /** * Returns the entire raw data of the GeomVertexArrayData object, formatted as * a string. This is primarily for the benefit of high-level languages such * as Python. */ 1 4 this 3 3407 340 0 0 4 443 3351 0 0 166 /** * Replaces the entire raw data array with the contents of the indicated * string. This is primarily for the benefit of high-level languages like * Python. */ 2 4 this 3 3408 4 data 1 3417 341 0 0 6 444 3417 0 0 182 /** * Returns a subset of the raw data of the GeomVertexArrayData object, * formatted as a string. This is primarily for the benefit of high-level * languages such as Python. */ 3 4 this 3 3407 5 start 1 3214 4 size 1 3214 342 0 0 4 445 3351 0 0 232 /** * Replaces a portion of the data array from the indicated string. If size != * data.size(), the size of this data array is adjusted accordingly. * * This is primarily for the benefit of high-level languages like Python. */ 4 4 this 3 3408 5 start 1 3214 4 size 1 3214 4 data 1 3417 343 0 0 4 446 3351 0 0 46 /** * Marks the array data recently-used. */ 1 4 this 3 3407 344 0 0 7 447 3367 0 0 0 0 345 0 0 7 417 3402 0 0 0 1 4 this 3 3408 346 0 0 6 419 3358 0 0 0 1 4 this 3 3408 347 0 0 4 449 3351 0 0 482 /** * Specifies the maximum number of entries in the cache for storing pre- * processed data for rendering vertices. This limit is flexible, and may be * temporarily exceeded if many different Geoms are pre-processed during the * space of a single frame. * * This is not a limit on the actual vertex data, which is what it is; it is * also not a limit on the amount of memory used by the video driver or the * system graphics interface, which Panda has no control over. */ 2 4 this 3 3419 8 max_size 1 3182 348 0 0 6 450 3182 0 0 141 /** * Returns the maximum number of entries in the cache for storing pre- * processed data for rendering vertices. See set_max_size(). */ 1 4 this 3 3419 349 0 0 6 451 3182 0 0 64 /** * Returns the number of entries currently in the cache. */ 1 4 this 3 3419 350 0 0 4 452 3351 0 0 57 /** * Immediately empties all elements in the cache. */ 1 4 this 3 3421 351 0 0 6 453 3421 0 0 52 /** * Returns the global cache manager pointer. */ 0 352 0 0 4 455 3351 0 0 0 2 4 this 3 3222 6 matrix 1 3422 353 0 0 4 456 3351 0 0 277 /** * Premultiplies this transform's matrix with the indicated previous matrix, * so that the result is the net composition of the given transform with this * transform. The result is stored in the parameter "result", which should * not be the same matrix as previous. */ 3 4 this 3 3222 6 result 1 3422 8 previous 1 3423 354 0 0 4 457 3351 0 0 200 /** * Adds the value of this transform's matrix, modified by the indicated * weight, into the indicated accumulation matrix. This is used to compute * the result of several blended transforms. */ 3 4 this 3 3222 5 accum 1 3422 6 weight 1 3225 355 0 0 7 458 3403 0 0 131 /** * Returns a sequence number that's guaranteed to change at least every time * the value reported by get_matrix() changes. */ 2 4 this 3 3222 14 current_thread 1 3404 356 0 0 4 460 3351 0 0 10 /** * */ 2 4 this 3 3222 3 out 1 3352 357 0 0 4 461 3351 0 0 10 /** * */ 3 4 this 3 3222 3 out 1 3352 12 indent_level 1 3182 358 0 0 7 462 3403 0 0 417 /** * Returns a monotonically increasing sequence. Each time this is called, a * new sequence number is returned, higher than the previous value. * * This is used to ensure that all VertexTransform::get_modified() calls * return an increasing number in the same space, so that * TransformBlend::get_modified() is easy to determine. It is similar to * Geom::get_modified(), but it is in a different space. */ 1 14 current_thread 1 3404 359 0 0 7 463 3403 0 0 197 /** * Returns the currently highest VertexTransform::get_modified() value in the * world. This can be used as a quick way to determine if any * VertexTransforms have changed value recently. */ 1 14 current_thread 1 3404 360 0 0 7 464 3367 0 0 0 0 361 0 0 7 466 3424 0 0 10 /** * */ 0 362 0 0 7 466 3424 0 0 10 /** * */ 1 4 copy 1 3237 363 0 0 7 467 3424 0 0 0 2 4 this 3 3424 4 copy 1 3237 364 0 0 6 468 3183 0 0 228 /** * Returns true if this table has been registered. Once it has been * registered, the set of transforms in a TransformTable may not be further * modified; but it must be registered before it can be assigned to a Geom. */ 1 4 this 3 3237 365 0 0 7 469 3237 0 0 551 /** * Registers a TransformTable for use. This is similar to * GeomVertexFormat::register_format(). Once registered, a TransformTable may * no longer be modified (although the individual VertexTransform objects may * modify their reported transforms). * * This must be called before a table may be used in a Geom. After this call, * you should discard the original pointer you passed in (which may or may not * now be invalid) and let its reference count decrement normally; you should * use only the returned value from this point on. */ 1 5 table 1 3237 366 0 0 6 470 3214 0 0 57 /** * Returns the number of transforms in the table. */ 1 4 this 3 3237 367 0 0 7 471 3222 0 0 50 /** * Returns the nth transform in the table. */ 2 4 this 3 3237 1 n 1 3214 368 0 0 7 473 3403 0 0 276 /** * Returns a sequence number that's guaranteed to change at least when any * VertexTransforms in the table change. (However, this is only true for a * registered table. An unregistered table may or may not reflect an update * here when a VertexTransform changes.) */ 2 4 this 3 3237 14 current_thread 1 3404 369 0 0 4 474 3351 0 0 75 /** * Replaces the nth transform. Only valid for unregistered tables. */ 3 4 this 3 3424 1 n 1 3214 9 transform 1 3222 370 0 0 4 475 3351 0 0 321 /** * Inserts a new transform to the table at the given index position. If the * index is beyond the end of the table, appends it to the end. Only valid * for unregistered tables. * * This does not automatically uniquify the pointer; if the transform is * already present in the table, it will be added twice. */ 3 4 this 3 3424 1 n 1 3214 9 transform 1 3222 371 0 0 4 476 3351 0 0 74 /** * Removes the nth transform. Only valid for unregistered tables. */ 2 4 this 3 3424 1 n 1 3214 372 0 0 6 477 3214 0 0 268 /** * Adds a new transform to the table and returns the index number of the new * transform. Only valid for unregistered tables. * * This does not automatically uniquify the pointer; if the transform is * already present in the table, it will be added twice. */ 2 4 this 3 3424 9 transform 1 3222 373 0 0 4 478 3351 0 0 10 /** * */ 2 4 this 3 3237 3 out 1 3352 374 0 0 7 485 3367 0 0 0 0 375 0 0 7 487 3425 1985 0 10 /** * */ 0 376 0 0 7 487 3425 1985 0 10 /** * */ 1 4 copy 1 3426 377 0 0 7 487 3425 1985 0 10 /** * */ 2 10 transform0 1 3222 7 weight0 1 3225 378 0 0 7 487 3425 1985 0 10 /** * */ 4 10 transform0 1 3222 7 weight0 1 3225 10 transform1 1 3222 7 weight1 1 3225 379 0 0 7 487 3425 1985 0 10 /** * */ 6 10 transform0 1 3222 7 weight0 1 3225 10 transform1 1 3222 7 weight1 1 3225 10 transform2 1 3222 7 weight2 1 3225 380 0 0 7 487 3425 1985 0 10 /** * */ 8 10 transform0 1 3222 7 weight0 1 3225 10 transform1 1 3222 7 weight1 1 3225 10 transform2 1 3222 7 weight2 1 3225 10 transform3 1 3222 7 weight3 1 3225 381 0 0 6 488 3425 0 0 0 2 4 this 3 3425 4 copy 1 3426 382 0 0 6 490 3182 0 0 68 /** * Defines an arbitrary ordering for TransformBlend objects. */ 2 4 this 3 3426 5 other 1 3426 383 0 0 6 491 3183 0 0 0 2 4 this 3 3426 5 other 1 3426 384 0 0 6 492 3183 0 0 0 2 4 this 3 3426 5 other 1 3426 385 0 0 6 493 3183 0 0 0 2 4 this 3 3426 5 other 1 3426 386 0 0 4 494 3351 0 0 112 /** * Adds a new transform to the blend. If the transform already existed, * increases its weight factor. */ 3 4 this 3 3425 9 transform 1 3222 6 weight 1 3225 387 0 0 4 495 3351 0 0 58 /** * Removes the indicated transform from the blend. */ 2 4 this 3 3425 9 transform 1 3222 388 0 0 4 495 3351 0 0 64 /** * Removes the nth transform stored in the blend object. */ 2 4 this 3 3425 1 n 1 3214 389 0 0 4 496 3351 0 0 192 /** * If the total number of transforms in the blend exceeds max_transforms, * removes the n least-important transforms as needed to reduce the number of * transforms to max_transforms. */ 2 4 this 3 3425 14 max_transforms 1 3182 390 0 0 4 497 3351 0 0 189 /** * Rescales all of the weights on the various transforms so that they sum to * 1.0. It is generally a good idea to call this after adding or removing * transforms from the blend. */ 1 4 this 3 3425 391 0 0 6 498 3183 0 0 82 /** * Returns true if the blend has the indicated transform, false otherwise. */ 2 4 this 3 3426 9 transform 1 3222 392 0 0 6 499 3225 0 0 118 /** * Returns the weight associated with the indicated transform, or 0 if there * is no entry for the transform. */ 2 4 this 3 3426 9 transform 1 3222 393 0 0 6 499 3225 0 0 94 /** * Returns the weight associated with the nth transform stored in the blend * object. */ 2 4 this 3 3426 1 n 1 3214 394 0 0 6 500 3214 0 0 71 /** * Returns the number of transforms stored in the blend object. */ 1 4 this 3 3426 395 0 0 7 501 3222 0 0 64 /** * Returns the nth transform stored in the blend object. */ 2 4 this 3 3426 1 n 1 3214 396 0 0 4 503 3351 0 0 65 /** * Replaces the nth transform stored in the blend object. */ 3 4 this 3 3425 1 n 1 3214 9 transform 1 3222 397 0 0 4 504 3351 0 0 95 /** * Replaces the weight associated with the nth transform stored in the blend * object. */ 3 4 this 3 3425 1 n 1 3214 6 weight 1 3225 398 0 0 4 511 3351 0 0 156 /** * Recomputes the internal representation of the blend value, if necessary. * You should call this before calling get_blend() or transform_point(). */ 2 4 this 3 3426 14 current_thread 1 3404 399 0 0 4 512 3351 0 0 249 /** * Returns the current value of the blend, based on the current value of all * of the nested transform objects and their associated weights. * * You should call update_blend() to ensure that the cache is up-to-date * before calling this. */ 3 4 this 3 3426 6 result 1 3422 14 current_thread 1 3404 400 0 0 4 513 3351 0 0 162 /** * Transforms the indicated point by the blend matrix. * * You should call update_blend() to ensure that the cache is up-to-date * before calling this. */ 3 4 this 3 3426 5 point 1 3427 14 current_thread 1 3404 401 0 0 4 513 3351 0 0 0 3 4 this 3 3426 5 point 1 3429 14 current_thread 1 3404 402 0 0 4 513 3351 0 0 162 /** * Transforms the indicated point by the blend matrix. * * You should call update_blend() to ensure that the cache is up-to-date * before calling this. */ 3 4 this 3 3426 5 point 1 3430 14 current_thread 1 3404 403 0 0 4 513 3351 0 0 0 3 4 this 3 3426 5 point 1 3432 14 current_thread 1 3404 404 0 0 4 514 3351 0 0 163 /** * Transforms the indicated vector by the blend matrix. * * You should call update_blend() to ensure that the cache is up-to-date * before calling this. */ 3 4 this 3 3426 5 point 1 3434 14 current_thread 1 3404 405 0 0 4 514 3351 0 0 0 3 4 this 3 3426 5 point 1 3436 14 current_thread 1 3404 406 0 0 7 515 3403 0 0 120 /** * Returns a counter which is guaranteed to increment at least as often as the * result of get_blend() changes. */ 2 4 this 3 3426 14 current_thread 1 3404 407 0 0 4 517 3351 0 0 10 /** * */ 2 4 this 3 3426 3 out 1 3352 408 0 0 4 518 3351 0 0 10 /** * */ 3 4 this 3 3426 3 out 1 3352 12 indent_level 1 3182 409 0 0 7 519 3367 0 0 0 0 410 0 0 7 521 3438 0 0 10 /** * */ 0 411 0 0 7 521 3438 0 0 10 /** * */ 1 4 copy 1 3439 412 0 0 7 522 3438 0 0 0 2 4 this 3 3438 4 copy 1 3439 413 0 0 6 523 3214 0 0 81 /** * Returns the total number of different blend combinations in the table. */ 1 4 this 3 3439 414 0 0 6 524 3426 0 0 46 /** * Returns the nth blend in the table. */ 2 4 this 3 3439 1 n 1 3214 415 0 0 7 526 3403 0 0 129 /** * Returns a counter which is guaranteed to increment at least when any * TransformBlends within the table have changed. */ 2 4 this 3 3439 14 current_thread 1 3404 416 0 0 4 527 3351 0 0 75 /** * Replaces the blend at the nth position with the indicated value. */ 3 4 this 3 3438 1 n 1 3214 5 blend 1 3426 417 0 0 4 528 3351 0 0 49 /** * Removes the blend at the nth position. */ 2 4 this 3 3438 1 n 1 3214 418 0 0 6 529 3214 0 0 167 /** * Adds a new blend to the table, and returns its index number. If there is * already an identical blend in the table, simply returns that number * instead. */ 2 4 this 3 3438 5 blend 1 3426 419 0 0 6 530 3182 0 0 299 /** * Returns the number of unique VertexTransform objects represented in the * table. This will correspond to the size of the TransformTable object that * would represent the same table. This is also the same limit reflected by * GraphicsStateGuardian::get_max_vertex_transform_indices(). */ 1 4 this 3 3439 420 0 0 6 531 3182 0 0 217 /** * Returns the maximum number of unique VertexTransform objects that are * applied to any one vertex simultaneously. This is the same limit reflected * by GraphicsStateGuardian::get_max_vertex_transforms(). */ 1 4 this 3 3439 421 0 0 4 532 3351 0 0 134 /** * Specifies the subset of rows (vertices) in the associated GeomVertexData * that this TransformBlendTable actually affects. */ 2 4 this 3 3438 4 rows 1 3441 422 0 0 6 533 3441 0 0 132 /** * Returns the subset of rows (vertices) in the associated GeomVertexData that * this TransformBlendTable actually affects. */ 1 4 this 3 3439 423 0 0 6 534 3442 0 0 192 /** * Returns a modifiable reference to the SparseArray that specifies the subset * of rows (vertices) in the associated GeomVertexData that this * TransformBlendTable actually affects. */ 1 4 this 3 3438 424 0 0 4 535 3351 0 0 10 /** * */ 3 4 this 3 3439 3 out 1 3352 12 indent_level 1 3182 425 0 0 7 545 3367 0 0 0 0 426 0 0 7 547 3198 0 0 201 /** * Returns the name of this particular slider. Every unique blend shape * within a particular Geom must be identified with a different name, which is * shared by the slider that controls it. */ 1 4 this 3 3443 427 0 0 6 549 3225 0 0 0 1 4 this 3 3443 428 0 0 7 550 3403 0 0 131 /** * Returns a sequence number that's guaranteed to change at least every time * the value reported by get_slider() changes. */ 2 4 this 3 3443 14 current_thread 1 3404 429 0 0 4 553 3351 0 0 10 /** * */ 2 4 this 3 3443 3 out 1 3352 430 0 0 4 554 3351 0 0 10 /** * */ 3 4 this 3 3443 3 out 1 3352 12 indent_level 1 3182 431 0 0 7 555 3367 0 0 0 0 432 0 0 7 557 3445 0 0 10 /** * */ 0 433 0 0 7 557 3445 0 0 10 /** * */ 1 4 copy 1 3239 434 0 0 7 558 3445 0 0 0 2 4 this 3 3445 4 copy 1 3239 435 0 0 6 559 3183 0 0 222 /** * Returns true if this table has been registered. Once it has been * registered, the set of sliders in a SliderTable may not be further * modified; but it must be registered before it can be assigned to a Geom. */ 1 4 this 3 3239 436 0 0 7 560 3239 0 0 539 /** * Registers a SliderTable for use. This is similar to * GeomVertexFormat::register_format(). Once registered, a SliderTable may no * longer be modified (although the individual VertexSlider objects may modify * their reported sliders). * * This must be called before a table may be used in a Geom. After this call, * you should discard the original pointer you passed in (which may or may not * now be invalid) and let its reference count decrement normally; you should * use only the returned value from this point on. */ 1 5 table 1 3239 437 0 0 6 561 3214 0 0 54 /** * Returns the number of sliders in the table. */ 1 4 this 3 3239 438 0 0 7 562 3443 0 0 47 /** * Returns the nth slider in the table. */ 2 4 this 3 3239 1 n 1 3214 439 0 0 6 564 3441 0 0 86 /** * Returns the set of rows (vertices) governed by the nth slider in the table. */ 2 4 this 3 3239 1 n 1 3214 440 0 0 6 565 3441 0 0 174 /** * Returns a list of slider indices that represent the list of sliders with * the indicated name, or an empty SparseArray if no slider in the table has * that name. */ 2 4 this 3 3239 4 name 1 3198 441 0 0 6 566 3183 0 0 103 /** * Returns true if the table has at least one slider by the indicated name, * false otherwise. */ 2 4 this 3 3239 4 name 1 3198 442 0 0 6 567 3183 0 0 82 /** * Returns true if the table has no sliders, false if it has at least one. */ 1 4 this 3 3239 443 0 0 7 568 3403 0 0 270 /** * Returns a sequence number that's guaranteed to change at least when any * VertexSliders in the table change. (However, this is only true for a * registered table. An unregistered table may or may not reflect an update * here when a VertexSlider changes.) */ 2 4 this 3 3239 14 current_thread 1 3404 444 0 0 4 570 3351 0 0 72 /** * Replaces the nth slider. Only valid for unregistered tables. */ 3 4 this 3 3445 1 n 1 3214 6 slider 1 3443 445 0 0 4 571 3351 0 0 96 /** * Replaces the rows affected by the nth slider. Only valid for unregistered * tables. */ 3 4 this 3 3445 1 n 1 3214 4 rows 1 3441 446 0 0 4 572 3351 0 0 71 /** * Removes the nth slider. Only valid for unregistered tables. */ 2 4 this 3 3445 1 n 1 3214 447 0 0 6 573 3214 0 0 130 /** * Adds a new slider to the table, and returns the index number of the new * slider. Only valid for unregistered tables. */ 3 4 this 3 3445 6 slider 1 3443 4 rows 1 3441 448 0 0 4 574 3351 0 0 10 /** * */ 2 4 this 3 3239 3 out 1 3352 449 0 0 7 575 3367 0 0 0 0 450 0 0 7 581 3446 2055 0 10 /** * */ 1 4 copy 1 3373 451 0 0 7 581 3446 2055 0 216 /** * This constructor copies all of the basic properties of the source * VertexData, like usage_hint and animation tables, but does not copy the * actual data, and it allows you to specify a different format. */ 2 4 copy 1 3373 6 format 1 3234 452 0 0 7 581 3446 2055 0 10 /** * */ 3 4 name 1 3347 6 format 1 3234 10 usage_hint 1 3174 453 0 0 7 582 3446 2055 0 0 2 4 this 3 3446 4 copy 1 3373 454 0 0 4 584 3351 0 0 0 2 4 this 3 3446 4 size 1 3214 455 0 0 6 587 3182 0 0 97 /** * Returns 0 if the two objects are equivalent, even if they are not the same * pointer. */ 2 4 this 3 3373 5 other 1 3373 456 0 0 6 588 3347 0 0 133 /** * Returns the name passed to the constructor, if any. This name is reported * on the PStats graph for vertex computations. */ 1 4 this 3 3373 457 0 0 4 589 3351 0 0 118 /** * Changes the name of the vertex data. This name is reported on the PStats * graph for vertex computations. */ 2 4 this 3 3446 4 name 1 3347 458 0 0 6 591 3174 0 0 438 /** * Returns the usage hint that was passed to the constructor, and which will * be passed to each array data object created initially, and arrays created * as the result of a convert_to() operation. See geomEnums.h. * * However, each individual array may be replaced with a different array * object with an independent usage hint specified, so there is no guarantee * that the individual arrays all have the same usage_hint. */ 1 4 this 3 3373 459 0 0 4 592 3351 0 0 285 /** * Changes the UsageHint hint for this vertex data, and for all of the arrays * that share this data. See get_usage_hint(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 2 4 this 3 3446 10 usage_hint 1 3174 460 0 0 7 594 3234 0 0 86 /** * Returns a pointer to the GeomVertexFormat structure that defines this data. */ 1 4 this 3 3373 461 0 0 4 595 3351 0 0 294 /** * Changes the format of the vertex data. If the data is not empty, this will * implicitly change every row to match the new format. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 2 4 this 3 3446 6 format 1 3234 462 0 0 4 596 3351 0 0 440 /** * Changes the format of the vertex data, without reformatting the data to * match. The data is exactly the same after this operation, but will be * reinterpreted according to the new format. This assumes that the new * format is fundamentally compatible with the old format; in particular, it * must have the same number of arrays with the same stride in each one. No * checking is performed that the data remains sensible. */ 2 4 this 3 3446 6 format 1 3234 463 0 0 6 600 3183 0 0 152 /** * Returns true if the data has the named column, false otherwise. This is * really just a shortcut for asking the same thing from the format. */ 2 4 this 3 3373 4 name 1 3198 464 0 0 6 601 3182 0 0 114 /** * Returns the number of rows stored within all the arrays. All arrays store * data for the same n rows. */ 1 4 this 3 3373 465 0 0 6 602 3183 0 0 736 /** * Sets the length of the array to n rows in all of the various arrays * (presumably by adding rows). * * The new vertex data is initialized to 0, except for the "color" column, * which is initialized to (1, 1, 1, 1). * * The return value is true if the number of rows was changed, false if the * object already contained n rows (or if there was some error). * * This can be used when you know exactly how many rows you will be needing. * It is faster than reserve_num_rows(). Also see unclean_set_num_rows() if * you are planning to fill in all the data yourself. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 2 4 this 3 3446 1 n 1 3182 466 0 0 6 603 3183 0 0 518 /** * This method behaves like set_num_rows(), except the new data is not * initialized. Furthermore, after this call, *any* of the data in the * GeomVertexData may be uninitialized, including the earlier rows. * * This is intended for applications that are about to completely fill the * GeomVertexData with new data anyway; it provides a tiny performance boost * over set_num_rows(). * * This can be used when you know exactly how many rows you will be needing. * It is faster than reserve_num_rows(). */ 2 4 this 3 3446 1 n 1 3182 467 0 0 6 604 3183 0 0 461 /** * This ensures that enough memory space for n rows is allocated, so that you * may increase the number of rows to n without causing a new memory * allocation. This is a performance optimization only; it is especially * useful when you know ahead of time that you will be adding n rows to the * data. * * If you know exactly how many rows you will be needing, it is significantly * faster to use set_num_rows() or unclean_set_num_rows() instead. */ 2 4 this 3 3446 1 n 1 3182 468 0 0 4 605 3351 0 0 263 /** * Removes all of the rows from the arrays; functionally equivalent to * set_num_rows(0) (but faster). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 1 4 this 3 3446 469 0 0 6 606 3214 0 0 126 /** * Returns the number of individual arrays stored within the data. This must * match get_format()->get_num_arrays(). */ 1 4 this 3 3373 470 0 0 7 607 3370 0 0 170 /** * Returns a const pointer to the vertex data for the indicated array, for * application code to directly examine (but not modify) the underlying vertex * data. */ 2 4 this 3 3373 1 i 1 3214 471 0 0 7 608 3407 0 0 51 /** * Equivalent to get_array(i).get_handle(). */ 2 4 this 3 3373 1 i 1 3214 472 0 0 7 610 3218 1897 0 419 /** * Returns a modifiable pointer to the indicated vertex array, so that * application code may directly manipulate the data. You should avoid * changing the length of this array, since all of the arrays should be kept * in sync--use set_num_rows() instead. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 2 4 this 3 3446 1 i 1 3214 473 0 0 7 611 3408 1934 0 57 /** * Equivalent to modify_array(i).modify_handle(). */ 2 4 this 3 3446 1 i 1 3214 474 0 0 4 612 3351 0 0 363 /** * Replaces the indicated vertex data array with a completely new array. You * should be careful that the new array has the same length and format as the * old one, unless you know what you are doing. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 3 4 this 3 3446 1 i 1 3214 5 array 1 3370 475 0 0 7 616 3237 0 0 494 /** * Returns a const pointer to the TransformTable assigned to this data. * Vertices within the table will index into this table to indicate their * dynamic skinning information; this table is used when the vertex animation * is to be performed by the graphics hardware (but also see * get_transform_blend_table()). * * This will return NULL if the vertex data does not have a TransformTable * assigned (which implies the vertices will not be animated by the graphics * hardware). */ 1 4 this 3 3373 476 0 0 4 617 3351 0 0 376 /** * Replaces the TransformTable on this vertex data with the indicated table. * The length of this table should be consistent with the maximum table index * assigned to the vertices under the "transform_index" name. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 2 4 this 3 3446 5 table 1 3237 477 0 0 4 618 3351 0 0 144 /** * Sets the TransformTable pointer to NULL, removing the table from the vertex * data. This disables hardware-driven vertex animation. */ 1 4 this 3 3446 478 0 0 7 622 3439 0 0 467 /** * Returns a const pointer to the TransformBlendTable assigned to this data. * Vertices within the table will index into this table to indicate their * dynamic skinning information; this table is used when the vertex animation * is to be performed by the CPU (but also see get_transform_table()). * * This will return NULL if the vertex data does not have a * TransformBlendTable assigned (which implies the vertices will not be * animated by the CPU). */ 1 4 this 3 3373 479 0 0 7 623 3438 0 0 342 /** * Returns a modifiable pointer to the current TransformBlendTable on this * vertex data, if any, or NULL if there is not a TransformBlendTable. See * get_transform_blend_table(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 1 4 this 3 3446 480 0 0 4 624 3351 0 0 382 /** * Replaces the TransformBlendTable on this vertex data with the indicated * table. The length of this table should be consistent with the maximum * table index assigned to the vertices under the "transform_blend" name. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 2 4 this 3 3446 5 table 1 3439 481 0 0 4 625 3351 0 0 144 /** * Sets the TransformBlendTable pointer to NULL, removing the table from the * vertex data. This disables CPU-driven vertex animation. */ 1 4 this 3 3446 482 0 0 7 626 3239 0 0 264 /** * Returns a const pointer to the SliderTable assigned to this data. Vertices * within the vertex data will look up their morph offsets, if any, within * this table. * * This will return NULL if the vertex data does not have a SliderTable * assigned. */ 1 4 this 3 3373 483 0 0 4 627 3351 0 0 437 /** * Replaces the SliderTable on this vertex data with the indicated table. * There should be an entry in this table for each kind of morph offset * defined in the vertex data. * * The SliderTable object must have been registered prior to setting it on the * GeomVertexData. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 2 4 this 3 3446 5 table 1 3239 484 0 0 4 628 3351 0 0 138 /** * Sets the SliderTable pointer to NULL, removing the table from the vertex * data. This disables morph (blend shape) animation. */ 1 4 this 3 3446 485 0 0 6 632 3182 0 0 100 /** * Returns the total number of bytes consumed by the different arrays of the * vertex data. */ 1 4 this 3 3373 486 0 0 7 633 3403 0 0 118 /** * Returns a sequence number which is guaranteed to change at least every time * the vertex data is modified. */ 2 4 this 3 3373 14 current_thread 1 3404 487 0 0 6 636 3183 0 0 180 /** * Returns true if the vertex data is currently resident in memory. If this * returns false, the vertex data will be brought back into memory shortly; * try again later. */ 1 4 this 3 3373 488 0 0 4 637 3351 0 0 691 /** * Copies all the data from the other array into the corresponding data types * in this array, by matching data types name-by-name. * * keep_data_objects specifies what to do when one or more of the arrays can * be copied without the need to apply any conversion operation. If it is * true, the original GeomVertexArrayData objects in this object are retained, * and their data arrays are copied byte-by-byte from the source; if it is * false, then the GeomVertexArrayData objects are copied pointerwise from the * source. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 4 4 this 3 3446 6 source 1 3373 17 keep_data_objects 1 3183 14 current_thread 1 3404 489 0 0 4 638 3351 0 0 335 /** * Copies a single row of the data from the other array into the indicated row * of this array. In this case, the source format must exactly match the * destination format. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 5 4 this 3 3446 8 dest_row 1 3182 6 source 1 3373 10 source_row 1 3182 14 current_thread 1 3404 490 0 0 7 639 3373 0 0 162 /** * Returns a new GeomVertexData that represents the same contents as this one, * with all data types matched up name-by-name to the indicated new format. */ 2 4 this 3 3373 10 new_format 1 3234 491 0 0 7 640 3373 0 0 208 /** * Returns a new GeomVertexData object with the color table modified in-place * to apply the indicated scale. * * If the vertex data does not include a color column, a new one will not be * added. */ 2 4 this 3 3373 11 color_scale 1 3447 492 0 0 7 640 3373 0 0 307 /** * Returns a new GeomVertexData object with the color table replaced with a * new color table that has been scaled by the indicated value. The new color * table will be added as a new array; if the old color table was interleaved * with a previous array, the previous array will not be repacked. */ 5 4 this 3 3373 11 color_scale 1 3447 14 num_components 1 3182 12 numeric_type 1 3178 8 contents 1 3179 493 0 0 7 641 3373 0 0 197 /** * Returns a new GeomVertexData object with the color data modified in-place * with the new value. * * If the vertex data does not include a color column, a new one will not be * added. */ 2 4 this 3 3373 5 color 1 3450 494 0 0 7 641 3373 0 0 309 /** * Returns a new GeomVertexData object with the color table replaced with a * new color table for which each vertex has the indicated value. The new * color table will be added as a new array; if the old color table was * interleaved with a previous array, the previous array will not be repacked. */ 5 4 this 3 3373 5 color 1 3450 14 num_components 1 3182 12 numeric_type 1 3178 8 contents 1 3179 495 0 0 7 642 3373 0 0 281 /** * Returns a new GeomVertexData object with the normal data modified in-place, * so that each lighting normal is now facing in the opposite direction. * * If the vertex data does not include a normal column, this returns the * original GeomVertexData object, unchanged. */ 1 4 this 3 3373 496 0 0 7 643 3373 0 0 861 /** * Returns a GeomVertexData that represents the results of computing the * vertex animation on the CPU for this GeomVertexData. * * If there is no CPU-defined vertex animation on this object, this just * returns the original object. * * If there is vertex animation, but the VertexTransform values have not * changed since last time, this may return the same pointer it returned * previously. Even if the VertexTransform values have changed, it may still * return the same pointer, but with its contents modified (this is preferred, * since it allows the graphics backend to update vertex buffers optimally). * * If force is false, this method may return immediately with stale data, if * the vertex data is not completely resident. If force is true, this method * will never return stale data, but may block until the data is available. */ 3 4 this 3 3373 5 force 1 3183 14 current_thread 1 3404 497 0 0 4 644 3351 0 0 268 /** * Removes the cache of animated vertices computed by a previous call to * animate_vertices() within the same frame. This will force the next call to * animate_vertices() to recompute these values from scratch. Normally it is * not necessary to call this. */ 1 4 this 3 3446 498 0 0 4 645 3351 0 0 193 /** * Applies the indicated transform matrix to all of the vertices in the * GeomVertexData. The transform is applied to all "point" and "vector" type * columns described in the format. */ 2 4 this 3 3446 3 mat 1 3423 499 0 0 4 645 3351 0 0 201 /** * Applies the indicated transform matrix to all of the vertices mentioned in * the sparse array. The transform is applied to all "point" and "vector" * type columns described in the format. */ 3 4 this 3 3446 3 mat 1 3423 4 rows 1 3441 500 0 0 4 645 3351 0 0 218 /** * Applies the indicated transform matrix to all of the vertices from * begin_row up to but not including end_row. The transform is applied to all * "point" and "vector" type columns described in the format. */ 4 4 this 3 3446 3 mat 1 3423 9 begin_row 1 3182 7 end_row 1 3182 501 0 0 7 646 3446 2055 0 435 /** * Returns a new GeomVertexData object, suitable for modification, with the * indicated data type replaced with a new table filled with undefined values. * The new table will be added as a new array; if the old table was * interleaved with a previous array, the previous array will not be repacked. * * If num_components is 0, the indicated name is simply removed from the type, * without replacing it with anything else. */ 5 4 this 3 3373 4 name 1 3186 14 num_components 1 3182 12 numeric_type 1 3178 8 contents 1 3179 502 0 0 4 647 3351 0 0 10 /** * */ 2 4 this 3 3373 3 out 1 3352 503 0 0 4 648 3351 0 0 10 /** * */ 3 4 this 3 3373 3 out 1 3352 12 indent_level 1 3182 504 0 0 4 649 3351 0 0 90 /** * Writes a verbose, human-friendly description of the indicated vertex * number. */ 3 4 this 3 3373 3 out 1 3352 3 row 1 3182 505 0 0 4 650 3351 0 0 263 /** * Removes all of the previously-cached results of convert_to(). * * This blows away the entire cache, upstream and downstream the pipeline. * Use clear_cache_stage() instead if you only want to blow away the cache at * the current stage and upstream. */ 1 4 this 3 3446 506 0 0 4 651 3351 0 0 310 /** * Removes all of the previously-cached results of convert_to(), at the * current pipeline stage and upstream. Does not affect the downstream cache. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 1 4 this 3 3446 507 0 0 7 652 3367 0 0 0 0 508 0 0 7 577 3416 0 0 0 1 4 this 3 3446 509 0 0 6 579 3358 0 0 0 1 4 this 3 3446 510 0 0 7 655 3453 2112 0 0 1 6 param0 0 3451 511 0 0 7 655 3453 2112 0 47 /** * Create a new AnimateVerticesRequest. */ 1 16 geom_vertex_data 1 3446 512 0 0 6 656 3183 0 0 154 /** * Returns true if this request has completed, false if it is still pending. * Equivalent to `req.done() and not req.cancelled()`. * @see done() */ 1 4 this 3 3451 513 0 0 7 657 3367 0 0 0 0 514 0 0 7 661 3367 0 0 0 0 515 0 0 6 667 3214 0 0 271 /** * Returns the number of bytes previously reported for the data object. This * is used to track changes in the data object's allocated size; if it changes * from this, we need to create a new buffer. This is also used to track * memory utilization in PStats. */ 1 4 this 3 3454 516 0 0 7 668 3403 0 0 93 /** * Returns the UpdateSeq that was recorded the last time mark_loaded() was * called. */ 1 4 this 3 3454 517 0 0 6 669 3183 0 0 141 /** * Returns the active flag associated with this object. An object is * considered "active" if it was rendered in the current frame. */ 1 4 this 3 3454 518 0 0 6 670 3183 0 0 152 /** * Returns the resident flag associated with this object. An object is * considered "resident" if it appears to be resident in texture memory. */ 1 4 this 3 3454 519 0 0 7 678 3367 0 0 0 0 520 0 0 6 664 3457 0 0 0 1 4 this 3 3456 521 0 0 7 684 3458 2129 0 0 2 4 this 3 3458 4 copy 1 3459 522 0 0 4 686 3351 0 0 0 2 4 this 3 3458 4 size 1 3214 523 0 0 7 689 3458 2129 0 0 1 4 this 3 3459 524 0 0 6 690 3177 0 0 0 1 4 this 3 3459 525 0 0 6 691 3182 0 0 135 /** * Returns the set of GeomRendering bits that represent the rendering * properties required to properly render this primitive. */ 1 4 this 3 3459 526 0 0 6 694 3176 0 0 170 /** * Returns the ShadeModel hint for this primitive. This is intended as a hint * to the renderer to tell it how the per-vertex colors and normals are * applied. */ 1 4 this 3 3459 527 0 0 4 695 3351 0 0 512 /** * Changes the ShadeModel hint for this primitive. This is different from the * ShadeModelAttrib that might also be applied from the scene graph. This * does not affect the shade model that is in effect when rendering, but * rather serves as a hint to the renderer to tell it how the per-vertex * colors and normals on this primitive are applied. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 2 4 this 3 3458 11 shade_model 1 3176 528 0 0 6 697 3174 0 0 554 /** * Returns the usage hint for this primitive. See geomEnums.h. This has * nothing to do with the usage hint associated with the primitive's vertices; * this only specifies how often the vertex indices that define the primitive * will be modified. * * It is perfectly legal (and, in fact, common) for a GeomPrimitive to have * UH_static on itself, while referencing vertex data with UH_dynamic. This * means that the vertices themselves will be animated, but the primitive will * always reference the same set of vertices from the pool. */ 1 4 this 3 3459 529 0 0 4 698 3351 0 0 232 /** * Changes the UsageHint hint for this primitive. See get_usage_hint(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 2 4 this 3 3458 10 usage_hint 1 3174 530 0 0 6 700 3178 0 0 114 /** * Returns the numeric type of the index column. Normally, this will be * either NT_uint16 or NT_uint32. */ 1 4 this 3 3459 531 0 0 4 701 3351 0 0 556 /** * Changes the numeric type of the index column. Normally, this should be * either NT_uint16 or NT_uint32. * * The index type must be large enough to include all of the index values in * the primitive. It may be automatically elevated, if necessary, to a larger * index type, by a subsequent call to add_index() that names an index value * that does not fit in the index type you specify. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 2 4 this 3 3458 10 index_type 1 3178 532 0 0 6 703 3183 0 0 178 /** * Returns true if the primitive is a composite primitive such as a tristrip * or trifan, or false if it is a fundamental primitive such as a collection * of triangles. */ 1 4 this 3 3459 533 0 0 6 704 3183 0 0 379 /** * Returns true if the primitive is indexed, false otherwise. An indexed * primitive stores a table of index numbers into its GeomVertexData, so that * it can reference the vertices in any order. A nonindexed primitive, on the * other hand, stores only the first vertex number and number of vertices * used, so that it can only reference the vertices consecutively. */ 1 4 this 3 3459 534 0 0 6 705 3182 0 0 257 /** * Returns the first vertex number referenced by the primitive. This is * particularly important in the case of a nonindexed primitive, in which case * get_first_vertex() and get_num_vertices() completely define the extent of * the vertex range. */ 1 4 this 3 3459 535 0 0 6 706 3182 0 0 83 /** * Returns the number of indices used by all the primitives in this object. */ 1 4 this 3 3459 536 0 0 6 707 3182 0 0 53 /** * Returns the ith vertex index in the table. */ 2 4 this 3 3459 1 i 1 3182 537 0 0 4 709 3351 0 0 445 /** * Adds the indicated vertex to the list of vertex indices used by the * graphics primitive type. To define a primitive, you must call add_vertex() * for each vertex of the new primitive, and then call close_primitive() after * you have specified the last vertex of each primitive. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 2 4 this 3 3458 6 vertex 1 3182 538 0 0 4 710 3351 0 0 42 /** * Adds several vertices in a row. */ 3 4 this 3 3458 2 v1 1 3182 2 v2 1 3182 539 0 0 4 710 3351 0 0 42 /** * Adds several vertices in a row. */ 4 4 this 3 3458 2 v1 1 3182 2 v2 1 3182 2 v3 1 3182 540 0 0 4 710 3351 0 0 42 /** * Adds several vertices in a row. */ 5 4 this 3 3458 2 v1 1 3182 2 v2 1 3182 2 v3 1 3182 2 v4 1 3182 541 0 0 4 711 3351 0 0 244 /** * Adds a consecutive sequence of vertices, beginning at start, to the * primitive. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 3 4 this 3 3458 5 start 1 3182 12 num_vertices 1 3182 542 0 0 4 712 3351 0 0 327 /** * Adds the next n vertices in sequence, beginning from the last vertex added * to the primitive + 1. * * This is most useful when you are building up a primitive and a * GeomVertexData at the same time, and you just want the primitive to * reference the first n vertices from the data, then the next n, and so on. */ 2 4 this 3 3458 12 num_vertices 1 3182 543 0 0 4 713 3351 0 0 813 /** * This ensures that enough memory space for n vertices is allocated, so that * you may increase the number of vertices to n without causing a new memory * allocation. This is a performance optimization only; it is especially * useful when you know ahead of time that you will be adding n vertices to * the primitive. * * Note that the total you specify here should also include implicit vertices * which may be added at each close_primitive() call, according to * get_num_unused_vertices_per_primitive(). * * Note also that making this call will implicitly make the primitive indexed * if it is not already, which could result in a performance *penalty*. If * you would prefer not to lose the nonindexed nature of your existing * GeomPrimitives, check is_indexed() before making this call. */ 2 4 this 3 3458 12 num_vertices 1 3182 544 0 0 6 714 3183 0 0 345 /** * Indicates that the previous n calls to add_vertex(), since the last call to * close_primitive(), have fully defined a new primitive. Returns true if * successful, false otherwise. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 1 4 this 3 3458 545 0 0 4 715 3351 0 0 250 /** * Removes all of the vertices and primitives from the object, so they can be * re-added. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 1 4 this 3 3458 546 0 0 4 716 3351 0 0 227 /** * Adds the indicated offset to all vertices used by the primitive. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 2 4 this 3 3458 6 offset 1 3182 547 0 0 4 716 3351 0 0 353 /** * Adds the indicated offset to the indicated segment of vertices used by the * primitive. Unlike the other version of offset_vertices, this makes the * geometry indexed if it isn't already. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 4 4 this 3 3458 6 offset 1 3182 9 begin_row 1 3182 7 end_row 1 3182 548 0 0 4 717 3351 0 0 202 /** * Converts the primitive from indexed to nonindexed by duplicating vertices * as necessary into the indicated dest GeomVertexData. Note: does not * support primitives with strip cut indices. */ 3 4 this 3 3458 4 dest 1 3446 6 source 1 3373 549 0 0 4 718 3351 0 0 135 /** * Packs the vertices used by the primitive from the indicated source array * onto the end of the indicated destination array. */ 3 4 this 3 3458 4 dest 1 3446 6 source 1 3373 550 0 0 4 719 3351 0 0 466 /** * Converts the primitive from nonindexed form to indexed form. This will * simply create an index table that is numbered consecutively from * get_first_vertex(); it does not automatically collapse together identical * vertices that may have been split apart by a previous call to * make_nonindexed(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 1 4 this 3 3458 551 0 0 6 720 3182 0 0 119 /** * Returns the number of individual primitives stored within this object. All * primitives are the same type. */ 1 4 this 3 3459 552 0 0 6 721 3182 0 0 457 /** * Returns the element within the _vertices list at which the nth primitive * starts. * * If i is one more than the highest valid primitive vertex, the return value * will be one more than the last valid vertex. Thus, it is generally true * that the vertices used by a particular primitive i are the set * get_primitive_start(n) <= vi < get_primitive_start(n + 1) (although this * range also includes the unused vertices between primitives). */ 2 4 this 3 3459 1 n 1 3182 553 0 0 6 722 3182 0 0 156 /** * Returns the element within the _vertices list at which the nth primitive * ends. This is one past the last valid element for the nth primitive. */ 2 4 this 3 3459 1 n 1 3182 554 0 0 6 723 3182 0 0 145 /** * Returns the number of vertices used by the nth primitive. This is the same * thing as get_primitive_end(n) - get_primitive_start(n). */ 2 4 this 3 3459 1 n 1 3182 555 0 0 6 724 3182 0 0 278 /** * Returns the number of vertices used by all of the primitives. This is the * same as summing get_primitive_num_vertices(n) for n in * get_num_primitives(). It is like get_num_vertices except that it excludes * all of the degenerate vertices and strip-cut indices. */ 1 4 this 3 3459 556 0 0 6 725 3182 0 0 145 /** * Returns the number of triangles or other fundamental type (such as line * segments) represented by all the primitives in this object. */ 1 4 this 3 3459 557 0 0 6 726 3182 0 0 144 /** * Returns the number of triangles or other fundamental type (such as line * segments) represented by the nth primitive in this object. */ 2 4 this 3 3459 1 n 1 3182 558 0 0 6 727 3182 0 0 96 /** * Returns the minimum vertex index number used by all the primitives in this * object. */ 1 4 this 3 3459 559 0 0 6 728 3182 0 0 95 /** * Returns the minimum vertex index number used by the nth primitive in this * object. */ 2 4 this 3 3459 1 n 1 3182 560 0 0 6 729 3182 0 0 96 /** * Returns the maximum vertex index number used by all the primitives in this * object. */ 1 4 this 3 3459 561 0 0 6 730 3182 0 0 95 /** * Returns the maximum vertex index number used by the nth primitive in this * object. */ 2 4 this 3 3459 1 n 1 3182 562 0 0 7 731 3459 0 0 464 /** * Decomposes a complex primitive type into a simpler primitive type, for * instance triangle strips to triangles, and returns a pointer to the new * primitive definition. If the decomposition cannot be performed, this might * return the original object. * * This method is useful for application code that wants to iterate through * the set of triangles on the primitive without having to write handlers for * each possible kind of primitive type. */ 1 4 this 3 3459 563 0 0 7 732 3459 0 0 408 /** * Returns a new primitive with the shade_model reversed (if it is flat * shaded), if possible. If the primitive type cannot be rotated, returns the * original primitive, unrotated. * * If the current shade_model indicates flat_vertex_last, this should bring * the last vertex to the first position; if it indicates flat_vertex_first, * this should bring the first vertex to the last position. */ 1 4 this 3 3459 564 0 0 7 733 3459 0 0 493 /** * Duplicates triangles in the primitive so that each triangle is back-to-back * with another triangle facing in the opposite direction. Note that this * doesn't affect vertex normals, so this operation alone won't work in the * presence of lighting (but see SceneGraphReducer::doubleside()). * * Also see CullFaceAttrib, which can enable rendering of both sides of a * triangle without having to duplicate it (but which doesn't necessarily work * in the presence of lighting). */ 1 4 this 3 3459 565 0 0 7 734 3459 0 0 477 /** * Reverses the winding order in the primitive so that each triangle is facing * in the opposite direction it was originally. Note that this doesn't affect * vertex normals, so this operation alone won't work in the presence of * lighting (but see SceneGraphReducer::reverse()). * * Also see CullFaceAttrib, which can change the visible direction of a * triangle without having to duplicate it (but which doesn't necessarily work * in the presence of lighting). */ 1 4 this 3 3459 566 0 0 7 735 3459 0 0 346 /** * Returns a new primitive that is compatible with the indicated shade model, * if possible, or NULL if this is not possible. * * In most cases, this will return either NULL or the original primitive. In * the case of a SM_flat_first_vertex vs. a SM_flat_last_vertex (or vice- * versa), however, it will return a rotated primitive. */ 2 4 this 3 3459 11 shade_model 1 3176 567 0 0 7 736 3459 0 0 245 /** * Returns a new GeomPoints primitive that represents each of the vertices in * the original primitive, rendered exactly once. If the original primitive * is already a GeomPoints primitive, returns the original primitive * unchanged. */ 1 4 this 3 3459 568 0 0 7 737 3459 0 0 233 /** * Returns a new GeomLines primitive that represents each of the edges in the * original primitive rendered as a line. If the original primitive is * already a GeomLines primitive, returns the original primitive unchanged. */ 1 4 this 3 3459 569 0 0 7 738 3459 0 0 418 /** * Decomposes a complex primitive type into a simpler primitive type, for * instance triangle strips to triangles, puts these in a new GeomPatches * object and returns a pointer to the new primitive definition. If the * decomposition cannot be performed, this might return the original object. * * This method is useful for application code that wants to use tesselation * shaders on arbitrary geometry. */ 1 4 this 3 3459 570 0 0 7 739 3459 0 0 161 /** * Adds adjacency information to this primitive. May return null if this type * of geometry does not support adjacency information. * * @since 1.10.0 */ 1 4 this 3 3459 571 0 0 6 740 3182 0 0 91 /** * Returns the number of bytes consumed by the primitive and its index * table(s). */ 1 4 this 3 3459 572 0 0 6 741 3182 0 0 68 /** * Returns the number of bytes stored in the vertices array. */ 1 4 this 3 3459 573 0 0 7 742 3403 0 0 125 /** * Returns a sequence number which is guaranteed to change at least every time * the vertex index array is modified. */ 1 4 this 3 3459 574 0 0 6 746 3183 0 0 186 /** * Returns true if the primitive data is currently resident in memory. If * this returns false, the primitive data will be brought back into memory * shortly; try again later. */ 2 4 this 3 3459 14 current_thread 1 3404 575 0 0 6 747 3183 0 0 195 /** * Verifies that the primitive only references vertices that actually exist * within the indicated GeomVertexData. Returns true if the primitive appears * to be valid, false otherwise. */ 2 4 this 3 3459 11 vertex_data 1 3373 576 0 0 6 747 3183 0 0 10 /** * */ 2 4 this 3 3459 11 data_reader 1 3461 577 0 0 4 748 3351 0 0 10 /** * */ 2 4 this 3 3459 3 out 1 3352 578 0 0 4 749 3351 0 0 10 /** * */ 3 4 this 3 3459 3 out 1 3352 12 indent_level 1 3182 579 0 0 7 750 3370 0 0 479 /** * Returns a const pointer to the vertex index array so application code can * read it directly. This might return NULL if the primitive is nonindexed. * Do not attempt to modify the returned array; use modify_vertices() or * set_vertices() for this. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 1 4 this 3 3459 580 0 0 7 751 3407 0 0 53 /** * Equivalent to get_vertices().get_handle(). */ 2 4 this 3 3459 14 current_thread 1 3404 581 0 0 7 752 3218 1897 0 869 /** * Returns a modifiable pointer to the vertex index list, so application code * can directly fiddle with this data. Use with caution, since there are no * checks that the data will be left in a stable state. * * If this is called on a nonindexed primitive, it will implicitly be * converted to an indexed primitive. * * If num_vertices is not -1, it specifies an artificial limit to the number * of vertices in the array. Otherwise, all of the vertices in the array will * be used. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 2 4 this 3 3458 12 num_vertices 1 3182 582 0 0 7 753 3408 1934 0 56 /** * Equivalent to modify_vertices().get_handle(). */ 2 4 this 3 3458 14 current_thread 1 3404 583 0 0 4 754 3351 0 0 711 /** * Completely replaces the vertex index list with a new table. Chances are * good that you should also replace the ends list with set_ends() at the same * time. * * If num_vertices is not -1, it specifies an artificial limit to the number * of vertices in the array. Otherwise, all of the vertices in the array will * be used. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 3 4 this 3 3458 8 vertices 1 3370 12 num_vertices 1 3182 584 0 0 4 755 3351 0 0 465 /** * Sets the primitive up as a nonindexed primitive, using the indicated vertex * range. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 3 4 this 3 3458 12 first_vertex 1 3182 12 num_vertices 1 3182 585 0 0 6 756 3182 0 0 334 /** * A convenience function to return the gap between successive index numbers, * in bytes, of the index data. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 1 4 this 3 3459 586 0 0 6 757 3182 0 0 189 /** * If relevant, returns the index value that may be used in some cases to * signify the end of a primitive. This is typically the highest value that * the numeric type can store. */ 1 4 this 3 3459 587 0 0 7 760 3466 0 0 580 /** * Returns a const pointer to the primitive ends array so application code can * read it directly. Do not attempt to modify the returned array; use * modify_ends() or set_ends() for this. * * Note that simple primitive types, like triangles, do not have a ends array: * since all the primitives have the same number of vertices, it is not * needed. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 1 4 this 3 3459 588 0 0 7 761 3469 0 0 755 /** * Returns a modifiable pointer to the primitive ends array, so application * code can directly fiddle with this data. Use with caution, since there are * no checks that the data will be left in a stable state. * * Note that simple primitive types, like triangles, do not have a ends array: * since all the primitives have the same number of vertices, it is not * needed. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 1 4 this 3 3458 589 0 0 4 762 3351 0 0 716 /** * Completely replaces the primitive ends array with a new table. Chances are * good that you should also replace the vertices list with set_vertices() at * the same time. * * Note that simple primitive types, like triangles, do not have a ends array: * since all the primitives have the same number of vertices, it is not * needed. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 2 4 this 3 3458 4 ends 1 3469 590 0 0 7 763 3370 0 0 482 /** * Returns a const pointer to the primitive mins array so application code can * read it directly. Do not attempt to modify the returned array; use * set_minmax() for this. * * Note that simple primitive types, like triangles, do not have a mins array. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 1 4 this 3 3459 591 0 0 7 764 3370 0 0 473 /** * Returns a const pointer to the primitive maxs array so application code can * read it directly. Do not attempt to modify the returned array; use * set_minmax(). * * Note that simple primitive types, like triangles, do not have a maxs array. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 1 4 this 3 3459 592 0 0 4 767 3351 0 0 687 /** * Explicitly specifies the minimum and maximum vertices, as well as the lists * of per-component min and max. * * Use this method with extreme caution. It's generally better to let the * GeomPrimitive compute these explicitly, unless for some reason you can do * it faster and you absolutely need the speed improvement. * * Note that any modification to the vertex array will normally cause this to * be recomputed, unless you set it immediately again. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 5 4 this 3 3458 10 min_vertex 1 3182 10 max_vertex 1 3182 4 mins 1 3218 4 maxs 1 3218 593 0 0 4 768 3351 0 0 339 /** * Undoes a previous call to set_minmax(), and allows the minimum and maximum * values to be recomputed normally. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 1 4 this 3 3458 594 0 0 6 769 3182 0 0 558 /** * If the primitive type is a simple type in which all primitives have the * same number of vertices, like triangles, returns the number of vertices per * primitive. If the primitive type is a more complex type in which different * primitives might have different numbers of vertices, for instance a * triangle strip, returns 0. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 1 4 this 3 3459 595 0 0 6 770 3182 0 0 336 /** * Returns the minimum number of vertices that must be added before * close_primitive() may legally be called. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 1 4 this 3 3459 596 0 0 6 771 3182 0 0 479 /** * Returns the number of vertices that are added between primitives that * aren't, strictly speaking, part of the primitives themselves. This is * used, for instance, to define degenerate triangles to connect otherwise * disconnected triangle strips. * * This method is intended for low-level usage only. There are higher-level * methods for more common usage. We recommend you do not use this method * directly. If you do, be sure you know what you are doing! */ 1 4 this 3 3459 597 0 0 7 775 3367 0 0 0 0 598 0 0 7 680 3416 0 0 0 1 4 this 3 3458 599 0 0 6 682 3358 0 0 0 1 4 this 3 3458 600 0 0 7 777 3256 0 0 50 /** * Initialize the texture stage from other */ 1 4 copy 1 3470 601 0 0 7 777 3256 0 0 55 /** * Initialize the texture stage at construction */ 1 4 name 1 3347 602 0 0 7 778 3256 0 0 0 2 4 this 3 3256 4 copy 1 3470 603 0 0 4 783 3351 0 0 49 /** * Changes the name of this texture stage */ 2 4 this 3 3256 4 name 1 3347 604 0 0 6 784 3347 0 0 49 /** * Returns the name of this texture stage */ 1 4 this 3 3470 605 0 0 4 785 3351 0 0 439 /** * Changes the order in which the texture associated with this stage is * rendered relative to the other texture stages. When geometry is rendered * with multiple textures, the textures are rendered in order from the lowest * sort number to the highest sort number. * * Also see set_priority(), which is used to select the most important * textures for rendering when some must be omitted because of hardware * limitations. */ 2 4 this 3 3256 4 sort 1 3182 606 0 0 6 786 3182 0 0 56 /** * Returns the sort order of this texture stage. */ 1 4 this 3 3470 607 0 0 4 787 3351 0 0 555 /** * Changes the relative importance of the texture associated with this stage * relative to the other texture stages that are applied simultaneously. * * This is unrelated to set_sort(), which controls the order in which multiple * textures are applied. The priority number is used to decide which of the * requested textures are to be selected for rendering when more textures are * requested than the hardware will support. The highest-priority n textures * are selected for rendering, and then rendered in order by their sort * factor. */ 2 4 this 3 3256 8 priority 1 3182 608 0 0 6 788 3182 0 0 163 /** * Returns the priority associated with this stage. * * This is specially helpful for cards that do not support more than n stages * of multi-texturing. */ 1 4 this 3 3470 609 0 0 4 789 3351 0 0 161 /** * Indicate which set of UV's this texture stage will use. Geometry may have * any number of associated UV sets, each of which must have a unique name. */ 2 4 this 3 3256 4 name 1 3186 610 0 0 4 789 3351 0 0 161 /** * Indicate which set of UV's this texture stage will use. Geometry may have * any number of associated UV sets, each of which must have a unique name. */ 2 4 this 3 3256 13 texcoord_name 1 3347 611 0 0 7 790 3186 0 0 79 /** * See set_texcoord_name. The default is InternalName::get_texcoord(). */ 1 4 this 3 3470 612 0 0 7 791 3186 0 0 153 /** * Returns the set of tangents this texture stage will use. This is the same * as get_texcoord_name(), except that the first part is "tangent". */ 1 4 this 3 3470 613 0 0 7 792 3186 0 0 155 /** * Returns the set of binormals this texture stage will use. This is the same * as get_binormal_name(), except that the first part is "binormal". */ 1 4 this 3 3470 614 0 0 4 793 3351 0 0 45 /** * Set the mode of this texture stage */ 2 4 this 3 3256 4 mode 1 3249 615 0 0 6 794 3249 0 0 40 /** * Return the mode of this stage */ 1 4 this 3 3470 616 0 0 6 795 3183 0 0 168 /** * Returns true if the TextureStage is relevant to the classic fixed function * pipeline. This excludes texture stages such as normal mapping and the * like. */ 1 4 this 3 3470 617 0 0 4 796 3351 0 0 39 /** * Set the color for this stage */ 2 4 this 3 3256 5 color 1 3450 618 0 0 7 797 3472 0 0 42 /** * return the color for this stage */ 1 4 this 3 3470 619 0 0 4 798 3351 0 0 215 /** * Sets an additional factor that will scale all three r, g, b components * after the texture has been applied. This is used only when the mode is * CM_combine. * * The only legal values are 1, 2, or 4. */ 2 4 this 3 3256 9 rgb_scale 1 3182 620 0 0 6 799 3182 0 0 31 /** * See set_rgb_scale(). */ 1 4 this 3 3470 621 0 0 4 800 3351 0 0 203 /** * Sets an additional factor that will scale the alpha component after the * texture has been applied. This is used only when the mode is CM_combine. * * The only legal values are 1, 2, or 4. */ 2 4 this 3 3256 11 alpha_scale 1 3182 622 0 0 6 801 3182 0 0 33 /** * See set_alpha_scale(). */ 1 4 this 3 3470 623 0 0 4 802 3351 0 0 471 /** * Sets the saved_result flag. When this is true, the output of this stage * will be supplied as the "last_saved_result" source for any future stages, * until the next TextureStage with a saved_result set true is encountered. * * This can be used to reuse the results of this texture stage as input to * more than one stage later in the pipeline. * * The last texture in the pipeline (the one with the highest sort value) * should not have this flag set. */ 2 4 this 3 3256 12 saved_result 1 3183 624 0 0 6 803 3183 0 0 92 /** * Returns the current setting of the saved_result flag. See * set_saved_result(). */ 1 4 this 3 3470 625 0 0 4 804 3351 0 0 342 /** * Sets the tex_view_offset value. This is used only when a special multiview * texture is bound to the TextureStage, and it selects the particular view of * the texture that is to be used. * * This value is added to the similar parameter on DisplayRegion to derive the * final texture view index that is selected for rendering. */ 2 4 this 3 3256 15 tex_view_offset 1 3182 626 0 0 6 805 3182 0 0 93 /** * Returns the current setting of the tex_view_offset. See * set_tex_view_offset(). */ 1 4 this 3 3470 627 0 0 4 806 3351 0 0 135 /** * Specifies any of the CombineMode values that represent a one-parameter * operation. Specifically, this is CM_replace only. */ 4 4 this 3 3256 4 mode 1 3250 7 source0 1 3251 8 operand0 1 3252 628 0 0 4 806 3351 0 0 174 /** * Specifies any of the CombineMode values that represent a two-parameter * operation. Specifically, this is everything except for CM_replace and * CM_interpolate. */ 6 4 this 3 3256 4 mode 1 3250 7 source0 1 3251 8 operand0 1 3252 7 source1 1 3251 8 operand1 1 3252 629 0 0 4 806 3351 0 0 139 /** * Specifies any of the CombineMode values that represent a one-parameter * operation. Specifically, this is CM_interpolate only. */ 8 4 this 3 3256 4 mode 1 3250 7 source0 1 3251 8 operand0 1 3252 7 source1 1 3251 8 operand1 1 3252 7 source2 1 3251 8 operand2 1 3252 630 0 0 6 807 3250 0 0 35 /** * Get the combine_rgb_mode */ 1 4 this 3 3470 631 0 0 6 808 3182 0 0 139 /** * Returns the number of meaningful operands that may be retrieved via * get_combine_rgb_sourceN() and get_combine_rgb_operandN(). */ 1 4 this 3 3470 632 0 0 6 809 3251 0 0 42 /** * Get source0 of combine_rgb_mode */ 1 4 this 3 3470 633 0 0 6 810 3252 0 0 43 /** * Get operand0 of combine_rgb_mode */ 1 4 this 3 3470 634 0 0 6 811 3251 0 0 42 /** * Get source1 of combine_rgb_mode */ 1 4 this 3 3470 635 0 0 6 812 3252 0 0 43 /** * Get operand1 of combine_rgb_mode */ 1 4 this 3 3470 636 0 0 6 813 3251 0 0 42 /** * Get source2 of combine_rgb_mode */ 1 4 this 3 3470 637 0 0 6 814 3252 0 0 43 /** * Get operand2 of combine_rgb_mode */ 1 4 this 3 3470 638 0 0 4 815 3351 0 0 135 /** * Specifies any of the CombineMode values that represent a one-parameter * operation. Specifically, this is CM_replace only. */ 4 4 this 3 3256 4 mode 1 3250 7 source0 1 3251 8 operand0 1 3252 639 0 0 4 815 3351 0 0 174 /** * Specifies any of the CombineMode values that represent a two-parameter * operation. Specifically, this is everything except for CM_replace and * CM_interpolate. */ 6 4 this 3 3256 4 mode 1 3250 7 source0 1 3251 8 operand0 1 3252 7 source1 1 3251 8 operand1 1 3252 640 0 0 4 815 3351 0 0 139 /** * Specifies any of the CombineMode values that represent a one-parameter * operation. Specifically, this is CM_interpolate only. */ 8 4 this 3 3256 4 mode 1 3250 7 source0 1 3251 8 operand0 1 3252 7 source1 1 3251 8 operand1 1 3252 7 source2 1 3251 8 operand2 1 3252 641 0 0 6 816 3250 0 0 33 /** * Get combine_alpha_mode */ 1 4 this 3 3470 642 0 0 6 817 3182 0 0 143 /** * Returns the number of meaningful operands that may be retrieved via * get_combine_alpha_sourceN() and get_combine_alpha_operandN(). */ 1 4 this 3 3470 643 0 0 6 818 3251 0 0 44 /** * Get source0 of combine_alpha_mode */ 1 4 this 3 3470 644 0 0 6 819 3252 0 0 45 /** * Get operand0 of combine_alpha_mode */ 1 4 this 3 3470 645 0 0 6 820 3251 0 0 44 /** * Get source1 of combine_alpha_mode */ 1 4 this 3 3470 646 0 0 6 821 3252 0 0 45 /** * Get operand1 of combine_alpha_mode */ 1 4 this 3 3470 647 0 0 6 822 3251 0 0 44 /** * Get source2 of combine_alpha_mode */ 1 4 this 3 3470 648 0 0 6 823 3252 0 0 45 /** * Get operand2 of combine_alpha_mode */ 1 4 this 3 3470 649 0 0 6 824 3183 0 0 123 /** * Returns true if the TextureStage is affected by the setting of the current * ColorScaleAttrib, false otherwise. */ 1 4 this 3 3470 650 0 0 6 825 3183 0 0 120 /** * Returns true if the TextureStage makes use of whatever color is specified * in set_color(), false otherwise. */ 1 4 this 3 3470 651 0 0 6 826 3183 0 0 96 /** * Returns true if the TextureStage makes use of the CS_primary_color combine * source. */ 1 4 this 3 3470 652 0 0 6 827 3183 0 0 96 /** * Returns true if the TextureStage makes use of the CS_primary_color combine * source. */ 1 4 this 3 3470 653 0 0 6 828 3183 0 0 0 2 4 this 3 3470 5 other 1 3470 654 0 0 6 829 3183 0 0 0 2 4 this 3 3470 5 other 1 3470 655 0 0 6 830 3183 0 0 0 2 4 this 3 3470 5 other 1 3470 656 0 0 6 831 3182 0 0 267 /** * Returns a number less than zero if this TextureStage sorts before the other * one, greater than zero if it sorts after, or zero if they are equivalent. * The sorting order is arbitrary and largely meaningless, except to * differentiate different stages. */ 2 4 this 3 3470 5 other 1 3470 657 0 0 4 832 3351 0 0 43 /** * Writes the details of this stage */ 2 4 this 3 3470 3 out 1 3352 658 0 0 4 833 3351 0 0 36 /** * Just a single line output */ 2 4 this 3 3470 3 out 1 3352 659 0 0 7 834 3256 0 0 180 /** * Returns the default TextureStage that will be used for all texturing that * does not name a particular stage. This generally handles the normal * single-texture case. */ 0 660 0 0 7 852 3367 0 0 0 0 661 0 0 7 858 3262 2265 0 10 /** * */ 1 4 data 1 3373 662 0 0 7 859 3262 2265 0 0 2 4 this 3 3262 4 copy 1 3473 663 0 0 4 861 3351 0 0 0 2 4 this 3 3262 4 size 1 3214 664 0 0 7 864 3262 2265 0 200 /** * Returns a newly-allocated Geom that is a shallow copy of this one. It will * be a different Geom pointer, but its internal data may or may not be shared * with that of the original Geom. */ 1 4 this 3 3473 665 0 0 6 865 3177 0 0 361 /** * Returns the fundamental primitive type that is common to all GeomPrimitives * added within the Geom. All nested primitives within a particular Geom must * be the same type (that is, you can mix triangles and tristrips, because * they are both the same fundamental type PT_polygons, but you cannot mix * triangles and points withn the same Geom). */ 1 4 this 3 3473 666 0 0 6 866 3176 0 0 118 /** * Returns the shade model common to all of the individual GeomPrimitives that * have been added to the geom. */ 1 4 this 3 3473 667 0 0 6 867 3182 0 0 130 /** * Returns the set of GeomRendering bits that represent the rendering * properties required to properly render this Geom. */ 1 4 this 3 3473 668 0 0 6 871 3174 0 0 189 /** * Returns the minimum (i.e. most dynamic) usage_hint among all of the * individual GeomPrimitives that have been added to the geom. * @deprecated This is no longer very useful. */ 1 4 this 3 3473 669 0 0 4 872 3351 0 0 273 /** * Changes the UsageHint hint for all of the primitives on this Geom to the * same value. See get_usage_hint(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 2 4 this 3 3262 10 usage_hint 1 3174 670 0 0 7 873 3373 0 0 146 /** * Returns a const pointer to the GeomVertexData, for application code to * directly examine (but not modify) the geom's underlying data. */ 2 4 this 3 3473 14 current_thread 1 3404 671 0 0 7 874 3446 2055 0 294 /** * Returns a modifiable pointer to the GeomVertexData, so that application * code may directly maniuplate the geom's underlying data. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 1 4 this 3 3262 672 0 0 4 875 3351 0 0 243 /** * Replaces the Geom's underlying vertex data table with a completely new * table. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 2 4 this 3 3262 4 data 1 3373 673 0 0 4 876 3351 0 0 501 /** * Replaces a Geom's vertex table with a new table, and simultaneously adds * the indicated offset to all vertex references within the Geom's primitives. * This is intended to be used to combine multiple GeomVertexDatas from * different Geoms into a single big buffer, with each Geom referencing a * subset of the vertices in the buffer. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 3 4 this 3 3262 4 data 1 3373 6 offset 1 3182 674 0 0 6 877 3182 0 0 414 /** * Converts the geom from indexed to nonindexed by duplicating vertices as * necessary. If composite_only is true, then only composite primitives such * as trifans and tristrips are converted. Returns the number of * GeomPrimitive objects converted. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 2 4 this 3 3262 14 composite_only 1 3183 675 0 0 7 878 3373 0 0 865 /** * Returns a GeomVertexData that represents the results of computing the * vertex animation on the CPU for this Geom's vertex data. * * If there is no CPU-defined vertex animation on this object, this just * returns the original object. * * If there is vertex animation, but the VertexTransform values have not * changed since last time, this may return the same pointer it returned * previously. Even if the VertexTransform values have changed, it may still * return the same pointer, but with its contents modified (this is preferred, * since it allows the graphics backend to update vertex buffers optimally). * * If force is false, this method may return immediately with stale data, if * the vertex data is not completely resident. If force is true, this method * will never return stale data, but may block until the data is available. */ 3 4 this 3 3473 5 force 1 3183 14 current_thread 1 3404 676 0 0 6 879 3183 0 0 120 /** * Returns true if there appear to be no vertices to be rendered by this Geom, * false if has some actual data. */ 1 4 this 3 3473 677 0 0 6 880 3214 0 0 151 /** * Returns the number of GeomPrimitive objects stored within the Geom, each of * which represents a number of primitives of a particular type. */ 1 4 this 3 3473 678 0 0 7 881 3459 0 0 211 /** * Returns a const pointer to the ith GeomPrimitive object stored within the * Geom. Use this call only to inspect the ith object; use modify_primitive() * or set_primitive() if you want to modify it. */ 2 4 this 3 3473 1 i 1 3214 679 0 0 7 883 3458 2129 0 331 /** * Returns a modifiable pointer to the ith GeomPrimitive object stored within * the Geom, so application code can directly manipulate the properties of * this primitive. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 2 4 this 3 3262 1 i 1 3214 680 0 0 4 884 3351 0 0 247 /** * Replaces the ith GeomPrimitive object stored within the Geom with the new * object. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 3 4 this 3 3262 1 i 1 3214 9 primitive 1 3459 681 0 0 4 885 3351 0 0 342 /** * Inserts a new GeomPrimitive structure to the Geom object. This specifies a * particular subset of vertices that are used to define geometric primitives * of the indicated type. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 3 4 this 3 3262 1 i 1 3214 9 primitive 1 3459 682 0 0 4 886 3351 0 0 342 /** * Inserts a new GeomPrimitive structure to the Geom object. This specifies a * particular subset of vertices that are used to define geometric primitives * of the indicated type. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 2 4 this 3 3262 9 primitive 1 3459 683 0 0 4 887 3351 0 0 203 /** * Removes the ith primitive from the list. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 2 4 this 3 3262 1 i 1 3214 684 0 0 4 888 3351 0 0 332 /** * Removes all the primitives from the Geom object (but keeps the same table * of vertices). You may then re-add primitives one at a time via calls to * add_primitive(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 1 4 this 3 3262 685 0 0 7 892 3262 2265 0 118 /** * Decomposes all of the primitives within this Geom, returning the result. * See GeomPrimitive::decompose(). */ 1 4 this 3 3473 686 0 0 7 893 3262 2265 0 120 /** * Doublesides all of the primitives within this Geom, returning the result. * See GeomPrimitive::doubleside(). */ 1 4 this 3 3473 687 0 0 7 894 3262 2265 0 115 /** * Reverses all of the primitives within this Geom, returning the result. See * GeomPrimitive::reverse(). */ 1 4 this 3 3473 688 0 0 7 895 3262 2265 0 113 /** * Rotates all of the primitives within this Geom, returning the result. See * GeomPrimitive::rotate(). */ 1 4 this 3 3473 689 0 0 7 896 3262 2265 0 541 /** * Unifies all of the primitives contained within this Geom into a single (or * as few as possible, within the constraints of max_indices) primitive * objects. This may require decomposing the primitives if, for instance, the * Geom contains both triangle strips and triangle fans. * * max_indices represents the maximum number of indices that will be put in * any one GeomPrimitive. If preserve_order is true, then the primitives will * not be reordered during the operation, even if this results in a suboptimal * result. */ 3 4 this 3 3473 11 max_indices 1 3182 14 preserve_order 1 3183 690 0 0 7 897 3262 2265 0 100 /** * Returns a new Geom with points at all the vertices. See * GeomPrimitive::make_points(). */ 1 4 this 3 3473 691 0 0 7 898 3262 2265 0 95 /** * Returns a new Geom with lines at all the edges. See * GeomPrimitive::make_lines(). */ 1 4 this 3 3473 692 0 0 7 899 3262 2265 0 102 /** * Returns a new Geom with each primitive converted into a patch. Calls * decompose() first. */ 1 4 this 3 3473 693 0 0 7 900 3262 2265 0 139 /** * Returns a new Geom with each primitive converted into a corresponding * version with adjacency information. * * @since 1.10.0 */ 1 4 this 3 3473 694 0 0 4 901 3351 0 0 279 /** * Decomposes all of the primitives within this Geom, leaving the results in * place. See GeomPrimitive::decompose(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 1 4 this 3 3262 695 0 0 4 902 3351 0 0 281 /** * Doublesides all of the primitives within this Geom, leaving the results in * place. See GeomPrimitive::doubleside(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 1 4 this 3 3262 696 0 0 4 903 3351 0 0 275 /** * Reverses all of the primitives within this Geom, leaving the results in * place. See GeomPrimitive::reverse(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 1 4 this 3 3262 697 0 0 4 904 3351 0 0 273 /** * Rotates all of the primitives within this Geom, leaving the results in * place. See GeomPrimitive::rotate(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 1 4 this 3 3262 698 0 0 4 905 3351 0 0 693 /** * Unifies all of the primitives contained within this Geom into a single (or * as few as possible, within the constraints of max_indices) primitive * objects. This may require decomposing the primitives if, for instance, the * Geom contains both triangle strips and triangle fans. * * max_indices represents the maximum number of indices that will be put in * any one GeomPrimitive. If preserve_order is true, then the primitives will * not be reordered during the operation, even if this results in a suboptimal * result. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 3 4 this 3 3262 11 max_indices 1 3182 14 preserve_order 1 3183 699 0 0 4 906 3351 0 0 275 /** * Replaces the GeomPrimitives within this Geom with corresponding GeomPoints. * See GeomPrimitive::make_points(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 1 4 this 3 3262 700 0 0 4 907 3351 0 0 321 /** * Replaces the GeomPrimitives within this Geom with corresponding GeomLines, * representing a wireframe of the primitives. See * GeomPrimitive::make_lines(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 1 4 this 3 3262 701 0 0 4 908 3351 0 0 278 /** * Replaces the GeomPrimitives within this Geom with corresponding * GeomPatches. See GeomPrimitive::make_patches(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 1 4 this 3 3262 702 0 0 4 909 3351 0 0 324 /** * Replaces the GeomPrimitives within this Geom with corresponding versions * with adjacency information. See GeomPrimitive::make_adjacency(). * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. * * @since 1.10.0 */ 1 4 this 3 3262 703 0 0 6 910 3183 0 0 451 /** * Copies the primitives from the indicated Geom into this one. This does * require that both Geoms contain the same fundamental type primitives, both * have a compatible shade model, and both use the same GeomVertexData. Both * Geoms must also be the same specific class type (i.e. if one is a * GeomTextGlyph, they both must be.) * * Returns true if the copy is successful, or false otherwise (because the * Geoms were mismatched). */ 2 4 this 3 3262 5 other 1 3473 704 0 0 6 911 3182 0 0 119 /** * Returns the number of bytes consumed by the geom and its primitives (but * not including its vertex table). */ 1 4 this 3 3473 705 0 0 7 912 3403 0 0 281 /** * Returns a sequence number which is guaranteed to change at least every time * any of the primitives in the Geom is modified, or the set of primitives is * modified. However, this does not include modifications to the vertex data, * which should be tested separately. */ 2 4 this 3 3473 14 current_thread 1 3404 706 0 0 6 915 3183 0 0 286 /** * Returns true if all the primitive arrays are currently resident in memory. * If this returns false, the data will be brought back into memory shortly; * try again later. * * This does not also test the Geom's associated GeomVertexData. That must be * tested separately. */ 1 4 this 3 3473 707 0 0 4 916 3351 0 0 477 /** * Applies the indicated transform to all of the vertices in the Geom. If the * Geom happens to share a vertex table with another Geom, this operation will * duplicate the vertex table instead of breaking the other Geom; however, if * multiple Geoms with shared tables are transformed by the same matrix, they * will no longer share tables after the operation. Consider using the * GeomTransformer if you will be applying the same transform to multiple * Geoms. */ 2 4 this 3 3262 3 mat 1 3423 708 0 0 6 917 3183 0 0 209 /** * Verifies that the all of the primitives within the geom reference vertices * that actually exist within the geom's GeomVertexData. Returns true if the * geom appears to be valid, false otherwise. */ 1 4 this 3 3473 709 0 0 6 917 3183 0 0 212 /** * Verifies that the all of the primitives within the geom reference vertices * that actually exist within the indicated GeomVertexData. Returns true if * the geom appears to be valid, false otherwise. */ 2 4 this 3 3473 11 vertex_data 1 3373 710 0 0 7 918 3476 0 0 52 /** * Returns the bounding volume for the Geom. */ 2 4 this 3 3473 14 current_thread 1 3404 711 0 0 6 919 3182 0 0 85 /** * Returns the number of vertices rendered by all primitives within the Geom. */ 2 4 this 3 3473 14 current_thread 1 3404 712 0 0 4 920 3351 0 0 147 /** * Marks the bounding volume of the Geom as stale so that it should be * recomputed. Usually it is not necessary to call this explicitly. */ 1 4 this 3 3473 713 0 0 4 921 3351 0 0 594 /** * Specifies the desired type of bounding volume that will be created for this * Geom. This is normally BoundingVolume::BT_default, which means to set the * type according to the config variable "bounds-type". * * If this is BT_sphere or BT_box, a BoundingSphere or BoundingBox is * explicitly created. If it is BT_best, a BoundingBox is created. * * This affects the implicit bounding volume only. If an explicit bounding * volume is set on the Geom with set_bounds(), that bounding volume type is * used. (This is different behavior from the similar method on PandaNode.) */ 2 4 this 3 3262 11 bounds_type 1 3259 714 0 0 6 922 3259 0 0 71 /** * Returns the bounding volume type set with set_bounds_type(). */ 1 4 this 3 3473 715 0 0 4 923 3351 0 0 417 /** * Resets the bounding volume so that it is the indicated volume. When it is * explicitly set, the bounding volume will no longer be automatically * computed; call clear_bounds() if you would like to return the bounding * volume to its default behavior. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 2 4 this 3 3262 6 volume 1 3476 716 0 0 4 924 3351 0 0 317 /** * Reverses the effect of a previous call to set_bounds(), and allows the * bounding volume to be automatically computed once more based on the * vertices. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 1 4 this 3 3262 717 0 0 4 928 3351 0 0 10 /** * */ 2 4 this 3 3473 3 out 1 3352 718 0 0 4 929 3351 0 0 10 /** * */ 3 4 this 3 3473 3 out 1 3352 12 indent_level 1 3182 719 0 0 4 930 3351 0 0 263 /** * Removes all of the previously-cached results of munge_geom(). * * This blows away the entire cache, upstream and downstream the pipeline. * Use clear_cache_stage() instead if you only want to blow away the cache at * the current stage and upstream. */ 1 4 this 3 3262 720 0 0 4 931 3351 0 0 310 /** * Removes all of the previously-cached results of munge_geom(), at the * current pipeline stage and upstream. Does not affect the downstream cache. * * Don't call this in a downstream thread unless you don't mind it blowing * away other changes you might have recently made in an upstream thread. */ 2 4 this 3 3262 14 current_thread 1 3404 721 0 0 4 932 3351 0 0 351 /** * Indicates that the geom should be enqueued to be prepared in the indicated * prepared_objects at the beginning of the next frame. This will ensure the * geom is already loaded into geom memory if it is expected to be rendered * soon. * * Use this function instead of prepare_now() to preload geoms from a user * interface standpoint. */ 2 4 this 3 3262 16 prepared_objects 1 3409 722 0 0 6 933 3183 0 0 131 /** * Returns true if the geom has already been prepared or enqueued for * preparation on the indicated GSG, false otherwise. */ 2 4 this 3 3473 16 prepared_objects 1 3409 723 0 0 6 934 3183 0 0 154 /** * Frees the geom context only on the indicated object, if it exists there. * Returns true if it was released, false if it had not been prepared. */ 2 4 this 3 3262 16 prepared_objects 1 3409 724 0 0 6 935 3182 0 0 149 /** * Frees the context allocated on all objects for which the geom has been * declared. Returns the number of contexts which have been freed. */ 1 4 this 3 3262 725 0 0 6 936 3477 0 0 519 /** * Creates a context for the geom on the particular GSG, if it does not * already exist. Returns the new (or old) GeomContext. This assumes that * the GraphicsStateGuardian is the currently active rendering context and * that it is ready to accept new geoms. If this is not necessarily the case, * you should use prepare() instead. * * Normally, this is not called directly except by the GraphicsStateGuardian; * a geom does not need to be explicitly prepared by the user before it may be * rendered. */ 3 4 this 3 3262 16 prepared_objects 1 3409 3 gsg 1 3410 726 0 0 7 937 3367 0 0 0 0 727 0 0 7 854 3416 0 0 0 1 4 this 3 3262 728 0 0 6 856 3358 0 0 0 1 4 this 3 3262 729 0 0 7 939 3262 2265 0 10 /** * */ 1 4 this 3 3478 730 0 0 7 942 3367 0 0 0 0 731 0 0 7 945 3480 2129 0 10 /** * */ 1 10 usage_hint 1 3174 732 0 0 7 945 3480 2129 0 10 /** * */ 1 4 copy 1 3481 733 0 0 4 946 3351 0 0 0 2 4 this 3 3480 4 size 1 3214 734 0 0 7 949 3367 0 0 0 0 735 0 0 7 951 3483 2129 0 10 /** * */ 1 10 usage_hint 1 3174 736 0 0 7 951 3483 2129 0 10 /** * */ 1 4 copy 1 3484 737 0 0 4 952 3351 0 0 0 2 4 this 3 3483 4 size 1 3214 738 0 0 7 955 3367 0 0 0 0 739 0 0 7 957 3486 2129 0 10 /** * */ 1 10 usage_hint 1 3174 740 0 0 7 957 3486 2129 0 10 /** * */ 1 4 copy 1 3487 741 0 0 4 958 3351 0 0 0 2 4 this 3 3486 4 size 1 3214 742 0 0 7 961 3367 0 0 0 0 743 0 0 7 963 3489 2129 0 10 /** * */ 1 10 usage_hint 1 3174 744 0 0 7 963 3489 2129 0 10 /** * */ 1 4 copy 1 3490 745 0 0 4 964 3351 0 0 0 2 4 this 3 3489 4 size 1 3214 746 0 0 7 967 3367 0 0 0 0 747 0 0 7 969 3494 2129 0 10 /** * */ 1 4 copy 1 3492 748 0 0 7 969 3494 2129 0 240 /** * The number of vertices per patch must be specified to the GeomPatches * constructor, and it may not be changed during the lifetime of the * GeomPatches object. Create a new GeomPatches if you need to have a * different value. */ 2 22 num_vertices_per_patch 1 3182 10 usage_hint 1 3174 749 0 0 4 970 3351 0 0 0 2 4 this 3 3494 4 size 1 3214 750 0 0 7 973 3367 0 0 0 0 751 0 0 7 975 3495 2129 0 10 /** * */ 1 10 usage_hint 1 3174 752 0 0 7 975 3495 2129 0 10 /** * */ 1 4 copy 1 3496 753 0 0 4 976 3351 0 0 0 2 4 this 3 3495 4 size 1 3214 754 0 0 7 979 3367 0 0 0 0 755 0 0 7 981 3498 2129 0 10 /** * */ 1 10 usage_hint 1 3174 756 0 0 7 981 3498 2129 0 10 /** * */ 1 4 copy 1 3499 757 0 0 4 982 3351 0 0 0 2 4 this 3 3498 4 size 1 3214 758 0 0 7 985 3367 0 0 0 0 759 0 0 7 987 3501 2129 0 10 /** * */ 1 10 usage_hint 1 3174 760 0 0 7 987 3501 2129 0 10 /** * */ 1 4 copy 1 3502 761 0 0 4 988 3351 0 0 0 2 4 this 3 3501 4 size 1 3214 762 0 0 7 991 3367 0 0 0 0 763 0 0 7 993 3504 2129 0 10 /** * */ 1 10 usage_hint 1 3174 764 0 0 7 993 3504 2129 0 10 /** * */ 1 4 copy 1 3505 765 0 0 4 994 3351 0 0 0 2 4 this 3 3504 4 size 1 3214 766 0 0 7 997 3367 0 0 0 0 767 0 0 7 999 3507 2129 0 10 /** * */ 1 10 usage_hint 1 3174 768 0 0 7 999 3507 2129 0 10 /** * */ 1 4 copy 1 3508 769 0 0 4 1000 3351 0 0 0 2 4 this 3 3507 4 size 1 3214 770 0 0 7 1003 3367 0 0 0 0 771 0 0 7 1005 3510 2129 0 10 /** * */ 1 10 usage_hint 1 3174 772 0 0 7 1005 3510 2129 0 10 /** * */ 1 4 copy 1 3511 773 0 0 4 1006 3351 0 0 0 2 4 this 3 3510 4 size 1 3214 774 0 0 7 1009 3367 0 0 0 0 775 0 0 7 1011 3513 2392 0 90 /** * Constructs a new reader to process the vertices of the indicated array * only. */ 2 10 array_data 1 3370 14 current_thread 1 3404 776 0 0 7 1011 3513 2392 0 90 /** * Constructs a new reader to process the vertices of the indicated array * only. */ 3 10 array_data 1 3370 6 column 1 3182 14 current_thread 1 3404 777 0 0 7 1011 3513 2392 0 171 /** * Constructs a new reader to process the vertices of the indicated data * object. This flavor creates the reader specifically to process the named * data type. */ 3 11 vertex_data 1 3373 4 name 1 3198 14 current_thread 1 3404 778 0 0 7 1011 3513 2392 0 91 /** * Constructs a new reader to process the vertices of the indicated data * object. */ 2 11 vertex_data 1 3373 14 current_thread 1 3404 779 0 0 7 1011 3513 2392 0 10 /** * */ 1 4 copy 1 3514 780 0 0 7 1011 3513 2392 0 167 /** * Constructs an invalid GeomVertexReader. You must use the assignment * operator to assign a valid GeomVertexReader to this object before you can * use it. */ 1 14 current_thread 1 3404 781 0 0 6 1012 3513 0 0 0 2 4 this 3 3513 4 copy 1 3514 782 0 0 7 1014 3373 0 0 155 /** * Returns the vertex data object that the reader is processing. This may * return NULL if the reader was constructed with just an array pointer. */ 1 4 this 3 3514 783 0 0 7 1015 3370 0 0 90 /** * Returns the particular array object that the reader is currently * processing. */ 1 4 this 3 3514 784 0 0 7 1016 3407 0 0 146 /** * Returns the read handle to the array object that the read is currently * processing. This low-level call should be used with caution. */ 1 4 this 3 3514 785 0 0 6 1017 3214 0 0 197 /** * Returns the per-row stride (bytes between consecutive rows) of the * underlying vertex array. This low-level information is normally not needed * to use the GeomVertexReader directly. */ 1 4 this 3 3514 786 0 0 7 1018 3404 0 0 120 /** * Returns the Thread pointer of the currently-executing thread, as passed to * the constructor of this object. */ 1 4 this 3 3514 787 0 0 4 1019 3351 0 0 563 /** * Sets the value of the force flag. When this is true (the default), vertex * data will be paged in from disk if necessary. When this is false, the * GeomVertexData will simply return a failure code when attempting to read * vertex data that is not resident (but will put it on the queue to become * resident later). * * Normally, vertex data is always resident, so this will not be an issue. It * is only possible for vertex data to be nonresident if you have enabled * vertex paging via the GeomVertexArrayData and VertexDataPage interfaces. */ 2 4 this 3 3513 5 force 1 3183 788 0 0 6 1020 3183 0 0 65 /** * Returns the value of the force flag. See set_force(). */ 1 4 this 3 3514 789 0 0 6 1021 3183 0 0 309 /** * Sets up the reader to use the data type with the indicated name. * * This also resets the read row number to the start row (the same value * passed to a previous call to set_row(), or 0 if set_row() was never * called.) * * The return value is true if the data type is valid, false otherwise. */ 2 4 this 3 3513 4 name 1 3198 790 0 0 6 1021 3183 0 0 334 /** * Sets up the reader to use the nth data type of the GeomVertexFormat, * numbering from 0. * * This also resets the read row number to the start row (the same value * passed to a previous call to set_row(), or 0 if set_row() was never * called.) * * The return value is true if the data type is valid, false otherwise. */ 2 4 this 3 3513 6 column 1 3182 791 0 0 6 1021 3183 0 0 334 /** * Sets up the reader to use the indicated column description on the given * array. * * This also resets the current read row number to the start row (the same * value passed to a previous call to set_row(), or 0 if set_row() was never * called.) * * The return value is true if the data type is valid, false otherwise. */ 3 4 this 3 3513 5 array 1 3182 6 column 1 3192 792 0 0 4 1022 3351 0 0 60 /** * Resets the GeomVertexReader to the initial state. */ 1 4 this 3 3513 793 0 0 6 1023 3183 0 0 183 /** * Returns true if a valid data type has been successfully set, or false if * the data type does not exist (or if get_force() is false and the vertex * data is nonresident). */ 1 4 this 3 3514 794 0 0 6 1024 3182 0 0 93 /** * Returns the array index containing the data type that the reader is working * on. */ 1 4 this 3 3514 795 0 0 6 1025 3192 0 0 82 /** * Returns the description of the data type that the reader is working on. */ 1 4 this 3 3514 796 0 0 4 1026 3351 0 0 344 /** * Sets the start row to the indicated value, without internal checks. This * is the same as set_row(), but it does not check for the possibility that * the array has been reallocated internally for some reason; use only when * you are confident that the array is unchanged and you really need every bit * of available performance. */ 2 4 this 3 3513 3 row 1 3182 797 0 0 4 1027 3351 0 0 260 /** * Sets the start row to the indicated value. The reader will begin reading * from the indicated row; each subsequent get_data*() call will return the * data from the subsequent row. If set_column() is called, the reader will * return to this row. */ 2 4 this 3 3513 3 row 1 3182 798 0 0 6 1028 3182 0 0 125 /** * Returns the row index at which the reader started. It will return to this * row if you reset the current column. */ 1 4 this 3 3514 799 0 0 6 1029 3182 0 0 106 /** * Returns the row index from which the data will be retrieved by the next * call to get_data*(). */ 1 4 this 3 3514 800 0 0 6 1030 3183 0 0 179 /** * Returns true if the reader is currently at the end of the list of vertices, * false otherwise. If this is true, another call to get_data*() will result * in a crash. */ 1 4 this 3 3514 801 0 0 6 1031 3226 0 0 121 /** * Returns the data associated with the read row, expressed as a 1-component * value, and advances the read row. */ 1 4 this 3 3513 802 0 0 6 1032 3516 0 0 121 /** * Returns the data associated with the read row, expressed as a 2-component * value, and advances the read row. */ 1 4 this 3 3513 803 0 0 6 1033 3518 0 0 121 /** * Returns the data associated with the read row, expressed as a 3-component * value, and advances the read row. */ 1 4 this 3 3513 804 0 0 6 1034 3520 0 0 121 /** * Returns the data associated with the read row, expressed as a 4-component * value, and advances the read row. */ 1 4 this 3 3513 805 0 0 7 1035 3523 0 0 210 /** * Returns the 3-by-3 matrix associated with the read row and advances the * read row. This is a special method that only works when the column in * question contains a matrix of an appropriate size. */ 1 4 this 3 3513 806 0 0 7 1036 3524 0 0 210 /** * Returns the 4-by-4 matrix associated with the read row and advances the * read row. This is a special method that only works when the column in * question contains a matrix of an appropriate size. */ 1 4 this 3 3513 807 0 0 6 1037 3525 0 0 121 /** * Returns the data associated with the read row, expressed as a 1-component * value, and advances the read row. */ 1 4 this 3 3513 808 0 0 6 1038 3526 0 0 121 /** * Returns the data associated with the read row, expressed as a 2-component * value, and advances the read row. */ 1 4 this 3 3513 809 0 0 6 1039 3529 0 0 121 /** * Returns the data associated with the read row, expressed as a 3-component * value, and advances the read row. */ 1 4 this 3 3513 810 0 0 6 1040 3532 0 0 121 /** * Returns the data associated with the read row, expressed as a 4-component * value, and advances the read row. */ 1 4 this 3 3513 811 0 0 7 1041 3536 0 0 210 /** * Returns the 3-by-3 matrix associated with the read row and advances the * read row. This is a special method that only works when the column in * question contains a matrix of an appropriate size. */ 1 4 this 3 3513 812 0 0 7 1042 3538 0 0 210 /** * Returns the 4-by-4 matrix associated with the read row and advances the * read row. This is a special method that only works when the column in * question contains a matrix of an appropriate size. */ 1 4 this 3 3513 813 0 0 6 1043 3225 0 0 121 /** * Returns the data associated with the read row, expressed as a 1-component * value, and advances the read row. */ 1 4 this 3 3513 814 0 0 6 1044 3539 0 0 121 /** * Returns the data associated with the read row, expressed as a 2-component * value, and advances the read row. */ 1 4 this 3 3513 815 0 0 6 1045 3540 0 0 121 /** * Returns the data associated with the read row, expressed as a 3-component * value, and advances the read row. */ 1 4 this 3 3513 816 0 0 6 1046 3447 0 0 121 /** * Returns the data associated with the read row, expressed as a 4-component * value, and advances the read row. */ 1 4 this 3 3513 817 0 0 7 1047 3542 0 0 210 /** * Returns the 3-by-3 matrix associated with the read row and advances the * read row. This is a special method that only works when the column in * question contains a matrix of an appropriate size. */ 1 4 this 3 3513 818 0 0 7 1048 3422 0 0 210 /** * Returns the 4-by-4 matrix associated with the read row and advances the * read row. This is a special method that only works when the column in * question contains a matrix of an appropriate size. */ 1 4 this 3 3513 819 0 0 6 1049 3182 0 0 121 /** * Returns the data associated with the read row, expressed as a 1-component * value, and advances the read row. */ 1 4 this 3 3513 820 0 0 6 1050 3543 0 0 121 /** * Returns the data associated with the read row, expressed as a 2-component * value, and advances the read row. */ 1 4 this 3 3513 821 0 0 6 1051 3546 0 0 121 /** * Returns the data associated with the read row, expressed as a 3-component * value, and advances the read row. */ 1 4 this 3 3513 822 0 0 6 1052 3549 0 0 121 /** * Returns the data associated with the read row, expressed as a 4-component * value, and advances the read row. */ 1 4 this 3 3513 823 0 0 4 1053 3351 0 0 10 /** * */ 2 4 this 3 3514 3 out 1 3352 824 0 0 7 1055 3552 2435 0 90 /** * Constructs a new writer to process the vertices of the indicated array * only. */ 2 10 array_data 1 3218 14 current_thread 1 3404 825 0 0 7 1055 3552 2435 0 90 /** * Constructs a new writer to process the vertices of the indicated array * only. */ 3 10 array_data 1 3218 6 column 1 3182 14 current_thread 1 3404 826 0 0 7 1055 3552 2435 0 171 /** * Constructs a new writer to process the vertices of the indicated data * object. This flavor creates the writer specifically to process the named * data type. */ 3 11 vertex_data 1 3446 4 name 1 3198 14 current_thread 1 3404 827 0 0 7 1055 3552 2435 0 91 /** * Constructs a new writer to process the vertices of the indicated data * object. */ 2 11 vertex_data 1 3446 14 current_thread 1 3404 828 0 0 7 1055 3552 2435 0 10 /** * */ 1 4 copy 1 3553 829 0 0 7 1055 3552 2435 0 167 /** * Constructs an invalid GeomVertexWriter. You must use the assignment * operator to assign a valid GeomVertexWriter to this object before you can * use it. */ 1 14 current_thread 1 3404 830 0 0 6 1056 3552 0 0 0 2 4 this 3 3552 4 copy 1 3553 831 0 0 7 1058 3446 2055 0 155 /** * Returns the vertex data object that the writer is processing. This may * return NULL if the writer was constructed with just an array pointer. */ 1 4 this 3 3553 832 0 0 7 1059 3218 1897 0 90 /** * Returns the particular array object that the writer is currently * processing. */ 1 4 this 3 3553 833 0 0 7 1060 3408 1934 0 238 /** * Returns the write handle to the array object that the writer is currently * processing. This low-level call should be used with caution; be careful * with modifying the data in the handle out from under the GeomVertexWriter. */ 1 4 this 3 3553 834 0 0 6 1061 3214 0 0 197 /** * Returns the per-row stride (bytes between consecutive rows) of the * underlying vertex array. This low-level information is normally not needed * to use the GeomVertexWriter directly. */ 1 4 this 3 3553 835 0 0 7 1062 3404 0 0 120 /** * Returns the Thread pointer of the currently-executing thread, as passed to * the constructor of this object. */ 1 4 this 3 3553 836 0 0 6 1063 3183 0 0 303 /** * Sets up the writer to use the data type with the indicated name. * * This also resets the write number to the start row (the same value passed * to a previous call to set_row(), or 0 if set_row() was never called.) * * The return value is true if the data type is valid, false otherwise. */ 2 4 this 3 3552 4 name 1 3198 837 0 0 6 1063 3183 0 0 335 /** * Sets up the writer to use the nth data type of the GeomVertexFormat, * numbering from 0. * * This also resets the write row number to the start row (the same value * passed to a previous call to set_row(), or 0 if set_row() was never * called.) * * The return value is true if the data type is valid, false otherwise. */ 2 4 this 3 3552 6 column 1 3182 838 0 0 6 1063 3183 0 0 335 /** * Sets up the writer to use the indicated column description on the given * array. * * This also resets the current write row number to the start row (the same * value passed to a previous call to set_row(), or 0 if set_row() was never * called.) * * The return value is true if the data type is valid, false otherwise. */ 3 4 this 3 3552 5 array 1 3182 6 column 1 3192 839 0 0 4 1064 3351 0 0 60 /** * Resets the GeomVertexWriter to the initial state. */ 1 4 this 3 3552 840 0 0 6 1065 3183 0 0 297 /** * This ensures that enough memory space for num_rows is allocated, so that * you may add up to num_rows rows without causing a new memory allocation. * This is a performance optimization only; it is especially useful when you * know the number of rows you will be adding ahead of time. */ 2 4 this 3 3552 8 num_rows 1 3182 841 0 0 6 1066 3183 0 0 116 /** * Returns true if a valid data type has been successfully set, or false if * the data type does not exist. */ 1 4 this 3 3553 842 0 0 6 1067 3182 0 0 93 /** * Returns the array index containing the data type that the writer is working * on. */ 1 4 this 3 3553 843 0 0 6 1068 3192 0 0 82 /** * Returns the description of the data type that the writer is working on. */ 1 4 this 3 3553 844 0 0 4 1069 3351 0 0 344 /** * Sets the start row to the indicated value, without internal checks. This * is the same as set_row(), but it does not check for the possibility that * the array has been reallocated internally for some reason; use only when * you are confident that the array is unchanged and you really need every bit * of available performance. */ 2 4 this 3 3552 3 row 1 3182 845 0 0 4 1070 3351 0 0 257 /** * Sets the start row to the indicated value. The writer will begin writing * to the indicated row; each subsequent set_data*() call will store the data * into the subsequent row. If set_column() is called, the writer will return * to this row. */ 2 4 this 3 3552 3 row 1 3182 846 0 0 6 1071 3182 0 0 125 /** * Returns the row index at which the writer started. It will return to this * row if you reset the current column. */ 1 4 this 3 3553 847 0 0 6 1072 3182 0 0 117 /** * Returns the row index to which the data will be written at the next call to * set_data*() or add_data*(). */ 1 4 this 3 3553 848 0 0 6 1073 3183 0 0 231 /** * Returns true if the writer is currently at the end of the list of vertices, * false otherwise. If this is true, another call to set_data*() will result * in a crash, but another call to add_data*() will add a new row. */ 1 4 this 3 3553 849 0 0 4 1074 3351 0 0 167 /** * Sets the write row to a particular 1-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 2 4 this 3 3552 4 data 1 3226 850 0 0 4 1075 3351 0 0 167 /** * Sets the write row to a particular 2-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 2 4 this 3 3552 4 data 1 3516 851 0 0 4 1075 3351 0 0 167 /** * Sets the write row to a particular 2-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 3 4 this 3 3552 1 x 1 3226 1 y 1 3226 852 0 0 4 1076 3351 0 0 167 /** * Sets the write row to a particular 3-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 2 4 this 3 3552 4 data 1 3518 853 0 0 4 1076 3351 0 0 167 /** * Sets the write row to a particular 3-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 4 4 this 3 3552 1 x 1 3226 1 y 1 3226 1 z 1 3226 854 0 0 4 1077 3351 0 0 167 /** * Sets the write row to a particular 4-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 2 4 this 3 3552 4 data 1 3520 855 0 0 4 1077 3351 0 0 167 /** * Sets the write row to a particular 4-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 5 4 this 3 3552 1 x 1 3226 1 y 1 3226 1 z 1 3226 1 w 1 3226 856 0 0 4 1078 3351 0 0 219 /** * Sets the write row to a 3-by-3 matrix, and advances the write row. This is * a special method that can only be used on matrix columns. * * It is an error for the write row to advance past the end of data. */ 2 4 this 3 3552 3 mat 1 3555 857 0 0 4 1079 3351 0 0 219 /** * Sets the write row to a 4-by-4 matrix, and advances the write row. This is * a special method that can only be used on matrix columns. * * It is an error for the write row to advance past the end of data. */ 2 4 this 3 3552 3 mat 1 3557 858 0 0 4 1080 3351 0 0 167 /** * Sets the write row to a particular 1-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 2 4 this 3 3552 4 data 1 3525 859 0 0 4 1081 3351 0 0 167 /** * Sets the write row to a particular 2-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 2 4 this 3 3552 4 data 1 3526 860 0 0 4 1081 3351 0 0 167 /** * Sets the write row to a particular 2-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 3 4 this 3 3552 1 x 1 3525 1 y 1 3525 861 0 0 4 1082 3351 0 0 167 /** * Sets the write row to a particular 3-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 2 4 this 3 3552 4 data 1 3529 862 0 0 4 1082 3351 0 0 167 /** * Sets the write row to a particular 3-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 4 4 this 3 3552 1 x 1 3525 1 y 1 3525 1 z 1 3525 863 0 0 4 1083 3351 0 0 167 /** * Sets the write row to a particular 4-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 2 4 this 3 3552 4 data 1 3532 864 0 0 4 1083 3351 0 0 167 /** * Sets the write row to a particular 4-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 5 4 this 3 3552 1 x 1 3525 1 y 1 3525 1 z 1 3525 1 w 1 3525 865 0 0 4 1084 3351 0 0 219 /** * Sets the write row to a 3-by-3 matrix, and advances the write row. This is * a special method that can only be used on matrix columns. * * It is an error for the write row to advance past the end of data. */ 2 4 this 3 3552 3 mat 1 3559 866 0 0 4 1085 3351 0 0 219 /** * Sets the write row to a 4-by-4 matrix, and advances the write row. This is * a special method that can only be used on matrix columns. * * It is an error for the write row to advance past the end of data. */ 2 4 this 3 3552 3 mat 1 3561 867 0 0 4 1086 3351 0 0 167 /** * Sets the write row to a particular 1-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 2 4 this 3 3552 4 data 1 3225 868 0 0 4 1087 3351 0 0 167 /** * Sets the write row to a particular 2-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 2 4 this 3 3552 4 data 1 3539 869 0 0 4 1087 3351 0 0 167 /** * Sets the write row to a particular 2-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 3 4 this 3 3552 1 x 1 3225 1 y 1 3225 870 0 0 4 1088 3351 0 0 167 /** * Sets the write row to a particular 3-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 2 4 this 3 3552 4 data 1 3540 871 0 0 4 1088 3351 0 0 167 /** * Sets the write row to a particular 3-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 4 4 this 3 3552 1 x 1 3225 1 y 1 3225 1 z 1 3225 872 0 0 4 1089 3351 0 0 167 /** * Sets the write row to a particular 4-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 2 4 this 3 3552 4 data 1 3447 873 0 0 4 1089 3351 0 0 167 /** * Sets the write row to a particular 4-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 5 4 this 3 3552 1 x 1 3225 1 y 1 3225 1 z 1 3225 1 w 1 3225 874 0 0 4 1090 3351 0 0 219 /** * Sets the write row to a 3-by-3 matrix, and advances the write row. This is * a special method that can only be used on matrix columns. * * It is an error for the write row to advance past the end of data. */ 2 4 this 3 3552 3 mat 1 3563 875 0 0 4 1091 3351 0 0 219 /** * Sets the write row to a 4-by-4 matrix, and advances the write row. This is * a special method that can only be used on matrix columns. * * It is an error for the write row to advance past the end of data. */ 2 4 this 3 3552 3 mat 1 3423 876 0 0 4 1092 3351 0 0 167 /** * Sets the write row to a particular 1-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 2 4 this 3 3552 4 data 1 3182 877 0 0 4 1093 3351 0 0 167 /** * Sets the write row to a particular 2-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 2 4 this 3 3552 4 data 1 3543 878 0 0 4 1093 3351 0 0 167 /** * Sets the write row to a particular 2-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 3 4 this 3 3552 1 a 1 3182 1 b 1 3182 879 0 0 4 1094 3351 0 0 167 /** * Sets the write row to a particular 3-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 2 4 this 3 3552 4 data 1 3546 880 0 0 4 1094 3351 0 0 167 /** * Sets the write row to a particular 3-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 4 4 this 3 3552 1 a 1 3182 1 b 1 3182 1 c 1 3182 881 0 0 4 1095 3351 0 0 167 /** * Sets the write row to a particular 4-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 2 4 this 3 3552 4 data 1 3549 882 0 0 4 1095 3351 0 0 167 /** * Sets the write row to a particular 4-component value, and advances the * write row. * * It is an error for the write row to advance past the end of data. */ 5 4 this 3 3552 1 a 1 3182 1 b 1 3182 1 c 1 3182 1 d 1 3182 883 0 0 4 1096 3351 0 0 191 /** * Sets the write row to a particular 1-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 2 4 this 3 3552 4 data 1 3226 884 0 0 4 1097 3351 0 0 191 /** * Sets the write row to a particular 2-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 2 4 this 3 3552 4 data 1 3516 885 0 0 4 1097 3351 0 0 191 /** * Sets the write row to a particular 2-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 3 4 this 3 3552 1 x 1 3226 1 y 1 3226 886 0 0 4 1098 3351 0 0 191 /** * Sets the write row to a particular 3-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 2 4 this 3 3552 4 data 1 3518 887 0 0 4 1098 3351 0 0 191 /** * Sets the write row to a particular 3-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 4 4 this 3 3552 1 x 1 3226 1 y 1 3226 1 z 1 3226 888 0 0 4 1099 3351 0 0 191 /** * Sets the write row to a particular 4-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 2 4 this 3 3552 4 data 1 3520 889 0 0 4 1099 3351 0 0 191 /** * Sets the write row to a particular 4-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 5 4 this 3 3552 1 x 1 3226 1 y 1 3226 1 z 1 3226 1 w 1 3226 890 0 0 4 1100 3351 0 0 243 /** * Sets the write row to a 3-by-3 matrix, and advances the write row. This is * a special method that can only be used on matrix columns. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 2 4 this 3 3552 3 mat 1 3555 891 0 0 4 1101 3351 0 0 243 /** * Sets the write row to a 4-by-4 matrix, and advances the write row. This is * a special method that can only be used on matrix columns. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 2 4 this 3 3552 3 mat 1 3557 892 0 0 4 1102 3351 0 0 191 /** * Sets the write row to a particular 1-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 2 4 this 3 3552 4 data 1 3525 893 0 0 4 1103 3351 0 0 191 /** * Sets the write row to a particular 2-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 2 4 this 3 3552 4 data 1 3526 894 0 0 4 1103 3351 0 0 191 /** * Sets the write row to a particular 2-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 3 4 this 3 3552 1 x 1 3525 1 y 1 3525 895 0 0 4 1104 3351 0 0 191 /** * Sets the write row to a particular 3-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 2 4 this 3 3552 4 data 1 3529 896 0 0 4 1104 3351 0 0 191 /** * Sets the write row to a particular 3-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 4 4 this 3 3552 1 x 1 3525 1 y 1 3525 1 z 1 3525 897 0 0 4 1105 3351 0 0 191 /** * Sets the write row to a particular 4-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 2 4 this 3 3552 4 data 1 3532 898 0 0 4 1105 3351 0 0 191 /** * Sets the write row to a particular 4-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 5 4 this 3 3552 1 x 1 3525 1 y 1 3525 1 z 1 3525 1 w 1 3525 899 0 0 4 1106 3351 0 0 243 /** * Sets the write row to a 3-by-3 matrix, and advances the write row. This is * a special method that can only be used on matrix columns. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 2 4 this 3 3552 3 mat 1 3559 900 0 0 4 1107 3351 0 0 243 /** * Sets the write row to a 4-by-4 matrix, and advances the write row. This is * a special method that can only be used on matrix columns. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 2 4 this 3 3552 3 mat 1 3561 901 0 0 4 1108 3351 0 0 191 /** * Sets the write row to a particular 1-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 2 4 this 3 3552 4 data 1 3225 902 0 0 4 1109 3351 0 0 191 /** * Sets the write row to a particular 2-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 2 4 this 3 3552 4 data 1 3539 903 0 0 4 1109 3351 0 0 191 /** * Sets the write row to a particular 2-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 3 4 this 3 3552 1 x 1 3225 1 y 1 3225 904 0 0 4 1110 3351 0 0 191 /** * Sets the write row to a particular 3-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 2 4 this 3 3552 4 data 1 3540 905 0 0 4 1110 3351 0 0 191 /** * Sets the write row to a particular 3-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 4 4 this 3 3552 1 x 1 3225 1 y 1 3225 1 z 1 3225 906 0 0 4 1111 3351 0 0 191 /** * Sets the write row to a particular 4-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 2 4 this 3 3552 4 data 1 3447 907 0 0 4 1111 3351 0 0 191 /** * Sets the write row to a particular 4-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 5 4 this 3 3552 1 x 1 3225 1 y 1 3225 1 z 1 3225 1 w 1 3225 908 0 0 4 1112 3351 0 0 243 /** * Sets the write row to a 3-by-3 matrix, and advances the write row. This is * a special method that can only be used on matrix columns. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 2 4 this 3 3552 3 mat 1 3563 909 0 0 4 1113 3351 0 0 243 /** * Sets the write row to a 4-by-4 matrix, and advances the write row. This is * a special method that can only be used on matrix columns. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 2 4 this 3 3552 3 mat 1 3423 910 0 0 4 1114 3351 0 0 191 /** * Sets the write row to a particular 1-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 2 4 this 3 3552 4 data 1 3182 911 0 0 4 1115 3351 0 0 191 /** * Sets the write row to a particular 2-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 2 4 this 3 3552 4 data 1 3543 912 0 0 4 1115 3351 0 0 191 /** * Sets the write row to a particular 2-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 3 4 this 3 3552 1 a 1 3182 1 b 1 3182 913 0 0 4 1116 3351 0 0 191 /** * Sets the write row to a particular 3-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 2 4 this 3 3552 4 data 1 3546 914 0 0 4 1116 3351 0 0 191 /** * Sets the write row to a particular 3-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 4 4 this 3 3552 1 a 1 3182 1 b 1 3182 1 c 1 3182 915 0 0 4 1117 3351 0 0 191 /** * Sets the write row to a particular 4-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 2 4 this 3 3552 4 data 1 3549 916 0 0 4 1117 3351 0 0 191 /** * Sets the write row to a particular 4-component value, and advances the * write row. * * If the write row advances past the end of data, implicitly adds a new row * to the data. */ 5 4 this 3 3552 1 a 1 3182 1 b 1 3182 1 c 1 3182 1 d 1 3182 917 0 0 4 1118 3351 0 0 10 /** * */ 2 4 this 3 3553 3 out 1 3352 918 0 0 7 1124 3565 2503 0 92 /** * Constructs a new rewriter to process the vertices of the indicated array * only. */ 2 10 array_data 1 3218 14 current_thread 1 3404 919 0 0 7 1124 3565 2503 0 92 /** * Constructs a new rewriter to process the vertices of the indicated array * only. */ 3 10 array_data 1 3218 6 column 1 3182 14 current_thread 1 3404 920 0 0 7 1124 3565 2503 0 175 /** * Constructs a new rewriter to process the vertices of the indicated data * object. This flavor creates the rewriter specifically to process the named * data type. */ 3 11 vertex_data 1 3446 4 name 1 3198 14 current_thread 1 3404 921 0 0 7 1124 3565 2503 0 93 /** * Constructs a new rewriter to process the vertices of the indicated data * object. */ 2 11 vertex_data 1 3446 14 current_thread 1 3404 922 0 0 7 1124 3565 2503 0 10 /** * */ 1 4 copy 1 3566 923 0 0 7 1124 3565 2503 0 171 /** * Constructs an invalid GeomVertexRewriter. You must use the assignment * operator to assign a valid GeomVertexRewriter to this object before you can * use it. */ 1 14 current_thread 1 3404 924 0 0 6 1125 3565 0 0 0 2 4 this 3 3565 4 copy 1 3566 925 0 0 7 1127 3446 2055 0 74 /** * Returns the vertex data object that the rewriter is processing. */ 1 4 this 3 3566 926 0 0 7 1128 3218 1897 0 92 /** * Returns the particular array object that the rewriter is currently * processing. */ 1 4 this 3 3566 927 0 0 7 1129 3408 1934 0 245 /** * Returns the write handle to the array object that the rewriter is currently * processing. This low-level call should be used with caution; be careful * with modifying the data in the handle out from under the * GeomVertexRewriter. */ 1 4 this 3 3566 928 0 0 6 1130 3214 0 0 199 /** * Returns the per-row stride (bytes between consecutive rows) of the * underlying vertex array. This low-level information is normally not needed * to use the GeomVertexRewriter directly. */ 1 4 this 3 3566 929 0 0 7 1131 3404 0 0 120 /** * Returns the Thread pointer of the currently-executing thread, as passed to * the constructor of this object. */ 1 4 this 3 3566 930 0 0 6 1132 3183 0 0 327 /** * Sets up the rewriter to use the data type with the indicated name. * * This also resets both the read and write row numbers to the start row (the * same value passed to a previous call to set_row(), or 0 if set_row() was * never called.) * * The return value is true if the data type is valid, false otherwise. */ 2 4 this 3 3565 4 name 1 3198 931 0 0 6 1132 3183 0 0 352 /** * Sets up the rewriter to use the nth data type of the GeomVertexFormat, * numbering from 0. * * This also resets both the read and write row numbers to the start row (the * same value passed to a previous call to set_row(), or 0 if set_row() was * never called.) * * The return value is true if the data type is valid, false otherwise. */ 2 4 this 3 3565 6 column 1 3182 932 0 0 6 1132 3183 0 0 344 /** * Sets up the rewriter to use the indicated column description on the given * array. * * This also resets both the read and write row numbers to the start row (the * same value passed to a previous call to set_row(), or 0 if set_row() was * never called.) * * The return value is true if the data type is valid, false otherwise. */ 3 4 this 3 3565 5 array 1 3182 6 column 1 3192 933 0 0 4 1133 3351 0 0 62 /** * Resets the GeomVertexRewriter to the initial state. */ 1 4 this 3 3565 934 0 0 6 1134 3183 0 0 116 /** * Returns true if a valid data type has been successfully set, or false if * the data type does not exist. */ 1 4 this 3 3566 935 0 0 6 1135 3182 0 0 95 /** * Returns the array index containing the data type that the rewriter is * working on. */ 1 4 this 3 3566 936 0 0 6 1136 3192 0 0 84 /** * Returns the description of the data type that the rewriter is working on. */ 1 4 this 3 3566 937 0 0 4 1137 3351 0 0 344 /** * Sets the start row to the indicated value, without internal checks. This * is the same as set_row(), but it does not check for the possibility that * the array has been reallocated internally for some reason; use only when * you are confident that the array is unchanged and you really need every bit * of available performance. */ 2 4 this 3 3565 3 row 1 3182 938 0 0 4 1138 3351 0 0 132 /** * Sets the start, write, and write index to the indicated value. The * rewriter will begin traversing from the given row. */ 2 4 this 3 3565 3 row 1 3182 939 0 0 6 1139 3182 0 0 127 /** * Returns the row index at which the rewriter started. It will return to * this row if you reset the current column. */ 1 4 this 3 3566 940 0 0 6 1140 3183 0 0 116 /** * Returns true if the reader or writer is currently at the end of the list of * vertices, false otherwise. */ 1 4 this 3 3566 941 0 0 4 1141 3351 0 0 10 /** * */ 2 4 this 3 3566 3 out 1 3352 942 0 0 6 1120 3552 0 0 0 1 4 this 3 3565 943 0 0 6 1122 3513 0 0 0 1 4 this 3 3565 944 0 0 7 1145 3568 2558 0 72 /** * Creates a new SamplerState initialized to the default values. */ 0 945 0 0 7 1145 3568 2558 0 0 1 6 param0 0 3569 946 0 0 6 1146 3569 0 0 83 /** * Returns a reference to the global default immutable SamplerState object. */ 0 947 0 0 4 1147 3351 0 0 221 /** * This setting determines what happens when the SamplerState is sampled with * a U value outside the range 0.0-1.0. The default is WM_repeat, which * indicates that the SamplerState should repeat indefinitely. */ 2 4 this 3 3568 4 wrap 1 3279 948 0 0 4 1148 3351 0 0 221 /** * This setting determines what happens when the SamplerState is sampled with * a V value outside the range 0.0-1.0. The default is WM_repeat, which * indicates that the SamplerState should repeat indefinitely. */ 2 4 this 3 3568 4 wrap 1 3279 949 0 0 4 1149 3351 0 0 67 /** * The W wrap direction is only used for 3-d SamplerStates. */ 2 4 this 3 3568 4 wrap 1 3279 950 0 0 4 1150 3351 0 0 106 /** * Sets the filtering method that should be used when viewing the SamplerState * from a distance. */ 2 4 this 3 3568 6 filter 1 3278 951 0 0 4 1151 3351 0 0 99 /** * Sets the filtering method that should be used when viewing the SamplerState * up close. */ 2 4 this 3 3568 6 filter 1 3278 952 0 0 4 1152 3351 0 0 418 /** * Specifies the level of anisotropic filtering to apply to the SamplerState. * Set this 0 to indicate the default value, which is specified in the * SamplerState-anisotropic-degree config variable. * * To explicitly disable anisotropic filtering, set this value to 1. To * explicitly enable anisotropic filtering, set it to a value higher than 1; * larger numbers indicate greater degrees of filtering. */ 2 4 this 3 3568 18 anisotropic_degree 1 3182 953 0 0 4 1153 3351 0 0 198 /** * Specifies the solid color of the SamplerState's border. Some OpenGL * implementations use a border for tiling SamplerStates; in Panda, it is only * used for specifying the clamp color. */ 2 4 this 3 3568 5 color 1 3450 954 0 0 4 1154 3351 0 0 123 /** * Sets the minimum level of detail that will be used when sampling this * texture. This may be a negative value. */ 2 4 this 3 3568 7 min_lod 1 3225 955 0 0 4 1155 3351 0 0 159 /** * Sets the maximum level of detail that will be used when sampling this * texture. This may exceed the number of mipmap levels that the texture has. */ 2 4 this 3 3568 7 max_lod 1 3225 956 0 0 4 1156 3351 0 0 211 /** * Sets the value that will be added to the level of detail when sampling the * texture. This may be a negative value, although some graphics hardware may * not support the use of negative LOD values. */ 2 4 this 3 3568 8 lod_bias 1 3225 957 0 0 6 1157 3279 0 0 67 /** * Returns the wrap mode of the texture in the U direction. */ 1 4 this 3 3569 958 0 0 6 1158 3279 0 0 67 /** * Returns the wrap mode of the texture in the V direction. */ 1 4 this 3 3569 959 0 0 6 1159 3279 0 0 116 /** * Returns the wrap mode of the texture in the W direction. This is the depth * direction of 3-d textures. */ 1 4 this 3 3569 960 0 0 6 1160 3278 0 0 214 /** * Returns the filter mode of the texture for minification. If this is one of * the mipmap constants, then the texture requires mipmaps. This may return * FT_default; see also get_effective_minfilter(). */ 1 4 this 3 3569 961 0 0 6 1161 3278 0 0 179 /** * Returns the filter mode of the texture for magnification. The mipmap * constants are invalid here. This may return FT_default; see also * get_effective_minfilter(). */ 1 4 this 3 3569 962 0 0 6 1162 3278 0 0 200 /** * Returns the filter mode of the texture for minification, with special * treatment for FT_default. This will normally not return FT_default, unless * there is an error in the config file. */ 1 4 this 3 3569 963 0 0 6 1163 3278 0 0 201 /** * Returns the filter mode of the texture for magnification, with special * treatment for FT_default. This will normally not return FT_default, unless * there is an error in the config file. */ 1 4 this 3 3569 964 0 0 6 1164 3182 0 0 198 /** * Returns the degree of anisotropic filtering that should be applied to the * texture. This value may return 0, indicating the default value; see also * get_effective_anisotropic_degree. */ 1 4 this 3 3569 965 0 0 6 1165 3182 0 0 184 /** * Returns the degree of anisotropic filtering that should be applied to the * texture. This value will normally not return 0, unless there is an error * in the config file. */ 1 4 this 3 3569 966 0 0 6 1166 3450 0 0 186 /** * Returns the solid color of the texture's border. Some OpenGL * implementations use a border for tiling textures; in Panda, it is only used * for specifying the clamp color. */ 1 4 this 3 3569 967 0 0 6 1167 3225 0 0 99 /** * Returns the minimum level of detail that will be observed when sampling * this texture. */ 1 4 this 3 3569 968 0 0 6 1168 3225 0 0 99 /** * Returns the maximum level of detail that will be observed when sampling * this texture. */ 1 4 this 3 3569 969 0 0 6 1169 3225 0 0 108 /** * Returns the bias that will be added to the texture level of detail when * sampling this texture. */ 1 4 this 3 3569 970 0 0 6 1184 3183 0 0 117 /** * Returns true if the minfilter settings on this sampler indicate the use of * mipmapping, false otherwise. */ 1 4 this 3 3569 971 0 0 6 1185 3183 0 0 109 /** * Returns true if the indicated filter type requires the use of mipmaps, or * false if it does not. */ 1 4 type 1 3278 972 0 0 6 1186 3347 0 0 71 /** * Returns the indicated FilterType converted to a string word. */ 1 2 ft 1 3278 973 0 0 6 1187 3278 0 0 165 /** * Returns the FilterType value associated with the given string * representation, or FT_invalid if the string does not match any known * FilterType value. */ 1 3 str 1 3347 974 0 0 6 1188 3347 0 0 69 /** * Returns the indicated WrapMode converted to a string word. */ 1 2 wm 1 3279 975 0 0 6 1189 3279 0 0 158 /** * Returns the WrapMode value associated with the given string representation, * or WM_invalid if the string does not match any known WrapMode value. */ 1 3 str 1 3347 976 0 0 6 1190 3183 0 0 0 2 4 this 3 3569 5 other 1 3569 977 0 0 6 1191 3183 0 0 0 2 4 this 3 3569 5 other 1 3569 978 0 0 6 1192 3183 0 0 0 2 4 this 3 3569 5 other 1 3569 979 0 0 4 1193 3351 0 0 250 /** * Indicates that the sampler should be enqueued to be prepared in the * indicated prepared_objects at the beginning of the next frame. * * Use this function instead of prepare_now() to preload samplers from a user * interface standpoint. */ 2 4 this 3 3569 16 prepared_objects 1 3409 980 0 0 6 1194 3183 0 0 134 /** * Returns true if the sampler has already been prepared or enqueued for * preparation on the indicated GSG, false otherwise. */ 2 4 this 3 3569 16 prepared_objects 1 3409 981 0 0 4 1195 3351 0 0 157 /** * Frees the texture context only on the indicated object, if it exists there. * Returns true if it was released, false if it had not been prepared. */ 2 4 this 3 3569 16 prepared_objects 1 3409 982 0 0 6 1196 3570 0 0 531 /** * Creates a context for the sampler on the particular GSG, if it does not * already exist. Returns the new (or old) SamplerContext. This assumes that * the GraphicsStateGuardian is the currently active rendering context and * that it is ready to accept new textures. If this is not necessarily the * case, you should use prepare() instead. * * Normally, this is not called directly except by the GraphicsStateGuardian; * a sampler does not need to be explicitly prepared by the user before it may * be rendered. */ 3 4 this 3 3569 16 prepared_objects 1 3409 3 gsg 1 3410 983 0 0 7 1197 3367 0 0 0 0 984 0 0 7 1211 3330 2564 0 192 /** * Constructs an empty texture. The default is to set up the texture as an * empty 2-d texture; follow up with one of the variants of setup_texture() if * this is not what you want. */ 1 4 name 1 3347 985 0 0 7 1213 3330 2564 0 369 /** * Returns a new copy of the same Texture. This copy, if applied to geometry, * will be copied into texture as a separate texture from the original, so it * will be duplicated in texture memory (and may be independently modified if * desired). * * If the Texture is a VideoTexture, the resulting duplicate may be animated * independently of the original. */ 1 4 this 3 3572 986 0 0 4 1214 3351 0 0 90 /** * Reinitializes the texture to its default, empty state (except for the * name). */ 1 4 this 3 3330 987 0 0 4 1215 3351 0 0 243 /** * Sets the texture to the indicated type and dimensions, presumably in * preparation for calling read() or load(), or set_ram_image() or * modify_ram_image(), or use set_clear_color to let the texture be cleared to * a solid color. */ 7 4 this 3 3330 12 texture_type 1 3282 6 x_size 1 3182 6 y_size 1 3182 6 z_size 1 3182 14 component_type 1 3283 6 format 1 3284 988 0 0 4 1216 3351 0 0 228 /** * Sets the texture as an empty 1-d texture with no dimensions. Follow up * with read() or load() to fill the texture properties and image data, or use * set_clear_color to let the texture be cleared to a solid color. */ 1 4 this 3 3330 989 0 0 4 1216 3351 0 0 255 /** * Sets the texture as an empty 1-d texture with the specified dimensions and * properties. Follow up with set_ram_image() or modify_ram_image() to fill * the image data, or use set_clear_color to let the texture be cleared to a * solid color. */ 4 4 this 3 3330 6 x_size 1 3182 14 component_type 1 3283 6 format 1 3284 990 0 0 4 1217 3351 0 0 228 /** * Sets the texture as an empty 2-d texture with no dimensions. Follow up * with read() or load() to fill the texture properties and image data, or use * set_clear_color to let the texture be cleared to a solid color. */ 1 4 this 3 3330 991 0 0 4 1217 3351 0 0 255 /** * Sets the texture as an empty 2-d texture with the specified dimensions and * properties. Follow up with set_ram_image() or modify_ram_image() to fill * the image data, or use set_clear_color to let the texture be cleared to a * solid color. */ 5 4 this 3 3330 6 x_size 1 3182 6 y_size 1 3182 14 component_type 1 3283 6 format 1 3284 992 0 0 4 1218 3351 0 0 313 /** * Sets the texture as an empty 3-d texture with no dimensions (though if you * know the depth ahead of time, it saves a bit of reallocation later). Follow * up with read() or load() to fill the texture properties and image data, or * use set_clear_color to let the texture be cleared to a solid color. */ 2 4 this 3 3330 6 z_size 1 3182 993 0 0 4 1218 3351 0 0 181 /** * Sets the texture as an empty 3-d texture with the specified dimensions and * properties. Follow up with set_ram_image() or modify_ram_image() to fill * the image data. */ 6 4 this 3 3330 6 x_size 1 3182 6 y_size 1 3182 6 z_size 1 3182 14 component_type 1 3283 6 format 1 3284 994 0 0 4 1219 3351 0 0 233 /** * Sets the texture as an empty cube map texture with no dimensions. Follow * up with read() or load() to fill the texture properties and image data, or * use set_clear_color to let the texture be cleared to a solid color. */ 1 4 this 3 3330 995 0 0 4 1219 3351 0 0 397 /** * Sets the texture as an empty cube map texture with the specified dimensions * and properties. Follow up with set_ram_image() or modify_ram_image() to * fill the image data, or use set_clear_color to let the texture be cleared * to a solid color. * * Note that a cube map should always consist of six square images, so x_size * and y_size will be the same, and z_size is always 6. */ 4 4 this 3 3330 4 size 1 3182 14 component_type 1 3283 6 format 1 3284 996 0 0 4 1220 3351 0 0 322 /** * Sets the texture as an empty 2-d texture array with no dimensions (though * if you know the depth ahead of time, it saves a bit of reallocation later). * Follow up with read() or load() to fill the texture properties and image * data, or use set_clear_color to let the texture be cleared to a solid * color. */ 2 4 this 3 3330 6 z_size 1 3182 997 0 0 4 1220 3351 0 0 261 /** * Sets the texture as an empty 2-d texture array with the specified * dimensions and properties. Follow up with set_ram_image() or * modify_ram_image() to fill the image data, or use set_clear_color to let * the texture be cleared to a solid color. */ 6 4 this 3 3330 6 x_size 1 3182 6 y_size 1 3182 6 z_size 1 3182 14 component_type 1 3283 6 format 1 3284 998 0 0 4 1221 3351 0 0 297 /** * Sets the texture as cube map array with N cube maps. Note that this number * is not the same as the z_size. Follow up with read() or load() to fill the * texture properties and image data, or use set_clear_color to let the * texture be cleared to a solid color. * * @since 1.10.0 */ 2 4 this 3 3330 13 num_cube_maps 1 3182 999 0 0 4 1221 3351 0 0 376 /** * Sets the texture as cube map array with N cube maps with the specified * dimensions and format. Follow up with set_ram_image() or * modify_ram_image() to fill the image data, or use set_clear_color to let * the texture be cleared to a solid color. * * The num_cube_maps given here is multiplied by six to become the z_size of * the image. * * @since 1.10.0 */ 5 4 this 3 3330 4 size 1 3182 13 num_cube_maps 1 3182 14 component_type 1 3283 6 format 1 3284 1000 0 0 4 1222 3351 0 0 329 /** * Sets the texture as an empty buffer texture with the specified size and * properties. Follow up with set_ram_image() or modify_ram_image() to fill * the image data, or use set_clear_color to let the texture be cleared to a * solid color. * * Note that a buffer texture's format needs to match the component type. */ 5 4 this 3 3330 4 size 1 3182 14 component_type 1 3283 6 format 1 3284 5 usage 1 3174 1001 0 0 4 1223 3351 0 0 296 /** * Generates a special cube map image in the texture that can be used to apply * bump mapping effects: for each texel in the cube map that is indexed by the * 3-d texture coordinates (x, y, z), the resulting value is the normalized * vector (x, y, z) (compressed from -1..1 into 0..1). */ 2 4 this 3 3330 4 size 1 3182 1002 0 0 4 1224 3351 0 0 253 /** * Generates a special 256x1 1-d texture that can be used to apply an * arbitrary alpha scale to objects by judicious use of texture matrix. The * texture is a gradient, with an alpha of 0 on the left (U = 0), and 255 on * the right (U = 1). */ 1 4 this 3 3330 1003 0 0 4 1225 3351 0 0 445 /** * Clears the texture data without changing its format or resolution. The * texture is cleared on both the graphics hardware and from RAM, unlike * clear_ram_image, which only removes the data from RAM. * * If a clear color has been specified using set_clear_color, the texture will * be cleared using a solid color. * * The texture data will be cleared the first time in which the texture is * used after this method is called. */ 1 4 this 3 3330 1004 0 0 6 1226 3183 0 0 76 /** * Returns true if a color was previously set using set_clear_color. */ 1 4 this 3 3572 1005 0 0 7 1227 3472 0 0 75 /** * Returns the color that was previously set using set_clear_color. */ 1 4 this 3 3572 1006 0 0 4 1228 3351 0 0 359 /** * Sets the color that will be used to fill the texture image in absence of * any image data. It is used when any of the setup_texture functions or * clear_image is called and image data is not provided using read() or * modify_ram_image(). * * This does not affect a texture that has already been cleared; call * clear_image to clear it again. */ 2 4 this 3 3330 5 color 1 3450 1007 0 0 4 1229 3351 0 0 161 /** * The opposite of set_clear_color. If the image is cleared after setting * this, its contents may be undefined (or may in fact not be cleared at all). */ 1 4 this 3 3330 1008 0 0 6 1230 3417 0 0 94 /** * Returns the raw image data for a single pixel if it were set to the clear * color. */ 1 4 this 3 3572 1009 0 0 6 1232 3183 0 0 241 /** * Combine a 3-component image with a grayscale image to get a 4-component * image. * * See the description of the full-parameter read() method for the meaning of * the primary_file_num_channels and alpha_file_channel parameters. */ 6 4 this 3 3330 8 fullpath 1 3574 14 alpha_fullpath 1 3574 25 primary_file_num_channels 1 3182 18 alpha_file_channel 1 3182 7 options 1 3575 1010 0 0 6 1232 3183 0 0 2873 /** * Reads the texture from the indicated filename. If * primary_file_num_channels is not 0, it specifies the number of components * to downgrade the image to if it is greater than this number. * * If the filename has the extension .txo, this implicitly reads a texture * object instead of a filename (which replaces all of the texture * properties). In this case, all the rest of the parameters are ignored, and * the filename should not contain any hash marks; just the one named file * will be read, since a single .txo file can contain all pages and mipmaps * necessary to define a texture. * * If alpha_fullpath is not empty, it specifies the name of a file from which * to retrieve the alpha. In this case, alpha_file_channel represents the * numeric channel of this image file to use as the resulting texture's alpha * channel; usually, this is 0 to indicate the grayscale combination of r, g, * b; or it may be a one-based channel number, e.g. 1 for the red channel, 2 * for the green channel, and so on. * * If read pages is false, then z indicates the page number into which this * image will be assigned. Normally this is 0 for the first (or only) page of * the texture. 3-D textures have one page for each level of depth, and cube * map textures always have six pages. * * If read_pages is true, multiple images will be read at once, one for each * page of a cube map or a 3-D texture. In this case, the filename should * contain a sequence of one or more hash marks ("#") which will be filled in * with the z value of each page, zero-based. In this case, the z parameter * indicates the maximum z value that will be loaded, or 0 to load all * filenames that exist. * * If read_mipmaps is false, then n indicates the mipmap level to which this * image will be assigned. Normally this is 0 for the base texture image, but * it is possible to load custom mipmap levels into the later images. After * the base texture image is loaded (thus defining the size of the texture), * you can call get_expected_num_mipmap_levels() to determine the maximum * sensible value for n. * * If read_mipmaps is true, multiple images will be read as above, but this * time the images represent the different mipmap levels of the texture image. * In this case, the n parameter indicates the maximum n value that will be * loaded, or 0 to load all filenames that exist (up to the expected number of * mipmap levels). * * If both read_pages and read_mipmaps is true, then both sequences will be * read; the filename should contain two sequences of hash marks, separated by * some character such as a hyphen, underscore, or dot. The first hash mark * sequence will be filled in with the mipmap level, while the second hash * mark sequence will be the page index. * * This method implicitly sets keep_ram_image to false. */ 11 4 this 3 3330 8 fullpath 1 3574 14 alpha_fullpath 1 3574 25 primary_file_num_channels 1 3182 18 alpha_file_channel 1 3182 1 z 1 3182 1 n 1 3182 10 read_pages 1 3183 12 read_mipmaps 1 3183 6 record 1 3578 7 options 1 3575 1011 0 0 6 1232 3183 0 0 53 /** * Reads the named filename into the texture. */ 3 4 this 3 3330 8 fullpath 1 3574 7 options 1 3575 1012 0 0 6 1232 3183 0 0 263 /** * Reads a single file into a single page or mipmap level, or automatically * reads a series of files into a series of pages and/or mipmap levels. * * See the description of the full-parameter read() method for the meaning of * the various parameters. */ 7 4 this 3 3330 8 fullpath 1 3574 1 z 1 3182 1 n 1 3182 10 read_pages 1 3183 12 read_mipmaps 1 3183 7 options 1 3575 1013 0 0 6 1233 3183 0 0 52 /** * Writes the texture to the named filename. */ 2 4 this 3 3330 8 fullpath 1 3574 1014 0 0 6 1233 3183 0 0 2253 /** * Writes a single page or mipmap level to a single file, or automatically * writes a series of pages and/or mipmap levels to a numbered series of * files. * * If the filename ends in the extension .txo, this implicitly writes a Panda * texture object (.txo) instead of an image file. In this case, the * remaining parameters are ignored, and only one file is written, which will * contain all of the pages and resident mipmap levels in the texture. * * If write_pages is false, then z indicates the page number to write. 3-D * textures have one page number for each level of depth; cube maps have six * pages number 0 through 5. Other kinds of textures have only one page, * numbered 0. If there are multiple views, the range of z is increased; the * total range is [0, get_num_pages()). * * If write_pages is true, then all pages of the texture will be written. In * this case z is ignored, and the filename should contain a sequence of hash * marks ("#") which will be filled in with the page index number. * * If write_mipmaps is false, then n indicates the mipmap level number to * write. Normally, this is 0, for the base texture image. Normally, the * mipmap levels of a texture are not available in RAM (they are generated * automatically by the graphics card). However, if you have the mipmap levels * available, for instance because you called generate_ram_mipmap_images() to * generate them internally, or you called * GraphicsEngine::extract_texture_data() to retrieve them from the graphics * card, then you may write out each mipmap level with this parameter. * * If write_mipmaps is true, then all mipmap levels of the texture will be * written. In this case n is ignored, and the filename should contain a * sequence of hash marks ("#") which will be filled in with the mipmap level * number. * * If both write_pages and write_mipmaps is true, then all pages and all * mipmap levels will be written. In this case, the filename should contain * two different sequences of hash marks, separated by a character such as a * hyphen, underscore, or dot. The first hash mark sequence will be filled in * with the mipmap level, while the second hash mark sequence will be the page * index. */ 6 4 this 3 3330 8 fullpath 1 3574 1 z 1 3182 1 n 1 3182 11 write_pages 1 3183 13 write_mipmaps 1 3183 1015 0 0 4 1233 3351 0 0 107 /** * Not to be confused with write(Filename), this method simply describes the * texture properties. */ 3 4 this 3 3572 3 out 1 3352 12 indent_level 1 3182 1016 0 0 6 1234 3183 0 0 380 /** * Reads the texture from a Panda texture object. This defines the complete * Texture specification, including the image data as well as all texture * properties. This only works if the txo file contains a static Texture * image, as opposed to a subclass of Texture such as a movie texture. * * Pass a real filename if it is available, or empty string if it is not. */ 3 4 this 3 3330 2 in 1 3580 8 filename 1 3347 1017 0 0 7 1235 3330 2564 0 310 /** * Constructs a new Texture object from the txo file. This is similar to * Texture::read_txo(), but it constructs and returns a new object, which * allows it to return a subclass of Texture (for instance, a movie texture). * * Pass a real filename if it is available, or empty string if it is not. */ 2 2 in 1 3580 8 filename 1 3347 1018 0 0 6 1236 3183 0 0 214 /** * Writes the texture to a Panda texture object. This defines the complete * Texture specification, including the image data as well as all texture * properties. * * The filename is just for reference. */ 3 4 this 3 3572 3 out 1 3352 8 filename 1 3347 1019 0 0 6 1237 3183 0 0 381 /** * Reads the texture from a DDS file object. This is a Microsoft-defined file * format; it is similar in principle to a txo object, in that it is designed * to contain the texture image in a form as similar as possible to its * runtime image, and it can contain mipmaps, pre-compressed textures, and so * on. * * As with read_txo, the filename is just for reference. */ 4 4 this 3 3330 2 in 1 3580 8 filename 1 3347 11 header_only 1 3183 1020 0 0 6 1238 3183 0 0 379 /** * Reads the texture from a KTX file object. This is a Khronos-defined file * format; it is similar in principle to a dds object, in that it is designed * to contain the texture image in a form as similar as possible to its * runtime image, and it can contain mipmaps, pre-compressed textures, and so * on. * * As with read_dds, the filename is just for reference. */ 4 4 this 3 3330 2 in 1 3580 8 filename 1 3347 11 header_only 1 3183 1021 0 0 6 1239 3183 0 0 57 /** * Replaces the texture with the indicated image. */ 3 4 this 3 3330 8 pnmimage 1 3582 7 options 1 3575 1022 0 0 6 1239 3183 0 0 86 /** * Stores the indicated image in the given page and mipmap level. See read(). */ 5 4 this 3 3330 8 pnmimage 1 3582 1 z 1 3182 1 n 1 3182 7 options 1 3575 1023 0 0 6 1239 3183 0 0 57 /** * Replaces the texture with the indicated image. */ 3 4 this 3 3330 3 pfm 1 3585 7 options 1 3575 1024 0 0 6 1239 3183 0 0 86 /** * Stores the indicated image in the given page and mipmap level. See read(). */ 5 4 this 3 3330 3 pfm 1 3585 1 z 1 3182 1 n 1 3182 7 options 1 3575 1025 0 0 6 1240 3183 0 0 328 /** * Stores the indicated image in a region of the texture. The texture * properties remain unchanged. This can be more efficient than updating an * entire texture, but has a few restrictions: for one, you must ensure that * the texture is still in RAM (eg. using set_keep_ram_image) and it may not * be compressed. */ 6 4 this 3 3330 8 pnmimage 1 3582 1 x 1 3182 1 y 1 3182 1 z 1 3182 1 n 1 3182 1026 0 0 6 1241 3183 0 0 86 /** * Saves the texture to the indicated PNMImage, but does not write it to disk. */ 2 4 this 3 3572 8 pnmimage 1 3588 1027 0 0 6 1241 3183 0 0 84 /** * Saves the indicated page and mipmap level of the texture to the PNMImage. */ 4 4 this 3 3572 8 pnmimage 1 3588 1 z 1 3182 1 n 1 3182 1028 0 0 6 1241 3183 0 0 85 /** * Saves the texture to the indicated PfmFile, but does not write it to disk. */ 2 4 this 3 3572 3 pfm 1 3589 1029 0 0 6 1241 3183 0 0 83 /** * Saves the indicated page and mipmap level of the texture to the PfmFile. */ 4 4 this 3 3572 3 pfm 1 3589 1 z 1 3182 1 n 1 3182 1030 0 0 6 1242 3183 0 0 269 /** * Re-reads the Texture from its disk file. Useful when you know the image on * disk has recently changed, and you want to update the Texture image. * * Returns true on success, false on failure (in which case, the Texture may * or may not still be valid). */ 1 4 this 3 3330 1031 0 0 7 1243 3330 2564 0 189 /** * Loads a texture whose filename is derived by concatenating a suffix to the * filename of this texture. May return NULL, for example, if this texture * doesn't have a filename. */ 2 4 this 3 3572 6 suffix 1 3198 1032 0 0 6 1244 3183 0 0 94 /** * Returns true if the filename has been set and is available. See * set_filename(). */ 1 4 this 3 3572 1033 0 0 6 1245 3574 0 0 130 /** * Returns the filename that has been set. This is the name of the file as it * was requested. Also see get_fullpath(). */ 1 4 this 3 3572 1034 0 0 4 1246 3351 0 0 376 /** * Sets the name of the file that contains the image's contents. Normally, * this is set automatically when the image is loaded, for instance via * Texture::read(). * * The Texture's get_name() function used to return the filename, but now * returns just the basename (without the extension), which is a more useful * name for identifying an image in show code. */ 2 4 this 3 3330 8 filename 1 3574 1035 0 0 4 1247 3351 0 0 85 /** * Removes the alpha filename, if it was previously set. See set_filename(). */ 1 4 this 3 3330 1036 0 0 6 1251 3183 0 0 106 /** * Returns true if the alpha_filename has been set and is available. See * set_alpha_filename(). */ 1 4 this 3 3572 1037 0 0 6 1252 3574 0 0 214 /** * Returns the alpha_filename that has been set. If this is set, it * represents the name of the alpha component, which is stored in a separate * file. See also get_filename(), and get_alpha_fullpath(). */ 1 4 this 3 3572 1038 0 0 4 1253 3351 0 0 549 /** * Sets the name of the file that contains the image's alpha channel contents. * Normally, this is set automatically when the image is loaded, for instance * via Texture::read(). * * The Texture's get_filename() function returns the name of the image file * that was loaded into the buffer. In the case where a texture specified two * separate files to load, a 1- or 3-channel color image and a 1-channel alpha * image, this Filename is update to contain the name of the image file that * was loaded into the buffer's alpha channel. */ 2 4 this 3 3330 14 alpha_filename 1 3574 1039 0 0 4 1254 3351 0 0 94 /** * Removes the alpha filename, if it was previously set. See * set_alpha_filename(). */ 1 4 this 3 3330 1040 0 0 6 1256 3183 0 0 94 /** * Returns true if the fullpath has been set and is available. See * set_fullpath(). */ 1 4 this 3 3572 1041 0 0 6 1257 3574 0 0 135 /** * Returns the fullpath that has been set. This is the full path to the file * as it was found along the texture search path. */ 1 4 this 3 3572 1042 0 0 4 1258 3351 0 0 216 /** * Sets the full pathname to the file that contains the image's contents, as * found along the search path. Normally, this is set automatically when the * image is loaded, for instance via Texture::read(). */ 2 4 this 3 3330 8 fullpath 1 3574 1043 0 0 4 1259 3351 0 0 85 /** * Removes the alpha fullpath, if it was previously set. See set_fullpath(). */ 1 4 this 3 3330 1044 0 0 6 1261 3183 0 0 106 /** * Returns true if the alpha_fullpath has been set and is available. See * set_alpha_fullpath(). */ 1 4 this 3 3572 1045 0 0 6 1262 3574 0 0 168 /** * * Returns the alpha_fullpath that has been set. This is the full path to the * alpha part of the image file as it was found along the texture search path. */ 1 4 this 3 3572 1046 0 0 4 1263 3351 0 0 230 /** * Sets the full pathname to the file that contains the image's alpha channel * contents, as found along the search path. Normally, this is set * automatically when the image is loaded, for instance via Texture::read(). */ 2 4 this 3 3330 14 alpha_fullpath 1 3574 1047 0 0 4 1264 3351 0 0 94 /** * Removes the alpha fullpath, if it was previously set. See * set_alpha_fullpath(). */ 1 4 this 3 3330 1048 0 0 6 1266 3182 0 0 60 /** * Returns the width of the texture image in texels. */ 1 4 this 3 3572 1049 0 0 4 1267 3351 0 0 132 /** * Changes the x size indicated for the texture. This also implicitly unloads * the texture if it has already been loaded. */ 2 4 this 3 3330 6 x_size 1 3182 1050 0 0 6 1269 3182 0 0 100 /** * Returns the height of the texture image in texels. For a 1-d texture, this * will be 1. */ 1 4 this 3 3572 1051 0 0 4 1270 3351 0 0 132 /** * Changes the y size indicated for the texture. This also implicitly unloads * the texture if it has already been loaded. */ 2 4 this 3 3330 6 y_size 1 3182 1052 0 0 6 1272 3182 0 0 154 /** * Returns the depth of the texture image in texels. For a 1-d texture or 2-d * texture, this will be 1. For a cube map texture, this will be 6. */ 1 4 this 3 3572 1053 0 0 4 1273 3351 0 0 132 /** * Changes the z size indicated for the texture. This also implicitly unloads * the texture if it has already been loaded. */ 2 4 this 3 3330 6 z_size 1 3182 1054 0 0 6 1275 3182 0 0 426 /** * Returns the number of "views" in the texture. A view is a completely * separate image stored within the Texture object. Most textures have only * one view, but a stereo texture, for instance, may have two views, a left * and a right image. Other uses for multiple views are not yet defined. * * If this value is greater than one, the additional views are accessed as * additional pages beyond get_z_size(). */ 1 4 this 3 3572 1055 0 0 4 1276 3351 0 0 503 /** * Sets the number of "views" within a texture. A view is a completely * separate image stored within the Texture object. Most textures have only * one view, but a stereo texture, for instance, may have two views, a left * and a right image. Other uses for multiple views are not yet defined. * * If this value is greater than one, the additional views are accessed as * additional pages beyond get_z_size(). * * This also implicitly unloads the texture if it has already been loaded. */ 2 4 this 3 3330 9 num_views 1 3182 1056 0 0 6 1278 3182 0 0 318 /** * Returns the total number of pages in the texture. Each "page" is a 2-d * texture image within the larger image--a face of a cube map, or a level of * a 3-d texture. Normally, get_num_pages() is the same as get_z_size(). * However, in a multiview texture, this returns get_z_size() * * get_num_views(). */ 1 4 this 3 3572 1057 0 0 6 1279 3182 0 0 194 /** * Returns the number of color components for each texel of the texture image. * This is 3 for an rgb texture or 4 for an rgba texture; it may also be 1 or * 2 for a grayscale texture. */ 1 4 this 3 3572 1058 0 0 6 1280 3182 0 0 141 /** * Returns the number of bytes stored for each color component of a texel. * Typically this is 1, but it may be 2 for 16-bit texels. */ 1 4 this 3 3572 1059 0 0 6 1281 3282 0 0 61 /** * Returns the overall interpretation of the texture. */ 1 4 this 3 3572 1060 0 0 6 1282 3174 0 0 114 /** * Returns the usage hint specified for buffer textures, or UH_unspecified for * all other texture types. */ 1 4 this 3 3572 1061 0 0 6 1288 3284 0 0 153 /** * Returns the format of the texture, which represents both the semantic * meaning of the texels and, to some extent, their storage information. */ 1 4 this 3 3572 1062 0 0 4 1289 3351 0 0 112 /** * Changes the format value for the texture components. This implicitly sets * num_components as well. */ 2 4 this 3 3330 6 format 1 3284 1063 0 0 6 1291 3283 0 0 79 /** * Returns the numeric interpretation of each component of the texture. */ 1 4 this 3 3572 1064 0 0 4 1292 3351 0 0 111 /** * Changes the data value for the texture components. This implicitly sets * component_width as well. */ 2 4 this 3 3330 14 component_type 1 3283 1065 0 0 6 1294 3279 0 0 208 /** * Returns the wrap mode of the texture in the U direction. * * This returns the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 1 4 this 3 3572 1066 0 0 4 1295 3351 0 0 0 2 4 this 3 3330 4 wrap 1 3590 1067 0 0 6 1297 3279 0 0 208 /** * Returns the wrap mode of the texture in the V direction. * * This returns the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 1 4 this 3 3572 1068 0 0 4 1298 3351 0 0 0 2 4 this 3 3330 4 wrap 1 3590 1069 0 0 6 1300 3279 0 0 257 /** * Returns the wrap mode of the texture in the W direction. This is the depth * direction of 3-d textures. * * This returns the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 1 4 this 3 3572 1070 0 0 4 1301 3351 0 0 0 2 4 this 3 3330 4 wrap 1 3590 1071 0 0 6 1303 3278 0 0 355 /** * Returns the filter mode of the texture for minification. If this is one of * the mipmap constants, then the texture requires mipmaps. This may return * FT_default; see also get_effective_minfilter(). * * This returns the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 1 4 this 3 3572 1072 0 0 6 1304 3278 0 0 341 /** * Returns the filter mode of the texture for minification, with special * treatment for FT_default. This will normally not return FT_default, unless * there is an error in the config file. * * This returns the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 1 4 this 3 3572 1073 0 0 4 1305 3351 0 0 0 2 4 this 3 3330 6 filter 1 3591 1074 0 0 6 1308 3278 0 0 320 /** * Returns the filter mode of the texture for magnification. The mipmap * constants are invalid here. This may return FT_default; see also * get_effective_minfilter(). * * This returns the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 1 4 this 3 3572 1075 0 0 6 1309 3278 0 0 342 /** * Returns the filter mode of the texture for magnification, with special * treatment for FT_default. This will normally not return FT_default, unless * there is an error in the config file. * * This returns the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 1 4 this 3 3572 1076 0 0 4 1310 3351 0 0 0 2 4 this 3 3330 6 filter 1 3591 1077 0 0 6 1313 3182 0 0 339 /** * Returns the degree of anisotropic filtering that should be applied to the * texture. This value may return 0, indicating the default value; see also * get_effective_anisotropic_degree. * * This returns the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 1 4 this 3 3572 1078 0 0 6 1314 3182 0 0 325 /** * Returns the degree of anisotropic filtering that should be applied to the * texture. This value will normally not return 0, unless there is an error * in the config file. * * This returns the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 1 4 this 3 3572 1079 0 0 4 1315 3351 0 0 548 /** * Specifies the level of anisotropic filtering to apply to the texture. Set * this 0 to indicate the default value, which is specified in the texture- * anisotropic-degree config variable. * * To explicitly disable anisotropic filtering, set this value to 1. To * explicitly enable anisotropic filtering, set it to a value higher than 1; * larger numbers indicate greater degrees of filtering. * * This sets the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 2 4 this 3 3330 18 anisotropic_degree 1 3182 1080 0 0 7 1318 3472 0 0 327 /** * Returns the solid color of the texture's border. Some OpenGL * implementations use a border for tiling textures; in Panda, it is only used * for specifying the clamp color. * * This returns the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 1 4 this 3 3572 1081 0 0 4 1319 3351 0 0 326 /** * Specifies the solid color of the texture's border. Some OpenGL * implementations use a border for tiling textures; in Panda, it is only used * for specifying the clamp color. * * This sets the default sampler state for this texture; it may still be * overridden by a sampler state specified at a higher level. */ 2 4 this 3 3330 5 color 1 3450 1082 0 0 6 1321 3183 0 0 430 /** * Returns true if the texture indicates it wants to be compressed, either * with CM_on or higher, or CM_default and compressed-textures is true. * * If true returned, this is not a guarantee that the texture is actually * successfully compressed on the GSG. It may be that the GSG does not * support the requested compression mode, in which case the texture may * actually be stored uncompressed in texture memory. */ 1 4 this 3 3572 1083 0 0 6 1322 3287 0 0 431 /** * Returns the compression mode requested for this particular texture, or * CM_off if the texture is not to be compressed. * * If a value other than CM_off is returned, this is not a guarantee that the * texture is actually successfully compressed on the GSG. It may be that the * GSG does not support the requested compression mode, in which case the * texture may actually be stored uncompressed in texture memory. */ 1 4 this 3 3572 1084 0 0 4 1323 3351 0 0 645 /** * Requests that this particular Texture be compressed when it is loaded into * texture memory. * * This refers to the internal compression of the texture image within texture * memory; it is not related to jpeg or png compression, which are disk file * compression formats. The actual disk file that generated this texture may * be stored in a compressed or uncompressed format supported by Panda; it * will be decompressed on load, and then recompressed by the graphics API if * this parameter is not CM_off. * * If the GSG does not support this texture compression mode, the texture will * silently be loaded uncompressed. */ 2 4 this 3 3330 11 compression 1 3287 1085 0 0 6 1325 3183 0 0 378 /** * Returns a flag on the texture that indicates whether the texture is * intended to be used as a direct-render target, by binding a framebuffer to * a texture and rendering directly into the texture. * * Normally, a user should not need to set this flag directly; it is set * automatically by the low-level display code when a texture is bound to a * framebuffer. */ 1 4 this 3 3572 1086 0 0 4 1326 3351 0 0 539 /** * Sets a flag on the texture that indicates whether the texture is intended * to be used as a direct-render target, by binding a framebuffer to a texture * and rendering directly into the texture. * * This controls some low-level choices made about the texture object itself. * For instance, compressed textures are disallowed when this flag is set * true. * * Normally, a user should not need to set this flag directly; it is set * automatically by the low-level display code when a texture is bound to a * framebuffer. */ 2 4 this 3 3330 17 render_to_texture 1 3183 1087 0 0 6 1328 3569 0 0 222 /** * This returns the default sampler state for this texture, containing the * wrap and filter properties specified on the texture level; it may still be * overridden by a sampler state specified at a higher level. */ 1 4 this 3 3572 1088 0 0 4 1329 3351 0 0 502 /** * This sets the default sampler state for this texture, containing the wrap * and filter properties specified on the texture level; it may still be * overridden by a sampler state specified at a higher level. This * encompasses the settings for get_wrap_u, get_minfilter, * get_anisotropic_degree, etc. * * This makes a copy of the SamplerState object, so future modifications of * the same SamplerState will have no effect on this texture unless you call * set_default_sampler again. */ 2 4 this 3 3330 7 sampler 1 3569 1089 0 0 6 1332 3183 0 0 117 /** * Returns true if the minfilter settings on this texture indicate the use of * mipmapping, false otherwise. */ 1 4 this 3 3572 1090 0 0 6 1333 3288 0 0 149 /** * Returns the current quality_level hint. See set_quality_level(). This * value may return QL_default; see get_effective_quality_level(). */ 1 4 this 3 3572 1091 0 0 6 1334 3288 0 0 235 /** * Returns the current quality_level hint, or the global default quality_level * if this texture doesn't specify a quality level. This value will not * normally return QL_default (unless there is an error in the config file) */ 1 4 this 3 3572 1092 0 0 4 1335 3351 0 0 264 /** * Sets a hint to the renderer about the desired performance / quality * tradeoff for this particular texture. This is most useful for the * tinydisplay software renderer; for normal, hardware-accelerated renderers, * this may have little or no effect. */ 2 4 this 3 3330 13 quality_level 1 3288 1093 0 0 6 1338 3182 0 0 249 /** * Returns the number of mipmap levels that should be defined for this * texture, given the texture's size. * * Note that this returns a number appropriate for mipmapping, even if the * texture does not currently have mipmapping enabled. */ 1 4 this 3 3572 1094 0 0 6 1339 3182 0 0 100 /** * Returns the x_size that the nth mipmap level should have, based on the * texture's size. */ 2 4 this 3 3572 1 n 1 3182 1095 0 0 6 1340 3182 0 0 100 /** * Returns the y_size that the nth mipmap level should have, based on the * texture's size. */ 2 4 this 3 3572 1 n 1 3182 1096 0 0 6 1341 3182 0 0 100 /** * Returns the z_size that the nth mipmap level should have, based on the * texture's size. */ 2 4 this 3 3572 1 n 1 3182 1097 0 0 6 1342 3182 0 0 280 /** * Returns the total number of pages that the nth mipmap level should have, * based on the texture's size. This is usually the same as * get_expected_mipmap_z_size(), except for a multiview texture, in which case * it is get_expected_mipmap_z_size() * get_num_views(). */ 2 4 this 3 3572 1 n 1 3182 1098 0 0 6 1344 3183 0 0 1090 /** * Returns true if the Texture has its image contents available in main RAM, * false if it exists only in texture memory or in the prepared GSG context. * * Note that this has nothing to do with whether get_ram_image() will fail or * not. Even if has_ram_image() returns false, get_ram_image() may still * return a valid RAM image, because get_ram_image() will automatically load * the texture from disk if necessary. The only thing has_ram_image() tells * you is whether the texture is available right now without hitting the disk * first. * * Note also that if an application uses only one GSG, it may appear that * has_ram_image() returns true if the texture has not yet been loaded by the * GSG, but this correlation is not true in general and should not be depended * on. Specifically, if an application ever uses multiple GSG's in its * lifetime (for instance, by opening more than one window, or by closing its * window and opening another one later), then has_ram_image() may well return * false on textures that have never been loaded on the current GSG. */ 1 4 this 3 3572 1099 0 0 6 1345 3183 0 0 146 /** * Returns true if the Texture has its image contents available in main RAM * and is uncompressed, false otherwise. See has_ram_image(). */ 1 4 this 3 3572 1100 0 0 6 1346 3183 0 0 284 /** * Returns true if the texture's image contents are currently available in * main RAM, or there is reason to believe it can be loaded on demand. That * is, this function returns a "best guess" as to whether get_ram_image() will * succeed without actually calling it first. */ 1 4 this 3 3572 1101 0 0 6 1347 3214 0 0 141 /** * Returns the total number of bytes used by the in-memory image, across all * pages and views, or 0 if there is no in-memory image. */ 1 4 this 3 3572 1102 0 0 6 1348 3214 0 0 208 /** * Returns the number of bytes used by the in-memory image per view, or 0 if * there is no in-memory image. Since each view is a stack of z_size pages, * this is get_z_size() * get_ram_page_size(). */ 1 4 this 3 3572 1103 0 0 6 1349 3214 0 0 345 /** * Returns the number of bytes used by the in-memory image per page, or 0 if * there is no in-memory image. * * For a non-compressed texture, this is the same as * get_expected_ram_page_size(). For a compressed texture, this may be a * smaller value. (We do assume that all pages will be the same size on a * compressed texture). */ 1 4 this 3 3572 1104 0 0 6 1350 3214 0 0 122 /** * Returns the number of bytes that *ought* to be used by the in-memory image, * based on the texture parameters. */ 1 4 this 3 3572 1105 0 0 6 1351 3214 0 0 178 /** * Returns the number of bytes that should be used per each Z page of the 3-d * texture. For a 2-d or 1-d texture, this is the same as * get_expected_ram_image_size(). */ 1 4 this 3 3572 1106 0 0 7 1357 3592 0 0 1159 /** * Returns the system-RAM image data associated with the texture. If the * texture does not currently have an associated RAM image, and the texture * was generated by loading an image from a disk file (the most common case), * this forces the reload of the same texture. This can happen if * keep_texture_ram is configured to false, and we have previously prepared * this texture with a GSG. * * Note that it is not correct to call has_ram_image() first to test whether * this function will fail. A false return value from has_ram_image() * indicates only that get_ram_image() may need to reload the texture from * disk, which it will do automatically. However, you can call * might_have_ram_image(), which will return true if the ram image exists, or * there is a reasonable reason to believe it can be loaded. * * On the other hand, it is possible that the texture cannot be found on disk * or is otherwise unavailable. If that happens, this function will return * NULL. There is no way to predict with 100% accuracy whether get_ram_image() * will return NULL without calling it first; might_have_ram_image() is the * closest. */ 1 4 this 3 3330 1107 0 0 6 1358 3287 0 0 338 /** * Returns the compression mode in which the ram image is already stored pre- * compressed. If this is other than CM_off, you cannot rely on the contents * of the ram image to be anything predicatable (it will not be an array of x * by y pixels, and it probably won't have the same length as * get_expected_ram_image_size()). */ 1 4 this 3 3572 1108 0 0 7 1359 3592 0 0 586 /** * Returns the system-RAM image associated with the texture, in an * uncompressed form if at all possible. * * If get_ram_image_compression() is CM_off, then the system-RAM image is * already uncompressed, and this returns the same thing as get_ram_image(). * * If get_ram_image_compression() is anything else, then the system-RAM image * is compressed. In this case, the image will be reloaded from the * *original* file (not from the cache), in the hopes that an uncompressed * image will be found there. * * If an uncompressed image cannot be found, returns NULL. */ 1 4 this 3 3330 1109 0 0 7 1360 3592 0 0 1220 /** * Returns the uncompressed system-RAM image data associated with the texture. * Rather than just returning a pointer to the data, like * get_uncompressed_ram_image, this function first processes the data and * reorders the components using the specified format string, and places these * into a new char array. * * The 'format' argument should specify in which order the components of the * texture must be. For example, valid format strings are "RGBA", "GA", * "ABRG" or "AAA". A component can also be written as "0" or "1", which * means an empty/black or a full/white channel, respectively. * * This function is particularly useful to copy an image in-memory to a * different library (for example, PIL or wxWidgets) that require a different * component order than Panda's internal format, BGRA. Note, however, that * this conversion can still be too slow if you want to do it every frame, and * should thus be avoided for that purpose. * * The only requirement for the reordering is that an uncompressed image must * be available. If the RAM image is compressed, it will attempt to re-load * the texture from disk, if it doesn't find an uncompressed image there, it * will return NULL. */ 2 4 this 3 3330 16 requested_format 1 3347 1110 0 0 7 1361 3595 0 0 246 /** * Returns a modifiable pointer to the system-RAM image. This assumes the RAM * image should be uncompressed. If the RAM image has been dumped, or is * stored compressed, creates a new one. * * This does *not* affect keep_ram_image. */ 1 4 this 3 3330 1111 0 0 7 1362 3595 0 0 198 /** * Discards the current system-RAM image for the texture, if any, and * allocates a new buffer of the appropriate size. Returns the new buffer. * * This does *not* affect keep_ram_image. */ 1 4 this 3 3330 1112 0 0 4 1363 3351 0 0 0 4 4 this 3 3330 5 image 1 3363 11 compression 1 3287 9 page_size 1 3214 1113 0 0 4 1364 3351 0 0 0 3 4 this 3 3330 5 image 1 3363 15 provided_format 1 3347 1114 0 0 4 1365 3351 0 0 49 /** * Discards the current system-RAM image. */ 1 4 this 3 3330 1115 0 0 4 1366 3351 0 0 476 /** * Sets the flag that indicates whether this Texture is eligible to have its * main RAM copy of the texture memory dumped when the texture is prepared for * rendering. * * This will be false for most textures, which can reload their images if * needed by rereading the input file. However, textures that were generated * dynamically and cannot be easily reloaded will want to set this flag to * true, so that the texture will always keep its image copy around. */ 2 4 this 3 3330 14 keep_ram_image 1 3183 1116 0 0 6 1367 3183 0 0 207 /** * Returns the flag that indicates whether this Texture is eligible to have * its main RAM copy of the texture memory dumped when the texture is prepared * for rendering. See set_keep_ram_image(). */ 1 4 this 3 3572 1117 0 0 6 1368 3183 0 0 200 /** * Returns true if there is enough information in this Texture object to write * it to the bam cache successfully, false otherwise. For most textures, this * is the same as has_ram_image(). */ 1 4 this 3 3572 1118 0 0 6 1372 3183 0 0 802 /** * Attempts to compress the texture's RAM image internally, to a format * supported by the indicated GSG. In order for this to work, the squish * library must have been compiled into Panda. * * If compression is CM_on, then an appropriate compression method that is * supported by the indicated GSG is automatically chosen. If the GSG pointer * is NULL, any of the standard DXT1/3/5 compression methods will be used, * regardless of whether it is supported. * * If compression is any specific compression method, that method is used * regardless of whether the GSG supports it. * * quality_level determines the speed/quality tradeoff of the compression. If * it is QL_default, the texture's own quality_level parameter is used. * * Returns true if successful, false otherwise. */ 4 4 this 3 3330 11 compression 1 3287 13 quality_level 1 3288 3 gsg 1 3410 1119 0 0 6 1373 3183 0 0 279 /** * Attempts to uncompress the texture's RAM image internally. In order for * this to work, the squish library must have been compiled into Panda, and * the ram image must be compressed in a format supported by squish. * * Returns true if successful, false otherwise. */ 1 4 this 3 3330 1120 0 0 6 1374 3182 0 0 285 /** * Returns the maximum number of mipmap level images available in system * memory. The actual number may be less than this (that is, there might be * gaps in the sequence); use has_ram_mipmap_image() to verify each level. * * Also see get_num_loadable_ram_mipmap_images(). */ 1 4 this 3 3572 1121 0 0 6 1375 3183 0 0 317 /** * Returns true if the Texture has the nth mipmap level available in system * memory, false otherwise. If the texture's minfilter mode requires * mipmapping (see uses_mipmaps()), and all the texture's mipmap levels are * not available when the texture is rendered, they will be generated * automatically. */ 2 4 this 3 3572 1 n 1 3182 1122 0 0 6 1376 3182 0 0 558 /** * Returns the number of contiguous mipmap levels that exist in RAM, up until * the first gap in the sequence. It is guaranteed that at least mipmap * levels [0, get_num_ram_mipmap_images()) exist. * * The number returned will never exceed the number of required mipmap images * based on the size of the texture and its filter mode. * * This method is different from get_num_ram_mipmap_images() in that it * returns only the number of mipmap levels that can actually be usefully * loaded, regardless of the actual number that may be stored. */ 1 4 this 3 3572 1123 0 0 6 1377 3183 0 0 149 /** * Returns true if all expected mipmap levels have been defined and exist in * the system RAM, or false if even one mipmap level is missing. */ 1 4 this 3 3572 1124 0 0 6 1378 3214 0 0 148 /** * Returns the number of bytes used by the in-memory image for mipmap level n, * or 0 if there is no in-memory image for this mipmap level. */ 2 4 this 3 3572 1 n 1 3182 1125 0 0 6 1379 3214 0 0 542 /** * Returns the number of bytes used by the in-memory image per view for mipmap * level n, or 0 if there is no in-memory image for this mipmap level. * * A "view" is a collection of z_size pages for each mipmap level. Most * textures have only one view, except for multiview or stereo textures. * * For a non-compressed texture, this is the same as * get_expected_ram_mipmap_view_size(). For a compressed texture, this may be * a smaller value. (We do assume that all pages will be the same size on a * compressed texture). */ 2 4 this 3 3572 1 n 1 3182 1126 0 0 6 1380 3214 0 0 393 /** * Returns the number of bytes used by the in-memory image per page for mipmap * level n, or 0 if there is no in-memory image for this mipmap level. * * For a non-compressed texture, this is the same as * get_expected_ram_mipmap_page_size(). For a compressed texture, this may be * a smaller value. (We do assume that all pages will be the same size on a * compressed texture). */ 2 4 this 3 3572 1 n 1 3182 1127 0 0 6 1381 3214 0 0 141 /** * Returns the number of bytes that *ought* to be used by the in-memory image * for mipmap level n, based on the texture parameters. */ 2 4 this 3 3572 1 n 1 3182 1128 0 0 6 1382 3214 0 0 258 /** * Returns the number of bytes that *ought* to be used by each view of the in- * memory image for mipmap level n, based on the texture parameters. For a * normal, non-multiview texture, this is the same as * get_expected_ram_mipmap_image_size(n). */ 2 4 this 3 3572 1 n 1 3182 1129 0 0 6 1383 3214 0 0 205 /** * Returns the number of bytes that should be used per each Z page of the 3-d * texture, for mipmap level n. For a 2-d or 1-d texture, this is the same as * get_expected_ram_mipmap_view_size(n). */ 2 4 this 3 3572 1 n 1 3182 1130 0 0 7 1384 3592 0 0 151 /** * Returns the system-RAM image data associated with the nth mipmap level, if * present. Returns NULL if the nth mipmap level is not present. */ 2 4 this 3 3572 1 n 1 3182 1131 0 0 4 1385 3351 0 0 182 /** * Similiar to get_ram_mipmap_image(), however, in this case the void pointer * for the given ram image is returned. This will be NULL unless it has been * explicitly set. */ 2 4 this 3 3572 1 n 1 3182 1132 0 0 7 1386 3595 0 0 231 /** * Returns a modifiable pointer to the system-RAM image for the nth mipmap * level. This assumes the RAM image is uncompressed; if this is not the * case, raises an assertion. * * This does *not* affect keep_ram_image. */ 2 4 this 3 3330 1 n 1 3182 1133 0 0 7 1387 3595 0 0 207 /** * Discards the current system-RAM image for the nth mipmap level, if any, and * allocates a new buffer of the appropriate size. Returns the new buffer. * * This does *not* affect keep_ram_image. */ 2 4 this 3 3330 1 n 1 3182 1134 0 0 4 1389 3351 0 0 287 /** * Accepts a raw pointer cast as an int, which is then passed to * set_ram_mipmap_pointer(); see the documentation for that method. * * This variant is particularly useful to set an external pointer from a * language like Python, which doesn't support void pointers directly. */ 4 4 this 3 3330 7 pointer 1 3596 1 n 1 3182 9 page_size 1 3182 1135 0 0 4 1390 3351 0 0 262 /** * Replaces the current system-RAM image for the indicated mipmap level with * the new data. If compression is not CM_off, it indicates that the new data * is already pre-compressed in the indicated format. * * This does *not* affect keep_ram_image. */ 4 4 this 3 3330 1 n 1 3182 5 image 1 3592 9 page_size 1 3214 1136 0 0 4 1391 3351 0 0 74 /** * Discards the current system-RAM image for the nth mipmap level. */ 2 4 this 3 3330 1 n 1 3182 1137 0 0 4 1392 3351 0 0 107 /** * Discards the current system-RAM image for all mipmap levels, except level 0 * (the base image). */ 1 4 this 3 3330 1138 0 0 4 1393 3351 0 0 453 /** * Automatically fills in the n mipmap levels of the Texture, based on the * texture's source image. This requires the texture's uncompressed ram image * to be available in system memory. If it is not already, it will be fetched * if possible. * * This call is not normally necessary, since the mipmap levels will be * generated automatically if needed. But there may be certain cases in which * you would like to call this explicitly. */ 1 4 this 3 3330 1139 0 0 6 1396 3182 0 0 61 /** * Returns the width of the "simple" image in texels. */ 1 4 this 3 3572 1140 0 0 6 1397 3182 0 0 62 /** * Returns the height of the "simple" image in texels. */ 1 4 this 3 3572 1141 0 0 6 1398 3183 0 0 82 /** * Returns true if the Texture has a "simple" image available in main RAM. */ 1 4 this 3 3572 1142 0 0 6 1399 3214 0 0 103 /** * Returns the number of bytes used by the "simple" image, or 0 if there is no * simple image. */ 1 4 this 3 3572 1143 0 0 7 1400 3592 0 0 511 /** * Returns the image data associated with the "simple" texture image. This is * provided for some textures as an option to display while the main texture * image is being loaded from disk. * * Unlike get_ram_image(), this function will always return immediately. * Either the simple image is available, or it is not. * * The "simple" image is always 4 components, 1 byte each, regardless of the * parameters of the full texture. The simple image is only supported for * ordinary 2-d textures. */ 1 4 this 3 3572 1144 0 0 4 1401 3351 0 0 638 /** * Replaces the internal "simple" texture image. This can be used as an * option to display while the main texture image is being loaded from disk. * It is normally a very small image, 16x16 or smaller (and maybe even 1x1), * that is designed to give just enough sense of color to serve as a * placeholder until the full texture is available. * * The "simple" image is always 4 components, 1 byte each, regardless of the * parameters of the full texture. The simple image is only supported for * ordinary 2-d textures. * * Also see generate_simple_ram_image(), modify_simple_ram_image(), and * new_simple_ram_image(). */ 4 4 this 3 3330 5 image 1 3592 6 x_size 1 3182 6 y_size 1 3182 1145 0 0 7 1402 3595 0 0 111 /** * Returns a modifiable pointer to the internal "simple" texture image. See * set_simple_ram_image(). */ 1 4 this 3 3330 1146 0 0 7 1403 3595 0 0 164 /** * Creates an empty array for the simple ram image of the indicated size, and * returns a modifiable pointer to the new array. See set_simple_ram_image(). */ 3 4 this 3 3330 6 x_size 1 3182 6 y_size 1 3182 1147 0 0 4 1404 3351 0 0 185 /** * Computes the "simple" ram image by loading the main RAM image, if it is not * already available, and reducing it to 16x16 or smaller. This may be an * expensive operation. */ 1 4 this 3 3330 1148 0 0 4 1405 3351 0 0 47 /** * Discards the current "simple" image. */ 1 4 this 3 3330 1149 0 0 7 1411 3597 3158 0 492 /** * Returns a TexturePeeker object that can be used to examine the individual * texels stored within this Texture by (u, v) coordinate. * * If the texture has a ram image resident, that image is used. If it does * not have a full ram image but does have a simple_ram_image resident, that * image is used instead. If neither image is resident the full image is * reloaded. * * Returns NULL if the texture cannot find an image to load, or the texture * format is incompatible. */ 1 4 this 3 3330 1150 0 0 7 1412 3403 0 0 151 /** * Returns a sequence number which is guaranteed to change at least every time * the texture properties (unrelated to the image) are modified. */ 1 4 this 3 3572 1151 0 0 7 1413 3403 0 0 152 /** * Returns a sequence number which is guaranteed to change at least every time * the texture image data (including mipmap levels) are modified. */ 1 4 this 3 3572 1152 0 0 7 1414 3403 0 0 136 /** * Returns a sequence number which is guaranteed to change at least every time * the texture's "simple" image data is modified. */ 1 4 this 3 3572 1153 0 0 6 1418 3183 0 0 136 /** * Returns true if set_auto_texture_scale() has been set to something other * than ATS_unspecified for this particular texture. */ 1 4 this 3 3572 1154 0 0 6 1419 3294 0 0 171 /** * Returns the power-of-2 texture-scaling mode that will be applied to this * particular texture when it is next loaded from disk. See * set_textures_power_2(). */ 1 4 this 3 3572 1155 0 0 4 1420 3351 0 0 173 /** * Specifies the power-of-2 texture-scaling mode that will be applied to this * particular texture when it is next loaded from disk. See * set_textures_power_2(). */ 2 4 this 3 3330 5 scale 1 3294 1156 0 0 7 1423 3599 0 0 363 /** * Indicates that the texture should be enqueued to be prepared in the * indicated prepared_objects at the beginning of the next frame. This will * ensure the texture is already loaded into texture memory if it is expected * to be rendered soon. * * Use this function instead of prepare_now() to preload textures from a user * interface standpoint. */ 2 4 this 3 3330 16 prepared_objects 1 3409 1157 0 0 6 1424 3183 0 0 134 /** * Returns true if the texture has already been prepared or enqueued for * preparation on the indicated GSG, false otherwise. */ 2 4 this 3 3572 16 prepared_objects 1 3409 1158 0 0 6 1425 3183 0 0 176 /** * Returns true if the texture needs to be re-loaded onto the indicated GSG, * either because its image data is out-of-date, or because it's not fully * prepared now. */ 2 4 this 3 3572 16 prepared_objects 1 3409 1159 0 0 6 1426 3214 0 0 335 /** * Returns the number of bytes which the texture is reported to consume within * graphics memory, for the indicated GSG. This may return a nonzero value * even if the texture is not currently resident; you should also check * get_resident() if you want to know how much space the texture is actually * consuming right now. */ 2 4 this 3 3572 16 prepared_objects 1 3409 1160 0 0 6 1427 3183 0 0 106 /** * Returns true if this Texture was rendered in the most recent frame within * the indicated GSG. */ 2 4 this 3 3572 16 prepared_objects 1 3409 1161 0 0 6 1428 3183 0 0 115 /** * Returns true if this Texture is reported to be resident within graphics * memory for the indicated GSG. */ 2 4 this 3 3572 16 prepared_objects 1 3409 1162 0 0 6 1429 3183 0 0 157 /** * Frees the texture context only on the indicated object, if it exists there. * Returns true if it was released, false if it had not been prepared. */ 2 4 this 3 3330 16 prepared_objects 1 3409 1163 0 0 6 1430 3182 0 0 152 /** * Frees the context allocated on all objects for which the texture has been * declared. Returns the number of contexts which have been freed. */ 1 4 this 3 3330 1164 0 0 6 1431 3214 0 0 437 /** * Estimates the amount of texture memory that will be consumed by loading * this texture. This returns a value that is not specific to any particular * graphics card or driver; it tries to make a reasonable assumption about how * a driver will load the texture. It does not account for texture * compression or anything fancy. This is mainly useful for debugging and * reporting purposes. * * Returns a value in bytes. */ 1 4 this 3 3572 1165 0 0 4 1432 3351 0 0 237 /** * Records an arbitrary object in the Texture, associated with a specified * key. The object may later be retrieved by calling get_aux_data() with the * same key. * * These data objects are not recorded to a bam or txo file. */ 3 4 this 3 3330 3 key 1 3347 8 aux_data 1 3295 1166 0 0 4 1433 3351 0 0 67 /** * Removes a record previously recorded via set_aux_data(). */ 2 4 this 3 3330 3 key 1 3347 1167 0 0 7 1434 3295 0 0 142 /** * Returns a record previously recorded via set_aux_data(). Returns NULL if * there was no record associated with the indicated key. */ 2 4 this 3 3572 3 key 1 3347 1168 0 0 4 1439 3351 0 0 232 /** * Set this flag to ATS_none, ATS_up, ATS_down, or ATS_pad to control the * scaling of textures in general, if a particular texture does not override * this. See also set_auto_texture_scale() for the per-texture override. */ 1 5 scale 1 3294 1169 0 0 6 1440 3294 0 0 251 /** * This flag returns ATS_none, ATS_up, or ATS_down and controls the scaling of * textures in general. It is initialized from the config variable of the * same name, but it can be subsequently adjusted. See also * get_auto_texture_scale(). */ 0 1170 0 0 6 1441 3183 0 0 181 /** * If true, then get_textures_power_2 has been set using set_textures_power_2. * If false, then get_textures_power_2 simply returns the config variable of * the same name. */ 0 1171 0 0 6 1442 3182 0 0 61 /** * Returns size of the pad region. See set_pad_size. */ 1 4 this 3 3572 1172 0 0 6 1443 3182 0 0 61 /** * Returns size of the pad region. See set_pad_size. */ 1 4 this 3 3572 1173 0 0 6 1444 3182 0 0 61 /** * Returns size of the pad region. See set_pad_size. */ 1 4 this 3 3572 1174 0 0 7 1445 3600 0 0 523 /** * Returns a scale pair that is suitable for applying to geometry via * NodePath::set_tex_scale(), which will convert texture coordinates on the * geometry from the range 0..1 into the appropriate range to render the video * part of the texture. * * This is necessary only if a padding size has been set via set_pad_size() * (or implicitly via something like "textures-power-2 pad" in the config.prc * file). In this case, this is a convenient way to generate UV's that * reflect the built-in padding size. */ 1 4 this 3 3572 1175 0 0 4 1446 3351 0 0 468 /** * Sets the size of the pad region. * * Sometimes, when a video card demands power-of-two textures, it is necessary * to create a big texture and then only use a portion of it. The pad region * indicates which portion of the texture is not really in use. All * operations use the texture as a whole, including the pad region, unless * they explicitly state that they use only the non-pad region. * * Changing the texture's size clears the pad region. */ 4 4 this 3 3330 1 x 1 3182 1 y 1 3182 1 z 1 3182 1176 0 0 4 1447 3351 0 0 104 /** * Changes the size of the texture, padding if necessary, and setting the pad * region as well. */ 4 4 this 3 3330 1 x 1 3182 1 y 1 3182 1 z 1 3182 1177 0 0 6 1448 3182 0 0 168 /** * Returns the X size of the original disk image that this Texture was loaded * from (if it came from a disk file), before any automatic rescaling by * Panda. */ 1 4 this 3 3572 1178 0 0 6 1449 3182 0 0 168 /** * Returns the Y size of the original disk image that this Texture was loaded * from (if it came from a disk file), before any automatic rescaling by * Panda. */ 1 4 this 3 3572 1179 0 0 6 1450 3182 0 0 168 /** * Returns the Z size of the original disk image that this Texture was loaded * from (if it came from a disk file), before any automatic rescaling by * Panda. */ 1 4 this 3 3572 1180 0 0 4 1454 3351 0 0 113 /** * Specifies the size of the texture as it exists in its original disk file, * before any Panda scaling. */ 4 4 this 3 3330 1 x 1 3182 1 y 1 3182 1 z 1 3182 1181 0 0 4 1455 3351 0 0 274 /** * Sets the flag that indicates the texture has been loaded from a disk file * or PNMImage. You should also ensure the filename has been set correctly. * When this flag is true, the texture may be automatically reloaded when its * ram image needs to be replaced. */ 2 4 this 3 3330 4 flag 1 3183 1182 0 0 6 1456 3183 0 0 133 /** * Returns the flag that indicates the texture has been loaded from a disk * file or PNMImage. See set_loaded_from_image(). */ 1 4 this 3 3572 1183 0 0 4 1458 3351 0 0 189 /** * Sets the flag that indicates the texture has been loaded from a txo file. * You probably shouldn't be setting this directly; it is set automatically * when a Texture is loaded. */ 2 4 this 3 3330 4 flag 1 3183 1184 0 0 6 1459 3183 0 0 90 /** * Returns the flag that indicates the texture has been loaded from a txo * file. */ 1 4 this 3 3572 1185 0 0 6 1461 3183 0 0 289 /** * Returns true if the special flag was set that indicates to the GSG that the * Texture's format should be chosen to exactly match the framebuffer's * format, presumably because the application intends to copy image data from * the framebuffer into the Texture (or vice-versa). */ 1 4 this 3 3572 1186 0 0 4 1462 3351 0 0 399 /** * Sets the special flag that, if true, indicates to the GSG that the * Texture's format should be chosen to exactly match the framebuffer's * format, presumably because the application intends to copy image data from * the framebuffer into the Texture (or vice-versa). * * This sets only the graphics card's idea of the texture format; it is not * related to the system-memory format. */ 2 4 this 3 3330 4 flag 1 3183 1187 0 0 6 1464 3183 0 0 102 /** * Returns the setting of the post_load_store_cache flag. See * set_post_load_store_cache(). */ 1 4 this 3 3572 1188 0 0 4 1465 3351 0 0 418 /** * Sets the post_load_store_cache flag. When this is set, the next time the * texture is loaded on a GSG, it will automatically extract its RAM image * from the GSG and save it to the global BamCache. * * This is used to store compressed RAM images in the BamCache. This flag * should not be set explicitly; it is set automatically by the TexturePool * when model-cache-compressed-textures is set true. */ 2 4 this 3 3330 4 flag 1 3183 1189 0 0 6 1467 3601 0 0 531 /** * Creates a context for the texture on the particular GSG, if it does not * already exist. Returns the new (or old) TextureContext. This assumes that * the GraphicsStateGuardian is the currently active rendering context and * that it is ready to accept new textures. If this is not necessarily the * case, you should use prepare() instead. * * Normally, this is not called directly except by the GraphicsStateGuardian; * a texture does not need to be explicitly prepared by the user before it may * be rendered. */ 4 4 this 3 3330 4 view 1 3182 16 prepared_objects 1 3409 3 gsg 1 3410 1190 0 0 6 1468 3182 0 0 74 /** * Returns the smallest power of 2 greater than or equal to value. */ 1 5 value 1 3182 1191 0 0 6 1469 3182 0 0 70 /** * Returns the largest power of 2 less than or equal to value. */ 1 5 value 1 3182 1192 0 0 4 1470 3351 0 0 451 /** * Asks the PNMImage to change its scale when it reads the image, according to * the whims of the Config.prc file. * * For most efficient results, this method should be called after * pnmimage.read_header() has been called, but before pnmimage.read(). This * method may also be called after pnmimage.read(), i.e. when the pnmimage is * already loaded; in this case it will rescale the image on the spot. Also * see rescale_texture(). */ 2 4 this 3 3330 8 pnmimage 1 3588 1193 0 0 4 1470 3351 0 0 451 /** * Asks the PNMImage to change its scale when it reads the image, according to * the whims of the Config.prc file. * * For most efficient results, this method should be called after * pnmimage.read_header() has been called, but before pnmimage.read(). This * method may also be called after pnmimage.read(), i.e. when the pnmimage is * already loaded; in this case it will rescale the image on the spot. Also * see rescale_texture(). */ 3 8 pnmimage 1 3588 4 name 1 3347 18 auto_texture_scale 1 3294 1194 0 0 6 1471 3183 0 0 391 /** * This method is similar to consider_rescale(), but instead of scaling a * separate PNMImage, it will ask the Texture to rescale its own internal * image to a power of 2, according to the config file requirements. This may * be useful after loading a Texture image by hand, instead of reading it from * a disk file. Returns true if the texture is changed, false if it was not. */ 1 4 this 3 3330 1195 0 0 6 1472 3347 0 0 72 /** * Returns the indicated TextureType converted to a string word. */ 1 2 tt 1 3282 1196 0 0 6 1473 3282 0 0 78 /** * Returns the TextureType corresponding to the indicated string word. */ 1 3 str 1 3347 1197 0 0 6 1474 3347 0 0 74 /** * Returns the indicated ComponentType converted to a string word. */ 1 2 ct 1 3283 1198 0 0 6 1475 3283 0 0 80 /** * Returns the ComponentType corresponding to the indicated string word. */ 1 3 str 1 3347 1199 0 0 6 1476 3347 0 0 67 /** * Returns the indicated Format converted to a string word. */ 1 1 f 1 3284 1200 0 0 6 1477 3284 0 0 73 /** * Returns the Format corresponding to the indicated string word. */ 1 3 str 1 3347 1201 0 0 6 1478 3347 0 0 76 /** * Returns the indicated CompressionMode converted to a string word. */ 1 2 cm 1 3287 1202 0 0 6 1479 3287 0 0 96 /** * Returns the CompressionMode value associated with the given string * representation. */ 1 3 str 1 3347 1203 0 0 6 1480 3347 0 0 73 /** * Returns the indicated QualityLevel converted to a string word. */ 1 3 tql 1 3288 1204 0 0 6 1481 3288 0 0 93 /** * Returns the QualityLevel value associated with the given string * representation. */ 1 3 str 1 3347 1205 0 0 7 1482 3367 0 0 0 0 1206 0 0 7 1200 3246 0 0 0 1 4 this 3 3330 1207 0 0 6 1202 3379 0 0 0 1 4 this 3 3330 1208 0 0 7 1507 3336 0 0 0 1 6 param0 0 3602 1209 0 0 7 1488 3336 0 0 52 /** * Loads the shader with the given filename. */ 2 4 file 1 3574 4 lang 1 3298 1210 0 0 7 1488 3336 0 0 77 /** * This variant of Shader::load loads all shader programs separately. */ 6 4 lang 1 3298 6 vertex 1 3574 8 fragment 1 3574 8 geometry 1 3574 12 tess_control 1 3574 15 tess_evaluation 1 3574 1211 0 0 7 1489 3336 0 0 64 /** * Loads the shader, using the strings as shader bodies. */ 6 4 lang 1 3298 6 vertex 1 3347 8 fragment 1 3347 8 geometry 1 3347 12 tess_control 1 3347 15 tess_evaluation 1 3347 1212 0 0 7 1489 3336 0 0 61 /** * Loads the shader, using the string as shader body. */ 2 4 body 1 3347 4 lang 1 3298 1213 0 0 7 1490 3336 0 0 34 /** * Loads a compute shader. */ 2 4 lang 1 3298 2 fn 1 3574 1214 0 0 7 1491 3336 0 0 58 /** * Loads the compute shader from the given string. */ 2 4 lang 1 3298 4 body 1 3347 1215 0 0 7 1492 3604 0 0 66 /** * Return the Shader's filename for the given shader type. */ 2 4 this 3 3602 4 type 1 3299 1216 0 0 4 1493 3351 0 0 154 /** * Sets the Shader's filename for the given shader type. Useful for * associating a shader created with Shader.make with a name for diagnostics. */ 3 4 this 3 3336 4 type 1 3299 8 filename 1 3574 1217 0 0 6 1494 3347 0 0 62 /** * Return the Shader's text for the given shader type. */ 2 4 this 3 3602 4 type 1 3299 1218 0 0 6 1495 3183 0 0 160 /** * Returns true if the shader contains a compile-time error. This doesn't * tell you whether or not the shader is supported on the current video card. */ 1 4 this 3 3602 1219 0 0 6 1496 3298 0 0 72 /** * Returns the shader language in which this shader was written. */ 1 4 this 3 3602 1220 0 0 6 1497 3183 0 0 94 /** * Returns true if the fullpath has been set and is available. See * set_fullpath(). */ 1 4 this 3 3602 1221 0 0 6 1498 3574 0 0 126 /** * Returns the fullpath that has been set. This is the full path to the file * as it was found along the model-path. */ 1 4 this 3 3602 1222 0 0 6 1499 3183 0 0 102 /** * Returns the setting of the cache_compiled_shader flag. See * set_cache_compiled_shader(). */ 1 4 this 3 3602 1223 0 0 4 1500 3351 0 0 414 /** * Sets the cache_compiled_shader flag. When this is set, the next time the * Shader is loaded on a GSG, it will automatically extract the compiled * shader from the GSG and save it to the global BamCache. * * This is used to store compiled shaders in the BamCache. This flag should * not be set explicitly; it is set automatically by the ShaderPool when * model-cache-compiled-shaders is set true. */ 2 4 this 3 3336 4 flag 1 3183 1224 0 0 7 1501 3599 0 0 362 /** * Indicates that the shader should be enqueued to be prepared in the * indicated prepared_objects at the beginning of the next frame. This will * ensure the texture is already loaded into texture memory if it is expected * to be rendered soon. * * Use this function instead of prepare_now() to preload textures from a user * interface standpoint. */ 2 4 this 3 3336 16 prepared_objects 1 3409 1225 0 0 6 1502 3183 0 0 133 /** * Returns true if the shader has already been prepared or enqueued for * preparation on the indicated GSG, false otherwise. */ 2 4 this 3 3602 16 prepared_objects 1 3409 1226 0 0 6 1503 3183 0 0 157 /** * Frees the texture context only on the indicated object, if it exists there. * Returns true if it was released, false if it had not been prepared. */ 2 4 this 3 3336 16 prepared_objects 1 3409 1227 0 0 6 1504 3182 0 0 152 /** * Frees the context allocated on all objects for which the texture has been * declared. Returns the number of contexts which have been freed. */ 1 4 this 3 3336 1228 0 0 6 1505 3605 0 0 528 /** * Creates a context for the shader on the particular GSG, if it does not * already exist. Returns the new (or old) ShaderContext. This assumes that * the GraphicsStateGuardian is the currently active rendering context and * that it is ready to accept new textures. If this is not necessarily the * case, you should use prepare() instead. * * Normally, this is not called directly except by the GraphicsStateGuardian; * a shader does not need to be explicitly prepared by the user before it may * be rendered. */ 3 4 this 3 3336 16 prepared_objects 1 3409 3 gsg 1 3410 1229 0 0 7 1506 3367 0 0 0 0 1230 0 0 7 1516 3608 2796 0 0 1 6 param0 0 3606 1231 0 0 7 1516 3608 2796 0 155 /** * Creates an uninitialized buffer object with the given size. For now, these * parameters cannot be modified, but this may change in the future. */ 3 4 name 1 3347 4 size 1 3303 10 usage_hint 1 3174 1232 0 0 7 1516 3608 2796 0 152 /** * Creates a buffer object initialized with the given data. For now, these * parameters cannot be modified, but this may change in the future. */ 3 4 name 1 3347 12 initial_data 1 3417 10 usage_hint 1 3174 1233 0 0 4 1522 3351 0 0 344 /** * Indicates that the data should be enqueued to be prepared in the indicated * prepared_objects at the beginning of the next frame. This will ensure the * data is already loaded into the GSG if it is expected to be rendered soon. * * Use this function instead of prepare_now() to preload datas from a user * interface standpoint. */ 2 4 this 3 3608 16 prepared_objects 1 3409 1234 0 0 6 1523 3183 0 0 131 /** * Returns true if the data has already been prepared or enqueued for * preparation on the indicated GSG, false otherwise. */ 2 4 this 3 3606 16 prepared_objects 1 3409 1235 0 0 6 1524 3456 0 0 521 /** * Creates a context for the data on the particular GSG, if it does not * already exist. Returns the new (or old) BufferContext. This assumes * that the GraphicsStateGuardian is the currently active rendering context * and that it is ready to accept new datas. If this is not necessarily the * case, you should use prepare() instead. * * Normally, this is not called directly except by the GraphicsStateGuardian; * a data does not need to be explicitly prepared by the user before it may be * rendered. */ 3 4 this 3 3608 16 prepared_objects 1 3409 3 gsg 1 3410 1236 0 0 6 1525 3183 0 0 154 /** * Frees the data context only on the indicated object, if it exists there. * Returns true if it was released, false if it had not been prepared. */ 2 4 this 3 3608 16 prepared_objects 1 3409 1237 0 0 6 1526 3182 0 0 149 /** * Frees the context allocated on all objects for which the data has been * declared. Returns the number of contexts which have been freed. */ 1 4 this 3 3608 1238 0 0 7 1527 3367 0 0 0 0 1239 0 0 7 1509 3246 0 0 0 1 4 this 3 3608 1240 0 0 6 1511 3379 0 0 0 1 4 this 3 3608 1241 0 0 6 1513 3358 0 0 0 1 4 this 3 3608 1242 0 0 6 1529 3347 0 0 167 /** * Returns the name of the PreparedGraphicsObjects structure. This is an * arbitrary name that serves mainly to uniquify the context for PStats * reporting. */ 1 4 this 3 3609 1243 0 0 4 1530 3351 0 0 503 /** * Sets an artificial cap on graphics memory that will be imposed on this GSG. * * This limits the total amount of graphics memory, including texture memory * and vertex buffer memory, that will be consumed by the GSG, regardless of * whether the hardware claims to provide more graphics memory than this. It * is useful to put a ceiling on graphics memory consumed, since some drivers * seem to allow the application to consume more memory than the hardware can * realistically support. */ 2 4 this 3 3409 5 limit 1 3214 1244 0 0 6 1531 3214 0 0 127 /** * Returns the artificial cap on graphics memory that will be imposed on this * GSG. See set_graphics_memory_limit(). */ 1 4 this 3 3609 1245 0 0 4 1532 3351 0 0 127 /** * Writes to the indicated ostream a report of how the various textures and * vertex buffers are allocated in the LRU. */ 2 4 this 3 3609 3 out 1 3352 1246 0 0 4 1533 3351 0 0 127 /** * Writes to the indicated ostream a report of how the various textures and * vertex buffers are allocated in the LRU. */ 2 4 this 3 3609 3 out 1 3352 1247 0 0 4 1534 3351 0 0 62 /** * Releases all prepared objects of all kinds at once. */ 1 4 this 3 3409 1248 0 0 6 1535 3182 0 0 107 /** * Returns the number of objects of any kind that have been enqueued to be * prepared on this GSG. */ 1 4 this 3 3609 1249 0 0 6 1536 3182 0 0 100 /** * Returns the number of objects of any kind that have already been prepared * on this GSG. */ 1 4 this 3 3609 1250 0 0 4 1537 3351 0 0 156 /** * Indicates that a texture would like to be put on the list to be prepared * when the GSG is next ready to do this (presumably at the next frame). */ 2 4 this 3 3409 3 tex 1 3330 1251 0 0 6 1538 3183 0 0 84 /** * Returns true if the texture has been queued on this GSG, false otherwise. */ 2 4 this 3 3609 3 tex 1 3572 1252 0 0 6 1539 3183 0 0 385 /** * Removes a texture from the queued list of textures to be prepared. * Normally it is not necessary to call this, unless you change your mind * about preparing it at the last minute, since the texture will automatically * be dequeued and prepared at the next frame. * * The return value is true if the texture is successfully dequeued, false if * it had not been queued. */ 2 4 this 3 3409 3 tex 1 3330 1253 0 0 6 1540 3183 0 0 86 /** * Returns true if the texture has been prepared on this GSG, false otherwise. */ 2 4 this 3 3609 3 tex 1 3572 1254 0 0 4 1541 3351 0 0 107 /** * Releases a texture if it has already been prepared, or removes it from the * preparation queue. */ 2 4 this 3 3409 3 tex 1 3330 1255 0 0 4 1541 3351 0 0 478 /** * Indicates that a texture context, created by a previous call to * prepare_texture(), is no longer needed. The driver resources will not be * freed until some GSG calls update(), indicating it is at a stage where it * is ready to release textures--this prevents conflicts from threading or * multiple GSG's sharing textures (we have no way of knowing which graphics * context is currently active, or what state it's in, at the time * release_texture is called). */ 2 4 this 3 3409 2 tc 1 3601 1256 0 0 6 1542 3182 0 0 184 /** * Releases all textures at once. This will force them to be reloaded into * texture memory for all GSG's that share this object. Returns the number of * textures released. */ 1 4 this 3 3409 1257 0 0 6 1543 3182 0 0 96 /** * Returns the number of textures that have been enqueued to be prepared on * this GSG. */ 1 4 this 3 3609 1258 0 0 6 1544 3182 0 0 86 /** * Returns the number of textures that have already been prepared on this GSG. */ 1 4 this 3 3609 1259 0 0 6 1545 3601 0 0 727 /** * Immediately creates a new TextureContext for the indicated texture and * returns it. This assumes that the GraphicsStateGuardian is the currently * active rendering context and that it is ready to accept new textures. If * this is not necessarily the case, you should use enqueue_texture() instead. * * Normally, this function is not called directly. Call * Texture::prepare_now() instead. * * The TextureContext contains all of the pertinent information needed by the * GSG to keep track of this one particular texture, and will exist as long as * the texture is ready to be rendered. * * When either the Texture or the PreparedGraphicsObjects object destructs, * the TextureContext will be deleted. */ 4 4 this 3 3409 3 tex 1 3330 4 view 1 3182 3 gsg 1 3410 1260 0 0 4 1546 3351 0 0 156 /** * Indicates that a sampler would like to be put on the list to be prepared * when the GSG is next ready to do this (presumably at the next frame). */ 2 4 this 3 3409 7 sampler 1 3569 1261 0 0 6 1547 3183 0 0 84 /** * Returns true if the sampler has been queued on this GSG, false otherwise. */ 2 4 this 3 3609 7 sampler 1 3569 1262 0 0 6 1548 3183 0 0 385 /** * Removes a sampler from the queued list of samplers to be prepared. * Normally it is not necessary to call this, unless you change your mind * about preparing it at the last minute, since the sampler will automatically * be dequeued and prepared at the next frame. * * The return value is true if the sampler is successfully dequeued, false if * it had not been queued. */ 2 4 this 3 3409 7 sampler 1 3569 1263 0 0 6 1549 3183 0 0 86 /** * Returns true if the sampler has been prepared on this GSG, false otherwise. */ 2 4 this 3 3609 7 sampler 1 3569 1264 0 0 4 1550 3351 0 0 261 /** * Indicates that a sampler context, created by a previous call to * prepare_sampler(), is no longer needed. The driver resources will not be * freed until some GSG calls update(), indicating it is at a stage where it * is ready to release samplers. */ 2 4 this 3 3409 2 sc 1 3570 1265 0 0 4 1550 3351 0 0 107 /** * Releases a sampler if it has already been prepared, or removes it from the * preparation queue. */ 2 4 this 3 3409 7 sampler 1 3569 1266 0 0 6 1551 3182 0 0 161 /** * Releases all samplers at once. This will force them to be reloaded for all * GSG's that share this object. Returns the number of samplers released. */ 1 4 this 3 3409 1267 0 0 6 1552 3182 0 0 96 /** * Returns the number of samplers that have been enqueued to be prepared on * this GSG. */ 1 4 this 3 3609 1268 0 0 6 1553 3182 0 0 86 /** * Returns the number of samplers that have already been prepared on this GSG. */ 1 4 this 3 3609 1269 0 0 6 1554 3570 0 0 727 /** * Immediately creates a new SamplerContext for the indicated sampler and * returns it. This assumes that the GraphicsStateGuardian is the currently * active rendering context and that it is ready to accept new samplers. If * this is not necessarily the case, you should use enqueue_sampler() instead. * * Normally, this function is not called directly. Call * Sampler::prepare_now() instead. * * The SamplerContext contains all of the pertinent information needed by the * GSG to keep track of this one particular sampler, and will exist as long as * the sampler is ready to be rendered. * * When either the Sampler or the PreparedGraphicsObjects object destructs, * the SamplerContext will be deleted. */ 3 4 this 3 3409 7 sampler 1 3569 3 gsg 1 3410 1270 0 0 4 1555 3351 0 0 153 /** * Indicates that a geom would like to be put on the list to be prepared when * the GSG is next ready to do this (presumably at the next frame). */ 2 4 this 3 3409 4 geom 1 3262 1271 0 0 6 1556 3183 0 0 81 /** * Returns true if the geom has been queued on this GSG, false otherwise. */ 2 4 this 3 3609 4 geom 1 3473 1272 0 0 6 1557 3183 0 0 374 /** * Removes a geom from the queued list of geoms to be prepared. Normally it * is not necessary to call this, unless you change your mind about preparing * it at the last minute, since the geom will automatically be dequeued and * prepared at the next frame. * * The return value is true if the geom is successfully dequeued, false if it * had not been queued. */ 2 4 this 3 3409 4 geom 1 3262 1273 0 0 6 1558 3183 0 0 95 /** * Returns true if the vertex buffer has been prepared on this GSG, false * otherwise. */ 2 4 this 3 3609 4 geom 1 3473 1274 0 0 4 1559 3351 0 0 463 /** * Indicates that a geom context, created by a previous call to * prepare_geom(), is no longer needed. The driver resources will not be * freed until some GSG calls update(), indicating it is at a stage where it * is ready to release geoms--this prevents conflicts from threading or * multiple GSG's sharing geoms (we have no way of knowing which graphics * context is currently active, or what state it's in, at the time * release_geom is called). */ 2 4 this 3 3409 2 gc 1 3477 1275 0 0 6 1560 3182 0 0 175 /** * Releases all geoms at once. This will force them to be reloaded into geom * memory for all GSG's that share this object. Returns the number of geoms * released. */ 1 4 this 3 3409 1276 0 0 6 1561 3182 0 0 93 /** * Returns the number of geoms that have been enqueued to be prepared on this * GSG. */ 1 4 this 3 3609 1277 0 0 6 1562 3182 0 0 83 /** * Returns the number of geoms that have already been prepared on this GSG. */ 1 4 this 3 3609 1278 0 0 6 1563 3477 0 0 697 /** * Immediately creates a new GeomContext for the indicated geom and returns * it. This assumes that the GraphicsStateGuardian is the currently active * rendering context and that it is ready to accept new geoms. If this is not * necessarily the case, you should use enqueue_geom() instead. * * Normally, this function is not called directly. Call Geom::prepare_now() * instead. * * The GeomContext contains all of the pertinent information needed by the GSG * to keep track of this one particular geom, and will exist as long as the * geom is ready to be rendered. * * When either the Geom or the PreparedGraphicsObjects object destructs, the * GeomContext will be deleted. */ 3 4 this 3 3409 4 geom 1 3262 3 gsg 1 3410 1279 0 0 4 1564 3351 0 0 155 /** * Indicates that a shader would like to be put on the list to be prepared * when the GSG is next ready to do this (presumably at the next frame). */ 2 4 this 3 3409 6 shader 1 3336 1280 0 0 6 1565 3183 0 0 83 /** * Returns true if the shader has been queued on this GSG, false otherwise. */ 2 4 this 3 3609 6 shader 1 3602 1281 0 0 6 1566 3183 0 0 382 /** * Removes a shader from the queued list of shaders to be prepared. Normally * it is not necessary to call this, unless you change your mind about * preparing it at the last minute, since the shader will automatically be * dequeued and prepared at the next frame. * * The return value is true if the shader is successfully dequeued, false if * it had not been queued. */ 2 4 this 3 3409 6 shader 1 3336 1282 0 0 6 1567 3183 0 0 85 /** * Returns true if the shader has been prepared on this GSG, false otherwise. */ 2 4 this 3 3609 6 shader 1 3602 1283 0 0 4 1568 3351 0 0 473 /** * Indicates that a shader context, created by a previous call to * prepare_shader(), is no longer needed. The driver resources will not be * freed until some GSG calls update(), indicating it is at a stage where it * is ready to release shaders--this prevents conflicts from threading or * multiple GSG's sharing shaders (we have no way of knowing which graphics * context is currently active, or what state it's in, at the time * release_shader is called). */ 2 4 this 3 3409 2 sc 1 3605 1284 0 0 6 1569 3182 0 0 181 /** * Releases all shaders at once. This will force them to be reloaded into * shader memory for all GSG's that share this object. Returns the number of * shaders released. */ 1 4 this 3 3409 1285 0 0 6 1570 3182 0 0 95 /** * Returns the number of shaders that have been enqueued to be prepared on * this GSG. */ 1 4 this 3 3609 1286 0 0 6 1571 3182 0 0 85 /** * Returns the number of shaders that have already been prepared on this GSG. */ 1 4 this 3 3609 1287 0 0 6 1572 3605 0 0 717 /** * Immediately creates a new ShaderContext for the indicated shader and * returns it. This assumes that the GraphicsStateGuardian is the currently * active rendering context and that it is ready to accept new shaders. If * this is not necessarily the case, you should use enqueue_shader() instead. * * Normally, this function is not called directly. Call Shader::prepare_now() * instead. * * The ShaderContext contains all of the pertinent information needed by the * GSG to keep track of this one particular shader, and will exist as long as * the shader is ready to be rendered. * * When either the Shader or the PreparedGraphicsObjects object destructs, the * ShaderContext will be deleted. */ 3 4 this 3 3409 6 shader 1 3336 3 gsg 1 3410 1288 0 0 4 1573 3351 0 0 155 /** * Indicates that a buffer would like to be put on the list to be prepared * when the GSG is next ready to do this (presumably at the next frame). */ 2 4 this 3 3409 4 data 1 3218 1289 0 0 6 1574 3183 0 0 93 /** * Returns true if the vertex buffer has been queued on this GSG, false * otherwise. */ 2 4 this 3 3609 4 data 1 3370 1290 0 0 6 1575 3183 0 0 383 /** * Removes a buffer from the queued list of data arrays to be prepared. * Normally it is not necessary to call this, unless you change your mind * about preparing it at the last minute, since the data will automatically be * dequeued and prepared at the next frame. * * The return value is true if the buffer is successfully dequeued, false if * it had not been queued. */ 2 4 this 3 3409 4 data 1 3218 1291 0 0 6 1576 3183 0 0 95 /** * Returns true if the vertex buffer has been prepared on this GSG, false * otherwise. */ 2 4 this 3 3609 4 data 1 3370 1292 0 0 4 1577 3351 0 0 481 /** * Indicates that a data context, created by a previous call to * prepare_vertex_buffer(), is no longer needed. The driver resources will * not be freed until some GSG calls update(), indicating it is at a stage * where it is ready to release datas--this prevents conflicts from threading * or multiple GSG's sharing datas (we have no way of knowing which graphics * context is currently active, or what state it's in, at the time * release_vertex_buffer is called). */ 2 4 this 3 3409 3 vbc 1 3412 1293 0 0 6 1578 3182 0 0 175 /** * Releases all datas at once. This will force them to be reloaded into data * memory for all GSG's that share this object. Returns the number of datas * released. */ 1 4 this 3 3409 1294 0 0 6 1579 3182 0 0 102 /** * Returns the number of vertex buffers that have been enqueued to be prepared * on this GSG. */ 1 4 this 3 3609 1295 0 0 6 1580 3182 0 0 95 /** * Returns the number of vertex buffers that have already been prepared on * this GSG. */ 1 4 this 3 3609 1296 0 0 6 1581 3412 0 0 733 /** * Immediately creates a new VertexBufferContext for the indicated data and * returns it. This assumes that the GraphicsStateGuardian is the currently * active rendering context and that it is ready to accept new datas. If this * is not necessarily the case, you should use enqueue_vertex_buffer() * instead. * * Normally, this function is not called directly. Call Data::prepare_now() * instead. * * The VertexBufferContext contains all of the pertinent information needed by * the GSG to keep track of this one particular data, and will exist as long * as the data is ready to be rendered. * * When either the Data or the PreparedGraphicsObjects object destructs, the * VertexBufferContext will be deleted. */ 3 4 this 3 3409 4 data 1 3218 3 gsg 1 3410 1297 0 0 4 1582 3351 0 0 155 /** * Indicates that a buffer would like to be put on the list to be prepared * when the GSG is next ready to do this (presumably at the next frame). */ 2 4 this 3 3409 4 data 1 3458 1298 0 0 6 1583 3183 0 0 92 /** * Returns true if the index buffer has been queued on this GSG, false * otherwise. */ 2 4 this 3 3609 4 data 1 3459 1299 0 0 6 1584 3183 0 0 383 /** * Removes a buffer from the queued list of data arrays to be prepared. * Normally it is not necessary to call this, unless you change your mind * about preparing it at the last minute, since the data will automatically be * dequeued and prepared at the next frame. * * The return value is true if the buffer is successfully dequeued, false if * it had not been queued. */ 2 4 this 3 3409 4 data 1 3458 1300 0 0 6 1585 3183 0 0 94 /** * Returns true if the index buffer has been prepared on this GSG, false * otherwise. */ 2 4 this 3 3609 4 data 1 3459 1301 0 0 4 1586 3351 0 0 479 /** * Indicates that a data context, created by a previous call to * prepare_index_buffer(), is no longer needed. The driver resources will not * be freed until some GSG calls update(), indicating it is at a stage where * it is ready to release datas--this prevents conflicts from threading or * multiple GSG's sharing datas (we have no way of knowing which graphics * context is currently active, or what state it's in, at the time * release_index_buffer is called). */ 2 4 this 3 3409 3 ibc 1 3611 1302 0 0 6 1587 3182 0 0 175 /** * Releases all datas at once. This will force them to be reloaded into data * memory for all GSG's that share this object. Returns the number of datas * released. */ 1 4 this 3 3409 1303 0 0 6 1588 3182 0 0 101 /** * Returns the number of index buffers that have been enqueued to be prepared * on this GSG. */ 1 4 this 3 3609 1304 0 0 6 1589 3182 0 0 94 /** * Returns the number of index buffers that have already been prepared on this * GSG. */ 1 4 this 3 3609 1305 0 0 6 1590 3611 0 0 726 /** * Immediately creates a new IndexBufferContext for the indicated data and * returns it. This assumes that the GraphicsStateGuardian is the currently * active rendering context and that it is ready to accept new datas. If this * is not necessarily the case, you should use enqueue_index_buffer() instead. * * Normally, this function is not called directly. Call Data::prepare_now() * instead. * * The IndexBufferContext contains all of the pertinent information needed by * the GSG to keep track of this one particular data, and will exist as long * as the data is ready to be rendered. * * When either the Data or the PreparedGraphicsObjects object destructs, the * IndexBufferContext will be deleted. */ 3 4 this 3 3409 4 data 1 3458 3 gsg 1 3410 1306 0 0 4 1591 3351 0 0 155 /** * Indicates that a buffer would like to be put on the list to be prepared * when the GSG is next ready to do this (presumably at the next frame). */ 2 4 this 3 3409 4 data 1 3608 1307 0 0 6 1592 3183 0 0 92 /** * Returns true if the index buffer has been queued on this GSG, false * otherwise. */ 2 4 this 3 3609 4 data 1 3606 1308 0 0 6 1593 3183 0 0 383 /** * Removes a buffer from the queued list of data arrays to be prepared. * Normally it is not necessary to call this, unless you change your mind * about preparing it at the last minute, since the data will automatically be * dequeued and prepared at the next frame. * * The return value is true if the buffer is successfully dequeued, false if * it had not been queued. */ 2 4 this 3 3409 4 data 1 3608 1309 0 0 6 1594 3183 0 0 94 /** * Returns true if the index buffer has been prepared on this GSG, false * otherwise. */ 2 4 this 3 3609 4 data 1 3606 1310 0 0 4 1595 3351 0 0 481 /** * Indicates that a data context, created by a previous call to * prepare_shader_buffer(), is no longer needed. The driver resources will not * be freed until some GSG calls update(), indicating it is at a stage where * it is ready to release datas--this prevents conflicts from threading or * multiple GSG's sharing datas (we have no way of knowing which graphics * context is currently active, or what state it's in, at the time * release_shader_buffer is called). */ 2 4 this 3 3409 2 bc 1 3456 1311 0 0 6 1596 3182 0 0 175 /** * Releases all datas at once. This will force them to be reloaded into data * memory for all GSG's that share this object. Returns the number of datas * released. */ 1 4 this 3 3409 1312 0 0 6 1597 3182 0 0 101 /** * Returns the number of index buffers that have been enqueued to be prepared * on this GSG. */ 1 4 this 3 3609 1313 0 0 6 1598 3182 0 0 94 /** * Returns the number of index buffers that have already been prepared on this * GSG. */ 1 4 this 3 3609 1314 0 0 6 1599 3456 0 0 712 /** * Immediately creates a new BufferContext for the indicated data and * returns it. This assumes that the GraphicsStateGuardian is the currently * active rendering context and that it is ready to accept new datas. If this * is not necessarily the case, you should use enqueue_shader_buffer() instead. * * Normally, this function is not called directly. Call Data::prepare_now() * instead. * * The BufferContext contains all of the pertinent information needed by * the GSG to keep track of this one particular data, and will exist as long * as the data is ready to be rendered. * * When either the Data or the PreparedGraphicsObjects object destructs, the * BufferContext will be deleted. */ 3 4 this 3 3409 4 data 1 3608 3 gsg 1 3410 1315 0 0 7 1605 3458 2129 0 68 /** * Returns the pointer to the client-side array data object. */ 1 4 this 3 3612 1316 0 0 6 1606 3183 0 0 101 /** * Returns true if the data has changed size since the last time mark_loaded() * was called. */ 2 4 this 3 3612 6 reader 1 3614 1317 0 0 6 1607 3183 0 0 111 /** * Returns true if the data has changed its usage hint since the last time * mark_loaded() was called. */ 2 4 this 3 3612 6 reader 1 3614 1318 0 0 6 1608 3183 0 0 102 /** * Returns true if the data has been modified since the last time * mark_loaded() was called. */ 2 4 this 3 3612 6 reader 1 3614 1319 0 0 7 1609 3367 0 0 0 0 1320 0 0 6 1601 3456 0 0 0 1 4 this 3 3611 1321 0 0 6 1603 3356 0 0 0 1 4 this 3 3611 1322 0 0 7 1613 3619 2954 0 0 1 4 this 3 3617 1323 0 0 6 1614 3183 0 0 447 /** * Given a 2-d point in the range (-1,1) in both dimensions, where (0,0) is * the center of the lens and (-1,-1) is the lower-left corner, compute the * corresponding vector in space that maps to this point, if such a vector can * be determined. The vector is returned by indicating the points on the near * plane and far plane that both map to the indicated 2-d point. * * Returns true if the vector is defined, or false otherwise. */ 4 4 this 3 3617 7 point2d 1 3620 10 near_point 1 3624 9 far_point 1 3624 1324 0 0 6 1614 3183 0 0 499 /** * Given a 2-d point in the range (-1,1) in both dimensions, where (0,0) is * the center of the lens and (-1,-1) is the lower-left corner, compute the * corresponding vector in space that maps to this point, if such a vector can * be determined. The vector is returned by indicating the points on the near * plane and far plane that both map to the indicated 2-d point. * * The z coordinate of the 2-d point is ignored. * * Returns true if the vector is defined, or false otherwise. */ 4 4 this 3 3617 7 point2d 1 3625 10 near_point 1 3624 9 far_point 1 3624 1325 0 0 6 1615 3183 0 0 262 /** * Uses the depth component of the 3-d result from project() to compute the * original point in 3-d space corresponding to a particular point on the * lens. This exactly reverses project(), assuming the point does fall * legitimately within the lens. */ 3 4 this 3 3617 7 point2d 1 3625 7 point3d 1 3624 1326 0 0 6 1616 3183 0 0 513 /** * Given a 2-d point in the range (-1,1) in both dimensions, where (0,0) is * the center of the lens and (-1,-1) is the lower-left corner, compute the * vector that corresponds to the view direction. This will be parallel to * the normal on the surface (the far plane) corresponding to the lens shape * at this point. * * See the comment block on Lens::extrude_vec_impl() for a more in-depth * comment on the meaning of this vector. * * Returns true if the vector is defined, or false otherwise. */ 3 4 this 3 3617 7 point2d 1 3620 5 vec3d 1 3627 1327 0 0 6 1616 3183 0 0 565 /** * Given a 2-d point in the range (-1,1) in both dimensions, where (0,0) is * the center of the lens and (-1,-1) is the lower-left corner, compute the * vector that corresponds to the view direction. This will be parallel to * the normal on the surface (the far plane) corresponding to the lens shape * at this point. * * See the comment block on Lens::extrude_vec_impl() for a more in-depth * comment on the meaning of this vector. * * The z coordinate of the 2-d point is ignored. * * Returns true if the vector is defined, or false otherwise. */ 3 4 this 3 3617 7 point2d 1 3625 5 vec3d 1 3627 1328 0 0 6 1617 3183 0 0 449 /** * Given a 3-d point in space, determine the 2-d point this maps to, in the * range (-1,1) in both dimensions, where (0,0) is the center of the lens and * (-1,-1) is the lower-left corner. * * Returns true if the 3-d point is in front of the lens and within the * viewing frustum (in which case point2d is filled in), or false otherwise * (in which case point2d will be filled in with something, which may or may * not be meaningful). */ 3 4 this 3 3617 7 point3d 1 3625 7 point2d 1 3629 1329 0 0 6 1617 3183 0 0 618 /** * Given a 3-d point in space, determine the 2-d point this maps to, in the * range (-1,1) in both dimensions, where (0,0) is the center of the lens and * (-1,-1) is the lower-left corner. * * The z coordinate will also be set to a value in the range (-1, 1), where 1 * represents a point on the near plane, and -1 represents a point on the far * plane. * * Returns true if the 3-d point is in front of the lens and within the * viewing frustum (in which case point2d is filled in), or false otherwise * (in which case point2d will be filled in with something, which may or may * not be meaningful). */ 3 4 this 3 3617 7 point3d 1 3625 7 point2d 1 3624 1330 0 0 4 1618 3351 0 0 343 /** * Sets the name of the event that will be generated whenever any properties * of the Lens have changed. If this is not set for a particular lens, no * event will be generated. * * The event is thrown with one parameter, the lens itself. This can be used * to automatically track changes to camera fov, etc. in the application. */ 2 4 this 3 3619 5 event 1 3347 1331 0 0 6 1619 3347 0 0 128 /** * Returns the name of the event that will be generated whenever any * properties of this particular Lens have changed. */ 1 4 this 3 3617 1332 0 0 4 1621 3351 0 0 138 /** * Specifies the coordinate system that all 3-d computations are performed * within for this Lens. Normally, this is CS_default. */ 2 4 this 3 3619 2 cs 1 3308 1333 0 0 6 1622 3308 0 0 136 /** * Returns the coordinate system that all 3-d computations are performed * within for this Lens. Normally, this is CS_default. */ 1 4 this 3 3617 1334 0 0 4 1625 3351 0 0 72 /** * Resets all lens parameters to their initial default settings. */ 1 4 this 3 3619 1335 0 0 4 1626 3351 0 0 767 /** * Sets the size and shape of the "film" within the lens. This both * establishes the units used by calls like set_focal_length(), and * establishes the aspect ratio of the frame. * * In a physical camera, the field of view of a lens is determined by the * lens' focal length and by the size of the film area exposed by the lens. * For instance, a 35mm camera exposes a rectangle on the film about 24mm x * 36mm, which means a 50mm lens gives about a 40-degree horizontal field of * view. * * In the virtual camera, you may set the film size to any units here, and * specify a focal length in the same units to simulate the same effect. Or, * you may ignore this parameter, and specify the field of view and aspect * ratio of the lens directly. */ 2 4 this 3 3619 9 film_size 1 3539 1336 0 0 4 1626 3351 0 0 206 /** * Sets the horizontal size of the film without changing its shape. The * aspect ratio remains unchanged; this computes the vertical size of the film * to automatically maintain the aspect ratio. */ 2 4 this 3 3619 5 width 1 3225 1337 0 0 4 1626 3351 0 0 767 /** * Sets the size and shape of the "film" within the lens. This both * establishes the units used by calls like set_focal_length(), and * establishes the aspect ratio of the frame. * * In a physical camera, the field of view of a lens is determined by the * lens' focal length and by the size of the film area exposed by the lens. * For instance, a 35mm camera exposes a rectangle on the film about 24mm x * 36mm, which means a 50mm lens gives about a 40-degree horizontal field of * view. * * In the virtual camera, you may set the film size to any units here, and * specify a focal length in the same units to simulate the same effect. Or, * you may ignore this parameter, and specify the field of view and aspect * ratio of the lens directly. */ 3 4 this 3 3619 5 width 1 3225 6 height 1 3225 1338 0 0 6 1627 3539 0 0 102 /** * Returns the horizontal and vertical film size of the virtual film. See * set_film_size(). */ 1 4 this 3 3617 1339 0 0 4 1632 3351 0 0 193 /** * Sets the horizontal and vertical offset amounts of this Lens. These are * both in the same units specified in set_film_size(). * * This can be used to establish an off-axis lens. */ 2 4 this 3 3619 11 film_offset 1 3539 1340 0 0 4 1632 3351 0 0 193 /** * Sets the horizontal and vertical offset amounts of this Lens. These are * both in the same units specified in set_film_size(). * * This can be used to establish an off-axis lens. */ 3 4 this 3 3619 1 x 1 3225 1 y 1 3225 1341 0 0 6 1633 3630 0 0 102 /** * Returns the horizontal and vertical offset amounts of this Lens. See * set_film_offset(). */ 1 4 this 3 3617 1342 0 0 4 1638 3351 0 0 246 /** * Sets the focal length of the lens. This may adjust the field-of-view * correspondingly, and is an alternate way to specify field of view. * * For certain kinds of lenses (e.g. OrthographicLens), the focal length has * no meaning. */ 2 4 this 3 3619 12 focal_length 1 3225 1343 0 0 6 1639 3225 0 0 257 /** * Returns the focal length of the lens. This may have been set explicitly by * a previous call to set_focal_length(), or it may be computed based on the * lens' fov and film_size. For certain kinds of lenses, the focal length has * no meaning. */ 1 4 this 3 3617 1344 0 0 4 1641 3351 0 0 499 /** * Sets the field of view of the smallest dimension of the window. If the * window is wider than it is tall, this specifies the vertical field of view; * if it is taller than it is wide, this specifies the horizontal field of * view. * * In many cases, this is preferable to setting either the horizontal or * vertical field of view explicitly. Setting this parameter means that * pulling the window wider will widen the field of view, which is usually * what you expect to happen. */ 2 4 this 3 3619 7 min_fov 1 3225 1345 0 0 4 1642 3351 0 0 334 /** * Sets the field of view of the lens in both dimensions. This establishes * both the field of view and the aspect ratio of the lens. This is one way * to specify the field of view of a lens; set_focal_length() is another way. * * For certain kinds of lenses (like OrthographicLens), the field of view has * no meaning. */ 2 4 this 3 3619 3 fov 1 3539 1346 0 0 4 1642 3351 0 0 172 /** * Sets the horizontal field of view of the lens without changing the aspect * ratio. The vertical field of view is adjusted to maintain the same aspect * ratio. */ 2 4 this 3 3619 3 fov 1 3225 1347 0 0 4 1642 3351 0 0 327 /** * Sets the field of view of the lens in both dimensions. This establishes * both the field of view and the aspect ratio of the lens. This is one way * to specify the field of view of a lens; set_focal_length() is another way. * * For certain kinds of lenses (like OrthoLens), the field of view has no * meaning. */ 3 4 this 3 3619 4 hfov 1 3225 4 vfov 1 3225 1348 0 0 6 1643 3539 0 0 96 /** * Returns the horizontal and vertical film size of the virtual film. See * set_fov(). */ 1 4 this 3 3617 1349 0 0 6 1644 3225 0 0 72 /** * Returns the horizontal component of fov only. See get_fov(). */ 1 4 this 3 3617 1350 0 0 6 1645 3225 0 0 70 /** * Returns the vertical component of fov only. See get_fov(). */ 1 4 this 3 3617 1351 0 0 6 1646 3225 0 0 101 /** * Returns the field of view of the narrowest dimension of the window. See * set_min_fov(). */ 1 4 this 3 3617 1352 0 0 4 1649 3351 0 0 189 /** * Sets the aspect ratio of the lens. This is the ratio of the height to the * width of the generated image. Setting this overrides the two-parameter fov * or film size setting. */ 2 4 this 3 3619 12 aspect_ratio 1 3225 1353 0 0 6 1650 3225 0 0 126 /** * Returns the aspect ratio of the Lens. This is determined based on the * indicated film size; see set_film_size(). */ 1 4 this 3 3617 1354 0 0 4 1652 3351 0 0 142 /** * Defines the position of the near plane (or cylinder, sphere, whatever). * Points closer to the lens than this may not be rendered. */ 2 4 this 3 3619 13 near_distance 1 3225 1355 0 0 6 1653 3225 0 0 82 /** * Returns the position of the near plane (or cylinder, sphere, whatever). */ 1 4 this 3 3617 1356 0 0 4 1654 3351 0 0 144 /** * Defines the position of the far plane (or cylinder, sphere, whatever). * Points farther from the lens than this may not be rendered. */ 2 4 this 3 3619 12 far_distance 1 3225 1357 0 0 6 1655 3225 0 0 81 /** * Returns the position of the far plane (or cylinder, sphere, whatever). */ 1 4 this 3 3617 1358 0 0 4 1656 3351 0 0 58 /** * Simultaneously changes the near and far planes. */ 3 4 this 3 3619 13 near_distance 1 3225 12 far_distance 1 3225 1359 0 0 6 1659 3225 0 0 143 /** * Returns the default near plane distance that will be assigned to each * newly-created lens. This is read from the Config.prc file. */ 0 1360 0 0 6 1660 3225 0 0 143 /** * Returns the default far plane distance that will be assigned to each newly- * created lens. This is read from the Config.prc file. */ 0 1361 0 0 4 1661 3351 0 0 311 /** * Sets the direction in which the lens is facing. Normally, this is down the * forward axis (usually the Y axis), but it may be rotated. This is only one * way of specifying the rotation; you may also specify an explicit vector in * which to look, or you may give a complete transformation matrix. */ 2 4 this 3 3619 8 view_hpr 1 3540 1362 0 0 4 1661 3351 0 0 311 /** * Sets the direction in which the lens is facing. Normally, this is down the * forward axis (usually the Y axis), but it may be rotated. This is only one * way of specifying the rotation; you may also specify an explicit vector in * which to look, or you may give a complete transformation matrix. */ 4 4 this 3 3619 1 h 1 3225 1 p 1 3225 1 r 1 3225 1363 0 0 6 1662 3540 0 0 61 /** * Returns the direction in which the lens is facing. */ 1 4 this 3 3617 1364 0 0 4 1667 3351 0 0 185 /** * Specifies the direction in which the lens is facing by giving an axis to * look along, and a perpendicular (or at least non-parallel) up axis. * * See also set_view_hpr(). */ 3 4 this 3 3619 11 view_vector 1 3631 9 up_vector 1 3631 1365 0 0 4 1667 3351 0 0 185 /** * Specifies the direction in which the lens is facing by giving an axis to * look along, and a perpendicular (or at least non-parallel) up axis. * * See also set_view_hpr(). */ 7 4 this 3 3619 1 x 1 3225 1 y 1 3225 1 z 1 3225 1 i 1 3225 1 j 1 3225 1 k 1 3225 1366 0 0 6 1668 3631 0 0 59 /** * Returns the axis along which the lens is facing. */ 1 4 this 3 3617 1367 0 0 6 1669 3631 0 0 107 /** * Returns the axis perpendicular to the camera's view vector that indicates * the "up" direction. */ 1 4 this 3 3617 1368 0 0 7 1670 3624 0 0 93 /** * Returns the center point of the lens: the point from which the lens is * viewing. */ 1 4 this 3 3617 1369 0 0 4 1674 3351 0 0 459 /** * Sets the distance between the left and right eyes of a stereo camera. This * distance is used to apply a stereo effect when the lens is rendered on a * stereo display region. It only has an effect on a PerspectiveLens. * * The left eye and the right eye are each offset along the X axis by half of * this distance, so that this parameter specifies the total distance between * them. * * Also see set_convergence_distance(), which relates. */ 2 4 this 3 3619 20 interocular_distance 1 3225 1370 0 0 6 1675 3225 0 0 42 /** * See set_interocular_distance(). */ 1 4 this 3 3617 1371 0 0 4 1676 3351 0 0 1332 /** * Sets the distance between between the camera plane and the point in the * distance that the left and right eyes are both looking at. This distance * is used to apply a stereo effect when the lens is rendered on a stereo * display region. It only has an effect on a PerspectiveLens. * * This parameter must be greater than 0, but may be as large as you like. It * controls the distance at which the two stereo images will appear to * converge, which is a normal property of stereo vision. Normally this * should be set to the distance from the camera to the area of interest in * your scene. Anything beyond this distance will appear to go into the * screen, and anything closer will appear to come out of the screen. If you * want to simulate parallel stereo, set this to infinity. * * Note that this creates an off-axis frustum, which means that the lenses are * still pointing in the same direction, which is usually more desirable than * the more naive toe-in approach, where the two lenses are simply tilted * toward each other. * * Prior to Panda3D 1.9.0, the convergence was being calculated incorrectly. * It has since been corrected. To restore the legacy behavior you can set * the stereo-lens-old-convergence variable to true. * * Also see set_interocular_distance(), which relates. */ 2 4 this 3 3619 20 convergence_distance 1 3225 1372 0 0 6 1677 3225 0 0 42 /** * See set_convergence_distance(). */ 1 4 this 3 3617 1373 0 0 4 1680 3351 0 0 489 /** * Sets an arbitrary transformation on the lens. This replaces the individual * transformation components like set_view_hpr(). * * Setting a transformation here will have a slightly different effect than * putting one on the LensNode that contains this lens. In particular, * lighting and other effects computations will still be performed on the lens * in its untransformed (facing forward) position, but the actual projection * matrix will be transformed by this matrix. */ 2 4 this 3 3619 8 view_mat 1 3423 1374 0 0 6 1681 3423 0 0 61 /** * Returns the direction in which the lens is facing. */ 1 4 this 3 3617 1375 0 0 4 1682 3351 0 0 49 /** * Resets the lens transform to identity. */ 1 4 this 3 3619 1376 0 0 4 1687 3351 0 0 617 /** * Indicates the ratio of keystone correction to perform on the lens, in each * of three axes. This will build a special non-affine scale factor into the * projection matrix that will compensate for keystoning of a projected image; * this can be used to compensate for a projector that for physical reasons * cannot be aimed directly at its screen. * * The default value is taken from the default-keystone Config variable. 0, 0 * indicates no keystone correction; specify a small value (usually in the * range -1 .. 1) in either the x or y position to generate a keystone * correction in that axis. */ 2 4 this 3 3619 8 keystone 1 3539 1377 0 0 6 1688 3539 0 0 66 /** * Returns the keystone correction specified for the lens. */ 1 4 this 3 3617 1378 0 0 4 1689 3351 0 0 49 /** * Disables the lens keystone correction. */ 1 4 this 3 3619 1379 0 0 4 1691 3351 0 0 425 /** * Specifies a custom matrix to transform the points on the film after they * have been converted into nominal film space (-1 .. 1 in U and V). This can * be used to introduce arbitrary scales, rotations, or other linear * transforms to the media plane. This is normally a 2-d matrix, but a full * 4x4 matrix may be specified. This is applied on top of any film size, lens * shift, and/or keystone correction. */ 2 4 this 3 3619 15 custom_film_mat 1 3423 1380 0 0 6 1692 3423 0 0 62 /** * Returns the custom_film_mat specified for the lens. */ 1 4 this 3 3617 1381 0 0 4 1693 3351 0 0 56 /** * Disables the lens custom_film_mat correction. */ 1 4 this 3 3619 1382 0 0 4 1695 3351 0 0 2189 /** * Sets up the lens to use the frustum defined by the four indicated points. * This is most useful for a PerspectiveLens, but it may be called for other * kinds of lenses as well. * * The frustum will be rooted at the origin (or by whatever translation might * have been specified in a previous call to set_view_mat). * * It is legal for the four points not to be arranged in a rectangle; if this * is the case, the frustum will be fitted as tightly as possible to cover all * four points. * * The flags parameter contains the union of one or more of the following bits * to control the behavior of this function: * * FC_roll - If this is included, the camera may be rotated so that its up * vector is perpendicular to the top line. Otherwise, the standard up vector * is used. * * FC_camera_plane - This allows the camera plane to be adjusted to be as * nearly perpendicular to the center of the frustum as possible. Without * this bit, the orientation camera plane is defined by position of the four * points (which should all be coplanar). With this bit, the camera plane is * arbitarary, and may be chosen so that the four points do not themselves lie * in the camera plane (but the points will still be within the frustum). * * FC_off_axis - This allows the resulting frustum to be off-axis to get the * tightest possible fit. Without this bit, the viewing axis will be centered * within the frustum, but there may be more wasted space along the edges. * * FC_aspect_ratio - This allows the frustum to be scaled non-proportionately * in the vertical and horizontal dimensions, if necessary, to get a tighter * fit. Without this bit, the current aspect ratio will be preserved. * * FC_shear - This allows the frustum to be sheared, if necessary, to get the * tightest possible fit. This may result in a parallelogram-based frustum, * which will give a slanted appearance to the rendered image. Without this * bit, the frustum will be rectangle-based. * * In general, if 0 is passed in as the value for flags, the generated frustum * will be a loose fit but sane; if -1 is passed in, it will be a tighter fit * and possibly screwy. */ 6 4 this 3 3619 2 ul 1 3540 2 ur 1 3540 2 ll 1 3540 2 lr 1 3540 5 flags 1 3182 1383 0 0 4 1696 3351 0 0 169 /** * Forces all internal parameters of the Lens to be recomputed. Normally, * this should never need to be called; it is provided only to assist in * debugging. */ 1 4 this 3 3619 1384 0 0 6 1697 3183 0 0 206 /** * Returns true if the lens represents a linear projection (e.g. * PerspectiveLens, OrthographicLens), and therefore there is a valid matrix * returned by get_projection_mat(), or false otherwise. */ 1 4 this 3 3617 1385 0 0 6 1698 3183 0 0 124 /** * Returns true if the lens represents a perspective projection (i.e. it is a * PerspectiveLens), false otherwise. */ 1 4 this 3 3617 1386 0 0 6 1699 3183 0 0 126 /** * Returns true if the lens represents a orthographic projection (i.e. it is * a OrthographicLens), false otherwise. */ 1 4 this 3 3617 1387 0 0 7 1700 3262 2265 0 236 /** * Allocates and returns a new Geom that can be rendered to show a visible * representation of the frustum used for this kind of lens, if it makes sense * to do so. If a visible representation cannot be created, returns NULL. */ 1 4 this 3 3619 1388 0 0 7 1701 3633 0 0 190 /** * Allocates and returns a new BoundingVolume that encloses the frustum used * for this kind of lens, if possible. If a suitable bounding volume cannot * be created, returns NULL. */ 1 4 this 3 3617 1389 0 0 6 1702 3423 0 0 183 /** * Returns the complete transformation matrix from a 3-d point in space to a * point on the film, if such a matrix exists, or the identity matrix if the * lens is nonlinear. */ 2 4 this 3 3617 7 channel 1 3307 1390 0 0 6 1703 3423 0 0 128 /** * Returns the matrix that transforms from a 2-d point on the film to a 3-d * vector in space, if such a matrix exists. */ 2 4 this 3 3617 7 channel 1 3307 1391 0 0 6 1704 3423 0 0 101 /** * Returns the matrix that transforms from a point behind the lens to a point * on the film. */ 1 4 this 3 3617 1392 0 0 6 1705 3423 0 0 101 /** * Returns the matrix that transforms from a point on the film to a point * behind the lens. */ 1 4 this 3 3617 1393 0 0 6 1706 3423 0 0 103 /** * Returns the matrix that transforms from a point in front of the lens to a * point in space. */ 1 4 this 3 3617 1394 0 0 6 1707 3423 0 0 103 /** * Returns the matrix that transforms from a point in space to a point in * front of the lens. */ 1 4 this 3 3617 1395 0 0 4 1708 3351 0 0 10 /** * */ 2 4 this 3 3617 3 out 1 3352 1396 0 0 4 1709 3351 0 0 10 /** * */ 3 4 this 3 3617 3 out 1 3352 12 indent_level 1 3182 1397 0 0 7 1710 3403 0 0 192 /** * Returns the UpdateSeq that is incremented whenever the lens properties are * changed. As long as this number remains the same, you may assume the lens * properties are unchanged. */ 1 4 this 3 3617 1398 0 0 7 1711 3367 0 0 0 0 1399 0 0 7 1718 3636 2961 0 10 /** * */ 1 4 copy 1 3634 1400 0 0 7 1718 3636 2961 0 10 /** * */ 1 4 name 1 3347 1401 0 0 7 1719 3636 2961 0 0 2 4 this 3 3636 4 copy 1 3634 1402 0 0 7 1721 3636 2961 0 40 /** * Returns the default material. */ 0 1403 0 0 6 1722 3183 0 0 104 /** * Returns true if the base color has been explicitly set for this material, * false otherwise. */ 1 4 this 3 3634 1404 0 0 6 1723 3450 0 0 162 /** * Returns the base_color color setting, if it has been set. If neither the * base color nor the metallic have been set, this returns the diffuse color. */ 1 4 this 3 3634 1405 0 0 4 1724 3351 0 0 444 /** * Specifies the base color of the material. In conjunction with * set_metallic, this is an alternate way to specify the color of a material. * For dielectrics, this will determine the value of the diffuse color, and * for metals, this will determine the value of the specular color. * * Setting this will clear an explicit specular, diffuse or ambient color * assignment. * * If this is not set, the object color will be used. */ 2 4 this 3 3636 5 color 1 3450 1406 0 0 4 1725 3351 0 0 67 /** * Removes the explicit base_color color from the material. */ 1 4 this 3 3636 1407 0 0 6 1726 3183 0 0 107 /** * Returns true if the ambient color has been explicitly set for this * material, false otherwise. */ 1 4 this 3 3634 1408 0 0 6 1727 3450 0 0 126 /** * Returns the ambient color setting, if it has been set. Returns (0,0,0,0) * if the ambient color has not been set. */ 1 4 this 3 3634 1409 0 0 4 1728 3351 0 0 313 /** * Specifies the ambient color setting of the material. This will be the * multiplied by any ambient lights in effect on the material to set its base * color. * * This is the color of the object as it appears in the absence of direct * light. * * If this is not set, the object color will be used. */ 2 4 this 3 3636 5 color 1 3450 1410 0 0 4 1729 3351 0 0 64 /** * Removes the explicit ambient color from the material. */ 1 4 this 3 3636 1411 0 0 6 1730 3183 0 0 107 /** * Returns true if the diffuse color has been explicitly set for this * material, false otherwise. */ 1 4 this 3 3634 1412 0 0 6 1731 3450 0 0 126 /** * Returns the diffuse color setting, if it has been set. Returns (1,1,1,1) * if the diffuse color has not been set. */ 1 4 this 3 3634 1413 0 0 4 1732 3351 0 0 396 /** * Specifies the diffuse color setting of the material. This will be * multiplied by any lights in effect on the material to get the color in the * parts of the object illuminated by the lights. * * This is the primary color of an object; the color of the object as it * appears in direct light, in the absence of highlights. * * If this is not set, the object color will be used. */ 2 4 this 3 3636 5 color 1 3450 1414 0 0 4 1733 3351 0 0 64 /** * Removes the explicit diffuse color from the material. */ 1 4 this 3 3636 1415 0 0 6 1734 3183 0 0 108 /** * Returns true if the specular color has been explicitly set for this * material, false otherwise. */ 1 4 this 3 3634 1416 0 0 6 1735 3450 0 0 128 /** * Returns the specular color setting, if it has been set. Returns (0,0,0,0) * if the specular color has not been set. */ 1 4 this 3 3634 1417 0 0 4 1736 3351 0 0 448 /** * Specifies the specular color setting of the material. This will be * multiplied by any lights in effect on the material to compute the color of * specular highlights on the object. * * This is the highlight color of an object: the color of small highlight * reflections. * * If this is not set, the specular color is taken from the index of * refraction, which is 1 by default (meaning no specular reflections are * generated). */ 2 4 this 3 3636 5 color 1 3450 1418 0 0 4 1737 3351 0 0 65 /** * Removes the explicit specular color from the material. */ 1 4 this 3 3636 1419 0 0 6 1738 3183 0 0 108 /** * Returns true if the emission color has been explicitly set for this * material, false otherwise. */ 1 4 this 3 3634 1420 0 0 6 1739 3450 0 0 128 /** * Returns the emission color setting, if it has been set. Returns (0,0,0,0) * if the emission color has not been set. */ 1 4 this 3 3634 1421 0 0 4 1740 3351 0 0 437 /** * Specifies the emission color setting of the material. This is the color of * the object as it appears in the absence of any light whatsover, including * ambient light. It is as if the object is glowing by this color (although * of course it will not illuminate neighboring objects). * * If this is not set, the object will not glow by its own light and will only * appear visible in the presence of one or more lights. */ 2 4 this 3 3636 5 color 1 3450 1422 0 0 4 1741 3351 0 0 65 /** * Removes the explicit emission color from the material. */ 1 4 this 3 3636 1423 0 0 6 1742 3225 0 0 58 /** * Returns the shininess exponent of the material. */ 1 4 this 3 3634 1424 0 0 4 1743 3351 0 0 429 /** * Sets the shininess exponent of the material. This controls the size of the * specular highlight spot. In general, larger number produce a smaller * specular highlight, which makes the object appear shinier. Smaller numbers * produce a larger highlight, which makes the object appear less shiny. * * This is usually in the range 0..128. * * Setting a shininess value removes any previous roughness assignment. */ 2 4 this 3 3636 9 shininess 1 3225 1425 0 0 6 1744 3183 0 0 103 /** * Returns true if the roughness has been explicitly set for this material, * false otherwise. */ 1 4 this 3 3634 1426 0 0 6 1745 3225 0 0 152 /** * Returns the roughness previously specified by set_roughness. If none was * previously set, this value is computed from the shininess value. */ 1 4 this 3 3634 1427 0 0 4 1746 3351 0 0 379 /** * Sets the roughness exponent of the material, where 0 is completely shiny * (infinite shininess), and 1 is a completely dull object (0 shininess). * This is a different, more perceptually intuitive way of controlling the * size of the specular spot, and more commonly used in physically-based * rendering. * * Setting a roughness recalculates the shininess value. */ 2 4 this 3 3636 9 roughness 1 3225 1428 0 0 6 1747 3183 0 0 102 /** * Returns true if the metallic has been explicitly set for this material, * false otherwise. */ 1 4 this 3 3634 1429 0 0 6 1748 3225 0 0 98 /** * Returns the metallic setting, if it has been set. Returns 0 if it has not * been set. */ 1 4 this 3 3634 1430 0 0 4 1749 3351 0 0 369 /** * Sets the metallic setting of the material, which is is used for physically- * based rendering models. This is usually 0 for dielectric materials and 1 * for metals. It really does not make sense to set this to a value other * than 0 or 1, but it is nonetheless a float for compatibility with tools * that allow setting this to values other than 0 or 1. */ 2 4 this 3 3636 8 metallic 1 3225 1431 0 0 4 1750 3351 0 0 67 /** * Removes the explicit metallic setting from the material. */ 1 4 this 3 3636 1432 0 0 6 1751 3183 0 0 97 /** * Returns true if a refractive index has explicitly been specified for this * material. */ 1 4 this 3 3634 1433 0 0 6 1752 3225 0 0 91 /** * Returns the index of refraction, or 1 if none has been set for this * material. */ 1 4 this 3 3634 1434 0 0 4 1753 3351 0 0 356 /** * Sets the index of refraction of the material, which is used to determine * the specular color in absence of an explicit specular color assignment. * This is usually 1.5 for dielectric materials. It is not very useful for * metals, since they cannot be described as easily with a single number. * * Should be 1 or higher. The default is 1. */ 2 4 this 3 3636 16 refractive_index 1 3225 1435 0 0 6 1754 3183 0 0 59 /** * Returns the local viewer flag. Set set_local(). */ 1 4 this 3 3634 1436 0 0 4 1755 3351 0 0 252 /** * Sets the local viewer flag. Set this true to enable camera-relative * specular highlights, or false to use orthogonal specular highlights. The * default value is true. Applications that use orthogonal projection should * specify false. */ 2 4 this 3 3636 5 local 1 3183 1437 0 0 6 1756 3183 0 0 80 /** * Returns the state of the two-sided lighting flag. See set_twoside(). */ 1 4 this 3 3634 1438 0 0 4 1757 3351 0 0 241 /** * Set this true to enable two-sided lighting. When two-sided lighting is on, * both sides of a polygon will be lit by this material. The default is for * two-sided lighting to be off, in which case only the front surface is lit. */ 2 4 this 3 3636 7 twoside 1 3183 1439 0 0 6 1758 3183 0 0 0 2 4 this 3 3634 5 other 1 3634 1440 0 0 6 1759 3183 0 0 0 2 4 this 3 3634 5 other 1 3634 1441 0 0 6 1760 3183 0 0 0 2 4 this 3 3634 5 other 1 3634 1442 0 0 6 1761 3182 0 0 266 /** * Returns a number less than zero if this material sorts before the other * one, greater than zero if it sorts after, or zero if they are equivalent. * The sorting order is arbitrary and largely meaningless, except to * differentiate different materials. */ 2 4 this 3 3634 5 other 1 3634 1443 0 0 4 1762 3351 0 0 10 /** * */ 2 4 this 3 3634 3 out 1 3352 1444 0 0 4 1763 3351 0 0 10 /** * */ 3 4 this 3 3634 3 out 1 3352 6 indent 1 3182 1445 0 0 6 1764 3183 0 0 62 /** * @deprecated This no longer has any meaning in 1.10. */ 1 4 this 3 3634 1446 0 0 4 1765 3351 0 0 62 /** * @deprecated This no longer has any meaning in 1.10. */ 1 4 this 3 3636 1447 0 0 7 1777 3367 0 0 0 0 1448 0 0 7 1714 3246 0 0 0 1 4 this 3 3636 1449 0 0 6 1716 3379 0 0 0 1 4 this 3 3636 1450 0 0 7 1779 3636 2961 0 657 /** * Returns a Material pointer that represents the same material described by * temp, except that it is a shared pointer. * * Each call to get_material() passing an equivalent Material pointer will * return the same shared pointer. * * If you modify the shared pointer, it will automatically disassociate it * from the pool. * * Also, the return value may be a different pointer than that passed in, or * it may be the same pointer. In either case, the passed in pointer has now * been sacrificed to the greater good and should not be used again (like any * other PointerTo, it will be freed when the last reference count is * removed). */ 1 4 temp 1 3636 1451 0 0 4 1780 3351 0 0 56 /** * Removes the indicated material from the pool. */ 1 4 temp 1 3636 1452 0 0 4 1781 3351 0 0 90 /** * Releases all materials in the pool and restores the pool to the empty * state. */ 0 1453 0 0 6 1782 3182 0 0 215 /** * Releases only those materials in the pool that have a reference count of * exactly 1; i.e. only those materials that are not being used outside of * the pool. Returns the number of materials released. */ 0 1454 0 0 4 1783 3351 0 0 82 /** * Lists the contents of the material pool to the indicated output stream. */ 1 3 out 1 3352 1455 0 0 4 1784 3351 0 0 82 /** * Lists the contents of the material pool to the indicated output stream. */ 1 3 out 1 3352 1456 0 0 7 1787 3637 3027 0 10 /** * */ 0 1457 0 0 4 1788 3351 0 0 559 /** * Explicitly specifies the projection matrix. This matrix should convert X * and Y to the range [-film_size/2, film_size/2], where (-fs/2,-fs/2) is the * lower left corner of the screen and (fs/2, fs/2) is the upper right. Z * should go to the range [-1, 1], where -1 is the far plane and 1 is the near * plane. Note that this is a left-handed Y-up coordinate system. * * The default film_size for a MatrixLens is 2, so the default range is [-1, * 1] for both X and Y. This is consistent with the GL conventions for * projection matrices. */ 2 4 this 3 3637 8 user_mat 1 3423 1458 0 0 6 1789 3423 0 0 161 /** * Returns the explicit projection matrix as set by the user. This does not * include transforms on the lens or film (e.g. a film offset or view hpr). */ 1 4 this 3 3638 1459 0 0 4 1791 3351 0 0 424 /** * Sets a custom projection matrix for the left eye. This is only used if the * lens is attached to a stereo camera, in which case the left eye matrix will * be used to draw the scene in the left eye (but the center matrix--the * user_mat--will still be used to cull the scene). * * This matrix should not be too different from the center matrix (set by * set_user_mat()) or culling errors may become obvious. */ 2 4 this 3 3637 8 user_mat 1 3423 1460 0 0 4 1792 3351 0 0 130 /** * Removes the custom projection matrix set for the left eye, and uses the * center matrix (set by set_user_mat) instead. */ 1 4 this 3 3637 1461 0 0 6 1793 3183 0 0 179 /** * Returns true if the camera has a custom projection matrix set for the left * eye, or false if the center matrix (set by set_user_mat) will be used for * the left eye. */ 1 4 this 3 3638 1462 0 0 6 1794 3423 0 0 148 /** * Returns the custom projection matrix for the left eye, if any, or the * center matrix if there is no custom matrix set for the left eye. */ 1 4 this 3 3638 1463 0 0 4 1795 3351 0 0 427 /** * Sets a custom projection matrix for the right eye. This is only used if * the lens is attached to a stereo camera, in which case the right eye matrix * will be used to draw the scene in the right eye (but the center matrix--the * user_mat--will still be used to cull the scene). * * This matrix should not be too different from the center matrix (set by * set_user_mat()) or culling errors may become obvious. */ 2 4 this 3 3637 8 user_mat 1 3423 1464 0 0 4 1796 3351 0 0 131 /** * Removes the custom projection matrix set for the right eye, and uses the * center matrix (set by set_user_mat) instead. */ 1 4 this 3 3637 1465 0 0 6 1797 3183 0 0 181 /** * Returns true if the camera has a custom projection matrix set for the right * eye, or false if the center matrix (set by set_user_mat) will be used for * the right eye. */ 1 4 this 3 3638 1466 0 0 6 1798 3423 0 0 150 /** * Returns the custom projection matrix for the right eye, if any, or the * center matrix if there is no custom matrix set for the right eye. */ 1 4 this 3 3638 1467 0 0 7 1799 3367 0 0 0 0 1468 0 0 7 1802 3640 3030 0 10 /** * */ 0 1469 0 0 7 1803 3367 0 0 0 0 1470 0 0 7 1807 3641 3035 0 94 /** * Creates a new ParamTextureSampler storing the given texture and sampler * objects. */ 2 3 tex 1 3330 7 sampler 1 3569 1471 0 0 7 1808 3330 2564 0 57 /** * Retrieves the texture stored in the parameter. */ 1 4 this 3 3642 1472 0 0 6 1809 3569 0 0 63 /** * Retrieves the sampler state stored in the parameter. */ 1 4 this 3 3642 1473 0 0 7 1813 3367 0 0 0 0 1474 0 0 7 1816 3644 3044 0 101 /** * Creates a new ParamTextureImage storing the given texture and image binding * parameters. */ 5 3 tex 1 3330 4 read 1 3183 5 write 1 3183 1 z 1 3182 1 n 1 3182 1475 0 0 7 1817 3330 2564 0 57 /** * Retrieves the texture stored in the parameter. */ 1 4 this 3 3645 1476 0 0 6 1818 3183 0 0 79 /** * Returns true if this image should be bound with read access enabled. */ 1 4 this 3 3645 1477 0 0 6 1819 3183 0 0 80 /** * Returns true if this image should be bound with write access enabled. */ 1 4 this 3 3645 1478 0 0 6 1820 3183 0 0 83 /** * Returns true if all layers of this image should be bound simultaneously. */ 1 4 this 3 3645 1479 0 0 6 1821 3182 0 0 56 /** * Returns the image level that should be bound. */ 1 4 this 3 3645 1480 0 0 6 1822 3182 0 0 115 /** * Returns the image layer that should be bound. This is undefined if * get_bind_layered() returns false. */ 1 4 this 3 3645 1481 0 0 7 1828 3367 0 0 0 0 1482 0 0 7 1831 3647 3047 0 10 /** * */ 0 1483 0 0 7 1831 3647 3047 0 10 /** * */ 2 4 hfov 1 3225 4 vfov 1 3225 1484 0 0 7 1832 3367 0 0 0 0 1485 0 0 7 1835 3650 3054 0 0 1 6 param0 0 3648 1486 0 0 7 1835 3650 3054 0 122 /** * Create a new TextureReloadRequest, and add it to the loader via * load_async(), to begin an asynchronous load. */ 4 4 name 1 3347 3 pgo 1 3409 7 texture 1 3330 16 allow_compressed 1 3183 1487 0 0 7 1836 3409 0 0 112 /** * Returns the PreparedGraphicsObjects object associated with this * asynchronous TextureReloadRequest. */ 1 4 this 3 3648 1488 0 0 7 1837 3330 2564 0 96 /** * Returns the Texture object associated with this asynchronous * TextureReloadRequest. */ 1 4 this 3 3648 1489 0 0 6 1838 3183 0 0 105 /** * Returns the "allow compressed" flag associated with this asynchronous * TextureReloadRequest. */ 1 4 this 3 3648 1490 0 0 6 1839 3183 0 0 154 /** * Returns true if this request has completed, false if it is still pending. * Equivalent to `req.done() and not req.cancelled()`. * @see done() */ 1 4 this 3 3648 1491 0 0 7 1841 3367 0 0 0 0 1492 0 0 7 1848 3330 2564 0 64 /** * Returns the pointer to the associated Texture object. */ 1 4 this 3 3651 1493 0 0 6 1849 3182 0 0 152 /** * Returns the specific view of a multiview texture this context represents. * In the usual case, with a non-multiview texture, this will be 0. */ 1 4 this 3 3651 1494 0 0 6 1850 3303 0 0 198 /** * Returns an implementation-defined handle or pointer that can be used * to interface directly with the underlying API. * Returns 0 if the underlying implementation does not support this. */ 1 4 this 3 3651 1495 0 0 6 1851 3303 0 0 253 /** * Similar to get_native_id, but some implementations use a separate * identifier for the buffer object associated with buffer textures. * Returns 0 if the underlying implementation does not support this, or * if this is not a buffer texture. */ 1 4 this 3 3651 1496 0 0 6 1852 3183 0 0 126 /** * Returns true if the texture properties or image have been modified since * the last time mark_loaded() was called. */ 1 4 this 3 3651 1497 0 0 6 1853 3183 0 0 142 /** * Returns true if the texture properties (unrelated to the image) have been * modified since the last time mark_loaded() was called. */ 1 4 this 3 3651 1498 0 0 6 1854 3183 0 0 111 /** * Returns true if the texture image has been modified since the last time * mark_loaded() was called. */ 1 4 this 3 3651 1499 0 0 6 1855 3183 0 0 129 /** * Returns true if the texture's "simple" image has been modified since the * last time mark_simple_loaded() was called. */ 1 4 this 3 3651 1500 0 0 7 1856 3403 0 0 151 /** * Returns a sequence number which is guaranteed to change at least every time * the texture properties (unrelated to the image) are modified. */ 1 4 this 3 3651 1501 0 0 7 1857 3403 0 0 152 /** * Returns a sequence number which is guaranteed to change at least every time * the texture image data (including mipmap levels) are modified. */ 1 4 this 3 3651 1502 0 0 7 1858 3403 0 0 136 /** * Returns a sequence number which is guaranteed to change at least every time * the texture's "simple" image data is modified. */ 1 4 this 3 3651 1503 0 0 7 1859 3367 0 0 0 0 1504 0 0 6 1844 3456 0 0 0 1 4 this 3 3601 1505 0 0 6 1846 3356 0 0 0 1 4 this 3 3601 1506 0 0 7 1862 3336 0 0 10 /** * */ 1 4 this 3 3653 1507 0 0 7 1865 3367 0 0 0 0 1508 0 0 7 1868 3655 3078 0 10 /** * */ 1 4 name 1 3198 1509 0 0 7 1868 3655 3078 0 10 /** * */ 1 4 name 1 3347 1510 0 0 4 1869 3351 0 0 45 /** * Stores the indicated slider value. */ 2 4 this 3 3655 6 slider 1 3225 1511 0 0 7 1870 3367 0 0 0 0 1512 0 0 7 1873 3656 3083 0 10 /** * */ 1 4 name 1 3347 1513 0 0 6 1874 3347 0 0 77 /** * Returns the name passed to the constructor. Completely arbitrary. */ 1 4 this 3 3657 1514 0 0 4 1875 3351 0 0 39 /** * Stores the indicated matrix. */ 2 4 this 3 3656 6 matrix 1 3423 1515 0 0 7 1876 3367 0 0 0 0 1516 0 0 6 1884 3183 0 0 207 /** * Returns the flag that indicates whether this Texture is eligible to have * its main RAM copy of the texture memory dumped when the texture is prepared * for rendering. See set_keep_ram_image(). */ 1 4 this 3 3659 1517 0 0 6 1885 3182 0 0 200 /** * Returns the width in texels of the source video stream. This is not * necessarily the width of the actual texture, since the texture may have * been expanded to raise it to a power of 2. */ 1 4 this 3 3659 1518 0 0 6 1886 3182 0 0 202 /** * Returns the height in texels of the source video stream. This is not * necessarily the height of the actual texture, since the texture may have * been expanded to raise it to a power of 2. */ 1 4 this 3 3659 1519 0 0 7 1889 3367 0 0 0 0 1520 0 0 7 1879 3330 2564 0 0 1 4 this 3 3661 1521 0 0 6 1882 3662 0 0 0 1 4 this 3 3661 1522 0 0 7 1896 3218 1897 0 68 /** * Returns the pointer to the client-side array data object. */ 1 4 this 3 3663 1523 0 0 6 1897 3183 0 0 101 /** * Returns true if the data has changed size since the last time mark_loaded() * was called. */ 2 4 this 3 3663 6 reader 1 3407 1524 0 0 6 1898 3183 0 0 111 /** * Returns true if the data has changed its usage hint since the last time * mark_loaded() was called. */ 2 4 this 3 3663 6 reader 1 3407 1525 0 0 6 1899 3183 0 0 102 /** * Returns true if the data has been modified since the last time * mark_loaded() was called. */ 2 4 this 3 3663 6 reader 1 3407 1526 0 0 7 1900 3367 0 0 0 0 1527 0 0 6 1892 3456 0 0 0 1 4 this 3 3412 1528 0 0 6 1894 3356 0 0 0 1 4 this 3 3412 1529 0 0 7 1903 3665 3105 0 10 /** * */ 0 1530 0 0 7 1903 3665 3105 0 0 1 8 sequence 1 3363 1531 0 0 7 1903 3665 3105 0 10 /** * */ 1 4 copy 1 3666 1532 0 0 6 1904 3665 0 0 0 2 4 this 3 3665 4 copy 1 3666 1533 0 0 6 1906 3363 0 0 0 1 4 this 3 3666 1534 0 0 4 1907 3351 0 0 48 /** * Adds a new Texture to the collection. */ 2 4 this 3 3665 7 texture 1 3330 1535 0 0 6 1908 3183 0 0 154 /** * Removes the indicated Texture from the collection. Returns true if the * texture was removed, false if it was not a member of the collection. */ 2 4 this 3 3665 7 texture 1 3330 1536 0 0 4 1909 3351 0 0 211 /** * Adds all the Textures indicated in the other collection to this texture. * The other textures are simply appended to the end of the textures in this * list; duplicates are not automatically removed. */ 2 4 this 3 3665 5 other 1 3666 1537 0 0 4 1910 3351 0 0 94 /** * Removes from this collection all of the Textures listed in the other * collection. */ 2 4 this 3 3665 5 other 1 3666 1538 0 0 4 1911 3351 0 0 195 /** * Removes any duplicate entries of the same Textures on this collection. If * a Texture appears multiple times, the first appearance is retained; * subsequent appearances are removed. */ 1 4 this 3 3665 1539 0 0 6 1912 3183 0 0 96 /** * Returns true if the indicated Texture appears in this collection, false * otherwise. */ 2 4 this 3 3666 7 texture 1 3330 1540 0 0 4 1913 3351 0 0 52 /** * Removes all Textures from the collection. */ 1 4 this 3 3665 1541 0 0 4 1914 3351 0 0 157 /** * This is a hint to Panda to allocate enough memory to hold the given number * of NodePaths, if you know ahead of time how many you will be adding. */ 2 4 this 3 3665 3 num 1 3214 1542 0 0 7 1915 3330 2564 0 121 /** * Returns the texture in the collection with the indicated name, if any, or * NULL if no texture has that name. */ 2 4 this 3 3666 4 name 1 3347 1543 0 0 6 1916 3182 0 0 60 /** * Returns the number of Textures in the collection. */ 1 4 this 3 3666 1544 0 0 7 1917 3330 2564 0 53 /** * Returns the nth Texture in the collection. */ 2 4 this 3 3666 5 index 1 3182 1545 0 0 7 1919 3330 2564 0 142 /** * Returns the nth Texture in the collection. This is the same as * get_texture(), but it may be a more convenient way to access it. */ 2 4 this 3 3666 5 index 1 3182 1546 0 0 6 1920 3182 0 0 110 /** * Returns the number of textures in the collection. This is the same thing * as get_num_textures(). */ 1 4 this 3 3666 1547 0 0 6 1921 3665 0 0 0 2 4 this 3 3665 5 other 1 3666 1548 0 0 7 1922 3665 3105 0 0 2 4 this 3 3666 5 other 1 3666 1549 0 0 4 1923 3351 0 0 155 /** * Adds a new Texture to the collection. This method duplicates the * add_texture() method; it is provided to satisfy Python's naming convention. */ 2 4 this 3 3665 7 texture 1 3330 1550 0 0 4 1924 3351 0 0 157 /** * Appends the other list onto the end of this one. This method duplicates * the += operator; it is provided to satisfy Python's naming convention. */ 2 4 this 3 3665 5 other 1 3666 1551 0 0 4 1925 3351 0 0 106 /** * Writes a brief one-line description of the TextureCollection to the * indicated output stream. */ 2 4 this 3 3666 3 out 1 3352 1552 0 0 4 1926 3351 0 0 111 /** * Writes a complete multi-line description of the TextureCollection to the * indicated output stream. */ 3 4 this 3 3666 3 out 1 3352 12 indent_level 1 3182 1553 0 0 6 1928 3183 0 0 77 /** * Returns true if the texture has ever been loaded, false otherwise. */ 1 8 filename 1 3574 1554 0 0 6 1929 3183 0 0 313 /** * Loads the given filename up into a texture, if it has not already been * loaded, and returns true to indicate success, or false to indicate failure. * If this returns true, it is guaranteed that a subsequent call to * load_texture() with the same texture name will return a valid Texture * pointer. */ 1 8 filename 1 3574 1555 0 0 7 1930 3330 2564 0 489 /** * Loads the given filename up into a texture, if it has not already been * loaded, and returns the new texture. If a texture with the same filename * was previously loaded, returns that one instead. If the texture file * cannot be found, returns NULL. * * If read_mipmaps is true, both filenames should contain a hash mark ('#'), * which will be filled in with the mipmap level number; and the texture will * be defined with a series of images, two for each mipmap level. */ 6 8 filename 1 3574 14 alpha_filename 1 3574 25 primary_file_num_channels 1 3182 18 alpha_file_channel 1 3182 12 read_mipmaps 1 3183 7 options 1 3575 1556 0 0 7 1930 3330 2564 0 487 /** * Loads the given filename up into a texture, if it has not already been * loaded, and returns the new texture. If a texture with the same filename * was previously loaded, returns that one instead. If the texture file * cannot be found, returns NULL. * * If read_mipmaps is true, the filename should contain a hash mark ('#'), * which will be filled in with the mipmap level number; and the texture will * be defined with a series of images, one for each mipmap level. */ 4 8 filename 1 3574 25 primary_file_num_channels 1 3182 12 read_mipmaps 1 3183 7 options 1 3575 1557 0 0 7 1931 3330 2564 0 490 /** * Loads a 3-D texture that is specified with a series of n pages, all * numbered in sequence, and beginning with index 0. The filename should * include a sequence of one or more hash characters ("#") which will be * filled in with the index number of each level. * * If read_mipmaps is true, the filename should contain an additional hash * mark. The first hash mark will be filled in with the mipmap level number, * and the second with the index number of each 3-d level. */ 3 16 filename_pattern 1 3574 12 read_mipmaps 1 3183 7 options 1 3575 1558 0 0 7 1932 3330 2564 0 496 /** * Loads a 2-D texture array that is specified with a series of n pages, all * numbered in sequence, and beginning with index 0. The filename should * include a sequence of one or more hash characters ("#") which will be * filled in with the index number of each level. * * If read_mipmaps is true, the filename should contain an additional hash * mark. The first hash mark will be filled in with the mipmap level number, * and the second with the index number of each 2-d level. */ 3 16 filename_pattern 1 3574 12 read_mipmaps 1 3183 7 options 1 3575 1559 0 0 7 1933 3330 2564 0 457 /** * Loads a cube map texture that is specified with a series of 6 pages, * numbered 0 through 5. The filename should include a sequence of one or * more hash characters ("#") which will be filled in with the index number of * each pagee. * * If read_mipmaps is true, the filename should contain an additional hash * mark. The first hash mark will be filled in with the mipmap level number, * and the second with the face number, 0 through 5. */ 3 16 filename_pattern 1 3574 12 read_mipmaps 1 3183 7 options 1 3575 1560 0 0 7 1934 3330 2564 0 290 /** * Returns a standard Texture object that has been created with * Texture::generate_normalization_cube_map(). This Texture may be shared by * any application code requiring a normalization cube map. It will be at * least as large as the specified size, though it may be larger. */ 1 4 size 1 3182 1561 0 0 7 1935 3330 2564 0 296 /** * Returns a standard Texture object that has been created with * Texture::generate_alpha_scale_map(). * * This Texture object is used internally by Panda to apply an alpha scale to * an object (instead of munging its vertices) when * gsg->get_alpha_scale_via_texture() returns true. */ 0 1562 0 0 4 1936 3351 0 0 226 /** * Adds the indicated already-loaded texture to the pool. The texture must * have a filename set for its name. The texture will always replace any * previously-loaded texture in the pool that had the same filename. */ 1 7 texture 1 3330 1563 0 0 4 1937 3351 0 0 404 /** * Removes the indicated texture from the pool, indicating it will never be * loaded again; the texture may then be freed. If this function is never * called, a reference count will be maintained on every texture every loaded, * and textures will never be freed. * * The texture's name should not have been changed during its lifetime, or * this function may fail to locate it in the pool. */ 1 7 texture 1 3330 1564 0 0 4 1938 3351 0 0 86 /** * Releases all textures in the pool and restores the pool to the empty state. */ 0 1565 0 0 4 1939 3351 0 0 131 /** * Should be called when the model-path changes, to blow away the cache of * texture pathnames found along the model-path. */ 0 1566 0 0 6 1940 3182 0 0 212 /** * Releases only those textures in the pool that have a reference count of * exactly 1; i.e. only those textures that are not being used outside of the * pool. Returns the number of textures released. */ 0 1567 0 0 4 1941 3351 0 0 57 /** * Lists the contents of the texture pool to cout */ 0 1568 0 0 4 1941 3351 0 0 81 /** * Lists the contents of the texture pool to the indicated output stream. */ 1 3 out 1 3352 1569 0 0 7 1942 3330 2564 0 182 /** * Returns the first texture found in the pool that matches the indicated name * (which may contain wildcards). Returns the texture if it is found, or NULL * if it is not. */ 1 4 name 1 3347 1570 0 0 7 1943 3665 3105 0 124 /** * Returns the set of all textures found in the pool that match the indicated * name (which may contain wildcards). */ 1 4 name 1 3347 1571 0 0 4 1944 3351 0 0 109 /** * Sets a bogus filename that will be loaded in lieu of any textures requested * from this point on. */ 1 8 filename 1 3574 1572 0 0 4 1945 3351 0 0 79 /** * Restores normal behavior of loading the textures actually requested. */ 0 1573 0 0 6 1946 3183 0 0 107 /** * Returns true if fake_texture_image mode has been enabled, false if we are * in the normal mode. */ 0 1574 0 0 6 1947 3574 0 0 103 /** * Returns the filename that was specified with a previous call to * set_fake_texture_image(). */ 0 1575 0 0 7 1948 3330 2564 0 185 /** * Creates a new Texture object of the appropriate type for the indicated * filename extension, according to the types that have been registered via * register_texture_type(). */ 1 9 extension 1 3347 1576 0 0 4 1949 3351 0 0 100 /** * Lists the contents of the texture pool to the indicated output stream. For * debugging. */ 1 3 out 1 3352 1577 0 0 7 1960 3597 3158 0 0 1 6 param0 0 3668 1578 0 0 6 1952 3182 0 0 191 /** * Returns the width of the texture image that is contributing to the * TexturePeeker's information. This may be either the Texture's full width, * or its simple ram image's width. */ 1 4 this 3 3668 1579 0 0 6 1953 3182 0 0 194 /** * Returns the height of the texture image that is contributing to the * TexturePeeker's information. This may be either the Texture's full height, * or its simple ram image's height. */ 1 4 this 3 3668 1580 0 0 6 1954 3182 0 0 109 /** * Returns the depth of the texture image that is contributing to the * TexturePeeker's information. */ 1 4 this 3 3668 1581 0 0 6 1955 3183 0 0 82 /** * Returns whether a given coordinate is inside of the texture dimensions. */ 3 4 this 3 3668 1 x 1 3182 1 y 1 3182 1582 0 0 4 1956 3351 0 0 309 /** * Fills "color" with the RGBA color of the texel at point (u, v). * * The texel color is determined via nearest-point sampling (no filtering of * adjacent pixels), regardless of the filter type associated with the * texture. u, v, and w will wrap around regardless of the texture's wrap * mode. */ 4 4 this 3 3668 5 color 1 3472 1 u 1 3225 1 v 1 3225 1583 0 0 4 1956 3351 0 0 312 /** * Fills "color" with the RGBA color of the texel at point (u, v, w). * * The texel color is determined via nearest-point sampling (no filtering of * adjacent pixels), regardless of the filter type associated with the * texture. u, v, and w will wrap around regardless of the texture's wrap * mode. */ 5 4 this 3 3668 5 color 1 3472 1 u 1 3225 1 v 1 3225 1 w 1 3225 1584 0 0 4 1957 3351 0 0 108 /** * Works like TexturePeeker::lookup(), but instead uv-coordinates integer * coordinates are used. */ 4 4 this 3 3668 5 color 1 3472 1 x 1 3182 1 y 1 3182 1585 0 0 6 1958 3183 0 0 233 /** * Performs a bilinear lookup to retrieve the color value stored at the uv * coordinate (u, v). * * In case the point is outside of the uv range, color is set to zero, * and false is returned. Otherwise true is returned. */ 4 4 this 3 3668 5 color 1 3472 1 u 1 3225 1 v 1 3225 1586 0 0 4 1959 3351 0 0 272 /** * Fills "color" with the average RGBA color of the texels within the * rectangle defined by the specified coordinate range. * * The texel color is linearly filtered over the entire region. u, v, and w * will wrap around regardless of the texture's wrap mode. */ 6 4 this 3 3668 5 color 1 3472 5 min_u 1 3225 5 min_v 1 3225 5 max_u 1 3225 5 max_v 1 3225 1587 0 0 4 1959 3351 0 0 272 /** * Fills "color" with the average RGBA color of the texels within the * rectangle defined by the specified coordinate range. * * The texel color is linearly filtered over the entire region. u, v, and w * will wrap around regardless of the texture's wrap mode. */ 8 4 this 3 3668 5 color 1 3472 5 min_u 1 3225 5 min_v 1 3225 5 min_w 1 3225 5 max_u 1 3225 5 max_v 1 3225 5 max_w 1 3225 1588 0 0 7 1964 3256 0 0 666 /** * Returns a TextureStage pointer that represents the same TextureStage * described by temp, except that it is a shared pointer. * * Each call to get_stage() passing an equivalent TextureStage pointer will * return the same shared pointer. * * If you modify the shared pointer, it will automatically disassociate it * from the pool. * * Also, the return value may be a different pointer than that passed in, or * it may be the same pointer. In either case, the passed in pointer has now * been sacrificed to the greater good and should not be used again (like any * other PointerTo, it will be freed when the last reference count is * removed). */ 1 4 temp 1 3256 1589 0 0 4 1965 3351 0 0 60 /** * Removes the indicated TextureStage from the pool. */ 1 4 temp 1 3256 1590 0 0 4 1966 3351 0 0 94 /** * Releases all TextureStages in the pool and restores the pool to the empty * state. */ 0 1591 0 0 4 1967 3351 0 0 489 /** * Specifies the fundamental operating mode of the TextureStagePool. * * If this is M_none, each call to get_stage() returns the same TextureStage * pointer that was passed in (the pool is effectively disabled). If this is * M_name, each call to get_stage() returns the last TextureStage passed in * with the same name, whether it has different properties or not. If this is * M_unique, then each call to get_stage() returns only TextureStages with * identical properties. */ 1 4 mode 1 3346 1592 0 0 6 1968 3346 0 0 94 /** * Returns the fundamental operating mode of the TextureStagePool. See * set_mode(). */ 0 1593 0 0 6 1970 3182 0 0 227 /** * Releases only those TextureStages in the pool that have a reference count * of exactly 1; i.e. only those TextureStages that are not being used * outside of the pool. Returns the number of TextureStages released. */ 0 1594 0 0 4 1971 3351 0 0 86 /** * Lists the contents of the TextureStage pool to the indicated output stream. */ 1 3 out 1 3352 1595 0 0 4 1972 3351 0 0 86 /** * Lists the contents of the TextureStage pool to the indicated output stream. */ 1 3 out 1 3352 503 3168 11 AdaptiveLru 0 26625 11 AdaptiveLru 11 AdaptiveLru 0 0 0 1 1596 1597 0 14 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 0 0 1 0 3169 0 0 0 0 309 /** * A basic LRU-type algorithm, except that it is adaptive and attempts to * avoid evicting pages that have been used more frequently (even if less * recently) than other pages. * * The interface is designed to be identical to that for SimpleLru, so that it * may be used as a drop-in replacement. */ 3169 7 Namable 0 2048 7 Namable 7 Namable 0 0 0 0 0 0 0 0 0 0 0 0 125 /** * A base class for all things which can have a name. The name is either * empty or nonempty, but it is never NULL. */ 3170 15 AdaptiveLruPage 0 26625 15 AdaptiveLruPage 15 AdaptiveLruPage 0 0 0 1 1616 1618 0 12 1617 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 0 0 2 3 3171 1612 1613 3 3172 1614 1615 0 0 575 /** * One atomic piece that may be managed by a AdaptiveLru chain. To use this * class, inherit from it and override evict_lru(). * * This class multiply inherits from two classes which in turn both inherit * from LinkedListNode. This is just a sneaky C++ trick to allow this class * to inherit from LinkedListNode twice, so that pages can be stored on two * different linked lists simultaneously. The AdaptiveLru class depends on * this; it maintains its pages in two different lists, one grouped by * priority, and one in order by next partial update needs. */ 3171 26 AdaptiveLruPageDynamicList 0 1050624 26 AdaptiveLruPageDynamicList 26 AdaptiveLruPageDynamicList 0 0 0 0 0 0 0 0 0 0 0 0 114 // See the comment in the head of AdaptiveLruPage, below, for an explanation // of these two silly little classes. 3172 25 AdaptiveLruPageStaticList 0 1050624 25 AdaptiveLruPageStaticList 25 AdaptiveLruPageStaticList 0 0 0 0 0 0 0 0 0 0 0 0 0 3173 9 GeomEnums 0 141313 9 GeomEnums 9 GeomEnums 0 0 0 1 1630 1631 0 0 0 0 0 0 7 3174 3175 3176 3177 3178 3179 3180 184 /** * This class exists just to provide scoping for the various enumerated types * used by Geom, GeomVertexData, GeomVertexArrayData, GeomPrimitive, and other * related classes. */ 3174 9 UsageHint 0 794624 20 GeomEnums::UsageHint 20 GeomEnums::UsageHint 3173 0 0 0 0 0 0 0 0 0 5 9 UH_client 20 GeomEnums::UH_client 80 // UH_client: don't attempt to upload the data; always keep it on the // client. 0 9 UH_stream 20 GeomEnums::UH_stream 154 // UH_stream: the data will be created once, used to render a few times, // and then discarded. This should be used for short-lived temporary // objects. 1 10 UH_dynamic 21 GeomEnums::UH_dynamic 170 // UH_dynamic: the data will be repeatedly modified and re-rendered. This // is for data that will be modified at runtime, such as animated or soft- // skinned vertices. 2 9 UH_static 20 GeomEnums::UH_static 281 // UH_static: the data will be created once, and used to render many // times, without modification. This is the most common case, since // typically vertex data is not directly animated (this is not related to // scene graph animation, e.g. from adjusting transforms on a node). 3 14 UH_unspecified 25 GeomEnums::UH_unspecified 265 // UH_unspecified: the usage is unspecified. This is intended as a "don't // care" option for abstract objects; it should not be applied to any // actual geometry to be rendered. You take your chances if a geom // actually gets into the scene graph with this set. 4 0 0 3175 13 GeomRendering 0 794624 24 GeomEnums::GeomRendering 24 GeomEnums::GeomRendering 3173 0 0 0 0 0 0 0 0 0 24 16 GR_indexed_point 27 GeomEnums::GR_indexed_point 31 // If there are indexed points. 1 16 GR_indexed_other 27 GeomEnums::GR_indexed_other 50 // If there is indexed geometry of any other type. 65536 15 GR_indexed_bits 26 GeomEnums::GR_indexed_bits 46 // The union of all of the indexed attributes. 65537 8 GR_point 19 GeomEnums::GR_point 34 // If there are any points at all. 2 21 GR_point_uniform_size 32 GeomEnums::GR_point_uniform_size 59 // If the points are all the same size, other than 1 pixel. 4 17 GR_per_point_size 28 GeomEnums::GR_per_point_size 52 // If the points have a per-vertex size designation. 8 20 GR_point_perspective 31 GeomEnums::GR_point_perspective 81 // If the points' size is specified in camera units rather than screen // pixels. 16 21 GR_point_aspect_ratio 32 GeomEnums::GR_point_aspect_ratio 48 // If the points have a non-square aspect ratio. 32 14 GR_point_scale 25 GeomEnums::GR_point_scale 69 // If the points are under a scale transform, uniform or non-uniform. 64 15 GR_point_rotate 26 GeomEnums::GR_point_rotate 54 // If the points are rotated off the orthonormal axis. 128 15 GR_point_sprite 26 GeomEnums::GR_point_sprite 110 // If the points require texture coordinates interpolated across their // face, to render textures as sprites. 256 26 GR_point_sprite_tex_matrix 37 GeomEnums::GR_point_sprite_tex_matrix 89 // If there is a texture matrix applied to the sprite's generated texture // coordinates. 512 13 GR_point_bits 24 GeomEnums::GR_point_bits 72 // The union of all the above point attributes, except GR_indexed_point. 1022 17 GR_triangle_strip 28 GeomEnums::GR_triangle_strip 45 // If there are any of these composite types. 1024 15 GR_triangle_fan 26 GeomEnums::GR_triangle_fan 0 2048 13 GR_line_strip 24 GeomEnums::GR_line_strip 0 4096 17 GR_composite_bits 28 GeomEnums::GR_composite_bits 49 // The union of all of the above composite types. 7168 18 GR_strip_cut_index 29 GeomEnums::GR_strip_cut_index 66 // If strip-cut indices are used to restart a composite primitive. 131072 20 GR_flat_first_vertex 31 GeomEnums::GR_flat_first_vertex 68 // If the shade model requires a particular vertex for flat shading. 8192 19 GR_flat_last_vertex 30 GeomEnums::GR_flat_last_vertex 0 16384 19 GR_shade_model_bits 30 GeomEnums::GR_shade_model_bits 44 // The union of the above shade model types. 24576 24 GR_render_mode_wireframe 35 GeomEnums::GR_render_mode_wireframe 49 // If a particular non-fill polygon mode is used. 262144 20 GR_render_mode_point 31 GeomEnums::GR_render_mode_point 0 524288 12 GR_adjacency 23 GeomEnums::GR_adjacency 43 // The primitive has adjacency information. 1048576 0 265 // This type specifies a number of bits that are used to represent the // rendering requirements of a particular Geom, as well as the rendering // capabilities of the GSG. The difference between the two indicates // whether the Geom needs to be munged for the GSG. 3176 10 ShadeModel 0 794624 21 GeomEnums::ShadeModel 21 GeomEnums::ShadeModel 3173 0 0 0 0 0 0 0 0 0 4 10 SM_uniform 21 GeomEnums::SM_uniform 172 // SM_uniform: all vertices across all faces have the same colors and // normals. It doesn't really matter which ShadeModelAttrib mode is used // to render this primitive. 0 9 SM_smooth 20 GeomEnums::SM_smooth 188 // SM_smooth: vertices within a single face have different colorsnormals // that should be smoothed across the face. This primitive should be // rendered with SmoothModelAttrib::M_smooth. 1 20 SM_flat_first_vertex 31 GeomEnums::SM_flat_first_vertex 335 // SM_flat_(first,last)_vertex: each face within the primitive might have // a different colornormal than the other faces, but across a particular // face there is only one colornormal. Each face's colornormal is taken // from the (first, last) vertex of the face. This primitive should be // rendered with SmoothModelAttrib::M_flat. 2 19 SM_flat_last_vertex 30 GeomEnums::SM_flat_last_vertex 0 3 0 235 // The shade model specifies whether the per-vertex colors and normals // indexed by a given primitive truly represent per-vertex colors and // normals, or whether they actually represent per-triangle flat-shaded // colors and normals. 3177 13 PrimitiveType 0 794624 24 GeomEnums::PrimitiveType 24 GeomEnums::PrimitiveType 3173 0 0 0 0 0 0 0 0 0 5 7 PT_none 18 GeomEnums::PT_none 0 0 11 PT_polygons 22 GeomEnums::PT_polygons 0 1 8 PT_lines 19 GeomEnums::PT_lines 0 2 9 PT_points 20 GeomEnums::PT_points 0 3 10 PT_patches 21 GeomEnums::PT_patches 0 4 0 165 // The primitive type represents the core primitive type of a particular // GeomPrimitive. It's used for determining what kind of antialiasing // should be enabled. 3178 11 NumericType 0 794624 22 GeomEnums::NumericType 22 GeomEnums::NumericType 3173 0 0 0 0 0 0 0 0 0 12 8 NT_uint8 19 GeomEnums::NT_uint8 20 // An integer 0..255 0 9 NT_uint16 20 GeomEnums::NT_uint16 22 // An integer 0..65535 1 9 NT_uint32 20 GeomEnums::NT_uint32 27 // An integer 0..4294967295 2 14 NT_packed_dcba 25 GeomEnums::NT_packed_dcba 53 // DirectX style, four byte values packed in a uint32 3 14 NT_packed_dabc 25 GeomEnums::NT_packed_dabc 36 // DirectX packed color order (ARGB) 4 10 NT_float32 21 GeomEnums::NT_float32 27 // A single-precision float 5 10 NT_float64 21 GeomEnums::NT_float64 27 // A double-precision float 6 11 NT_stdfloat 22 GeomEnums::NT_stdfloat 69 // Either single- or double-precision, according to vertices-float64. 7 7 NT_int8 18 GeomEnums::NT_int8 23 // An integer -128..127 8 8 NT_int16 19 GeomEnums::NT_int16 27 // An integer -32768..32767 9 8 NT_int32 19 GeomEnums::NT_int32 37 // An integer -2147483648..2147483647 10 16 NT_packed_ufloat 27 GeomEnums::NT_packed_ufloat 54 // Three 10/11-bit float components packed in a uint32 11 0 120 // The numeric type determines what physical representation is used to // encode a numeric value within the vertex data. 3179 8 Contents 0 794624 19 GeomEnums::Contents 19 GeomEnums::Contents 3173 0 0 0 0 0 0 0 0 0 10 7 C_other 18 GeomEnums::C_other 36 // Arbitrary meaning, leave it alone 0 7 C_point 18 GeomEnums::C_point 32 // A point in 3-space or 4-space 1 12 C_clip_point 23 GeomEnums::C_clip_point 48 // A point pre-transformed into clip coordinates 2 8 C_vector 19 GeomEnums::C_vector 59 // A surface tangent or binormal (see C_normal for normals) 3 10 C_texcoord 21 GeomEnums::C_texcoord 23 // A texture coordinate 4 7 C_color 18 GeomEnums::C_color 48 // 3- or 4-component color, ordered R, G, B, [A] 5 7 C_index 18 GeomEnums::C_index 39 // An index value into some other table 6 13 C_morph_delta 24 GeomEnums::C_morph_delta 55 // A delta from some base value, defining a blend shape 7 8 C_matrix 19 GeomEnums::C_matrix 118 // A transformation matrix. This is typically three or four columns, but // we pretend it's only one for convenience. 8 8 C_normal 19 GeomEnums::C_normal 124 // A special version of C_vector that should be used for normal vectors, // which are scaled differently from other vectors. 9 0 194 // The contents determine the semantic meaning of a numeric value within the // vertex data. This is also used to determine what automatic transforms // might be applied to the various columns. 3180 13 AnimationType 0 794624 24 GeomEnums::AnimationType 24 GeomEnums::AnimationType 3173 0 0 0 0 0 0 0 0 0 3 7 AT_none 18 GeomEnums::AT_none 23 // No vertex animation. 0 8 AT_panda 19 GeomEnums::AT_panda 51 // Vertex animation calculated on the CPU by Panda. 1 11 AT_hardware 22 GeomEnums::AT_hardware 55 // Hardware-accelerated animation on the graphics card. 2 0 86 // The type of animation data that is represented by a particular // GeomVertexFormat. 3181 23 GeomVertexAnimationSpec 0 141313 23 GeomVertexAnimationSpec 23 GeomVertexAnimationSpec 0 0 0 1 1632 1641 3 3671 3672 3673 8 1633 1634 1635 1636 1637 1638 1639 1640 0 0 1 0 3173 0 0 0 0 550 /** * This object describes how the vertex animation, if any, represented in a * GeomVertexData is encoded. * * Vertex animation includes soft-skinned skeleton animation and morphs (blend * shapes), and might be performed on the CPU by Panda, or passed down to the * graphics backed to be performed on the hardware (depending on the * hardware's advertised capabilities). * * Changing this setting doesn't by itself change the way the animation is * actually performed; this just specifies how the vertices are set up to be * animated. */ 3182 3 int 0 8194 3 int 3 int 0 1 0 0 0 0 0 0 0 0 0 0 0 3183 4 bool 0 8194 4 bool 4 bool 0 4 0 0 0 0 0 0 0 0 0 0 0 3184 12 InternalName 0 16852993 12 InternalName 12 InternalName 0 0 0 0 0 3 3674 3675 3676 35 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 0 0 1 0 3185 0 0 0 0 514 /** * Encodes a string name in a hash table, mapping it to a pointer. This is * used to tokenify names so they may be used efficiently in low-level Panda * structures, for instance to differentiate the multiple sets of texture * coordinates that might be stored on a Geom. * * InternalNames are hierarchical, with the '.' used by convention as a * separator character. You can construct a single InternalName as a * composition of one or more other names, or by giving it a source string * directly. */ 3185 27 TypedWritableReferenceCount 0 2048 27 TypedWritableReferenceCount 27 TypedWritableReferenceCount 0 0 0 0 0 0 0 0 0 0 0 0 414 /** * A base class for things which need to inherit from both TypedWritable and * from ReferenceCount. It's convenient to define this intermediate base * class instead of multiply inheriting from the two classes each time they * are needed, so that we can sensibly pass around pointers to things which * are both TypedWritables and ReferenceCounters. * * See also TypedObject for detailed instructions. */ 3186 14 InternalName * 0 8576 14 InternalName * 14 InternalName * 0 0 3184 0 0 0 0 0 0 0 0 0 0 3187 6 string 0 2105344 11 std::string 11 std::string 0 0 3188 0 0 0 0 0 0 0 0 0 0 3188 20 basic_string< char > 0 2048 25 std::basic_string< char > 25 std::basic_string< char > 0 0 0 0 0 0 0 0 0 0 0 0 0 3189 12 string const 0 8832 17 std::string const 17 std::string const 0 0 3187 0 0 0 0 0 0 0 0 0 0 3190 16 GeomVertexColumn 0 26625 16 GeomVertexColumn 16 GeomVertexColumn 0 0 0 1 1677 1679 0 22 1678 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 0 0 1 0 3173 0 0 0 0 218 /** * This defines how a single column is interleaved within a vertex array * stored within a Geom. The GeomVertexArrayFormat class maintains a list of * these to completely define a particular array structure. */ 3191 21 GeomVertexArrayFormat 0 16803841 21 GeomVertexArrayFormat 21 GeomVertexArrayFormat 0 0 0 1 1705 1707 6 3677 3678 3679 3680 3681 3682 26 1706 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1726 1727 1728 1729 1730 1731 1732 1733 1 3876 0 2 3 3185 1701 1702 3 3173 1703 1704 0 0 717 /** * This describes the structure of a single array within a Geom data. See * GeomVertexFormat for the parent class which collects together all of the * individual GeomVertexArrayFormat objects. * * A particular array may include any number of standard or user-defined * columns. All columns consist of a sequence of one or more numeric values, * packed in any of a variety of formats; the semantic meaning of each column * is defined in general with its contents member, and in particular by its * name. The standard array types used most often are named "vertex", * "normal", "texcoord", and "color"; other kinds of data may be piggybacked * into the data record simply by choosing a unique name. */ 3192 24 GeomVertexColumn const * 0 8576 24 GeomVertexColumn const * 24 GeomVertexColumn const * 0 0 3193 0 0 0 0 0 0 0 0 0 0 3193 22 GeomVertexColumn const 0 8832 22 GeomVertexColumn const 22 GeomVertexColumn const 0 0 3190 0 0 0 0 0 0 0 0 0 0 3194 16 GeomVertexFormat 0 16803841 16 GeomVertexFormat 16 GeomVertexFormat 0 0 0 1 1738 1740 6 3683 3684 3685 3686 3687 3688 53 1739 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 8 3877 3878 3879 3880 3881 3882 3883 3884 0 2 3 3185 1734 1735 3 3173 1736 1737 0 0 924 /** * This class defines the physical layout of the vertex data stored within a * Geom. The layout consists of a list of named columns, each of which has a * numeric type and a size. * * The columns are typically interleaved within a single array, but they may * also be distributed among multiple different arrays; at the extreme, each * column may be alone within its own array (which amounts to a parallel-array * definition). * * Thus, a GeomVertexFormat is really a list of GeomVertexArrayFormats, each * of which contains a list of columns. However, a particular column name * should not appear more than once in the format, even between different * arrays. * * There are a handful of standard pre-defined GeomVertexFormat objects, or * you may define your own as needed. You may record any combination of * standard and/or user-defined columns in your custom GeomVertexFormat * constructions. */ 3195 29 GeomVertexAnimationSpec const 0 8832 29 GeomVertexAnimationSpec const 29 GeomVertexAnimationSpec const 0 0 3181 0 0 0 0 0 0 0 0 0 0 3196 29 GeomVertexArrayFormat const * 0 8576 29 GeomVertexArrayFormat const * 29 GeomVertexArrayFormat const * 0 0 3197 0 0 0 0 0 0 0 0 0 0 3197 27 GeomVertexArrayFormat const 0 8832 27 GeomVertexArrayFormat const 27 GeomVertexArrayFormat const 0 0 3191 0 0 0 0 0 0 0 0 0 0 3198 20 InternalName const * 0 8576 20 InternalName const * 20 InternalName const * 0 0 3199 0 0 0 0 0 0 0 0 0 0 3199 18 InternalName const 0 8832 18 InternalName const 18 InternalName const 0 0 3184 0 0 0 0 0 0 0 0 0 0 3200 9 SimpleLru 0 26625 9 SimpleLru 9 SimpleLru 0 0 0 1 1801 1802 0 10 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 0 0 2 3 3201 1797 1798 3 3169 1799 1800 0 0 83 /** * An implementation of a very simple LRU algorithm. Also see AdaptiveLru. */ 3201 14 LinkedListNode 0 2048 14 LinkedListNode 14 LinkedListNode 0 0 0 0 0 0 0 0 0 0 0 0 468 /** * This just stores the pointers to implement a doubly-linked list of some * kind of object. There are occasions when a hand-rolled linked list is more * appropriate than an STL container. * * Typically, each node of the linked list, as well as the root of the list, * will inherit from this class. * * Note that this class is not inherently thread-safe; derived classes are * responsible for protecting any calls into it within mutexes, if necessary. */ 3202 13 SimpleLruPage 0 26625 13 SimpleLruPage 13 SimpleLruPage 0 0 0 1 1815 1817 0 10 1816 1818 1819 1820 1821 1822 1823 1824 1825 1826 0 0 1 3 3201 1813 1814 0 0 134 /** * One atomic piece that may be managed by a SimpleLru chain. To use this * class, inherit from it and override evict_lru(). */ 3203 15 SimpleAllocator 0 26625 15 SimpleAllocator 15 SimpleAllocator 0 0 0 1 1829 1830 0 9 1831 1832 1833 1834 1835 1836 1837 1838 1839 0 0 1 3 3201 1827 1828 0 0 227 /** * An implementation of a very simple block allocator. This class can * allocate ranges of nonnegative integers within a specified upper limit; it * uses a simple first-fit algorithm to find the next available space. */ 3204 20 SimpleAllocatorBlock 0 26625 20 SimpleAllocatorBlock 20 SimpleAllocatorBlock 0 0 0 0 1840 0 9 1841 1842 1843 1844 1845 1846 1847 1848 1849 0 0 1 0 3201 0 0 0 0 68 /** * A single block as returned from SimpleAllocator::alloc(). */ 3205 18 VertexDataSaveFile 0 75777 18 VertexDataSaveFile 18 VertexDataSaveFile 0 0 0 0 1830 0 3 1850 1851 1852 0 0 1 0 3203 0 0 0 0 174 /** * A temporary file to hold the vertex data that has been evicted from memory * and written to disk. All vertex data arrays are written into one large * flat file. */ 3206 14 VertexDataPage 0 43009 14 VertexDataPage 14 VertexDataPage 0 0 0 0 0 1 3689 18 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 0 0 2 3 3203 1853 1854 3 3202 1855 1856 0 1 3207 189 /** * A block of bytes that holds one or more VertexDataBlocks. The entire page * may be paged out, in the form of in-memory compression or to an on-disk * cache file, if necessary. */ 3207 8 RamClass 0 794624 24 VertexDataPage::RamClass 24 VertexDataPage::RamClass 3206 0 0 0 0 0 0 0 0 0 4 11 RC_resident 27 VertexDataPage::RC_resident 0 0 13 RC_compressed 29 VertexDataPage::RC_compressed 0 1 7 RC_disk 23 VertexDataPage::RC_disk 0 2 14 RC_end_of_list 30 VertexDataPage::RC_end_of_list 26 // list marker; do not use 3 0 159 // These are used to indicate the current residency state of the page, which // may or may not have been temporarily evicted to satisfy memory // requirements. 3208 20 VertexDataSaveFile * 0 8576 20 VertexDataSaveFile * 20 VertexDataSaveFile * 0 0 3205 0 0 0 0 0 0 0 0 0 0 3209 14 VertexDataBook 0 26625 14 VertexDataBook 14 VertexDataBook 0 0 0 1 1875 1876 0 5 1877 1878 1879 1880 1881 0 0 0 0 0 105 /** * A collection of VertexDataPages, which can be used to allocate new * VertexDataBlock objects. */ 3210 15 VertexDataBlock 0 141313 15 VertexDataBlock 15 VertexDataBlock 0 0 0 0 1888 0 2 1886 1887 0 0 2 3 3204 1882 1883 3 3211 1884 1885 0 0 113 /** * A block of bytes that stores the actual raw vertex data referenced by a * GeomVertexArrayData object. */ 3211 14 ReferenceCount 0 2048 14 ReferenceCount 14 ReferenceCount 0 0 0 0 0 0 0 0 0 0 0 0 203 /** * A base class for all things that want to be reference-counted. * ReferenceCount works in conjunction with PointerTo to automatically delete * objects when the last pointer to them goes away. */ 3212 19 GeomVertexArrayData 0 26625 19 GeomVertexArrayData 19 GeomVertexArrayData 0 0 0 1 1895 1897 4 3690 3691 3692 3693 33 1896 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 0 0 3 3 3213 1889 1890 3 3202 1891 1892 3 3173 1893 1894 0 0 678 /** * This is the data for one array of a GeomVertexData structure. Many * GeomVertexData structures will only define one array, with all data * elements interleaved (DirectX 8.0 and before insisted on this format); some * will define multiple arrays. * * DirectX calls this concept of one array a "stream". It also closely * correlates with the concept of a vertex buffer. * * This object is just a block of data. In general, you should not be * directly messing with this object from application code. See * GeomVertexData for the organizing structure, and see * GeomVertexReader/Writer/Rewriter for high-level tools to manipulate the * actual vertex data. */ 3213 17 CopyOnWriteObject 0 2048 17 CopyOnWriteObject 17 CopyOnWriteObject 0 0 0 0 0 0 0 0 0 0 0 0 169 /** * This base class provides basic reference counting, but also can be used * with a CopyOnWritePointer to provide get_read_pointer() and * get_write_pointer(). */ 3214 6 size_t 0 2105344 11 std::size_t 11 std::size_t 0 0 3215 0 0 0 0 0 0 0 0 0 0 3215 22 unsigned long long int 0 8230 22 unsigned long long int 22 unsigned long long int 0 8 0 0 0 0 0 0 0 0 0 0 0 3216 9 UpdateSeq 0 2048 9 UpdateSeq 9 UpdateSeq 0 0 0 0 0 0 0 0 0 0 0 0 761 /** * This is a sequence number that increments monotonically. It can be used to * track cache updates, or serve as a kind of timestamp for any changing * properties. * * A special class is used instead of simply an int, so we can elegantly * handle such things as wraparound and special cases. There are two special * cases. Firstly, a sequence number is 'initial' when it is first created. * This sequence is older than any other sequence number. Secondly, a * sequence number may be explicitly set to 'old'. This is older than any * other sequence number except 'initial'. Finally, we have the explicit * number 'fresh', which is newer than any other sequence number. All other * sequences are numeric and are monotonically increasing. */ 3217 25 GeomVertexArrayDataHandle 0 26625 25 GeomVertexArrayDataHandle 25 GeomVertexArrayDataHandle 0 0 0 0 1934 5 3694 3695 3696 3697 3698 20 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 0 0 2 3 3211 1930 1931 3 3173 1932 1933 0 0 504 /** * This data object is returned by GeomVertexArrayData::get_handle() or * modify_handle(). As long as it exists, the data is locked; when the last of * these destructs, the data is unlocked. * * Only one thread at a time may lock the data; other threads attempting to * lock the data will block. A given thread may simultaneously lock the data * multiple times. * * This class serves in lieu of a pair of GeomVertexArrayDataPipelineReader * and GeomVertexArrayDataPipelineWriter classes */ 3218 21 GeomVertexArrayData * 0 8576 21 GeomVertexArrayData * 21 GeomVertexArrayData * 0 0 3212 0 0 0 0 0 0 0 0 0 0 3219 16 GeomCacheManager 0 43009 16 GeomCacheManager 16 GeomCacheManager 0 0 0 0 0 0 5 1955 1956 1957 1958 1959 0 0 0 0 0 640 /** * This is used to keep track of, and limit the size of, the cache of munged * vertices, which would otherwise be distributed through all of the * GeomVertexData objects in the system. * * The actual data in the cache is not stored here, but rather it is * distributed among the various GeomVertexData source objects. This allows * the cache data to propagate through the multiprocess pipeline. * * This structure actually caches any of a number of different types of * pointers, and mixes them all up in the same LRU cache list. Some of them * (such as GeomMunger) are reference-counted here in the cache; most are not. */ 3220 15 VertexTransform 0 75777 15 VertexTransform 15 VertexTransform 0 0 0 0 0 1 3699 9 1960 1961 1962 1963 1964 1965 1966 1967 1968 0 0 1 0 3185 0 0 0 0 305 /** * This is an abstract base class that holds a pointer to some transform, * computed in some arbitrary way, that is to be applied to vertices during * rendering. This is used to implement soft-skinned and animated vertices. * Derived classes will define how the transform is actually computed. */ 3221 14 TransformTable 0 75777 14 TransformTable 14 TransformTable 0 0 0 1 1969 0 3 3700 3701 3702 12 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1982 1 3885 0 1 0 3185 0 0 0 0 328 /** * Stores the total set of VertexTransforms that the vertices in a particular * GeomVertexData object might depend on. * * This structure is used for a GeomVertexData set up to compute its dynamic * vertices on the graphics card. See TransformBlendTable for one set up to * compute its dynamic vertices on the CPU. */ 3222 23 VertexTransform const * 0 8576 23 VertexTransform const * 23 VertexTransform const * 0 0 3223 0 0 0 0 0 0 0 0 0 0 3223 21 VertexTransform const 0 8832 21 VertexTransform const 21 VertexTransform const 0 0 3220 0 0 0 0 0 0 0 0 0 0 3224 14 TransformBlend 0 26625 14 TransformBlend 14 TransformBlend 0 0 0 1 1983 1985 3 3703 3704 3705 23 1984 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2002 2003 2004 2005 2006 2007 2008 2009 1 3886 0 0 0 0 150 /** * This defines a single entry in a TransformBlendTable. It represents a * unique combination of VertexTransform pointers and blend amounts. */ 3225 11 PN_stdfloat 0 2105344 11 PN_stdfloat 11 PN_stdfloat 0 0 3226 0 0 0 0 0 0 0 0 0 0 3226 5 float 0 8194 5 float 5 float 0 2 0 0 0 0 0 0 0 0 0 0 0 3227 19 TransformBlendTable 0 75777 19 TransformBlendTable 19 TransformBlendTable 0 0 0 1 2010 0 5 3706 3707 3708 3709 3710 14 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2025 1 3887 0 1 0 3213 0 0 0 0 537 /** * This structure collects together the different combinations of transforms * and blend amounts used by a GeomVertexData, to facilitate computing dynamic * vertices on the CPU at runtime. Each vertex has a pointer to exactly one * of the entries in this table, and each entry defines a number of * transform/blend combinations. * * This structure is used for a GeomVertexData set up to compute its dynamic * vertices on the CPU. See TransformTable for one set up to compute its * dynamic vertices on the graphics card. */ 3228 20 TransformBlend const 0 8832 20 TransformBlend const 20 TransformBlend const 0 0 3224 0 0 0 0 0 0 0 0 0 0 3229 17 SparseArray const 0 8832 17 SparseArray const 17 SparseArray const 0 0 3230 0 0 0 0 0 0 0 0 0 0 3230 11 SparseArray 0 2048 11 SparseArray 11 SparseArray 0 0 0 0 0 0 0 0 0 0 0 0 736 /** * This class records a set of integers, where each integer is either present * or not present in the set. * * It is similar in principle and in interface to a BitArray (which can be * thought of as a set of integers, one integer corresponding to each * different bit position), but the SparseArray is implemented as a list of * min/max subrange lists, rather than as a bitmask. * * This makes it particularly efficient for storing sets which consist of * large sections of consecutively included or consecutively excluded * elements, with arbitrarily large integers, but particularly inefficient for * doing boolean operations such as & or |. * * Also, unlike BitArray, the SparseArray can store negative integers. */ 3231 12 VertexSlider 0 75777 12 VertexSlider 12 VertexSlider 0 0 0 0 0 3 3711 3712 3713 6 2026 2027 2028 2029 2030 2031 0 0 1 0 3185 0 0 0 0 343 /** * This is an abstract base class that retains some slider value, which is a * linear value that typically ranges from 0.0 to 1.0, and is used to control * the animation of morphs (blend shapes). * * It is similar to VertexTransform, which keeps a full 4x4 transform matrix, * but the VertexSlider only keeps a single float value. */ 3232 11 SliderTable 0 75777 11 SliderTable 11 SliderTable 0 0 0 1 2032 0 1 3714 16 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 1 3888 0 1 0 3185 0 0 0 0 402 /** * Stores the total set of VertexSliders that the vertices in a particular * GeomVertexData object might depend on. * * This is similar to a TransformTable, but it stores VertexSliders instead of * VertexTransforms, and it stores them by name instead of by index number. * Also, it is only used when animating vertices on the CPU, since GPU's don't * support morphs at this point in time. */ 3233 14 GeomVertexData 0 26625 14 GeomVertexData 14 GeomVertexData 0 0 0 1 2053 2055 8 3715 3716 3717 3718 3719 3720 3721 3722 53 2054 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 1 3889 0 2 3 3213 2049 2050 3 3173 2051 2052 0 0 1085 /** * This defines the actual numeric vertex data stored in a Geom, in the * structure defined by a particular GeomVertexFormat object. * * The data consists of one or more arrays, each of which in turn consists of * a series of rows, one per vertex. All arrays should have the same number * of rows; each vertex is defined by the column data from a particular row * across all arrays. * * Often, there will be only one array per Geom, and the various columns * defined in the GeomVertexFormat will be interleaved within that array. * However, it is also possible to have multiple different arrays, with a * certain subset of the total columns defined in each array. * * However the data is distributed, the effect is of a single table of * vertices, where each vertex is represented by one row of the table. * * In general, application code should not attempt to directly manipulate the * vertex data through this structure; instead, use the GeomVertexReader, * GeomVertexWriter, and GeomVertexRewriter objects to read and write vertex * data at a high level. */ 3234 24 GeomVertexFormat const * 0 8576 24 GeomVertexFormat const * 24 GeomVertexFormat const * 0 0 3235 0 0 0 0 0 0 0 0 0 0 3235 22 GeomVertexFormat const 0 8832 22 GeomVertexFormat const 22 GeomVertexFormat const 0 0 3194 0 0 0 0 0 0 0 0 0 0 3236 37 ConstPointerTo< GeomVertexArrayData > 0 2048 37 ConstPointerTo< GeomVertexArrayData > 37 ConstPointerTo< GeomVertexArrayData > 0 0 0 0 0 0 0 0 0 0 0 0 0 3237 22 TransformTable const * 0 8576 22 TransformTable const * 22 TransformTable const * 0 0 3238 0 0 0 0 0 0 0 0 0 0 3238 20 TransformTable const 0 8832 20 TransformTable const 20 TransformTable const 0 0 3221 0 0 0 0 0 0 0 0 0 0 3239 19 SliderTable const * 0 8576 19 SliderTable const * 19 SliderTable const * 0 0 3240 0 0 0 0 0 0 0 0 0 0 3240 17 SliderTable const 0 8832 17 SliderTable const 17 SliderTable const 0 0 3232 0 0 0 0 0 0 0 0 0 0 3241 22 AnimateVerticesRequest 0 141313 22 AnimateVerticesRequest 22 AnimateVerticesRequest 0 0 0 1 2109 2112 0 2 2110 2111 0 0 1 0 3242 0 0 0 0 587 /** * This class object manages a single asynchronous request to animate vertices * on a GeomVertexData object. animate_vertices will be called with * force=true (i.e. blocking) in a sub-thread (if threading is available). * No result is stored or returned from this object. It is expected that the * result will be cached and available for immediate use later during * rendering. Thus it is important that the main thread block while these * requests are being run (presumably on multiple CPUs/cores), to ensure that * the data has been computed by the time it's needed. */ 3242 9 AsyncTask 0 2048 9 AsyncTask 9 AsyncTask 0 0 0 0 0 0 0 0 0 0 0 0 217 /** * This class represents a concrete task performed by an AsyncManager. * Normally, you would subclass from this class, and override do_task(), to * define the functionality you wish to have the task perform. */ 3243 12 SavedContext 0 141313 12 SavedContext 12 SavedContext 0 0 0 0 2114 0 1 2113 0 0 1 0 3244 0 0 0 0 176 /** * This is the base class for all GSG-specific context objects, such as * TextureContext and GeomContext. It exists mainly to provide some * structural organization. */ 3244 11 TypedObject 0 2048 11 TypedObject 11 TypedObject 0 0 0 0 0 0 0 0 0 0 0 0 2508 /** * This is an abstract class that all classes which use TypeHandle, and also * provide virtual functions to support polymorphism, should inherit from. * Each derived class should define get_type(), which should return the * specific type of the derived class. Inheriting from this automatically * provides support for is_of_type() and is_exact_type(). * * All classes that inherit directly or indirectly from TypedObject should * redefine get_type() and force_init_type(), as shown below. Some classes * that do not inherit from TypedObject may still declare TypeHandles for * themselves by defining methods called get_class_type() and init_type(). * Classes such as these may serve as base classes, but the dynamic type * identification system will be limited. Classes that do not inherit from * TypedObject need not define the virtual functions get_type() and * force_init_type() (or any other virtual functions). * * There is a specific layout for defining the overrides from this class. * Keeping the definitions formatted just like these examples will allow * someone in the future to use a sed (or similar) script to make global * changes, if necessary. Avoid rearranging the braces or the order of the * functions unless you're ready to change them in every file all at once. * * What follows are some examples that can be used in new classes that you * create. * * @par In the class definition (.h file): * @code * public: * static TypeHandle get_class_type() { * return _type_handle; * } * static void init_type() { * <<>>::init_type(); * <<>>::init_type(); * <<>>::init_type(); * register_type(_type_handle, "<<>>", * <<>>::get_class_type(), * <<>>::get_class_type(), * <<>>::get_class_type()); * } * virtual TypeHandle get_type() const { * return get_class_type(); * } * virtual TypeHandle force_init_type() {init_type(); return get_class_type();} * * private: * static TypeHandle _type_handle; * @endcode * * @par In the class .cxx file: * @code * TypeHandle <<>>::_type_handle; * @endcode * * @par In the class config_<<>>.cxx file: * @code * ConfigureFn(config_<<>>) { * <<>>::init_type(); * <<>>::init_type(); * <<>>::init_type(); * } * @endcode */ 3245 13 BufferContext 0 26625 13 BufferContext 13 BufferContext 0 0 0 0 2117 5 3723 3724 3725 3726 3727 5 2118 2119 2120 2121 2123 0 0 1 3 3243 2115 2116 0 0 459 /** * This is a base class for those kinds of SavedContexts that occupy an * easily-measured (and substantial) number of bytes in the video card's frame * buffer memory or AGP memory. At the present, this includes most of the * SavedContext types: VertexBufferContext and IndexBufferContext, as well as * TextureContext. * * This class provides methods for tracking the video memory utilization, as * well as residency of each object, via PStats. */ 3246 29 TypedWritableReferenceCount * 0 8576 29 TypedWritableReferenceCount * 29 TypedWritableReferenceCount * 0 0 3185 0 0 0 0 0 0 0 0 0 0 3247 13 GeomPrimitive 0 26625 13 GeomPrimitive 13 GeomPrimitive 0 0 0 0 2129 15 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 75 2128 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 1 3890 0 2 3 3213 2124 2125 3 3173 2126 2127 0 0 803 /** * This is an abstract base class for a family of classes that represent the * fundamental geometry primitives that may be stored in a Geom. * * They all have in common the fact that they are defined by tables of vertex * data stored in a GeomVertexData object. Each GeomPrimitive object contains * an ordered list of integers, which index into the vertex array defined by * the GeomVertexData and define the particular vertices of the GeomVertexData * that are used for this primitive. * * The meaning of a given arrangement of vertices is defined by each * individual primitive type; for instance, a GeomTriangle renders a triangle * from each three consecutive vertices, while a GeomTriangleStrip renders a * strip of (n - 2) connected triangles from each sequence of n vertices. */ 3248 12 TextureStage 0 75777 12 TextureStage 12 TextureStage 0 0 0 1 2204 0 13 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 54 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 0 0 1 0 3185 0 0 0 4 3249 3250 3251 3252 336 /** * Defines the properties of a named stage of the multitexture pipeline. The * TextureAttrib will associated a number of these stages with Texture * objects, and the GSG will render geometry by sorting all of the currently * active TextureStages in order and then issuing the appropriate rendering * calls to activate them. */ 3249 4 Mode 0 794624 18 TextureStage::Mode 18 TextureStage::Mode 3248 0 0 0 0 0 0 0 0 0 16 10 M_modulate 24 TextureStage::M_modulate 0 0 7 M_decal 21 TextureStage::M_decal 0 1 7 M_blend 21 TextureStage::M_blend 0 2 9 M_replace 23 TextureStage::M_replace 0 3 5 M_add 19 TextureStage::M_add 0 4 9 M_combine 23 TextureStage::M_combine 0 5 19 M_blend_color_scale 33 TextureStage::M_blend_color_scale 0 6 15 M_modulate_glow 29 TextureStage::M_modulate_glow 47 // When fixed-function, equivalent to modulate. 7 16 M_modulate_gloss 30 TextureStage::M_modulate_gloss 47 // When fixed-function, equivalent to modulate. 8 8 M_normal 22 TextureStage::M_normal 0 9 15 M_normal_height 29 TextureStage::M_normal_height 0 10 6 M_glow 20 TextureStage::M_glow 49 // Rarely used: modulate_glow is more efficient. 11 7 M_gloss 21 TextureStage::M_gloss 49 // Rarely used: modulate_gloss is more efficient. 12 8 M_height 22 TextureStage::M_height 49 // Rarely used: normal_height is more efficient. 13 10 M_selector 24 TextureStage::M_selector 0 14 14 M_normal_gloss 28 TextureStage::M_normal_gloss 0 15 0 0 3250 11 CombineMode 0 794624 25 TextureStage::CombineMode 25 TextureStage::CombineMode 3248 0 0 0 0 0 0 0 0 0 9 12 CM_undefined 26 TextureStage::CM_undefined 0 0 10 CM_replace 24 TextureStage::CM_replace 0 1 11 CM_modulate 25 TextureStage::CM_modulate 0 2 6 CM_add 20 TextureStage::CM_add 0 3 13 CM_add_signed 27 TextureStage::CM_add_signed 0 4 14 CM_interpolate 28 TextureStage::CM_interpolate 0 5 11 CM_subtract 25 TextureStage::CM_subtract 0 6 11 CM_dot3_rgb 25 TextureStage::CM_dot3_rgb 67 // The following are valid only for combine_rgb, not combine_alpha. 7 12 CM_dot3_rgba 26 TextureStage::CM_dot3_rgba 0 8 0 0 3251 13 CombineSource 0 794624 27 TextureStage::CombineSource 27 TextureStage::CombineSource 3248 0 0 0 0 0 0 0 0 0 7 12 CS_undefined 26 TextureStage::CS_undefined 0 0 10 CS_texture 24 TextureStage::CS_texture 0 1 11 CS_constant 25 TextureStage::CS_constant 0 2 16 CS_primary_color 30 TextureStage::CS_primary_color 0 3 11 CS_previous 25 TextureStage::CS_previous 0 4 23 CS_constant_color_scale 37 TextureStage::CS_constant_color_scale 0 5 20 CS_last_saved_result 34 TextureStage::CS_last_saved_result 0 6 0 0 3252 14 CombineOperand 0 794624 28 TextureStage::CombineOperand 28 TextureStage::CombineOperand 3248 0 0 0 0 0 0 0 0 0 5 12 CO_undefined 26 TextureStage::CO_undefined 0 0 12 CO_src_color 26 TextureStage::CO_src_color 0 1 22 CO_one_minus_src_color 36 TextureStage::CO_one_minus_src_color 0 2 12 CO_src_alpha 26 TextureStage::CO_src_alpha 0 3 22 CO_one_minus_src_alpha 36 TextureStage::CO_one_minus_src_alpha 0 4 0 0 3253 6 LColor 0 2105344 6 LColor 6 LColor 0 0 3254 0 0 0 0 0 0 0 0 0 0 3254 7 LColorf 0 2105344 7 LColorf 7 LColorf 0 0 3255 0 0 0 0 0 0 0 0 0 0 3255 10 LVecBase4f 0 2048 10 LVecBase4f 10 LVecBase4f 0 0 0 0 0 0 0 0 0 0 0 0 77 /** * This is the base class for all three-component vectors and points. */ 3256 14 TextureStage * 0 8576 14 TextureStage * 14 TextureStage * 0 0 3248 0 0 0 0 0 0 0 0 0 0 3257 4 Geom 0 26625 4 Geom 4 Geom 0 0 0 1 2263 2265 7 3756 3757 3758 3759 3760 3761 3762 66 2264 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 1 3891 0 2 3 3213 2259 2260 3 3173 2261 2262 0 0 418 /** * A container for geometry primitives. This class associates one or more * GeomPrimitive objects with a table of vertices defined by a GeomVertexData * object. All of the primitives stored in a particular Geom are drawn from * the same set of vertices (each primitive uses a subset of all of the * vertices in the table), and all of them must be rendered at the same time, * in the same graphics state. */ 3258 31 ConstPointerTo< GeomPrimitive > 0 2048 31 ConstPointerTo< GeomPrimitive > 31 ConstPointerTo< GeomPrimitive > 0 0 0 0 0 0 0 0 0 0 0 0 0 3259 10 BoundsType 0 794624 26 BoundingVolume::BoundsType 26 BoundingVolume::BoundsType 3260 0 0 0 0 0 0 0 0 0 5 10 BT_default 26 BoundingVolume::BT_default 0 0 7 BT_best 23 BoundingVolume::BT_best 0 1 9 BT_sphere 25 BoundingVolume::BT_sphere 0 2 6 BT_box 22 BoundingVolume::BT_box 0 3 10 BT_fastest 26 BoundingVolume::BT_fastest 0 4 0 80 // This enum is used to control the automatic generation of bounding // volumes. 3260 14 BoundingVolume 0 2048 14 BoundingVolume 14 BoundingVolume 0 0 0 0 0 0 0 0 0 0 0 0 330 /** * This is an abstract class for any volume in any sense which can be said to * define the locality of reference of a node in a graph, along with all of * its descendants. It is not necessarily a geometric volume (although see * GeometricBoundingVolume); this is simply an abstract interface for bounds * of any sort. */ 3261 11 GeomContext 0 141313 11 GeomContext 11 GeomContext 0 0 0 0 2334 1 3763 2 2332 2333 0 0 1 0 3243 0 0 0 0 534 /** * This is a special class object that holds all the information returned by a * particular GSG to indicate the geom's internal context identifier. * * Geoms typically have an immediate-mode and a retained-mode operation. When * using geoms in retained-mode (in response to Geom::prepare()), the GSG will * create some internal handle for the geom and store it here. The geom * stores all of these handles internally. * * In the case of OpenGL, for example, a GeomContext corresponds to a display * list identifier. */ 3262 6 Geom * 0 8576 6 Geom * 6 Geom * 0 0 3257 0 0 0 0 0 0 0 0 0 0 3263 9 GeomLines 0 75777 9 GeomLines 9 GeomLines 0 0 0 1 2335 2129 0 4 2336 2337 2338 2339 0 0 1 0 3247 0 0 0 0 58 /** * Defines a series of disconnected line segments. */ 3264 18 GeomLinesAdjacency 0 75777 18 GeomLinesAdjacency 18 GeomLinesAdjacency 0 0 0 1 2340 2129 0 4 2341 2342 2343 2344 0 0 1 0 3247 0 0 0 0 139 /** * Defines a series of disconnected line segments with adjacency information, * for use with geometry shaders. * * @since 1.10.0 */ 3265 14 GeomLinestrips 0 75777 14 GeomLinestrips 14 GeomLinestrips 0 0 0 1 2345 2129 0 4 2346 2347 2348 2349 0 0 1 0 3247 0 0 0 0 43 /** * Defines a series of line strips. */ 3266 23 GeomLinestripsAdjacency 0 75777 23 GeomLinestripsAdjacency 23 GeomLinestripsAdjacency 0 0 0 1 2350 2129 0 4 2351 2352 2353 2354 0 0 1 0 3247 0 0 0 0 90 /** * Defines a series of line strips with adjacency information. * * @since 1.10.0 */ 3267 11 GeomPatches 0 75777 11 GeomPatches 11 GeomPatches 0 0 0 1 2355 2129 0 4 2356 2357 2358 2359 0 0 1 0 3247 0 0 0 0 126 /** * Defines a series of "patches", fixed-size groupings of vertices that must * be processed by a tessellation shader. */ 3268 10 GeomPoints 0 75777 10 GeomPoints 10 GeomPoints 0 0 0 1 2360 2129 0 4 2361 2362 2363 2364 0 0 1 0 3247 0 0 0 0 51 /** * Defines a series of disconnected points. */ 3269 13 GeomTriangles 0 75777 13 GeomTriangles 13 GeomTriangles 0 0 0 1 2365 2129 0 4 2366 2367 2368 2369 0 0 1 0 3247 0 0 0 0 54 /** * Defines a series of disconnected triangles. */ 3270 22 GeomTrianglesAdjacency 0 75777 22 GeomTrianglesAdjacency 22 GeomTrianglesAdjacency 0 0 0 1 2370 2129 0 4 2371 2372 2373 2374 0 0 1 0 3247 0 0 0 0 102 /** * Defines a series of disconnected triangles, with adjacency information. * * @since 1.10.0 */ 3271 11 GeomTrifans 0 75777 11 GeomTrifans 11 GeomTrifans 0 0 0 1 2375 2129 0 4 2376 2377 2378 2379 0 0 1 0 3247 0 0 0 0 45 /** * Defines a series of triangle fans. */ 3272 13 GeomTristrips 0 75777 13 GeomTristrips 13 GeomTristrips 0 0 0 1 2380 2129 0 4 2381 2382 2383 2384 0 0 1 0 3247 0 0 0 0 47 /** * Defines a series of triangle strips. */ 3273 22 GeomTristripsAdjacency 0 75777 22 GeomTristripsAdjacency 22 GeomTristripsAdjacency 0 0 0 1 2385 2129 0 4 2386 2387 2388 2389 0 0 1 0 3247 0 0 0 0 94 /** * Defines a series of triangle strips with adjacency information. * * @since 1.10.0 */ 3274 16 GeomVertexReader 0 26625 16 GeomVertexReader 16 GeomVertexReader 0 0 0 1 2390 2392 0 41 2391 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 0 0 1 0 3173 0 0 0 0 1256 /** * This object provides a high-level interface for quickly reading a sequence * of numeric values from a vertex table. * * It is particularly optimized for reading a single column of data values for * a series of vertices, without changing columns between each number. * Although you can also use one GeomVertexReader to read across the columns * if it is convenient, by calling set_column() repeatedly at each vertex, it * is faster to read down the columns, and to use a different GeomVertexReader * for each column. * * Note that a GeomVertexReader does not keep a reference count to the actual * vertex data buffer (it grabs the current data buffer from the * GeomVertexData whenever set_column() is called). This means that it is * important not to keep a GeomVertexReader object around over a long period * of time in which the data buffer is likely to be deallocated; it is * intended for making a quick pass over the data in one session. * * It also means that you should create any GeomVertexWriters *before* * creating GeomVertexReaders on the same data, since the writer itself might * cause the vertex buffer to be deallocated. Better yet, use a * GeomVertexRewriter if you are going to create both of them anyway. */ 3275 16 GeomVertexWriter 0 26625 16 GeomVertexWriter 16 GeomVertexWriter 0 0 0 1 2433 2435 0 62 2434 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 0 0 1 0 3173 0 0 0 0 1822 /** * This object provides a high-level interface for quickly writing a sequence * of numeric values from a vertex table. * * This object can be used both to replace existing vertices in the table, or * to extend the table with new vertices. The set_data*() family of methods * can only be used to replace existing data; it is an error to allow these to * run past the end of the data. The add_data*() family of methods, on the * other hand, can be used to replace existing data or add new data; if you * call set_row() into the middle of existing data the add_data*() methods * will behave like the corresponding set_data*(), but if they run past the * end of existing data they will quietly add new vertices. * * Like GeomVertexReader, the writer is particularly optimized for writing a * single column of data values for a series of vertices, without changing * columns between each number. Although you can also use one * GeomVertexWriter to write across the columns if it is convenient, by * calling set_column() repeatedly at each vertex, it is faster to write down * the columns, and to use a different GeomVertexWriter for each column. * * Note that, like a GeomVertexReader, a GeomVertexWriter does not keep a * reference count to the actual vertex data buffer. This means that it is * important not to keep a GeomVertexWriter object around over a long period * of time in which the data buffer is likely to be deallocated; it is * intended for making a quick pass over the data in one session. * * It also means that you should create any GeomVertexWriters *before* * creating GeomVertexReaders on the same data, since the writer itself might * cause the vertex buffer to be deallocated. Better yet, use a * GeomVertexRewriter if you are going to create both of them anyway. */ 3276 18 GeomVertexRewriter 0 26625 18 GeomVertexRewriter 18 GeomVertexRewriter 0 0 0 1 2501 2503 0 16 2502 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 0 0 2 3 3275 2497 2498 3 3274 2499 2500 0 0 628 /** * This object provides the functionality of both a GeomVertexReader and a * GeomVertexWriter, combined together into one convenient package. It is * designed for making a single pass over a GeomVertexData object, modifying * rows as it goes. * * Although it doesn't provide any real performance benefit over using a * separate reader and writer on the same data, it should probably be used in * preference to a separate reader and writer, because it makes an effort to * manage the reference counts properly between the reader and the writer to * avoid accidentally dereferencing either array while recopying. */ 3277 12 SamplerState 0 141313 12 SamplerState 12 SamplerState 0 0 0 1 2519 2558 13 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 38 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 0 0 0 0 2 3278 3279 176 /** * Represents a set of settings that indicate how a texture is sampled. This * can be used to sample the same texture using different settings in * different places. */ 3278 10 FilterType 0 794624 24 SamplerState::FilterType 24 SamplerState::FilterType 3277 0 0 0 0 0 0 0 0 0 9 10 FT_nearest 24 SamplerState::FT_nearest 25 // Point sample the pixel 0 9 FT_linear 23 SamplerState::FT_linear 48 // Bilinear filtering of four neighboring pixels 1 25 FT_nearest_mipmap_nearest 39 SamplerState::FT_nearest_mipmap_nearest 55 // Point sample the pixel from the nearest mipmap level 2 24 FT_linear_mipmap_nearest 38 SamplerState::FT_linear_mipmap_nearest 58 // Bilinear filter the pixel from the nearest mipmap level 3 24 FT_nearest_mipmap_linear 38 SamplerState::FT_nearest_mipmap_linear 68 // Point sample the pixel from two mipmap levels, and linearly blend 4 23 FT_linear_mipmap_linear 37 SamplerState::FT_linear_mipmap_linear 116 // A.k.a. trilinear filtering: Bilinear filter the pixel from two mipmap // levels, and linearly blend the results. 5 9 FT_shadow 23 SamplerState::FT_shadow 79 // The OpenGL ARB_shadow extension can be thought of as a kind of // filtering. 6 10 FT_default 24 SamplerState::FT_default 129 // Default is usually linear, but it depends on format. This was added at // the end of the list to avoid bumping TXO version #. 7 10 FT_invalid 24 SamplerState::FT_invalid 57 // Returned by string_filter_type() for an invalid match. 8 0 0 3279 8 WrapMode 0 794624 22 SamplerState::WrapMode 22 SamplerState::WrapMode 3277 0 0 0 0 0 0 0 0 0 6 8 WM_clamp 22 SamplerState::WM_clamp 59 // coords that would be outside [0-1] are clamped to 0 or 1 0 9 WM_repeat 23 SamplerState::WM_repeat 0 1 9 WM_mirror 23 SamplerState::WM_mirror 0 2 14 WM_mirror_once 28 SamplerState::WM_mirror_once 26 // mirror once, then clamp 3 15 WM_border_color 29 SamplerState::WM_border_color 105 // coords outside [0-1] use explicit border color // Returned by string_wrap_mode() for an invalid match. 4 10 WM_invalid 24 SamplerState::WM_invalid 105 // coords outside [0-1] use explicit border color // Returned by string_wrap_mode() for an invalid match. 5 0 0 3280 12 LColor const 0 8832 12 LColor const 12 LColor const 0 0 3253 0 0 0 0 0 0 0 0 0 0 3281 7 Texture 0 26625 7 Texture 7 Texture 0 0 0 1 2563 2564 57 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 204 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 0 0 2 3 3185 2559 2560 3 3169 2561 2562 0 7 3282 3283 3284 3285 3286 3287 3288 688 /** * Represents a texture object, which is typically a single 2-d image but may * also represent a 1-d or 3-d texture image, or the six 2-d faces of a cube * map texture. * * A texture's image data might be stored in system RAM (see get_ram_image()) * or its image may be represented in texture memory on one or more * GraphicsStateGuardians (see prepare()), or both. The typical usage pattern * is that a texture is loaded from an image file on disk, which copies its * image data into system RAM; then the first time the texture is rendered its * image data is copied to texture memory (actually, to the graphics API), and * the system RAM image is automatically freed. */ 3282 11 TextureType 0 794624 20 Texture::TextureType 20 Texture::TextureType 3281 0 0 0 0 0 0 0 0 0 8 13 TT_1d_texture 22 Texture::TT_1d_texture 0 0 13 TT_2d_texture 22 Texture::TT_2d_texture 0 1 13 TT_3d_texture 22 Texture::TT_3d_texture 0 2 19 TT_2d_texture_array 28 Texture::TT_2d_texture_array 0 3 11 TT_cube_map 20 Texture::TT_cube_map 0 4 17 TT_buffer_texture 26 Texture::TT_buffer_texture 0 5 17 TT_cube_map_array 26 Texture::TT_cube_map_array 0 6 19 TT_1d_texture_array 28 Texture::TT_1d_texture_array 0 7 0 0 3283 13 ComponentType 0 794624 22 Texture::ComponentType 22 Texture::ComponentType 3281 0 0 0 0 0 0 0 0 0 9 15 T_unsigned_byte 24 Texture::T_unsigned_byte 0 0 16 T_unsigned_short 25 Texture::T_unsigned_short 0 1 7 T_float 16 Texture::T_float 0 2 19 T_unsigned_int_24_8 28 Texture::T_unsigned_int_24_8 9 // Packed 3 5 T_int 14 Texture::T_int 0 4 6 T_byte 15 Texture::T_byte 0 5 7 T_short 16 Texture::T_short 0 6 12 T_half_float 21 Texture::T_half_float 0 7 14 T_unsigned_int 23 Texture::T_unsigned_int 0 8 0 0 3284 6 Format 0 794624 15 Texture::Format 15 Texture::Format 3281 0 0 0 0 0 0 0 0 0 46 15 F_depth_stencil 24 Texture::F_depth_stencil 0 1 13 F_color_index 22 Texture::F_color_index 0 2 5 F_red 14 Texture::F_red 0 3 7 F_green 16 Texture::F_green 0 4 6 F_blue 15 Texture::F_blue 0 5 7 F_alpha 16 Texture::F_alpha 0 6 5 F_rgb 14 Texture::F_rgb 55 // any suitable RGB mode, whatever the hardware prefers 7 6 F_rgb5 15 Texture::F_rgb5 27 // 5 bits per R,G,B channel 8 6 F_rgb8 15 Texture::F_rgb8 27 // 8 bits per R,G,B channel 9 7 F_rgb12 16 Texture::F_rgb12 28 // 12 bits per R,G,B channel 10 8 F_rgb332 17 Texture::F_rgb332 33 // 3 bits per R & G, 2 bits for B 11 6 F_rgba 15 Texture::F_rgba 56 // any suitable RGBA mode, whatever the hardware prefers 12 6 F_rgbm 15 Texture::F_rgbm 58 // as above, but only requires 1 bit for alpha (i.e. mask) 13 7 F_rgba4 16 Texture::F_rgba4 29 // 4 bits per R,G,B,A channel 14 7 F_rgba5 16 Texture::F_rgba5 40 // 5 bits per R,G,B channel, 1 bit alpha 15 7 F_rgba8 16 Texture::F_rgba8 29 // 8 bits per R,G,B,A channel 16 8 F_rgba12 17 Texture::F_rgba12 30 // 12 bits per R,G,B,A channel 17 11 F_luminance 20 Texture::F_luminance 0 18 17 F_luminance_alpha 26 Texture::F_luminance_alpha 33 // 8 bits luminance, 8 bits alpha 19 21 F_luminance_alphamask 30 Texture::F_luminance_alphamask 46 // 8 bits luminance, only needs 1 bit of alpha 20 8 F_rgba16 17 Texture::F_rgba16 30 // 16 bits per R,G,B,A channel 21 8 F_rgba32 17 Texture::F_rgba32 30 // 32 bits per R,G,B,A channel 22 17 F_depth_component 26 Texture::F_depth_component 0 23 19 F_depth_component16 28 Texture::F_depth_component16 0 24 19 F_depth_component24 28 Texture::F_depth_component24 0 25 19 F_depth_component32 28 Texture::F_depth_component32 0 26 5 F_r16 14 Texture::F_r16 0 27 6 F_rg16 15 Texture::F_rg16 0 28 7 F_rgb16 16 Texture::F_rgb16 0 29 6 F_srgb 15 Texture::F_srgb 101 // These formats are in the sRGB color space. RGB is 2.2 gamma corrected, // alpha is always linear. 30 12 F_srgb_alpha 21 Texture::F_srgb_alpha 0 31 12 F_sluminance 21 Texture::F_sluminance 0 32 18 F_sluminance_alpha 27 Texture::F_sluminance_alpha 0 33 6 F_r32i 15 Texture::F_r32i 41 // 32-bit integer, used for atomic access 34 5 F_r32 14 Texture::F_r32 0 35 6 F_rg32 15 Texture::F_rg32 0 36 7 F_rgb32 16 Texture::F_rgb32 0 37 5 F_r8i 14 Texture::F_r8i 31 // 8 integer bits per R channel 38 6 F_rg8i 15 Texture::F_rg8i 33 // 8 integer bits per R,G channel 39 7 F_rgb8i 16 Texture::F_rgb8i 35 // 8 integer bits per R,G,B channel 40 8 F_rgba8i 17 Texture::F_rgba8i 37 // 8 integer bits per R,G,B,A channel 41 13 F_r11_g11_b10 22 Texture::F_r11_g11_b10 58 // unsigned floating-point, 11 Red, 11 Green, 10 Blue Bits 42 9 F_rgb9_e5 18 Texture::F_rgb9_e5 0 43 10 F_rgb10_a2 19 Texture::F_rgb10_a2 0 44 4 F_rg 13 Texture::F_rg 0 45 6 F_r16i 15 Texture::F_r16i 0 46 0 0 3285 20 DeprecatedFilterType 0 794624 29 Texture::DeprecatedFilterType 29 Texture::DeprecatedFilterType 3281 0 0 0 0 0 0 0 0 0 9 10 FT_nearest 19 Texture::FT_nearest 0 0 9 FT_linear 18 Texture::FT_linear 0 1 25 FT_nearest_mipmap_nearest 34 Texture::FT_nearest_mipmap_nearest 0 2 24 FT_linear_mipmap_nearest 33 Texture::FT_linear_mipmap_nearest 0 3 24 FT_nearest_mipmap_linear 33 Texture::FT_nearest_mipmap_linear 0 4 23 FT_linear_mipmap_linear 32 Texture::FT_linear_mipmap_linear 0 5 9 FT_shadow 18 Texture::FT_shadow 0 6 10 FT_default 19 Texture::FT_default 0 7 10 FT_invalid 19 Texture::FT_invalid 0 8 0 44 // Deprecated. See SamplerState.FilterType. 3286 18 DeprecatedWrapMode 0 794624 27 Texture::DeprecatedWrapMode 27 Texture::DeprecatedWrapMode 3281 0 0 0 0 0 0 0 0 0 6 8 WM_clamp 17 Texture::WM_clamp 0 0 9 WM_repeat 18 Texture::WM_repeat 0 1 9 WM_mirror 18 Texture::WM_mirror 0 2 14 WM_mirror_once 23 Texture::WM_mirror_once 0 3 15 WM_border_color 24 Texture::WM_border_color 0 4 10 WM_invalid 19 Texture::WM_invalid 0 5 0 42 // Deprecated. See SamplerState.WrapMode. 3287 15 CompressionMode 0 794624 24 Texture::CompressionMode 24 Texture::CompressionMode 3281 0 0 0 0 0 0 0 0 0 15 10 CM_default 19 Texture::CM_default 46 // on or off, according to compressed-textures 0 6 CM_off 15 Texture::CM_off 21 // uncompressed image 1 5 CM_on 14 Texture::CM_on 43 // whatever compression the driver supports 2 7 CM_fxt1 16 Texture::CM_fxt1 304 // Specific compression modes. Use only when you really want to use a // particular compression algorithm. Use with caution; not all drivers // support all compression modes. You can use // GSG::get_supports_compressed_texture_format() to query the available // compression modes for a particular GSG. 3 7 CM_dxt1 16 Texture::CM_dxt1 39 // BC1: RGB with optional binary alpha. 4 7 CM_dxt2 16 Texture::CM_dxt2 45 // Like DXT3, but assumes premultiplied alpha 5 7 CM_dxt3 16 Texture::CM_dxt3 42 // BC2: RGB with uncompressed 4-bit alpha. 6 7 CM_dxt4 16 Texture::CM_dxt4 45 // Like DXT5, but assumes premultiplied alpha 7 7 CM_dxt5 16 Texture::CM_dxt5 51 // BC3: RGB with separately compressed 8-bit alpha. 8 12 CM_pvr1_2bpp 21 Texture::CM_pvr1_2bpp 0 9 12 CM_pvr1_4bpp 21 Texture::CM_pvr1_4bpp 0 10 7 CM_rgtc 16 Texture::CM_rgtc 53 // BC4/BC5: 1 or 2 channels, individually compressed. 11 7 CM_etc1 16 Texture::CM_etc1 0 12 7 CM_etc2 16 Texture::CM_etc2 0 13 6 CM_eac 15 Texture::CM_eac 24 // EAC: 1 or 2 channels. 14 0 0 3288 12 QualityLevel 0 794624 21 Texture::QualityLevel 21 Texture::QualityLevel 3281 0 0 0 0 0 0 0 0 0 4 10 QL_default 19 Texture::QL_default 37 // according to texture-quality-level 0 10 QL_fastest 19 Texture::QL_fastest 0 1 9 QL_normal 18 Texture::QL_normal 0 2 7 QL_best 16 Texture::QL_best 0 3 0 0 3289 14 Filename const 0 8832 14 Filename const 14 Filename const 0 0 3290 0 0 0 0 0 0 0 0 0 0 3290 8 Filename 0 2048 8 Filename 8 Filename 0 0 0 0 0 0 0 0 0 0 0 0 550 /** * The name of a file, such as a texture file or an Egg file. Stores the full * pathname, and includes functions for extracting out the directory prefix * part and the file extension and stuff. * * A Filename is also aware of the mapping between the Unix-like filename * convention we use internally, and the local OS's specific filename * convention, and it knows how to perform basic OS-specific I/O, like testing * for file existence and searching a searchpath, as well as the best way to * open an fstream for reading or writing. */ 3291 18 SamplerState const 0 8832 18 SamplerState const 18 SamplerState const 0 0 3277 0 0 0 0 0 0 0 0 0 0 3292 10 CPTA_uchar 0 2105344 10 CPTA_uchar 10 CPTA_uchar 0 0 3293 0 0 0 0 0 0 0 0 0 0 3293 36 ConstPointerToArray< unsigned char > 0 2048 36 ConstPointerToArray< unsigned char > 36 ConstPointerToArray< unsigned char > 0 0 0 0 0 0 0 0 0 0 0 0 0 3294 16 AutoTextureScale 0 532480 16 AutoTextureScale 16 AutoTextureScale 0 0 0 0 0 0 0 0 0 0 5 8 ATS_none 8 ATS_none 0 0 8 ATS_down 8 ATS_down 0 1 6 ATS_up 6 ATS_up 0 2 7 ATS_pad 7 ATS_pad 0 3 15 ATS_unspecified 15 ATS_unspecified 0 4 0 0 3295 21 TypedReferenceCount * 0 8576 21 TypedReferenceCount * 21 TypedReferenceCount * 0 0 3296 0 0 0 0 0 0 0 0 0 0 3296 19 TypedReferenceCount 0 2048 19 TypedReferenceCount 19 TypedReferenceCount 0 0 0 0 0 0 0 0 0 0 0 0 410 /** * A base class for things which need to inherit from both TypedObject and * from ReferenceCount. It's convenient to define this intermediate base * class instead of multiply inheriting from the two classes each time they * are needed, so that we can sensibly pass around pointers to things which * are both TypedObjects and ReferenceCounters. * * See also TypedObject for detailed instructions. */ 3297 6 Shader 0 75777 6 Shader 6 Shader 0 0 0 1 2789 0 0 19 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 0 0 1 0 3185 0 0 0 4 3298 3299 3300 3301 8 /** */ 3298 14 ShaderLanguage 0 794624 22 Shader::ShaderLanguage 22 Shader::ShaderLanguage 3297 0 0 0 0 0 0 0 0 0 5 7 SL_none 15 Shader::SL_none 0 0 5 SL_Cg 13 Shader::SL_Cg 0 1 7 SL_GLSL 15 Shader::SL_GLSL 0 2 7 SL_HLSL 15 Shader::SL_HLSL 0 3 9 SL_SPIR_V 17 Shader::SL_SPIR_V 0 4 0 0 3299 10 ShaderType 0 794624 18 Shader::ShaderType 18 Shader::ShaderType 3297 0 0 0 0 0 0 0 0 0 8 7 ST_none 15 Shader::ST_none 0 0 9 ST_vertex 17 Shader::ST_vertex 0 1 11 ST_fragment 19 Shader::ST_fragment 0 2 11 ST_geometry 19 Shader::ST_geometry 0 3 15 ST_tess_control 23 Shader::ST_tess_control 0 4 18 ST_tess_evaluation 26 Shader::ST_tess_evaluation 0 5 10 ST_compute 18 Shader::ST_compute 0 6 8 ST_COUNT 16 Shader::ST_COUNT 0 7 0 0 3300 16 AutoShaderSwitch 0 794624 24 Shader::AutoShaderSwitch 24 Shader::AutoShaderSwitch 3297 0 0 0 0 0 0 0 0 0 5 9 AS_normal 17 Shader::AS_normal 0 1 7 AS_glow 15 Shader::AS_glow 0 2 8 AS_gloss 16 Shader::AS_gloss 0 4 7 AS_ramp 15 Shader::AS_ramp 0 8 9 AS_shadow 17 Shader::AS_shadow 0 16 0 0 3301 13 AutoShaderBit 0 794624 21 Shader::AutoShaderBit 21 Shader::AutoShaderBit 3297 0 0 0 0 0 0 0 0 0 5 20 bit_AutoShaderNormal 28 Shader::bit_AutoShaderNormal 20 // bit for AS_normal 0 18 bit_AutoShaderGlow 26 Shader::bit_AutoShaderGlow 18 // bit for AS_glow 1 19 bit_AutoShaderGloss 27 Shader::bit_AutoShaderGloss 19 // bit for AS_gloss 2 18 bit_AutoShaderRamp 26 Shader::bit_AutoShaderRamp 18 // bit for AS_ramp 3 20 bit_AutoShaderShadow 28 Shader::bit_AutoShaderShadow 20 // bit for AS_shadow 4 0 0 3302 12 ShaderBuffer 0 26625 12 ShaderBuffer 12 ShaderBuffer 0 0 0 1 2797 2796 2 3834 3835 6 2800 2801 2802 2803 2804 2805 0 0 3 3 3185 2790 2791 3 3169 2792 2793 3 3173 2794 2795 0 0 93 /** * This is a generic buffer object that lives in graphics memory. * * @since 1.10.0 */ 3303 8 uint64_t 0 2105344 8 uint64_t 8 uint64_t 0 0 3215 0 0 0 0 0 0 0 0 0 0 3304 23 PreparedGraphicsObjects 0 75777 23 PreparedGraphicsObjects 23 PreparedGraphicsObjects 0 0 0 0 0 0 71 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 0 0 1 0 3211 0 0 0 0 658 /** * A table of objects that are saved within the graphics context for reference * by handle later. Generally, this represents things like OpenGL texture * objects or display lists (or their equivalent on other platforms). * * This object simply records the pointers to the context objects created by * the individual GSG's; these context objects will contain enough information * to reference or release the actual object stored within the graphics * context. * * These tables may potentially be shared between related graphics contexts, * hence their storage here in a separate object rather than as a part of the * GraphicsStateGuardian. */ 3305 18 IndexBufferContext 0 141313 18 IndexBufferContext 18 IndexBufferContext 0 0 0 0 2886 0 5 2881 2882 2883 2884 2885 0 0 2 3 3245 2877 2878 3 3170 2879 2880 0 0 366 /** * This is a special class object that holds all the information returned by a * particular GSG to indicate the vertex data array's internal context * identifier. * * This allows the GSG to cache the vertex data array in whatever way makes * sense. For instance, DirectX can allocate a vertex buffer for the array. * OpenGL can create a buffer object. */ 3306 4 Lens 0 141313 4 Lens 4 Lens 0 0 0 0 2954 16 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 67 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 0 0 1 0 3185 0 0 0 2 3307 3323 398 /** * A base class for any number of different kinds of lenses, linear and * otherwise. Presently, this includes perspective and orthographic lenses. * * A Lens object is the main part of a Camera node, which defines the * fundamental interface to point-of-view for rendering. Lenses are also used * in other contexts, however; for instance, a Spotlight is also defined using * a lens. */ 3307 13 StereoChannel 0 794624 19 Lens::StereoChannel 19 Lens::StereoChannel 3306 0 0 0 0 0 0 0 0 0 4 7 SC_mono 13 Lens::SC_mono 0 0 7 SC_left 13 Lens::SC_left 0 1 8 SC_right 14 Lens::SC_right 0 2 9 SC_stereo 15 Lens::SC_stereo 24 // == SC_left | SC_right 3 0 0 3308 16 CoordinateSystem 0 532480 16 CoordinateSystem 16 CoordinateSystem 0 0 0 0 0 0 0 0 0 0 6 10 CS_default 10 CS_default 210 // The CS_default entry does not refer to a particular coordinate system, // but rather to the value stored in default_coordinate_system, which in // turn is loaded from the config variable "coordinate-system". 0 12 CS_zup_right 12 CS_zup_right 21 // Z-Up, Right-handed 1 12 CS_yup_right 12 CS_yup_right 21 // Y-Up, Right-handed 2 11 CS_zup_left 11 CS_zup_left 20 // Z-Up, Left-handed 3 11 CS_yup_left 11 CS_yup_left 20 // Y-Up, Left-handed 4 10 CS_invalid 10 CS_invalid 156 // CS_invalid is not a coordinate system at all. It can be used in user- // input processing code to indicate a contradictory coordinate system // request. 5 0 0 3309 15 LVecBase2 const 0 8832 15 LVecBase2 const 15 LVecBase2 const 0 0 3310 0 0 0 0 0 0 0 0 0 0 3310 9 LVecBase2 0 2105344 9 LVecBase2 9 LVecBase2 0 0 3311 0 0 0 0 0 0 0 0 0 0 3311 10 LVecBase2f 0 2048 10 LVecBase2f 10 LVecBase2f 0 0 0 0 0 0 0 0 0 0 0 0 75 /** * This is the base class for all two-component vectors and points. */ 3312 14 LVector2 const 0 8832 14 LVector2 const 14 LVector2 const 0 0 3313 0 0 0 0 0 0 0 0 0 0 3313 8 LVector2 0 2105344 8 LVector2 8 LVector2 0 0 3314 0 0 0 0 0 0 0 0 0 0 3314 9 LVector2f 0 2048 9 LVector2f 9 LVector2f 0 0 0 0 0 0 0 0 0 0 0 0 49 /** * This is a two-component vector offset. */ 3315 15 LVecBase3 const 0 8832 15 LVecBase3 const 15 LVecBase3 const 0 0 3316 0 0 0 0 0 0 0 0 0 0 3316 9 LVecBase3 0 2105344 9 LVecBase3 9 LVecBase3 0 0 3317 0 0 0 0 0 0 0 0 0 0 3317 10 LVecBase3f 0 2048 10 LVecBase3f 10 LVecBase3f 0 0 0 0 0 0 0 0 0 0 0 0 77 /** * This is the base class for all three-component vectors and points. */ 3318 7 LPoint3 0 2105344 7 LPoint3 7 LPoint3 0 0 3319 0 0 0 0 0 0 0 0 0 0 3319 8 LPoint3f 0 2048 8 LPoint3f 8 LPoint3f 0 0 0 0 0 0 0 0 0 0 0 0 337 /** * This is a three-component point in space (as opposed to a three-component * vector, which represents a direction and a distance). Some of the methods * are slightly different between LPoint3 and LVector3; in particular, * subtraction of two points yields a vector, while addition of a vector and a * point yields a point. */ 3320 14 LMatrix4 const 0 8832 14 LMatrix4 const 14 LMatrix4 const 0 0 3321 0 0 0 0 0 0 0 0 0 0 3321 8 LMatrix4 0 2105344 8 LMatrix4 8 LMatrix4 0 0 3322 0 0 0 0 0 0 0 0 0 0 3322 9 LMatrix4f 0 2048 9 LMatrix4f 9 LMatrix4f 0 0 0 0 0 0 0 0 0 0 0 0 45 /** * This is a 4-by-4 transform matrix. */ 3323 11 FromCorners 0 794624 17 Lens::FromCorners 17 Lens::FromCorners 3306 0 0 0 0 0 0 0 0 0 6 7 FC_roll 13 Lens::FC_roll 0 1 15 FC_camera_plane 21 Lens::FC_camera_plane 0 2 11 FC_off_axis 17 Lens::FC_off_axis 0 4 15 FC_aspect_ratio 21 Lens::FC_aspect_ratio 0 8 8 FC_shear 14 Lens::FC_shear 0 16 11 FC_keystone 17 Lens::FC_keystone 0 32 0 183 // These flags are passed in as the last parameter to control the behavior // of set_frustum_from_corners(). See the documentation for that method for // an explanation of each flag. 3324 8 Material 0 26625 8 Material 8 Material 0 0 0 1 2959 2961 11 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 47 2960 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 0 0 2 3 3185 2955 2956 3 3169 2957 2958 0 0 682 /** * Defines the way an object appears in the presence of lighting. A material * is only necessary if lighting is to be enabled; otherwise, the material * isn't used. * * There are two workflows that are supported: the "classic" workflow of * providing separate ambient, diffuse and specular colors, and the * "metalness" workflow, in which a base color is specified along with a * "metallic" value that indicates whether the material is a metal or a * dielectric. * * The size of the specular highlight can be specified by either specifying * the specular exponent (shininess) or by specifying a roughness value that * in perceptually linear in the range of 0-1. */ 3325 12 MaterialPool 0 141313 12 MaterialPool 12 MaterialPool 0 0 0 0 3014 0 6 3008 3009 3010 3011 3012 3013 0 0 0 0 0 661 /** * The MaterialPool (there is only one in the universe) serves to unify * different pointers to the same Material, so we do not (a) waste memory with * many different Material objects that are all equivalent, and (b) waste time * switching the graphics engine between different Material states that are * really the same thing. * * The idea is to create a temporary Material representing the lighting state * you want to apply, then call get_material(), passing in your temporary * Material. The return value will either be a new Material object, or it may * be the the same object you supplied; in either case, it will have the same * value. */ 3326 10 MatrixLens 0 141313 10 MatrixLens 10 MatrixLens 0 0 0 1 3015 3027 1 3863 11 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 0 0 1 0 3306 0 0 0 0 274 /** * A completely generic linear lens. This is provided for the benefit of low- * level code that wants to specify a perspective or orthographic frustum via * an explicit projection matrix, but not mess around with fov's or focal * lengths or any of that nonsense. */ 3327 16 OrthographicLens 0 141313 16 OrthographicLens 16 OrthographicLens 0 0 0 1 3028 3030 0 1 3029 0 0 1 0 3306 0 0 0 0 400 /** * An orthographic lens. Although this kind of lens is linear, like a * PerspectiveLens, it doesn't respect field-of-view or focal length * parameters, and adjusting these will have no effect. Instead, its field of * view is controlled by adjusting the film_size; the orthographic lens * represents a planar projection onto its imaginary film of the specified * size, hanging in space. */ 3328 19 ParamTextureSampler 0 141313 19 ParamTextureSampler 19 ParamTextureSampler 0 0 0 1 3031 3035 2 3864 3865 3 3032 3033 3034 0 0 1 0 3329 0 0 0 0 141 /** * A class object for storing a pointer to a Texture along with a sampler * state that indicates how to to sample the given texture. */ 3329 14 ParamValueBase 0 2048 14 ParamValueBase 14 ParamValueBase 0 0 0 0 0 0 0 0 0 0 0 0 141 /** * A non-template base class of ParamValue (below), which serves mainly to * define the placeholder for the virtual output function. */ 3330 9 Texture * 0 8576 9 Texture * 9 Texture * 0 0 3281 0 0 0 0 0 0 0 0 0 0 3331 17 ParamTextureImage 0 141313 17 ParamTextureImage 17 ParamTextureImage 0 0 0 1 3036 3044 5 3866 3867 3868 3869 3870 7 3037 3038 3039 3040 3041 3042 3043 0 0 1 0 3329 0 0 0 0 254 /** * A class object for storing a pointer to a Texture along with a set of * properties that indicates which image to bind to a shader input. * * This class is useful for binding texture images to a shader, which is a * fairly esoteric feature. */ 3332 15 PerspectiveLens 0 141313 15 PerspectiveLens 15 PerspectiveLens 0 0 0 1 3045 3047 0 1 3046 0 0 1 0 3306 0 0 0 0 52 /** * A perspective-type lens: a normal camera. */ 3333 20 TextureReloadRequest 0 141313 20 TextureReloadRequest 20 TextureReloadRequest 0 0 0 1 3048 3054 1 3871 5 3049 3050 3051 3052 3053 0 0 1 0 3242 0 0 0 0 245 /** * This loader request will call Texture::get_ram_image() in a sub-thread, to * force the texture's image to be re-read from disk. It is used by * GraphicsStateGuardian::async_reload_texture(), when get_incomplete_render() * is true. */ 3334 14 TextureContext 0 141313 14 TextureContext 14 TextureContext 0 0 0 0 3071 0 12 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 0 0 2 3 3245 3055 3056 3 3170 3057 3058 0 0 449 /** * This is a special class object that holds all the information returned by a * particular GSG to indicate the texture's internal context identifier. * * Textures typically have an immediate-mode and a retained-mode operation. * When using textures in retained-mode (in response to Texture::prepare()), * the GSG will create some internal handle for the texture and store it here. * The texture stores all of these handles internally. */ 3335 13 ShaderContext 0 141313 13 ShaderContext 13 ShaderContext 0 0 0 0 3074 1 3872 2 3072 3073 0 0 1 0 3243 0 0 0 0 0 3336 8 Shader * 0 8576 8 Shader * 8 Shader * 0 0 3297 0 0 0 0 0 0 0 0 0 0 3337 16 UserVertexSlider 0 141313 16 UserVertexSlider 16 UserVertexSlider 0 0 0 1 3075 3078 0 2 3076 3077 0 0 1 0 3231 0 0 0 0 167 /** * This is a specialization on VertexSlider that allows the user to specify * any arbitrary slider valie he likes. This is rarely used except for * testing. */ 3338 19 UserVertexTransform 0 141313 19 UserVertexTransform 19 UserVertexTransform 0 0 0 1 3079 3083 0 3 3080 3081 3082 0 0 1 0 3220 0 0 0 0 174 /** * This is a specialization on VertexTransform that allows the user to specify * any arbitrary transform matrix he likes. This is rarely used except for * testing. */ 3339 12 VideoTexture 0 141313 12 VideoTexture 12 VideoTexture 0 0 0 0 3092 2 3873 3874 4 3088 3089 3090 3091 0 0 2 3 3281 3084 3085 3 3340 3086 3087 0 0 248 /** * The base class for a family of animated Textures that take their input from * a video source, such as a movie file. These Textures may be stopped, * started, etc. using the AnimInterface controls, similar to an animated * character. */ 3340 13 AnimInterface 0 2048 13 AnimInterface 13 AnimInterface 0 0 0 0 0 0 0 0 0 0 0 0 226 /** * This is the fundamental interface for things that have a play/loop/stop * type interface for frame-based animation, such as animated characters. * This is the base class for AnimControl and other, similar classes. */ 3341 19 VertexBufferContext 0 141313 19 VertexBufferContext 19 VertexBufferContext 0 0 0 0 3102 0 5 3097 3098 3099 3100 3101 0 0 2 3 3245 3093 3094 3 3170 3095 3096 0 0 366 /** * This is a special class object that holds all the information returned by a * particular GSG to indicate the vertex data array's internal context * identifier. * * This allows the GSG to cache the vertex data array in whatever way makes * sense. For instance, DirectX can allocate a vertex buffer for the array. * OpenGL can create a buffer object. */ 3342 17 TextureCollection 0 26625 17 TextureCollection 17 TextureCollection 0 0 0 1 3103 3105 0 21 3104 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 1 3892 0 0 0 0 97 /** * Manages a list of Texture objects, as returned by * TexturePool::find_all_textures(). */ 3343 11 TexturePool 0 141313 11 TexturePool 11 TexturePool 0 0 0 0 3148 0 22 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 0 0 0 0 0 235 /** * This is the preferred interface for loading textures from image files. It * unifies all references to the same filename, so that multiple models that * reference the same textures don't waste texture memory unnecessarily. */ 3344 13 TexturePeeker 0 141313 13 TexturePeeker 13 TexturePeeker 0 0 0 1 3157 3158 0 8 3149 3150 3151 3152 3153 3154 3155 3156 0 0 1 0 3211 0 0 0 0 166 /** * An instance of this object is returned by Texture::peek(). This object * allows quick and easy inspection of a texture's texels by (u, v) * coordinates. */ 3345 16 TextureStagePool 0 141313 16 TextureStagePool 16 TextureStagePool 0 0 0 0 3167 1 3875 8 3159 3160 3161 3162 3163 3164 3165 3166 0 0 0 0 1 3346 359 /** * The TextureStagePool (there is only one in the universe) serves to unify * different pointers to the same TextureStage, mainly to help developers use * a common pointer to access things that are loaded from different model * files. * * It runs in one of three different modes, according to set_mode(). See that * method for more information. */ 3346 4 Mode 0 794624 22 TextureStagePool::Mode 22 TextureStagePool::Mode 3345 0 0 0 0 0 0 0 0 0 3 6 M_none 24 TextureStagePool::M_none 0 0 6 M_name 24 TextureStagePool::M_name 0 1 8 M_unique 26 TextureStagePool::M_unique 0 2 0 0 3347 13 atomic string 0 2 13 atomic string 13 atomic string 0 7 0 0 0 0 0 0 0 0 0 0 0 3348 13 AdaptiveLru * 0 8576 13 AdaptiveLru * 13 AdaptiveLru * 0 0 3168 0 0 0 0 0 0 0 0 0 0 3349 19 AdaptiveLru const * 0 8576 19 AdaptiveLru const * 19 AdaptiveLru const * 0 0 3350 0 0 0 0 0 0 0 0 0 0 3350 17 AdaptiveLru const 0 8832 17 AdaptiveLru const 17 AdaptiveLru const 0 0 3168 0 0 0 0 0 0 0 0 0 0 3351 4 void 0 8194 4 void 4 void 0 6 0 0 0 0 0 0 0 0 0 0 0 3352 9 ostream * 0 8576 14 std::ostream * 14 std::ostream * 0 0 3353 0 0 0 0 0 0 0 0 0 0 3353 7 ostream 0 2048 12 std::ostream 12 std::ostream 0 0 0 0 0 0 0 0 0 0 0 0 0 3354 23 AdaptiveLruPage const * 0 8576 23 AdaptiveLruPage const * 23 AdaptiveLruPage const * 0 0 3355 0 0 0 0 0 0 0 0 0 0 3355 21 AdaptiveLruPage const 0 8832 21 AdaptiveLruPage const 21 AdaptiveLruPage const 0 0 3170 0 0 0 0 0 0 0 0 0 0 3356 17 AdaptiveLruPage * 0 8576 17 AdaptiveLruPage * 17 AdaptiveLruPage * 0 0 3170 0 0 0 0 0 0 0 0 0 0 3357 12 unsigned int 0 8198 12 unsigned int 12 unsigned int 0 1 0 0 0 0 0 0 0 0 0 0 0 3358 11 GeomEnums * 0 8576 11 GeomEnums * 11 GeomEnums * 0 0 3173 0 0 0 0 0 0 0 0 0 0 3359 17 GeomEnums const * 0 8576 17 GeomEnums const * 17 GeomEnums const * 0 0 3360 0 0 0 0 0 0 0 0 0 0 3360 15 GeomEnums const 0 8832 15 GeomEnums const 15 GeomEnums const 0 0 3173 0 0 0 0 0 0 0 0 0 0 3361 25 GeomVertexAnimationSpec * 0 8576 25 GeomVertexAnimationSpec * 25 GeomVertexAnimationSpec * 0 0 3181 0 0 0 0 0 0 0 0 0 0 3362 31 GeomVertexAnimationSpec const * 0 8576 31 GeomVertexAnimationSpec const * 31 GeomVertexAnimationSpec const * 0 0 3195 0 0 0 0 0 0 0 0 0 0 3363 10 PyObject * 0 8576 10 PyObject * 10 PyObject * 0 0 3364 0 0 0 0 0 0 0 0 0 0 3364 8 PyObject 0 2105344 8 PyObject 8 PyObject 0 0 3365 0 0 0 0 0 0 0 0 0 0 3365 7 _object 0 1024 7 _object 7 _object 0 0 0 0 0 0 0 0 0 0 0 0 0 3366 10 TypeHandle 0 16779264 10 TypeHandle 10 TypeHandle 0 0 0 0 0 0 0 0 0 0 0 0 732 /** * TypeHandle is the identifier used to differentiate C++ class types. Any * C++ classes that inherit from some base class, and must be differentiated * at run time, should store a static TypeHandle object that can be queried * through a static member function named get_class_type(). Most of the time, * it is also desirable to inherit from TypedObject, which provides some * virtual functions to return the TypeHandle for a particular instance. * * At its essence, a TypeHandle is simply a unique identifier that is assigned * by the TypeRegistry. The TypeRegistry stores a tree of TypeHandles, so * that ancestry of a particular type may be queried, and the type name may be * retrieved for run-time display. */ 3367 12 TypeHandle * 0 8576 12 TypeHandle * 12 TypeHandle * 0 0 3366 0 0 0 0 0 0 0 0 0 0 3368 18 GeomVertexColumn * 0 8576 18 GeomVertexColumn * 18 GeomVertexColumn * 0 0 3190 0 0 0 0 0 0 0 0 0 0 3369 23 GeomVertexArrayFormat * 0 8576 23 GeomVertexArrayFormat * 23 GeomVertexArrayFormat * 0 0 3191 0 0 0 0 0 0 0 0 0 0 3370 27 GeomVertexArrayData const * 0 8576 27 GeomVertexArrayData const * 27 GeomVertexArrayData const * 0 0 3371 0 0 0 0 0 0 0 0 0 0 3371 25 GeomVertexArrayData const 0 8832 25 GeomVertexArrayData const 25 GeomVertexArrayData const 0 0 3212 0 0 0 0 0 0 0 0 0 0 3372 18 GeomVertexFormat * 0 8576 18 GeomVertexFormat * 18 GeomVertexFormat * 0 0 3194 0 0 0 0 0 0 0 0 0 0 3373 22 GeomVertexData const * 0 8576 22 GeomVertexData const * 22 GeomVertexData const * 0 0 3374 0 0 0 0 0 0 0 0 0 0 3374 20 GeomVertexData const 0 8832 20 GeomVertexData const 20 GeomVertexData const 0 0 3233 0 0 0 0 0 0 0 0 0 0 3375 11 SimpleLru * 0 8576 11 SimpleLru * 11 SimpleLru * 0 0 3200 0 0 0 0 0 0 0 0 0 0 3376 17 SimpleLru const * 0 8576 17 SimpleLru const * 17 SimpleLru const * 0 0 3377 0 0 0 0 0 0 0 0 0 0 3377 15 SimpleLru const 0 8832 15 SimpleLru const 15 SimpleLru const 0 0 3200 0 0 0 0 0 0 0 0 0 0 3378 16 LinkedListNode * 0 8576 16 LinkedListNode * 16 LinkedListNode * 0 0 3201 0 0 0 0 0 0 0 0 0 0 3379 9 Namable * 0 8576 9 Namable * 9 Namable * 0 0 3169 0 0 0 0 0 0 0 0 0 0 3380 21 SimpleLruPage const * 0 8576 21 SimpleLruPage const * 21 SimpleLruPage const * 0 0 3381 0 0 0 0 0 0 0 0 0 0 3381 19 SimpleLruPage const 0 8832 19 SimpleLruPage const 19 SimpleLruPage const 0 0 3202 0 0 0 0 0 0 0 0 0 0 3382 15 SimpleLruPage * 0 8576 15 SimpleLruPage * 15 SimpleLruPage * 0 0 3202 0 0 0 0 0 0 0 0 0 0 3383 17 SimpleAllocator * 0 8576 17 SimpleAllocator * 17 SimpleAllocator * 0 0 3203 0 0 0 0 0 0 0 0 0 0 3384 7 Mutex * 0 8576 7 Mutex * 7 Mutex * 0 0 3385 0 0 0 0 0 0 0 0 0 0 3385 5 Mutex 0 2048 5 Mutex 5 Mutex 0 0 0 0 0 0 0 0 0 0 0 0 0 3386 22 SimpleAllocatorBlock * 0 8576 22 SimpleAllocatorBlock * 22 SimpleAllocatorBlock * 0 0 3204 0 0 0 0 0 0 0 0 0 0 3387 23 SimpleAllocator const * 0 8576 23 SimpleAllocator const * 23 SimpleAllocator const * 0 0 3388 0 0 0 0 0 0 0 0 0 0 3388 21 SimpleAllocator const 0 8832 21 SimpleAllocator const 21 SimpleAllocator const 0 0 3203 0 0 0 0 0 0 0 0 0 0 3389 28 SimpleAllocatorBlock const * 0 8576 28 SimpleAllocatorBlock const * 28 SimpleAllocatorBlock const * 0 0 3390 0 0 0 0 0 0 0 0 0 0 3390 26 SimpleAllocatorBlock const 0 8832 26 SimpleAllocatorBlock const 26 SimpleAllocatorBlock const 0 0 3204 0 0 0 0 0 0 0 0 0 0 3391 26 VertexDataSaveFile const * 0 8576 26 VertexDataSaveFile const * 26 VertexDataSaveFile const * 0 0 3392 0 0 0 0 0 0 0 0 0 0 3392 24 VertexDataSaveFile const 0 8832 24 VertexDataSaveFile const 24 VertexDataSaveFile const 0 0 3205 0 0 0 0 0 0 0 0 0 0 3393 22 VertexDataPage const * 0 8576 22 VertexDataPage const * 22 VertexDataPage const * 0 0 3394 0 0 0 0 0 0 0 0 0 0 3394 20 VertexDataPage const 0 8832 20 VertexDataPage const 20 VertexDataPage const 0 0 3206 0 0 0 0 0 0 0 0 0 0 3395 16 VertexDataPage * 0 8576 16 VertexDataPage * 16 VertexDataPage * 0 0 3206 0 0 0 0 0 0 0 0 0 0 3396 17 VertexDataBlock * 0 8576 17 VertexDataBlock * 17 VertexDataBlock * 0 0 3210 0 0 0 0 0 0 0 0 0 0 3397 16 VertexDataBook * 0 8576 16 VertexDataBook * 16 VertexDataBook * 0 0 3209 0 0 0 0 0 0 0 0 0 0 3398 22 VertexDataBook const * 0 8576 22 VertexDataBook const * 22 VertexDataBook const * 0 0 3399 0 0 0 0 0 0 0 0 0 0 3399 20 VertexDataBook const 0 8832 20 VertexDataBook const 20 VertexDataBook const 0 0 3209 0 0 0 0 0 0 0 0 0 0 3400 23 VertexDataBlock const * 0 8576 23 VertexDataBlock const * 23 VertexDataBlock const * 0 0 3401 0 0 0 0 0 0 0 0 0 0 3401 21 VertexDataBlock const 0 8832 21 VertexDataBlock const 21 VertexDataBlock const 0 0 3210 0 0 0 0 0 0 0 0 0 0 3402 16 ReferenceCount * 0 8576 16 ReferenceCount * 16 ReferenceCount * 0 0 3211 0 0 0 0 0 0 0 0 0 0 3403 11 UpdateSeq * 0 8576 11 UpdateSeq * 11 UpdateSeq * 0 0 3216 0 0 0 0 0 0 0 0 0 0 3404 8 Thread * 0 8576 8 Thread * 8 Thread * 0 0 3405 0 0 0 0 0 0 0 0 0 0 3405 6 Thread 0 2048 6 Thread 6 Thread 0 0 0 0 0 0 0 0 0 0 0 0 396 /** * A thread; that is, a lightweight process. This is an abstract base class; * to use it, you must subclass from it and redefine thread_main(). * * The thread itself will keep a reference count on the Thread object while it * is running; when the thread returns from its root function, the Thread * object will automatically be destructed if no other pointers are * referencing it. */ 3406 31 GeomVertexArrayDataHandle const 0 8832 31 GeomVertexArrayDataHandle const 31 GeomVertexArrayDataHandle const 0 0 3217 0 0 0 0 0 0 0 0 0 0 3407 33 GeomVertexArrayDataHandle const * 0 8576 33 GeomVertexArrayDataHandle const * 33 GeomVertexArrayDataHandle const * 0 0 3406 0 0 0 0 0 0 0 0 0 0 3408 27 GeomVertexArrayDataHandle * 0 8576 27 GeomVertexArrayDataHandle * 27 GeomVertexArrayDataHandle * 0 0 3217 0 0 0 0 0 0 0 0 0 0 3409 25 PreparedGraphicsObjects * 0 8576 25 PreparedGraphicsObjects * 25 PreparedGraphicsObjects * 0 0 3304 0 0 0 0 0 0 0 0 0 0 3410 27 GraphicsStateGuardianBase * 0 8576 27 GraphicsStateGuardianBase * 27 GraphicsStateGuardianBase * 0 0 3411 0 0 0 0 0 0 0 0 0 0 3411 25 GraphicsStateGuardianBase 0 2048 25 GraphicsStateGuardianBase 25 GraphicsStateGuardianBase 0 0 0 0 0 0 0 0 0 0 0 0 0 3412 21 VertexBufferContext * 0 8576 21 VertexBufferContext * 21 VertexBufferContext * 0 0 3341 0 0 0 0 0 0 0 0 0 0 3413 11 Py_buffer * 0 8576 11 Py_buffer * 11 Py_buffer * 0 0 3414 0 0 0 0 0 0 0 0 0 0 3414 9 Py_buffer 0 2105344 9 Py_buffer 9 Py_buffer 0 0 3415 0 0 0 0 0 0 0 0 0 0 3415 10 bufferinfo 0 1024 10 bufferinfo 10 bufferinfo 0 0 0 0 0 0 0 0 0 0 0 0 0 3416 19 CopyOnWriteObject * 0 8576 19 CopyOnWriteObject * 19 CopyOnWriteObject * 0 0 3213 0 0 0 0 0 0 0 0 0 0 3417 12 vector_uchar 0 2105344 12 vector_uchar 12 vector_uchar 0 0 3418 0 0 0 0 0 0 0 0 0 0 3418 24 pvector< unsigned char > 0 2048 24 pvector< unsigned char > 24 pvector< unsigned char > 0 0 0 0 0 0 0 0 0 0 0 0 0 3419 24 GeomCacheManager const * 0 8576 24 GeomCacheManager const * 24 GeomCacheManager const * 0 0 3420 0 0 0 0 0 0 0 0 0 0 3420 22 GeomCacheManager const 0 8832 22 GeomCacheManager const 22 GeomCacheManager const 0 0 3219 0 0 0 0 0 0 0 0 0 0 3421 18 GeomCacheManager * 0 8576 18 GeomCacheManager * 18 GeomCacheManager * 0 0 3219 0 0 0 0 0 0 0 0 0 0 3422 10 LMatrix4 * 0 8576 10 LMatrix4 * 10 LMatrix4 * 0 0 3321 0 0 0 0 0 0 0 0 0 0 3423 16 LMatrix4 const * 0 8576 16 LMatrix4 const * 16 LMatrix4 const * 0 0 3320 0 0 0 0 0 0 0 0 0 0 3424 16 TransformTable * 0 8576 16 TransformTable * 16 TransformTable * 0 0 3221 0 0 0 0 0 0 0 0 0 0 3425 16 TransformBlend * 0 8576 16 TransformBlend * 16 TransformBlend * 0 0 3224 0 0 0 0 0 0 0 0 0 0 3426 22 TransformBlend const * 0 8576 22 TransformBlend const * 22 TransformBlend const * 0 0 3228 0 0 0 0 0 0 0 0 0 0 3427 10 LPoint3d * 0 8576 10 LPoint3d * 10 LPoint3d * 0 0 3428 0 0 0 0 0 0 0 0 0 0 3428 8 LPoint3d 0 2048 8 LPoint3d 8 LPoint3d 0 0 0 0 0 0 0 0 0 0 0 0 337 /** * This is a three-component point in space (as opposed to a three-component * vector, which represents a direction and a distance). Some of the methods * are slightly different between LPoint3 and LVector3; in particular, * subtraction of two points yields a vector, while addition of a vector and a * point yields a point. */ 3429 10 LPoint3f * 0 8576 10 LPoint3f * 10 LPoint3f * 0 0 3319 0 0 0 0 0 0 0 0 0 0 3430 10 LPoint4d * 0 8576 10 LPoint4d * 10 LPoint4d * 0 0 3431 0 0 0 0 0 0 0 0 0 0 3431 8 LPoint4d 0 2048 8 LPoint4d 8 LPoint4d 0 0 0 0 0 0 0 0 0 0 0 0 51 /** * This is a four-component point in space. */ 3432 10 LPoint4f * 0 8576 10 LPoint4f * 10 LPoint4f * 0 0 3433 0 0 0 0 0 0 0 0 0 0 3433 8 LPoint4f 0 2048 8 LPoint4f 8 LPoint4f 0 0 0 0 0 0 0 0 0 0 0 0 51 /** * This is a four-component point in space. */ 3434 11 LVector3d * 0 8576 11 LVector3d * 11 LVector3d * 0 0 3435 0 0 0 0 0 0 0 0 0 0 3435 9 LVector3d 0 2048 9 LVector3d 9 LVector3d 0 0 0 0 0 0 0 0 0 0 0 0 338 /** * This is a three-component vector distance (as opposed to a three-component * point, which represents a particular point in space). Some of the methods * are slightly different between LPoint3 and LVector3; in particular, * subtraction of two points yields a vector, while addition of a vector and a * point yields a point. */ 3436 11 LVector3f * 0 8576 11 LVector3f * 11 LVector3f * 0 0 3437 0 0 0 0 0 0 0 0 0 0 3437 9 LVector3f 0 2048 9 LVector3f 9 LVector3f 0 0 0 0 0 0 0 0 0 0 0 0 338 /** * This is a three-component vector distance (as opposed to a three-component * point, which represents a particular point in space). Some of the methods * are slightly different between LPoint3 and LVector3; in particular, * subtraction of two points yields a vector, while addition of a vector and a * point yields a point. */ 3438 21 TransformBlendTable * 0 8576 21 TransformBlendTable * 21 TransformBlendTable * 0 0 3227 0 0 0 0 0 0 0 0 0 0 3439 27 TransformBlendTable const * 0 8576 27 TransformBlendTable const * 27 TransformBlendTable const * 0 0 3440 0 0 0 0 0 0 0 0 0 0 3440 25 TransformBlendTable const 0 8832 25 TransformBlendTable const 25 TransformBlendTable const 0 0 3227 0 0 0 0 0 0 0 0 0 0 3441 19 SparseArray const * 0 8576 19 SparseArray const * 19 SparseArray const * 0 0 3229 0 0 0 0 0 0 0 0 0 0 3442 13 SparseArray * 0 8576 13 SparseArray * 13 SparseArray * 0 0 3230 0 0 0 0 0 0 0 0 0 0 3443 20 VertexSlider const * 0 8576 20 VertexSlider const * 20 VertexSlider const * 0 0 3444 0 0 0 0 0 0 0 0 0 0 3444 18 VertexSlider const 0 8832 18 VertexSlider const 18 VertexSlider const 0 0 3231 0 0 0 0 0 0 0 0 0 0 3445 13 SliderTable * 0 8576 13 SliderTable * 13 SliderTable * 0 0 3232 0 0 0 0 0 0 0 0 0 0 3446 16 GeomVertexData * 0 8576 16 GeomVertexData * 16 GeomVertexData * 0 0 3233 0 0 0 0 0 0 0 0 0 0 3447 17 LVecBase4 const * 0 8576 17 LVecBase4 const * 17 LVecBase4 const * 0 0 3448 0 0 0 0 0 0 0 0 0 0 3448 15 LVecBase4 const 0 8832 15 LVecBase4 const 15 LVecBase4 const 0 0 3449 0 0 0 0 0 0 0 0 0 0 3449 9 LVecBase4 0 2105344 9 LVecBase4 9 LVecBase4 0 0 3255 0 0 0 0 0 0 0 0 0 0 3450 14 LColor const * 0 8576 14 LColor const * 14 LColor const * 0 0 3280 0 0 0 0 0 0 0 0 0 0 3451 30 AnimateVerticesRequest const * 0 8576 30 AnimateVerticesRequest const * 30 AnimateVerticesRequest const * 0 0 3452 0 0 0 0 0 0 0 0 0 0 3452 28 AnimateVerticesRequest const 0 8832 28 AnimateVerticesRequest const 28 AnimateVerticesRequest const 0 0 3241 0 0 0 0 0 0 0 0 0 0 3453 24 AnimateVerticesRequest * 0 8576 24 AnimateVerticesRequest * 24 AnimateVerticesRequest * 0 0 3241 0 0 0 0 0 0 0 0 0 0 3454 21 BufferContext const * 0 8576 21 BufferContext const * 21 BufferContext const * 0 0 3455 0 0 0 0 0 0 0 0 0 0 3455 19 BufferContext const 0 8832 19 BufferContext const 19 BufferContext const 0 0 3245 0 0 0 0 0 0 0 0 0 0 3456 15 BufferContext * 0 8576 15 BufferContext * 15 BufferContext * 0 0 3245 0 0 0 0 0 0 0 0 0 0 3457 14 SavedContext * 0 8576 14 SavedContext * 14 SavedContext * 0 0 3243 0 0 0 0 0 0 0 0 0 0 3458 15 GeomPrimitive * 0 8576 15 GeomPrimitive * 15 GeomPrimitive * 0 0 3247 0 0 0 0 0 0 0 0 0 0 3459 21 GeomPrimitive const * 0 8576 21 GeomPrimitive const * 21 GeomPrimitive const * 0 0 3460 0 0 0 0 0 0 0 0 0 0 3460 19 GeomPrimitive const 0 8832 19 GeomPrimitive const 19 GeomPrimitive const 0 0 3247 0 0 0 0 0 0 0 0 0 0 3461 36 GeomVertexDataPipelineReader const * 0 8576 36 GeomVertexDataPipelineReader const * 36 GeomVertexDataPipelineReader const * 0 0 3462 0 0 0 0 0 0 0 0 0 0 3462 34 GeomVertexDataPipelineReader const 0 8832 34 GeomVertexDataPipelineReader const 34 GeomVertexDataPipelineReader const 0 0 3463 0 0 0 0 0 0 0 0 0 0 3463 28 GeomVertexDataPipelineReader 0 1050624 28 GeomVertexDataPipelineReader 28 GeomVertexDataPipelineReader 0 0 0 0 0 0 0 0 0 0 0 0 198 /** * Encapsulates the data from a GeomVertexData, pre-fetched for one stage of * the pipeline. * Does not hold a reference to the GeomVertexData, so make sure it does not * go out of scope. */ 3464 8 CPTA_int 0 2105344 8 CPTA_int 8 CPTA_int 0 0 3465 0 0 0 0 0 0 0 0 0 0 3465 26 ConstPointerToArray< int > 0 2048 26 ConstPointerToArray< int > 26 ConstPointerToArray< int > 0 0 0 0 0 0 0 0 0 0 0 0 0 3466 10 CPTA_int * 0 8576 10 CPTA_int * 10 CPTA_int * 0 0 3464 0 0 0 0 0 0 0 0 0 0 3467 7 PTA_int 0 2105344 7 PTA_int 7 PTA_int 0 0 3468 0 0 0 0 0 0 0 0 0 0 3468 21 PointerToArray< int > 0 2048 21 PointerToArray< int > 21 PointerToArray< int > 0 0 0 0 0 0 0 0 0 0 0 0 0 3469 9 PTA_int * 0 8576 9 PTA_int * 9 PTA_int * 0 0 3467 0 0 0 0 0 0 0 0 0 0 3470 20 TextureStage const * 0 8576 20 TextureStage const * 20 TextureStage const * 0 0 3471 0 0 0 0 0 0 0 0 0 0 3471 18 TextureStage const 0 8832 18 TextureStage const 18 TextureStage const 0 0 3248 0 0 0 0 0 0 0 0 0 0 3472 8 LColor * 0 8576 8 LColor * 8 LColor * 0 0 3253 0 0 0 0 0 0 0 0 0 0 3473 12 Geom const * 0 8576 12 Geom const * 12 Geom const * 0 0 3474 0 0 0 0 0 0 0 0 0 0 3474 10 Geom const 0 8832 10 Geom const 10 Geom const 0 0 3257 0 0 0 0 0 0 0 0 0 0 3475 20 BoundingVolume const 0 8832 20 BoundingVolume const 20 BoundingVolume const 0 0 3260 0 0 0 0 0 0 0 0 0 0 3476 22 BoundingVolume const * 0 8576 22 BoundingVolume const * 22 BoundingVolume const * 0 0 3475 0 0 0 0 0 0 0 0 0 0 3477 13 GeomContext * 0 8576 13 GeomContext * 13 GeomContext * 0 0 3261 0 0 0 0 0 0 0 0 0 0 3478 19 GeomContext const * 0 8576 19 GeomContext const * 19 GeomContext const * 0 0 3479 0 0 0 0 0 0 0 0 0 0 3479 17 GeomContext const 0 8832 17 GeomContext const 17 GeomContext const 0 0 3261 0 0 0 0 0 0 0 0 0 0 3480 11 GeomLines * 0 8576 11 GeomLines * 11 GeomLines * 0 0 3263 0 0 0 0 0 0 0 0 0 0 3481 17 GeomLines const * 0 8576 17 GeomLines const * 17 GeomLines const * 0 0 3482 0 0 0 0 0 0 0 0 0 0 3482 15 GeomLines const 0 8832 15 GeomLines const 15 GeomLines const 0 0 3263 0 0 0 0 0 0 0 0 0 0 3483 20 GeomLinesAdjacency * 0 8576 20 GeomLinesAdjacency * 20 GeomLinesAdjacency * 0 0 3264 0 0 0 0 0 0 0 0 0 0 3484 26 GeomLinesAdjacency const * 0 8576 26 GeomLinesAdjacency const * 26 GeomLinesAdjacency const * 0 0 3485 0 0 0 0 0 0 0 0 0 0 3485 24 GeomLinesAdjacency const 0 8832 24 GeomLinesAdjacency const 24 GeomLinesAdjacency const 0 0 3264 0 0 0 0 0 0 0 0 0 0 3486 16 GeomLinestrips * 0 8576 16 GeomLinestrips * 16 GeomLinestrips * 0 0 3265 0 0 0 0 0 0 0 0 0 0 3487 22 GeomLinestrips const * 0 8576 22 GeomLinestrips const * 22 GeomLinestrips const * 0 0 3488 0 0 0 0 0 0 0 0 0 0 3488 20 GeomLinestrips const 0 8832 20 GeomLinestrips const 20 GeomLinestrips const 0 0 3265 0 0 0 0 0 0 0 0 0 0 3489 25 GeomLinestripsAdjacency * 0 8576 25 GeomLinestripsAdjacency * 25 GeomLinestripsAdjacency * 0 0 3266 0 0 0 0 0 0 0 0 0 0 3490 31 GeomLinestripsAdjacency const * 0 8576 31 GeomLinestripsAdjacency const * 31 GeomLinestripsAdjacency const * 0 0 3491 0 0 0 0 0 0 0 0 0 0 3491 29 GeomLinestripsAdjacency const 0 8832 29 GeomLinestripsAdjacency const 29 GeomLinestripsAdjacency const 0 0 3266 0 0 0 0 0 0 0 0 0 0 3492 19 GeomPatches const * 0 8576 19 GeomPatches const * 19 GeomPatches const * 0 0 3493 0 0 0 0 0 0 0 0 0 0 3493 17 GeomPatches const 0 8832 17 GeomPatches const 17 GeomPatches const 0 0 3267 0 0 0 0 0 0 0 0 0 0 3494 13 GeomPatches * 0 8576 13 GeomPatches * 13 GeomPatches * 0 0 3267 0 0 0 0 0 0 0 0 0 0 3495 12 GeomPoints * 0 8576 12 GeomPoints * 12 GeomPoints * 0 0 3268 0 0 0 0 0 0 0 0 0 0 3496 18 GeomPoints const * 0 8576 18 GeomPoints const * 18 GeomPoints const * 0 0 3497 0 0 0 0 0 0 0 0 0 0 3497 16 GeomPoints const 0 8832 16 GeomPoints const 16 GeomPoints const 0 0 3268 0 0 0 0 0 0 0 0 0 0 3498 15 GeomTriangles * 0 8576 15 GeomTriangles * 15 GeomTriangles * 0 0 3269 0 0 0 0 0 0 0 0 0 0 3499 21 GeomTriangles const * 0 8576 21 GeomTriangles const * 21 GeomTriangles const * 0 0 3500 0 0 0 0 0 0 0 0 0 0 3500 19 GeomTriangles const 0 8832 19 GeomTriangles const 19 GeomTriangles const 0 0 3269 0 0 0 0 0 0 0 0 0 0 3501 24 GeomTrianglesAdjacency * 0 8576 24 GeomTrianglesAdjacency * 24 GeomTrianglesAdjacency * 0 0 3270 0 0 0 0 0 0 0 0 0 0 3502 30 GeomTrianglesAdjacency const * 0 8576 30 GeomTrianglesAdjacency const * 30 GeomTrianglesAdjacency const * 0 0 3503 0 0 0 0 0 0 0 0 0 0 3503 28 GeomTrianglesAdjacency const 0 8832 28 GeomTrianglesAdjacency const 28 GeomTrianglesAdjacency const 0 0 3270 0 0 0 0 0 0 0 0 0 0 3504 13 GeomTrifans * 0 8576 13 GeomTrifans * 13 GeomTrifans * 0 0 3271 0 0 0 0 0 0 0 0 0 0 3505 19 GeomTrifans const * 0 8576 19 GeomTrifans const * 19 GeomTrifans const * 0 0 3506 0 0 0 0 0 0 0 0 0 0 3506 17 GeomTrifans const 0 8832 17 GeomTrifans const 17 GeomTrifans const 0 0 3271 0 0 0 0 0 0 0 0 0 0 3507 15 GeomTristrips * 0 8576 15 GeomTristrips * 15 GeomTristrips * 0 0 3272 0 0 0 0 0 0 0 0 0 0 3508 21 GeomTristrips const * 0 8576 21 GeomTristrips const * 21 GeomTristrips const * 0 0 3509 0 0 0 0 0 0 0 0 0 0 3509 19 GeomTristrips const 0 8832 19 GeomTristrips const 19 GeomTristrips const 0 0 3272 0 0 0 0 0 0 0 0 0 0 3510 24 GeomTristripsAdjacency * 0 8576 24 GeomTristripsAdjacency * 24 GeomTristripsAdjacency * 0 0 3273 0 0 0 0 0 0 0 0 0 0 3511 30 GeomTristripsAdjacency const * 0 8576 30 GeomTristripsAdjacency const * 30 GeomTristripsAdjacency const * 0 0 3512 0 0 0 0 0 0 0 0 0 0 3512 28 GeomTristripsAdjacency const 0 8832 28 GeomTristripsAdjacency const 28 GeomTristripsAdjacency const 0 0 3273 0 0 0 0 0 0 0 0 0 0 3513 18 GeomVertexReader * 0 8576 18 GeomVertexReader * 18 GeomVertexReader * 0 0 3274 0 0 0 0 0 0 0 0 0 0 3514 24 GeomVertexReader const * 0 8576 24 GeomVertexReader const * 24 GeomVertexReader const * 0 0 3515 0 0 0 0 0 0 0 0 0 0 3515 22 GeomVertexReader const 0 8832 22 GeomVertexReader const 22 GeomVertexReader const 0 0 3274 0 0 0 0 0 0 0 0 0 0 3516 18 LVecBase2f const * 0 8576 18 LVecBase2f const * 18 LVecBase2f const * 0 0 3517 0 0 0 0 0 0 0 0 0 0 3517 16 LVecBase2f const 0 8832 16 LVecBase2f const 16 LVecBase2f const 0 0 3311 0 0 0 0 0 0 0 0 0 0 3518 18 LVecBase3f const * 0 8576 18 LVecBase3f const * 18 LVecBase3f const * 0 0 3519 0 0 0 0 0 0 0 0 0 0 3519 16 LVecBase3f const 0 8832 16 LVecBase3f const 16 LVecBase3f const 0 0 3317 0 0 0 0 0 0 0 0 0 0 3520 18 LVecBase4f const * 0 8576 18 LVecBase4f const * 18 LVecBase4f const * 0 0 3521 0 0 0 0 0 0 0 0 0 0 3521 16 LVecBase4f const 0 8832 16 LVecBase4f const 16 LVecBase4f const 0 0 3255 0 0 0 0 0 0 0 0 0 0 3522 9 LMatrix3f 0 2048 9 LMatrix3f 9 LMatrix3f 0 0 0 0 0 0 0 0 0 0 0 0 231 /** * This is a 3-by-3 transform matrix. It typically will represent either a * rotation-and-scale (no translation) matrix in 3-d, or a full affine matrix * (rotation, scale, translation) in 2-d, e.g. for a texture matrix. */ 3523 11 LMatrix3f * 0 8576 11 LMatrix3f * 11 LMatrix3f * 0 0 3522 0 0 0 0 0 0 0 0 0 0 3524 11 LMatrix4f * 0 8576 11 LMatrix4f * 11 LMatrix4f * 0 0 3322 0 0 0 0 0 0 0 0 0 0 3525 6 double 0 8194 6 double 6 double 0 3 0 0 0 0 0 0 0 0 0 0 0 3526 18 LVecBase2d const * 0 8576 18 LVecBase2d const * 18 LVecBase2d const * 0 0 3527 0 0 0 0 0 0 0 0 0 0 3527 16 LVecBase2d const 0 8832 16 LVecBase2d const 16 LVecBase2d const 0 0 3528 0 0 0 0 0 0 0 0 0 0 3528 10 LVecBase2d 0 2048 10 LVecBase2d 10 LVecBase2d 0 0 0 0 0 0 0 0 0 0 0 0 75 /** * This is the base class for all two-component vectors and points. */ 3529 18 LVecBase3d const * 0 8576 18 LVecBase3d const * 18 LVecBase3d const * 0 0 3530 0 0 0 0 0 0 0 0 0 0 3530 16 LVecBase3d const 0 8832 16 LVecBase3d const 16 LVecBase3d const 0 0 3531 0 0 0 0 0 0 0 0 0 0 3531 10 LVecBase3d 0 2048 10 LVecBase3d 10 LVecBase3d 0 0 0 0 0 0 0 0 0 0 0 0 77 /** * This is the base class for all three-component vectors and points. */ 3532 18 LVecBase4d const * 0 8576 18 LVecBase4d const * 18 LVecBase4d const * 0 0 3533 0 0 0 0 0 0 0 0 0 0 3533 16 LVecBase4d const 0 8832 16 LVecBase4d const 16 LVecBase4d const 0 0 3534 0 0 0 0 0 0 0 0 0 0 3534 10 LVecBase4d 0 2048 10 LVecBase4d 10 LVecBase4d 0 0 0 0 0 0 0 0 0 0 0 0 77 /** * This is the base class for all three-component vectors and points. */ 3535 9 LMatrix3d 0 2048 9 LMatrix3d 9 LMatrix3d 0 0 0 0 0 0 0 0 0 0 0 0 231 /** * This is a 3-by-3 transform matrix. It typically will represent either a * rotation-and-scale (no translation) matrix in 3-d, or a full affine matrix * (rotation, scale, translation) in 2-d, e.g. for a texture matrix. */ 3536 11 LMatrix3d * 0 8576 11 LMatrix3d * 11 LMatrix3d * 0 0 3535 0 0 0 0 0 0 0 0 0 0 3537 9 LMatrix4d 0 2048 9 LMatrix4d 9 LMatrix4d 0 0 0 0 0 0 0 0 0 0 0 0 45 /** * This is a 4-by-4 transform matrix. */ 3538 11 LMatrix4d * 0 8576 11 LMatrix4d * 11 LMatrix4d * 0 0 3537 0 0 0 0 0 0 0 0 0 0 3539 17 LVecBase2 const * 0 8576 17 LVecBase2 const * 17 LVecBase2 const * 0 0 3309 0 0 0 0 0 0 0 0 0 0 3540 17 LVecBase3 const * 0 8576 17 LVecBase3 const * 17 LVecBase3 const * 0 0 3315 0 0 0 0 0 0 0 0 0 0 3541 8 LMatrix3 0 2105344 8 LMatrix3 8 LMatrix3 0 0 3522 0 0 0 0 0 0 0 0 0 0 3542 10 LMatrix3 * 0 8576 10 LMatrix3 * 10 LMatrix3 * 0 0 3541 0 0 0 0 0 0 0 0 0 0 3543 18 LVecBase2i const * 0 8576 18 LVecBase2i const * 18 LVecBase2i const * 0 0 3544 0 0 0 0 0 0 0 0 0 0 3544 16 LVecBase2i const 0 8832 16 LVecBase2i const 16 LVecBase2i const 0 0 3545 0 0 0 0 0 0 0 0 0 0 3545 10 LVecBase2i 0 2048 10 LVecBase2i 10 LVecBase2i 0 0 0 0 0 0 0 0 0 0 0 0 75 /** * This is the base class for all two-component vectors and points. */ 3546 18 LVecBase3i const * 0 8576 18 LVecBase3i const * 18 LVecBase3i const * 0 0 3547 0 0 0 0 0 0 0 0 0 0 3547 16 LVecBase3i const 0 8832 16 LVecBase3i const 16 LVecBase3i const 0 0 3548 0 0 0 0 0 0 0 0 0 0 3548 10 LVecBase3i 0 2048 10 LVecBase3i 10 LVecBase3i 0 0 0 0 0 0 0 0 0 0 0 0 77 /** * This is the base class for all three-component vectors and points. */ 3549 18 LVecBase4i const * 0 8576 18 LVecBase4i const * 18 LVecBase4i const * 0 0 3550 0 0 0 0 0 0 0 0 0 0 3550 16 LVecBase4i const 0 8832 16 LVecBase4i const 16 LVecBase4i const 0 0 3551 0 0 0 0 0 0 0 0 0 0 3551 10 LVecBase4i 0 2048 10 LVecBase4i 10 LVecBase4i 0 0 0 0 0 0 0 0 0 0 0 0 77 /** * This is the base class for all three-component vectors and points. */ 3552 18 GeomVertexWriter * 0 8576 18 GeomVertexWriter * 18 GeomVertexWriter * 0 0 3275 0 0 0 0 0 0 0 0 0 0 3553 24 GeomVertexWriter const * 0 8576 24 GeomVertexWriter const * 24 GeomVertexWriter const * 0 0 3554 0 0 0 0 0 0 0 0 0 0 3554 22 GeomVertexWriter const 0 8832 22 GeomVertexWriter const 22 GeomVertexWriter const 0 0 3275 0 0 0 0 0 0 0 0 0 0 3555 17 LMatrix3f const * 0 8576 17 LMatrix3f const * 17 LMatrix3f const * 0 0 3556 0 0 0 0 0 0 0 0 0 0 3556 15 LMatrix3f const 0 8832 15 LMatrix3f const 15 LMatrix3f const 0 0 3522 0 0 0 0 0 0 0 0 0 0 3557 17 LMatrix4f const * 0 8576 17 LMatrix4f const * 17 LMatrix4f const * 0 0 3558 0 0 0 0 0 0 0 0 0 0 3558 15 LMatrix4f const 0 8832 15 LMatrix4f const 15 LMatrix4f const 0 0 3322 0 0 0 0 0 0 0 0 0 0 3559 17 LMatrix3d const * 0 8576 17 LMatrix3d const * 17 LMatrix3d const * 0 0 3560 0 0 0 0 0 0 0 0 0 0 3560 15 LMatrix3d const 0 8832 15 LMatrix3d const 15 LMatrix3d const 0 0 3535 0 0 0 0 0 0 0 0 0 0 3561 17 LMatrix4d const * 0 8576 17 LMatrix4d const * 17 LMatrix4d const * 0 0 3562 0 0 0 0 0 0 0 0 0 0 3562 15 LMatrix4d const 0 8832 15 LMatrix4d const 15 LMatrix4d const 0 0 3537 0 0 0 0 0 0 0 0 0 0 3563 16 LMatrix3 const * 0 8576 16 LMatrix3 const * 16 LMatrix3 const * 0 0 3564 0 0 0 0 0 0 0 0 0 0 3564 14 LMatrix3 const 0 8832 14 LMatrix3 const 14 LMatrix3 const 0 0 3541 0 0 0 0 0 0 0 0 0 0 3565 20 GeomVertexRewriter * 0 8576 20 GeomVertexRewriter * 20 GeomVertexRewriter * 0 0 3276 0 0 0 0 0 0 0 0 0 0 3566 26 GeomVertexRewriter const * 0 8576 26 GeomVertexRewriter const * 26 GeomVertexRewriter const * 0 0 3567 0 0 0 0 0 0 0 0 0 0 3567 24 GeomVertexRewriter const 0 8832 24 GeomVertexRewriter const 24 GeomVertexRewriter const 0 0 3276 0 0 0 0 0 0 0 0 0 0 3568 14 SamplerState * 0 8576 14 SamplerState * 14 SamplerState * 0 0 3277 0 0 0 0 0 0 0 0 0 0 3569 20 SamplerState const * 0 8576 20 SamplerState const * 20 SamplerState const * 0 0 3291 0 0 0 0 0 0 0 0 0 0 3570 16 SamplerContext * 0 8576 16 SamplerContext * 16 SamplerContext * 0 0 3571 0 0 0 0 0 0 0 0 0 0 3571 14 SamplerContext 0 1050624 14 SamplerContext 14 SamplerContext 0 0 0 0 0 0 0 0 0 0 0 0 468 /** * This is a special class object that holds a handle to the sampler state * object given by the graphics back-end for a particular combination of * texture sampling settings. * * Some graphics back-ends (like OpenGL) use mutable sampler objects, whereas * others (Direct3D 10+) use immutable ones. In Panda3D, each unique sampler * state has its own SamplerContext, which simplifies the implementation and * makes redundant sampler objects impossible. */ 3572 15 Texture const * 0 8576 15 Texture const * 15 Texture const * 0 0 3573 0 0 0 0 0 0 0 0 0 0 3573 13 Texture const 0 8832 13 Texture const 13 Texture const 0 0 3281 0 0 0 0 0 0 0 0 0 0 3574 16 Filename const * 0 8576 16 Filename const * 16 Filename const * 0 0 3289 0 0 0 0 0 0 0 0 0 0 3575 21 LoaderOptions const * 0 8576 21 LoaderOptions const * 21 LoaderOptions const * 0 0 3576 0 0 0 0 0 0 0 0 0 0 3576 19 LoaderOptions const 0 8832 19 LoaderOptions const 19 LoaderOptions const 0 0 3577 0 0 0 0 0 0 0 0 0 0 3577 13 LoaderOptions 0 2048 13 LoaderOptions 13 LoaderOptions 0 0 0 0 0 0 0 0 0 0 0 0 65 /** * Specifies parameters that may be passed to the loader. */ 3578 16 BamCacheRecord * 0 8576 16 BamCacheRecord * 16 BamCacheRecord * 0 0 3579 0 0 0 0 0 0 0 0 0 0 3579 14 BamCacheRecord 0 2048 14 BamCacheRecord 14 BamCacheRecord 0 0 0 0 0 0 0 0 0 0 0 0 231 /** * An instance of this class is written to the front of a Bam or Txo file to * make the file a cached instance of some other loadable resource. This * record contains information needed to test the validity of the cache. */ 3580 9 istream * 0 8576 14 std::istream * 14 std::istream * 0 0 3581 0 0 0 0 0 0 0 0 0 0 3581 7 istream 0 2048 12 std::istream 12 std::istream 0 0 0 0 0 0 0 0 0 0 0 0 0 3582 16 PNMImage const * 0 8576 16 PNMImage const * 16 PNMImage const * 0 0 3583 0 0 0 0 0 0 0 0 0 0 3583 14 PNMImage const 0 8832 14 PNMImage const 14 PNMImage const 0 0 3584 0 0 0 0 0 0 0 0 0 0 3584 8 PNMImage 0 2048 8 PNMImage 8 PNMImage 0 0 0 0 0 0 0 0 0 0 0 0 1516 /** * The name of this class derives from the fact that we originally implemented * it as a layer on top of the "pnm library", based on netpbm, which was built * to implement pbm, pgm, and pbm files, and is the underlying support of a * number of public-domain image file converters. Nowadays we are no longer * derived directly from the pnm library, mainly to allow support of C++ * iostreams instead of the C stdio FILE interface. * * Conceptually, a PNMImage is a two-dimensional array of xels, which are the * PNM-defined generic pixel type. Each xel may have a red, green, and blue * component, or (if the image is grayscale) a gray component. The image may * be read in, the individual xels manipulated, and written out again, or a * black image may be constructed from scratch. * * A PNMImage has a color space and a maxval, the combination of which defines * how a floating-point linear color value is encoded as an integer value in * memory. The functions ending in _val operate on encoded colors, whereas * the regular ones work with linear floating-point values. All operations * are color space correct unless otherwise specified. * * The image is of size XSize() by YSize() xels, numbered from top to bottom, * left to right, beginning at zero. * * Files can be specified by filename, or by an iostream pointer. The * filename "-" refers to stdin or stdout. * * This class is not inherently thread-safe; use it from a single thread or * protect access using a mutex. */ 3585 15 PfmFile const * 0 8576 15 PfmFile const * 15 PfmFile const * 0 0 3586 0 0 0 0 0 0 0 0 0 0 3586 13 PfmFile const 0 8832 13 PfmFile const 13 PfmFile const 0 0 3587 0 0 0 0 0 0 0 0 0 0 3587 7 PfmFile 0 2048 7 PfmFile 7 PfmFile 0 0 0 0 0 0 0 0 0 0 0 0 155 /** * Defines a pfm file, a 2-d table of floating-point numbers, either * 3-component or 1-component, or with a special extension, 2- or 4-component. */ 3588 10 PNMImage * 0 8576 10 PNMImage * 10 PNMImage * 0 0 3584 0 0 0 0 0 0 0 0 0 0 3589 9 PfmFile * 0 8576 9 PfmFile * 9 PfmFile * 0 0 3587 0 0 0 0 0 0 0 0 0 0 3590 8 WrapMode 0 2367488 17 Texture::WrapMode 17 Texture::WrapMode 3281 0 3279 0 0 0 0 0 0 0 0 0 0 3591 10 FilterType 0 2367488 19 Texture::FilterType 19 Texture::FilterType 3281 0 3278 0 0 0 0 0 0 0 0 0 0 3592 12 CPTA_uchar * 0 8576 12 CPTA_uchar * 12 CPTA_uchar * 0 0 3292 0 0 0 0 0 0 0 0 0 0 3593 9 PTA_uchar 0 2105344 9 PTA_uchar 9 PTA_uchar 0 0 3594 0 0 0 0 0 0 0 0 0 0 3594 31 PointerToArray< unsigned char > 0 2048 31 PointerToArray< unsigned char > 31 PointerToArray< unsigned char > 0 0 0 0 0 0 0 0 0 0 0 0 0 3595 11 PTA_uchar * 0 8576 11 PTA_uchar * 11 PTA_uchar * 0 0 3593 0 0 0 0 0 0 0 0 0 0 3596 13 long long int 0 8226 13 long long int 13 long long int 0 8 0 0 0 0 0 0 0 0 0 0 0 3597 15 TexturePeeker * 0 8576 15 TexturePeeker * 15 TexturePeeker * 0 0 3344 0 0 0 0 0 0 0 0 0 0 3598 11 AsyncFuture 0 2048 11 AsyncFuture 11 AsyncFuture 0 0 0 0 0 0 0 0 0 0 0 0 1711 /** * This class represents a thread-safe handle to a promised future result of * an asynchronous operation, providing methods to query its status and result * as well as register callbacks for this future's completion. * * An AsyncFuture can be awaited from within a coroutine or task. It keeps * track of tasks waiting for this future and automatically reactivates them * upon this future's completion. * * A task itself is also a subclass of AsyncFuture. Other subclasses are * not generally necessary, except to override the function of `cancel()`. * * Until the future is done, it is "owned" by the resolver thread, though it's * still legal for other threads to query its state. When the resolver thread * resolves this future using `set_result()`, or any thread calls `cancel()`, * it instantly enters the "done" state, after which the result becomes a * read-only field that all threads can access. * * When the future returns true for done(), a thread can use cancelled() to * determine whether the future was cancelled or get_result() to access the * result of the operation. Not all operations define a meaningful result * value, so some will always return nullptr. * * In Python, the `cancelled()`, `wait()` and `get_result()` methods are * wrapped up into a single `result()` method which waits for the future to * complete before either returning the result or throwing an exception if the * future was cancelled. * However, it is preferable to use the `await` keyword when running from a * coroutine, which only suspends the current task and not the entire thread. * * This API aims to mirror and be compatible with Python's Future class. * * @since 1.10.0 */ 3599 13 AsyncFuture * 0 8576 13 AsyncFuture * 13 AsyncFuture * 0 0 3598 0 0 0 0 0 0 0 0 0 0 3600 11 LVecBase2 * 0 8576 11 LVecBase2 * 11 LVecBase2 * 0 0 3310 0 0 0 0 0 0 0 0 0 0 3601 16 TextureContext * 0 8576 16 TextureContext * 16 TextureContext * 0 0 3334 0 0 0 0 0 0 0 0 0 0 3602 14 Shader const * 0 8576 14 Shader const * 14 Shader const * 0 0 3603 0 0 0 0 0 0 0 0 0 0 3603 12 Shader const 0 8832 12 Shader const 12 Shader const 0 0 3297 0 0 0 0 0 0 0 0 0 0 3604 10 Filename * 0 8576 10 Filename * 10 Filename * 0 0 3290 0 0 0 0 0 0 0 0 0 0 3605 15 ShaderContext * 0 8576 15 ShaderContext * 15 ShaderContext * 0 0 3335 0 0 0 0 0 0 0 0 0 0 3606 20 ShaderBuffer const * 0 8576 20 ShaderBuffer const * 20 ShaderBuffer const * 0 0 3607 0 0 0 0 0 0 0 0 0 0 3607 18 ShaderBuffer const 0 8832 18 ShaderBuffer const 18 ShaderBuffer const 0 0 3302 0 0 0 0 0 0 0 0 0 0 3608 14 ShaderBuffer * 0 8576 14 ShaderBuffer * 14 ShaderBuffer * 0 0 3302 0 0 0 0 0 0 0 0 0 0 3609 31 PreparedGraphicsObjects const * 0 8576 31 PreparedGraphicsObjects const * 31 PreparedGraphicsObjects const * 0 0 3610 0 0 0 0 0 0 0 0 0 0 3610 29 PreparedGraphicsObjects const 0 8832 29 PreparedGraphicsObjects const 29 PreparedGraphicsObjects const 0 0 3304 0 0 0 0 0 0 0 0 0 0 3611 20 IndexBufferContext * 0 8576 20 IndexBufferContext * 20 IndexBufferContext * 0 0 3305 0 0 0 0 0 0 0 0 0 0 3612 26 IndexBufferContext const * 0 8576 26 IndexBufferContext const * 26 IndexBufferContext const * 0 0 3613 0 0 0 0 0 0 0 0 0 0 3613 24 IndexBufferContext const 0 8832 24 IndexBufferContext const 24 IndexBufferContext const 0 0 3305 0 0 0 0 0 0 0 0 0 0 3614 35 GeomPrimitivePipelineReader const * 0 8576 35 GeomPrimitivePipelineReader const * 35 GeomPrimitivePipelineReader const * 0 0 3615 0 0 0 0 0 0 0 0 0 0 3615 33 GeomPrimitivePipelineReader const 0 8832 33 GeomPrimitivePipelineReader const 33 GeomPrimitivePipelineReader const 0 0 3616 0 0 0 0 0 0 0 0 0 0 3616 27 GeomPrimitivePipelineReader 0 1050624 27 GeomPrimitivePipelineReader 27 GeomPrimitivePipelineReader 0 0 0 0 0 0 0 0 0 0 0 0 100 /** * Encapsulates the data from a GeomPrimitive, pre-fetched for one stage of * the pipeline. */ 3617 12 Lens const * 0 8576 12 Lens const * 12 Lens const * 0 0 3618 0 0 0 0 0 0 0 0 0 0 3618 10 Lens const 0 8832 10 Lens const 10 Lens const 0 0 3306 0 0 0 0 0 0 0 0 0 0 3619 6 Lens * 0 8576 6 Lens * 6 Lens * 0 0 3306 0 0 0 0 0 0 0 0 0 0 3620 15 LPoint2 const * 0 8576 15 LPoint2 const * 15 LPoint2 const * 0 0 3621 0 0 0 0 0 0 0 0 0 0 3621 13 LPoint2 const 0 8832 13 LPoint2 const 13 LPoint2 const 0 0 3622 0 0 0 0 0 0 0 0 0 0 3622 7 LPoint2 0 2105344 7 LPoint2 7 LPoint2 0 0 3623 0 0 0 0 0 0 0 0 0 0 3623 8 LPoint2f 0 2048 8 LPoint2f 8 LPoint2f 0 0 0 0 0 0 0 0 0 0 0 0 50 /** * This is a two-component point in space. */ 3624 9 LPoint3 * 0 8576 9 LPoint3 * 9 LPoint3 * 0 0 3318 0 0 0 0 0 0 0 0 0 0 3625 15 LPoint3 const * 0 8576 15 LPoint3 const * 15 LPoint3 const * 0 0 3626 0 0 0 0 0 0 0 0 0 0 3626 13 LPoint3 const 0 8832 13 LPoint3 const 13 LPoint3 const 0 0 3318 0 0 0 0 0 0 0 0 0 0 3627 10 LVector3 * 0 8576 10 LVector3 * 10 LVector3 * 0 0 3628 0 0 0 0 0 0 0 0 0 0 3628 8 LVector3 0 2105344 8 LVector3 8 LVector3 0 0 3437 0 0 0 0 0 0 0 0 0 0 3629 9 LPoint2 * 0 8576 9 LPoint2 * 9 LPoint2 * 0 0 3622 0 0 0 0 0 0 0 0 0 0 3630 16 LVector2 const * 0 8576 16 LVector2 const * 16 LVector2 const * 0 0 3312 0 0 0 0 0 0 0 0 0 0 3631 16 LVector3 const * 0 8576 16 LVector3 const * 16 LVector3 const * 0 0 3632 0 0 0 0 0 0 0 0 0 0 3632 14 LVector3 const 0 8832 14 LVector3 const 14 LVector3 const 0 0 3628 0 0 0 0 0 0 0 0 0 0 3633 16 BoundingVolume * 0 8576 16 BoundingVolume * 16 BoundingVolume * 0 0 3260 0 0 0 0 0 0 0 0 0 0 3634 16 Material const * 0 8576 16 Material const * 16 Material const * 0 0 3635 0 0 0 0 0 0 0 0 0 0 3635 14 Material const 0 8832 14 Material const 14 Material const 0 0 3324 0 0 0 0 0 0 0 0 0 0 3636 10 Material * 0 8576 10 Material * 10 Material * 0 0 3324 0 0 0 0 0 0 0 0 0 0 3637 12 MatrixLens * 0 8576 12 MatrixLens * 12 MatrixLens * 0 0 3326 0 0 0 0 0 0 0 0 0 0 3638 18 MatrixLens const * 0 8576 18 MatrixLens const * 18 MatrixLens const * 0 0 3639 0 0 0 0 0 0 0 0 0 0 3639 16 MatrixLens const 0 8832 16 MatrixLens const 16 MatrixLens const 0 0 3326 0 0 0 0 0 0 0 0 0 0 3640 18 OrthographicLens * 0 8576 18 OrthographicLens * 18 OrthographicLens * 0 0 3327 0 0 0 0 0 0 0 0 0 0 3641 21 ParamTextureSampler * 0 8576 21 ParamTextureSampler * 21 ParamTextureSampler * 0 0 3328 0 0 0 0 0 0 0 0 0 0 3642 27 ParamTextureSampler const * 0 8576 27 ParamTextureSampler const * 27 ParamTextureSampler const * 0 0 3643 0 0 0 0 0 0 0 0 0 0 3643 25 ParamTextureSampler const 0 8832 25 ParamTextureSampler const 25 ParamTextureSampler const 0 0 3328 0 0 0 0 0 0 0 0 0 0 3644 19 ParamTextureImage * 0 8576 19 ParamTextureImage * 19 ParamTextureImage * 0 0 3331 0 0 0 0 0 0 0 0 0 0 3645 25 ParamTextureImage const * 0 8576 25 ParamTextureImage const * 25 ParamTextureImage const * 0 0 3646 0 0 0 0 0 0 0 0 0 0 3646 23 ParamTextureImage const 0 8832 23 ParamTextureImage const 23 ParamTextureImage const 0 0 3331 0 0 0 0 0 0 0 0 0 0 3647 17 PerspectiveLens * 0 8576 17 PerspectiveLens * 17 PerspectiveLens * 0 0 3332 0 0 0 0 0 0 0 0 0 0 3648 28 TextureReloadRequest const * 0 8576 28 TextureReloadRequest const * 28 TextureReloadRequest const * 0 0 3649 0 0 0 0 0 0 0 0 0 0 3649 26 TextureReloadRequest const 0 8832 26 TextureReloadRequest const 26 TextureReloadRequest const 0 0 3333 0 0 0 0 0 0 0 0 0 0 3650 22 TextureReloadRequest * 0 8576 22 TextureReloadRequest * 22 TextureReloadRequest * 0 0 3333 0 0 0 0 0 0 0 0 0 0 3651 22 TextureContext const * 0 8576 22 TextureContext const * 22 TextureContext const * 0 0 3652 0 0 0 0 0 0 0 0 0 0 3652 20 TextureContext const 0 8832 20 TextureContext const 20 TextureContext const 0 0 3334 0 0 0 0 0 0 0 0 0 0 3653 21 ShaderContext const * 0 8576 21 ShaderContext const * 21 ShaderContext const * 0 0 3654 0 0 0 0 0 0 0 0 0 0 3654 19 ShaderContext const 0 8832 19 ShaderContext const 19 ShaderContext const 0 0 3335 0 0 0 0 0 0 0 0 0 0 3655 18 UserVertexSlider * 0 8576 18 UserVertexSlider * 18 UserVertexSlider * 0 0 3337 0 0 0 0 0 0 0 0 0 0 3656 21 UserVertexTransform * 0 8576 21 UserVertexTransform * 21 UserVertexTransform * 0 0 3338 0 0 0 0 0 0 0 0 0 0 3657 27 UserVertexTransform const * 0 8576 27 UserVertexTransform const * 27 UserVertexTransform const * 0 0 3658 0 0 0 0 0 0 0 0 0 0 3658 25 UserVertexTransform const 0 8832 25 UserVertexTransform const 25 UserVertexTransform const 0 0 3338 0 0 0 0 0 0 0 0 0 0 3659 20 VideoTexture const * 0 8576 20 VideoTexture const * 20 VideoTexture const * 0 0 3660 0 0 0 0 0 0 0 0 0 0 3660 18 VideoTexture const 0 8832 18 VideoTexture const 18 VideoTexture const 0 0 3339 0 0 0 0 0 0 0 0 0 0 3661 14 VideoTexture * 0 8576 14 VideoTexture * 14 VideoTexture * 0 0 3339 0 0 0 0 0 0 0 0 0 0 3662 15 AnimInterface * 0 8576 15 AnimInterface * 15 AnimInterface * 0 0 3340 0 0 0 0 0 0 0 0 0 0 3663 27 VertexBufferContext const * 0 8576 27 VertexBufferContext const * 27 VertexBufferContext const * 0 0 3664 0 0 0 0 0 0 0 0 0 0 3664 25 VertexBufferContext const 0 8832 25 VertexBufferContext const 25 VertexBufferContext const 0 0 3341 0 0 0 0 0 0 0 0 0 0 3665 19 TextureCollection * 0 8576 19 TextureCollection * 19 TextureCollection * 0 0 3342 0 0 0 0 0 0 0 0 0 0 3666 25 TextureCollection const * 0 8576 25 TextureCollection const * 25 TextureCollection const * 0 0 3667 0 0 0 0 0 0 0 0 0 0 3667 23 TextureCollection const 0 8832 23 TextureCollection const 23 TextureCollection const 0 0 3342 0 0 0 0 0 0 0 0 0 0 3668 21 TexturePeeker const * 0 8576 21 TexturePeeker const * 21 TexturePeeker const * 0 0 3669 0 0 0 0 0 0 0 0 0 0 3669 19 TexturePeeker const 0 8832 19 TexturePeeker const 19 TexturePeeker const 0 0 3344 0 0 0 0 0 0 0 0 0 0 3670 30 ConstPointerTo< InternalName > 0 2048 30 ConstPointerTo< InternalName > 30 ConstPointerTo< InternalName > 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 3671 14 animation_type 0 2 3180 1634 0 0 0 0 0 0 0 39 GeomVertexAnimationSpec::animation_type 0 3672 14 num_transforms 0 2 3182 1635 0 0 0 0 0 0 0 39 GeomVertexAnimationSpec::num_transforms 0 3673 18 indexed_transforms 0 2 3183 1636 0 0 0 0 0 0 0 43 GeomVertexAnimationSpec::indexed_transforms 0 3674 6 parent 0 2 3186 1644 0 0 0 0 0 0 0 20 InternalName::parent 0 3675 4 name 0 2 3187 1645 0 0 0 0 0 0 0 18 InternalName::name 0 3676 8 basename 0 2 3189 1647 0 0 0 0 0 0 0 22 InternalName::basename 0 3677 10 registered 0 2 3183 1709 0 0 0 0 0 0 0 33 GeomVertexArrayFormat::registered 0 3678 6 stride 0 6 3182 1711 1712 0 0 0 0 0 0 29 GeomVertexArrayFormat::stride 0 3679 6 pad_to 0 6 3182 1713 1714 0 0 0 0 0 0 29 GeomVertexArrayFormat::pad_to 0 3680 7 divisor 0 6 3182 1715 1716 0 0 0 0 0 0 30 GeomVertexArrayFormat::divisor 0 3681 11 total_bytes 0 2 3182 1717 0 0 0 0 0 0 0 34 GeomVertexArrayFormat::total_bytes 0 3682 7 columns 0 66 3192 1725 0 0 0 0 1723 0 0 30 GeomVertexArrayFormat::columns 0 3683 10 registered 0 2 3183 1742 0 0 0 0 0 0 0 28 GeomVertexFormat::registered 0 3684 9 animation 0 6 3195 1744 1745 0 0 0 0 0 0 27 GeomVertexFormat::animation 0 3685 6 arrays 0 358 3196 1776 1751 0 0 1752 1748 1754 0 24 GeomVertexFormat::arrays 0 3686 6 points 0 66 3198 1777 0 0 0 0 1766 0 0 24 GeomVertexFormat::points 0 3687 7 vectors 0 66 3198 1778 0 0 0 0 1768 0 0 25 GeomVertexFormat::vectors 0 3688 7 columns 0 650 3192 1779 0 1760 0 0 1757 0 1761 25 GeomVertexFormat::columns 67 // We also define this as a mapping interface, for lookups by name. 3689 9 save_file 0 2 3208 1865 0 0 0 0 0 0 0 25 VertexDataPage::save_file 0 3690 12 array_format 0 2 3196 1902 0 0 0 0 0 0 0 33 GeomVertexArrayData::array_format 0 3691 10 usage_hint 0 6 3174 1903 1904 0 0 0 0 0 0 31 GeomVertexArrayData::usage_hint 0 3692 15 data_size_bytes 0 2 3214 1911 0 0 0 0 0 0 0 36 GeomVertexArrayData::data_size_bytes 0 3693 8 modified 0 2 3216 1912 0 0 0 0 0 0 0 29 GeomVertexArrayData::modified 0 3694 6 object 0 2 3218 1935 0 0 0 0 0 0 0 33 GeomVertexArrayDataHandle::object 0 3695 12 array_format 0 2 3196 1936 0 0 0 0 0 0 0 39 GeomVertexArrayDataHandle::array_format 0 3696 10 usage_hint 0 2 3174 1937 0 0 0 0 0 0 0 37 GeomVertexArrayDataHandle::usage_hint 0 3697 15 data_size_bytes 0 2 3214 1943 0 0 0 0 0 0 0 42 GeomVertexArrayDataHandle::data_size_bytes 0 3698 8 modified 0 2 3216 1944 0 0 0 0 0 0 0 35 GeomVertexArrayDataHandle::modified 0 3699 8 modified 0 2 3216 1963 0 0 0 0 0 0 0 25 VertexTransform::modified 0 3700 10 registered 0 2 3183 1971 0 0 0 0 0 0 0 26 TransformTable::registered 0 3701 8 modified 0 2 3216 1975 0 0 0 0 0 0 0 24 TransformTable::modified 0 3702 10 transforms 0 358 3222 1981 1976 0 0 1978 1973 1977 0 26 TransformTable::transforms 0 3703 10 transforms 0 102 3222 2000 1998 0 0 1991 1996 0 0 26 TransformBlend::transforms 0 3704 7 weights 0 650 3225 2001 0 1994 0 0 1996 0 1997 23 TransformBlend::weights 0 3705 8 modified 0 2 3216 2006 0 0 0 0 0 0 0 24 TransformBlend::modified 0 3706 6 blends 0 102 3228 2024 2015 0 0 2016 2012 0 0 27 TransformBlendTable::blends 0 3707 8 modified 0 2 3216 2014 0 0 0 0 0 0 0 29 TransformBlendTable::modified 0 3708 14 num_transforms 0 2 3182 2018 0 0 0 0 0 0 0 35 TransformBlendTable::num_transforms 0 3709 27 max_simultaneous_transforms 0 2 3182 2019 0 0 0 0 0 0 0 48 TransformBlendTable::max_simultaneous_transforms 0 3710 4 rows 0 6 3229 2021 2020 0 0 0 0 0 0 25 TransformBlendTable::rows 0 3711 4 name 0 2 3198 2026 0 0 0 0 0 0 0 18 VertexSlider::name 0 3712 6 slider 0 2 3225 2027 0 0 0 0 0 0 0 20 VertexSlider::slider 0 3713 8 modified 0 2 3216 2028 0 0 0 0 0 0 0 22 VertexSlider::modified 0 3714 8 modified 0 2 3216 2042 0 0 0 0 0 0 0 21 SliderTable::modified 0 3715 4 name 0 6 3189 2060 2061 0 0 0 0 0 0 20 GeomVertexData::name 0 3716 10 usage_hint 0 6 3174 2062 2063 0 0 0 0 0 0 26 GeomVertexData::usage_hint 0 3717 6 format 0 6 3234 2064 2065 0 0 0 0 0 0 22 GeomVertexData::format 0 3718 6 arrays 0 70 3236 2079 2078 0 0 0 2073 0 0 22 GeomVertexData::arrays 0 3719 15 transform_table 0 6 3237 2080 2081 0 0 0 0 0 0 31 GeomVertexData::transform_table 0 3720 12 slider_table 0 6 3239 2087 2088 0 0 0 0 0 0 28 GeomVertexData::slider_table 0 3721 9 num_bytes 0 2 3182 2090 0 0 0 0 0 0 0 25 GeomVertexData::num_bytes 0 3722 8 modified 0 2 3216 2091 0 0 0 0 0 0 0 24 GeomVertexData::modified 0 3723 6 object 0 2 3246 2122 0 0 0 0 0 0 0 21 BufferContext::object 0 3724 15 data_size_bytes 0 2 3214 2118 0 0 0 0 0 0 0 30 BufferContext::data_size_bytes 0 3725 8 modified 0 2 3216 2119 0 0 0 0 0 0 0 23 BufferContext::modified 0 3726 6 active 0 2 3183 2120 0 0 0 0 0 0 0 21 BufferContext::active 0 3727 8 resident 0 2 3183 2121 0 0 0 0 0 0 0 23 BufferContext::resident 0 3728 14 primitive_type 0 2 3177 2134 0 0 0 0 0 0 0 29 GeomPrimitive::primitive_type 0 3729 14 geom_rendering 0 2 3182 2135 0 0 0 0 0 0 0 29 GeomPrimitive::geom_rendering 0 3730 11 shade_model 0 2 3176 2136 0 0 0 0 0 0 0 26 GeomPrimitive::shade_model 0 3731 10 usage_hint 0 2 3174 2138 0 0 0 0 0 0 0 25 GeomPrimitive::usage_hint 0 3732 10 index_type 0 2 3178 2140 0 0 0 0 0 0 0 25 GeomPrimitive::index_type 0 3733 9 num_bytes 0 2 3182 2178 0 0 0 0 0 0 0 24 GeomPrimitive::num_bytes 0 3734 15 data_size_bytes 0 2 3182 2179 0 0 0 0 0 0 0 30 GeomPrimitive::data_size_bytes 0 3735 8 modified 0 2 3216 2180 0 0 0 0 0 0 0 23 GeomPrimitive::modified 0 3736 12 index_stride 0 2 3182 2191 0 0 0 0 0 0 0 27 GeomPrimitive::index_stride 0 3737 15 strip_cut_index 0 2 3182 2192 0 0 0 0 0 0 0 30 GeomPrimitive::strip_cut_index 0 3738 4 mins 0 2 3236 2196 0 0 0 0 0 0 0 19 GeomPrimitive::mins 0 3739 4 maxs 0 2 3236 2197 0 0 0 0 0 0 0 19 GeomPrimitive::maxs 0 3740 26 num_vertices_per_primitive 0 2 3182 2200 0 0 0 0 0 0 0 41 GeomPrimitive::num_vertices_per_primitive 0 3741 30 min_num_vertices_per_primitive 0 2 3182 2201 0 0 0 0 0 0 0 45 GeomPrimitive::min_num_vertices_per_primitive 0 3742 33 num_unused_vertices_per_primitive 0 2 3182 2202 0 0 0 0 0 0 0 48 GeomPrimitive::num_unused_vertices_per_primitive 0 3743 4 name 0 6 3189 2207 2206 0 0 0 0 0 0 18 TextureStage::name 0 3744 4 sort 0 6 3182 2209 2208 0 0 0 0 0 0 18 TextureStage::sort 0 3745 8 priority 0 6 3182 2211 2210 0 0 0 0 0 0 22 TextureStage::priority 0 3746 13 texcoord_name 0 6 3186 2213 2212 0 0 0 0 0 0 27 TextureStage::texcoord_name 0 3747 12 tangent_name 0 2 3186 2214 0 0 0 0 0 0 0 26 TextureStage::tangent_name 0 3748 13 binormal_name 0 2 3186 2215 0 0 0 0 0 0 0 27 TextureStage::binormal_name 0 3749 4 mode 0 6 3249 2217 2216 0 0 0 0 0 0 18 TextureStage::mode 0 3750 5 color 0 6 3253 2220 2219 0 0 0 0 0 0 19 TextureStage::color 0 3751 9 rgb_scale 0 6 3182 2222 2221 0 0 0 0 0 0 23 TextureStage::rgb_scale 0 3752 11 alpha_scale 0 6 3182 2224 2223 0 0 0 0 0 0 25 TextureStage::alpha_scale 0 3753 12 saved_result 0 6 3183 2226 2225 0 0 0 0 0 0 26 TextureStage::saved_result 0 3754 15 tex_view_offset 0 6 3182 2228 2227 0 0 0 0 0 0 29 TextureStage::tex_view_offset 0 3755 7 default 0 2 3256 2257 0 0 0 0 0 0 0 21 TextureStage::default 0 3756 14 primitive_type 0 2 3177 2270 0 0 0 0 0 0 0 20 Geom::primitive_type 0 3757 11 shade_model 0 2 3176 2271 0 0 0 0 0 0 0 17 Geom::shade_model 0 3758 14 geom_rendering 0 2 3182 2272 0 0 0 0 0 0 0 20 Geom::geom_rendering 0 3759 10 primitives 0 358 3258 2290 2285 0 0 2288 2282 2286 0 16 Geom::primitives 0 3760 9 num_bytes 0 2 3182 2310 0 0 0 0 0 0 0 15 Geom::num_bytes 0 3761 8 modified 0 2 3216 2311 0 0 0 0 0 0 0 14 Geom::modified 0 3762 11 bounds_type 0 6 3259 2319 2318 0 0 0 0 0 0 17 Geom::bounds_type 0 3763 4 geom 0 2 3262 2332 0 0 0 0 0 0 0 17 GeomContext::geom 0 3764 6 wrap_u 0 6 3279 2531 2521 0 0 0 0 0 0 20 SamplerState::wrap_u 0 3765 6 wrap_v 0 6 3279 2532 2522 0 0 0 0 0 0 20 SamplerState::wrap_v 0 3766 6 wrap_w 0 6 3279 2533 2523 0 0 0 0 0 0 20 SamplerState::wrap_w 0 3767 9 minfilter 0 6 3278 2534 2524 0 0 0 0 0 0 23 SamplerState::minfilter 0 3768 9 magfilter 0 6 3278 2535 2525 0 0 0 0 0 0 23 SamplerState::magfilter 0 3769 19 effective_minfilter 0 2 3278 2536 0 0 0 0 0 0 0 33 SamplerState::effective_minfilter 0 3770 19 effective_magfilter 0 2 3278 2537 0 0 0 0 0 0 0 33 SamplerState::effective_magfilter 0 3771 18 anisotropic_degree 0 6 3182 2538 2526 0 0 0 0 0 0 32 SamplerState::anisotropic_degree 0 3772 28 effective_anisotropic_degree 0 2 3182 2539 0 0 0 0 0 0 0 42 SamplerState::effective_anisotropic_degree 0 3773 12 border_color 0 6 3280 2540 2527 0 0 0 0 0 0 26 SamplerState::border_color 0 3774 7 min_lod 0 6 3225 2541 2528 0 0 0 0 0 0 21 SamplerState::min_lod 0 3775 7 max_lod 0 6 3225 2542 2529 0 0 0 0 0 0 21 SamplerState::max_lod 0 3776 8 lod_bias 0 6 3225 2543 2530 0 0 0 0 0 0 22 SamplerState::lod_bias 0 3777 11 clear_color 0 30 3253 2579 2580 2578 2581 0 0 0 0 20 Texture::clear_color 0 3778 8 filename 0 30 3289 2596 2597 2595 2598 0 0 0 0 17 Texture::filename 0 3779 14 alpha_filename 0 30 3289 2600 2601 2599 2602 0 0 0 0 23 Texture::alpha_filename 0 3780 8 fullpath 0 30 3289 2604 2605 2603 2606 0 0 0 0 17 Texture::fullpath 0 3781 14 alpha_fullpath 0 30 3289 2608 2609 2607 2610 0 0 0 0 23 Texture::alpha_fullpath 0 3782 6 x_size 0 6 3182 2611 2612 0 0 0 0 0 0 15 Texture::x_size 0 3783 6 y_size 0 6 3182 2613 2614 0 0 0 0 0 0 15 Texture::y_size 0 3784 6 z_size 0 6 3182 2615 2616 0 0 0 0 0 0 15 Texture::z_size 0 3785 9 num_views 0 6 3182 2617 2618 0 0 0 0 0 0 18 Texture::num_views 0 3786 9 num_pages 0 2 3182 2619 0 0 0 0 0 0 0 18 Texture::num_pages 0 3787 14 num_components 0 2 3182 2620 0 0 0 0 0 0 0 23 Texture::num_components 0 3788 15 component_width 0 2 3182 2621 0 0 0 0 0 0 0 24 Texture::component_width 0 3789 12 texture_type 0 2 3282 2622 0 0 0 0 0 0 0 21 Texture::texture_type 0 3790 10 usage_hint 0 2 3174 2623 0 0 0 0 0 0 0 19 Texture::usage_hint 0 3791 6 format 0 6 3284 2624 2625 0 0 0 0 0 0 15 Texture::format 0 3792 14 component_type 0 6 3283 2626 2627 0 0 0 0 0 0 23 Texture::component_type 0 3793 6 wrap_u 0 6 3279 2628 2629 0 0 0 0 0 0 15 Texture::wrap_u 0 3794 6 wrap_v 0 6 3279 2630 2631 0 0 0 0 0 0 15 Texture::wrap_v 0 3795 6 wrap_w 0 6 3279 2632 2633 0 0 0 0 0 0 15 Texture::wrap_w 0 3796 9 minfilter 0 6 3278 2634 2636 0 0 0 0 0 0 18 Texture::minfilter 0 3797 19 effective_minfilter 0 2 3278 2635 0 0 0 0 0 0 0 28 Texture::effective_minfilter 0 3798 9 magfilter 0 6 3278 2637 2639 0 0 0 0 0 0 18 Texture::magfilter 0 3799 19 effective_magfilter 0 2 3278 2638 0 0 0 0 0 0 0 28 Texture::effective_magfilter 0 3800 18 anisotropic_degree 0 6 3182 2640 2642 0 0 0 0 0 0 27 Texture::anisotropic_degree 0 3801 28 effective_anisotropic_degree 0 2 3182 2641 0 0 0 0 0 0 0 37 Texture::effective_anisotropic_degree 0 3802 12 border_color 0 6 3253 2643 2644 0 0 0 0 0 0 21 Texture::border_color 0 3803 11 compression 0 6 3287 2646 2647 0 0 0 0 0 0 20 Texture::compression 44 // Could maybe use has_compression here, too 3804 17 render_to_texture 0 6 3183 2648 2649 0 0 0 0 0 0 26 Texture::render_to_texture 0 3805 15 default_sampler 0 6 3291 2650 2651 0 0 0 0 0 0 24 Texture::default_sampler 0 3806 13 quality_level 0 6 3288 2653 2655 0 0 0 0 0 0 22 Texture::quality_level 0 3807 23 effective_quality_level 0 2 3288 2654 0 0 0 0 0 0 0 32 Texture::effective_quality_level 0 3808 26 expected_num_mipmap_levels 0 2 3182 2656 0 0 0 0 0 0 0 35 Texture::expected_num_mipmap_levels 0 3809 14 ram_image_size 0 2 3214 2664 0 0 0 0 0 0 0 23 Texture::ram_image_size 0 3810 13 ram_view_size 0 2 3214 2665 0 0 0 0 0 0 0 22 Texture::ram_view_size 0 3811 13 ram_page_size 0 2 3214 2666 0 0 0 0 0 0 0 22 Texture::ram_page_size 0 3812 23 expected_ram_image_size 0 2 3214 2667 0 0 0 0 0 0 0 32 Texture::expected_ram_image_size 0 3813 22 expected_ram_page_size 0 2 3214 2668 0 0 0 0 0 0 0 31 Texture::expected_ram_page_size 0 3814 21 ram_image_compression 0 2 3287 2670 0 0 0 0 0 0 0 30 Texture::ram_image_compression 0 3815 14 keep_ram_image 0 6 3183 2679 2678 0 0 0 0 0 0 23 Texture::keep_ram_image 0 3816 9 cacheable 0 2 3183 2680 0 0 0 0 0 0 0 18 Texture::cacheable 0 3817 21 num_ram_mipmap_images 0 2 3182 2683 0 0 0 0 0 0 0 30 Texture::num_ram_mipmap_images 0 3818 30 num_loadable_ram_mipmap_images 0 2 3182 2685 0 0 0 0 0 0 0 39 Texture::num_loadable_ram_mipmap_images 0 3819 13 simple_x_size 0 2 3182 2703 0 0 0 0 0 0 0 22 Texture::simple_x_size 0 3820 13 simple_y_size 0 2 3182 2704 0 0 0 0 0 0 0 22 Texture::simple_y_size 0 3821 16 simple_ram_image 0 10 3292 2707 0 2705 0 0 0 0 0 25 Texture::simple_ram_image 0 3822 19 properties_modified 0 2 3216 2714 0 0 0 0 0 0 0 28 Texture::properties_modified 0 3823 14 image_modified 0 2 3216 2715 0 0 0 0 0 0 0 23 Texture::image_modified 0 3824 21 simple_image_modified 0 2 3216 2716 0 0 0 0 0 0 0 30 Texture::simple_image_modified 0 3825 18 auto_texture_scale 0 6 3294 2718 2719 0 0 0 0 0 0 27 Texture::auto_texture_scale 0 3826 8 aux_data 0 174 3295 2732 2729 2731 0 2730 0 0 0 17 Texture::aux_data 0 3827 16 orig_file_x_size 0 2 3182 2742 0 0 0 0 0 0 0 25 Texture::orig_file_x_size 0 3828 16 orig_file_y_size 0 2 3182 2743 0 0 0 0 0 0 0 25 Texture::orig_file_y_size 0 3829 16 orig_file_z_size 0 2 3182 2744 0 0 0 0 0 0 0 25 Texture::orig_file_z_size 0 3830 17 loaded_from_image 0 6 3183 2747 2746 0 0 0 0 0 0 26 Texture::loaded_from_image 0 3831 15 loaded_from_txo 0 6 3183 2749 2748 0 0 0 0 0 0 24 Texture::loaded_from_txo 0 3832 24 match_framebuffer_format 0 6 3183 2750 2751 0 0 0 0 0 0 33 Texture::match_framebuffer_format 0 3833 21 post_load_store_cache 0 6 3183 2752 2753 0 0 0 0 0 0 30 Texture::post_load_store_cache 0 3834 15 data_size_bytes 0 2 3303 2798 0 0 0 0 0 0 0 29 ShaderBuffer::data_size_bytes 0 3835 10 usage_hint 0 2 3174 2799 0 0 0 0 0 0 0 24 ShaderBuffer::usage_hint 0 3836 12 change_event 0 6 3189 2893 2892 0 0 0 0 0 0 18 Lens::change_event 0 3837 17 coordinate_system 0 6 3308 2895 2894 0 0 0 0 0 0 23 Lens::coordinate_system 0 3838 9 film_size 0 6 3309 2898 2897 0 0 0 0 0 0 15 Lens::film_size 0 3839 11 film_offset 0 6 3312 2900 2899 0 0 0 0 0 0 17 Lens::film_offset 0 3840 12 focal_length 0 6 3225 2902 2901 0 0 0 0 0 0 18 Lens::focal_length 0 3841 3 fov 0 6 3309 2905 2904 0 0 0 0 0 0 9 Lens::fov 0 3842 7 min_fov 0 6 3225 2908 2903 0 0 0 0 0 0 13 Lens::min_fov 0 3843 12 aspect_ratio 0 6 3225 2910 2909 0 0 0 0 0 0 18 Lens::aspect_ratio 0 3844 4 near 0 6 3225 2912 2911 0 0 0 0 0 0 10 Lens::near 0 3845 3 far 0 6 3225 2914 2913 0 0 0 0 0 0 9 Lens::far 0 3846 8 view_hpr 0 6 3315 2919 2918 0 0 0 0 0 0 14 Lens::view_hpr 0 3847 11 nodal_point 0 2 3318 2923 0 0 0 0 0 0 0 17 Lens::nodal_point 0 3848 20 interocular_distance 0 6 3225 2925 2924 0 0 0 0 0 0 26 Lens::interocular_distance 0 3849 20 convergence_distance 0 6 3225 2927 2926 0 0 0 0 0 0 26 Lens::convergence_distance 0 3850 8 view_mat 0 6 3320 2929 2928 0 0 0 0 0 0 14 Lens::view_mat 0 3851 8 keystone 0 6 3309 2932 2931 0 0 0 0 0 0 14 Lens::keystone 0 3852 10 base_color 0 30 3280 2964 2965 2963 2966 0 0 0 0 20 Material::base_color 0 3853 7 ambient 0 30 3280 2968 2969 2967 2970 0 0 0 0 17 Material::ambient 0 3854 7 diffuse 0 30 3280 2972 2973 2971 2974 0 0 0 0 17 Material::diffuse 0 3855 8 specular 0 30 3280 2976 2977 2975 2978 0 0 0 0 18 Material::specular 0 3856 8 emission 0 30 3280 2980 2981 2979 2982 0 0 0 0 18 Material::emission 0 3857 9 shininess 0 6 3225 2983 2984 0 0 0 0 0 0 19 Material::shininess 0 3858 9 roughness 0 6 3225 2986 2987 0 0 0 0 0 0 19 Material::roughness 0 3859 8 metallic 0 6 3225 2989 2990 0 0 0 0 0 0 18 Material::metallic 0 3860 16 refractive_index 0 6 3225 2993 2994 0 0 0 0 0 0 26 Material::refractive_index 0 3861 5 local 0 6 3183 2995 2996 0 0 0 0 0 0 15 Material::local 0 3862 7 twoside 0 6 3183 2997 2998 0 0 0 0 0 0 17 Material::twoside 0 3863 8 user_mat 0 6 3320 3017 3016 0 0 0 0 0 0 20 MatrixLens::user_mat 0 3864 7 texture 0 2 3330 3032 0 0 0 0 0 0 0 28 ParamTextureSampler::texture 0 3865 7 sampler 0 2 3291 3033 0 0 0 0 0 0 0 28 ParamTextureSampler::sampler 0 3866 7 texture 0 2 3330 3037 0 0 0 0 0 0 0 26 ParamTextureImage::texture 0 3867 11 read_access 0 2 3183 3038 0 0 0 0 0 0 0 30 ParamTextureImage::read_access 0 3868 12 write_access 0 2 3183 3039 0 0 0 0 0 0 0 31 ParamTextureImage::write_access 0 3869 10 bind_level 0 2 3182 3041 0 0 0 0 0 0 0 29 ParamTextureImage::bind_level 0 3870 10 bind_layer 0 10 3182 3042 0 3040 0 0 0 0 0 29 ParamTextureImage::bind_layer 0 3871 7 texture 0 2 3330 3050 0 0 0 0 0 0 0 29 TextureReloadRequest::texture 0 3872 6 shader 0 2 3336 3072 0 0 0 0 0 0 0 21 ShaderContext::shader 0 3873 11 video_width 0 2 3182 3089 0 0 0 0 0 0 0 25 VideoTexture::video_width 0 3874 12 video_height 0 2 3182 3090 0 0 0 0 0 0 0 26 VideoTexture::video_height 0 3875 4 mode 0 6 3346 3163 3162 0 0 0 0 0 0 22 TextureStagePool::mode 0 17 3876 11 get_columns 0 1723 1724 34 GeomVertexArrayFormat::get_columns 0 3877 10 get_arrays 0 1748 1749 28 GeomVertexFormat::get_arrays 0 3878 11 get_columns 0 1757 1759 29 GeomVertexFormat::get_columns 0 3879 10 get_points 0 1766 1767 28 GeomVertexFormat::get_points 0 3880 11 get_vectors 0 1768 1769 29 GeomVertexFormat::get_vectors 0 3881 13 get_texcoords 0 1770 1771 31 GeomVertexFormat::get_texcoords 0 3882 17 get_morph_sliders 0 1772 1773 35 GeomVertexFormat::get_morph_sliders 0 3883 15 get_morph_bases 0 1772 1774 33 GeomVertexFormat::get_morph_bases 0 3884 16 get_morph_deltas 0 1772 1775 34 GeomVertexFormat::get_morph_deltas 0 3885 14 get_transforms 0 1973 1974 30 TransformTable::get_transforms 0 3886 14 get_transforms 0 1996 1997 30 TransformBlend::get_transforms 0 3887 10 get_blends 0 2012 2013 31 TransformBlendTable::get_blends 0 3888 11 get_sliders 0 2036 2037 24 SliderTable::get_sliders 0 3889 10 get_arrays 0 2073 2074 26 GeomVertexData::get_arrays 0 3890 15 get_vertex_list 0 2145 2146 30 GeomPrimitive::get_vertex_list 0 3891 14 get_primitives 0 2282 2283 20 Geom::get_primitives 0 3892 12 get_textures 0 3116 3117 31 TextureCollection::get_textures 0