2020-04-17 11:14:09 +10:00
|
|
|
use piet_gpu_derive::piet_gpu;
|
|
|
|
|
|
|
|
piet_gpu! {
|
|
|
|
#[gpu_write]
|
|
|
|
mod ptcl {
|
|
|
|
struct CmdCircle {
|
2020-04-22 10:55:17 +10:00
|
|
|
center: [f32; 2],
|
|
|
|
radius: f32,
|
|
|
|
rgba_color: u32,
|
2020-04-17 11:14:09 +10:00
|
|
|
}
|
|
|
|
struct CmdLine {
|
|
|
|
start: [f32; 2],
|
|
|
|
end: [f32; 2],
|
|
|
|
}
|
|
|
|
struct CmdStroke {
|
|
|
|
// In existing code, this is f16. Should we have support?
|
|
|
|
halfWidth: f32,
|
|
|
|
rgba_color: u32,
|
|
|
|
}
|
|
|
|
struct CmdFill {
|
|
|
|
start: [f32; 2],
|
|
|
|
end: [f32; 2],
|
|
|
|
}
|
|
|
|
struct CmdFillEdge {
|
|
|
|
// The sign is only one bit.
|
|
|
|
sign: i32,
|
|
|
|
y: f32,
|
|
|
|
}
|
|
|
|
struct CmdDrawFill {
|
|
|
|
backdrop: i32,
|
|
|
|
rgba_color: u32,
|
|
|
|
}
|
|
|
|
struct CmdSolid {
|
|
|
|
rgba_color: u32,
|
|
|
|
}
|
2020-04-26 03:15:22 +10:00
|
|
|
struct CmdJump {
|
|
|
|
new_ref: u32,
|
|
|
|
}
|
2020-04-17 11:14:09 +10:00
|
|
|
enum Cmd {
|
|
|
|
End,
|
|
|
|
Circle(CmdCircle),
|
|
|
|
Line(CmdLine),
|
|
|
|
Fill(CmdFill),
|
|
|
|
Stroke(CmdStroke),
|
|
|
|
FillEdge(CmdFillEdge),
|
|
|
|
DrawFill(CmdDrawFill),
|
|
|
|
Solid(CmdSolid),
|
2020-04-26 03:15:22 +10:00
|
|
|
Jump(CmdJump),
|
2020-04-17 11:14:09 +10:00
|
|
|
Bail,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|