Shader
from panda3d.core import Shader
- class Shader
Bases:
Bases:
TypedWritableReferenceCount
Inheritance diagram
-
enum AutoShaderBit
-
enumerator bit_AutoShaderNormal = 0
bit for AS_normal
-
enumerator bit_AutoShaderGlow = 1
bit for AS_glow
-
enumerator bit_AutoShaderGloss = 2
bit for AS_gloss
-
enumerator bit_AutoShaderRamp = 3
bit for AS_ramp
-
enumerator bit_AutoShaderShadow = 4
bit for AS_shadow
-
enumerator bit_AutoShaderNormal = 0
-
enum AutoShaderSwitch
-
enumerator AS_normal = 1
-
enumerator AS_glow = 2
-
enumerator AS_gloss = 4
-
enumerator AS_ramp = 8
-
enumerator AS_shadow = 16
-
enumerator AS_normal = 1
-
enum ShaderLanguage
-
enumerator SL_none = 0
-
enumerator SL_Cg = 1
-
enumerator SL_GLSL = 2
-
enumerator SL_HLSL = 3
-
enumerator SL_SPIR_V = 4
-
enumerator SL_none = 0
-
enum ShaderType
-
enumerator ST_none = 0
-
enumerator ST_vertex = 1
-
enumerator ST_fragment = 2
-
enumerator ST_geometry = 3
-
enumerator ST_tess_control = 4
-
enumerator ST_tess_evaluation = 5
-
enumerator ST_compute = 6
-
enumerator ST_COUNT = 7
-
enumerator ST_none = 0
- get_cache_compiled_shader() bool
Returns the setting of the cache_compiled_shader flag. See
set_cache_compiled_shader()
.
- static get_class_type() TypeHandle
- get_error_flag() bool
Returns true if the shader contains a compile-time error. This doesn’t tell you whether or not the shader is supported on the current video card.
- get_fullpath() Filename
Returns the fullpath that has been set. This is the full path to the file as it was found along the model-path.
- get_language() ShaderLanguage
Returns the shader language in which this shader was written.
- has_fullpath() bool
Returns true if the fullpath has been set and is available. See set_fullpath().
- is_prepared(prepared_objects: PreparedGraphicsObjects) bool
Returns true if the shader has already been prepared or enqueued for preparation on the indicated GSG, false otherwise.
- static load(file: Filename, lang: ShaderLanguage) Shader
Loads the shader with the given filename.
- static load(lang: ShaderLanguage, vertex: Filename, fragment: Filename, geometry: Filename, tess_control: Filename, tess_evaluation: Filename) Shader
This variant of
Shader.load
loads all shader programs separately.
- static make(lang: ShaderLanguage, vertex: str, fragment: str, geometry: str, tess_control: str, tess_evaluation: str) Shader
Loads the shader, using the strings as shader bodies.
- static make(body: str, lang: ShaderLanguage) Shader
Loads the shader, using the string as shader body.
- static make_compute(lang: ShaderLanguage, body: str) Shader
Loads the compute shader from the given string.
- prepare(prepared_objects: PreparedGraphicsObjects) AsyncFuture
Indicates that the shader should be enqueued to be prepared in the indicated prepared_objects at the beginning of the next frame. This will ensure the texture is already loaded into texture memory if it is expected to be rendered soon.
Use this function instead of
prepare_now()
to preload textures from a user interface standpoint.
- prepare_now(prepared_objects: PreparedGraphicsObjects, gsg: GraphicsStateGuardianBase) ShaderContext
Creates a context for the shader on the particular GSG, if it does not already exist. Returns the new (or old)
ShaderContext
. This assumes that theGraphicsStateGuardian
is the currently active rendering context and that it is ready to accept new textures. If this is not necessarily the case, you should useprepare()
instead.Normally, this is not called directly except by the
GraphicsStateGuardian
; a shader does not need to be explicitly prepared by the user before it may be rendered.
- release(prepared_objects: PreparedGraphicsObjects) bool
Frees the texture context only on the indicated object, if it exists there. Returns true if it was released, false if it had not been prepared.
- release_all() int
Frees the context allocated on all objects for which the texture has been declared. Returns the number of contexts which have been freed.
- set_cache_compiled_shader(flag: bool)
Sets the cache_compiled_shader flag. When this is set, the next time the Shader is loaded on a GSG, it will automatically extract the compiled shader from the GSG and save it to the global
BamCache
.This is used to store compiled shaders in the
BamCache
. This flag should not be set explicitly; it is set automatically by theShaderPool
when model-cache-compiled-shaders is set true.
-
enum AutoShaderBit