Encapsulates all the communication with a particular instance of a given rendering backend.
More...
Public Types |
| enum | ShaderModel {
SM_00,
SM_11,
SM_20,
SM_2X,
SM_30,
SM_40
} |
|
typedef bool | TextureCallback (TextureContext *tc, void *callback_arg) |
Public Member Functions |
|
| GraphicsStateGuardian (CoordinateSystem internal_coordinate_system, GraphicsEngine *engine, GraphicsPipe *pipe) |
| virtual bool | begin_draw_primitives (const GeomPipelineReader *geom_reader, const GeomMunger *munger, const GeomVertexDataPipelineReader *data_reader, bool force) |
| | Called before a sequence of draw_primitive() functions are called, this should prepare the vertex data for rendering.
|
| virtual bool | begin_frame (Thread *current_thread) |
| | Called before each frame is rendered, to allow the GSG a chance to do any internal cleanup before beginning the frame.
|
| virtual void | begin_occlusion_query () |
| | Begins a new occlusion query.
|
| 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 | bind_light (PointLight *light_obj, const NodePath &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_obj, const NodePath &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_obj, const NodePath &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 | clear (DrawableRegion *clearable) |
| | Clears the framebuffer within the current DisplayRegion, according to the flags indicated by the given DrawableRegion object.
|
| virtual void | clear_before_callback () |
| | Resets any non-standard graphics state that might give a callback apoplexy.
|
| void | clear_flash_texture () |
| | Resets the "flash texture", so that no textures will flash.
|
| virtual void | clear_state_and_transform () |
| | Forgets the current graphics state and current transform, so that the next call to set_state_and_transform() will have to reload everything.
|
| virtual PN_stdfloat | compute_distance_to (const LPoint3 &point) const |
| | This function may only be called during a render traversal; it will compute the distance to the indicated point, assumed to be in eye coordinates, from the camera plane.
|
|
| CPT (TransformState) get_external_transform() const |
|
| CPT (TransformState) get_internal_transform() const |
|
virtual | CPT (TransformState) calc_projection_mat(const Lens *lens) |
|
virtual | CPT (RenderState) begin_decal_base_first() |
|
virtual | CPT (RenderState) begin_decal_nested() |
|
virtual | CPT (RenderState) begin_decal_base_second() |
| 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.
|
| void | do_issue_clip_plane () |
| | This is fundametically similar to do_issue_light(), with calls to apply_clip_plane() and enable_clip_planes(), as appropriate.
|
| void | do_issue_color () |
| | 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.
|
|
void | do_issue_color_scale () |
| virtual void | do_issue_light () |
| | This implementation of do_issue_light() assumes we have a limited number of hardware lights available.
|
| virtual bool | draw_lines (const GeomPrimitivePipelineReader *reader, bool force) |
| | Draws a series of disconnected line segments.
|
| virtual bool | draw_linestrips (const GeomPrimitivePipelineReader *reader, bool force) |
| | Draws a series of line strips.
|
| virtual bool | draw_points (const GeomPrimitivePipelineReader *reader, bool force) |
| | Draws a series of disconnected points.
|
| virtual bool | draw_triangles (const GeomPrimitivePipelineReader *reader, bool force) |
| | Draws a series of disconnected triangles.
|
| virtual bool | draw_trifans (const GeomPrimitivePipelineReader *reader, bool force) |
| | Draws a series of triangle fans.
|
| virtual bool | draw_tristrips (const GeomPrimitivePipelineReader *reader, bool force) |
| | Draws a series of triangle strips.
|
| virtual void | end_draw_primitives () |
| | Called after a sequence of draw_primitive() functions are called, this should do whatever cleanup is appropriate.
|
| virtual void | end_frame (Thread *current_thread) |
| | 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 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 bool | extract_texture_data (Texture *tex) |
| | This method should only be called by the GraphicsEngine.
|
| const Shader::ShaderPtrData * | fetch_ptr_parameter (const Shader::ShaderPtrSpec &spec) |
| | Return a pointer to struct ShaderPtrData.
|
| const LMatrix4 * | fetch_specified_part (Shader::ShaderMatInput input, InternalName *name, LMatrix4 &t) |
| | See fetch_specified_value.
|
| const LMatrix4 * | fetch_specified_value (Shader::ShaderMatSpec &spec, int altered) |
| | The gsg contains a large number of useful matrices:
|
| virtual void | finish_decal () |
| | Called during draw to clean up after decals are finished.
|
|
virtual TypeHandle | force_init_type () |
| virtual bool | framebuffer_copy_to_ram (Texture *tex, int z, const DisplayRegion *dr, const RenderBuffer &rb) |
| | Copy the pixels within the indicated display region from the framebuffer into system memory, not texture memory.
|
| virtual bool | framebuffer_copy_to_texture (Texture *tex, int z, const DisplayRegion *dr, const RenderBuffer &rb) |
| | Copy the pixels within the indicated display region from the framebuffer into texture memory.
|
| bool | get_alpha_scale_via_texture () const |
| | Returns true if this particular GSG can implement (or would prefer to implement) an alpha scale via an additional Texture layer, or false if we need to actually munge the alpha.
|
| bool | get_alpha_scale_via_texture (const TextureAttrib *tex_attrib) const |
| | This variant of get_alpha_scale_via_texture() answers the question of whether the GSG can implement an alpha scale via an additional Texture layer, considering the current TextureAttrib that will be in effect.
|
| bool | get_color_scale_via_lighting () const |
| | Returns true if this particular GSG can implement (or would prefer to implement) set color and/or color scale using materials and/or ambient lights, or false if we need to actually munge the color.
|
| CoordinateSystem | get_coordinate_system () const |
| | Returns the coordinate system in effect on this particular gsg.
|
| bool | get_copy_texture_inverted () const |
| | Returns true if this particular GSG has the property that any framebuffer-to-texture copy results in a texture that is upside-down and backwards from Panda's usual convention; that is, it copies into a texture from the bottom up instead of from the top down.
|
| virtual const TransformState * | get_cs_transform () const |
| | Returns a transform that converts from the GSG's external coordinate system (as returned by get_coordinate_system()) to its internal coordinate system (as returned by get_internal_coordinate_system()).
|
| const DisplayRegion * | get_current_display_region () const |
| | Returns the current display region being rendered to, as set by the last call to prepare_display_region().
|
| const Lens * | get_current_lens () const |
| | Returns the current lens being used to render, according to the scene specified via the last call to set_scene().
|
| Lens::StereoChannel | get_current_stereo_channel () const |
| | Returns the current stereo channel being rendered to, as set by the last call to prepare_display_region().
|
| int | get_current_tex_view_offset () const |
| | Returns the current tex view offset, as set by the last call to prepare_display_region().
|
| virtual string | get_driver_renderer () |
| | Returns GL_Renderer.
|
| virtual int | get_driver_shader_version_major () |
| | Returns the major version of the shader model.
|
| virtual int | get_driver_shader_version_minor () |
| | Returns the minor version of the shader model.
|
| virtual string | get_driver_vendor () |
| | Returns the vendor of the video card driver.
|
| virtual string | get_driver_version () |
| | Returns driver version.
|
| virtual int | get_driver_version_major () |
| | Returns major version of the video driver.
|
| virtual int | get_driver_version_minor () |
| | Returns the minor version of the video driver.
|
| virtual bool | get_effective_incomplete_render () const |
| | Returns true if the GSG is effectively in incomplete_render state, considering both the GSG's incomplete_render and its current DisplayRegion's incomplete_render flags.
|
| GraphicsEngine * | get_engine () const |
| | Returns the graphics engine that created this GSG.
|
| Texture * | get_flash_texture () const |
| | Returns the current "flash texture", if any, or NULL if none.
|
| PN_stdfloat | get_gamma (PN_stdfloat gamma) |
| | Get the current gamma setting.
|
| virtual bool | get_incomplete_render () const |
| | Returns the incomplete_render flag.
|
| virtual CoordinateSystem | get_internal_coordinate_system () const |
| | Returns the coordinate system used internally by the GSG.
|
| const TransformState * | get_inv_cs_transform () const |
| | Returns the inverse of the transform returned by get_cs_transform().
|
| Loader * | get_loader () const |
| | Returns the Loader object that will be used by this GSG to load textures when necessary, if get_incomplete_render() is true.
|
| int | get_max_2d_texture_array_layers () const |
| | Returns the largest possible number of pages, or -1 if there is no particular limit.
|
| int | get_max_3d_texture_dimension () const |
| | Returns the largest possible texture size in any one dimension for a 3-d texture, or -1 if there is no particular limit.
|
| int | get_max_clip_planes () const |
| | Returns the maximum number of simultaneous clip planes that may be applied to geometry, or -1 if there is no particular limit.
|
| int | get_max_cube_map_dimension () const |
| | Returns the largest possible texture size in any one dimension for a cube map texture, or -1 if there is no particular limit.
|
| int | get_max_lights () const |
| | Returns the maximum number of simultaneous lights that may be rendered on geometry, or -1 if there is no particular limit.
|
| virtual int | get_max_texture_dimension () const |
| | Returns the largest possible texture size in any one dimension supported by the GSG, or -1 if there is no particular limit.
|
| int | get_max_texture_stages () const |
| | Returns the maximum number of simultaneous textures that may be applied to geometry with multitexturing, as supported by this particular GSG.
|
| int | get_max_vertex_transform_indices () const |
| | Returns the maximum number of transforms there may be in a single TransformTable for this graphics hardware.
|
| int | get_max_vertex_transforms () const |
| | Returns the maximum number of transform matrices that may be simultaneously used to transform any one vertex by the graphics hardware.
|
| virtual int | get_max_vertices_per_array () const |
| | Returns the maximum number of vertices that should be put into any one GeomVertexData object for use with this GSG.
|
| virtual int | get_max_vertices_per_primitive () const |
| | Returns the maximum number of vertex indices that should be put into any one GeomPrimitive object for use with this GSG.
|
| int | get_maximum_simultaneous_render_targets () const |
| | Returns the maximum simultaneous render targets supported.
|
| GraphicsPipe * | get_pipe () const |
| | Returns the graphics pipe on which this GSG was created.
|
| virtual PreparedGraphicsObjects * | get_prepared_objects () |
| | Returns the set of texture and geom objects that have been prepared with this GSG (and possibly other GSG's that share objects).
|
| RenderBuffer | get_render_buffer (int buffer_type, const FrameBufferProperties &prop) |
| | Returns a RenderBuffer object suitable for operating on the requested set of buffers.
|
| bool | get_runtime_color_scale () const |
| | Returns true if this particular GSG can implement (or would prefer to implement) set color and/or color scale directly, without requiring any munging of vertices or tricks with lighting.
|
| virtual SceneSetup * | get_scene () const |
| | Returns the current SceneSetup object.
|
| int | get_shader_model () const |
| | Returns the ShaderModel.
|
| virtual int | get_supported_geom_rendering () const |
| | Returns the union of Geom::GeomRendering values that this particular GSG can support directly.
|
| bool | get_supports_2d_texture_array () const |
| | Returns true if this GSG can render 2-d textures array.
|
| bool | get_supports_3d_texture () const |
| | Returns true if this GSG can render 3-d (volumetric) textures.
|
| bool | get_supports_basic_shaders () const |
| | Returns true if this particular GSG supports arbfp1+arbvp1 or above.
|
| virtual bool | get_supports_cg_profile (const string &name) const |
| | Returns true if this particular GSG supports the specified Cg Shader Profile.
|
| bool | get_supports_compressed_texture () const |
| | Returns true if this GSG can compress textures as it loads them into texture memory, and/or accept pre-compressed textures for storing.
|
| virtual bool | get_supports_compressed_texture_format (int compression_mode) const |
| | Returns true if this GSG can accept textures pre-compressed in the indicated format.
|
| bool | get_supports_cube_map () const |
| | Returns true if this GSG can render cube map textures.
|
| bool | get_supports_depth_stencil () const |
| | Returns true if this particular GSG supports textures whose format is F_depth_stencil.
|
| bool | get_supports_depth_texture () const |
| | Returns true if this particular GSG supports textures whose format is F_depth_stencil.
|
| bool | get_supports_generate_mipmap () const |
| | Returns true if this particular GSG can generate mipmaps for a texture automatically, or if they must be generated in software.
|
| bool | get_supports_geometry_instancing () const |
| | Returns true if this particular GSG supports hardware geometry instancing: the ability to render multiple copies of a model.
|
| bool | get_supports_glsl () const |
| | Returns true if this particular GSG supports GLSL shaders.
|
| virtual bool | get_supports_multisample () const |
| | Returns true if this particular GSG supports using the multisample bits to provide antialiasing, and also supports M_multisample and M_multisample_mask transparency modes.
|
| virtual bool | get_supports_occlusion_query () const |
| | Returns true if this GSG supports an occlusion query.
|
| bool | get_supports_shadow_filter () const |
| | Returns true if this particular GSG supports the filter mode FT_shadow for depth textures.
|
| bool | get_supports_stencil () const |
| | Returns true if this particular GSG supports stencil buffers at all.
|
| bool | get_supports_tex_non_pow2 () const |
| | Returns true if this GSG can handle non power of two sized textures.
|
| bool | get_supports_texture_combine () const |
| | Returns true if this particular GSG can use the TextureStage::M_combine mode, which includes all of the texture blend modes specified by set_combine_rgb() and/or set_combine_alpha().
|
| bool | get_supports_texture_dot3 () const |
| | Returns true if this GSG can use the TextureStage::CM_dot3_rgb or CM_dot3_rgba combine modes.
|
| bool | get_supports_texture_saved_result () const |
| | Returns true if this GSG can use the TextureStage::CS_last_saved_result source, which allows you to save the result of a TextureStage and re-use it for multiple inputs.
|
| bool | get_supports_two_sided_stencil () const |
| | Returns true if this particular GSG supports two sided stencil: different stencil settings for the front and back side of the same polygon.
|
| Texture::QualityLevel | get_texture_quality_override () const |
| | Returns the global quality_level override specified by set_texture_quality_override.
|
| const GraphicsThreadingModel & | get_threading_model () const |
| | Returns the threading model that was used to create this GSG.
|
|
virtual TypeHandle | get_type () const |
| bool | is_active () const |
| | Returns the active flag associated with the GraphicsStateGuardian.
|
| bool | is_hardware () const |
| | Returns true if this GSG appears to be hardware-accelerated, or false if it is known to be software only.
|
| bool | is_valid () const |
| | Returns true if the GSG has been correctly initialized within a graphics context, false if there has been some problem or it hasn't been initialized yet.
|
| void | mark_new () |
| | Marks the GSG as "new", so that the next call to reset_if_new() will be effective.
|
| bool | needs_reset () const |
| | Returns true if the gsg is marked as needing a reset.
|
| virtual bool | prefers_triangle_strips () const |
| | Returns true if this GSG strongly prefers triangle strips to individual triangles (such as SGI), or false if it prefers to minimize the number of primitive batches, even at the expense of triangle strips (such as most PC hardware).
|
| virtual void | prepare_display_region (DisplayRegionPipelineReader *dr) |
| | Makes the specified DisplayRegion current.
|
| virtual GeomContext * | prepare_geom (Geom *geom) |
| | Prepares the indicated Geom for retained-mode rendering, by creating whatever structures are necessary in the GSG (for instance, vertex buffers).
|
| virtual IndexBufferContext * | prepare_index_buffer (GeomPrimitive *data) |
| | Prepares the indicated buffer for retained-mode rendering.
|
| virtual bool | prepare_lens () |
| | Makes the current lens (whichever lens was most recently specified with set_scene()) active, so that it will transform future rendered geometry.
|
| virtual ShaderContext * | prepare_shader (Shader *shader) |
| | Compile a vertex/fragment shader body.
|
| virtual TextureContext * | prepare_texture (Texture *tex) |
| | Creates whatever structures the GSG requires to represent the texture internally, and returns a newly-allocated TextureContext object with this data.
|
| virtual VertexBufferContext * | prepare_vertex_buffer (GeomVertexArrayData *data) |
| | Prepares the indicated buffer for retained-mode rendering.
|
|
virtual | PT (OcclusionQueryContext) end_occlusion_query() |
|
virtual | PT (Texture) make_shadow_buffer(const NodePath &light_np |
|
virtual | PT (GeomMunger) get_geom_munger(const RenderState *state |
|
virtual | PT (GeomMunger) make_geom_munger(const RenderState *state |
| void | release_all () |
| | Releases all prepared objects.
|
| int | release_all_geoms () |
| | Frees the resources for all geoms associated with this GSG.
|
| int | release_all_index_buffers () |
| | Frees the resources for all index buffers associated with this GSG.
|
| int | release_all_textures () |
| | Frees the resources for all textures associated with this GSG.
|
| int | release_all_vertex_buffers () |
| | Frees the resources for all vertex buffers associated with this GSG.
|
| virtual void | release_geom (GeomContext *gc) |
| | Frees the resources previously allocated via a call to prepare_geom(), including deleting the GeomContext itself, if it is non-NULL.
|
| virtual void | release_index_buffer (IndexBufferContext *ibc) |
| | Frees the resources previously allocated via a call to prepare_data(), including deleting the IndexBufferContext itself, if necessary.
|
| virtual void | release_shader (ShaderContext *sc) |
| | Releases the resources allocated by prepare_shader.
|
| virtual void | release_texture (TextureContext *tc) |
| | Frees the resources previously allocated via a call to prepare_texture(), including deleting the TextureContext itself, if it is non-NULL.
|
| virtual void | release_vertex_buffer (VertexBufferContext *vbc) |
| | Frees the resources previously allocated via a call to prepare_data(), including deleting the VertexBufferContext itself, if necessary.
|
| virtual void | remove_window (GraphicsOutputBase *window) |
| | This is simply a transparent call to GraphicsEngine::remove_window().
|
| virtual void | reset () |
| | Resets all internal state as if the gsg were newly created.
|
| bool | reset_if_new () |
| | Calls reset() to initialize the GSG, but only if it hasn't been called yet.
|
| virtual void | restore_gamma () |
| | Restore original gamma setting.
|
| void | set_active (bool active) |
| | Sets the active flag associated with the GraphicsStateGuardian.
|
| void | set_coordinate_system (CoordinateSystem cs) |
| | Changes the coordinate system in effect on this particular gsg.
|
| void | set_current_properties (const FrameBufferProperties *properties) |
| | Notifies the gsg that it is about to render into a window/buffer with the given FrameBufferProperties.
|
| void | set_flash_texture (Texture *tex) |
| | Sets the "flash texture".
|
| virtual bool | set_gamma (PN_stdfloat gamma) |
| | Set gamma.
|
| void | set_incomplete_render (bool incomplete_render) |
| | Sets the incomplete_render flag.
|
| void | set_loader (Loader *loader) |
| | Sets the Loader object that will be used by this GSG to load textures when necessary, if get_incomplete_render() is true.
|
| bool | set_scene (SceneSetup *scene_setup) |
| | Sets the SceneSetup object that indicates the initial camera position, etc.
|
| void | set_shader_model (int shader_model) |
| | Sets the ShaderModel.
|
| virtual void | set_state_and_transform (const RenderState *state, const TransformState *transform) |
| | Simultaneously resets the render state and the transform state.
|
| void | set_texture_quality_override (Texture::QualityLevel quality_level) |
| | Specifies the global quality_level to be imposed for all Textures rendered by this GSG.
|
| void | traverse_prepared_textures (TextureCallback *func, void *callback_arg) |
| | Calls the indicated function on all currently-prepared textures, or until the callback function returns false.
|
| virtual bool | update_texture (TextureContext *tc, bool force) |
| | Ensures that the current Texture data is refreshed onto the GSG.
|
Static Public Member Functions |
| static void | create_gamma_table (PN_stdfloat gamma, unsigned short *red_table, unsigned short *green_table, unsigned short *blue_table) |
| | Create a gamma table.
|
| static TextureStage * | get_alpha_scale_texture_stage () |
| | Returns the TextureStage that will be used to apply an alpha scale, if get_alpha_scale_via_texture() returns true.
|
|
static TypeHandle | get_class_type () |
|
static void | init_type () |
Public Attributes |
|
virtual Thread * | current_thread |
|
virtual GraphicsOutputBase * | host |
Static Public Attributes |
|
static PStatCollector | _clear_pcollector |
|
static PStatCollector | _create_index_buffer_pcollector |
|
static PStatCollector | _create_vertex_buffer_pcollector |
|
static PStatCollector | _data_transferred_pcollector |
|
static PStatCollector | _draw_primitive_pcollector |
|
static PStatCollector | _draw_set_state_alpha_test_pcollector |
|
static PStatCollector | _draw_set_state_antialias_pcollector |
|
static PStatCollector | _draw_set_state_blending_pcollector |
|
static PStatCollector | _draw_set_state_clip_plane_pcollector |
|
static PStatCollector | _draw_set_state_color_pcollector |
|
static PStatCollector | _draw_set_state_cull_face_pcollector |
|
static PStatCollector | _draw_set_state_depth_offset_pcollector |
|
static PStatCollector | _draw_set_state_depth_test_pcollector |
|
static PStatCollector | _draw_set_state_depth_write_pcollector |
|
static PStatCollector | _draw_set_state_fog_pcollector |
|
static PStatCollector | _draw_set_state_light_pcollector |
|
static PStatCollector | _draw_set_state_material_pcollector |
|
static PStatCollector | _draw_set_state_pcollector |
|
static PStatCollector | _draw_set_state_render_mode_pcollector |
|
static PStatCollector | _draw_set_state_rescale_normal_pcollector |
|
static PStatCollector | _draw_set_state_scissor_pcollector |
|
static PStatCollector | _draw_set_state_shade_model_pcollector |
|
static PStatCollector | _draw_set_state_shader_parameters_pcollector |
|
static PStatCollector | _draw_set_state_shader_pcollector |
|
static PStatCollector | _draw_set_state_stencil_pcollector |
|
static PStatCollector | _draw_set_state_tex_gen_pcollector |
|
static PStatCollector | _draw_set_state_tex_matrix_pcollector |
|
static PStatCollector | _draw_set_state_texture_pcollector |
|
static PStatCollector | _draw_set_state_transform_pcollector |
|
static PStatCollector | _flush_pcollector |
|
static PStatCollector | _index_buffer_switch_pcollector |
|
static PStatCollector | _load_index_buffer_pcollector |
|
static PStatCollector | _load_texture_pcollector |
|
static PStatCollector | _load_vertex_buffer_pcollector |
|
static PStatCollector | _primitive_batches_other_pcollector |
|
static PStatCollector | _primitive_batches_pcollector |
|
static PStatCollector | _primitive_batches_tri_pcollector |
|
static PStatCollector | _primitive_batches_trifan_pcollector |
|
static PStatCollector | _primitive_batches_tristrip_pcollector |
|
static PStatCollector | _state_pcollector |
|
static PStatCollector | _texmgrmem_resident_pcollector |
|
static PStatCollector | _texmgrmem_total_pcollector |
|
static PStatCollector | _texture_state_pcollector |
|
static PStatCollector | _transform_state_pcollector |
|
static PStatCollector | _vertex_buffer_switch_pcollector |
|
static PStatCollector | _vertices_indexed_tristrip_pcollector |
|
static PStatCollector | _vertices_other_pcollector |
|
static PStatCollector | _vertices_tri_pcollector |
|
static PStatCollector | _vertices_trifan_pcollector |
|
static PStatCollector | _vertices_tristrip_pcollector |
|
static PStatCollector | _wait_occlusion_pcollector |
Protected Member Functions |
| void | async_reload_texture (TextureContext *tc) |
| | Should be called when a texture is encountered that needs to have its RAM image reloaded, and get_incomplete_render() is true.
|
| 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 | 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 | bind_clip_plane (const NodePath &plane, int plane_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 | close_gsg () |
| | This is called by the associated GraphicsWindow when close_window() is called.
|
|
| CPT (TransformState) _projection_mat |
|
| CPT (TransformState) _projection_mat_inv |
|
| CPT (TransformState) _cs_transform |
|
| CPT (TransformState) _inv_cs_transform |
|
| CPT (Lens) _current_lens |
|
| CPT (RenderState) _state_rs |
|
| CPT (RenderState) _target_rs |
|
| CPT (TransformState) _internal_transform |
|
| CPT (ShaderAttrib) _state_shader |
|
| CPT (TextureAttrib) _target_texture |
|
| CPT (TextureAttrib) _state_texture |
|
| CPT (TexGenAttrib) _target_tex_gen |
|
| CPT (TexGenAttrib) _state_tex_gen |
|
| CPT (ShaderAttrib) _target_shader |
|
| CPT (GeomMunger) _munger |
|
| CPT (DisplayRegion) _current_display_region |
| void | determine_light_color_scale () |
| | Called whenever the color or color scale is changed, if _color_scale_via_lighting is true.
|
| void | determine_target_texture () |
| | Assigns _target_texture and _target_tex_gen based on the _target_rs.
|
| 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 | 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_light (int light_id, bool enable) |
| | Intended to be overridden by a derived class to enable the indicated light id.
|
| 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 | 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 | 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().
|
| virtual void | free_pointers () |
| | Frees some memory that was explicitly allocated within the glgsg.
|
| void | panic_deactivate () |
| | This is called internally when it is determined that things are just fubar.
|
|
| PT (SceneSetup) _scene_null |
|
| PT (OcclusionQueryContext) _current_occlusion_query |
|
| PT (Texture) _flash_texture |
|
| PT (Loader) _loader |
|
| PT (PreparedGraphicsObjects) _prepared_objects |
|
| PT (SceneSetup) _scene_setup |
| virtual void | reissue_transforms () |
| | Called by clear_state_and_transform() to ensure that the current modelview and projection matrices are properly loaded in the graphics state, after a callback might have mucked them up.
|
| virtual void | set_ambient_light (const LColor &color) |
| | Intended to be overridden by a derived class to indicate the color of the ambient light that should be in effect.
|
Static Protected Member Functions |
|
static | CPT (RenderState) get_unlit_state() |
|
static | CPT (RenderState) get_unclipped_state() |
|
static | CPT (RenderState) get_untextured_state() |
|
static | PT (TextureStage) _alpha_scale_texture_stage |
Protected Attributes |
|
bool | _active |
|
bool | _alpha_scale_via_texture |
|
int | _auto_detect_shader_model |
|
bool | _clip_planes_enabled |
|
bool | _closing_gsg |
|
bool | _color_blend_involves_color_scale |
|
bool | _color_scale_enabled |
|
bool | _color_scale_via_lighting |
|
unsigned int | _color_write_mask |
|
BitMask32 | _compressed_texture_formats |
|
CoordinateSystem | _coordinate_system |
|
bool | _copy_texture_inverted |
|
LVecBase4 | _current_color_scale |
|
const FrameBufferProperties * | _current_properties |
|
Lens::StereoChannel | _current_stereo_channel |
|
int | _current_tex_view_offset |
const
GeomVertexDataPipelineReader * | _data_reader |
|
bool | _effective_incomplete_render |
|
PN_stdfloat | _gamma |
|
bool | _has_material_force_color |
|
bool | _has_scene_graph_color |
|
bool | _has_texture_alpha_scale |
|
bool | _incomplete_render |
|
CoordinateSystem | _internal_coordinate_system |
|
RenderState::SlotMask | _inv_state_mask |
|
bool | _is_hardware |
|
bool | _is_valid |
|
int | _last_max_stage_index |
|
LVecBase4 | _light_color_scale |
|
bool | _lighting_enabled |
|
LColor | _material_force_color |
|
int | _max_2d_texture_array_layers |
|
int | _max_3d_texture_dimension |
|
int | _max_clip_planes |
|
int | _max_cube_map_dimension |
|
int | _max_lights |
|
int | _max_texture_dimension |
|
int | _max_texture_stages |
|
int | _max_vertex_transform_indices |
|
int | _max_vertex_transforms |
|
int | _max_vertices_per_array |
|
int | _max_vertices_per_primitive |
|
int | _maximum_simultaneous_render_targets |
|
bool | _needs_reset |
|
bool | _prefers_triangle_strips |
|
bool | _runtime_color_scale |
|
LColor | _scene_graph_color |
|
Shader::ShaderCaps | _shader_caps |
|
ShaderGenerator * | _shader_generator |
|
int | _shader_model |
|
RenderState::SlotMask | _state_mask |
|
StencilRenderStates * | _stencil_render_states |
|
int | _stereo_buffer_mask |
|
int | _supported_geom_rendering |
|
bool | _supports_2d_texture_array |
|
bool | _supports_3d_texture |
|
bool | _supports_basic_shaders |
|
bool | _supports_compressed_texture |
|
bool | _supports_cube_map |
|
bool | _supports_depth_stencil |
|
bool | _supports_depth_texture |
|
bool | _supports_framebuffer_blit |
|
bool | _supports_framebuffer_multisample |
|
bool | _supports_generate_mipmap |
|
bool | _supports_geometry_instancing |
|
bool | _supports_glsl |
|
bool | _supports_multisample |
|
bool | _supports_occlusion_query |
|
bool | _supports_shadow_filter |
|
bool | _supports_stencil |
|
bool | _supports_stencil_wrap |
|
bool | _supports_tex_non_pow2 |
|
bool | _supports_texture_combine |
|
bool | _supports_texture_dot3 |
|
bool | _supports_texture_saved_result |
|
bool | _supports_two_sided_stencil |
|
bool | _tex_gen_modifies_mat |
|
bool | _tex_gen_point_sprite |
|
bool | _texture_involves_color_scale |
|
Texture::QualityLevel | _texture_quality_override |
|
bool | _transform_stale |
|
bool | _vertex_colors_enabled |
Friends |
|
class | GraphicsEngine |
|
class | GraphicsPipe |
|
class | GraphicsWindow |