A StencilAttrib is a collection of all stencil render states. More...
#include "stencilAttrib.h"
Public Types | |
enum | StencilComparisonFunction { SCF_never = M_never, SCF_less_than = M_less, SCF_equal = M_equal, SCF_less_than_or_equal = M_less_equal, SCF_greater_than = M_greater, SCF_not_equal = M_not_equal, SCF_greater_than_or_equal = M_greater_equal, SCF_always = M_always } |
enum | StencilOperation { SO_keep, SO_zero, SO_replace, SO_increment, SO_decrement, SO_invert, SO_increment_saturate, SO_decrement_saturate } |
enum | StencilRenderState { SRS_front_comparison_function, SRS_front_stencil_fail_operation, SRS_front_stencil_pass_z_fail_operation, SRS_front_stencil_pass_z_pass_operation, SRS_reference, SRS_read_mask, SRS_write_mask, SRS_back_comparison_function, SRS_back_stencil_fail_operation, SRS_back_stencil_pass_z_fail_operation, SRS_back_stencil_pass_z_pass_operation, SRS_clear, SRS_clear_value, SRS_total } |
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 | |
virtual TypeHandle | force_init_type () |
unsigned int | get_render_state (StencilRenderState render_state_identifier) const |
Returns render state. More... | |
virtual int | get_slot () const |
virtual TypeHandle | get_type () const |
virtual void | output (std::ostream &out) 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 RenderAttrib | |
RenderAttrib (const RenderAttrib ©)=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... | |
RenderAttrib & | operator= (const RenderAttrib ©)=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 |
Public Member Functions inherited from TypedWritableReferenceCount | |
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 ©) |
Public Member Functions inherited from TypedWritable | |
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... | |
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 ©) |
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 ©)=default | |
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... | |
TypedObject & | operator= (const TypedObject ©)=default |
Public Member Functions inherited from ReferenceCount | |
int | get_ref_count () const |
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 | 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... | |
WeakReferenceList * | weak_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_off() |
static | CPT (RenderAttrib) make_default() |
static | CPT (RenderAttrib) make(bool front_enable |
static | CPT (RenderAttrib) make_2_sided(bool front_enable |
static | CPT (RenderAttrib) make_with_clear(bool front_enable |
static | CPT (RenderAttrib) make_2_sided_with_clear(bool front_enable |
static int | get_class_slot () |
static TypeHandle | get_class_type () |
static void | init_type () |
static void | register_with_read_factory () |
Tells the BamReader how to create objects of type StencilAttrib. More... | |
Static Public Member Functions inherited from RenderAttrib | |
static TypedWritable * | change_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 | |
static bool PandaCompareFunc StencilOperation StencilOperation StencilOperation unsigned int unsigned int unsigned int PandaCompareFunc | back_comparison_function |
static bool | back_enable |
static bool PandaCompareFunc StencilOperation StencilOperation StencilOperation unsigned int unsigned int unsigned int PandaCompareFunc StencilOperation | back_stencil_fail_operation |
static bool PandaCompareFunc StencilOperation StencilOperation StencilOperation unsigned int unsigned int unsigned int PandaCompareFunc StencilOperation StencilOperation | back_stencil_pass_z_fail_operation |
static bool PandaCompareFunc StencilOperation StencilOperation StencilOperation unsigned int unsigned int unsigned int PandaCompareFunc StencilOperation StencilOperation StencilOperation | back_stencil_pass_z_pass_operation |
static PandaCompareFunc StencilOperation StencilOperation StencilOperation unsigned int unsigned int unsigned int bool | clear |
static bool PandaCompareFunc StencilOperation StencilOperation StencilOperation unsigned int unsigned int unsigned int PandaCompareFunc StencilOperation StencilOperation StencilOperation bool | clear |
static PandaCompareFunc StencilOperation StencilOperation StencilOperation unsigned int unsigned int unsigned int bool unsigned int | clear_value |
static bool PandaCompareFunc StencilOperation StencilOperation StencilOperation unsigned int unsigned int unsigned int PandaCompareFunc StencilOperation StencilOperation StencilOperation bool unsigned int | clear_value |
static PandaCompareFunc | front_comparison_function |
static bool PandaCompareFunc | front_comparison_function |
static PandaCompareFunc StencilOperation StencilOperation StencilOperation | front_stencil_pass_z_pass_operation |
static bool PandaCompareFunc StencilOperation StencilOperation StencilOperation | front_stencil_pass_z_pass_operation |
get_class_slot | |
static PandaCompareFunc StencilOperation StencilOperation StencilOperation unsigned int unsigned int | read_mask |
static bool PandaCompareFunc StencilOperation StencilOperation StencilOperation unsigned int unsigned int | read_mask |
static PandaCompareFunc StencilOperation StencilOperation StencilOperation unsigned int | reference |
static bool PandaCompareFunc StencilOperation StencilOperation StencilOperation unsigned int | reference |
static PandaCompareFunc StencilOperation | stencil_fail_operation |
static bool PandaCompareFunc StencilOperation | stencil_fail_operation |
static PandaCompareFunc StencilOperation StencilOperation | stencil_pass_z_fail_operation |
static bool PandaCompareFunc StencilOperation StencilOperation | stencil_pass_z_fail_operation |
static PandaCompareFunc StencilOperation StencilOperation StencilOperation unsigned int unsigned int unsigned int | write_mask |
static bool PandaCompareFunc StencilOperation StencilOperation StencilOperation unsigned int unsigned int unsigned int | write_mask |
Public Attributes inherited from RenderAttrib | |
get_slot | |
Public Attributes inherited from TypedWritableReferenceCount | |
static BamReader * | reader = nullptr) |
Public Attributes inherited from TypedObject | |
get_type | |
Public Attributes inherited from ReferenceCount | |
get_ref_count | |
Returns the current reference count. More... | |
Static Public Attributes | |
static const char * | stencil_render_state_name_array [SRS_total] |
Static Public Attributes inherited from TypedWritable | |
static TypedWritable *const | Null = nullptr |
A StencilAttrib is a collection of all stencil render states.
The render states in a StencilAttrib are read-only. A StencilAttrib is created with make or make_2_sided. To determine if two sided stencil is supported, call the function GraphicsStateGuardian:: get_supports_two_sided_stencil.
Definition at line 28 of file stencilAttrib.h.
|
inline |
Returns render state.
Definition at line 18 of file stencilAttrib.I.
|
static |
Tells the BamReader how to create objects of type StencilAttrib.
Definition at line 329 of file stencilAttrib.cxx.
References BamReader::get_factory(), and Factory< Type >::register_factory().
Writes the contents of this object to the datagram for shipping out to a Bam file.
Reimplemented from RenderAttrib.
Definition at line 338 of file stencilAttrib.cxx.
References Datagram::add_int32(), Datagram::add_uint32(), BamWriter::get_file_minor_ver(), and RenderAttrib::write_datagram().
|
static |
Definition at line 140 of file stencilAttrib.h.