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

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 = 1, M_less = 2, M_equal = 3,
  M_less_equal = 4, M_greater = 5, M_not_equal = 6, M_greater_equal = 7,
  M_always = 8
}
 
enum  TexGenMode {
  M_off = 0, M_eye_sphere_map = 1, M_world_cube_map = 2, M_eye_cube_map = 3,
  M_world_normal = 4, M_eye_normal = 5, M_world_position = 6, M_unused = 7,
  M_eye_position = 8, M_point_sprite = 9, M_unused2 = 10, M_constant = 11
}
 

Public Member Functions

bool autoGlossOn ()
 
bool autoGlowOn ()
 
bool autoNormalOn ()
 
bool autoRampOn ()
 
bool autoShader ()
 If true, then this ShaderAttrib does not contain an explicit shader - instead, it requests the automatic generation of a shader. More...
 
bool autoShadowOn ()
 
const RenderAttrib clearAllShaderInputs ()
 Clears all the shader inputs on the attrib. More...
 
const RenderAttrib clearFlag (int flag)
 
const RenderAttrib clearShader ()
 
const RenderAttrib clearShaderInput (const InternalName id)
 
const RenderAttrib clearShaderInput (str id)
 
bool getFlag (int flag)
 
int getInstanceCount ()
 Returns the number of geometry instances. More...
 
const Shader getShader ()
 Returns the shader object associated with the node. More...
 
const ShaderInput getShaderInput (const InternalName id)
 Returns the ShaderInput of the given name. More...
 
const ShaderInput getShaderInput (str id)
 Returns the ShaderInput of the given name. More...
 
ShaderBuffer getShaderInputBuffer (const InternalName id)
 Returns the ShaderInput as a ShaderBuffer. More...
 
const LMatrix4 getShaderInputMatrix (const InternalName id, LMatrix4 matrix)
 Returns the ShaderInput as a matrix. More...
 
const NodePath getShaderInputNodepath (const InternalName id)
 Returns the ShaderInput as a nodepath. More...
 
const Shader::ShaderPtrData getShaderInputPtr (const InternalName id)
 Returns the ShaderInput as a ShaderPtrData struct. More...
 
Texture getShaderInputTexture (const InternalName id, SamplerState sampler)
 Returns the ShaderInput as a texture. More...
 
LVecBase4 getShaderInputVector (InternalName id)
 Returns the ShaderInput as a vector. More...
 
int getShaderPriority ()
 
bool hasShader ()
 If true, the shader field of this attribute overrides the shader field of the parent attribute. More...
 
bool hasShaderInput (const InternalName id)
 Returns true if there is a ShaderInput of the given name. More...
 
const RenderAttrib setFlag (int flag, bool value)
 
const RenderAttrib setInstanceCount (int instance_count)
 Sets the geometry instance count. More...
 
const RenderAttrib setShader (const Shader s, int priority)
 
const RenderAttrib setShaderAuto (BitMask32 shader_switch, int priority)
 Set auto shader with bitmask to customize use, e.g., to keep normal, glow, etc., on or off. More...
 
const RenderAttrib setShaderAuto (int priority)
 
const RenderAttrib setShaderInput (const InternalName, object, int priority)
 
const RenderAttrib setShaderInput (ShaderInput input)
 
const RenderAttrib setShaderInput (const ShaderInput input)
 
const RenderAttrib setShaderInputs (object args, object kwargs)
 
const RenderAttrib setShaderOff (int priority)
 
- Public Member Functions inherited from RenderAttrib
int compareTo (const RenderAttrib other)
 Provides an arbitrary ordering among all unique RenderAttribs, so we can store the essentially different ones in a big set and throw away the rest. More...
 
const RenderAttrib compose (const RenderAttrib other)
 Returns a new RenderAttrib object that represents the composition of this attrib with the other attrib. More...
 
int getHash ()
 Returns a suitable hash value for phash_map. More...
 
int getSlot ()
 
const RenderAttrib getUnique ()
 Returns the pointer to the unique RenderAttrib in the cache that is equivalent to this one. More...
 
const RenderAttrib invertCompose (const RenderAttrib other)
 Returns a new RenderAttrib object that represents the composition of the inverse of this attrib with the other attrib. More...
 
bool lowerAttribCanOverride ()
 Intended to be overridden by derived RenderAttrib types to specify how two consecutive RenderAttrib objects of the same type interact. More...
 
 output (Ostream out)
 
 write (Ostream out, int indent_level)
 
- Public Member Functions inherited from TypedWritable
object __reduce__ ()
 
object __reduce_persist__ (object pickler)
 
VectorUchar encodeToBamStream ()
 Converts the TypedWritable object into a single stream of data using a BamWriter, and returns that data as a bytes object. More...
 
bool encodeToBamStream (VectorUchar data, BamWriter writer)
 Converts the TypedWritable object into a single stream of data using a BamWriter, and stores that data in the indicated string. More...
 
 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...
 
UpdateSeq getBamModified ()
 Returns the current bam_modified counter. More...
 
 markBamModified ()
 Increments the bam_modified counter, so that this object will be invalidated and retransmitted on any open bam streams. More...
 
- Public Member Functions inherited from TypedObject
TypeHandle getType ()
 
int getTypeIndex ()
 Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. More...
 
bool isExactType (TypeHandle handle)
 Returns true if the current object is the indicated type exactly. More...
 
bool isOfType (TypeHandle handle)
 Returns true if the current object is or derives from the indicated type. More...
 
- Public Member Functions inherited from ReferenceCount
int getRefCount ()
 Returns the current reference count. More...
 
 ref ()
 Explicitly increments the reference count. More...
 
bool testRefCountIntegrity ()
 Does some easy checks to make sure that the reference count isn't completely bogus. More...
 
bool testRefCountNonzero ()
 Does some easy checks to make sure that the reference count isn't zero, or completely bogus. More...
 
bool unref ()
 Explicitly decrements the reference count. More...
 

Static Public Member Functions

static int getClassSlot ()
 
static TypeHandle getClassType ()
 
static const RenderAttrib make (const Shader shader, int priority)
 Constructs a new ShaderAttrib object with nothing set. More...
 
static const RenderAttrib makeDefault ()
 Returns a RenderAttrib that corresponds to whatever the standard default properties for render attributes of this type ought to be. More...
 
static const RenderAttrib makeOff ()
 Constructs a new ShaderAttrib object that disables the use of shaders (it does not clear out all shader data, however.) More...
 
static registerWithReadFactory ()
 Factory method to generate a Shader object. More...
 
- Static Public Member Functions inherited from RenderAttrib
static int garbageCollect ()
 Performs a garbage-collection cycle. More...
 
static TypeHandle getClassType ()
 
static int getNumAttribs ()
 Returns the total number of unique RenderAttrib objects allocated in the world. More...
 
static listAttribs (Ostream out)
 Lists all of the RenderAttribs in the cache to the output stream, one per line. More...
 
static bool validateAttribs ()
 Ensures that the cache is still stored in sorted order. More...
 
- Static Public Member Functions inherited from TypedWritableReferenceCount
static TypedWritableReferenceCount decodeFromBamStream (VectorUchar data, BamReader reader)
 Reads the bytes created by a previous call to encode_to_bam_stream(), and extracts and returns the single object on those bytes. More...
 
static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from TypedWritable
static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from TypedObject
static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from ReferenceCount
static TypeHandle getClassType ()
 

Public Attributes

int class_slot
 
int instance_count
 Returns the number of geometry instances. More...
 
const Shader shader
 Returns the shader object associated with the node. More...
 
- Public Attributes inherited from RenderAttrib
int slot
 
- Public Attributes inherited from TypedObject
TypeHandle type
 Returns the TypeHandle representing this object's type. More...
 
- Public Attributes inherited from ReferenceCount
int ref_count
 The current reference count. More...
 

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
F_disable_alpha_write 

Suppress writes to color buffer alpha channel.

F_subsume_alpha_test 

Shader promises to subsume the alpha test using TEXKILL.

F_hardware_skinning 

Shader needs pre-animated vertices.

F_shader_point_size 

Shader provides point size, not RenderModeAttrib.

Member Function Documentation

◆ autoGlossOn()

bool autoGlossOn ( )

◆ autoGlowOn()

bool autoGlowOn ( )

◆ autoNormalOn()

bool autoNormalOn ( )

◆ autoRampOn()

bool autoRampOn ( )

◆ autoShader()

bool autoShader ( )

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

◆ autoShadowOn()

bool autoShadowOn ( )

◆ clearAllShaderInputs()

const RenderAttrib clearAllShaderInputs ( )

Clears all the shader inputs on the attrib.

◆ clearFlag()

const RenderAttrib clearFlag ( int  flag)

◆ clearShader()

const RenderAttrib clearShader ( )

◆ clearShaderInput() [1/2]

const RenderAttrib clearShaderInput ( const InternalName  id)

◆ clearShaderInput() [2/2]

const RenderAttrib clearShaderInput ( str  id)

◆ getClassSlot()

static int getClassSlot ( )
static

◆ getClassType()

static TypeHandle getClassType ( )
static

◆ getFlag()

bool getFlag ( int  flag)

◆ getInstanceCount()

int getInstanceCount ( )

Returns the number of geometry instances.

A value of 0 means not to use instancing at all.

◆ getShader()

const Shader getShader ( )

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.

◆ getShaderInput() [1/2]

const ShaderInput getShaderInput ( const InternalName  id)

Returns the ShaderInput of the given name.

If no such name is found, this function does not return NULL — it returns the "blank" ShaderInput.

◆ getShaderInput() [2/2]

const ShaderInput getShaderInput ( str  id)

Returns the ShaderInput of the given name.

If no such name is found, this function does not return NULL — it returns the "blank" ShaderInput.

◆ getShaderInputBuffer()

ShaderBuffer getShaderInputBuffer ( const InternalName  id)

Returns the ShaderInput as a ShaderBuffer.

Assertion fails if there is none, or if it is not a ShaderBuffer.

◆ getShaderInputMatrix()

const LMatrix4 getShaderInputMatrix ( const InternalName  id,
LMatrix4  matrix 
)

Returns the ShaderInput as a matrix.

Assertion fails if there is none, or if it is not a matrix or NodePath.

◆ getShaderInputNodepath()

const NodePath getShaderInputNodepath ( const InternalName  id)

Returns the ShaderInput as a nodepath.

Assertion fails if there is none, or if it is not a nodepath.

◆ getShaderInputPtr()

const Shader::ShaderPtrData getShaderInputPtr ( const InternalName  id)

Returns the ShaderInput as a ShaderPtrData struct.

Assertion fails if there is none. or if it is not a PTA(double/float)

◆ getShaderInputTexture()

Texture getShaderInputTexture ( const InternalName  id,
SamplerState  sampler 
)

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.

◆ getShaderInputVector()

LVecBase4 getShaderInputVector ( InternalName  id)

Returns the ShaderInput as a vector.

Assertion fails if there is none, or if it is not a vector.

◆ getShaderPriority()

int getShaderPriority ( )

◆ hasShader()

bool hasShader ( )

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

◆ hasShaderInput()

bool hasShaderInput ( const InternalName  id)

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

◆ make()

static const RenderAttrib make ( const Shader  shader,
int  priority 
)
static

Constructs a new ShaderAttrib object with nothing set.

◆ makeDefault()

static const RenderAttrib makeDefault ( )
static

Returns a RenderAttrib that corresponds to whatever the standard default properties for render attributes of this type ought to be.

◆ makeOff()

static const RenderAttrib makeOff ( )
static

Constructs a new ShaderAttrib object that disables the use of shaders (it does not clear out all shader data, however.)

◆ registerWithReadFactory()

static registerWithReadFactory ( )
static

Factory method to generate a Shader object.

◆ setFlag()

const RenderAttrib setFlag ( int  flag,
bool  value 
)

◆ setInstanceCount()

const RenderAttrib setInstanceCount ( int  instance_count)

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.

◆ setShader()

const RenderAttrib setShader ( const Shader  s,
int  priority 
)

◆ setShaderAuto() [1/2]

const RenderAttrib setShaderAuto ( BitMask32  shader_switch,
int  priority 
)

Set auto shader with bitmask to customize use, e.g., to keep normal, glow, etc., on or off.

◆ setShaderAuto() [2/2]

const RenderAttrib setShaderAuto ( int  priority)

◆ setShaderInput() [1/3]

const RenderAttrib setShaderInput ( const  InternalName,
object  ,
int  priority 
)

◆ setShaderInput() [2/3]

const RenderAttrib setShaderInput ( ShaderInput  input)

◆ setShaderInput() [3/3]

const RenderAttrib setShaderInput ( const ShaderInput  input)

◆ setShaderInputs()

const RenderAttrib setShaderInputs ( object  args,
object  kwargs 
)

◆ setShaderOff()

const RenderAttrib setShaderOff ( int  priority)

Member Data Documentation

◆ class_slot

int class_slot

◆ instance_count

int instance_count

Returns the number of geometry instances.

A value of 0 means not to use instancing at all.

◆ shader

const Shader 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.