Table of Contents

Class UIBatch

Namespace
Stride.Graphics
Assembly
Stride.Graphics.dll

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 GraphicsDevice

A valid instance of GraphicsDevice.

Properties

SDFSpriteFontEffect

public EffectInstance SDFSpriteFontEffect { get; }

Property Value

EffectInstance

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 GraphicsContext

The graphics context to use.

viewProjection Matrix

The view projection matrix used for this series of draw calls

blendState BlendStateDescription?

Blending options.

samplerState SamplerState

Texture sampling options.

rasterizerState RasterizerStateDescription?

Rasterization options.

depthStencilState DepthStencilStateDescription?

Depth and stencil options.

stencilValue int

The 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 GraphicsContext

The graphics context to use.

viewProjection Matrix

The view projection matrix used for this series of draw calls

blendState BlendStateDescription?

Blending options.

depthStencilState DepthStencilStateDescription?

Depth and stencil options.

stencilValue int

The value of the stencil buffer to take as reference

BeginCustom(GraphicsContext, int)

public void BeginCustom(GraphicsContext graphicsContext, int overrideEffect)

Parameters

graphicsContext GraphicsContext
overrideEffect 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 Matrix

The world matrix specifying the position of the element in the world

elementSize Vector3

The size of the element

color Color

The color of the element

depthBias int

The 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 Matrix

The world matrix specifying the position of the cube in the world

elementSize Vector3

The size of the cube

color Color

The color of the cube

depthBias int

The 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 Texture

The texture to use during the draw

worldMatrix Matrix

The world matrix of the element

sourceRectangle RectangleF

The rectangle indicating the source region of the texture to use

elementSize Vector3

The size of the ui element

borderSize Vector4

The size of the borders in the texture in pixels (left/top/right/bottom)

color Color

The color to apply to the texture image.

depthBias int

The depth bias of the ui element

imageOrientation ImageOrientation

The rotation to apply on the image uv

swizzle SwizzleMode

Swizzle mode indicating the swizzle use when sampling the texture in the shader

snapImage bool

Indicate 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 Matrix

The world matrix specifying the position of the rectangle in the world

elementSize Vector3

The size of the rectangle

color Color

The color of the rectangle

depthBias int

The 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>.ElementInfo

The structure containing the information about the element to draw.

vertexPtr nint
indexPtr nint
vertexOffset int