Panda3D
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Friends | List of all members
ShaderAttrib Class Referenceabstract
Inheritance diagram for ShaderAttrib:
RenderAttrib TypedWritableReferenceCount TypedWritable ReferenceCount TypedObject MemoryBase MemoryBase

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. More...
 
bool auto_shadow_on () const
 
 CPT (RenderAttrib) set_shader(const Shader *s
 
 CPT (RenderAttrib) set_shader_off(int priority=0) const
 
 CPT (RenderAttrib) set_shader_auto(int priority=0) const
 
 CPT (RenderAttrib) set_shader_auto(BitMask32 shader_switch
 
 CPT (RenderAttrib) clear_shader() const
 
 CPT (RenderAttrib) set_shader_input(const ShaderInput &input) const
 
 CPT (RenderAttrib) set_shader_input(ShaderInput &&input) const
 
 CPT (RenderAttrib) set_shader_input(CPT_InternalName id
 
 CPT (RenderAttrib) set_shader_input(CPT_InternalName id
 
 CPT (RenderAttrib) set_shader_input(CPT_InternalName id
 
 CPT (RenderAttrib) set_shader_input(CPT_InternalName id
 
 CPT (RenderAttrib) set_shader_input(CPT_InternalName id
 
 CPT (RenderAttrib) set_shader_input(CPT_InternalName id
 
 CPT (RenderAttrib) set_shader_input(CPT_InternalName id
 
 CPT (RenderAttrib) set_shader_input(CPT_InternalName id
 
 CPT (RenderAttrib) set_shader_input(CPT_InternalName id
 
 CPT (RenderAttrib) set_shader_input(CPT_InternalName id
 
 CPT (RenderAttrib) set_shader_input(CPT_InternalName id
 
 CPT (RenderAttrib) set_shader_input(CPT_InternalName id
 
 CPT (RenderAttrib) set_shader_input(CPT_InternalName id
 
 CPT (RenderAttrib) set_shader_input(CPT_InternalName id
 
 CPT (RenderAttrib) set_shader_input(CPT_InternalName id
 
 CPT (RenderAttrib) set_instance_count(int instance_count) const
 
 CPT (RenderAttrib) set_flag(int flag
 
 CPT (RenderAttrib) clear_flag(int flag) const
 
 CPT (RenderAttrib) clear_shader_input(const InternalName *id) const
 
virtual TypeHandle force_init_type ()
 
bool get_flag (int flag) const
 
int get_instance_count () const
 
const Shaderget_shader () const
 
const ShaderInputget_shader_input (const InternalName *id) const
 
const ShaderInputget_shader_input (const std::string &id) const
 
ShaderBufferget_shader_input_buffer (const InternalName *id) const
 
const LMatrix4 & get_shader_input_matrix (const InternalName *id, LMatrix4 &matrix) const
 
const NodePathget_shader_input_nodepath (const InternalName *id) const
 
const Shader::ShaderPtrDataget_shader_input_ptr (const InternalName *id) const
 
Textureget_shader_input_texture (const InternalName *id, SamplerState *sampler=nullptr) const
 
LVecBase4 get_shader_input_vector (InternalName *id) const
 
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. More...
 
bool has_shader_input (CPT_InternalName id) const
 Returns true if there is a ShaderInput of the given name. More...
 
virtual void output (std::ostream &out) const
 
- Public Member Functions inherited from RenderAttrib
 RenderAttrib (const RenderAttrib &copy)=delete
 
virtual ~RenderAttrib ()
 The destructor is responsible for removing the RenderAttrib from the global set if it is there. More...
 
int compare_to (const RenderAttrib &other) const
 
 CPT (RenderAttrib) compose(const RenderAttrib *other) const
 
 CPT (RenderAttrib) invert_compose(const RenderAttrib *other) const
 
 CPT (RenderAttrib) get_unique() 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. More...
 
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. More...
 
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. More...
 
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. More...
 
RenderAttriboperator= (const RenderAttrib &copy)=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. More...
 
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. More...
 
- Public Member Functions inherited from TypedWritableReferenceCount
 TypedWritableReferenceCount (const TypedWritableReferenceCount &copy)
 
virtual ReferenceCountas_reference_count ()
 Returns the pointer cast to a ReferenceCount pointer, if it is in fact of that type. More...
 
void operator= (const TypedWritableReferenceCount &copy)
 
- Public Member Functions inherited from TypedWritable
 TypedWritable (const TypedWritable &copy)
 
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(). More...
 
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. More...
 
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. More...
 
UpdateSeq get_bam_modified () const
 Returns the current bam_modified counter. More...
 
void mark_bam_modified ()
 Increments the bam_modified counter, so that this object will be invalidated and retransmitted on any open bam streams. More...
 
void operator= (const TypedWritable &copy)
 
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. More...
 
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. More...
 
- Public Member Functions inherited from TypedObject
 TypedObject (const TypedObject &copy)=default
 
TypedObjectas_typed_object ()
 Returns the object, upcast (if necessary) to a TypedObject pointer. More...
 
const TypedObjectas_typed_object () const
 Returns the object, upcast (if necessary) to a TypedObject pointer. More...
 
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. More...
 
bool is_exact_type (TypeHandle handle) const
 Returns true if the current object is the indicated type exactly. More...
 
bool is_of_type (TypeHandle handle) const
 Returns true if the current object is or derives from the indicated type. More...
 
TypedObjectoperator= (const TypedObject &copy)=default
 
- Public Member Functions inherited from ReferenceCount
int get_ref_count () const
 
WeakReferenceListget_weak_list () const
 Returns the WeakReferenceList associated with this ReferenceCount object. More...
 
bool has_weak_list () const
 Returns true if this particular ReferenceCount object has a WeakReferenceList created, false otherwise. More...
 
void local_object ()
 This function should be called, once, immediately after creating a new instance of some ReferenceCount-derived object on the stack. More...
 
void ref () const
 Explicitly increments the reference count. More...
 
bool ref_if_nonzero () const
 Atomically increases the reference count of this object if it is not zero. More...
 
bool test_ref_count_integrity () const
 Does some easy checks to make sure that the reference count isn't completely bogus. More...
 
bool test_ref_count_nonzero () const
 Does some easy checks to make sure that the reference count isn't zero, or completely bogus. More...
 
WeakReferenceListweak_ref ()
 Adds the indicated PointerToVoid as a weak reference to this object. More...
 
void weak_unref ()
 Removes the indicated PointerToVoid as a weak reference to this object. More...
 

Static Public Member Functions

static CPT (RenderAttrib) make(const Shader *shader
 
static CPT (RenderAttrib) make_off()
 
static CPT (RenderAttrib) make_default()
 
static int get_class_slot ()
 
static TypeHandle get_class_type ()
 
static void init_type ()
 
static void register_with_read_factory ()
 
- Static Public Member Functions inherited from RenderAttrib
static TypedWritablechange_this (TypedWritable *old_ptr, BamReader *manager)
 Called immediately after complete_pointers(), this gives the object a chance to adjust its own pointer if desired. More...
 
static int garbage_collect ()
 Performs a garbage-collection cycle. More...
 
static TypeHandle get_class_type ()
 
static int get_num_attribs ()
 Returns the total number of unique RenderAttrib objects allocated in the world. More...
 
static void init_attribs ()
 Make sure the global _attribs map is allocated. More...
 
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. More...
 
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. More...
 
static bool validate_attribs ()
 Ensures that the cache is still stored in sorted order. More...
 
- 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. More...
 
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. More...
 
- Static Public Member Functions inherited from ReferenceCount
static TypeHandle get_class_type ()
 
static void init_type ()
 

Public Attributes

bool value const
 
 get_class_slot
 
 get_instance_count
 Returns the number of geometry instances. More...
 
 get_shader
 
double n1 =0
 
double double n2 =0
 
double double double n3 =0
 
double double double double n4 =1
 
const NodePathnp
 
static int priority = 0)
 
int priority =0) const
 
Texture int priority =0) const
 
const NodePath int priority =0) const
 
const PTA_float int priority =0) const
 
const PTA_double int priority =0) const
 
const PTA_LMatrix4 int priority =0) const
 
const PTA_LMatrix3 int priority =0) const
 
const PTA_LVecBase4 int priority =0) const
 
const PTA_LVecBase3 int priority =0) const
 
const PTA_LVecBase2 int priority =0) const
 
const LVecBase4 int priority =0) const
 
const LVecBase3 int priority =0) const
 
const LVecBase2 int priority =0) const
 
const LMatrix4 int priority =0) const
 
const LMatrix3 int priority =0) const
 
double double double double int priority =0) const
 
Texturetex
 
const PTA_float & v
 
const PTA_double & v
 
const PTA_LMatrix4 & v
 
const PTA_LMatrix3 & v
 
const PTA_LVecBase4 & v
 
const PTA_LVecBase3 & v
 
const PTA_LVecBase2 & v
 
const LVecBase4 & v
 
const LVecBase3 & v
 
const LVecBase2 & v
 
const LMatrix4 & v
 
const LMatrix3 & v
 
- Public Attributes inherited from RenderAttrib
 get_slot
 
- Public Attributes inherited from TypedWritableReferenceCount
static BamReaderreader = nullptr)
 
- Public Attributes inherited from TypedObject
 get_type
 
- Public Attributes inherited from ReferenceCount
 get_ref_count
 Returns the current reference count. More...
 

Friends

class Extension< NodePath >
 
class Extension< ShaderAttrib >
 

Additional Inherited Members

- Static Public Attributes inherited from TypedWritable
static TypedWritable *const Null = nullptr
 

Detailed Description

Definition at line 39 of file shaderAttrib.h.

Member Function Documentation

◆ auto_shader()

bool ShaderAttrib::auto_shader ( ) const
inline

If true, then this ShaderAttrib does not contain an explicit shader - instead, it requests the automatic generation of a shader.

Definition at line 71 of file shaderAttrib.I.

Referenced by GraphicsStateGuardian::ensure_generated_shader(), and StandardMunger::StandardMunger().

◆ has_shader()

bool ShaderAttrib::has_shader ( ) const
inline

If true, the shader field of this attribute overrides the shader field of the parent attribute.

Definition at line 62 of file shaderAttrib.I.

◆ has_shader_input()

bool ShaderAttrib::has_shader_input ( CPT_InternalName  id) const
inline

Returns true if there is a ShaderInput of the given name.

Definition at line 104 of file shaderAttrib.I.

Member Data Documentation

◆ get_instance_count

int ShaderAttrib::get_instance_count
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.


The documentation for this class was generated from the following files: