2020-04-17 11:14:09 +10:00
|
|
|
// Code auto-generated by piet-gpu-derive
|
|
|
|
|
2020-05-12 13:01:06 +10:00
|
|
|
struct LineSegRef {
|
|
|
|
uint offset;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct QuadSegRef {
|
|
|
|
uint offset;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct CubicSegRef {
|
|
|
|
uint offset;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct FillRef {
|
|
|
|
uint offset;
|
|
|
|
};
|
|
|
|
|
2020-10-09 21:43:29 +11:00
|
|
|
struct FillMaskRef {
|
|
|
|
uint offset;
|
|
|
|
};
|
|
|
|
|
2020-05-12 13:01:06 +10:00
|
|
|
struct StrokeRef {
|
|
|
|
uint offset;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct SetLineWidthRef {
|
|
|
|
uint offset;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct TransformRef {
|
|
|
|
uint offset;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct ElementRef {
|
|
|
|
uint offset;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct LineSeg {
|
|
|
|
vec2 p0;
|
|
|
|
vec2 p1;
|
|
|
|
};
|
|
|
|
|
|
|
|
#define LineSeg_size 16
|
|
|
|
|
|
|
|
LineSegRef LineSeg_index(LineSegRef ref, uint index) {
|
|
|
|
return LineSegRef(ref.offset + index * LineSeg_size);
|
|
|
|
}
|
|
|
|
|
|
|
|
struct QuadSeg {
|
|
|
|
vec2 p0;
|
|
|
|
vec2 p1;
|
|
|
|
vec2 p2;
|
|
|
|
};
|
|
|
|
|
|
|
|
#define QuadSeg_size 24
|
|
|
|
|
|
|
|
QuadSegRef QuadSeg_index(QuadSegRef ref, uint index) {
|
|
|
|
return QuadSegRef(ref.offset + index * QuadSeg_size);
|
|
|
|
}
|
|
|
|
|
|
|
|
struct CubicSeg {
|
|
|
|
vec2 p0;
|
|
|
|
vec2 p1;
|
|
|
|
vec2 p2;
|
|
|
|
vec2 p3;
|
|
|
|
};
|
|
|
|
|
|
|
|
#define CubicSeg_size 32
|
|
|
|
|
|
|
|
CubicSegRef CubicSeg_index(CubicSegRef ref, uint index) {
|
|
|
|
return CubicSegRef(ref.offset + index * CubicSeg_size);
|
|
|
|
}
|
|
|
|
|
|
|
|
struct Fill {
|
|
|
|
uint rgba_color;
|
|
|
|
};
|
|
|
|
|
|
|
|
#define Fill_size 4
|
|
|
|
|
|
|
|
FillRef Fill_index(FillRef ref, uint index) {
|
|
|
|
return FillRef(ref.offset + index * Fill_size);
|
|
|
|
}
|
|
|
|
|
2020-10-09 21:43:29 +11:00
|
|
|
struct FillMask {
|
|
|
|
float mask;
|
|
|
|
};
|
|
|
|
|
|
|
|
#define FillMask_size 4
|
|
|
|
|
|
|
|
FillMaskRef FillMask_index(FillMaskRef ref, uint index) {
|
|
|
|
return FillMaskRef(ref.offset + index * FillMask_size);
|
|
|
|
}
|
|
|
|
|
2020-05-12 13:01:06 +10:00
|
|
|
struct Stroke {
|
|
|
|
uint rgba_color;
|
|
|
|
};
|
|
|
|
|
|
|
|
#define Stroke_size 4
|
|
|
|
|
|
|
|
StrokeRef Stroke_index(StrokeRef ref, uint index) {
|
|
|
|
return StrokeRef(ref.offset + index * Stroke_size);
|
|
|
|
}
|
|
|
|
|
|
|
|
struct SetLineWidth {
|
|
|
|
float width;
|
|
|
|
};
|
|
|
|
|
|
|
|
#define SetLineWidth_size 4
|
|
|
|
|
|
|
|
SetLineWidthRef SetLineWidth_index(SetLineWidthRef ref, uint index) {
|
|
|
|
return SetLineWidthRef(ref.offset + index * SetLineWidth_size);
|
|
|
|
}
|
|
|
|
|
|
|
|
struct Transform {
|
|
|
|
vec4 mat;
|
|
|
|
vec2 translate;
|
|
|
|
};
|
|
|
|
|
|
|
|
#define Transform_size 24
|
|
|
|
|
|
|
|
TransformRef Transform_index(TransformRef ref, uint index) {
|
|
|
|
return TransformRef(ref.offset + index * Transform_size);
|
|
|
|
}
|
|
|
|
|
|
|
|
#define Element_Nop 0
|
2020-05-21 00:38:52 +10:00
|
|
|
#define Element_StrokeLine 1
|
|
|
|
#define Element_FillLine 2
|
2020-06-10 09:01:47 +10:00
|
|
|
#define Element_StrokeQuad 3
|
|
|
|
#define Element_FillQuad 4
|
|
|
|
#define Element_StrokeCubic 5
|
|
|
|
#define Element_FillCubic 6
|
|
|
|
#define Element_Stroke 7
|
|
|
|
#define Element_Fill 8
|
|
|
|
#define Element_SetLineWidth 9
|
|
|
|
#define Element_Transform 10
|
2020-10-09 21:43:29 +11:00
|
|
|
#define Element_FillMask 11
|
|
|
|
#define Element_FillMaskInv 12
|
2020-05-12 13:01:06 +10:00
|
|
|
#define Element_size 36
|
|
|
|
|
|
|
|
ElementRef Element_index(ElementRef ref, uint index) {
|
|
|
|
return ElementRef(ref.offset + index * Element_size);
|
|
|
|
}
|
|
|
|
|
|
|
|
LineSeg LineSeg_read(LineSegRef ref) {
|
|
|
|
uint ix = ref.offset >> 2;
|
|
|
|
uint raw0 = scene[ix + 0];
|
|
|
|
uint raw1 = scene[ix + 1];
|
|
|
|
uint raw2 = scene[ix + 2];
|
|
|
|
uint raw3 = scene[ix + 3];
|
|
|
|
LineSeg s;
|
|
|
|
s.p0 = vec2(uintBitsToFloat(raw0), uintBitsToFloat(raw1));
|
|
|
|
s.p1 = vec2(uintBitsToFloat(raw2), uintBitsToFloat(raw3));
|
|
|
|
return s;
|
|
|
|
}
|
|
|
|
|
|
|
|
QuadSeg QuadSeg_read(QuadSegRef ref) {
|
|
|
|
uint ix = ref.offset >> 2;
|
|
|
|
uint raw0 = scene[ix + 0];
|
|
|
|
uint raw1 = scene[ix + 1];
|
|
|
|
uint raw2 = scene[ix + 2];
|
|
|
|
uint raw3 = scene[ix + 3];
|
|
|
|
uint raw4 = scene[ix + 4];
|
|
|
|
uint raw5 = scene[ix + 5];
|
|
|
|
QuadSeg s;
|
|
|
|
s.p0 = vec2(uintBitsToFloat(raw0), uintBitsToFloat(raw1));
|
|
|
|
s.p1 = vec2(uintBitsToFloat(raw2), uintBitsToFloat(raw3));
|
|
|
|
s.p2 = vec2(uintBitsToFloat(raw4), uintBitsToFloat(raw5));
|
|
|
|
return s;
|
|
|
|
}
|
|
|
|
|
|
|
|
CubicSeg CubicSeg_read(CubicSegRef ref) {
|
|
|
|
uint ix = ref.offset >> 2;
|
|
|
|
uint raw0 = scene[ix + 0];
|
|
|
|
uint raw1 = scene[ix + 1];
|
|
|
|
uint raw2 = scene[ix + 2];
|
|
|
|
uint raw3 = scene[ix + 3];
|
|
|
|
uint raw4 = scene[ix + 4];
|
|
|
|
uint raw5 = scene[ix + 5];
|
|
|
|
uint raw6 = scene[ix + 6];
|
|
|
|
uint raw7 = scene[ix + 7];
|
|
|
|
CubicSeg s;
|
|
|
|
s.p0 = vec2(uintBitsToFloat(raw0), uintBitsToFloat(raw1));
|
|
|
|
s.p1 = vec2(uintBitsToFloat(raw2), uintBitsToFloat(raw3));
|
|
|
|
s.p2 = vec2(uintBitsToFloat(raw4), uintBitsToFloat(raw5));
|
|
|
|
s.p3 = vec2(uintBitsToFloat(raw6), uintBitsToFloat(raw7));
|
|
|
|
return s;
|
|
|
|
}
|
|
|
|
|
|
|
|
Fill Fill_read(FillRef ref) {
|
|
|
|
uint ix = ref.offset >> 2;
|
|
|
|
uint raw0 = scene[ix + 0];
|
|
|
|
Fill s;
|
|
|
|
s.rgba_color = raw0;
|
|
|
|
return s;
|
|
|
|
}
|
|
|
|
|
2020-10-09 21:43:29 +11:00
|
|
|
FillMask FillMask_read(FillMaskRef ref) {
|
|
|
|
uint ix = ref.offset >> 2;
|
|
|
|
uint raw0 = scene[ix + 0];
|
|
|
|
FillMask s;
|
|
|
|
s.mask = uintBitsToFloat(raw0);
|
|
|
|
return s;
|
|
|
|
}
|
|
|
|
|
2020-05-12 13:01:06 +10:00
|
|
|
Stroke Stroke_read(StrokeRef ref) {
|
|
|
|
uint ix = ref.offset >> 2;
|
|
|
|
uint raw0 = scene[ix + 0];
|
|
|
|
Stroke s;
|
|
|
|
s.rgba_color = raw0;
|
|
|
|
return s;
|
|
|
|
}
|
|
|
|
|
|
|
|
SetLineWidth SetLineWidth_read(SetLineWidthRef ref) {
|
|
|
|
uint ix = ref.offset >> 2;
|
|
|
|
uint raw0 = scene[ix + 0];
|
|
|
|
SetLineWidth s;
|
|
|
|
s.width = uintBitsToFloat(raw0);
|
|
|
|
return s;
|
|
|
|
}
|
|
|
|
|
|
|
|
Transform Transform_read(TransformRef ref) {
|
|
|
|
uint ix = ref.offset >> 2;
|
|
|
|
uint raw0 = scene[ix + 0];
|
|
|
|
uint raw1 = scene[ix + 1];
|
|
|
|
uint raw2 = scene[ix + 2];
|
|
|
|
uint raw3 = scene[ix + 3];
|
|
|
|
uint raw4 = scene[ix + 4];
|
|
|
|
uint raw5 = scene[ix + 5];
|
|
|
|
Transform s;
|
|
|
|
s.mat = vec4(uintBitsToFloat(raw0), uintBitsToFloat(raw1), uintBitsToFloat(raw2), uintBitsToFloat(raw3));
|
|
|
|
s.translate = vec2(uintBitsToFloat(raw4), uintBitsToFloat(raw5));
|
|
|
|
return s;
|
|
|
|
}
|
|
|
|
|
|
|
|
uint Element_tag(ElementRef ref) {
|
|
|
|
return scene[ref.offset >> 2];
|
|
|
|
}
|
|
|
|
|
2020-05-21 00:38:52 +10:00
|
|
|
LineSeg Element_StrokeLine_read(ElementRef ref) {
|
|
|
|
return LineSeg_read(LineSegRef(ref.offset + 4));
|
|
|
|
}
|
|
|
|
|
|
|
|
LineSeg Element_FillLine_read(ElementRef ref) {
|
2020-05-12 13:01:06 +10:00
|
|
|
return LineSeg_read(LineSegRef(ref.offset + 4));
|
|
|
|
}
|
|
|
|
|
2020-06-10 09:01:47 +10:00
|
|
|
QuadSeg Element_StrokeQuad_read(ElementRef ref) {
|
2020-05-12 13:01:06 +10:00
|
|
|
return QuadSeg_read(QuadSegRef(ref.offset + 4));
|
|
|
|
}
|
|
|
|
|
2020-06-10 09:01:47 +10:00
|
|
|
QuadSeg Element_FillQuad_read(ElementRef ref) {
|
|
|
|
return QuadSeg_read(QuadSegRef(ref.offset + 4));
|
|
|
|
}
|
|
|
|
|
|
|
|
CubicSeg Element_StrokeCubic_read(ElementRef ref) {
|
|
|
|
return CubicSeg_read(CubicSegRef(ref.offset + 4));
|
|
|
|
}
|
|
|
|
|
|
|
|
CubicSeg Element_FillCubic_read(ElementRef ref) {
|
2020-05-12 13:01:06 +10:00
|
|
|
return CubicSeg_read(CubicSegRef(ref.offset + 4));
|
|
|
|
}
|
|
|
|
|
|
|
|
Stroke Element_Stroke_read(ElementRef ref) {
|
|
|
|
return Stroke_read(StrokeRef(ref.offset + 4));
|
|
|
|
}
|
|
|
|
|
|
|
|
Fill Element_Fill_read(ElementRef ref) {
|
|
|
|
return Fill_read(FillRef(ref.offset + 4));
|
|
|
|
}
|
|
|
|
|
|
|
|
SetLineWidth Element_SetLineWidth_read(ElementRef ref) {
|
|
|
|
return SetLineWidth_read(SetLineWidthRef(ref.offset + 4));
|
|
|
|
}
|
|
|
|
|
|
|
|
Transform Element_Transform_read(ElementRef ref) {
|
|
|
|
return Transform_read(TransformRef(ref.offset + 4));
|
|
|
|
}
|
|
|
|
|
2020-10-09 21:43:29 +11:00
|
|
|
FillMask Element_FillMask_read(ElementRef ref) {
|
|
|
|
return FillMask_read(FillMaskRef(ref.offset + 4));
|
|
|
|
}
|
|
|
|
|
|
|
|
FillMask Element_FillMaskInv_read(ElementRef ref) {
|
|
|
|
return FillMask_read(FillMaskRef(ref.offset + 4));
|
|
|
|
}
|
|
|
|
|