program.ProgramDescription¶
-
moderngl_window.meta.program.
ProgramDescription
[source]¶ Describes a program to load
By default a program can be loaded in the following ways:
By supplying a path to s single glsl file containing all shaders
By supplying several paths to separate files containing each shader type. For example
vertex_shader
,fragment_shader
.. etc.
# Single glsl file containing all shaders ProgramDescription(path='programs/myprogram.glsl') # Multiple shader files ProgramDescription( vertex_shader='programs/myprogram_vs.glsl'. fragment_shader='programs/myprogram_fs.glsl'. geometry_shader='programs/myprogram_gs.glsl'. )
Methods¶
-
ProgramDescription.
__init__
(path: str = None, kind: str = None, reloadable=False, vertex_shader: str = None, geometry_shader: str = None, fragment_shader: str = None, tess_control_shader: str = None, tess_evaluation_shader: str = None, compute_shader: str = None, defines: dict = None, **kwargs)[source]¶ Create a program description
- Keyword Arguments
path (str) – path to the resource relative to search directories
kind (str) – The kind of loader to use
reloadable (bool) – Should this program be reloadable
vertex_shader (str) – Path to vertex shader file
geometry_shader (str) – Path to geometry shader
fragment_shader (str) – Path to fragmet shader
tess_control_shader (str) –
tess_evaluation_shader (str) – Path to tess eval shader
compute_shader (str) – Path to compute shader
defines (dict) – Dictionary with define values to replace in the source
**kwargs – Optional custom attributes
Attributes¶
-
ProgramDescription.
tess_evaluation_shader
¶ Relative path to tessellation evaluation shader
- Type
str
-
ProgramDescription.
vertex_shader
¶ Relative path to vertex shader
- Type
str
-
ProgramDescription.
geometry_shader
¶ Relative path to geometry shader
- Type
str
-
ProgramDescription.
reloadable
¶ if this program is reloadable
- Type
bool
-
ProgramDescription.
fragment_shader
¶ Relative path to fragment shader
- Type
str
-
ProgramDescription.
tess_control_shader
¶ Relative path to tess control shader
- Type
str
-
ProgramDescription.
compute_shader
¶ Relative path to compute shader
- Type
str
-
ProgramDescription.
defines
¶ Dictionary with define values to replace in the source
- Type
dict
Inherited Attributes¶
-
ProgramDescription.
path
¶ The path to a resource when a single file is specified
- Type
str
-
ProgramDescription.
resolved_path
¶ The resolved path by a finder.
The absolute path to the resource can optionally be assigned by a loader class.
- Type
pathlib.Path
-
ProgramDescription.
attrs
¶ All keywords arguments passed to the resource
- Type
dict
-
ProgramDescription.
label
¶ optional name for the resource
Assigning a label is not mandatory but can help when aliasing resources. Some prefer to preload all needed resources and fetch them later by the label. This can he a lot less chaotic in larger applications.
- Type
str
-
ProgramDescription.
kind
¶ default resource kind.
The resource
kind
is directly matched with thekind
in loader classes.This property also supports assignment and is useful if the
kind
is detected based in the the attribute values.description.kind = 'something'
- Type
str
-
ProgramDescription.
loader_cls
¶ The loader class for this resource.
This property is assigned to during the loading stage were a loader class is assigned based on the kind.
- Type
Type
-
ProgramDescription.
default_kind
= None¶
-
ProgramDescription.
resource_type
= 'programs'¶