This is a small container class that can hold any one of the value types that can be passed as input to a shader. More...
#include "shaderInput.h"
Public Types | |
enum | AccessFlags { A_read = 0x01, A_write = 0x02, A_layered = 0x04 } |
enum | ShaderInputType { M_invalid = 0, M_texture, M_nodepath, M_vector, M_numeric, M_texture_sampler, M_param } |
Public Member Functions | |
ShaderInput (CPT_InternalName name, int priority=0) | |
ShaderInput (CPT_InternalName name, Texture *tex, int priority=0) | |
ShaderInput (CPT_InternalName name, Texture *tex, const SamplerState &sampler, int priority=0) | |
ShaderInput (CPT_InternalName name, Texture *tex, bool read, bool write, int z=-1, int n=0, int priority=0) | |
ShaderInput (CPT_InternalName name, ParamValueBase *param, int priority=0) | |
ShaderInput (CPT_InternalName name, const PTA_float &ptr, int priority=0) | |
ShaderInput (CPT_InternalName name, const PTA_LVecBase4f &ptr, int priority=0) | |
ShaderInput (CPT_InternalName name, const PTA_LVecBase3f &ptr, int priority=0) | |
ShaderInput (CPT_InternalName name, const PTA_LVecBase2f &ptr, int priority=0) | |
ShaderInput (CPT_InternalName name, const PTA_LMatrix4f &ptr, int priority=0) | |
ShaderInput (CPT_InternalName name, const PTA_LMatrix3f &ptr, int priority=0) | |
ShaderInput (CPT_InternalName name, const LVecBase4f &vec, int priority=0) | |
ShaderInput (CPT_InternalName name, const LVecBase3f &vec, int priority=0) | |
ShaderInput (CPT_InternalName name, const LVecBase2f &vec, int priority=0) | |
ShaderInput (CPT_InternalName name, const LMatrix4f &mat, int priority=0) | |
ShaderInput (CPT_InternalName name, const LMatrix3f &mat, int priority=0) | |
ShaderInput (CPT_InternalName name, const PTA_double &ptr, int priority=0) | |
ShaderInput (CPT_InternalName name, const PTA_LVecBase4d &ptr, int priority=0) | |
ShaderInput (CPT_InternalName name, const PTA_LVecBase3d &ptr, int priority=0) | |
ShaderInput (CPT_InternalName name, const PTA_LVecBase2d &ptr, int priority=0) | |
ShaderInput (CPT_InternalName name, const PTA_LMatrix4d &ptr, int priority=0) | |
ShaderInput (CPT_InternalName name, const PTA_LMatrix3d &ptr, int priority=0) | |
ShaderInput (CPT_InternalName name, const LVecBase4d &vec, int priority=0) | |
ShaderInput (CPT_InternalName name, const LVecBase3d &vec, int priority=0) | |
ShaderInput (CPT_InternalName name, const LVecBase2d &vec, int priority=0) | |
ShaderInput (CPT_InternalName name, const LMatrix4d &mat, int priority=0) | |
ShaderInput (CPT_InternalName name, const LMatrix3d &mat, int priority=0) | |
ShaderInput (CPT_InternalName name, const PTA_int &ptr, int priority=0) | |
ShaderInput (CPT_InternalName name, const PTA_LVecBase4i &ptr, int priority=0) | |
ShaderInput (CPT_InternalName name, const PTA_LVecBase3i &ptr, int priority=0) | |
ShaderInput (CPT_InternalName name, const PTA_LVecBase2i &ptr, int priority=0) | |
ShaderInput (CPT_InternalName name, const LVecBase4i &vec, int priority=0) | |
ShaderInput (CPT_InternalName name, const LVecBase3i &vec, int priority=0) | |
ShaderInput (CPT_InternalName name, const LVecBase2i &vec, int priority=0) | |
ShaderInput (CPT_InternalName name, const NodePath &np, int priority=0) | |
virtual TypeHandle | force_init_type () |
const InternalName * | get_name () const |
const NodePath & | get_nodepath () const |
Warning: no error checking is done. More... | |
ParamValueBase * | get_param () const |
int | get_priority () const |
const Shader::ShaderPtrData & | get_ptr () const |
const SamplerState & | get_sampler () const |
Texture * | get_texture () const |
virtual TypeHandle | get_type () const |
int | get_value_type () const |
const LVecBase4 & | get_vector () const |
![]() | |
TypedWritableReferenceCount (const TypedWritableReferenceCount ©) | |
virtual ReferenceCount * | as_reference_count () |
Returns the pointer cast to a ReferenceCount pointer, if it is in fact of that type. More... | |
void | operator= (const TypedWritableReferenceCount ©) |
![]() | |
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(). More... | |
string | encode_to_bam_stream () const |
Converts the TypedWritable object into a single stream of data using a BamWriter, and returns that data as a string string. More... | |
bool | encode_to_bam_stream (string &data, BamWriter *writer=NULL) 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... | |
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 ©) |
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... | |
![]() | |
TypedObject (const TypedObject ©) | |
TypedObject * | as_typed_object () |
Returns the object, upcast (if necessary) to a TypedObject pointer. More... | |
const TypedObject * | as_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... | |
void | operator= (const TypedObject ©) |
![]() | |
int | get_ref_count () const |
Returns the current reference count. More... | |
WeakReferenceList * | get_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 | 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... | |
void | weak_ref (WeakPointerToVoid *ptv) |
Adds the indicated PointerToVoid as a weak reference to this object. More... | |
void | weak_unref (WeakPointerToVoid *ptv) |
Removes the indicated PointerToVoid as a weak reference to this object. More... | |
Static Public Member Functions | |
static const ShaderInput * | get_blank () |
Returns a static ShaderInput object with name NULL, priority zero, type INVALID, and all value-fields cleared. More... | |
static TypeHandle | get_class_type () |
static void | init_type () |
static void | register_with_read_factory () |
![]() | |
static TypeHandle | get_class_type () |
static void | init_type () |
static | PT (TypedWritableReferenceCount) decode_from_bam_stream(const string &data |
![]() | |
static bool | decode_raw_from_bam_stream (TypedWritable *&ptr, ReferenceCount *&ref_ptr, const string &data, BamReader *reader=NULL) |
Reads the string created by a previous call to encode_to_bam_stream(), and extracts the single object on that string. More... | |
static TypeHandle | get_class_type () |
static void | init_type () |
![]() | |
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 TypeHandle | get_class_type () |
static void | init_type () |
Public Attributes | |
int | _access: 8 |
int | _bind_layer |
int | _bind_level: 16 |
int | _type: 8 |
![]() | |
static BamReader * | reader = NULL) |
Additional Inherited Members | |
![]() | |
static TypedWritable *const | Null = (TypedWritable*)0L |
This is a small container class that can hold any one of the value types that can be passed as input to a shader.
Definition at line 41 of file shaderInput.h.
|
static |
Returns a static ShaderInput object with name NULL, priority zero, type INVALID, and all value-fields cleared.
Definition at line 28 of file shaderInput.cxx.
Referenced by ShaderAttrib::get_shader_input().
const NodePath & ShaderInput::get_nodepath | ( | ) | const |
Warning: no error checking is done.
This *will* crash if get_value_type() is not M_nodepath.
Definition at line 60 of file shaderInput.cxx.
Referenced by ShaderAttrib::get_shader_input_matrix(), and ShaderAttrib::get_shader_input_nodepath().