GraphicsStateGuardian

from panda3d.core import GraphicsStateGuardian
class GraphicsStateGuardian

Bases: GraphicsStateGuardianBase

Encapsulates all the communication with a particular instance of a given rendering backend. Tries to guarantee that redundant state-change requests are not issued (hence “state guardian”).

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

Inheritance diagram

Inheritance diagram of GraphicsStateGuardian

SM00 = 0
SM11 = 1
SM20 = 2
SM2X = 3
SM30 = 4
SM40 = 5
SM50 = 6
SM51 = 7
SM_00 = 0
SM_11 = 1
SM_20 = 2
SM_2X = 3
SM_30 = 4
SM_40 = 5
SM_50 = 6
SM_51 = 7
__init__(*args, **kwargs)
active
beginScene()

C++ Interface: begin_scene(const GraphicsStateGuardian self)

begin_scene()

C++ Interface: begin_scene(const GraphicsStateGuardian self)

clearFlashTexture()

C++ Interface: clear_flash_texture(const GraphicsStateGuardian self)

clear_flash_texture()

C++ Interface: clear_flash_texture(const GraphicsStateGuardian self)

coordinate_system
copy_texture_inverted
driver_renderer
driver_shader_version_major
driver_shader_version_minor
driver_vendor
driver_version
driver_version_major
driver_version_minor
effective_incomplete_render
endScene()

C++ Interface: end_scene(const GraphicsStateGuardian self)

end_scene()

C++ Interface: end_scene(const GraphicsStateGuardian self)

engine
flash_texture
gamma
getAlphaScaleTextureStage()

C++ Interface: 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.

*/

getAlphaScaleViaTexture()

C++ Interface: get_alpha_scale_via_texture(GraphicsStateGuardian self) get_alpha_scale_via_texture(GraphicsStateGuardian self, const TextureAttrib tex_attrib)

/**
  • 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.

*/

/**
  • 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. This

  • considers whether there is at least one additional texture slot available

  • on the GSG.

*/

getClassType()

C++ Interface: get_class_type()

getColorScaleViaLighting()

C++ Interface: get_color_scale_via_lighting(GraphicsStateGuardian self)

/**
  • 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.

*/

getCoordinateSystem()

C++ Interface: get_coordinate_system(GraphicsStateGuardian self)

/**
  • 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.

*/

getCopyTextureInverted()

C++ Interface: get_copy_texture_inverted(GraphicsStateGuardian self)

/**
  • 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.

  • If this is true, then on offscreen GraphicsBuffer created for the purposes

  • of rendering into a texture should be created with the invert flag set

  • true, to compensate. Panda will do this automatically if you create an

  • offscreen buffer using GraphicsOutput::make_texture_buffer().

*/

getDriverRenderer()

C++ Interface: get_driver_renderer(const GraphicsStateGuardian self)

getDriverShaderVersionMajor()

C++ Interface: get_driver_shader_version_major(const GraphicsStateGuardian self)

getDriverShaderVersionMinor()

C++ Interface: get_driver_shader_version_minor(const GraphicsStateGuardian self)

getDriverVendor()

C++ Interface: get_driver_vendor(const GraphicsStateGuardian self)

getDriverVersion()

C++ Interface: get_driver_version(const GraphicsStateGuardian self)

getDriverVersionMajor()

C++ Interface: get_driver_version_major(const GraphicsStateGuardian self)

getDriverVersionMinor()

C++ Interface: get_driver_version_minor(const GraphicsStateGuardian self)

getEngine()

C++ Interface: get_engine(GraphicsStateGuardian self)

getFlashTexture()

C++ Interface: get_flash_texture(GraphicsStateGuardian self)

getGamma()

C++ Interface: get_gamma(GraphicsStateGuardian self)

getInternalCoordinateSystem()

C++ Interface: get_internal_coordinate_system(GraphicsStateGuardian self)

getLoader()

C++ Interface: get_loader(GraphicsStateGuardian self)

/**
  • Returns the Loader object that will be used by this GSG to load textures

  • when necessary, if get_incomplete_render() is true.

*/

getMax2dTextureArrayLayers()

C++ Interface: get_max_2d_texture_array_layers(GraphicsStateGuardian self)

//z axis

//z axis

/**
  • Returns the largest possible number of pages, or -1 if there is no

  • particular limit. Returns 0 if 2-d texture arrays not supported.

  • The value returned may not be meaningful until after the graphics context

  • has been fully created (e.g. the window has been opened).

*/

getMax3dTextureDimension()

C++ Interface: get_max_3d_texture_dimension(GraphicsStateGuardian self)

/**
  • Returns the largest possible texture size in any one dimension for a 3-d

  • texture, or -1 if there is no particular limit. Returns 0 if 3-d textures

  • are not supported.

  • The value returned may not be meaningful until after the graphics context

  • has been fully created (e.g. the window has been opened).

*/

getMaxBufferTextureSize()

C++ Interface: get_max_buffer_texture_size(GraphicsStateGuardian self)

/**
  • Returns the largest possible buffer texture size, or -1 if there is no

  • particular limit. Returns 0 if cube map textures are not supported.

  • The value returned may not be meaningful until after the graphics context

  • has been fully created (e.g. the window has been opened).

*/

getMaxClipPlanes()

C++ Interface: get_max_clip_planes(GraphicsStateGuardian self)

/**
  • Returns the maximum number of simultaneous clip planes that may be applied

  • to geometry, or -1 if there is no particular limit.

  • The value returned may not be meaningful until after the graphics context

  • has been fully created (e.g. the window has been opened).

*/

getMaxColorTargets()

C++ Interface: get_max_color_targets(GraphicsStateGuardian self)

/**
  • Returns the maximum number of simultaneous color textures that may be

  • attached for render-to-texture, as supported by this particular GSG. If

  • you exceed this number, the lowest-priority render targets will not be

  • applied. Use RenderTarget::set_priority() to adjust the relative

  • importance of the different render targets.

  • The value returned may not be meaningful until after the graphics context

  • has been fully created (e.g. the window has been opened).

*/

getMaxCubeMapDimension()

C++ Interface: get_max_cube_map_dimension(GraphicsStateGuardian self)

//z axis

//z axis

/**
  • Returns the largest possible texture size in any one dimension for a cube

  • map texture, or -1 if there is no particular limit. Returns 0 if cube map

  • textures are not supported.

  • The value returned may not be meaningful until after the graphics context

  • has been fully created (e.g. the window has been opened).

*/

getMaxLights()

C++ Interface: get_max_lights(GraphicsStateGuardian self)

/**
  • Returns the maximum number of simultaneous lights that may be rendered on

  • geometry, or -1 if there is no particular limit.

  • The value returned may not be meaningful until after the graphics context

  • has been fully created (e.g. the window has been opened).

*/

getMaxTextureStages()

C++ Interface: get_max_texture_stages(GraphicsStateGuardian self)

/**
  • Returns the maximum number of simultaneous textures that may be applied to

  • geometry with multitexturing, as supported by this particular GSG. If you

  • exceed this number, the lowest-priority texture stages will not be applied.

  • Use TextureStage::set_priority() to adjust the relative importance of the

  • different texture stages.

  • The value returned may not be meaningful until after the graphics context

  • has been fully created (e.g. the window has been opened).

*/

getMaxVertexTransformIndices()

C++ Interface: get_max_vertex_transform_indices(GraphicsStateGuardian self)

/**
  • Returns the maximum number of transforms there may be in a single

  • TransformTable for this graphics hardware. If this number is 0 (but

  • get_max_transforms() is nonzero), then the graphics hardware (or API)

  • doesn’t support indexed transforms, but can support direct transform

  • references.

  • The value returned may not be meaningful until after the graphics context

  • has been fully created (e.g. the window has been opened).

*/

getMaxVertexTransforms()

C++ Interface: get_max_vertex_transforms(GraphicsStateGuardian self)

/**
  • Returns the maximum number of transform matrices that may be simultaneously

  • used to transform any one vertex by the graphics hardware. If this number

  • is 0, then the hardware (or the graphics backend) doesn’t support soft-

  • skinned vertices (in which case Panda will animate the vertices in

  • software).

  • The value returned may not be meaningful until after the graphics context

  • has been fully created (e.g. the window has been opened).

*/

getMaximumSimultaneousRenderTargets()

C++ Interface: get_maximum_simultaneous_render_targets(GraphicsStateGuardian self)

/**
  • Deprecated. Use get_max_color_targets() instead, which returns the exact

  • same value.

*/

getPipe()

C++ Interface: get_pipe(GraphicsStateGuardian self)

/**
  • Returns the graphics pipe on which this GSG was created.

*/

getPreparedObjects()

C++ Interface: get_prepared_objects(const GraphicsStateGuardian self)

getPreparedTextures()

C++ Interface: get_prepared_textures(GraphicsStateGuardian self)

getRuntimeColorScale()

C++ Interface: get_runtime_color_scale(GraphicsStateGuardian self)

/**
  • 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.

*/

getScene()

C++ Interface: get_scene(GraphicsStateGuardian self)

getShaderGenerator()

C++ Interface: get_shader_generator(GraphicsStateGuardian self)

/**
  • Returns the ShaderGenerator object that will be used by this GSG to

  • generate shaders when necessary.

*/

getShaderModel()

C++ Interface: get_shader_model(GraphicsStateGuardian self)

/**
  • Returns the ShaderModel

*/

getSupports2dTextureArray()

C++ Interface: get_supports_2d_texture_array(GraphicsStateGuardian self)

/**
  • Returns true if this GSG can render 2-d textures array.

*/

getSupports3dTexture()

C++ Interface: get_supports_3d_texture(GraphicsStateGuardian self)

/**
  • Returns true if this GSG can render 3-d (volumetric) textures.

*/

getSupportsBasicShaders()

C++ Interface: get_supports_basic_shaders(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports arbfp1+arbvp1 or above.

*/

getSupportsBufferTexture()

C++ Interface: get_supports_buffer_texture(GraphicsStateGuardian self)

/**
  • Returns true if this GSG can render buffer textures.

*/

getSupportsCgProfile()

C++ Interface: get_supports_cg_profile(GraphicsStateGuardian self, str name)

getSupportsCompressedTexture()

C++ Interface: get_supports_compressed_texture(GraphicsStateGuardian self)

/**
  • Returns true if this GSG can compress textures as it loads them into

  • texture memory, and/or accept pre-compressed textures for storing.

*/

getSupportsComputeShaders()

C++ Interface: get_supports_compute_shaders(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports compute shaders.

*/

getSupportsCubeMap()

C++ Interface: get_supports_cube_map(GraphicsStateGuardian self)

/**
  • Returns true if this GSG can render cube map textures.

*/

getSupportsCubeMapArray()

C++ Interface: get_supports_cube_map_array(GraphicsStateGuardian self)

/**
  • Returns true if this GSG can render cube map arrays.

*/

getSupportsDepthStencil()

C++ Interface: get_supports_depth_stencil(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports textures whose format is

  • F_depth_stencil. This only returns true if the GSG supports the full

  • packed depth-stencil functionality.

*/

getSupportsDepthTexture()

C++ Interface: get_supports_depth_texture(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports textures whose format is

  • F_depth_stencil. This returns true if the GSG supports GL_DEPTH_COMPONENT

  • textures, which are considered a limited but still valid case of

  • F_depth_stencil.

*/

getSupportsDualSourceBlending()

C++ Interface: get_supports_dual_source_blending(GraphicsStateGuardian self)

/**
  • Returns true if dual source (incoming1_color and incoming1_alpha) blend

  • operands are supported by this GSG.

*/

getSupportsGenerateMipmap()

C++ Interface: get_supports_generate_mipmap(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG can generate mipmaps for a texture

  • automatically, or if they must be generated in software. If this is true,

  • then mipmaps can safely be enabled for rendered textures (e.g. using the

  • MultitexReducer).

*/

getSupportsGeometryInstancing()

C++ Interface: get_supports_geometry_instancing(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports hardware geometry instancing:

  • the ability to render multiple copies of a model. In OpenGL, this is done

  • using the EXT_draw_instanced extension.

*/

getSupportsGeometryShaders()

C++ Interface: get_supports_geometry_shaders(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports geometry shaders.

*/

getSupportsGlsl()

C++ Interface: get_supports_glsl(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports GLSL shaders.

*/

getSupportsIndirectDraw()

C++ Interface: get_supports_indirect_draw(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports draw calls for which the

  • information comes from a buffer.

*/

getSupportsLuminanceTexture()

C++ Interface: get_supports_luminance_texture(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports luminance textures.

*/

getSupportsOcclusionQuery()

C++ Interface: get_supports_occlusion_query(GraphicsStateGuardian self)

/**
  • Returns true if this GSG supports an occlusion query. If this is true,

  • then begin_occlusion_query() and end_occlusion_query() may be called to

  • bracket a sequence of draw_triangles() (or whatever) calls to measure

  • pixels that pass the depth test.

*/

getSupportsSamplerObjects()

C++ Interface: get_supports_sampler_objects(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports the use of sampler objects to

  • record texture sampling parameters separately from the texture objects.

  • This doesn’t really affect functionality, but if this is false, it may mean

  • that using the same texture with different SamplerState objects will result

  • in reduced performance.

*/

getSupportsStencil()

C++ Interface: get_supports_stencil(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports stencil buffers at all.

*/

getSupportsTessellationShaders()

C++ Interface: get_supports_tessellation_shaders(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports tesselation shaders.

*/

getSupportsTexNonPow2()

C++ Interface: get_supports_tex_non_pow2(GraphicsStateGuardian self)

/**
  • Returns true if this GSG can handle non power of two sized textures.

*/

getSupportsTextureCombine()

C++ Interface: get_supports_texture_combine(GraphicsStateGuardian self)

/**
  • 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(). If this is false, you must

  • limit yourself to using the simpler blend modes.

*/

getSupportsTextureDot3()

C++ Interface: get_supports_texture_dot3(GraphicsStateGuardian self)

/**
  • Returns true if this GSG can use the TextureStage::CM_dot3_rgb or

  • CM_dot3_rgba combine modes.

*/

getSupportsTextureSavedResult()

C++ Interface: get_supports_texture_saved_result(GraphicsStateGuardian self)

/**
  • 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.

*/

getSupportsTimerQuery()

C++ Interface: get_supports_timer_query(GraphicsStateGuardian self)

/**
  • Returns true if this GSG supports a timer query.

*/

getSupportsTwoSidedStencil()

C++ Interface: get_supports_two_sided_stencil(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports two sided stencil: different

  • stencil settings for the front and back side of the same polygon.

*/

getTextureQualityOverride()

C++ Interface: get_texture_quality_override(GraphicsStateGuardian self)

/**
  • Returns the global quality_level override specified by

  • set_texture_quality_override.

  • This is mainly useful for the tinydisplay software renderer. See

  • Texture::set_quality_level().

*/

getThreadingModel()

C++ Interface: get_threading_model(GraphicsStateGuardian self)

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

*/

getTimerQueriesActive()

C++ Interface: get_timer_queries_active(GraphicsStateGuardian self)

/**
  • Returns true if timer queries are currently enabled on this GSG.

*/

get_alpha_scale_texture_stage()

C++ Interface: 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.

*/

get_alpha_scale_via_texture()

C++ Interface: get_alpha_scale_via_texture(GraphicsStateGuardian self) get_alpha_scale_via_texture(GraphicsStateGuardian self, const TextureAttrib tex_attrib)

/**
  • 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.

*/

/**
  • 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. This

  • considers whether there is at least one additional texture slot available

  • on the GSG.

*/

get_class_type()

C++ Interface: get_class_type()

get_color_scale_via_lighting()

C++ Interface: get_color_scale_via_lighting(GraphicsStateGuardian self)

/**
  • 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.

*/

get_coordinate_system()

C++ Interface: get_coordinate_system(GraphicsStateGuardian self)

/**
  • 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.

*/

get_copy_texture_inverted()

C++ Interface: get_copy_texture_inverted(GraphicsStateGuardian self)

/**
  • 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.

  • If this is true, then on offscreen GraphicsBuffer created for the purposes

  • of rendering into a texture should be created with the invert flag set

  • true, to compensate. Panda will do this automatically if you create an

  • offscreen buffer using GraphicsOutput::make_texture_buffer().

*/

get_driver_renderer()

C++ Interface: get_driver_renderer(const GraphicsStateGuardian self)

get_driver_shader_version_major()

C++ Interface: get_driver_shader_version_major(const GraphicsStateGuardian self)

get_driver_shader_version_minor()

C++ Interface: get_driver_shader_version_minor(const GraphicsStateGuardian self)

get_driver_vendor()

C++ Interface: get_driver_vendor(const GraphicsStateGuardian self)

get_driver_version()

C++ Interface: get_driver_version(const GraphicsStateGuardian self)

get_driver_version_major()

C++ Interface: get_driver_version_major(const GraphicsStateGuardian self)

get_driver_version_minor()

C++ Interface: get_driver_version_minor(const GraphicsStateGuardian self)

get_engine()

C++ Interface: get_engine(GraphicsStateGuardian self)

get_flash_texture()

C++ Interface: get_flash_texture(GraphicsStateGuardian self)

get_gamma()

C++ Interface: get_gamma(GraphicsStateGuardian self)

get_internal_coordinate_system()

C++ Interface: get_internal_coordinate_system(GraphicsStateGuardian self)

get_loader()

C++ Interface: get_loader(GraphicsStateGuardian self)

/**
  • Returns the Loader object that will be used by this GSG to load textures

  • when necessary, if get_incomplete_render() is true.

*/

get_max_2d_texture_array_layers()

C++ Interface: get_max_2d_texture_array_layers(GraphicsStateGuardian self)

//z axis

//z axis

/**
  • Returns the largest possible number of pages, or -1 if there is no

  • particular limit. Returns 0 if 2-d texture arrays not supported.

  • The value returned may not be meaningful until after the graphics context

  • has been fully created (e.g. the window has been opened).

*/

get_max_3d_texture_dimension()

C++ Interface: get_max_3d_texture_dimension(GraphicsStateGuardian self)

/**
  • Returns the largest possible texture size in any one dimension for a 3-d

  • texture, or -1 if there is no particular limit. Returns 0 if 3-d textures

  • are not supported.

  • The value returned may not be meaningful until after the graphics context

  • has been fully created (e.g. the window has been opened).

*/

get_max_buffer_texture_size()

C++ Interface: get_max_buffer_texture_size(GraphicsStateGuardian self)

/**
  • Returns the largest possible buffer texture size, or -1 if there is no

  • particular limit. Returns 0 if cube map textures are not supported.

  • The value returned may not be meaningful until after the graphics context

  • has been fully created (e.g. the window has been opened).

*/

get_max_clip_planes()

C++ Interface: get_max_clip_planes(GraphicsStateGuardian self)

/**
  • Returns the maximum number of simultaneous clip planes that may be applied

  • to geometry, or -1 if there is no particular limit.

  • The value returned may not be meaningful until after the graphics context

  • has been fully created (e.g. the window has been opened).

*/

get_max_color_targets()

C++ Interface: get_max_color_targets(GraphicsStateGuardian self)

/**
  • Returns the maximum number of simultaneous color textures that may be

  • attached for render-to-texture, as supported by this particular GSG. If

  • you exceed this number, the lowest-priority render targets will not be

  • applied. Use RenderTarget::set_priority() to adjust the relative

  • importance of the different render targets.

  • The value returned may not be meaningful until after the graphics context

  • has been fully created (e.g. the window has been opened).

*/

get_max_cube_map_dimension()

C++ Interface: get_max_cube_map_dimension(GraphicsStateGuardian self)

//z axis

//z axis

/**
  • Returns the largest possible texture size in any one dimension for a cube

  • map texture, or -1 if there is no particular limit. Returns 0 if cube map

  • textures are not supported.

  • The value returned may not be meaningful until after the graphics context

  • has been fully created (e.g. the window has been opened).

*/

get_max_lights()

C++ Interface: get_max_lights(GraphicsStateGuardian self)

/**
  • Returns the maximum number of simultaneous lights that may be rendered on

  • geometry, or -1 if there is no particular limit.

  • The value returned may not be meaningful until after the graphics context

  • has been fully created (e.g. the window has been opened).

*/

get_max_texture_stages()

C++ Interface: get_max_texture_stages(GraphicsStateGuardian self)

/**
  • Returns the maximum number of simultaneous textures that may be applied to

  • geometry with multitexturing, as supported by this particular GSG. If you

  • exceed this number, the lowest-priority texture stages will not be applied.

  • Use TextureStage::set_priority() to adjust the relative importance of the

  • different texture stages.

  • The value returned may not be meaningful until after the graphics context

  • has been fully created (e.g. the window has been opened).

*/

get_max_vertex_transform_indices()

C++ Interface: get_max_vertex_transform_indices(GraphicsStateGuardian self)

/**
  • Returns the maximum number of transforms there may be in a single

  • TransformTable for this graphics hardware. If this number is 0 (but

  • get_max_transforms() is nonzero), then the graphics hardware (or API)

  • doesn’t support indexed transforms, but can support direct transform

  • references.

  • The value returned may not be meaningful until after the graphics context

  • has been fully created (e.g. the window has been opened).

*/

get_max_vertex_transforms()

C++ Interface: get_max_vertex_transforms(GraphicsStateGuardian self)

/**
  • Returns the maximum number of transform matrices that may be simultaneously

  • used to transform any one vertex by the graphics hardware. If this number

  • is 0, then the hardware (or the graphics backend) doesn’t support soft-

  • skinned vertices (in which case Panda will animate the vertices in

  • software).

  • The value returned may not be meaningful until after the graphics context

  • has been fully created (e.g. the window has been opened).

*/

get_maximum_simultaneous_render_targets()

C++ Interface: get_maximum_simultaneous_render_targets(GraphicsStateGuardian self)

/**
  • Deprecated. Use get_max_color_targets() instead, which returns the exact

  • same value.

*/

get_pipe()

C++ Interface: get_pipe(GraphicsStateGuardian self)

/**
  • Returns the graphics pipe on which this GSG was created.

*/

get_prepared_objects()

C++ Interface: get_prepared_objects(const GraphicsStateGuardian self)

get_prepared_textures()

C++ Interface: get_prepared_textures(GraphicsStateGuardian self)

get_runtime_color_scale()

C++ Interface: get_runtime_color_scale(GraphicsStateGuardian self)

/**
  • 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.

*/

get_scene()

C++ Interface: get_scene(GraphicsStateGuardian self)

get_shader_generator()

C++ Interface: get_shader_generator(GraphicsStateGuardian self)

/**
  • Returns the ShaderGenerator object that will be used by this GSG to

  • generate shaders when necessary.

*/

get_shader_model()

C++ Interface: get_shader_model(GraphicsStateGuardian self)

/**
  • Returns the ShaderModel

*/

get_supports_2d_texture_array()

C++ Interface: get_supports_2d_texture_array(GraphicsStateGuardian self)

/**
  • Returns true if this GSG can render 2-d textures array.

*/

get_supports_3d_texture()

C++ Interface: get_supports_3d_texture(GraphicsStateGuardian self)

/**
  • Returns true if this GSG can render 3-d (volumetric) textures.

*/

get_supports_basic_shaders()

C++ Interface: get_supports_basic_shaders(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports arbfp1+arbvp1 or above.

*/

get_supports_buffer_texture()

C++ Interface: get_supports_buffer_texture(GraphicsStateGuardian self)

/**
  • Returns true if this GSG can render buffer textures.

*/

get_supports_cg_profile()

C++ Interface: get_supports_cg_profile(GraphicsStateGuardian self, str name)

get_supports_compressed_texture()

C++ Interface: get_supports_compressed_texture(GraphicsStateGuardian self)

/**
  • Returns true if this GSG can compress textures as it loads them into

  • texture memory, and/or accept pre-compressed textures for storing.

*/

get_supports_compute_shaders()

C++ Interface: get_supports_compute_shaders(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports compute shaders.

*/

get_supports_cube_map()

C++ Interface: get_supports_cube_map(GraphicsStateGuardian self)

/**
  • Returns true if this GSG can render cube map textures.

*/

get_supports_cube_map_array()

C++ Interface: get_supports_cube_map_array(GraphicsStateGuardian self)

/**
  • Returns true if this GSG can render cube map arrays.

*/

get_supports_depth_stencil()

C++ Interface: get_supports_depth_stencil(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports textures whose format is

  • F_depth_stencil. This only returns true if the GSG supports the full

  • packed depth-stencil functionality.

*/

get_supports_depth_texture()

C++ Interface: get_supports_depth_texture(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports textures whose format is

  • F_depth_stencil. This returns true if the GSG supports GL_DEPTH_COMPONENT

  • textures, which are considered a limited but still valid case of

  • F_depth_stencil.

*/

get_supports_dual_source_blending()

C++ Interface: get_supports_dual_source_blending(GraphicsStateGuardian self)

/**
  • Returns true if dual source (incoming1_color and incoming1_alpha) blend

  • operands are supported by this GSG.

*/

get_supports_generate_mipmap()

C++ Interface: get_supports_generate_mipmap(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG can generate mipmaps for a texture

  • automatically, or if they must be generated in software. If this is true,

  • then mipmaps can safely be enabled for rendered textures (e.g. using the

  • MultitexReducer).

*/

get_supports_geometry_instancing()

C++ Interface: get_supports_geometry_instancing(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports hardware geometry instancing:

  • the ability to render multiple copies of a model. In OpenGL, this is done

  • using the EXT_draw_instanced extension.

*/

get_supports_geometry_shaders()

C++ Interface: get_supports_geometry_shaders(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports geometry shaders.

*/

get_supports_glsl()

C++ Interface: get_supports_glsl(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports GLSL shaders.

*/

get_supports_indirect_draw()

C++ Interface: get_supports_indirect_draw(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports draw calls for which the

  • information comes from a buffer.

*/

get_supports_luminance_texture()

C++ Interface: get_supports_luminance_texture(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports luminance textures.

*/

get_supports_occlusion_query()

C++ Interface: get_supports_occlusion_query(GraphicsStateGuardian self)

/**
  • Returns true if this GSG supports an occlusion query. If this is true,

  • then begin_occlusion_query() and end_occlusion_query() may be called to

  • bracket a sequence of draw_triangles() (or whatever) calls to measure

  • pixels that pass the depth test.

*/

get_supports_sampler_objects()

C++ Interface: get_supports_sampler_objects(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports the use of sampler objects to

  • record texture sampling parameters separately from the texture objects.

  • This doesn’t really affect functionality, but if this is false, it may mean

  • that using the same texture with different SamplerState objects will result

  • in reduced performance.

*/

get_supports_stencil()

C++ Interface: get_supports_stencil(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports stencil buffers at all.

*/

get_supports_tessellation_shaders()

C++ Interface: get_supports_tessellation_shaders(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports tesselation shaders.

*/

get_supports_tex_non_pow2()

C++ Interface: get_supports_tex_non_pow2(GraphicsStateGuardian self)

/**
  • Returns true if this GSG can handle non power of two sized textures.

*/

get_supports_texture_combine()

C++ Interface: get_supports_texture_combine(GraphicsStateGuardian self)

/**
  • 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(). If this is false, you must

  • limit yourself to using the simpler blend modes.

*/

get_supports_texture_dot3()

C++ Interface: get_supports_texture_dot3(GraphicsStateGuardian self)

/**
  • Returns true if this GSG can use the TextureStage::CM_dot3_rgb or

  • CM_dot3_rgba combine modes.

*/

get_supports_texture_saved_result()

C++ Interface: get_supports_texture_saved_result(GraphicsStateGuardian self)

/**
  • 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.

*/

get_supports_timer_query()

C++ Interface: get_supports_timer_query(GraphicsStateGuardian self)

/**
  • Returns true if this GSG supports a timer query.

*/

get_supports_two_sided_stencil()

C++ Interface: get_supports_two_sided_stencil(GraphicsStateGuardian self)

/**
  • Returns true if this particular GSG supports two sided stencil: different

  • stencil settings for the front and back side of the same polygon.

*/

get_texture_quality_override()

C++ Interface: get_texture_quality_override(GraphicsStateGuardian self)

/**
  • Returns the global quality_level override specified by

  • set_texture_quality_override.

  • This is mainly useful for the tinydisplay software renderer. See

  • Texture::set_quality_level().

*/

get_threading_model()

C++ Interface: get_threading_model(GraphicsStateGuardian self)

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

*/

get_timer_queries_active()

C++ Interface: get_timer_queries_active(GraphicsStateGuardian self)

/**
  • Returns true if timer queries are currently enabled on this GSG.

*/

hasExtension()

C++ Interface: has_extension(GraphicsStateGuardian self, str extension)

has_extension()

C++ Interface: has_extension(GraphicsStateGuardian self, str extension)

incomplete_render
isActive()

C++ Interface: is_active(GraphicsStateGuardian self)

/**
  • Returns the active flag associated with the GraphicsStateGuardian.

*/

isHardware()

C++ Interface: is_hardware(GraphicsStateGuardian self)

/**
  • Returns true if this GSG appears to be hardware-accelerated, or false if it

  • is known to be software only.

*/

isValid()

C++ Interface: is_valid(GraphicsStateGuardian self)

/**
  • 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.

*/

is_active()

C++ Interface: is_active(GraphicsStateGuardian self)

/**
  • Returns the active flag associated with the GraphicsStateGuardian.

*/

is_hardware()

C++ Interface: is_hardware(GraphicsStateGuardian self)

/**
  • Returns true if this GSG appears to be hardware-accelerated, or false if it

  • is known to be software only.

*/

is_valid()

C++ Interface: is_valid(GraphicsStateGuardian self)

/**
  • 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.

*/

loader
max_2d_texture_array_layers

//z axis

max_3d_texture_dimension
max_buffer_texture_size
max_clip_planes
max_color_targets
max_compute_work_group_count
max_compute_work_group_invocations
max_compute_work_group_size
max_cube_map_dimension

//z axis

max_lights
max_texture_dimension
max_texture_stages
max_vertex_transform_indices
max_vertex_transforms
max_vertices_per_array
max_vertices_per_primitive
needsReset()

C++ Interface: needs_reset(GraphicsStateGuardian self)

/**
  • Returns true if the gsg is marked as needing a reset.

*/

needs_reset()

C++ Interface: needs_reset(GraphicsStateGuardian self)

/**
  • Returns true if the gsg is marked as needing a reset.

*/

pipe
prepared_objects
releaseAll()

C++ Interface: release_all(const GraphicsStateGuardian self)

/**
  • Releases all prepared objects.

*/

releaseAllGeoms()

C++ Interface: release_all_geoms(const GraphicsStateGuardian self)

/**
  • Frees the resources for all geoms associated with this GSG.

*/

releaseAllIndexBuffers()

C++ Interface: release_all_index_buffers(const GraphicsStateGuardian self)

/**
  • Frees the resources for all index buffers associated with this GSG.

*/

releaseAllSamplers()

C++ Interface: release_all_samplers(const GraphicsStateGuardian self)

/**
  • Frees the resources for all samplers associated with this GSG.

*/

releaseAllShaderBuffers()

C++ Interface: release_all_shader_buffers(const GraphicsStateGuardian self)

/**
  • Frees the resources for all index buffers associated with this GSG.

*/

releaseAllTextures()

C++ Interface: release_all_textures(const GraphicsStateGuardian self)

/**
  • Frees the resources for all textures associated with this GSG.

*/

releaseAllVertexBuffers()

C++ Interface: release_all_vertex_buffers(const GraphicsStateGuardian self)

/**
  • Frees the resources for all vertex buffers associated with this GSG.

*/

release_all()

C++ Interface: release_all(const GraphicsStateGuardian self)

/**
  • Releases all prepared objects.

*/

release_all_geoms()

C++ Interface: release_all_geoms(const GraphicsStateGuardian self)

/**
  • Frees the resources for all geoms associated with this GSG.

*/

release_all_index_buffers()

C++ Interface: release_all_index_buffers(const GraphicsStateGuardian self)

/**
  • Frees the resources for all index buffers associated with this GSG.

*/

release_all_samplers()

C++ Interface: release_all_samplers(const GraphicsStateGuardian self)

/**
  • Frees the resources for all samplers associated with this GSG.

*/

release_all_shader_buffers()

C++ Interface: release_all_shader_buffers(const GraphicsStateGuardian self)

/**
  • Frees the resources for all index buffers associated with this GSG.

*/

release_all_textures()

C++ Interface: release_all_textures(const GraphicsStateGuardian self)

/**
  • Frees the resources for all textures associated with this GSG.

*/

release_all_vertex_buffers()

C++ Interface: release_all_vertex_buffers(const GraphicsStateGuardian self)

/**
  • Frees the resources for all vertex buffers associated with this GSG.

*/

restoreGamma()

C++ Interface: restore_gamma(const GraphicsStateGuardian self)

restore_gamma()

C++ Interface: restore_gamma(const GraphicsStateGuardian self)

scene
setActive()

C++ Interface: set_active(const GraphicsStateGuardian self, bool active)

/**
  • Sets the active flag associated with the GraphicsStateGuardian. If the

  • GraphicsStateGuardian is marked inactive, nothing is rendered. This is not

  • normally turned off unless there is a problem with the rendering detected

  • at a low level.

*/

setCoordinateSystem()

C++ Interface: set_coordinate_system(const GraphicsStateGuardian self, int cs)

setFlashTexture()

C++ Interface: set_flash_texture(const GraphicsStateGuardian self, Texture tex)

setGamma()

C++ Interface: set_gamma(const GraphicsStateGuardian self, float gamma)

setIncompleteRender()

C++ Interface: set_incomplete_render(const GraphicsStateGuardian self, bool incomplete_render)

/**
  • Sets the incomplete_render flag. When this is true, the frame will be

  • rendered even if some of the geometry or textures in the scene are not

  • available (e.g. they have been temporarily paged out). When this is

  • false, the frame will be held up while this data is reloaded.

  • Setting this true allows for a smoother frame rate, but occasionally parts

  • of the frame will be invisible or missing (they will generally come in

  • within a second or two). Setting this false guarantees that every frame

  • will be complete, but may cause more chugs as things are loaded up at

  • runtime.

  • You may want to set this false during loading screens, to guarantee that

  • all of your assets are available by the time you take the loading screen

  • down.

  • This flag may also be set individually on each DisplayRegion. It will be

  • considered true for a given DisplayRegion only if it is true on both the

  • GSG and on the DisplayRegion.

*/

setLoader()

C++ Interface: set_loader(const GraphicsStateGuardian self, Loader loader)

/**
  • Sets the Loader object that will be used by this GSG to load textures when

  • necessary, if get_incomplete_render() is true.

*/

setScene()

C++ Interface: set_scene(const GraphicsStateGuardian self, SceneSetup scene_setup)

setShaderGenerator()

C++ Interface: set_shader_generator(const GraphicsStateGuardian self, ShaderGenerator shader_generator)

/**
  • Sets the ShaderGenerator object that will be used by this GSG to generate

  • shaders when necessary.

*/

setShaderModel()

C++ Interface: set_shader_model(const GraphicsStateGuardian self, int shader_model)

/**
  • Sets the ShaderModel. This will override the auto- detected shader model

  • during GSG reset. Useful for testing lower-end shaders.

*/

setTextureQualityOverride()

C++ Interface: set_texture_quality_override(const GraphicsStateGuardian self, int quality_level)

/**
  • Specifies the global quality_level to be imposed for all Textures rendered

  • by this GSG. This overrides the value set on individual textures via

  • Texture::set_quality_level(). Set this to Texture::QL_default in order to

  • allow the individual texture quality levels to be respected.

  • This is mainly useful for the tinydisplay software renderer. See

  • Texture::set_quality_level().

*/

set_active()

C++ Interface: set_active(const GraphicsStateGuardian self, bool active)

/**
  • Sets the active flag associated with the GraphicsStateGuardian. If the

  • GraphicsStateGuardian is marked inactive, nothing is rendered. This is not

  • normally turned off unless there is a problem with the rendering detected

  • at a low level.

*/

set_coordinate_system()

C++ Interface: set_coordinate_system(const GraphicsStateGuardian self, int cs)

set_flash_texture()

C++ Interface: set_flash_texture(const GraphicsStateGuardian self, Texture tex)

set_gamma()

C++ Interface: set_gamma(const GraphicsStateGuardian self, float gamma)

set_incomplete_render()

C++ Interface: set_incomplete_render(const GraphicsStateGuardian self, bool incomplete_render)

/**
  • Sets the incomplete_render flag. When this is true, the frame will be

  • rendered even if some of the geometry or textures in the scene are not

  • available (e.g. they have been temporarily paged out). When this is

  • false, the frame will be held up while this data is reloaded.

  • Setting this true allows for a smoother frame rate, but occasionally parts

  • of the frame will be invisible or missing (they will generally come in

  • within a second or two). Setting this false guarantees that every frame

  • will be complete, but may cause more chugs as things are loaded up at

  • runtime.

  • You may want to set this false during loading screens, to guarantee that

  • all of your assets are available by the time you take the loading screen

  • down.

  • This flag may also be set individually on each DisplayRegion. It will be

  • considered true for a given DisplayRegion only if it is true on both the

  • GSG and on the DisplayRegion.

*/

set_loader()

C++ Interface: set_loader(const GraphicsStateGuardian self, Loader loader)

/**
  • Sets the Loader object that will be used by this GSG to load textures when

  • necessary, if get_incomplete_render() is true.

*/

set_scene()

C++ Interface: set_scene(const GraphicsStateGuardian self, SceneSetup scene_setup)

set_shader_generator()

C++ Interface: set_shader_generator(const GraphicsStateGuardian self, ShaderGenerator shader_generator)

/**
  • Sets the ShaderGenerator object that will be used by this GSG to generate

  • shaders when necessary.

*/

set_shader_model()

C++ Interface: set_shader_model(const GraphicsStateGuardian self, int shader_model)

/**
  • Sets the ShaderModel. This will override the auto- detected shader model

  • during GSG reset. Useful for testing lower-end shaders.

*/

set_texture_quality_override()

C++ Interface: set_texture_quality_override(const GraphicsStateGuardian self, int quality_level)

/**
  • Specifies the global quality_level to be imposed for all Textures rendered

  • by this GSG. This overrides the value set on individual textures via

  • Texture::set_quality_level(). Set this to Texture::QL_default in order to

  • allow the individual texture quality levels to be respected.

  • This is mainly useful for the tinydisplay software renderer. See

  • Texture::set_quality_level().

*/

shader_generator
shader_model
supports_2d_texture_array
supports_3d_texture
supports_basic_shaders
supports_buffer_texture
supports_compressed_texture
supports_compute_shaders
supports_cube_map
supports_cube_map_array
supports_depth_stencil
supports_depth_texture
supports_dual_source_blending
supports_generate_mipmap
supports_geometry_instancing
supports_geometry_shaders
supports_glsl
supports_hlsl
supports_indirect_draw
supports_luminance_texture
supports_multisample
supports_occlusion_query
supports_sampler_objects
supports_shadow_filter
supports_stencil
supports_tessellation_shaders
supports_tex_non_pow2
supports_texture_combine
supports_texture_dot3
supports_texture_saved_result
supports_texture_srgb
supports_timer_query
supports_two_sided_stencil
texture_quality_override
timer_queries_active
valid