Panda3D
|
This stores the result of a BinCullHandler traversal: an ordered collection of CullBins, each of which holds a number of Geoms and RenderStates to be rendered in some defined order. More...
#include "cullResult.h"
Public Member Functions | |
CullResult (GraphicsStateGuardianBase *gsg, const PStatCollector &draw_region_pcollector) | |
void | add_object (CullableObject *object, const CullTraverser *traverser) |
Adds the indicated CullableObject to the appropriate bin. | |
void | draw (Thread *current_thread) |
Asks all the bins to draw themselves in the correct order. | |
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. | |
CullBin * | get_bin (int bin_index) |
Returns the CullBin associated with the indicated bin_index, or NULL if the bin_index is invalid. | |
PT (CullResult) make_next() const | |
PT (PandaNode) make_result_graph() | |
Static Public Member Functions | |
static void | bin_removed (int bin_index) |
Intended to be called by CullBinManager::remove_bin(), this informs all the CullResults in the world to remove the indicated bin_index from their cache if it has been cached. | |
static TypeHandle | get_class_type () |
static void | init_type () |
This stores the result of a BinCullHandler traversal: an ordered collection of CullBins, each of which holds a number of Geoms and RenderStates to be rendered in some defined order.
This is also used to keep the results of last frame's cull traversal around to make next frame's traversal of the same scene a little easier.
Definition at line 47 of file cullResult.h.
void CullResult::add_object | ( | CullableObject * | object, |
const CullTraverser * | traverser | ||
) |
Adds the indicated CullableObject to the appropriate bin.
The bin becomes the owner of the object pointer, and will eventually delete it.
Definition at line 109 of file cullResult.cxx.
References RenderState::get_attrib(), get_bin(), CullBinAttrib::get_bin_name(), CullTraverser::get_current_thread(), CullTraverser::get_effective_incomplete_render(), TransparencyAttrib::get_mode(), and CullableObject::munge_geom().
void CullResult::bin_removed | ( | int | bin_index | ) | [static] |
Intended to be called by CullBinManager::remove_bin(), this informs all the CullResults in the world to remove the indicated bin_index from their cache if it has been cached.
Definition at line 335 of file cullResult.cxx.
Referenced by CullBinManager::remove_bin().
void CullResult::draw | ( | Thread * | current_thread | ) |
Asks all the bins to draw themselves in the correct order.
Definition at line 275 of file cullResult.cxx.
References CullBinManager::get_bin(), CullBinManager::get_global_ptr(), and CullBinManager::get_num_bins().
Referenced by DisplayRegionDrawCallbackData::upcall().
void CullResult::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.
Definition at line 250 of file cullResult.cxx.
References CullBin::finish_cull(), CullBinManager::get_bin_active(), and CullBinManager::get_global_ptr().
CullBin * CullResult::get_bin | ( | int | bin_index | ) | [inline] |
Returns the CullBin associated with the indicated bin_index, or NULL if the bin_index is invalid.
If there is the first time this bin_index has been requested for this CullResult, creates a new CullBin object on the fly.
Definition at line 35 of file cullResult.I.
Referenced by add_object().