blob: 3527bd0b7539cb2b569adb34c2f80de2fe8a4a8f [file] [log] [blame]
// SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense
// Layout of per-tile command list
// Initial allocation, in u32's.
let PTCL_INITIAL_ALLOC = 64u;
let PTCL_INCREMENT = 256u;
// Amount of space taken by jump
let PTCL_HEADROOM = 2u;
// Tags for PTCL commands
let CMD_END = 0u;
let CMD_FILL = 1u;
let CMD_STROKE = 2u;
let CMD_SOLID = 3u;
let CMD_COLOR = 5u;
let CMD_LIN_GRAD = 6u;
let CMD_RAD_GRAD = 7u;
let CMD_BEGIN_CLIP = 9u;
let CMD_END_CLIP = 10u;
let CMD_JUMP = 11u;
// The individual PTCL structs are written here, but read/write is by
// hand in the relevant shaders
struct CmdFill {
tile: u32,
backdrop: i32,
}
struct CmdStroke {
tile: u32,
half_width: f32,
}
struct CmdJump {
new_ix: u32,
}
struct CmdColor {
rgba_color: u32,
}
struct CmdLinGrad {
index: u32,
line_x: f32,
line_y: f32,
line_c: f32,
}
struct CmdRadGrad {
index: u32,
matrx: vec4<f32>,
xlat: vec2<f32>,
c1: vec2<f32>,
ra: f32,
roff: f32,
}
struct CmdEndClip {
blend: u32,
alpha: f32,
}