Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

GraphicsStateGuardian Class Reference

Encapsulates all the communication with a particular instance of a given rendering backend. More...

#include <graphicsStateGuardian.h>

Inheritance diagram for GraphicsStateGuardian:

GraphicsStateGuardianBase TypedReferenceCount TypedObject ReferenceCount CRGraphicsStateGuardian DXGraphicsStateGuardian7 DXGraphicsStateGuardian8 GLGraphicsStateGuardian RIBGraphicsStateGuardian glxGraphicsStateGuardian wglGraphicsStateGuardian List of all members.

Public Member Functions

 GraphicsStateGuardian (const FrameBufferProperties &properties)
virtual ~GraphicsStateGuardian ()
void release_all_textures ()
 Frees the resources for all textures associated with this GSG.

void release_all_geoms ()
 Frees the resources for all Geoms and GeomNodes associated with this GSG.

const FrameBufferPropertiesget_properties () const
 Returns the frame buffer properties requested for this GSG.

GraphicsPipeget_pipe () const
 Returns the graphics pipe on which this GSG was created.

const GraphicsThreadingModelget_threading_model () const
 Returns the threading model that was used to create this GSG.

void set_scene (SceneSetup *scene_setup)
 Sets the SceneSetup object that indicates the initial camera position, etc.

SceneSetupget_scene () const
 Returns the SceneSetup object.

virtual TextureContextprepare_texture (Texture *tex)
 Prepares the indicated texture for retained-mode rendering.

virtual void apply_texture (TextureContext *tc)
 Applies the texture previously indicated via a call to prepare_texture() to the graphics state, so that geometry rendered in the future will be rendered with the given texture.

virtual void release_texture (TextureContext *tc)
 Frees the resources previously allocated via a call to prepare_texture(), including deleting the TextureContext itself, if necessary.

virtual GeomNodeContextprepare_geom_node (GeomNode *node)
 Prepares the indicated GeomNode for retained-mode rendering.

virtual void draw_geom_node (GeomNode *node, const RenderState *state, GeomNodeContext *gnc)
 Draws a GeomNode previously indicated by a call to prepare_geom_node().

virtual void release_geom_node (GeomNodeContext *gnc)
 Frees the resources previously allocated via a call to prepare_geom_node(), including deleting the GeomNodeContext itself, if necessary.

virtual GeomContextprepare_geom (Geom *geom)
 Prepares the indicated Geom for retained-mode rendering.

virtual void release_geom (GeomContext *gc)
 Frees the resources previously allocated via a call to prepare_geom(), including deleting the GeomContext itself, if necessary.

virtual void set_state_and_transform (const RenderState *state, const TransformState *transform)
 Simultaneously resets the render state and the transform state.

virtual void set_color_clear_value (const Colorf &value)
 Sets the color that the next do_clear() command will set the color buffer to.

virtual void set_depth_clear_value (const float value)
 Sets the depth that the next do_clear() command will set the depth buffer to.

virtual void do_clear (const RenderBuffer &buffer)=0
void clear (ClearableRegion *clearable)
 Clears the framebuffer within the current DisplayRegion, according to the flags indicated by the given ClearableRegion object.

void clear (DisplayRegion *dr)
 Clears the framebuffer within the indicated DisplayRegion, according to the flags indicated by the DisplayRegion object (inheriting from ClearableRegion).

virtual void prepare_display_region ()=0
virtual bool prepare_lens ()
 Makes the current lens (whichever lens was most recently specified with push_lens()) active, so that it will transform future rendered geometry.

void enable_normals (bool val)
virtual bool begin_frame ()
 Called before each frame is rendered, to allow the GSG a chance to do any internal cleanup before beginning the frame.

virtual bool begin_scene ()
 Called between begin_frame() and end_frame() to mark the beginning of drawing commands for a "scene" (usually a particular DisplayRegion) within a frame.

virtual void end_scene ()
 Called between begin_frame() and end_frame() to mark the end of drawing commands for a "scene" (usually a particular DisplayRegion) within a frame.

virtual void end_frame ()
 Called after each frame is rendered, to allow the GSG a chance to do any internal cleanup after rendering the frame, and before the window flips.

virtual bool wants_normals () const
virtual bool wants_texcoords () const
virtual bool wants_colors () const
 Returns true if the GSG should issue geometry color commands, false otherwise.

virtual bool depth_offset_decals ()
 Returns true if this GSG can implement decals using a DepthOffsetAttrib, or false if that is unreliable and the three-step rendering process should be used instead.

virtual ConstPointerTo< RenderStatebegin_decal_base_first ()
 Called during draw to begin a three-step rendering phase to draw decals.

virtual ConstPointerTo< RenderStatebegin_decal_nested ()
 Called during draw to begin a three-step rendering phase to draw decals.

virtual ConstPointerTo< RenderStatebegin_decal_base_second ()
 Called during draw to begin a three-step rendering phase to draw decals.

virtual void finish_decal ()
 Called during draw to clean up after decals are finished.

void reset_if_new ()
 Calls reset() to initialize the GSG, but only if it hasn't been called yet.

virtual void reset ()
 Resets all internal state as if the gsg were newly created.

void modify_state (const RenderState *state)
 Applies the attributes indicated in the state set to the current state, and issues the changes to the graphics hardware.

void set_state (const RenderState *state)
 Applies the attributes indicated in the state set to the current state, and issues the changes to the graphics hardware.

void set_transform (const TransformState *transform)
 Sets the world transform that will be applied to subsequent geometry.

RenderBuffer get_render_buffer (int buffer_type)
 Returns a RenderBuffer object suitable for operating on the requested set of buffers.

const DisplayRegionget_current_display_region (void) const
 Returns the current display region being rendered to, as set by the last call to push_display_region() (or restored by pop_display_region()).

const Lensget_current_lens () const
 Returns the current lens being rendered with, as set by the last call to push_lens() (or restored by pop_lens()).

DisplayRegionStack push_display_region (const DisplayRegion *dr)
 Saves the current display region information and sets up a new display region for rendering.

void pop_display_region (DisplayRegionStack &node)
 Restores the display region previously in effect, before the matching call to push_display_region().

FrameBufferStack push_frame_buffer (const RenderBuffer &buffer, const DisplayRegion *dr)
 Saves the contents of the frame buffer (within the indicated display region only) so that rendering may be performed (for instance, to render a partial in a multipass algorithm) and the frame buffer later restored via a matching call to pop_frame_buffer().

void pop_frame_buffer (FrameBufferStack &node)
 Restores the contents of the frame buffer as saved by a previous call to push_frame_buffer().

LensStack push_lens (const Lens *lens)
 Saves the current lens information and sets up a new lens for rendering.

void pop_lens (LensStack &stack)
 Restores the lens previously in effect, before the matching call to push_lens().

bool set_lens (const Lens *lens)
 Sets a new lens for rendering without bothering to push or pop.

void set_coordinate_system (CoordinateSystem cs)
 Changes the coordinate system in effect on this particular gsg.

CoordinateSystem get_coordinate_system () const
 Returns the coordinate system in effect on this particular gsg.

virtual CoordinateSystem get_internal_coordinate_system () const
 Should be overridden by derived classes to return the coordinate system used internally by the GSG, if any one particular coordinate system is used.

virtual void issue_transform (const TransformState *transform)
 Sends the indicated transform matrix to the graphics API to be applied to future vertices.

virtual void issue_color_scale (const ColorScaleAttrib *attrib)
virtual void issue_color (const ColorAttrib *attrib)
 This method is defined in the base class because it is likely that this functionality will be used for all (or at least most) kinds of GraphicsStateGuardians--it's not specific to any one rendering backend.

virtual void issue_light (const LightAttrib *attrib)
 The default implementation of issue_light() assumes we have a limited number of hardware lights available.

virtual void issue_color_write (const ColorWriteAttrib *attrib)
virtual void issue_transparency (const TransparencyAttrib *attrib)
virtual void issue_color_blend (const ColorBlendAttrib *attrib)
virtual void issue_clip_plane (const ClipPlaneAttrib *attrib)
 This is fundametically similar to issue_light(), with calls to slot_new_clip_plane(), apply_clip_plane(), and enable_clip_planes(), as appropriate.

virtual void bind_light (PointLight *light, int light_id)
 Called the first time a particular light has been bound to a given id within a frame, this should set up the associated hardware light with the light's properties.

virtual void bind_light (DirectionalLight *light, int light_id)
 Called the first time a particular light has been bound to a given id within a frame, this should set up the associated hardware light with the light's properties.

virtual void bind_light (Spotlight *light, int light_id)
 Called the first time a particular light has been bound to a given id within a frame, this should set up the associated hardware light with the light's properties.

void traverse_prepared_textures (bool(*pertex_callbackfn)(TextureContext *, void *), void *callback_arg)
virtual TypeHandle get_type () const
virtual TypeHandle force_init_type ()
virtual float compute_distance_to (const LPoint3f &point) const=0
virtual void draw_point (GeomPoint *geom, GeomContext *gc)=0
virtual void draw_line (GeomLine *geom, GeomContext *gc)=0
virtual void draw_linestrip (GeomLinestrip *geom, GeomContext *gc)=0
virtual void draw_sprite (GeomSprite *geom, GeomContext *gc)=0
virtual void draw_polygon (GeomPolygon *geom, GeomContext *gc)=0
virtual void draw_quad (GeomQuad *geom, GeomContext *gc)=0
virtual void draw_tri (GeomTri *geom, GeomContext *gc)=0
virtual void draw_tristrip (GeomTristrip *geom, GeomContext *gc)=0
virtual void draw_trifan (GeomTrifan *geom, GeomContext *gc)=0
virtual void draw_sphere (GeomSphere *geom, GeomContext *gc)=0
virtual void copy_texture (TextureContext *tc, const DisplayRegion *dr)=0
virtual void copy_texture (TextureContext *tc, const DisplayRegion *dr, const RenderBuffer &rb)=0
virtual void texture_to_pixel_buffer (TextureContext *tc, PixelBuffer *pb)=0
virtual void texture_to_pixel_buffer (TextureContext *tc, PixelBuffer *pb, const DisplayRegion *dr)=0
virtual void copy_pixel_buffer (PixelBuffer *pb, const DisplayRegion *dr)=0
virtual void copy_pixel_buffer (PixelBuffer *pb, const DisplayRegion *dr, const RenderBuffer &rb)=0
virtual void apply_material (const Material *material)=0
virtual void issue_alpha_test (const AlphaTestAttrib *)
virtual void issue_tex_matrix (const TexMatrixAttrib *)
virtual void issue_texture (const TextureAttrib *)
virtual void issue_material (const MaterialAttrib *)
virtual void issue_render_mode (const RenderModeAttrib *)
virtual void issue_texture_apply (const TextureApplyAttrib *)
virtual void issue_depth_test (const DepthTestAttrib *)
virtual void issue_depth_write (const DepthWriteAttrib *)
virtual void issue_cull_face (const CullFaceAttrib *)
virtual void issue_fog (const FogAttrib *)
virtual void issue_depth_offset (const DepthOffsetAttrib *)
virtual void issue_tex_gen (const TexGenAttrib *)
virtual void issue_stencil (const StencilAttrib *)
int get_type_index () const
 Returns the internal index number associated with this object's TypeHandle, a unique number for each different type.

bool is_of_type (TypeHandle handle) const
 Returns true if the current object is or derives from the indicated type.

bool is_exact_type (TypeHandle handle) const
 Returns true if the current object is the indicated type exactly.

int get_ref_count () const
 Returns the current reference count.

int ref () const
 Explicitly increments the reference count.

int unref () const
 Explicitly decrements the reference count.

void test_ref_count_integrity () const
 Does some easy checks to make sure that the reference count isn't completely bogus.


Static Public Member Functions

TypeHandle get_class_type ()
void init_type ()

Static Public Attributes

PStatCollector _total_texusage_pcollector
PStatCollector _active_texusage_pcollector
PStatCollector _total_geom_pcollector
PStatCollector _active_geom_pcollector
PStatCollector _total_geom_node_pcollector
PStatCollector _active_geom_node_pcollector
PStatCollector _total_texmem_pcollector
PStatCollector _used_texmem_pcollector
PStatCollector _texmgrmem_total_pcollector
PStatCollector _texmgrmem_resident_pcollector
PStatCollector _vertices_pcollector
PStatCollector _vertices_tristrip_pcollector
PStatCollector _vertices_trifan_pcollector
PStatCollector _vertices_tri_pcollector
PStatCollector _vertices_other_pcollector
PStatCollector _state_changes_pcollector
PStatCollector _transform_state_pcollector
PStatCollector _texture_state_pcollector
PStatCollector _nodes_pcollector
PStatCollector _geom_nodes_pcollector
PStatCollector _frustum_cull_volumes_pcollector
PStatCollector _frustum_cull_transforms_pcollector
PStatCollector _set_state_pcollector
PStatCollector _draw_primitive_pcollector
PStatCollector _transform_states_pcollector
PStatCollector _transform_states_unused_pcollector
PStatCollector _render_states_pcollector
PStatCollector _render_states_unused_pcollector

Protected Types

enum  ColorTransform { CT_offset = 0x01, CT_scale = 0x02 }

Protected Member Functions

Lightget_light (int light_id) const
 Returns the Light object that is bound to the indicated id, or NULL if no Light is bound.

virtual bool slot_new_light (int light_id)
 This will be called by the base class before a particular light id will be used for the first time.

virtual void enable_lighting (bool enable)
 Intended to be overridden by a derived class to enable or disable the use of lighting overall.

virtual void set_ambient_light (const Colorf &color)
 Intended to be overridden by a derived class to indicate the color of the ambient light that should be in effect.

virtual void enable_light (int light_id, bool enable)
 Intended to be overridden by a derived class to enable the indicated light id.

virtual void begin_bind_lights ()
 Called immediately before bind_light() is called, this is intended to provide the derived class a hook in which to set up some state (like transform) that might apply to several lights.

virtual void end_bind_lights ()
 Called after before bind_light() has been called one or more times (but before any geometry is issued or additional state is changed), this is intended to clean up any temporary changes to the state that may have been made by begin_bind_lights().

PlaneNodeget_clip_plane (int plane_id) const
 Returns the PlaneNode object that is bound to the indicated id, or NULL if no PlaneNode is bound.

virtual bool slot_new_clip_plane (int plane_id)
 This will be called by the base class before a particular clip plane id will be used for the first time.

virtual void enable_clip_planes (bool enable)
 Intended to be overridden by a derived class to enable or disable the use of clipping planes overall.

virtual void enable_clip_plane (int plane_id, bool enable)
 Intended to be overridden by a derived class to enable the indicated plane id.

virtual void begin_bind_clip_planes ()
 Called immediately before bind_clip_plane() is called, this is intended to provide the derived class a hook in which to set up some state (like transform) that might apply to several planes.

virtual void bind_clip_plane (PlaneNode *plane, int pane_id)
 Called the first time a particular clipping plane has been bound to a given id within a frame, this should set up the associated hardware (or API) clipping plane with the plane's properties.

virtual void end_bind_clip_planes ()
 Called after before bind_clip_plane() has been called one or more times (but before any geometry is issued or additional state is changed), this is intended to clean up any temporary changes to the state that may have been made by begin_bind_clip_planes().

virtual void set_blend_mode (ColorWriteAttrib::Mode color_write_mode, ColorBlendAttrib::Mode color_blend_mode, TransparencyAttrib::Mode transparency_mode)
 Called after any of these three blending states have changed; this function is responsible for setting the appropriate color blending mode based on the given properties.

virtual PointerTo< SavedFrameBuffersave_frame_buffer (const RenderBuffer &buffer, ConstPointerTo< DisplayRegion > dr)=0
virtual void restore_frame_buffer (SavedFrameBuffer *frame_buffer)=0
bool mark_prepared_texture (TextureContext *tc)
 This is intended to be called from within prepare_texture().

bool unmark_prepared_texture (TextureContext *tc)
 This is intended to be called from within release_texture().

bool mark_prepared_geom (GeomContext *gc)
 This is intended to be called from within prepare_geom().

bool unmark_prepared_geom (GeomContext *gc)
 This is intended to be called from within release_geom().

bool mark_prepared_geom_node (GeomNodeContext *gnc)
 This is intended to be called from within prepare_geom_node().

bool unmark_prepared_geom_node (GeomNodeContext *gnc)
 This is intended to be called from within release_geom_node().

virtual void free_pointers ()
 Frees some memory that was explicitly allocated within the glgsg.

virtual void close_gsg ()
 This is called by the associated GraphicsWindow when close_window() is called.

void init_frame_pstats ()
void add_to_texture_record (TextureContext *)
void add_to_geom_record (GeomContext *)
void add_to_geom_node_record (GeomNodeContext *)
void record_state_change (TypeHandle)

Static Protected Member Functions

ConstPointerTo< RenderStateget_unlit_state ()
ConstPointerTo< RenderStateget_unclipped_state ()
ConstPointerTo< RenderStateget_untextured_state ()

Protected Attributes

PointerTo< SceneSetup_scene_setup
ConstPointerTo< RenderState_state
ConstPointerTo< TransformState_transform
int _buffer_mask
Colorf _color_clear_value
float _depth_clear_value
bool _stencil_clear_value
Colorf _accum_clear_value
int _clear_buffer_type
int _display_region_stack_level
int _frame_buffer_stack_level
int _lens_stack_level
ConstPointerTo< DisplayRegion_current_display_region
ConstPointerTo< Lens_current_lens
bool _normals_enabled
CoordinateSystem _coordinate_system
Colorf _scene_graph_color
bool _has_scene_graph_color
bool _scene_graph_color_stale
bool _vertex_colors_enabled
bool _lighting_enabled
bool _clip_planes_enabled
int _color_transform_enabled
LVecBase4f _current_color_offset
LVecBase4f _current_color_scale
ColorWriteAttrib::Mode _color_write_mode
ColorBlendAttrib::Mode _color_blend_mode
TransparencyAttrib::Mode _transparency_mode
bool _needs_reset
bool _closing_gsg

Private Types

typedef pset< TextureContext * > Textures
typedef pset< GeomContext * > Geoms
typedef pset< GeomNodeContext * > GeomNodes

Private Attributes

pvector< LightInfo_light_info
bool _lighting_enabled_this_frame
pvector< ClipPlaneInfo_clip_plane_info
bool _clip_planes_enabled_this_frame
Textures _prepared_textures
Geoms _prepared_geoms
GeomNodes _prepared_geom_nodes
FrameBufferProperties _properties
PointerTo< GraphicsPipe_pipe
GraphicsThreadingModel _threading_model

Static Private Attributes

TypeHandle _type_handle

Friends

class GraphicsPipe
class GraphicsWindow
class GraphicsEngine

Detailed Description

Encapsulates all the communication with a particular instance of a given rendering backend.

Tries to guarantee that redundant state-change requests are not issued (hence "state guardian").

There will be one of these objects for each different graphics context active in the system.

Definition at line 74 of file graphicsStateGuardian.h.


Member Typedef Documentation

typedef pset<GeomNodeContext *> GraphicsStateGuardian::GeomNodes [private]
 

Definition at line 343 of file graphicsStateGuardian.h.

typedef pset<GeomContext *> GraphicsStateGuardian::Geoms [private]
 

Definition at line 341 of file graphicsStateGuardian.h.

typedef pset<TextureContext *> GraphicsStateGuardian::Textures [private]
 

Definition at line 339 of file graphicsStateGuardian.h.


Member Enumeration Documentation

enum GraphicsStateGuardian::ColorTransform [protected]
 

Enumeration values:
CT_offset 
CT_scale 

Definition at line 268 of file graphicsStateGuardian.h.


Constructor & Destructor Documentation

GraphicsStateGuardian::GraphicsStateGuardian const FrameBufferProperties properties  ) 
 

Definition at line 89 of file graphicsStateGuardian.cxx.

References _closing_gsg, and _needs_reset.

GraphicsStateGuardian::~GraphicsStateGuardian  )  [virtual]
 

Definition at line 106 of file graphicsStateGuardian.cxx.

References _buffer_mask, _display_region_stack_level, _frame_buffer_stack_level, _lens_stack_level, _needs_reset, _state, _transform, RenderState::make_empty(), and TransformState::make_identity().


Member Function Documentation

void GraphicsStateGuardian::add_to_geom_node_record GeomNodeContext  )  [inline, protected]
 

Definition at line 228 of file graphicsStateGuardian.h.

Referenced by GLGraphicsStateGuardian::prepare_geom_node().

void GraphicsStateGuardian::add_to_geom_record GeomContext  )  [inline, protected]
 

Definition at line 227 of file graphicsStateGuardian.h.

void GraphicsStateGuardian::add_to_texture_record TextureContext  )  [inline, protected]
 

Definition at line 226 of file graphicsStateGuardian.h.

Referenced by DXGraphicsStateGuardian8::draw_sphere().

virtual void GraphicsStateGuardianBase::apply_material const Material material  )  [pure virtual, inherited]
 

Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

void GraphicsStateGuardian::apply_texture TextureContext tc  )  [virtual]
 

Applies the texture previously indicated via a call to prepare_texture() to the graphics state, so that geometry rendered in the future will be rendered with the given texture.

Implements GraphicsStateGuardianBase.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian.

Definition at line 273 of file graphicsStateGuardian.cxx.

void GraphicsStateGuardian::begin_bind_clip_planes  )  [protected, virtual]
 

Called immediately before bind_clip_plane() is called, this is intended to provide the derived class a hook in which to set up some state (like transform) that might apply to several planes.

The sequence is: begin_bind_clip_planes() will be called, then one or more bind_clip_plane() calls, then end_bind_clip_planes().

Reimplemented in GLGraphicsStateGuardian.

Definition at line 1540 of file graphicsStateGuardian.cxx.

References RenderState::make(), TextureAttrib::make_off(), and NULL.

void GraphicsStateGuardian::begin_bind_lights  )  [protected, virtual]
 

Called immediately before bind_light() is called, this is intended to provide the derived class a hook in which to set up some state (like transform) that might apply to several lights.

The sequence is: begin_bind_lights() will be called, then one or more bind_light() calls, then end_bind_lights().

Reimplemented in CRGraphicsStateGuardian, and GLGraphicsStateGuardian.

Definition at line 1427 of file graphicsStateGuardian.cxx.

ConstPointerTo< RenderState > GraphicsStateGuardian::begin_decal_base_first  )  [virtual]
 

Called during draw to begin a three-step rendering phase to draw decals.

The first step, begin_decal_base_first(), is called prior to drawing the base geometry. It should set up whatever internal state is appropriate, as well as returning a RenderState object that should be applied to the base geometry for rendering.

Implements GraphicsStateGuardianBase.

Definition at line 714 of file graphicsStateGuardian.cxx.

References _has_scene_graph_color, _scene_graph_color_stale, _vertex_colors_enabled, and ColorAttrib::T_vertex.

ConstPointerTo< RenderState > GraphicsStateGuardian::begin_decal_base_second  )  [virtual]
 

Called during draw to begin a three-step rendering phase to draw decals.

The third step, begin_decal_base_second(), is called after drawing the base geometry and the nested decal geometry, and prior to drawing the base geometry one more time (if needed).

It should return a RenderState object appropriate for rendering the base geometry the second time, or NULL if it is not necessary to re-render the base geometry.

Implements GraphicsStateGuardianBase.

Definition at line 785 of file graphicsStateGuardian.cxx.

References _light_info, and enable_light().

ConstPointerTo< RenderState > GraphicsStateGuardian::begin_decal_nested  )  [virtual]
 

Called during draw to begin a three-step rendering phase to draw decals.

The second step, begin_decal_nested(), is called after drawing the base geometry and prior to drawing any of the nested decal geometry that is to be applied to the base geometry.

Implements GraphicsStateGuardianBase.

Definition at line 744 of file graphicsStateGuardian.cxx.

References _light_info, _lighting_enabled, _lighting_enabled_this_frame, Colorf, enable_lighting(), AmbientLight::get_class_type(), Light::get_color(), LightAttrib::get_light(), LightAttrib::get_num_lights(), LightAttrib::get_operation(), Light::get_type(), nassertv, NULL, and LightAttrib::O_remove.

bool GraphicsStateGuardian::begin_frame  )  [virtual]
 

Called before each frame is rendered, to allow the GSG a chance to do any internal cleanup before beginning the frame.

The return value is true if successful (in which case the frame will be drawn and end_frame() will be called later), or false if unsuccessful (in which case nothing will be drawn and end_frame() will not be called).

Reimplemented in DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 516 of file graphicsStateGuardian.cxx.

Referenced by GLGraphicsStateGuardian::prepare_lens().

bool GraphicsStateGuardian::begin_scene  )  [virtual]
 

Called between begin_frame() and end_frame() to mark the beginning of drawing commands for a "scene" (usually a particular DisplayRegion) within a frame.

All 3-D drawing commands, except the clear operation, must be enclosed within begin_scene() .. end_scene().

The return value is true if successful (in which case the scene will be drawn and end_scene() will be called later), or false if unsuccessful (in which case nothing will be drawn and end_scene() will not be called).

Reimplemented in DXGraphicsStateGuardian7, and DXGraphicsStateGuardian8.

Definition at line 595 of file graphicsStateGuardian.cxx.

References CPT, ColorWriteAttrib::M_off, ColorWriteAttrib::make(), RenderState::make(), and NULL.

Referenced by DXGraphicsStateGuardian8::issue_depth_offset().

void GraphicsStateGuardian::bind_clip_plane PlaneNode plane,
int  pane_id
[protected, virtual]
 

Called the first time a particular clipping plane has been bound to a given id within a frame, this should set up the associated hardware (or API) clipping plane with the plane's properties.

Reimplemented in DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 1558 of file graphicsStateGuardian.cxx.

void GraphicsStateGuardian::bind_light Spotlight light,
int  light_id
[virtual]
 

Called the first time a particular light has been bound to a given id within a frame, this should set up the associated hardware light with the light's properties.

Reimplemented from GraphicsStateGuardianBase.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 1320 of file graphicsStateGuardian.cxx.

References _prepared_geom_nodes, _total_geom_node_pcollector, and PStatCollector::add_level().

void GraphicsStateGuardian::bind_light DirectionalLight light,
int  light_id
[virtual]
 

Called the first time a particular light has been bound to a given id within a frame, this should set up the associated hardware light with the light's properties.

Reimplemented from GraphicsStateGuardianBase.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 1302 of file graphicsStateGuardian.cxx.

References _prepared_geoms, _total_geom_pcollector, and PStatCollector::sub_level().

void GraphicsStateGuardian::bind_light PointLight light,
int  light_id
[virtual]
 

Called the first time a particular light has been bound to a given id within a frame, this should set up the associated hardware light with the light's properties.

Reimplemented from GraphicsStateGuardianBase.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 1284 of file graphicsStateGuardian.cxx.

References _prepared_geoms, _total_geom_pcollector, and PStatCollector::add_level().

void GraphicsStateGuardian::clear DisplayRegion dr  )  [inline]
 

Clears the framebuffer within the indicated DisplayRegion, according to the flags indicated by the DisplayRegion object (inheriting from ClearableRegion).

Note that by default, a DisplayRegion does not have any clear flags set, in which case this function will do nothing.

Definition at line 146 of file graphicsStateGuardian.I.

References _state.

void GraphicsStateGuardian::clear ClearableRegion clearable  ) 
 

Clears the framebuffer within the current DisplayRegion, according to the flags indicated by the given ClearableRegion object.

Definition at line 445 of file graphicsStateGuardian.cxx.

Referenced by set_scene(), and GraphicsEngine::sync_frame().

void GraphicsStateGuardian::close_gsg  )  [protected, virtual]
 

This is called by the associated GraphicsWindow when close_window() is called.

It should null out the _win pointer and possibly free any open resources associated with the GSG.

Definition at line 1791 of file graphicsStateGuardian.cxx.

Referenced by GraphicsPipe::get_hw_channel().

virtual float GraphicsStateGuardianBase::compute_distance_to const LPoint3f &  point  )  const [pure virtual, inherited]
 

Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian.

virtual void GraphicsStateGuardianBase::copy_pixel_buffer PixelBuffer pb,
const DisplayRegion dr,
const RenderBuffer rb
[pure virtual, inherited]
 

Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian.

virtual void GraphicsStateGuardianBase::copy_pixel_buffer PixelBuffer pb,
const DisplayRegion dr
[pure virtual, inherited]
 

Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian.

virtual void GraphicsStateGuardianBase::copy_texture TextureContext tc,
const DisplayRegion dr,
const RenderBuffer rb
[pure virtual, inherited]
 

Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian.

virtual void GraphicsStateGuardianBase::copy_texture TextureContext tc,
const DisplayRegion dr
[pure virtual, inherited]
 

Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian.

Referenced by Texture::unprepare().

bool GraphicsStateGuardian::depth_offset_decals  )  [virtual]
 

Returns true if this GSG can implement decals using a DepthOffsetAttrib, or false if that is unreliable and the three-step rendering process should be used instead.

Implements GraphicsStateGuardianBase.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 689 of file graphicsStateGuardian.cxx.

References _has_scene_graph_color, _scene_graph_color, _scene_graph_color_stale, _vertex_colors_enabled, ColorAttrib::get_color(), ColorAttrib::get_color_type(), ColorAttrib::T_flat, and ColorAttrib::T_off.

virtual void GraphicsStateGuardian::do_clear const RenderBuffer buffer  )  [pure virtual]
 

Implemented in DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

void GraphicsStateGuardian::draw_geom_node GeomNode node,
const RenderState state,
GeomNodeContext gnc
[virtual]
 

Draws a GeomNode previously indicated by a call to prepare_geom_node().

Implements GraphicsStateGuardianBase.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 324 of file graphicsStateGuardian.cxx.

virtual void GraphicsStateGuardianBase::draw_line GeomLine geom,
GeomContext gc
[pure virtual, inherited]
 

Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Referenced by GeomLine::make_copy().

virtual void GraphicsStateGuardianBase::draw_linestrip GeomLinestrip geom,
GeomContext gc
[pure virtual, inherited]
 

Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Referenced by GeomLinestrip::make_copy().

virtual void GraphicsStateGuardianBase::draw_point GeomPoint geom,
GeomContext gc
[pure virtual, inherited]
 

Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

virtual void GraphicsStateGuardianBase::draw_polygon GeomPolygon geom,
GeomContext gc
[pure virtual, inherited]
 

Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

virtual void GraphicsStateGuardianBase::draw_quad GeomQuad geom,
GeomContext gc
[pure virtual, inherited]
 

Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

virtual void GraphicsStateGuardianBase::draw_sphere GeomSphere geom,
GeomContext gc
[pure virtual, inherited]
 

Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

virtual void GraphicsStateGuardianBase::draw_sprite GeomSprite geom,
GeomContext gc
[pure virtual, inherited]
 

Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Referenced by GeomSprite::make_copy().

virtual void GraphicsStateGuardianBase::draw_tri GeomTri geom,
GeomContext gc
[pure virtual, inherited]
 

Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

virtual void GraphicsStateGuardianBase::draw_trifan GeomTrifan geom,
GeomContext gc
[pure virtual, inherited]
 

Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

virtual void GraphicsStateGuardianBase::draw_tristrip GeomTristrip geom,
GeomContext gc
[pure virtual, inherited]
 

Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

void GraphicsStateGuardian::enable_clip_plane int  plane_id,
bool  enable
[protected, virtual]
 

Intended to be overridden by a derived class to enable the indicated plane id.

A specific PlaneNode will already have been bound to this id via bind_clip_plane().

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 1514 of file graphicsStateGuardian.cxx.

Referenced by issue_color(), and set_depth_clear_value().

void GraphicsStateGuardian::enable_clip_planes bool  enable  )  [protected, virtual]
 

Intended to be overridden by a derived class to enable or disable the use of clipping planes overall.

This is called by issue_clip_plane() according to whether any planes are in use or not.

Definition at line 1496 of file graphicsStateGuardian.cxx.

References _transform_state_pcollector, and PStatCollector::add_level().

Referenced by issue_color().

void GraphicsStateGuardian::enable_light int  light_id,
bool  enable
[protected, virtual]
 

Intended to be overridden by a derived class to enable the indicated light id.

A specific Light will already have been bound to this id via bind_light().

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 1401 of file graphicsStateGuardian.cxx.

References _active_geom_node_pcollector, _active_geom_pcollector, _frustum_cull_transforms_pcollector, _frustum_cull_volumes_pcollector, _geom_nodes_pcollector, _nodes_pcollector, _render_states_pcollector, _render_states_unused_pcollector, _state_changes_pcollector, _texture_state_pcollector, _transform_state_pcollector, _transform_states_pcollector, _transform_states_unused_pcollector, _vertices_other_pcollector, _vertices_tri_pcollector, _vertices_trifan_pcollector, and _vertices_tristrip_pcollector.

Referenced by begin_decal_base_second(), and set_color_clear_value().

void GraphicsStateGuardian::enable_lighting bool  enable  )  [protected, virtual]
 

Intended to be overridden by a derived class to enable or disable the use of lighting overall.

This is called by issue_light() according to whether any lights are in use or not.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 1367 of file graphicsStateGuardian.cxx.

Referenced by begin_decal_nested().

void GraphicsStateGuardian::enable_normals bool  val  )  [inline]
 

Definition at line 119 of file graphicsStateGuardian.h.

References CoordinateSystem, and INLINE.

void GraphicsStateGuardian::end_bind_clip_planes  )  [protected, virtual]
 

Called after before bind_clip_plane() has been called one or more times (but before any geometry is issued or additional state is changed), this is intended to clean up any temporary changes to the state that may have been made by begin_bind_clip_planes().

Reimplemented in GLGraphicsStateGuardian.

Definition at line 1578 of file graphicsStateGuardian.cxx.

void GraphicsStateGuardian::end_bind_lights  )  [protected, virtual]
 

Called after before bind_light() has been called one or more times (but before any geometry is issued or additional state is changed), this is intended to clean up any temporary changes to the state that may have been made by begin_bind_lights().

Reimplemented in CRGraphicsStateGuardian, and GLGraphicsStateGuardian.

Definition at line 1447 of file graphicsStateGuardian.cxx.

References _active_geom_pcollector, PStatCollector::add_level(), PStatClient::is_connected(), and NULL.

Referenced by issue_color_scale().

void GraphicsStateGuardian::end_frame  )  [virtual]
 

Called after each frame is rendered, to allow the GSG a chance to do any internal cleanup after rendering the frame, and before the window flips.

Reimplemented in DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 632 of file graphicsStateGuardian.cxx.

void GraphicsStateGuardian::end_scene  )  [virtual]
 

Called between begin_frame() and end_frame() to mark the end of drawing commands for a "scene" (usually a particular DisplayRegion) within a frame.

All 3-D drawing commands, except the clear operation, must be enclosed within begin_scene() .. end_scene().

Reimplemented in DXGraphicsStateGuardian7, and DXGraphicsStateGuardian8.

Definition at line 616 of file graphicsStateGuardian.cxx.

void GraphicsStateGuardian::finish_decal  )  [virtual]
 

Called during draw to clean up after decals are finished.

Implements GraphicsStateGuardianBase.

Definition at line 813 of file graphicsStateGuardian.cxx.

References _light_info.

virtual TypeHandle GraphicsStateGuardian::force_init_type void   )  [inline, virtual]
 

Reimplemented from GraphicsStateGuardianBase.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, glxGraphicsStateGuardian, RIBGraphicsStateGuardian, and wglGraphicsStateGuardian.

Definition at line 367 of file graphicsStateGuardian.h.

void GraphicsStateGuardian::free_pointers  )  [protected, virtual]
 

Frees some memory that was explicitly allocated within the glgsg.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, and GLGraphicsStateGuardian.

Definition at line 1773 of file graphicsStateGuardian.cxx.

TypeHandle GraphicsStateGuardian::get_class_type void   )  [inline, static]
 

Reimplemented from GraphicsStateGuardianBase.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, glxGraphicsStateGuardian, RIBGraphicsStateGuardian, and wglGraphicsStateGuardian.

Definition at line 354 of file graphicsStateGuardian.h.

PlaneNode * GraphicsStateGuardian::get_clip_plane int  plane_id  )  const [inline, protected]
 

Returns the PlaneNode object that is bound to the indicated id, or NULL if no PlaneNode is bound.

Definition at line 552 of file graphicsStateGuardian.I.

CoordinateSystem GraphicsStateGuardian::get_coordinate_system  )  const [inline]
 

Returns the coordinate system in effect on this particular gsg.

Normally, this will be the default coordinate system, but it might be set differently at runtime.

Definition at line 521 of file graphicsStateGuardian.I.

const DisplayRegion * GraphicsStateGuardian::get_current_display_region void   )  const [inline]
 

Returns the current display region being rendered to, as set by the last call to push_display_region() (or restored by pop_display_region()).

This display region will be made active (if it is not already) by a call to prepare_display_region().

Definition at line 269 of file graphicsStateGuardian.I.

References FrameBufferStack::_frame_buffer, _frame_buffer_stack_level, FrameBufferStack::_stack_level, and save_frame_buffer().

Referenced by PlanarReflector::init().

const Lens * GraphicsStateGuardian::get_current_lens  )  const [inline]
 

Returns the current lens being rendered with, as set by the last call to push_lens() (or restored by pop_lens()).

This lens will be made active (if it is not already) by a call to prepare_lens().

Definition at line 288 of file graphicsStateGuardian.I.

CoordinateSystem GraphicsStateGuardian::get_internal_coordinate_system  )  const [virtual]
 

Should be overridden by derived classes to return the coordinate system used internally by the GSG, if any one particular coordinate system is used.

The default, CS_default, indicates that the GSG can use any coordinate system.

If this returns other than CS_default, the GraphicsEngine will automatically convert all transforms into the indicated coordinate system.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 842 of file graphicsStateGuardian.cxx.

Light * GraphicsStateGuardian::get_light int  light_id  )  const [inline, protected]
 

Returns the Light object that is bound to the indicated id, or NULL if no Light is bound.

Definition at line 536 of file graphicsStateGuardian.I.

GraphicsPipe * GraphicsStateGuardian::get_pipe  )  const [inline]
 

Returns the graphics pipe on which this GSG was created.

Definition at line 78 of file graphicsStateGuardian.I.

References _scene_setup, and INLINE.

Referenced by GraphicsEngine::terminate_threads().

const FrameBufferProperties & GraphicsStateGuardian::get_properties  )  const [inline]
 

Returns the frame buffer properties requested for this GSG.

All windows created for this GSG must be created with the same properties.

Definition at line 63 of file graphicsStateGuardian.I.

int ReferenceCount::get_ref_count  )  const [inline, inherited]
 

Returns the current reference count.

Definition at line 183 of file referenceCount.I.

Referenced by RenderState::determine_bin_index(), RenderEffects::determine_show_bounds(), FontPool::ns_garbage_collect(), TexturePool::ns_garbage_collect(), MaterialPool::ns_get_material(), and TexturePool::ns_release_texture().

RenderBuffer GraphicsStateGuardian::get_render_buffer int  buffer_type  ) 
 

Returns a RenderBuffer object suitable for operating on the requested set of buffers.

buffer_type is the union of all the desired RenderBuffer::Type values.

Definition at line 170 of file graphicsStateGuardian.cxx.

References _prepared_textures.

Referenced by CRGraphicsStateGuardian::release_geom_node().

SceneSetup * GraphicsStateGuardian::get_scene  )  const [inline]
 

Returns the SceneSetup object.

Definition at line 123 of file graphicsStateGuardian.I.

References INLINE, and reset().

const GraphicsThreadingModel & GraphicsStateGuardian::get_threading_model  )  const [inline]
 

Returns the threading model that was used to create this GSG.

Definition at line 93 of file graphicsStateGuardian.I.

References _scene_setup, and INLINE.

virtual TypeHandle GraphicsStateGuardian::get_type void   )  const [inline, virtual]
 

Reimplemented from GraphicsStateGuardianBase.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, glxGraphicsStateGuardian, RIBGraphicsStateGuardian, and wglGraphicsStateGuardian.

Definition at line 364 of file graphicsStateGuardian.h.

int TypedObject::get_type_index  )  const [inline, inherited]
 

Returns the internal index number associated with this object's TypeHandle, a unique number for each different type.

This is equivalent to get_type().get_index().

Definition at line 71 of file typedObject.I.

References TypeHandle::get_name(), TypedObject::get_type(), and INLINE.

ConstPointerTo< RenderState > GraphicsStateGuardian::get_unclipped_state  )  [static, protected]
 

Definition at line 1969 of file graphicsStateGuardian.cxx.

Referenced by set_depth_clear_value().

ConstPointerTo< RenderState > GraphicsStateGuardian::get_unlit_state  )  [static, protected]
 

Definition at line 1952 of file graphicsStateGuardian.cxx.

ConstPointerTo< RenderState > GraphicsStateGuardian::get_untextured_state  )  [static, protected]
 

Reimplemented in GLGraphicsStateGuardian.

Definition at line 1986 of file graphicsStateGuardian.cxx.

void GraphicsStateGuardian::init_frame_pstats  )  [inline, protected]
 

Definition at line 225 of file graphicsStateGuardian.h.

void GraphicsStateGuardian::init_type void   )  [inline, static]
 

Reimplemented from GraphicsStateGuardianBase.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, glxGraphicsStateGuardian, RIBGraphicsStateGuardian, and wglGraphicsStateGuardian.

Definition at line 359 of file graphicsStateGuardian.h.

bool TypedObject::is_exact_type TypeHandle  handle  )  const [inline, inherited]
 

Returns true if the current object is the indicated type exactly.

Definition at line 101 of file typedObject.I.

Referenced by PT(), and CollisionNode::xform().

bool TypedObject::is_of_type TypeHandle  handle  )  const [inline, inherited]
 

Returns true if the current object is or derives from the indicated type.

Definition at line 86 of file typedObject.I.

Referenced by EggMaterialCollection::collapse_equivalent_materials(), EggTextureCollection::collapse_equivalent_textures(), DeferredNodeProperty::compose(), AnimBundleMaker::create_s_channel(), CharacterMaker::create_slider(), ProjectionScreen::cull_callback(), DataNode::define_output(), EggNode::determine_draw_order(), CharacterMaker::egg_to_index(), EggGroupUniquifier::EggGroupUniquifier(), EggPoolUniquifier::EggPoolUniquifier(), EggGroupNode::find_textures(), StaticTextFont::get_glyph(), EggMaterialCollection::insert_materials(), EggTextureCollection::insert_textures(), CharacterJoint::make_copy(), PT(), EggGroupNode::r_flatten_transforms(), EggGroupNode::r_transform_vertices(), EggGroupNode::recompute_polygon_normals(), CollisionLevelState::reserve(), PandaFramework::reset_frame_rate(), PandaFramework::set_texture(), EggGroupNode::steal_children(), and DataGraphTraverser::traverse().

virtual void GraphicsStateGuardianBase::issue_alpha_test const AlphaTestAttrib  )  [inline, virtual, inherited]
 

Reimplemented in DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 186 of file graphicsStateGuardianBase.h.

Referenced by AlphaTestAttrib::make().

void GraphicsStateGuardian::issue_clip_plane const ClipPlaneAttrib attrib  )  [virtual]
 

This is fundametically similar to issue_light(), with calls to slot_new_clip_plane(), apply_clip_plane(), and enable_clip_planes(), as appropriate.

Reimplemented from GraphicsStateGuardianBase.

Definition at line 1158 of file graphicsStateGuardian.cxx.

void GraphicsStateGuardian::issue_color const ColorAttrib attrib  )  [virtual]
 

This method is defined in the base class because it is likely that this functionality will be used for all (or at least most) kinds of GraphicsStateGuardians--it's not specific to any one rendering backend.

The ColorAttribute just changes the interpretation of the color on the vertices, and fiddles with _vertex_colors_enabled, etc.

Reimplemented from GraphicsStateGuardianBase.

Definition at line 905 of file graphicsStateGuardian.cxx.

References _clip_plane_info, _clip_planes_enabled, _clip_planes_enabled_this_frame, enable_clip_plane(), enable_clip_planes(), ClipPlaneAttrib::get_num_planes(), ClipPlaneAttrib::get_operation(), ClipPlaneAttrib::get_plane(), ClipPlaneAttrib::has_plane(), nassertv, NULL, ClipPlaneAttrib::O_remove, and slot_new_clip_plane().

Referenced by GLGraphicsStateGuardian::draw_point(), GLGraphicsStateGuardian::draw_quad(), and CRGraphicsStateGuardian::prepare_lens().

void GraphicsStateGuardian::issue_color_blend const ColorBlendAttrib attrib  )  [virtual]
 

Reimplemented from GraphicsStateGuardianBase.

Definition at line 1140 of file graphicsStateGuardian.cxx.

void GraphicsStateGuardian::issue_color_scale const ColorScaleAttrib attrib  )  [virtual]
 

Reimplemented from GraphicsStateGuardianBase.

Definition at line 868 of file graphicsStateGuardian.cxx.

References end_bind_lights().

void GraphicsStateGuardian::issue_color_write const ColorWriteAttrib attrib  )  [virtual]
 

Reimplemented from GraphicsStateGuardianBase.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 1114 of file graphicsStateGuardian.cxx.

Referenced by GLGraphicsStateGuardian::apply_fog().

virtual void GraphicsStateGuardianBase::issue_cull_face const CullFaceAttrib  )  [inline, virtual, inherited]
 

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 198 of file graphicsStateGuardianBase.h.

Referenced by CullFaceAttrib::get_effective_mode().

virtual void GraphicsStateGuardianBase::issue_depth_offset const DepthOffsetAttrib  )  [inline, virtual, inherited]
 

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 201 of file graphicsStateGuardianBase.h.

Referenced by DepthOffsetAttrib::make().

virtual void GraphicsStateGuardianBase::issue_depth_test const DepthTestAttrib  )  [inline, virtual, inherited]
 

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 196 of file graphicsStateGuardianBase.h.

Referenced by DepthTestAttrib::make().

virtual void GraphicsStateGuardianBase::issue_depth_write const DepthWriteAttrib  )  [inline, virtual, inherited]
 

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 197 of file graphicsStateGuardianBase.h.

Referenced by DepthWriteAttrib::make().

virtual void GraphicsStateGuardianBase::issue_fog const FogAttrib  )  [inline, virtual, inherited]
 

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 200 of file graphicsStateGuardianBase.h.

Referenced by FogAttrib::make_off().

void GraphicsStateGuardian::issue_light const LightAttrib attrib  )  [virtual]
 

The default implementation of issue_light() assumes we have a limited number of hardware lights available.

This function assigns each light to a different hardware light id, trying to keep each light associated with the same id where possible, but reusing id's when necessary. When it is no longer possible to reuse existing id's (e.g. all id's are in use), slot_new_light() is called to prepare the next sequential light id.

It will call apply_light() each time a light is assigned to a particular id for the first time in a given frame, and it will subsequently call enable_light() to enable or disable each light as the frame is rendered, as well as enable_lighting() to enable or disable overall lighting.

If this model of hardware lights with id's does not apply to a particular graphics engine, it should override this function to do something more appropriate instead.

Reimplemented from GraphicsStateGuardianBase.

Definition at line 983 of file graphicsStateGuardian.cxx.

virtual void GraphicsStateGuardianBase::issue_material const MaterialAttrib  )  [inline, virtual, inherited]
 

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 192 of file graphicsStateGuardianBase.h.

Referenced by MaterialAttrib::make_off().

virtual void GraphicsStateGuardianBase::issue_render_mode const RenderModeAttrib  )  [inline, virtual, inherited]
 

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 193 of file graphicsStateGuardianBase.h.

Referenced by RenderModeAttrib::make().

virtual void GraphicsStateGuardianBase::issue_stencil const StencilAttrib *   )  [inline, virtual, inherited]
 

Definition at line 204 of file graphicsStateGuardianBase.h.

virtual void GraphicsStateGuardianBase::issue_tex_gen const TexGenAttrib *   )  [inline, virtual, inherited]
 

Definition at line 203 of file graphicsStateGuardianBase.h.

virtual void GraphicsStateGuardianBase::issue_tex_matrix const TexMatrixAttrib  )  [inline, virtual, inherited]
 

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 189 of file graphicsStateGuardianBase.h.

Referenced by TexMatrixAttrib::make().

virtual void GraphicsStateGuardianBase::issue_texture const TextureAttrib  )  [inline, virtual, inherited]
 

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 190 of file graphicsStateGuardianBase.h.

Referenced by TextureAttrib::make_off().

virtual void GraphicsStateGuardianBase::issue_texture_apply const TextureApplyAttrib  )  [inline, virtual, inherited]
 

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 194 of file graphicsStateGuardianBase.h.

Referenced by TextureApplyAttrib::make().

void GraphicsStateGuardian::issue_transform const TransformState transform  )  [virtual]
 

Sends the indicated transform matrix to the graphics API to be applied to future vertices.

Reimplemented from GraphicsStateGuardianBase.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 857 of file graphicsStateGuardian.cxx.

void GraphicsStateGuardian::issue_transparency const TransparencyAttrib attrib  )  [virtual]
 

Reimplemented from GraphicsStateGuardianBase.

Definition at line 1127 of file graphicsStateGuardian.cxx.

bool GraphicsStateGuardian::mark_prepared_geom GeomContext gc  )  [protected]
 

This is intended to be called from within prepare_geom().

It adds the indicated GeomContext pointer to the _prepared_geoms set, and returns true if it was successfully added (i.e. it was not already in the set).

Definition at line 1671 of file graphicsStateGuardian.cxx.

bool GraphicsStateGuardian::mark_prepared_geom_node GeomNodeContext gnc  )  [protected]
 

This is intended to be called from within prepare_geom_node().

It adds the indicated GeomNodeContext pointer to the _prepared_geom_nodes set, and returns true if it was successfully added (i.e. it was not already in the set).

Definition at line 1725 of file graphicsStateGuardian.cxx.

bool GraphicsStateGuardian::mark_prepared_texture TextureContext tc  )  [protected]
 

This is intended to be called from within prepare_texture().

It adds the indicated TextureContext pointer to the _prepared_textures set, and returns true if it was successfully added (i.e. it was not already in the set).

Definition at line 1617 of file graphicsStateGuardian.cxx.

Referenced by RIBGraphicsStateGuardian::draw_sprite().

void GraphicsStateGuardian::modify_state const RenderState state  )  [inline]
 

Applies the attributes indicated in the state set to the current state, and issues the changes to the graphics hardware.

Any transitions not mentioned are left unchanged.

Definition at line 187 of file graphicsStateGuardian.I.

Referenced by GLGraphicsStateGuardian::copy_texture(), and set_depth_clear_value().

void GraphicsStateGuardian::pop_display_region DisplayRegionStack node  )  [inline]
 

Restores the display region previously in effect, before the matching call to push_display_region().

The newly-restored display region will not actually be made active for rendering until the next call to prepare_display_region(). This is a state-changing optimization.

Definition at line 347 of file graphicsStateGuardian.I.

References _current_lens, and prepare_lens().

Referenced by set_scene().

void GraphicsStateGuardian::pop_frame_buffer FrameBufferStack node  )  [inline]
 

Restores the contents of the frame buffer as saved by a previous call to push_frame_buffer().

Definition at line 392 of file graphicsStateGuardian.I.

References _clip_plane_info, INLINE, nassertr, and NULL.

void GraphicsStateGuardian::pop_lens LensStack stack  )  [inline]
 

Restores the lens previously in effect, before the matching call to push_lens().

The newly-restored lens will not actually be made active for rendering until the next call to prepare_lens(). This is a state-changing optimization.

Definition at line 453 of file graphicsStateGuardian.I.

virtual void GraphicsStateGuardian::prepare_display_region  )  [pure virtual]
 

Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian.

Referenced by set_scene().

GeomContext * GraphicsStateGuardian::prepare_geom Geom geom  )  [virtual]
 

Prepares the indicated Geom for retained-mode rendering.

The value returned by this function will be passed back into future calls to draw_tristrip(), etc., along with the Geom pointer.

Implements GraphicsStateGuardianBase.

Definition at line 365 of file graphicsStateGuardian.cxx.

References RenderBuffer::T_depth.

GeomNodeContext * GraphicsStateGuardian::prepare_geom_node GeomNode node  )  [virtual]
 

Prepares the indicated GeomNode for retained-mode rendering.

If this function returns non-NULL, the value returned will be passed back to a future call to draw_geom_node(), which is expected to draw the contents of the node.

Implements GraphicsStateGuardianBase.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 309 of file graphicsStateGuardian.cxx.

bool GraphicsStateGuardian::prepare_lens  )  [virtual]
 

Makes the current lens (whichever lens was most recently specified with push_lens()) active, so that it will transform future rendered geometry.

Normally this is only called from the draw process, and usually it is called immediately after a call to push_lens().

The return value is true if the lens is acceptable, false if it is not.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 487 of file graphicsStateGuardian.cxx.

Referenced by pop_display_region().

TextureContext * GraphicsStateGuardian::prepare_texture Texture tex  )  [virtual]
 

Prepares the indicated texture for retained-mode rendering.

In the future, this texture may be applied simply by calling apply_texture() with the value returned by this function.

Implements GraphicsStateGuardianBase.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian.

Definition at line 254 of file graphicsStateGuardian.cxx.

References NULL.

DisplayRegionStack GraphicsStateGuardian::push_display_region const DisplayRegion dr  )  [inline]
 

Saves the current display region information and sets up a new display region for rendering.

The return value from this function must eventually be passed to a matching pop_display_region() call.

The new display region will not actually be made active for rendering until the next call to prepare_display_region(). This is a state-changing optimization.

Definition at line 317 of file graphicsStateGuardian.I.

References _current_lens, _lens_stack_level, LensStack::_stack_level, INLINE, and nassertv.

Referenced by GLGraphicsStateGuardian::bind_texture(), and set_scene().

FrameBufferStack GraphicsStateGuardian::push_frame_buffer const RenderBuffer buffer,
const DisplayRegion dr
[inline]
 

Saves the contents of the frame buffer (within the indicated display region only) so that rendering may be performed (for instance, to render a partial in a multipass algorithm) and the frame buffer later restored via a matching call to pop_frame_buffer().

Definition at line 372 of file graphicsStateGuardian.I.

References _coordinate_system, CoordinateSystem, and INLINE.

Referenced by GLGraphicsStateGuardian::release_geom_node(), and CRGraphicsStateGuardian::release_geom_node().

LensStack GraphicsStateGuardian::push_lens const Lens lens  )  [inline]
 

Saves the current lens information and sets up a new lens for rendering.

The return value from this function must eventually be passed to a matching pop_lens() call.

The new lens will not actually be made active for rendering until the next call to prepare_lens(). This is a state-changing optimization.

Definition at line 423 of file graphicsStateGuardian.I.

void GraphicsStateGuardian::record_state_change TypeHandle   )  [inline, protected]
 

Definition at line 229 of file graphicsStateGuardian.h.

References Colorf.

int ReferenceCount::ref  )  const [inline, inherited]
 

Explicitly increments the reference count.

User code should avoid using ref() and unref() directly, which can result in missed reference counts. Instead, let a PointerTo object manage the reference counting automatically.

This function is const, even though it changes the object, because generally fiddling with an object's reference count isn't considered part of fiddling with the object. An object might be const in other ways, but we still need to accurately count the number of references to it.

The return value is the new reference count.

Definition at line 225 of file referenceCount.I.

Referenced by ClientDevice::ClientDevice(), EggGroupNode::find_textures(), EggGroupNode::r_apply_texmats(), EggGroupNode::r_flatten_transforms(), and EggGroupNode::reverse_vertex_ordering().

void GraphicsStateGuardian::release_all_geoms  ) 
 

Frees the resources for all Geoms and GeomNodes associated with this GSG.

Warning! This may make the Geoms unrenderable, if the Panda-level information has been deleted.

Definition at line 218 of file graphicsStateGuardian.cxx.

References NULL.

void GraphicsStateGuardian::release_all_textures  ) 
 

Frees the resources for all textures associated with this GSG.

Definition at line 185 of file graphicsStateGuardian.cxx.

References _prepared_geom_nodes, _prepared_geoms, nassertv, release_geom(), and release_geom_node().

void GraphicsStateGuardian::release_geom GeomContext gc  )  [virtual]
 

Frees the resources previously allocated via a call to prepare_geom(), including deleting the GeomContext itself, if necessary.

Implements GraphicsStateGuardianBase.

Definition at line 382 of file graphicsStateGuardian.cxx.

Referenced by release_all_textures().

void GraphicsStateGuardian::release_geom_node GeomNodeContext gnc  )  [virtual]
 

Frees the resources previously allocated via a call to prepare_geom_node(), including deleting the GeomNodeContext itself, if necessary.

Implements GraphicsStateGuardianBase.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 347 of file graphicsStateGuardian.cxx.

References _depth_clear_value.

Referenced by release_all_textures().

void GraphicsStateGuardian::release_texture TextureContext tc  )  [virtual]
 

Frees the resources previously allocated via a call to prepare_texture(), including deleting the TextureContext itself, if necessary.

Implements GraphicsStateGuardianBase.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian.

Definition at line 289 of file graphicsStateGuardian.cxx.

void GraphicsStateGuardian::reset  )  [virtual]
 

Resets all internal state as if the gsg were newly created.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian.

Definition at line 120 of file graphicsStateGuardian.cxx.

References _accum_clear_value, _clear_buffer_type, _clip_planes_enabled, _clip_planes_enabled_this_frame, _color_blend_mode, _color_clear_value, _color_transform_enabled, _color_write_mode, _current_color_offset, _current_color_scale, _depth_clear_value, _has_scene_graph_color, _lighting_enabled, _lighting_enabled_this_frame, _normals_enabled, _scene_graph_color_stale, _stencil_clear_value, _transparency_mode, _vertex_colors_enabled, TransparencyAttrib::M_none, ColorBlendAttrib::M_none, ColorWriteAttrib::M_on, RenderBuffer::T_back, and RenderBuffer::T_depth.

Referenced by get_scene(), and CRGraphicsStateGuardian::~CRGraphicsStateGuardian().

void GraphicsStateGuardian::reset_if_new  )  [inline]
 

Calls reset() to initialize the GSG, but only if it hasn't been called yet.

Definition at line 164 of file graphicsStateGuardian.I.

References RenderState::write().

Referenced by glxGraphicsWindow::~glxGraphicsWindow(), and wglGraphicsWindow::~wglGraphicsWindow().

virtual void GraphicsStateGuardian::restore_frame_buffer SavedFrameBuffer frame_buffer  )  [protected, pure virtual]
 

Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian.

virtual PointerTo< SavedFrameBuffer > GraphicsStateGuardian::save_frame_buffer const RenderBuffer buffer,
ConstPointerTo< DisplayRegion dr
[protected, pure virtual]
 

Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Referenced by get_current_display_region().

void GraphicsStateGuardian::set_ambient_light const Colorf color  )  [protected, virtual]
 

Intended to be overridden by a derived class to indicate the color of the ambient light that should be in effect.

This is called by issue_light() after all other lights have been enabled or disabled.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 1385 of file graphicsStateGuardian.cxx.

References _active_texusage_pcollector, PStatCollector::clear_level(), and PStatClient::is_connected().

void GraphicsStateGuardian::set_blend_mode ColorWriteAttrib::Mode  color_write_mode,
ColorBlendAttrib::Mode  color_blend_mode,
TransparencyAttrib::Mode  transparency_mode
[protected, virtual]
 

Called after any of these three blending states have changed; this function is responsible for setting the appropriate color blending mode based on the given properties.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 1596 of file graphicsStateGuardian.cxx.

void GraphicsStateGuardian::set_color_clear_value const Colorf value  )  [virtual]
 

Sets the color that the next do_clear() command will set the color buffer to.

Reimplemented in DXGraphicsStateGuardian7, and DXGraphicsStateGuardian8.

Definition at line 413 of file graphicsStateGuardian.cxx.

References _light_info, and enable_light().

void GraphicsStateGuardian::set_coordinate_system CoordinateSystem  cs  )  [inline]
 

Changes the coordinate system in effect on this particular gsg.

Normally, this will be the default coordinate system, but it might be set differently at runtime.

Definition at line 502 of file graphicsStateGuardian.I.

void GraphicsStateGuardian::set_depth_clear_value const float  value  )  [virtual]
 

Sets the depth that the next do_clear() command will set the depth buffer to.

Definition at line 428 of file graphicsStateGuardian.cxx.

References _clip_plane_info, _clip_planes_enabled_this_frame, enable_clip_plane(), get_unclipped_state(), modify_state(), and NULL.

bool GraphicsStateGuardian::set_lens const Lens lens  )  [inline]
 

Sets a new lens for rendering without bothering to push or pop.

This replaces the lens most recently pushed, if any. There is no need to call prepare_lens() following this call.

The return value is true if the lens is acceptable, false if it is not.

Definition at line 482 of file graphicsStateGuardian.I.

void GraphicsStateGuardian::set_scene SceneSetup scene_setup  )  [inline]
 

Sets the SceneSetup object that indicates the initial camera position, etc.

This must be called before traversal begins.

Definition at line 110 of file graphicsStateGuardian.I.

References clear(), pop_display_region(), prepare_display_region(), and push_display_region().

void GraphicsStateGuardian::set_state const RenderState state  )  [inline]
 

Applies the attributes indicated in the state set to the current state, and issues the changes to the graphics hardware.

The state is taken to be a complete description of what the graphics state should be; any transitions not mentioned are implicitly reset to their initial values.

Definition at line 220 of file graphicsStateGuardian.I.

References _current_display_region, DisplayRegionStack::_display_region, _display_region_stack_level, DisplayRegionStack::_stack_level, and INLINE.

void GraphicsStateGuardian::set_state_and_transform const RenderState state,
const TransformState transform
[virtual]
 

Simultaneously resets the render state and the transform state.

Implements GraphicsStateGuardianBase.

Definition at line 396 of file graphicsStateGuardian.cxx.

References _light_info.

void GraphicsStateGuardian::set_transform const TransformState transform  )  [inline]
 

Sets the world transform that will be applied to subsequent geometry.

This is normally called only during the draw process, immediately before issuing geometry commands.

Definition at line 245 of file graphicsStateGuardian.I.

References _current_display_region, DisplayRegionStack::_display_region, _display_region_stack_level, DisplayRegionStack::_stack_level, INLINE, and nassertv.

bool GraphicsStateGuardian::slot_new_clip_plane int  plane_id  )  [protected, virtual]
 

This will be called by the base class before a particular clip plane id will be used for the first time.

It is intended to allow the derived class to reserve any additional resources, if required, for the new clip plane; and also to indicate whether the hardware supports this many simultaneous clipping planes.

The return value should be true if the additional plane is supported, or false if it is not.

Reimplemented in DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian.

Definition at line 1477 of file graphicsStateGuardian.cxx.

References _active_geom_node_pcollector, and PStatCollector::add_level().

Referenced by issue_color().

bool GraphicsStateGuardian::slot_new_light int  light_id  )  [protected, virtual]
 

This will be called by the base class before a particular light id will be used for the first time.

It is intended to allow the derived class to reserve any additional resources, if required, for the new light; and also to indicate whether the hardware supports this many simultaneous lights.

The return value should be true if the additional light is supported, or false if it is not.

Reimplemented in GLGraphicsStateGuardian.

Definition at line 1348 of file graphicsStateGuardian.cxx.

References _prepared_geom_nodes, _total_geom_node_pcollector, and PStatCollector::sub_level().

void ReferenceCount::test_ref_count_integrity  )  const [inline, inherited]
 

Does some easy checks to make sure that the reference count isn't completely bogus.

Definition at line 328 of file referenceCount.I.

References INLINE.

Referenced by EggNode::determine_bin(), and ReferenceCount::~ReferenceCount().

virtual void GraphicsStateGuardianBase::texture_to_pixel_buffer TextureContext tc,
PixelBuffer pb,
const DisplayRegion dr
[pure virtual, inherited]
 

Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian.

virtual void GraphicsStateGuardianBase::texture_to_pixel_buffer TextureContext tc,
PixelBuffer pb
[pure virtual, inherited]
 

Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian.

Referenced by SomeViz::DisplayTexture(), and BaseViz::DisplayTexture().

void GraphicsStateGuardian::traverse_prepared_textures bool(*  pertex_callbackfn)(TextureContext *, void *),
void *  callback_arg
 

Definition at line 1995 of file graphicsStateGuardian.cxx.

Referenced by DXGraphicsStateGuardian8::slot_new_clip_plane().

bool GraphicsStateGuardian::unmark_prepared_geom GeomContext gc  )  [protected]
 

This is intended to be called from within release_geom().

It removes the indicated GeomContext pointer from the _prepared_geoms set, and returns true if it was successfully removed (i.e. it had been in the set).

Definition at line 1698 of file graphicsStateGuardian.cxx.

bool GraphicsStateGuardian::unmark_prepared_geom_node GeomNodeContext gnc  )  [protected]
 

This is intended to be called from within release_geom_node().

It removes the indicated GeomNodeContext pointer from the _prepared_geom_nodes set, and returns true if it was successfully removed (i.e. it had been in the set).

Definition at line 1752 of file graphicsStateGuardian.cxx.

bool GraphicsStateGuardian::unmark_prepared_texture TextureContext tc  )  [protected]
 

This is intended to be called from within release_texture().

It removes the indicated TextureContext pointer from the _prepared_textures set, and returns true if it was successfully removed (i.e. it had been in the set).

Definition at line 1644 of file graphicsStateGuardian.cxx.

int ReferenceCount::unref  )  const [inline, inherited]
 

Explicitly decrements the reference count.

Note that the object will not be implicitly deleted by unref() simply because the reference count drops to zero. (Having a member function delete itself is problematic; plus, we don't have a virtual destructor anyway.) However, see the helper function unref_delete().

User code should avoid using ref() and unref() directly, which can result in missed reference counts. Instead, let a PointerTo object manage the reference counting automatically.

This function is const, even though it changes the object, because generally fiddling with an object's reference count isn't considered part of fiddling with the object. An object might be const in other ways, but we still need to accurately count the number of references to it.

The return value is the new reference count.

Definition at line 293 of file referenceCount.I.

References INLINE.

Referenced by RenderState::determine_bin_index(), and RenderEffects::determine_show_bounds().

bool GraphicsStateGuardian::wants_colors void   )  const [virtual]
 

Returns true if the GSG should issue geometry color commands, false otherwise.

Implements GraphicsStateGuardianBase.

Reimplemented in RIBGraphicsStateGuardian.

Definition at line 670 of file graphicsStateGuardian.cxx.

References _color_transform_enabled, _current_color_scale, and CT_scale.

Referenced by GLGraphicsStateGuardian::draw_point(), and GLGraphicsStateGuardian::draw_quad().

bool GraphicsStateGuardian::wants_normals void   )  const [virtual]
 

Implements GraphicsStateGuardianBase.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian.

Definition at line 643 of file graphicsStateGuardian.cxx.

References CoordinateSystem, and CS_default.

bool GraphicsStateGuardian::wants_texcoords void   )  const [virtual]
 

Implements GraphicsStateGuardianBase.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian.

Definition at line 655 of file graphicsStateGuardian.cxx.


Friends And Related Function Documentation

friend class GraphicsEngine [friend]
 

Definition at line 374 of file graphicsStateGuardian.h.

friend class GraphicsPipe [friend]
 

Definition at line 372 of file graphicsStateGuardian.h.

friend class GraphicsWindow [friend]
 

Definition at line 373 of file graphicsStateGuardian.h.


Member Data Documentation

Colorf GraphicsStateGuardian::_accum_clear_value [protected]
 

Definition at line 246 of file graphicsStateGuardian.h.

Referenced by reset().

PStatCollector GraphicsStateGuardian::_active_geom_node_pcollector [static]
 

Referenced by enable_light(), and slot_new_clip_plane().

PStatCollector GraphicsStateGuardian::_active_geom_pcollector [static]
 

Referenced by enable_light(), and end_bind_lights().

PStatCollector GraphicsStateGuardian::_active_texusage_pcollector [static]
 

Referenced by set_ambient_light().

int GraphicsStateGuardian::_buffer_mask [protected]
 

Definition at line 242 of file graphicsStateGuardian.h.

Referenced by DXGraphicsStateGuardian7::DXGraphicsStateGuardian7(), GLGraphicsStateGuardian::reset(), CRGraphicsStateGuardian::reset(), DXGraphicsStateGuardian8::reset_panda_gsg(), CRGraphicsStateGuardian::~CRGraphicsStateGuardian(), GLGraphicsStateGuardian::~GLGraphicsStateGuardian(), and ~GraphicsStateGuardian().

int GraphicsStateGuardian::_clear_buffer_type [protected]
 

Definition at line 247 of file graphicsStateGuardian.h.

Referenced by reset().

pvector<ClipPlaneInfo> GraphicsStateGuardian::_clip_plane_info [private]
 

Definition at line 334 of file graphicsStateGuardian.h.

Referenced by issue_color(), pop_frame_buffer(), and set_depth_clear_value().

bool GraphicsStateGuardian::_clip_planes_enabled [protected]
 

Definition at line 266 of file graphicsStateGuardian.h.

Referenced by issue_color(), and reset().

bool GraphicsStateGuardian::_clip_planes_enabled_this_frame [private]
 

Definition at line 335 of file graphicsStateGuardian.h.

Referenced by issue_color(), reset(), and set_depth_clear_value().

bool GraphicsStateGuardian::_closing_gsg [protected]
 

Definition at line 281 of file graphicsStateGuardian.h.

Referenced by GraphicsStateGuardian(), and GLGraphicsStateGuardian::prepare_texture().

ColorBlendAttrib::Mode GraphicsStateGuardian::_color_blend_mode [protected]
 

Definition at line 277 of file graphicsStateGuardian.h.

Referenced by DXGraphicsStateGuardian8::enable_blend(), and reset().

Colorf GraphicsStateGuardian::_color_clear_value [protected]
 

Definition at line 243 of file graphicsStateGuardian.h.

Referenced by reset().

int GraphicsStateGuardian::_color_transform_enabled [protected]
 

Definition at line 272 of file graphicsStateGuardian.h.

Referenced by GLGraphicsStateGuardian::draw_point(), DXGraphicsStateGuardian7::draw_prim_setup(), GLGraphicsStateGuardian::draw_quad(), CRGraphicsStateGuardian::prepare_lens(), reset(), DXGraphicsStateGuardian8::transform_color(), and wants_colors().

ColorWriteAttrib::Mode GraphicsStateGuardian::_color_write_mode [protected]
 

Definition at line 276 of file graphicsStateGuardian.h.

Referenced by DXGraphicsStateGuardian8::enable_blend(), and reset().

CoordinateSystem GraphicsStateGuardian::_coordinate_system [protected]
 

Definition at line 259 of file graphicsStateGuardian.h.

Referenced by push_frame_buffer().

LVecBase4f GraphicsStateGuardian::_current_color_offset [protected]
 

Definition at line 273 of file graphicsStateGuardian.h.

Referenced by reset().

LVecBase4f GraphicsStateGuardian::_current_color_scale [protected]
 

Definition at line 274 of file graphicsStateGuardian.h.

Referenced by reset(), and wants_colors().

ConstPointerTo< DisplayRegion > GraphicsStateGuardian::_current_display_region [protected]
 

Definition at line 253 of file graphicsStateGuardian.h.

Referenced by DXGraphicsStateGuardian8::do_clear(), set_state(), and set_transform().

ConstPointerTo< Lens > GraphicsStateGuardian::_current_lens [protected]
 

Definition at line 254 of file graphicsStateGuardian.h.

Referenced by pop_display_region(), GLGraphicsStateGuardian::prepare_display_region(), CRGraphicsStateGuardian::prepare_display_region(), and push_display_region().

float GraphicsStateGuardian::_depth_clear_value [protected]
 

Definition at line 244 of file graphicsStateGuardian.h.

Referenced by release_geom_node(), reset(), and DXGraphicsStateGuardian8::support_overlay_window().

int GraphicsStateGuardian::_display_region_stack_level [protected]
 

Definition at line 249 of file graphicsStateGuardian.h.

Referenced by set_state(), set_transform(), and ~GraphicsStateGuardian().

PStatCollector GraphicsStateGuardian::_draw_primitive_pcollector [static]
 

Referenced by GLGraphicsStateGuardian::draw_point(), DXGraphicsStateGuardian8::draw_point(), DXGraphicsStateGuardian7::draw_prim_inner_loop_coordtexonly(), GLGraphicsStateGuardian::draw_quad(), GLGraphicsStateGuardian::draw_sphere(), GLGraphicsStateGuardian::prepare_geom_node(), and CRGraphicsStateGuardian::prepare_lens().

int GraphicsStateGuardian::_frame_buffer_stack_level [protected]
 

Definition at line 250 of file graphicsStateGuardian.h.

Referenced by get_current_display_region(), and ~GraphicsStateGuardian().

PStatCollector GraphicsStateGuardian::_frustum_cull_transforms_pcollector [static]
 

Referenced by enable_light().

PStatCollector GraphicsStateGuardian::_frustum_cull_volumes_pcollector [static]
 

Referenced by enable_light().

PStatCollector GraphicsStateGuardian::_geom_nodes_pcollector [static]
 

Referenced by enable_light().

bool GraphicsStateGuardian::_has_scene_graph_color [protected]
 

Definition at line 262 of file graphicsStateGuardian.h.

Referenced by begin_decal_base_first(), depth_offset_decals(), DXGraphicsStateGuardian8::dx_init(), and reset().

int GraphicsStateGuardian::_lens_stack_level [protected]
 

Definition at line 251 of file graphicsStateGuardian.h.

Referenced by push_display_region(), and ~GraphicsStateGuardian().

pvector<LightInfo> GraphicsStateGuardian::_light_info [private]
 

Definition at line 323 of file graphicsStateGuardian.h.

Referenced by begin_decal_base_second(), begin_decal_nested(), finish_decal(), set_color_clear_value(), and set_state_and_transform().

bool GraphicsStateGuardian::_lighting_enabled [protected]
 

Definition at line 265 of file graphicsStateGuardian.h.

Referenced by begin_decal_nested(), and reset().

bool GraphicsStateGuardian::_lighting_enabled_this_frame [private]
 

Definition at line 324 of file graphicsStateGuardian.h.

Referenced by begin_decal_nested(), and reset().

bool GraphicsStateGuardian::_needs_reset [protected]
 

Definition at line 280 of file graphicsStateGuardian.h.

Referenced by GraphicsStateGuardian(), and ~GraphicsStateGuardian().

PStatCollector GraphicsStateGuardian::_nodes_pcollector [static]
 

Referenced by enable_light().

bool GraphicsStateGuardian::_normals_enabled [protected]
 

Definition at line 257 of file graphicsStateGuardian.h.

Referenced by DXGraphicsStateGuardian8::dx_init(), and reset().

PointerTo< GraphicsPipe > GraphicsStateGuardian::_pipe [private]
 

Definition at line 347 of file graphicsStateGuardian.h.

GeomNodes GraphicsStateGuardian::_prepared_geom_nodes [private]
 

Definition at line 344 of file graphicsStateGuardian.h.

Referenced by bind_light(), release_all_textures(), and slot_new_light().

Geoms GraphicsStateGuardian::_prepared_geoms [private]
 

Definition at line 342 of file graphicsStateGuardian.h.

Referenced by bind_light(), and release_all_textures().

Textures GraphicsStateGuardian::_prepared_textures [private]
 

Definition at line 340 of file graphicsStateGuardian.h.

Referenced by get_render_buffer().

FrameBufferProperties GraphicsStateGuardian::_properties [private]
 

Definition at line 346 of file graphicsStateGuardian.h.

PStatCollector GraphicsStateGuardian::_render_states_pcollector [static]
 

Referenced by enable_light().

PStatCollector GraphicsStateGuardian::_render_states_unused_pcollector [static]
 

Referenced by enable_light().

Colorf GraphicsStateGuardian::_scene_graph_color [protected]
 

Definition at line 261 of file graphicsStateGuardian.h.

Referenced by depth_offset_decals(), DXGraphicsStateGuardian7::draw_prim_setup(), CRGraphicsStateGuardian::enable_polygon_offset(), and DXGraphicsStateGuardian8::transform_color().

bool GraphicsStateGuardian::_scene_graph_color_stale [protected]
 

Definition at line 263 of file graphicsStateGuardian.h.

Referenced by begin_decal_base_first(), depth_offset_decals(), DXGraphicsStateGuardian7::draw_prim_setup(), CRGraphicsStateGuardian::enable_polygon_offset(), reset(), and DXGraphicsStateGuardian8::transform_color().

PointerTo< SceneSetup > GraphicsStateGuardian::_scene_setup [protected]
 

Definition at line 237 of file graphicsStateGuardian.h.

Referenced by CRGraphicsStateGuardian::get_internal_image_format(), get_pipe(), get_threading_model(), GLGraphicsStateGuardian::issue_alpha_test(), CRGraphicsStateGuardian::issue_color_write(), GLGraphicsStateGuardian::issue_cull_face(), DXGraphicsStateGuardian8::issue_depth_test(), DXGraphicsStateGuardian8::issue_depth_write(), CRGraphicsStateGuardian::issue_depth_write(), CRGraphicsStateGuardian::issue_fog(), and DXGraphicsStateGuardian8::issue_render_mode().

PStatCollector GraphicsStateGuardian::_set_state_pcollector [static]
 

ConstPointerTo< RenderState > GraphicsStateGuardian::_state [protected]
 

Definition at line 239 of file graphicsStateGuardian.h.

Referenced by clear(), GLGraphicsStateGuardian::draw_sprite(), DXGraphicsStateGuardian8::draw_sprite(), DXGraphicsStateGuardian7::draw_sprite(), RIBGraphicsStateGuardian::reset_file(), and ~GraphicsStateGuardian().

PStatCollector GraphicsStateGuardian::_state_changes_pcollector [static]
 

Referenced by enable_light().

bool GraphicsStateGuardian::_stencil_clear_value [protected]
 

Definition at line 245 of file graphicsStateGuardian.h.

Referenced by reset(), and DXGraphicsStateGuardian8::support_overlay_window().

PStatCollector GraphicsStateGuardian::_texmgrmem_resident_pcollector [static]
 

PStatCollector GraphicsStateGuardian::_texmgrmem_total_pcollector [static]
 

PStatCollector GraphicsStateGuardian::_texture_state_pcollector [static]
 

Referenced by enable_light().

GraphicsThreadingModel GraphicsStateGuardian::_threading_model [private]
 

Definition at line 348 of file graphicsStateGuardian.h.

PStatCollector GraphicsStateGuardian::_total_geom_node_pcollector [static]
 

Referenced by bind_light(), and slot_new_light().

PStatCollector GraphicsStateGuardian::_total_geom_pcollector [static]
 

Referenced by bind_light().

PStatCollector GraphicsStateGuardian::_total_texmem_pcollector [static]
 

PStatCollector GraphicsStateGuardian::_total_texusage_pcollector [static]
 

ConstPointerTo< TransformState > GraphicsStateGuardian::_transform [protected]
 

Definition at line 240 of file graphicsStateGuardian.h.

Referenced by ~GraphicsStateGuardian().

PStatCollector GraphicsStateGuardian::_transform_state_pcollector [static]
 

Referenced by enable_clip_planes(), and enable_light().

PStatCollector GraphicsStateGuardian::_transform_states_pcollector [static]
 

Referenced by enable_light().

PStatCollector GraphicsStateGuardian::_transform_states_unused_pcollector [static]
 

Referenced by enable_light().

TransparencyAttrib::Mode GraphicsStateGuardian::_transparency_mode [protected]
 

Definition at line 278 of file graphicsStateGuardian.h.

Referenced by DXGraphicsStateGuardian8::enable_blend(), and reset().

TypeHandle GraphicsStateGuardian::_type_handle [static, private]
 

Reimplemented from GraphicsStateGuardianBase.

Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, glxGraphicsStateGuardian, RIBGraphicsStateGuardian, and wglGraphicsStateGuardian.

Definition at line 79 of file graphicsStateGuardian.cxx.

PStatCollector GraphicsStateGuardian::_used_texmem_pcollector [static]
 

bool GraphicsStateGuardian::_vertex_colors_enabled [protected]
 

Definition at line 264 of file graphicsStateGuardian.h.

Referenced by begin_decal_base_first(), depth_offset_decals(), and reset().

PStatCollector GraphicsStateGuardian::_vertices_other_pcollector [static]
 

Referenced by GLGraphicsStateGuardian::draw_point(), DXGraphicsStateGuardian8::draw_point(), DXGraphicsStateGuardian7::draw_prim_inner_loop_coordtexonly(), enable_light(), CRGraphicsStateGuardian::prepare_lens(), and CRGraphicsStateGuardian::release_texture().

PStatCollector GraphicsStateGuardian::_vertices_pcollector [static]
 

PStatCollector GraphicsStateGuardian::_vertices_tri_pcollector [static]
 

Referenced by enable_light(), and CRGraphicsStateGuardian::release_texture().

PStatCollector GraphicsStateGuardian::_vertices_trifan_pcollector [static]
 

Referenced by enable_light(), and CRGraphicsStateGuardian::release_texture().

PStatCollector GraphicsStateGuardian::_vertices_tristrip_pcollector [static]
 

Referenced by GLGraphicsStateGuardian::draw_quad(), enable_light(), and CRGraphicsStateGuardian::release_texture().


The documentation for this class was generated from the following files:
Generated on Fri May 2 00:51:25 2003 for Panda by doxygen1.3