// ==========================================
// ====== TODO: Research values here ========
// ==========================================

struct Vertex {
  float uv_x;
  float uv_y;
	float x, y, z;
};

struct GUIVertex {
	vec2 p0;
	vec2 p1;
	vec4 col;
};

layout (set = 0, binding = 0) uniform GlobalUniform {
	vec2 res;
} Globals;

layout (set = 0, binding = 1) uniform ShaderOptions {
	float placeholder;
} Options;

layout (rgba16f, set = 0, binding = 2) uniform image2D image;

layout (set = 0, binding = 3) uniform sampler SamplerNearest;

layout (set = 1, binding = 0) uniform texture2D Textures[];

layout (set = 2, binding = 0) uniform PBRMaterials {
	vec3 albedo;
	vec3 normal;
	float metallic;
	float roughness;
	float ao;
} Materials[];

layout (std430, buffer_reference) readonly buffer VertexBuffer {
	Vertex vertices[];
};

layout (std430, buffer_reference) readonly buffer GUIVertexBuffer {
	GUIVertex vertices[];
};

layout (push_constant) uniform Constants {
	vec2 res;
	float time;
} PC;
