15 #ifndef PIPEOCCLUSIONCULLTRAVERSER_H 16 #define PIPEOCCLUSIONCULLTRAVERSER_H 18 #include "pandabase.h" 19 #include "cullTraverser.h" 20 #include "graphicsOutput.h" 21 #include "displayRegion.h" 22 #include "cullHandler.h" 55 bool dr_incomplete_render);
61 INLINE
void set_occlusion_mask(
const DrawMask &occlusion_mask);
62 INLINE
const DrawMask &get_occlusion_mask()
const;
73 static LVertex compute_sphere_point(PN_stdfloat latitude, PN_stdfloat longitude);
76 void make_solid_test_state();
80 CPT(TransformState) &net_transform,
81 CPT(TransformState) &internal_transform
84 perform_occlusion_test(
const Geom *geom,
85 const TransformState *net_transform,
86 const TransformState *internal_transform);
88 void show_results(
int num_fragments,
const Geom *geom,
89 const TransformState *net_transform,
90 const TransformState *internal_transform);
101 CPT(TransformState) _inv_cs_world_transform;
113 PT(
Geom) _sphere_geom;
117 class PendingObject {
120 INLINE ~PendingObject();
126 PendingObjects _pending_objects;
142 static void init_type() {
143 CullTraverser::init_type();
144 register_type(_type_handle,
"PipeOcclusionCullTraverser",
145 CullTraverser::get_class_type());
148 return get_class_type();
150 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
156 #include "pipeOcclusionCullTraverser.I" virtual void traverse_below(CullTraverserData &data)
Traverses all the children of the indicated node, with the given data, which has been converted into ...
Represents a texture object, which is typically a single 2-d image but may also represent a 1-d or 3-...
This collects together the pieces of data that are accumulated for each node while walking the scene ...
This specialization of CullTraverser uses the graphics pipe itself to perform occlusion culling...
This is an abstract class for any volume in any sense which can be said to define the locality of ref...
A lightweight class that represents a single element that may be timed and/or counted via stats...
This defines the abstract interface for an object that receives Geoms identified by the CullTraverser...
virtual void end_traverse()
This callback function is intended to be overridden by a derived class.
The smallest atom of cull.
virtual void record_object(CullableObject *object, const CullTraverser *traverser)
This callback function is intended to be overridden by a derived class.
An object to create GraphicsOutputs that share a particular 3-D API.
A container for geometry primitives.
This is a base class for the various different classes that represent the result of a frame of render...
This represents a unique collection of RenderAttrib objects that correspond to a particular renderabl...
This is a base class for the GraphicsStateGuardian class, which is itself a base class for the variou...
Encapsulates all the communication with a particular instance of a given rendering backend...
A rectangular subregion within a window for rendering into.
Returned from a GSG in response to begin_occlusion_query() .
This class is the main interface to controlling the render process.
TypeHandle is the identifier used to differentiate C++ class types.
This object holds the camera position, etc., and other general setup information for rendering a part...
This object performs a depth-first traversal of the scene graph, with optional view-frustum culling...
virtual void set_scene(SceneSetup *scene_setup, GraphicsStateGuardianBase *gsg, bool dr_incomplete_render)
Sets the SceneSetup object that indicates the initial camera position, etc.