2022-11-20 03:45:42 +11:00
|
|
|
// SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense
|
2022-10-29 06:01:15 +11:00
|
|
|
|
2022-10-31 02:08:22 +11:00
|
|
|
// Layout of per-tile command list
|
|
|
|
// Initial allocation, in u32's.
|
2022-12-09 03:53:35 +11:00
|
|
|
let PTCL_INITIAL_ALLOC = 64u;
|
|
|
|
let PTCL_INCREMENT = 256u;
|
2022-10-31 02:08:22 +11:00
|
|
|
|
|
|
|
// Amount of space taken by jump
|
2022-12-09 03:53:35 +11:00
|
|
|
let PTCL_HEADROOM = 2u;
|
2022-10-31 02:08:22 +11:00
|
|
|
|
2022-10-29 06:01:15 +11:00
|
|
|
// Tags for PTCL commands
|
2022-12-09 03:53:35 +11:00
|
|
|
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;
|
2022-10-29 06:01:15 +11:00
|
|
|
|
|
|
|
// The individual PTCL structs are written here, but read/write is by
|
|
|
|
// hand in the relevant shaders
|
|
|
|
|
|
|
|
struct CmdFill {
|
|
|
|
tile: u32,
|
|
|
|
backdrop: i32,
|
|
|
|
}
|
|
|
|
|
2022-11-05 06:40:54 +11:00
|
|
|
struct CmdStroke {
|
|
|
|
tile: u32,
|
|
|
|
half_width: f32,
|
|
|
|
}
|
|
|
|
|
2022-10-29 06:01:15 +11:00
|
|
|
struct CmdJump {
|
2022-10-31 02:08:22 +11:00
|
|
|
new_ix: u32,
|
2022-10-29 06:01:15 +11:00
|
|
|
}
|
|
|
|
|
|
|
|
struct CmdColor {
|
|
|
|
rgba_color: u32,
|
|
|
|
}
|
2022-11-11 14:48:36 +11:00
|
|
|
|
|
|
|
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,
|
|
|
|
}
|
2022-11-30 05:28:25 +11:00
|
|
|
|
|
|
|
struct CmdEndClip {
|
|
|
|
blend: u32,
|
|
|
|
alpha: f32,
|
|
|
|
}
|