RenderBuffer2D Type
An allocation-free buffer for 2D render commands, sorted by layer.
Commands are accumulated each frame via RenderBuffer2D.Add, sorted by layer, then executed in order via pattern matching. Uses ArrayPool for the backing store to avoid per-frame heap allocations. The buffer is designed to be cleared and repopulated each frame. RenderBuffer2D.Clear resets the count without deallocating the internal array.
Constructors
| Constructor |
Description
|
|
|
Instance members
| Instance member |
Description
|
Adds a render command to the buffer.
|
|
Full Usage:
this.AddBeginCamera
Parameters:
Camera2D
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddBeginCameraConfig
Parameters:
Camera2DConfig
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddBeginShader
Parameters:
Shader
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddBeginTarget
Parameters:
RenderTexture2D
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddBezier
Parameters:
Vector2
control : Vector2
finish : Vector2
color : Color
thickness : float32
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddCircleGradient
Parameters:
int
centerY : int
radius : float32
inner : Color
outer : Color
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddCircleOutline
Parameters:
Vector2
radius : float32
color : Color
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddCircleSector
Parameters:
Vector2
radius : float32
startAngle : float32
endAngle : float32
color : Color
segments : int
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddCircleSectorOutline
Parameters:
Vector2
radius : float32
startAngle : float32
endAngle : float32
color : Color
segments : int
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddClear
Parameters:
Color
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddClearScissor
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddDirectionalLight
Parameters:
LightContext2D
direction : Vector2
color : Color
intensity : float32
castsShadows : bool
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddDirectionalLightState
Parameters:
LightContext2D
light : DirectionalLight2D
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddDisableShadows
Parameters:
LightContext2D
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddDrawImmediate
Parameters:
unit -> unit
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddEllipseOutline
Parameters:
int
centerY : int
radiusH : float32
radiusV : float32
color : Color
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddEnableShadows
Parameters:
LightContext2D
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddEndCamera
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddEndLighting
Parameters:
LightContext2D
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddEndShader
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddEndTarget
Parameters:
int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddFillCircle
Parameters:
Vector2
radius : float32
color : Color
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddFillEllipse
Parameters:
int
centerY : int
radiusH : float32
radiusV : float32
color : Color
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddFillPoly
Parameters:
Vector2
sides : int
radius : float32
rotation : float32
color : Color
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddFillRect
Parameters:
float32
y : float32
w : float32
h : float32
color : Color
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddFillRectRounded
Parameters:
float32
y : float32
w : float32
h : float32
color : Color
roundness : float32
segments : int
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddFillRing
Parameters:
Vector2
innerR : float32
outerR : float32
startAngle : float32
endAngle : float32
color : Color
segments : int
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddLine
Parameters:
Vector2
finish : Vector2
color : Color
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddLineStrip
Parameters:
Vector2[]
color : Color
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddLineThick
Parameters:
Vector2
finish : Vector2
color : Color
thickness : float32
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddLitAnimatedSprite
Parameters:
LightContext2D
dest : Rectangle
animSprite : AnimatedSprite
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddLitSprite
Parameters:
LightContext2D
sprite : SpriteState
Modifiers: inline |
|
Full Usage:
this.AddOccluder
Parameters:
LightContext2D
occluder : Occluder2D
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddParticles
Parameters:
Texture2D
particles : Particle2D[]
count : int
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddPointLight
Parameters:
LightContext2D
light : PointLight2D
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddPolyOutline
Parameters:
Vector2
sides : int
radius : float32
rotation : float32
color : Color
thickness : float32
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
|
|
Full Usage:
this.AddRectGradient
Parameters:
float32
y : float32
w : float32
h : float32
tl : Color
bl : Color
tr : Color
br : Color
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddRectGradientH
Parameters:
int
y : int
w : int
h : int
left : Color
right : Color
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddRectGradientV
Parameters:
int
y : int
w : int
h : int
top : Color
bottom : Color
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddRectOutline
Parameters:
float32
y : float32
w : float32
h : float32
color : Color
thickness : float32
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddRectRoundedOutline
Parameters:
float32
y : float32
w : float32
h : float32
color : Color
roundness : float32
segments : int
thickness : float32
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddRingOutline
Parameters:
Vector2
innerR : float32
outerR : float32
startAngle : float32
endAngle : float32
color : Color
segments : int
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddSetAmbient
Parameters:
LightContext2D
color : Color
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddSetBlend
Parameters:
BlendMode
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddSetLineWidth
Parameters:
float32
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddSetScissor
Parameters:
int
y : int
w : int
h : int
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddSetViewport
Parameters:
int
y : int
w : int
h : int
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
|
|
Full Usage:
this.AddText
Parameters:
Font
text : string
position : Vector2
size : float32
spacing : float32
tint : Color
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
size→FontSize, spacing used directly (raylib DrawTextEx semantics).
|
|
|
Full Usage:
this.AddTriangle
Parameters:
Vector2
v2 : Vector2
v3 : Vector2
color : Color
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddTriangleFan
Parameters:
Vector2[]
color : Color
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.AddTriangleStrip
Parameters:
Vector2[]
color : Color
layer : int<MeasureProduct<RenderLayer, MeasureOne>>
Modifiers: inline |
|
Full Usage:
this.Clear
|
Clears all commands from the buffer without deallocating the backing array. Call this at the start of each frame before populating with new commands. |
Full Usage:
this.Count
Returns: int
|
The number of commands currently in the buffer.
|
Full Usage:
this.PostProcessCount
Returns: int
|
Number of
|
Full Usage:
this.Sort
|
Sorts commands by layer in ascending order, preserving insertion order for same-layer commands. Uses precomputed int64 keys (layer in high 32 bits, insertion index in low 32 bits) to avoid repeated pattern matching during comparisons and guarantee stable sort. Must be called after RenderBuffer2D.Clear and population, before iteration. |
Mibo