Program
Program
- class arcade.gl.Program(ctx: Context, *, vertex_shader: str, fragment_shader: str = None, geometry_shader: str = None, tess_control_shader: str = None, tess_evaluation_shader: str = None, out_attributes: List[str] = None)[source]
Bases:
object
Compiled and linked shader program.
Currently supports vertex, fragment and geometry shaders. Transform feedback also supported when output attributes names are passed in the varyings parameter.
The best way to create a program instance is through
arcade.gl.Context.program()
Access Uniforms via the
[]
operator. Example:program['MyUniform'] = value
- Parameters
ctx (Context) – The context this program belongs to
vertex_shader (str) – vertex shader source
fragment_shader (str) – fragment shader source
geometry_shader (str) – geometry shader source
tess_control_shader (str) – tessellation control shader source
tess_evaluation_shader (str) – tessellation evaluation shader source
out_attributes (List[str]) – List of out attributes used in transform feedback.
- property attributes: Iterable[arcade.gl.types.AttribFormat]
List of attribute information
- static compile_shader(source: str, shader_type: ctypes.c_uint) ctypes.c_uint [source]
Compile the shader code of the given type.
shader_type could be GL_VERTEX_SHADER, GL_FRAGMENT_SHADER, …
Returns the shader id as a GLuint
- delete()[source]
Destroy the underlying OpenGL resource. Don’t use this unless you know exactly what you are doing.
- property geometry_input: int
The geometry shader’s input primitive type. This an be compared with
GL_TRIANGLES
,GL_POINTS
etc. and is queried when the program is created.- Type
- property geometry_output: int
The geometry shader’s output primitive type. This an be compared with
GL_TRIANGLES
,GL_POINTS
etc. and is queried when the program is created.- Type
- property geometry_vertices: int
The maximum number of vertices that can be emitted. This is queried when the program is created.
- Type