Panda3D
 All Classes Functions Variables Enumerations
Classes | Public Member Functions | Static Public Member Functions | List of all members
CullBinStateSorted Class Reference

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"

Inheritance diagram for CullBinStateSorted:
CullBin TypedReferenceCount CullBinEnums TypedObject ReferenceCount MemoryBase MemoryBase

Public Member Functions

 CullBinStateSorted (const 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 string &name, BinType bin_type, GraphicsStateGuardianBase *gsg, const PStatCollector &draw_region_pcollector)
 
BinType get_bin_type () const
 
const LColorget_flash_color () const
 
const 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 &copy)
 
void operator= (const TypedReferenceCount &copy)
 
- Public Member Functions inherited from TypedObject
 TypedObject (const TypedObject &copy)
 
TypedObjectas_typed_object ()
 Returns the object, upcast (if necessary) to a TypedObject pointer. More...
 
const TypedObjectas_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 &copy)
 
- Public Member Functions inherited from ReferenceCount
int get_ref_count () const
 Returns the current reference count. More...
 
WeakReferenceListget_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 TypeHandle get_class_type ()
 
static void init_type ()
 
static CullBinmake_bin (const 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
}
 

Detailed Description

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 39 of file cullBinStateSorted.h.

Member Function Documentation

void CullBinStateSorted::add_object ( CullableObject object,
Thread current_thread 
)
virtual

Adds a geom, along with its associated state, to the bin for rendering.

Implements CullBin.

Definition at line 58 of file cullBinStateSorted.cxx.

void CullBinStateSorted::draw ( bool  force,
Thread current_thread 
)
virtual

Draws all the geoms in the bin, in the appropriate order.

Implements CullBin.

Definition at line 85 of file cullBinStateSorted.cxx.

References CullHandler::draw().

void CullBinStateSorted::finish_cull ( SceneSetup scene_setup,
Thread current_thread 
)
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 72 of file cullBinStateSorted.cxx.

CullBin * CullBinStateSorted::make_bin ( const string &  name,
GraphicsStateGuardianBase gsg,
const PStatCollector draw_region_pcollector 
)
static

Factory constructor for passing to the CullBinManager.

Definition at line 46 of file cullBinStateSorted.cxx.


The documentation for this class was generated from the following files: