1#include <simd/simd.h>
2
3typedef struct {
4 vector_float2 viewport_size;
5} GPUIUniforms;
6
7typedef enum {
8 GPUIQuadInputIndexVertices = 0,
9 GPUIQuadInputIndexQuads = 1,
10 GPUIQuadInputIndexUniforms = 2,
11} GPUIQuadInputIndex;
12
13typedef struct {
14 vector_float2 origin;
15 vector_float2 size;
16 vector_uchar4 background_color;
17 float border_top;
18 float border_right;
19 float border_bottom;
20 float border_left;
21 vector_uchar4 border_color;
22 float corner_radius;
23} GPUIQuad;
24
25typedef enum {
26 GPUIShadowInputIndexVertices = 0,
27 GPUIShadowInputIndexShadows = 1,
28 GPUIShadowInputIndexUniforms = 2,
29} GPUIShadowInputIndex;
30
31typedef struct {
32 vector_float2 origin;
33 vector_float2 size;
34 float corner_radius;
35 float sigma;
36 vector_uchar4 color;
37} GPUIShadow;
38
39typedef enum {
40 GPUISpriteInputIndexVertices = 0,
41 GPUISpriteInputIndexSprites = 1,
42 GPUISpriteInputIndexUniforms = 2,
43} GPUISpriteInputIndex;
44
45typedef struct {
46 vector_float2 origin;
47 vector_float2 size;
48 vector_float2 atlas_origin;
49 vector_uchar4 color;
50} GPUISprite;