#include <graphicsStateGuardian.h>
Inheritance diagram for GraphicsStateGuardian:
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 FrameBufferProperties & | get_properties () const |
Returns the frame buffer properties requested for this GSG. | |
GraphicsPipe * | get_pipe () const |
Returns the graphics pipe on which this GSG was created. | |
const GraphicsThreadingModel & | get_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. | |
SceneSetup * | get_scene () const |
Returns the SceneSetup object. | |
virtual TextureContext * | prepare_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 GeomNodeContext * | prepare_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 GeomContext * | prepare_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< RenderState > | begin_decal_base_first () |
Called during draw to begin a three-step rendering phase to draw decals. | |
virtual ConstPointerTo< RenderState > | begin_decal_nested () |
Called during draw to begin a three-step rendering phase to draw decals. | |
virtual ConstPointerTo< RenderState > | begin_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 DisplayRegion * | get_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 Lens * | get_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 | |
Light * | get_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(). | |
PlaneNode * | get_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< SavedFrameBuffer > | save_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< RenderState > | get_unlit_state () |
ConstPointerTo< RenderState > | get_unclipped_state () |
ConstPointerTo< RenderState > | get_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 |
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.
|
Definition at line 343 of file graphicsStateGuardian.h. |
|
Definition at line 341 of file graphicsStateGuardian.h. |
|
Definition at line 339 of file graphicsStateGuardian.h. |
|
Definition at line 268 of file graphicsStateGuardian.h. |
|
Definition at line 89 of file graphicsStateGuardian.cxx. References _closing_gsg, and _needs_reset. |
|
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(). |
|
Definition at line 228 of file graphicsStateGuardian.h. Referenced by GLGraphicsStateGuardian::prepare_geom_node(). |
|
Definition at line 227 of file graphicsStateGuardian.h. |
|
Definition at line 226 of file graphicsStateGuardian.h. Referenced by DXGraphicsStateGuardian8::draw_sphere(). |
|
Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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(). |
|
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. |
|
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(). |
|
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(). |
|
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. |
|
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(). |
|
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(). |
|
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(). |
|
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. |
|
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(). |
|
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(). |
|
Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian. |
|
Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian. |
|
Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian. |
|
Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian. |
|
Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian. Referenced by Texture::unprepare(). |
|
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. |
|
Implemented in DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian. |
|
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. |
|
Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian. Referenced by GeomLine::make_copy(). |
|
Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian. Referenced by GeomLinestrip::make_copy(). |
|
Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian. |
|
Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian. |
|
Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian. |
|
Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian. |
|
Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian. Referenced by GeomSprite::make_copy(). |
|
Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian. |
|
Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian. |
|
Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian. |
|
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(). |
|
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(). |
|
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(). |
|
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(). |
|
Definition at line 119 of file graphicsStateGuardian.h. References CoordinateSystem, and INLINE. |
|
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. |
|
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(). |
|
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. |
|
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. |
|
Called during draw to clean up after decals are finished.
Implements GraphicsStateGuardianBase. Definition at line 813 of file graphicsStateGuardian.cxx. References _light_info. |
|
Reimplemented from GraphicsStateGuardianBase. Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, glxGraphicsStateGuardian, RIBGraphicsStateGuardian, and wglGraphicsStateGuardian. Definition at line 367 of file graphicsStateGuardian.h. |
|
Frees some memory that was explicitly allocated within the glgsg.
Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, and GLGraphicsStateGuardian. Definition at line 1773 of file graphicsStateGuardian.cxx. |
|
Reimplemented from GraphicsStateGuardianBase. Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, glxGraphicsStateGuardian, RIBGraphicsStateGuardian, and wglGraphicsStateGuardian. Definition at line 354 of file graphicsStateGuardian.h. |
|
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. |
|
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. |
|
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(). |
|
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. |
|
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. |
|
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. |
|
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(). |
|
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. |
|
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(). |
|
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(). |
|
Returns the SceneSetup object.
Definition at line 123 of file graphicsStateGuardian.I. |
|
Returns the threading model that was used to create this GSG.
Definition at line 93 of file graphicsStateGuardian.I. References _scene_setup, and INLINE. |
|
Reimplemented from GraphicsStateGuardianBase. Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, glxGraphicsStateGuardian, RIBGraphicsStateGuardian, and wglGraphicsStateGuardian. Definition at line 364 of file graphicsStateGuardian.h. |
|
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. |
|
Definition at line 1969 of file graphicsStateGuardian.cxx. Referenced by set_depth_clear_value(). |
|
Definition at line 1952 of file graphicsStateGuardian.cxx. |
|
Reimplemented in GLGraphicsStateGuardian. Definition at line 1986 of file graphicsStateGuardian.cxx. |
|
Definition at line 225 of file graphicsStateGuardian.h. |
|
Reimplemented from GraphicsStateGuardianBase. Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, glxGraphicsStateGuardian, RIBGraphicsStateGuardian, and wglGraphicsStateGuardian. Definition at line 359 of file graphicsStateGuardian.h. |
|
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(). |
|
|
Reimplemented in DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian. Definition at line 186 of file graphicsStateGuardianBase.h. Referenced by AlphaTestAttrib::make(). |
|
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. |
|
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(). |
|
Reimplemented from GraphicsStateGuardianBase. Definition at line 1140 of file graphicsStateGuardian.cxx. |
|
Reimplemented from GraphicsStateGuardianBase. Definition at line 868 of file graphicsStateGuardian.cxx. References end_bind_lights(). |
|
Reimplemented from GraphicsStateGuardianBase. Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian. Definition at line 1114 of file graphicsStateGuardian.cxx. Referenced by GLGraphicsStateGuardian::apply_fog(). |
|
Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian. Definition at line 198 of file graphicsStateGuardianBase.h. Referenced by CullFaceAttrib::get_effective_mode(). |
|
Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian. Definition at line 201 of file graphicsStateGuardianBase.h. Referenced by DepthOffsetAttrib::make(). |
|
Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian. Definition at line 196 of file graphicsStateGuardianBase.h. Referenced by DepthTestAttrib::make(). |
|
Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian. Definition at line 197 of file graphicsStateGuardianBase.h. Referenced by DepthWriteAttrib::make(). |
|
Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian. Definition at line 200 of file graphicsStateGuardianBase.h. Referenced by FogAttrib::make_off(). |
|
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. |
|
Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian. Definition at line 192 of file graphicsStateGuardianBase.h. Referenced by MaterialAttrib::make_off(). |
|
Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian. Definition at line 193 of file graphicsStateGuardianBase.h. Referenced by RenderModeAttrib::make(). |
|
Definition at line 204 of file graphicsStateGuardianBase.h. |
|
Definition at line 203 of file graphicsStateGuardianBase.h. |
|
Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian. Definition at line 189 of file graphicsStateGuardianBase.h. Referenced by TexMatrixAttrib::make(). |
|
Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian. Definition at line 190 of file graphicsStateGuardianBase.h. Referenced by TextureAttrib::make_off(). |
|
Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian. Definition at line 194 of file graphicsStateGuardianBase.h. Referenced by TextureApplyAttrib::make(). |
|
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. |
|
Reimplemented from GraphicsStateGuardianBase. Definition at line 1127 of file graphicsStateGuardian.cxx. |
|
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. |
|
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. |
|
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(). |
|
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(). |
|
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(). |
|
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. |
|
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. |
|
Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian. Referenced by set_scene(). |
|
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. |
|
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. |
|
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(). |
|
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. |
|
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(). |
|
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(). |
|
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. |
|
Definition at line 229 of file graphicsStateGuardian.h. References Colorf. |
|
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(). |
|
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. |
|
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(). |
|
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(). |
|
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(). |
|
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. |
|
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(). |
|
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(). |
|
Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian. |
|
Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, and GLGraphicsStateGuardian. Referenced by get_current_display_region(). |
|
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(). |
|
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. |
|
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(). |
|
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. |
|
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. |
|
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. |
|
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(). |
|
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. |
|
Simultaneously resets the render state and the transform state.
Implements GraphicsStateGuardianBase. Definition at line 396 of file graphicsStateGuardian.cxx. References _light_info. |
|
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. |
|
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(). |
|
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(). |
|
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(). |
|
Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian. |
|
Implemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian. Referenced by SomeViz::DisplayTexture(), and BaseViz::DisplayTexture(). |
|
Definition at line 1995 of file graphicsStateGuardian.cxx. Referenced by DXGraphicsStateGuardian8::slot_new_clip_plane(). |
|
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. |
|
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. |
|
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. |
|
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(). |
|
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(). |
|
Implements GraphicsStateGuardianBase. Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian. Definition at line 643 of file graphicsStateGuardian.cxx. References CoordinateSystem, and CS_default. |
|
Implements GraphicsStateGuardianBase. Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, and RIBGraphicsStateGuardian. Definition at line 655 of file graphicsStateGuardian.cxx. |
|
Definition at line 374 of file graphicsStateGuardian.h. |
|
Definition at line 372 of file graphicsStateGuardian.h. |
|
Definition at line 373 of file graphicsStateGuardian.h. |
|
Definition at line 246 of file graphicsStateGuardian.h. Referenced by reset(). |
|
Referenced by enable_light(), and slot_new_clip_plane(). |
|
Referenced by enable_light(), and end_bind_lights(). |
|
Referenced by set_ambient_light(). |
|
|
Definition at line 247 of file graphicsStateGuardian.h. Referenced by reset(). |
|
Definition at line 334 of file graphicsStateGuardian.h. Referenced by issue_color(), pop_frame_buffer(), and set_depth_clear_value(). |
|
Definition at line 266 of file graphicsStateGuardian.h. Referenced by issue_color(), and reset(). |
|
Definition at line 335 of file graphicsStateGuardian.h. Referenced by issue_color(), reset(), and set_depth_clear_value(). |
|
Definition at line 281 of file graphicsStateGuardian.h. Referenced by GraphicsStateGuardian(), and GLGraphicsStateGuardian::prepare_texture(). |
|
Definition at line 277 of file graphicsStateGuardian.h. Referenced by DXGraphicsStateGuardian8::enable_blend(), and reset(). |
|
Definition at line 243 of file graphicsStateGuardian.h. Referenced by reset(). |
|
|
Definition at line 276 of file graphicsStateGuardian.h. Referenced by DXGraphicsStateGuardian8::enable_blend(), and reset(). |
|
Definition at line 259 of file graphicsStateGuardian.h. Referenced by push_frame_buffer(). |
|
Definition at line 273 of file graphicsStateGuardian.h. Referenced by reset(). |
|
Definition at line 274 of file graphicsStateGuardian.h. Referenced by reset(), and wants_colors(). |
|
Definition at line 253 of file graphicsStateGuardian.h. Referenced by DXGraphicsStateGuardian8::do_clear(), set_state(), and set_transform(). |
|
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(). |
|
Definition at line 244 of file graphicsStateGuardian.h. Referenced by release_geom_node(), reset(), and DXGraphicsStateGuardian8::support_overlay_window(). |
|
Definition at line 249 of file graphicsStateGuardian.h. Referenced by set_state(), set_transform(), and ~GraphicsStateGuardian(). |
|
|
Definition at line 250 of file graphicsStateGuardian.h. Referenced by get_current_display_region(), and ~GraphicsStateGuardian(). |
|
Referenced by enable_light(). |
|
Referenced by enable_light(). |
|
Referenced by enable_light(). |
|
Definition at line 262 of file graphicsStateGuardian.h. Referenced by begin_decal_base_first(), depth_offset_decals(), DXGraphicsStateGuardian8::dx_init(), and reset(). |
|
Definition at line 251 of file graphicsStateGuardian.h. Referenced by push_display_region(), and ~GraphicsStateGuardian(). |
|
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(). |
|
Definition at line 265 of file graphicsStateGuardian.h. Referenced by begin_decal_nested(), and reset(). |
|
Definition at line 324 of file graphicsStateGuardian.h. Referenced by begin_decal_nested(), and reset(). |
|
Definition at line 280 of file graphicsStateGuardian.h. Referenced by GraphicsStateGuardian(), and ~GraphicsStateGuardian(). |
|
Referenced by enable_light(). |
|
Definition at line 257 of file graphicsStateGuardian.h. Referenced by DXGraphicsStateGuardian8::dx_init(), and reset(). |
|
Definition at line 347 of file graphicsStateGuardian.h. |
|
Definition at line 344 of file graphicsStateGuardian.h. Referenced by bind_light(), release_all_textures(), and slot_new_light(). |
|
Definition at line 342 of file graphicsStateGuardian.h. Referenced by bind_light(), and release_all_textures(). |
|
Definition at line 340 of file graphicsStateGuardian.h. Referenced by get_render_buffer(). |
|
Definition at line 346 of file graphicsStateGuardian.h. |
|
Referenced by enable_light(). |
|
Referenced by enable_light(). |
|
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(). |
|
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(). |
|
|
|
|
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(). |
|
Referenced by enable_light(). |
|
Definition at line 245 of file graphicsStateGuardian.h. Referenced by reset(), and DXGraphicsStateGuardian8::support_overlay_window(). |
|
|
|
|
|
Referenced by enable_light(). |
|
Definition at line 348 of file graphicsStateGuardian.h. |
|
Referenced by bind_light(), and slot_new_light(). |
|
Referenced by bind_light(). |
|
|
|
|
|
Definition at line 240 of file graphicsStateGuardian.h. Referenced by ~GraphicsStateGuardian(). |
|
Referenced by enable_clip_planes(), and enable_light(). |
|
Referenced by enable_light(). |
|
Referenced by enable_light(). |
|
Definition at line 278 of file graphicsStateGuardian.h. Referenced by DXGraphicsStateGuardian8::enable_blend(), and reset(). |
|
Reimplemented from GraphicsStateGuardianBase. Reimplemented in CRGraphicsStateGuardian, DXGraphicsStateGuardian7, DXGraphicsStateGuardian8, GLGraphicsStateGuardian, glxGraphicsStateGuardian, RIBGraphicsStateGuardian, and wglGraphicsStateGuardian. Definition at line 79 of file graphicsStateGuardian.cxx. |
|
|
|
Definition at line 264 of file graphicsStateGuardian.h. Referenced by begin_decal_base_first(), depth_offset_decals(), and reset(). |
|
|
|
|
Referenced by enable_light(), and CRGraphicsStateGuardian::release_texture(). |
|
Referenced by enable_light(), and CRGraphicsStateGuardian::release_texture(). |
|
Referenced by GLGraphicsStateGuardian::draw_quad(), enable_light(), and CRGraphicsStateGuardian::release_texture(). |