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) clear_shader_input(const std CPT (RenderAttrib) clear_all_shader_inputs() const
 
 CPT (RenderAttrib) clear_flag(int flag) const
 
 CPT (RenderAttrib) clear_shader() const
 
 CPT (RenderAttrib) clear_shader_input(const InternalName *id) const
 
 CPT (RenderAttrib) set_flag(int flag
 
 CPT (RenderAttrib) set_instance_count(int instance_count) const
 
 CPT (RenderAttrib) set_shader(const Shader *s
 
 CPT (RenderAttrib) set_shader_auto(BitMask32 shader_switch
 
 CPT (RenderAttrib) set_shader_auto(int priority=0) const
 
 CPT (RenderAttrib) set_shader_input(const 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_shader_input(ShaderInput &&input) const
 
 CPT (RenderAttrib) set_shader_off(int priority=0) 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) 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. 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...
 
virtual TypeHandle force_init_type ()
 
size_t get_hash () const
 
virtual int get_slot () const =0
 
virtual TypeHandle get_type () 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 void output (std::ostream &out) const
 
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...
 
virtual TypeHandle force_init_type ()
 
virtual TypeHandle get_type () const
 
void operator= (const TypedWritableReferenceCount &copy)
 
- Public Member Functions inherited from TypedWritable
 TypedWritable (const TypedWritable &copy)
 
virtual ReferenceCountas_reference_count ()
 Returns the pointer cast to a ReferenceCount pointer, if it is in fact of that type. More...
 
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...
 
virtual void fillin (DatagramIterator &scan, BamReader *manager)
 This internal function is intended to be called by each class's make_from_bam() method to read in all of the relevant data from the BamFile for the new object. 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...
 
virtual TypeHandle force_init_type ()
 
UpdateSeq get_bam_modified () const
 Returns the current bam_modified counter. More...
 
virtual TypeHandle get_type () const
 
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...
 
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 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...
 
virtual TypeHandle force_init_type ()=0
 
int get_best_parent_from_Set (const std::set< int > &) const
 
virtual TypeHandle get_type () const =0
 
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 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
 
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...
 
virtual bool unref () const
 Explicitly decrements the reference count. More...
 
bool unref_if_one () const
 Atomically decreases the reference count of this object if it is one. 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_default()
 
static CPT (RenderAttrib) make_off()
 
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 Enumeration Documentation

◆ anonymous enum

anonymous enum

Definition at line 49 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 70 of file shaderAttrib.I.

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

◆ CPT() [1/9]

CPT(RenderAttrib) clear_shader_input(const std ShaderAttrib::CPT ( RenderAttrib  ) const
virtual

Reimplemented from RenderAttrib.

◆ CPT() [2/9]

ShaderAttrib::CPT ( RenderAttrib  ) const
virtual

Reimplemented from RenderAttrib.

◆ CPT() [3/9]

ShaderAttrib::CPT ( RenderAttrib  ) const
virtual

Reimplemented from RenderAttrib.

◆ CPT() [4/9]

ShaderAttrib::CPT ( RenderAttrib  ) const
virtual

Reimplemented from RenderAttrib.

◆ CPT() [5/9]

static ShaderAttrib::CPT ( RenderAttrib  ) const
staticvirtual

Reimplemented from RenderAttrib.

◆ CPT() [6/9]

ShaderAttrib::CPT ( RenderAttrib  ) const
virtual

Reimplemented from RenderAttrib.

◆ CPT() [7/9]

ShaderAttrib::CPT ( RenderAttrib  ) const
virtual

Reimplemented from RenderAttrib.

◆ CPT() [8/9]

ShaderAttrib::CPT ( RenderAttrib  ) const
pure virtual

Reimplemented from RenderAttrib.

◆ CPT() [9/9]

ShaderAttrib::CPT ( RenderAttrib  ) const
pure virtual

Reimplemented from RenderAttrib.

◆ force_init_type()

virtual TypeHandle ShaderAttrib::force_init_type ( )
inlinevirtual

Reimplemented from RenderAttrib.

Definition at line 183 of file shaderAttrib.h.

◆ get_class_slot()

static int ShaderAttrib::get_class_slot ( )
inlinestatic

Definition at line 162 of file shaderAttrib.h.

◆ get_class_type()

static TypeHandle ShaderAttrib::get_class_type ( )
inlinestatic

Definition at line 171 of file shaderAttrib.h.

◆ get_flag()

bool ShaderAttrib::get_flag ( int  flag) const
inline

Definition at line 95 of file shaderAttrib.I.

◆ get_shader_priority()

int ShaderAttrib::get_shader_priority ( ) const
inline

Definition at line 78 of file shaderAttrib.I.

◆ get_slot()

virtual int ShaderAttrib::get_slot ( ) const
inlinevirtual

Implements RenderAttrib.

Definition at line 165 of file shaderAttrib.h.

◆ get_type()

virtual TypeHandle ShaderAttrib::get_type ( ) const
inlinevirtual

Reimplemented from RenderAttrib.

Definition at line 180 of file shaderAttrib.h.

◆ 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 61 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 103 of file shaderAttrib.I.

◆ init_type()

static void ShaderAttrib::init_type ( )
inlinestatic

Definition at line 174 of file shaderAttrib.h.

◆ output()

virtual void ShaderAttrib::output ( std::ostream &  out) const
virtual

Reimplemented from RenderAttrib.

Friends And Related Function Documentation

◆ Extension< NodePath >

friend class Extension< NodePath >
friend

Definition at line 156 of file shaderAttrib.h.

◆ Extension< ShaderAttrib >

friend class Extension< ShaderAttrib >
friend

Definition at line 156 of file shaderAttrib.h.

Member Data Documentation

◆ const

bool value ShaderAttrib::const

Definition at line 101 of file shaderAttrib.h.

◆ get_class_slot

ShaderAttrib::get_class_slot

Definition at line 168 of file shaderAttrib.h.

◆ 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.

◆ get_shader

ShaderAttrib::get_shader

Definition at line 126 of file shaderAttrib.h.

◆ n1

double ShaderAttrib::n1 =0

Definition at line 92 of file shaderAttrib.h.

◆ n2

double double ShaderAttrib::n2 =0

Definition at line 92 of file shaderAttrib.h.

◆ n3

double double double ShaderAttrib::n3 =0

Definition at line 92 of file shaderAttrib.h.

◆ n4

double double double double ShaderAttrib::n4 =1

Definition at line 92 of file shaderAttrib.h.

◆ np

const NodePath& ShaderAttrib::np

Definition at line 79 of file shaderAttrib.h.

◆ priority [1/17]

int ShaderAttrib::priority = 0)

Definition at line 45 of file shaderAttrib.h.

◆ priority [2/17]

int ShaderAttrib::priority =0) const

Definition at line 66 of file shaderAttrib.h.

◆ priority [3/17]

Texture int ShaderAttrib::priority =0) const

Definition at line 78 of file shaderAttrib.h.

◆ priority [4/17]

const NodePath int ShaderAttrib::priority =0) const

Definition at line 79 of file shaderAttrib.h.

◆ priority [5/17]

const PTA_float int ShaderAttrib::priority =0) const

Definition at line 80 of file shaderAttrib.h.

◆ priority [6/17]

const PTA_double int ShaderAttrib::priority =0) const

Definition at line 81 of file shaderAttrib.h.

◆ priority [7/17]

const PTA_LMatrix4 int ShaderAttrib::priority =0) const

Definition at line 82 of file shaderAttrib.h.

◆ priority [8/17]

const PTA_LMatrix3 int ShaderAttrib::priority =0) const

Definition at line 83 of file shaderAttrib.h.

◆ priority [9/17]

const PTA_LVecBase4 int ShaderAttrib::priority =0) const

Definition at line 84 of file shaderAttrib.h.

◆ priority [10/17]

const PTA_LVecBase3 int ShaderAttrib::priority =0) const

Definition at line 85 of file shaderAttrib.h.

◆ priority [11/17]

const PTA_LVecBase2 int ShaderAttrib::priority =0) const

Definition at line 86 of file shaderAttrib.h.

◆ priority [12/17]

const LVecBase4 int ShaderAttrib::priority =0) const

Definition at line 87 of file shaderAttrib.h.

◆ priority [13/17]

const LVecBase3 int ShaderAttrib::priority =0) const

Definition at line 88 of file shaderAttrib.h.

◆ priority [14/17]

const LVecBase2 int ShaderAttrib::priority =0) const

Definition at line 89 of file shaderAttrib.h.

◆ priority [15/17]

const LMatrix4 int ShaderAttrib::priority =0) const

Definition at line 90 of file shaderAttrib.h.

◆ priority [16/17]

const LMatrix3 int ShaderAttrib::priority =0) const

Definition at line 91 of file shaderAttrib.h.

◆ priority [17/17]

double double double double int ShaderAttrib::priority =0) const

Definition at line 93 of file shaderAttrib.h.

◆ tex

Texture* ShaderAttrib::tex

Definition at line 78 of file shaderAttrib.h.

◆ v [1/12]

const PTA_float& ShaderAttrib::v

Definition at line 80 of file shaderAttrib.h.

◆ v [2/12]

const PTA_double& ShaderAttrib::v

Definition at line 81 of file shaderAttrib.h.

◆ v [3/12]

const PTA_LMatrix4& ShaderAttrib::v

Definition at line 82 of file shaderAttrib.h.

◆ v [4/12]

const PTA_LMatrix3& ShaderAttrib::v

Definition at line 83 of file shaderAttrib.h.

◆ v [5/12]

const PTA_LVecBase4& ShaderAttrib::v

Definition at line 84 of file shaderAttrib.h.

◆ v [6/12]

const PTA_LVecBase3& ShaderAttrib::v

Definition at line 85 of file shaderAttrib.h.

◆ v [7/12]

const PTA_LVecBase2& ShaderAttrib::v

Definition at line 86 of file shaderAttrib.h.

◆ v [8/12]

const LVecBase4& ShaderAttrib::v

Definition at line 87 of file shaderAttrib.h.

◆ v [9/12]

const LVecBase3& ShaderAttrib::v

Definition at line 88 of file shaderAttrib.h.

◆ v [10/12]

const LVecBase2& ShaderAttrib::v

Definition at line 89 of file shaderAttrib.h.

◆ v [11/12]

const LMatrix4& ShaderAttrib::v

Definition at line 90 of file shaderAttrib.h.

◆ v [12/12]

const LMatrix3& ShaderAttrib::v

Definition at line 91 of file shaderAttrib.h.


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