A specific kind of CullBin that sorts geometry to collect items of the same state together, so that minimal state changes are required on the GSG to render them. More...
#include "cullBinStateSorted.h"
Public Member Functions | |
CullBinStateSorted (const std::string &name, GraphicsStateGuardianBase *gsg, const PStatCollector &draw_region_pcollector) | |
virtual void | add_object (CullableObject *object, Thread *current_thread) |
Adds a geom, along with its associated state, to the bin for rendering. More... | |
virtual void | draw (bool force, Thread *current_thread) |
Draws all the geoms in the bin, in the appropriate order. More... | |
virtual void | finish_cull (SceneSetup *scene_setup, Thread *current_thread) |
Called after all the geoms have been added, this indicates that the cull process is finished for this frame and gives the bins a chance to do any post-processing (like sorting) before moving on to draw. More... | |
virtual TypeHandle | force_init_type () |
virtual TypeHandle | get_type () const |
Public Member Functions inherited from CullBin | |
CullBin (const std::string &name, BinType bin_type, GraphicsStateGuardianBase *gsg, const PStatCollector &draw_region_pcollector) | |
BinType | get_bin_type () const |
const LColor & | get_flash_color () const |
const std::string & | get_name () const |
bool | has_flash_color () const |
virtual | PT (CullBin) make_next() const |
PT (PandaNode) make_result_graph() | |
Public Member Functions inherited from TypedReferenceCount | |
TypedReferenceCount (const TypedReferenceCount ©) | |
void | operator= (const TypedReferenceCount ©) |
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... | |
virtual bool | unref () const |
Explicitly decrements the reference count. 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 TypeHandle | get_class_type () |
static void | init_type () |
static CullBin * | make_bin (const std::string &name, GraphicsStateGuardianBase *gsg, const PStatCollector &draw_region_pcollector) |
Factory constructor for passing to the CullBinManager. More... | |
Static Public Member Functions inherited from CullBin | |
static TypeHandle | get_class_type () |
static void | init_type () |
Static Public Member Functions inherited from TypedReferenceCount | |
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 () |
Additional Inherited Members | |
Public Types inherited from CullBinEnums | |
enum | BinType { BT_invalid, BT_unsorted, BT_state_sorted, BT_back_to_front, BT_front_to_back, BT_fixed } |
Public Attributes inherited from TypedObject | |
get_type | |
Public Attributes inherited from ReferenceCount | |
get_ref_count | |
Returns the current reference count. More... | |
A specific kind of CullBin that sorts geometry to collect items of the same state together, so that minimal state changes are required on the GSG to render them.
This also sorts objects front-to-back within a particular state, to take advantage of hierarchical Z-buffer algorithms which can early-out when an object appears behind another one.
Definition at line 35 of file cullBinStateSorted.h.
|
virtual |
Adds a geom, along with its associated state, to the bin for rendering.
Implements CullBin.
Definition at line 50 of file cullBinStateSorted.cxx.
|
virtual |
Draws all the geoms in the bin, in the appropriate order.
Implements CullBin.
Definition at line 70 of file cullBinStateSorted.cxx.
|
virtual |
Called after all the geoms have been added, this indicates that the cull process is finished for this frame and gives the bins a chance to do any post-processing (like sorting) before moving on to draw.
Reimplemented from CullBin.
Definition at line 60 of file cullBinStateSorted.cxx.
|
static |
Factory constructor for passing to the CullBinManager.
Definition at line 41 of file cullBinStateSorted.cxx.
Referenced by init_libcull().