#ifndef GUARD_2AF8C38E79755453C7B276BABE0DA7AE
#define GUARD_2AF8C38E79755453C7B276BABE0DA7AE

#include "types.h"

struct sw_shader {
	u32 _shader;
};

struct sw_shaderprogram {
	u32 _program;
};

#define SW_SHADER_VERTEX 1
#define SW_SHADER_FRAGMENT 2

#define SW_SHADERLOC_POS 0
/*
struct sw_shader sw_shader_create(char const *source, i32 type);

struct sw_shaderprogram
sw_shaderprogram_create(char const *vertex, char const *fragment);
*/

struct sw_shader sw_shader_create(u8 *data, u32 len, i32 type, bool compiled);
struct sw_shaderprogram sw_shaderprogram_create(
    u8 *vert_data, u32 vert_len, u8 *frag_data, u32 frag_len, bool compiled
);

void sw_shaderprogram_use(struct sw_shaderprogram program);

#endif /* GUARD_2AF8C38E79755453C7B276BABE0DA7AE */
