Panda3D
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
ColorBlendAttrib Class Reference

This specifies how colors are blended into the frame buffer, for special effects. More...

Inheritance diagram for ColorBlendAttrib:
RenderAttrib TypedWritableReferenceCount TypedWritable ReferenceCount TypedObject

Public Types

enum  Mode {
  M_none = 0, M_add = 1, M_subtract = 2, M_inv_subtract = 3,
  M_min = 4, M_max = 5
}
 
enum  Operand {
  O_zero = 0, O_one = 1, O_incoming_color = 2, O_one_minus_incoming_color = 3,
  O_fbuffer_color = 4, O_one_minus_fbuffer_color = 5, O_incoming_alpha = 6, O_one_minus_incoming_alpha = 7,
  O_fbuffer_alpha = 8, O_one_minus_fbuffer_alpha = 9, O_constant_color = 10, O_one_minus_constant_color = 11,
  O_constant_alpha = 12, O_one_minus_constant_alpha = 13, O_incoming_color_saturate = 14, O_incoming1_color = 15,
  O_one_minus_incoming1_color = 16, O_incoming1_alpha = 17, O_one_minus_incoming1_alpha = 18, O_color_scale = 19,
  O_one_minus_color_scale = 20, O_alpha_scale = 21, O_one_minus_alpha_scale = 22
}
 
- 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

ColorBlendAttrib::Mode getAlphaMode ()
 Returns the blending mode for the alpha channel. More...
 
ColorBlendAttrib::Operand getAlphaOperandA ()
 Returns the alpha multiplier for the first component. More...
 
ColorBlendAttrib::Operand getAlphaOperandB ()
 Returns the alpha multiplier for the second component. More...
 
LColor getColor ()
 Returns the constant color associated with the attrib. More...
 
ColorBlendAttrib::Mode getMode ()
 Returns the blending mode for the RGB channels. More...
 
ColorBlendAttrib::Operand getOperandA ()
 Returns the RGB multiplier for the first component. More...
 
ColorBlendAttrib::Operand getOperandB ()
 Returns the RGB multiplier for the second component. More...
 
bool involvesColorScale ()
 Returns true if the this attrib uses the color scale attrib, false otherwise. More...
 
bool involvesConstantColor ()
 Returns true if the this attrib uses the constant color, false otherwise. More...
 
- 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 bool involvesColorScale (ColorBlendAttrib::Operand operand)
 Returns true if the indicated operand uses the color scale attrib, false otherwise. More...
 
static bool involvesConstantColor (ColorBlendAttrib::Operand operand)
 Returns true if the indicated operand uses the constant color, false otherwise. More...
 
static const RenderAttrib make (ColorBlendAttrib::Mode mode)
 Constructs a new ColorBlendAttrib object. More...
 
static const RenderAttrib make (ColorBlendAttrib::Mode rgb_mode, ColorBlendAttrib::Operand rgb_a, ColorBlendAttrib::Operand rgb_b, ColorBlendAttrib::Mode alpha_mode, ColorBlendAttrib::Operand alpha_a, ColorBlendAttrib::Operand alpha_b, const LColor color)
 Constructs a new ColorBlendAttrib object that enables special-effect blending. More...
 
static const RenderAttrib make (ColorBlendAttrib::Mode mode, ColorBlendAttrib::Operand a, ColorBlendAttrib::Operand b, const LColor color)
 Constructs a new ColorBlendAttrib object that enables special-effect blending. 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 ColorBlendAttrib object that disables special-effect blending, allowing normal transparency to be used instead. 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

ColorBlendAttrib::Mode alpha_mode
 Returns the blending mode for the alpha channel. More...
 
ColorBlendAttrib::Operand alpha_operand_a
 Returns the alpha multiplier for the first component. More...
 
ColorBlendAttrib::Operand alpha_operand_b
 Returns the alpha multiplier for the second component. More...
 
int class_slot
 
LColor color
 Returns the constant color associated with the attrib. More...
 
ColorBlendAttrib::Mode rgb_mode
 Returns the blending mode for the RGB channels. More...
 
ColorBlendAttrib::Operand rgb_operand_a
 Returns the RGB multiplier for the first component. More...
 
ColorBlendAttrib::Operand rgb_operand_b
 Returns the RGB multiplier for the second component. 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...
 

Detailed Description

This specifies how colors are blended into the frame buffer, for special effects.

This overrides transparency if transparency is also specified.

Member Enumeration Documentation

◆ Mode

enum Mode
Enumerator
M_none 

Blending is disabled.

M_add 

incoming color * A + fbuffer color * B

M_subtract 

incoming color * A - fbuffer color * B

M_inv_subtract 

fbuffer color * B - incoming color * A

M_min 

min(incoming color, fbuffer color)

M_max 

max(incoming color, fbuffer color)

◆ Operand

enum Operand
Enumerator
O_zero 
O_one 
O_incoming_color 
O_one_minus_incoming_color 
O_fbuffer_color 
O_one_minus_fbuffer_color 
O_incoming_alpha 
O_one_minus_incoming_alpha 
O_fbuffer_alpha 
O_one_minus_fbuffer_alpha 
O_constant_color 
O_one_minus_constant_color 
O_constant_alpha 
O_one_minus_constant_alpha 
O_incoming_color_saturate 

valid only for operand a

O_incoming1_color 

The following are used for dual-source blending, where the fragment shader outputs a second color that will be used for blending.

O_one_minus_incoming1_color 
O_incoming1_alpha 
O_one_minus_incoming1_alpha 
O_color_scale 

These modes are being considered for deprecation.

O_one_minus_color_scale 
O_alpha_scale 
O_one_minus_alpha_scale 

Member Function Documentation

◆ getAlphaMode()

ColorBlendAttrib::Mode getAlphaMode ( )

Returns the blending mode for the alpha channel.

◆ getAlphaOperandA()

ColorBlendAttrib::Operand getAlphaOperandA ( )

Returns the alpha multiplier for the first component.

◆ getAlphaOperandB()

ColorBlendAttrib::Operand getAlphaOperandB ( )

Returns the alpha multiplier for the second component.

◆ getClassSlot()

static int getClassSlot ( )
static

◆ getClassType()

static TypeHandle getClassType ( )
static

◆ getColor()

LColor getColor ( )

Returns the constant color associated with the attrib.

◆ getMode()

Returns the blending mode for the RGB channels.

◆ getOperandA()

ColorBlendAttrib::Operand getOperandA ( )

Returns the RGB multiplier for the first component.

◆ getOperandB()

ColorBlendAttrib::Operand getOperandB ( )

Returns the RGB multiplier for the second component.

◆ involvesColorScale() [1/2]

bool involvesColorScale ( )

Returns true if the this attrib uses the color scale attrib, false otherwise.

◆ involvesColorScale() [2/2]

static bool involvesColorScale ( ColorBlendAttrib::Operand  operand)
static

Returns true if the indicated operand uses the color scale attrib, false otherwise.

◆ involvesConstantColor() [1/2]

bool involvesConstantColor ( )

Returns true if the this attrib uses the constant color, false otherwise.

◆ involvesConstantColor() [2/2]

static bool involvesConstantColor ( ColorBlendAttrib::Operand  operand)
static

Returns true if the indicated operand uses the constant color, false otherwise.

◆ make() [1/3]

static const RenderAttrib make ( ColorBlendAttrib::Mode  mode)
static

Constructs a new ColorBlendAttrib object.

This constructor is deprecated; use the one below, which takes three or four parameters, instead.

◆ make() [2/3]

static const RenderAttrib make ( ColorBlendAttrib::Mode  rgb_mode,
ColorBlendAttrib::Operand  rgb_a,
ColorBlendAttrib::Operand  rgb_b,
ColorBlendAttrib::Mode  alpha_mode,
ColorBlendAttrib::Operand  alpha_a,
ColorBlendAttrib::Operand  alpha_b,
const LColor  color 
)
static

Constructs a new ColorBlendAttrib object that enables special-effect blending.

This supercedes transparency. This form is used to specify separate blending parameters for the RGB and alpha channels.

◆ make() [3/3]

static const RenderAttrib make ( ColorBlendAttrib::Mode  mode,
ColorBlendAttrib::Operand  a,
ColorBlendAttrib::Operand  b,
const LColor  color 
)
static

Constructs a new ColorBlendAttrib object that enables special-effect blending.

This supercedes transparency. The given mode and operands are used for both the RGB and alpha channels.

◆ 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 ColorBlendAttrib object that disables special-effect blending, allowing normal transparency to be used instead.

Member Data Documentation

◆ alpha_mode

Returns the blending mode for the alpha channel.

◆ alpha_operand_a

ColorBlendAttrib::Operand alpha_operand_a

Returns the alpha multiplier for the first component.

◆ alpha_operand_b

ColorBlendAttrib::Operand alpha_operand_b

Returns the alpha multiplier for the second component.

◆ class_slot

int class_slot

◆ color

LColor color

Returns the constant color associated with the attrib.

◆ rgb_mode

Returns the blending mode for the RGB channels.

◆ rgb_operand_a

Returns the RGB multiplier for the first component.

◆ rgb_operand_b

Returns the RGB multiplier for the second component.