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

struct apVertex {
	vec4 pos;
	vec4 col;
};

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

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

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 (set = 3, binding = 0) uniform ModelMeshes {
	VertexBuffer buf;
} Meshes[];

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