32 struct alignas(16)
Box
53 static_assert(
sizeof(Box) == 96,
"Box struct size must be 96 bytes to match GLSL std430 layout");
54 static_assert(offsetof(Box, snappedPx) == 88,
"Box::snappedPx offset mismatch with GLSL");
55 static_assert(
sizeof(
Box::textureIndex) ==
sizeof(uint32_t),
"Box::textureIndex must be uint32_t for packing reasons");
79 static_assert(
sizeof(
Glyph) == 96,
"Glyph struct size must be 96 bytes to match GLSL std430 layout");
80 static_assert(
sizeof(
Glyph::textureIndex) ==
sizeof(uint32_t),
"Glyph::textureIndex must be uint32_t for packing reasons");
82 struct alignas(16)
Dot
95 float pos[2] = { 0, 0 };
118 static_assert(
sizeof(Line) == 96,
"Line struct size mismatch with GLSL std430 layout");
119 static_assert(offsetof(Line, colorIndex) == 48,
"Line::colorIndex offset mismatch");
120 static_assert(offsetof(Line, lineWidth) == 52,
"Line::lineWidth offset mismatch");
121 static_assert(offsetof(Line, gradientOffset) == 64,
"Line::gradientOffset offset mismatch");
122 static_assert(offsetof(Line, p0) == 72,
"Line::p0 offset mismatch");
177 static_assert(
sizeof(
Circle) == 96,
"Circle struct size mismatch with GLSL std430 layout");
178 static_assert(offsetof(
Circle, center) == 48,
"Circle::center offset mismatch");
179 static_assert(offsetof(
Circle, colorIndex) == 64,
"Circle::colorIndex offset mismatch");
193 static_assert(
sizeof(Occluder) == 64,
"Occluder struct size mismatch with GLSL std430 layout");
237 {
"box_shader",
sizeof(
Box), 0 },
238 {
"glyph_shader",
sizeof(
Glyph), 1 },
240 {
"line_shader",
sizeof(
Line), 3 },
241 {
"triangle_shader",
sizeof(
Triangle), 4 },
242 {
"quad_shader",
sizeof(
Quad), 4 },
243 {
"circle_shader",
sizeof(
Circle), 3 },
ImageIndex
Index of an image in the graphics context's image set, as the shaders sample it.
Definition gui_image.h:37
PrimitiveKind
Definition gui_render_primitives.h:200
constexpr PrimitiveSpec kPrimitiveSpecs[kPrimitiveKindCount]
Push-constant slot order matches the GLSL push block (box, glyph, dot, line, triangle).
Definition gui_render_primitives.h:236
uint64_t DeviceAddress
Shader-visible buffer address.
Definition gui_render_primitives.h:197
PrimitiveShape
The vertices a primitive's vertex shader is run for; gl_VertexIndex divided by their count is the pri...
Definition gui_render_primitives.h:216
constexpr float kPrimitiveDepthStep
The depth between two primitives drawn one after the other; past the depth range all are at the neare...
Definition gui_render_primitives.h:30
constexpr size_t kPrimitiveKindCount
Definition gui_render_primitives.h:211
@ Invalid
Definition gui_image.h:37
@ Count
Definition gui_render_primitives.h:209
@ Triangle
3 corners of one triangle around its shape (clipped per fragment)
Definition gui_render_primitives.h:218
@ Quad
4 corners of its rectangle, drawn as two indexed triangles (0,1,3, 0,3,2)
Definition gui_render_primitives.h:217
Definition gui_logging.h:24
Definition gui_render_primitives.h:33
tachyon::int2 pos
Definition gui_render_primitives.h:39
uint32_t _pad0
Definition gui_render_primitives.h:48
int16_t snappedPx[4]
The box in window pixels, snapped relative to its parent (SnapToParent); { x0, y0,...
Definition gui_render_primitives.h:51
tachyon::ImageIndex textureIndex
Definition gui_render_primitives.h:42
tachyon::int2 size
Definition gui_render_primitives.h:40
tachyon::int2 clipMin
Definition gui_render_primitives.h:36
tachyon::int2 clipMax
Definition gui_render_primitives.h:37
uint32_t styleIndex
"from" state GPU style index
Definition gui_render_primitives.h:43
glsl_float4 transform1
Definition gui_render_primitives.h:35
int16_t _pad3
Definition gui_render_primitives.h:45
uint32_t styleIndexTo
"to" state GPU style index
Definition gui_render_primitives.h:46
float blendT
0 = fully "from", 1 = fully "to"
Definition gui_render_primitives.h:47
int16_t colorIndex
color style overriding the background (gradients too); 0: none
Definition gui_render_primitives.h:44
glsl_float4 transform0
Definition gui_render_primitives.h:34
A circle outline: the ring lineWidth wide around center at radius, its color and dashes running clock...
Definition gui_render_primitives.h:162
tachyon::int2 clipMin
Definition gui_render_primitives.h:165
tachyon::float2 center
Definition gui_render_primitives.h:168
glsl_float4 transform1
Definition gui_render_primitives.h:164
float dashSize
Definition gui_render_primitives.h:172
float gradientOffset
Definition gui_render_primitives.h:174
tachyon::int2 clipMax
Definition gui_render_primitives.h:166
float lineWidth
Definition gui_render_primitives.h:170
int colorIndex
Definition gui_render_primitives.h:171
glsl_float4 transform0
Definition gui_render_primitives.h:163
float gradientScale
Definition gui_render_primitives.h:175
float dashOffset
Definition gui_render_primitives.h:173
float radius
Definition gui_render_primitives.h:169
Definition gui_render_primitives.h:83
glsl_float4 transform1
Definition gui_render_primitives.h:85
float size
Definition gui_render_primitives.h:90
glsl_float4 transform0
Definition gui_render_primitives.h:84
tachyon::color4f color
Definition gui_render_primitives.h:89
tachyon::int2 clipMin
Definition gui_render_primitives.h:86
float _pad_size_to_pos
std430 aligns vec2 to 8 bytes: pos must start at offset 72, not 68.
Definition gui_render_primitives.h:92
tachyon::int2 clipMax
Definition gui_render_primitives.h:87
float pos[2]
Float so positions far from origin or under a pan/zoom transform don't wrap.
Definition gui_render_primitives.h:95
Definition gui_render_primitives.h:248
DeviceAddress boxStyleBuffer
Definition gui_render_primitives.h:253
tachyon::float4x4 worldMatrix
Definition gui_render_primitives.h:249
DeviceAddress primitiveAddresses[5]
Indexed by PrimitiveSpec::pushSlot (slot order is shader contract).
Definition gui_render_primitives.h:252
float _timePad
pad to 128 bytes (Vulkan minimum)
Definition gui_render_primitives.h:257
DeviceAddress colorStyleBuffer
Definition gui_render_primitives.h:254
float elapsedTime
frame clock seconds, for shader animation
Definition gui_render_primitives.h:256
Definition gui_render_primitives.h:58
int16_t textColorIndex
Definition gui_render_primitives.h:75
glsl_float4 transform0
Definition gui_render_primitives.h:59
tachyon::ImageIndex textureIndex
Definition gui_render_primitives.h:74
tachyon::int2 clipMax
Definition gui_render_primitives.h:62
float scale
Definition gui_render_primitives.h:70
int16_t shadowBlur
-1: the glyph itself; 0 and up: a text shadow blurred by this many 1/8 pixels
Definition gui_render_primitives.h:77
uint16_t bpp
Definition gui_render_primitives.h:71
uint16_t mode
Definition gui_render_primitives.h:72
tachyon::int2 clipMin
Definition gui_render_primitives.h:61
tachyon::float2 uvMax
Definition gui_render_primitives.h:68
tachyon::float2 uvMin
Definition gui_render_primitives.h:67
tachyon::float2 pos
Definition gui_render_primitives.h:64
tachyon::float2 size
Definition gui_render_primitives.h:65
glsl_float4 transform1
Definition gui_render_primitives.h:60
Definition gui_render_primitives.h:99
tachyon::short2 p1
Definition gui_render_primitives.h:113
glsl_float4 transform0
Definition gui_render_primitives.h:100
float dashSize
Definition gui_render_primitives.h:107
float lineWidth
Definition gui_render_primitives.h:106
float gradientOffset
Definition gui_render_primitives.h:109
float gradientScale
Definition gui_render_primitives.h:110
tachyon::short2 p0
Definition gui_render_primitives.h:112
tachyon::int2 clipMax
Definition gui_render_primitives.h:103
glsl_float4 transform1
Definition gui_render_primitives.h:101
float dashOffset
Definition gui_render_primitives.h:108
tachyon::int2 clipMin
Definition gui_render_primitives.h:102
tachyon::short2 p2
Definition gui_render_primitives.h:114
tachyon::short2 p3
Definition gui_render_primitives.h:115
int colorIndex
Definition gui_render_primitives.h:105
Depth only: marks pos/size as covered by opaque content drawn after it, so what was drawn before unde...
Definition gui_render_primitives.h:184
glsl_float4 transform1
Definition gui_render_primitives.h:186
tachyon::int2 clipMin
Definition gui_render_primitives.h:187
glsl_float4 transform0
Definition gui_render_primitives.h:185
tachyon::int2 size
Definition gui_render_primitives.h:191
tachyon::int2 clipMax
Definition gui_render_primitives.h:188
tachyon::int2 pos
Definition gui_render_primitives.h:190
Definition gui_render_primitives.h:222
bool depthOnly
Writes depth and no color, before the other kinds; they test depth without writing it.
Definition gui_render_primitives.h:228
PrimitiveShape shape
Definition gui_render_primitives.h:226
uint8_t pushSlot
index into GPUDrawPushConstants::primitiveAddresses
Definition gui_render_primitives.h:225
const char * shaderBaseName
backend composes path + stage suffix + format
Definition gui_render_primitives.h:223
uint32_t stride
per-primitive byte size (std430)
Definition gui_render_primitives.h:224
Definition gui_render_primitives.h:143
glsl_float4 transform1
Definition gui_render_primitives.h:145
tachyon::int2 clipMin
Definition gui_render_primitives.h:146
tachyon::ImageIndex textureIndex
Definition gui_render_primitives.h:152
float cornerRadius
Definition gui_render_primitives.h:156
tachyon::int2 clipMax
Definition gui_render_primitives.h:147
glsl_float4 transform0
Definition gui_render_primitives.h:144
tachyon::int2 pos
Definition gui_render_primitives.h:149
int16_t blur
shadow blur, pixels; pos/size include it on every side
Definition gui_render_primitives.h:155
tachyon::int2 size
Definition gui_render_primitives.h:150
int16_t colorIndex
Definition gui_render_primitives.h:154
Definition gui_render_primitives.h:125
glsl_float4 transform0
Definition gui_render_primitives.h:126
int16_t colorIndex
Definition gui_render_primitives.h:137
tachyon::float2 p1
Definition gui_render_primitives.h:132
tachyon::ImageIndex textureIndex
Definition gui_render_primitives.h:135
tachyon::float2 p0
Definition gui_render_primitives.h:131
tachyon::int2 clipMax
Definition gui_render_primitives.h:129
glsl_float4 transform1
Definition gui_render_primitives.h:127
tachyon::int2 clipMin
Definition gui_render_primitives.h:128
int16_t hardEdges
TriangleEdges without a soft edge.
Definition gui_render_primitives.h:139
tachyon::float2 p2
Definition gui_render_primitives.h:133
Definition gui_base_types.h:395
Definition gui_base_types.h:121
Definition gui_base_types.h:259
Definition gui_render_primitives.h:21
float z
Definition gui_render_primitives.h:21
float x
Definition gui_render_primitives.h:21
float y
Definition gui_render_primitives.h:21
float w
Definition gui_render_primitives.h:21
Integer 2D vector.
Definition gui_base_types.h:19
Definition gui_base_types.h:313