aboutsummaryrefslogtreecommitdiff
path: root/vendor/gioui.org/shader/piet/state.h
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/gioui.org/shader/piet/state.h')
-rw-r--r--vendor/gioui.org/shader/piet/state.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/vendor/gioui.org/shader/piet/state.h b/vendor/gioui.org/shader/piet/state.h
new file mode 100644
index 0000000..d2df804
--- /dev/null
+++ b/vendor/gioui.org/shader/piet/state.h
@@ -0,0 +1,73 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense
+
+// Code auto-generated by piet-gpu-derive
+
+struct StateRef {
+ uint offset;
+};
+
+struct State {
+ vec4 mat;
+ vec2 translate;
+ vec4 bbox;
+ float linewidth;
+ uint flags;
+ uint path_count;
+ uint pathseg_count;
+ uint trans_count;
+};
+
+#define State_size 60
+
+StateRef State_index(StateRef ref, uint index) {
+ return StateRef(ref.offset + index * State_size);
+}
+
+State State_read(StateRef ref) {
+ uint ix = ref.offset >> 2;
+ uint raw0 = state[ix + 0];
+ uint raw1 = state[ix + 1];
+ uint raw2 = state[ix + 2];
+ uint raw3 = state[ix + 3];
+ uint raw4 = state[ix + 4];
+ uint raw5 = state[ix + 5];
+ uint raw6 = state[ix + 6];
+ uint raw7 = state[ix + 7];
+ uint raw8 = state[ix + 8];
+ uint raw9 = state[ix + 9];
+ uint raw10 = state[ix + 10];
+ uint raw11 = state[ix + 11];
+ uint raw12 = state[ix + 12];
+ uint raw13 = state[ix + 13];
+ uint raw14 = state[ix + 14];
+ State s;
+ s.mat = vec4(uintBitsToFloat(raw0), uintBitsToFloat(raw1), uintBitsToFloat(raw2), uintBitsToFloat(raw3));
+ s.translate = vec2(uintBitsToFloat(raw4), uintBitsToFloat(raw5));
+ s.bbox = vec4(uintBitsToFloat(raw6), uintBitsToFloat(raw7), uintBitsToFloat(raw8), uintBitsToFloat(raw9));
+ s.linewidth = uintBitsToFloat(raw10);
+ s.flags = raw11;
+ s.path_count = raw12;
+ s.pathseg_count = raw13;
+ s.trans_count = raw14;
+ return s;
+}
+
+void State_write(StateRef ref, State s) {
+ uint ix = ref.offset >> 2;
+ state[ix + 0] = floatBitsToUint(s.mat.x);
+ state[ix + 1] = floatBitsToUint(s.mat.y);
+ state[ix + 2] = floatBitsToUint(s.mat.z);
+ state[ix + 3] = floatBitsToUint(s.mat.w);
+ state[ix + 4] = floatBitsToUint(s.translate.x);
+ state[ix + 5] = floatBitsToUint(s.translate.y);
+ state[ix + 6] = floatBitsToUint(s.bbox.x);
+ state[ix + 7] = floatBitsToUint(s.bbox.y);
+ state[ix + 8] = floatBitsToUint(s.bbox.z);
+ state[ix + 9] = floatBitsToUint(s.bbox.w);
+ state[ix + 10] = floatBitsToUint(s.linewidth);
+ state[ix + 11] = s.flags;
+ state[ix + 12] = s.path_count;
+ state[ix + 13] = s.pathseg_count;
+ state[ix + 14] = s.trans_count;
+}
+