|
Panda3D
|
Public Types | |
| enum | { F_disable_alpha_write = 0 , F_subsume_alpha_test = 1 , F_hardware_skinning = 2 , F_shader_point_size = 3 } |
Public Types inherited from RenderAttrib | |
| enum | PandaCompareFunc { M_none =0 , M_never , M_less , M_equal , M_less_equal , M_greater , M_not_equal , M_greater_equal , M_always } |
| enum | TexGenMode { M_off , M_eye_sphere_map , M_world_cube_map , M_eye_cube_map , M_world_normal , M_eye_normal , M_world_position , M_unused , M_eye_position , M_point_sprite , M_unused2 , M_constant } |
Public Member Functions | |
| bool | auto_gloss_on () const |
| bool | auto_glow_on () const |
| bool | auto_normal_on () const |
| bool | auto_ramp_on () const |
| bool | auto_shader () const |
| If true, then this ShaderAttrib does not contain an explicit shader - instead, it requests the automatic generation of a shader. | |
| bool | auto_shadow_on () const |
| ConstPointerTo< RenderAttrib > | clear_all_shader_inputs () const |
| Clears all the shader inputs on the attrib. | |
| ConstPointerTo< RenderAttrib > | clear_flag (int flag) const |
| ConstPointerTo< RenderAttrib > | clear_shader () const |
| ConstPointerTo< RenderAttrib > | clear_shader_input (const InternalName *id) const |
| ConstPointerTo< RenderAttrib > | clear_shader_input (const std::string &id) const |
| virtual TypeHandle | force_init_type () |
| bool | get_flag (int flag) const |
| int | get_instance_count () const |
| const Shader * | get_shader () const |
| const ShaderInput & | get_shader_input (const InternalName *id) const |
| Returns the ShaderInput of the given name. | |
| const ShaderInput & | get_shader_input (const std::string &id) const |
| Returns the ShaderInput of the given name. | |
| ShaderBuffer * | get_shader_input_buffer (const InternalName *id) const |
| Returns the ShaderInput as a ShaderBuffer. | |
| const LMatrix4 & | get_shader_input_matrix (const InternalName *id, LMatrix4 &matrix) const |
| Returns the ShaderInput as a matrix. | |
| const NodePath & | get_shader_input_nodepath (const InternalName *id) const |
| Returns the ShaderInput as a nodepath. | |
| const Shader::ShaderPtrData * | get_shader_input_ptr (const InternalName *id) const |
| Returns the ShaderInput as a ShaderPtrData struct. | |
| Texture * | get_shader_input_texture (const InternalName *id, SamplerState *sampler=nullptr) const |
| Returns the ShaderInput as a texture. | |
| LVecBase4 | get_shader_input_vector (InternalName *id) const |
| Returns the ShaderInput as a vector. | |
| int | get_shader_priority () const |
| virtual int | get_slot () const |
| virtual TypeHandle | get_type () const |
| bool | has_shader () const |
| If true, the shader field of this attribute overrides the shader field of the parent attribute. | |
| bool | has_shader_input (CPT_InternalName id) const |
| Returns true if there is a ShaderInput of the given name. | |
| virtual void | output (std::ostream &out) const |
| ConstPointerTo< RenderAttrib > | set_flag (int flag, bool value) const |
| ConstPointerTo< RenderAttrib > | set_instance_count (int instance_count) const |
| Sets the geometry instance count. | |
| ConstPointerTo< RenderAttrib > | set_shader (const Shader *s, int priority=0) const |
| ConstPointerTo< RenderAttrib > | set_shader_auto (BitMask32 shader_switch, int priority=0) const |
| Set auto shader with bitmask to customize use, e.g., to keep normal, glow, etc., on or off. | |
| ConstPointerTo< RenderAttrib > | set_shader_auto (int priority=0) const |
| ConstPointerTo< RenderAttrib > | set_shader_input (const ShaderInput &input) const |
| ConstPointerTo< RenderAttrib > | set_shader_input (CPT_InternalName id, const LMatrix3 &v, int priority=0) const |
| ConstPointerTo< RenderAttrib > | set_shader_input (CPT_InternalName id, const LMatrix4 &v, int priority=0) const |
| ConstPointerTo< RenderAttrib > | set_shader_input (CPT_InternalName id, const LVecBase2 &v, int priority=0) const |
| ConstPointerTo< RenderAttrib > | set_shader_input (CPT_InternalName id, const LVecBase3 &v, int priority=0) const |
| ConstPointerTo< RenderAttrib > | set_shader_input (CPT_InternalName id, const LVecBase4 &v, int priority=0) const |
| ConstPointerTo< RenderAttrib > | set_shader_input (CPT_InternalName id, const NodePath &np, int priority=0) const |
| ConstPointerTo< RenderAttrib > | set_shader_input (CPT_InternalName id, const PTA_double &v, int priority=0) const |
| ConstPointerTo< RenderAttrib > | set_shader_input (CPT_InternalName id, const PTA_float &v, int priority=0) const |
| ConstPointerTo< RenderAttrib > | set_shader_input (CPT_InternalName id, const PTA_LMatrix3 &v, int priority=0) const |
| ConstPointerTo< RenderAttrib > | set_shader_input (CPT_InternalName id, const PTA_LMatrix4 &v, int priority=0) const |
| ConstPointerTo< RenderAttrib > | set_shader_input (CPT_InternalName id, const PTA_LVecBase2 &v, int priority=0) const |
| ConstPointerTo< RenderAttrib > | set_shader_input (CPT_InternalName id, const PTA_LVecBase3 &v, int priority=0) const |
| ConstPointerTo< RenderAttrib > | set_shader_input (CPT_InternalName id, const PTA_LVecBase4 &v, int priority=0) const |
| ConstPointerTo< RenderAttrib > | set_shader_input (CPT_InternalName id, double n1=0, double n2=0, double n3=0, double n4=1, int priority=0) const |
| ConstPointerTo< RenderAttrib > | set_shader_input (CPT_InternalName id, Texture *tex, int priority=0) const |
| ConstPointerTo< RenderAttrib > | set_shader_input (ShaderInput &&input) const |
| ConstPointerTo< RenderAttrib > | set_shader_off (int priority=0) const |
Public Member Functions inherited from RenderAttrib | |
| RenderAttrib (const RenderAttrib ©)=delete | |
| virtual | ~RenderAttrib () |
| The destructor is responsible for removing the RenderAttrib from the global set if it is there. | |
| int | compare_to (const RenderAttrib &other) const |
| CPT (RenderAttrib) compose(const RenderAttrib *other) const | |
| CPT (RenderAttrib) get_unique() const | |
| CPT (RenderAttrib) invert_compose(const RenderAttrib *other) const | |
| virtual bool | cull_callback (CullTraverser *trav, const CullTraverserData &data) const |
| If has_cull_callback() returns true, this function will be called during the cull traversal to perform any additional operations that should be performed at cull time. | |
| virtual void | finalize (BamReader *manager) |
| Called by the BamReader to perform any final actions needed for setting up the object after all objects have been read and all pointers have been completed. | |
| size_t | get_hash () const |
| virtual bool | has_cull_callback () const |
| Should be overridden by derived classes to return true if cull_callback() has been defined. | |
| virtual bool | lower_attrib_can_override () const |
| Intended to be overridden by derived RenderAttrib types to specify how two consecutive RenderAttrib objects of the same type interact. | |
| RenderAttrib & | operator= (const RenderAttrib ©)=delete |
| virtual bool | unref () const final |
| This method overrides ReferenceCount::unref() to clear the pointer from the global object pool when its reference count goes to zero. | |
| virtual void | write (std::ostream &out, int indent_level) const |
| virtual void | write_datagram (BamWriter *manager, Datagram &dg) |
| Writes the contents of this object to the datagram for shipping out to a Bam file. | |
Public Member Functions inherited from TypedWritableReferenceCount | |
| TypedWritableReferenceCount (const TypedWritableReferenceCount ©) | |
| virtual ReferenceCount * | as_reference_count () |
| Returns the pointer cast to a ReferenceCount pointer, if it is in fact of that type. | |
| void | operator= (const TypedWritableReferenceCount ©) |
Public Member Functions inherited from TypedWritable | |
| TypedWritable (const TypedWritable ©) | |
| virtual int | complete_pointers (TypedWritable **p_list, BamReader *manager) |
| Receives an array of pointers, one for each time manager->read_pointer() was called in fillin(). | |
| vector_uchar | encode_to_bam_stream () const |
| Converts the TypedWritable object into a single stream of data using a BamWriter, and returns that data as a bytes object. | |
| bool | encode_to_bam_stream (vector_uchar &data, BamWriter *writer=nullptr) const |
| Converts the TypedWritable object into a single stream of data using a BamWriter, and stores that data in the indicated string. | |
| UpdateSeq | get_bam_modified () const |
| Returns the current bam_modified counter. | |
| void | mark_bam_modified () |
| Increments the bam_modified counter, so that this object will be invalidated and retransmitted on any open bam streams. | |
| void | operator= (const TypedWritable ©) |
| virtual bool | require_fully_complete () const |
| Some objects require all of their nested pointers to have been completed before the objects themselves can be completed. | |
| virtual void | update_bam_nested (BamWriter *manager) |
| Called by the BamWriter when this object has not itself been modified recently, but it should check its nested objects for updates. | |
Public Member Functions inherited from TypedObject | |
| TypedObject (const TypedObject ©)=default | |
| TypedObject * | as_typed_object () |
| Returns the object, upcast (if necessary) to a TypedObject pointer. | |
| const TypedObject * | as_typed_object () const |
| Returns the object, upcast (if necessary) to a TypedObject pointer. | |
| int | get_best_parent_from_Set (const std::set< int > &) const |
| int | get_type_index () const |
| Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. | |
| bool | is_exact_type (TypeHandle handle) const |
| Returns true if the current object is the indicated type exactly. | |
| bool | is_of_type (TypeHandle handle) const |
| Returns true if the current object is or derives from the indicated type. | |
| TypedObject & | operator= (const TypedObject ©)=default |
Public Member Functions inherited from MemoryBase | |
| void | operator delete (void *, void *) |
| void | operator delete (void *ptr) |
| void | operator delete[] (void *, void *) |
| void | operator delete[] (void *ptr) |
| void * | operator new (size_t size) |
| void * | operator new (size_t size, void *ptr) |
| void * | operator new[] (size_t size) |
| void * | operator new[] (size_t size, void *ptr) |
Public Member Functions inherited from ReferenceCount | |
| int | get_ref_count () const |
| WeakReferenceList * | get_weak_list () const |
| Returns the WeakReferenceList associated with this ReferenceCount object. | |
| bool | has_weak_list () const |
| Returns true if this particular ReferenceCount object has a WeakReferenceList created, false otherwise. | |
| void | local_object () |
| This function should be called, once, immediately after creating a new instance of some ReferenceCount-derived object on the stack. | |
| void | ref () const |
| Explicitly increments the reference count. | |
| bool | ref_if_nonzero () const |
| Atomically increases the reference count of this object if it is not zero. | |
| bool | test_ref_count_integrity () const |
| Does some easy checks to make sure that the reference count isn't completely bogus. | |
| bool | test_ref_count_nonzero () const |
| Does some easy checks to make sure that the reference count isn't zero, or completely bogus. | |
| bool | unref_if_one () const |
| Atomically decreases the reference count of this object if it is one. | |
| WeakReferenceList * | weak_ref () |
| Adds the indicated PointerToVoid as a weak reference to this object. | |
| void | weak_unref () |
| Removes the indicated PointerToVoid as a weak reference to this object. | |
Static Public Member Functions | |
| static int | get_class_slot () |
| static TypeHandle | get_class_type () |
| static void | init_type () |
| static ConstPointerTo< RenderAttrib > | make (const Shader *shader=nullptr, int priority=0) |
| Constructs a new ShaderAttrib object with nothing set. | |
| static ConstPointerTo< RenderAttrib > | make_default () |
| Returns a RenderAttrib that corresponds to whatever the standard default properties for render attributes of this type ought to be. | |
| static ConstPointerTo< RenderAttrib > | make_off () |
| Constructs a new ShaderAttrib object that disables the use of shaders (it does not clear out all shader data, however.) | |
| static void | register_with_read_factory () |
| Factory method to generate a Shader object. | |
Static Public Member Functions inherited from RenderAttrib | |
| static TypedWritable * | change_this (TypedWritable *old_ptr, BamReader *manager) |
| Called immediately after complete_pointers(), this gives the object a chance to adjust its own pointer if desired. | |
| static int | garbage_collect () |
| Performs a garbage-collection cycle. | |
| static TypeHandle | get_class_type () |
| static int | get_num_attribs () |
| Returns the total number of unique RenderAttrib objects allocated in the world. | |
| static void | init_attribs () |
| Make sure the global _attribs map is allocated. | |
| static void | init_type () |
| static void | list_attribs (std::ostream &out) |
| Lists all of the RenderAttribs in the cache to the output stream, one per line. | |
| static int | register_slot (TypeHandle type_handle, int sort, RenderAttrib *default_attrib) |
| Adds the indicated TypeHandle to the registry, if it is not there already, and returns a unique slot number. | |
| static bool | validate_attribs () |
| Ensures that the cache is still stored in sorted order. | |
Static Public Member Functions inherited from TypedWritableReferenceCount | |
| static TypeHandle | get_class_type () |
| static void | init_type () |
| static | PT (TypedWritableReferenceCount) decode_from_bam_stream(vector_uchar data |
Static Public Member Functions inherited from TypedWritable | |
| static bool | decode_raw_from_bam_stream (TypedWritable *&ptr, ReferenceCount *&ref_ptr, vector_uchar data, BamReader *reader=nullptr) |
| Reads the bytes created by a previous call to encode_to_bam_stream(), and extracts the single object on those bytes. | |
| static TypeHandle | get_class_type () |
| static void | init_type () |
Static Public Member Functions inherited from TypedObject | |
| static TypeHandle | get_class_type () |
| static void | init_type () |
| This function is declared non-inline to work around a compiler bug in g++ 2.96. | |
Static Public Member Functions inherited from ReferenceCount | |
| static TypeHandle | get_class_type () |
| static void | init_type () |
Public Attributes | |
| get_class_slot | |
| get_instance_count | |
| Returns the number of geometry instances. | |
| get_shader | |
| Returns the shader object associated with the node. | |
Public Attributes inherited from RenderAttrib | |
| get_slot | |
Public Attributes inherited from TypedWritableReferenceCount | |
| static BamReader * | reader = nullptr) |
Public Attributes inherited from TypedObject | |
| get_type | |
Public Attributes inherited from ReferenceCount | |
| get_ref_count | |
| Returns the current reference count. | |
Friends | |
| class | Extension< NodePath > |
| class | Extension< ShaderAttrib > |
Additional Inherited Members | |
Static Public Attributes inherited from TypedWritable | |
| static TypedWritable *const | Null = nullptr |
Definition at line 39 of file shaderAttrib.h.
| anonymous enum |
Definition at line 49 of file shaderAttrib.h.
|
inline |
If true, then this ShaderAttrib does not contain an explicit shader - instead, it requests the automatic generation of a shader.
Definition at line 70 of file shaderAttrib.I.
Referenced by StandardMunger::StandardMunger(), GraphicsStateGuardian::ensure_generated_shader(), CullableObject::munge_geom(), and GeomNode::r_prepare_scene().
| ConstPointerTo< RenderAttrib > ShaderAttrib::clear_all_shader_inputs | ( | ) | const |
Clears all the shader inputs on the attrib.
Definition at line 260 of file shaderAttrib.cxx.
| ConstPointerTo< RenderAttrib > ShaderAttrib::clear_flag | ( | int | flag | ) | const |
Definition at line 188 of file shaderAttrib.cxx.
| ConstPointerTo< RenderAttrib > ShaderAttrib::clear_shader | ( | ) | const |
Definition at line 154 of file shaderAttrib.cxx.
| ConstPointerTo< RenderAttrib > ShaderAttrib::clear_shader_input | ( | const InternalName * | id | ) | const |
Definition at line 242 of file shaderAttrib.cxx.
| ConstPointerTo< RenderAttrib > ShaderAttrib::clear_shader_input | ( | const std::string & | id | ) | const |
Definition at line 252 of file shaderAttrib.cxx.
|
inlinevirtual |
Reimplemented from RenderAttrib.
Definition at line 183 of file shaderAttrib.h.
|
inlinestatic |
Definition at line 162 of file shaderAttrib.h.
|
inlinestatic |
Definition at line 171 of file shaderAttrib.h.
|
inline |
Definition at line 95 of file shaderAttrib.I.
| const ShaderInput & ShaderAttrib::get_shader_input | ( | const InternalName * | id | ) | const |
Returns the ShaderInput of the given name.
If no such name is found, this function does not return NULL — it returns the "blank" ShaderInput.
Definition at line 271 of file shaderAttrib.cxx.
References ShaderInput::get_blank().
Referenced by get_shader_input().
| const ShaderInput & ShaderAttrib::get_shader_input | ( | const std::string & | id | ) | const |
Returns the ShaderInput of the given name.
If no such name is found, this function does not return NULL — it returns the "blank" ShaderInput.
Definition at line 285 of file shaderAttrib.cxx.
References get_shader_input().
| ShaderBuffer * ShaderAttrib::get_shader_input_buffer | ( | const InternalName * | id | ) | const |
Returns the ShaderInput as a ShaderBuffer.
Assertion fails if there is none, or if it is not a ShaderBuffer.
Definition at line 505 of file shaderAttrib.cxx.
| const LMatrix4 & ShaderAttrib::get_shader_input_matrix | ( | const InternalName * | id, |
| LMatrix4 & | matrix ) const |
Returns the ShaderInput as a matrix.
Assertion fails if there is none, or if it is not a matrix or NodePath.
Definition at line 452 of file shaderAttrib.cxx.
References TransformState::get_mat, ShaderInput::get_nodepath(), NodePath::get_transform(), and NodePath::is_empty().
| const NodePath & ShaderAttrib::get_shader_input_nodepath | ( | const InternalName * | id | ) | const |
Returns the ShaderInput as a nodepath.
Assertion fails if there is none, or if it is not a nodepath.
Definition at line 294 of file shaderAttrib.cxx.
References NodePath::find().
| const Shader::ShaderPtrData * ShaderAttrib::get_shader_input_ptr | ( | const InternalName * | id | ) | const |
Returns the ShaderInput as a ShaderPtrData struct.
Assertion fails if there is none. or if it is not a PTA(double/float)
Definition at line 381 of file shaderAttrib.cxx.
| Texture * ShaderAttrib::get_shader_input_texture | ( | const InternalName * | id, |
| SamplerState * | sampler = nullptr ) const |
Returns the ShaderInput as a texture.
Assertion fails if there is none, or if it is not a texture.
If sampler is not NULL, the sampler state to use for this texture is assigned to it.
Definition at line 409 of file shaderAttrib.cxx.
References Texture::get_default_sampler, ParamTextureSampler::get_sampler, and ParamTextureSampler::get_texture.
| LVecBase4 ShaderAttrib::get_shader_input_vector | ( | InternalName * | id | ) | const |
Returns the ShaderInput as a vector.
Assertion fails if there is none, or if it is not a vector.
Definition at line 323 of file shaderAttrib.cxx.
References TypedObject::is_of_type().
|
inline |
Definition at line 78 of file shaderAttrib.I.
|
inlinevirtual |
Implements RenderAttrib.
Definition at line 165 of file shaderAttrib.h.
|
inlinevirtual |
Reimplemented from RenderAttrib.
Definition at line 180 of file shaderAttrib.h.
|
inline |
If true, the shader field of this attribute overrides the shader field of the parent attribute.
Definition at line 61 of file shaderAttrib.I.
|
inline |
Returns true if there is a ShaderInput of the given name.
Definition at line 103 of file shaderAttrib.I.
|
inlinestatic |
Definition at line 174 of file shaderAttrib.h.
|
static |
Constructs a new ShaderAttrib object with nothing set.
Definition at line 56 of file shaderAttrib.cxx.
Referenced by CullableObject::munge_geom(), NodePath::set_instance_count(), and NodePath::set_shader_auto().
|
static |
Returns a RenderAttrib that corresponds to whatever the standard default properties for render attributes of this type ought to be.
Definition at line 75 of file shaderAttrib.cxx.
|
static |
Constructs a new ShaderAttrib object that disables the use of shaders (it does not clear out all shader data, however.)
Definition at line 42 of file shaderAttrib.cxx.
|
virtual |
Reimplemented from RenderAttrib.
Definition at line 542 of file shaderAttrib.cxx.
|
static |
Factory method to generate a Shader object.
Definition at line 721 of file shaderAttrib.cxx.
Referenced by init_libpgraph().
| ConstPointerTo< RenderAttrib > ShaderAttrib::set_flag | ( | int | flag, |
| bool | value ) const |
Definition at line 172 of file shaderAttrib.cxx.
| ConstPointerTo< RenderAttrib > ShaderAttrib::set_instance_count | ( | int | instance_count | ) | const |
Sets the geometry instance count.
Do not confuse this with instanceTo, which is used for animation instancing, and has nothing to do with this. A value of 0 means not to use instancing at all.
Definition at line 232 of file shaderAttrib.cxx.
Referenced by NodePath::set_instance_count().
| ConstPointerTo< RenderAttrib > ShaderAttrib::set_shader | ( | const Shader * | s, |
| int | priority = 0 ) const |
Definition at line 83 of file shaderAttrib.cxx.
| ConstPointerTo< RenderAttrib > ShaderAttrib::set_shader_auto | ( | BitMask32 | shader_switch, |
| int | priority = 0 ) const |
Set auto shader with bitmask to customize use, e.g., to keep normal, glow, etc., on or off.
Definition at line 134 of file shaderAttrib.cxx.
References BitMask< WType, nbits >::get_bit().
| ConstPointerTo< RenderAttrib > ShaderAttrib::set_shader_auto | ( | int | priority = 0 | ) | const |
Definition at line 115 of file shaderAttrib.cxx.
| ConstPointerTo< RenderAttrib > ShaderAttrib::set_shader_input | ( | const ShaderInput & | input | ) | const |
Definition at line 200 of file shaderAttrib.cxx.
| ConstPointerTo< RenderAttrib > ShaderAttrib::set_shader_input | ( | ShaderInput && | input | ) | const |
Definition at line 215 of file shaderAttrib.cxx.
| ConstPointerTo< RenderAttrib > ShaderAttrib::set_shader_off | ( | int | priority = 0 | ) | const |
Definition at line 96 of file shaderAttrib.cxx.
Definition at line 156 of file shaderAttrib.h.
|
friend |
Definition at line 156 of file shaderAttrib.h.
| ShaderAttrib::get_class_slot |
Definition at line 168 of file shaderAttrib.h.
|
inline |
Returns the number of geometry instances.
A value of 0 means not to use instancing at all.
Definition at line 127 of file shaderAttrib.h.
Referenced by NodePath::get_instance_count().
| const Shader * ShaderAttrib::get_shader |
Returns the shader object associated with the node.
If get_override returns true, but get_shader returns NULL, that means that this attribute should disable the shader.
Definition at line 126 of file shaderAttrib.h.
Referenced by StandardMunger::StandardMunger(), GraphicsEngine::dispatch_compute(), and GeomNode::r_prepare_scene().