Class UIBatch
A utility class to batch and draw UI images.
public class UIBatch : BatchBase<UIBatch.UIImageDrawInfo>, IDisposable, IComponent, IReferencable, ICollectorHolder
- Inheritance
-
UIBatch
- Implements
- Inherited Members
- Extension Methods
Constructors
UIBatch(GraphicsDevice)
Initializes a new instance of the UIBatch class.
public UIBatch(GraphicsDevice device)
Parameters
device
GraphicsDeviceA valid instance of GraphicsDevice.
Properties
SDFSpriteFontEffect
public EffectInstance SDFSpriteFontEffect { get; }
Property Value
Methods
Begin(GraphicsContext, ref Matrix, BlendStateDescription?, SamplerState, RasterizerStateDescription?, DepthStencilStateDescription?, int)
Begins a image batch rendering using the specified blend state, sampler, depth stencil, rasterizer state objects, and the view-projection transformation matrix. Passing null for any of the state objects selects the default default state objects (BlendState.AlphaBlend, DepthStencilState.None, RasterizerState.CullCounterClockwise, SamplerState.LinearClamp).
public void Begin(GraphicsContext graphicsContext, ref Matrix viewProjection, BlendStateDescription? blendState, SamplerState samplerState, RasterizerStateDescription? rasterizerState, DepthStencilStateDescription? depthStencilState, int stencilValue)
Parameters
graphicsContext
GraphicsContextThe graphics context to use.
viewProjection
MatrixThe view projection matrix used for this series of draw calls
blendState
BlendStateDescription?Blending options.
samplerState
SamplerStateTexture sampling options.
rasterizerState
RasterizerStateDescription?Rasterization options.
depthStencilState
DepthStencilStateDescription?Depth and stencil options.
stencilValue
intThe value of the stencil buffer to take as reference
Begin(GraphicsContext, ref Matrix, BlendStateDescription?, DepthStencilStateDescription?, int)
Begins a image batch rendering using the specified blend state, depth stencil and a view-projection transformation matrix. Passing null for any of the state objects selects the default default state objects (BlendState.AlphaBlend, DepthStencilState.None).
public void Begin(GraphicsContext graphicsContext, ref Matrix viewProjection, BlendStateDescription? blendState, DepthStencilStateDescription? depthStencilState, int stencilValue)
Parameters
graphicsContext
GraphicsContextThe graphics context to use.
viewProjection
MatrixThe view projection matrix used for this series of draw calls
blendState
BlendStateDescription?Blending options.
depthStencilState
DepthStencilStateDescription?Depth and stencil options.
stencilValue
intThe value of the stencil buffer to take as reference
BeginCustom(GraphicsContext, int)
public void BeginCustom(GraphicsContext graphicsContext, int overrideEffect)
Parameters
graphicsContext
GraphicsContextoverrideEffect
int
DrawBackground(ref Matrix, ref Vector3, ref Color, int)
Draw a colored background having provided size at the position specified by the world matrix.
public void DrawBackground(ref Matrix worldMatrix, ref Vector3 elementSize, ref Color color, int depthBias)
Parameters
worldMatrix
MatrixThe world matrix specifying the position of the element in the world
elementSize
Vector3The size of the element
color
ColorThe color of the element
depthBias
intThe depth bias to use when drawing the element
DrawCube(ref Matrix, ref Vector3, ref Color, int)
Draw a cube of the provided size at the position specified by the world matrix having the provided color.
public void DrawCube(ref Matrix worldMatrix, ref Vector3 elementSize, ref Color color, int depthBias)
Parameters
worldMatrix
MatrixThe world matrix specifying the position of the cube in the world
elementSize
Vector3The size of the cube
color
ColorThe color of the cube
depthBias
intThe depth bias to use when drawing the element
DrawImage(Texture, ref Matrix, ref RectangleF, ref Vector3, ref Vector4, ref Color, int, ImageOrientation, SwizzleMode, bool)
Batch a new border image draw to the draw list.
public void DrawImage(Texture texture, ref Matrix worldMatrix, ref RectangleF sourceRectangle, ref Vector3 elementSize, ref Vector4 borderSize, ref Color color, int depthBias, ImageOrientation imageOrientation = ImageOrientation.AsIs, SwizzleMode swizzle = SwizzleMode.None, bool snapImage = false)
Parameters
texture
TextureThe texture to use during the draw
worldMatrix
MatrixThe world matrix of the element
sourceRectangle
RectangleFThe rectangle indicating the source region of the texture to use
elementSize
Vector3The size of the ui element
borderSize
Vector4The size of the borders in the texture in pixels (left/top/right/bottom)
color
ColorThe color to apply to the texture image.
depthBias
intThe depth bias of the ui element
imageOrientation
ImageOrientationThe rotation to apply on the image uv
swizzle
SwizzleModeSwizzle mode indicating the swizzle use when sampling the texture in the shader
snapImage
boolIndicate if the image needs to be snapped or not
DrawRectangle(ref Matrix, ref Vector3, ref Color, int)
Draw a rectangle of the provided size at the position specified by the world matrix having the provided color.
public void DrawRectangle(ref Matrix worldMatrix, ref Vector3 elementSize, ref Color color, int depthBias)
Parameters
worldMatrix
MatrixThe world matrix specifying the position of the rectangle in the world
elementSize
Vector3The size of the rectangle
color
ColorThe color of the rectangle
depthBias
intThe depth bias to use when drawing the element
UpdateBufferValuesFromElementInfo(ref ElementInfo, nint, nint, int)
Update the mapped vertex and index buffer values using the provided element info.
protected override void UpdateBufferValuesFromElementInfo(ref BatchBase<UIBatch.UIImageDrawInfo>.ElementInfo elementInfo, nint vertexPtr, nint indexPtr, int vertexOffset)
Parameters
elementInfo
BatchBase<UIBatch.UIImageDrawInfo>.ElementInfoThe structure containing the information about the element to draw.
vertexPtr
nintindexPtr
nintvertexOffset
int