# Namespace Bonsai.Shaders

### Classes

- AspectRatio
Represents an operator that calculates the ratio of window viewport width to its height for each viewport size in the sequence.

- BindTexture
Represents an operator that binds a buffer to the specified texture unit for each texture or notification in the sequence.

- Bounds
Represents an axis-aligned bounding box for mesh vertices.

- Camera
Represents a point of view from which to render a 3D scene.

- ComputeProgram
Provides functionality for executing and updating the state of a compute shader program.

- CreateAxisAngleRotation
Represents an operator that creates a rotation matrix from an axis-angle representation.

- CreateCubemapCamera
Represents an operator that generates a sequence of perspective camera objects which can be used to render a dynamic cubemap texture.

- CreateLookAt
Represents an operator that creates a view matrix specifying a camera looking at a target position.

- CreateMatrix2
Represents an operator that creates a 2x2 matrix.

- CreateMatrix2x3
Represents an operator that creates a 2x3 matrix.

- CreateMatrix2x4
Represents an operator that creates a 2x4 matrix.

- CreateMatrix3
Represents an operator that creates a 3x3 matrix containing 3D rotation and scale.

- CreateMatrix3x2
Represents an operator that creates a 3x2 matrix.

- CreateMatrix3x4
Represents an operator that creates a 3x4 matrix.

- CreateMatrix4
Represents an operator that creates a 4x4 matrix containing 3D rotation, scale, position and projection.

- CreateMatrix4x2
Represents an operator that creates a 4x2 matrix.

- CreateMatrix4x3
Represents an operator that creates a 4x3 matrix.

- CreateMesh
Represents an operator that creates a new mesh geometry for each vertex array data in the sequence.

- CreateOrthographic
Represents an operator that creates an orthographic projection matrix.

- CreateOrthographicOffCenter
Represents an operator that creates an orthographic projection matrix from specified projection volume boundaries.

- CreatePerspectiveFieldOfView
Represents an operator that creates a perspective projection matrix from field of view parameters.

- CreatePerspectiveOffCenter
Represents an operator that creates a perspective projection matrix with the specified view frustum.

- CreateQuaternionRotation
Represents an operator that creates a rotation matrix from a quaternion representation.

- CreateRotationX
Represents an operator that creates a rotation matrix for a rotation about the x-axis.

- CreateRotationY
Represents an operator that creates a rotation matrix for a rotation about the y-axis.

- CreateRotationZ
Represents an operator that creates a rotation matrix for a rotation about the z-axis.

- CreateScale
Represents an operator that creates a scale matrix.

- CreateTransform
Represents an operator that creates a model matrix specifying position, rotation and scale.

- CreateTranslation
Represents an operator that creates a translation matrix.

- CreateVector2
Represents an operator that creates a 2D vector element.

- CreateVector3
Represents an operator that creates a 3D vector element.

- CreateVector4
Represents an operator that creates a 4D vector element.

- CreateWindow
Represents an operator that creates the shader window with the specified display style and render settings.

- Delay
Represents an operator that delays the notification of values in the sequence by the specified time interval, using the render loop scheduler.

- DelaySubscription
Represents an operator that delays subscription to the observable sequence by the specified time interval, using the render loop scheduler.

- DispatchCompute
Represents an operator that launches one or more compute shader work groups for each notification in the sequence.

- DispatchShaderQueue
Represents an operator that immediately starts processing the specified shader work queue whenever the sequence emits a notification.

- DrawArrays
Represents an operator that renders primitives using each of the array data in the sequence.

- DrawFramebuffer
Represents an operator that renders all currently stored draw commands to a framebuffer.

- DrawMesh
Represents an operator that draws the specified mesh geometry.

- DrawMeshAggregate
Represents an operator that aggregates the specified mesh geometry attributes into a single draw command.

- DrawMeshInstanced
Represents an operator that draws the specified mesh geometry using instanced rendering, where each array in the sequence stores the per-instance attributes.

- Effect
Provides an abstract base class for common functionality used in render effects specifying a vertex, geometry or fragment shader.

- ExtractRotation
Represents an operator that returns the rotation component of every matrix in the sequence.

- ExtractScale
Represents an operator that returns the scale component of every matrix in the sequence.

- ExtractTranslation
Represents an operator that returns the translation component of every matrix in the sequence.

- ExtrinsicsTransform
Represents an operator that converts extrinsics rotation and translation vectors in the sequence into a transform matrix, and vice-versa.

- FrameEvent
Represents an update or render frame event raised by the shader window.

- InstanceAttributeMapping
Represents the format of a per-instance defined input value to a vertex shader.

- InstanceAttributeMappingCollection
Represents a collection of InstanceAttributeMapping objects.

- Invert
Represents an operator that converts every matrix in the sequence to its inverse.

- LatestOnRenderFrame
Represents an operator that replays the latest notification of the sequence at each render frame event.

- LatestOnUpdateFrame
Represents an operator that replays the latest notification of the sequence at each update frame event.

- LoadImage
Represents an operator that loads a texture buffer from the specified image file.

- LoadImageSequence
Represents an operator that loads an image texture sequence from the specified movie file or image sequence pattern.

- LoadVideo
Represents an operator that initializes a video texture which is dynamically updated from the specified movie file.

- Material
Provides functionality for rendering geometry using a shaded material pass using the specified vertex, geometry or fragment shader.

- MatrixTransform
Provides an abstract base class for operators specifying cumulative matrix transform operations.

- Mesh
Represents a collection of vertices and indices used to describe arbitrary geometry.

- MeshBounds
Represents an operator that retrieves the bounds of the specified mesh geometry.

- MeshName
Represents the properties of a mesh geometry which is part of an aggregate rendering operation.

- MeshNameConverter
Provides a type converter to convert a mesh name to and from other representations. It also provides a mechanism to find existing meshes which have been declared in the workflow.

- MeshResources
Represents an operator that creates a collection of mesh resources to be loaded into the resource manager.

- NormalMatrix
Represents an operator that computes the normal matrix for each modelview matrix in the sequence.

- PlayTextureSequence
Represents an operator that starts playing the frame sequence of a video texture or texture array.

- ReadPixels
Represents an operator that reads a block of pixels from the framebuffer.

- RenderCubemap
Represents an operator that renders all currently stored draw commands to one of the cubemap textures. Each pass renders one face of the cubemap in the order +X, -X, +Y, -Y, +Z, -Z.

- RenderCubemapTarget
Represents an operator that renders all currently stored draw commands to a cubemap render target.

- RenderFrame
Represents an operator that generates a sequence of events produced whenever it is time to render a new frame.

- RenderTexture
Represents an operator that renders all currently stored draw commands to a texture.

- ResourceLoader
Provides the abstract base class for operators that load resources into the shader window resource manager.

- RetrieveImage
Represents an operator that reads the pixel data from each texture in the sequence to an image.

- RotateAxisAngle
Represents an operator that applies a rotation around an arbitrary axis to every transform in the sequence.

- RotateQuaternion
Represents an operator that applies a rotation specified by a quaternion to every transform in the sequence.

- RotateX
Represents an operator that applies a rotation about the x-axis to every transform in the sequence.

- RotateY
Represents an operator that applies a rotation about the y-axis to every transform in the sequence.

- RotateZ
Represents an operator that applies a rotation about the z-axis to every transform in the sequence.

- SampleOnRenderFrame
Represents an operator that samples notifications from the sequence whenever there is a new render frame event.

- SampleOnUpdateFrame
Represents an operator that samples notifications from the sequence whenever there is a new update frame event.

- Scale
Represents an operator that applies a scale factor along the specified axes to every transform in the sequence.

- Shader
Provides common functionality for executing and updating the state of compiled shader programs.

- ShaderException
Represents errors that occur when compiling or linking shader programs.

- ShaderManager
Provides functionality for accessing shader window resources and scheduling actions on the main render loop.

- ShaderNameConverter
Provides a type converter to convert a shader name to and from other representations. It also provides a mechanism to find existing shaders which have been declared in the workflow.

- ShaderResources
Represents an operator that creates a collection of shader resources to be loaded into the resource manager.

- ShaderWindow
Creates and renders a window using the specified resources and a programmable shader pipeline.

- StoreImage
Represents an operator that writes each image in the sequence to a texture object.

- StoreImageSequence
Represents an operator that writes a sequence of images to a texture array.

- Texture
Represents a texture object containing one or more images with the same image format.

- TextureArray
Represents an array of texture objects.

- TextureNameConverter
Provides a type converter to convert a texture name to and from other representations. It also provides a mechanism to find existing textures which have been declared in the workflow.

- TextureResources
Represents an operator that creates a collection of texture resources to be loaded into the resource manager.

- Timer
Represents an operator that generates an observable sequence that periodically produces a value after the specified initial relative due time has elapsed, using the render loop timing.

- TransformRelative
Represents an operator that applies a model matrix transform specifying relative position, rotation and scale to every transform in the sequence.

- Translate
Represents an operator that applies a translation along the specified axes to every transform in the sequence.

- Transpose
Represents an operator that calculates the transpose of every matrix in the sequence.

- UpdateClearColorState
Represents an operator that updates the clear color state of the shader window.

- UpdateFrame
Represents an operator that generates a sequence of events produced whenever it is time to update the render state.

- UpdateRenderState
Represents an operator that updates the render state of the shader window.

- UpdateScissorState
Represents an operator that updates the active scissor box in the shader window. Any fragments falling outside the scissor box will be discarded.

- UpdateTexture
Represents an operator that updates the pixel store of the specified texture target from a sequence of images.

- UpdateUniform
Represents an operator that updates the value of a uniform variable on the specified shader.

- UpdateVertexBuffer
Represents an operator that updates the vertex buffer data used by the specified mesh geometry.

- UpdateViewportState
Represents an operator that updates the active viewport in the shader window.

- VertexAttributeMapping
Represents the format of a user-defined input value to a vertex shader.

- VertexAttributeMappingCollection
Represents a collection of VertexAttributeMapping objects.

- ViewportEffect
Provides functionality for rendering a fullscreen effect using a fragment shader pass.

- WarpPerspective
Represents an operator that creates a warp perspective transform matrix for planar projection mapping.

- WindowClosed
Represents an operator that generates a sequence of events produced whenever the shader window is closed.

### Structs

- DispatchParameters
Represents parameters used when launching compute shader work groups.

- TimeStep
Represents the amount of time elapsed since the last update.

### Enums

- MatrixOrder
Specifies the transformation order for cumulative matrix transform operations.

- QuadEffects
Specifies available fullscreen quad rendering effects.