#pragma once

#include <GL/glew.h>
#include <glm/glm.hpp>
#include "math.h"

struct Light {
  Vector3 color = Vector3(1.0f, 1.0f, 1.0f);
  f32 ambient_intensity = 1.0f;

  // For a directional light
  Vector3 direction = Vector3(0.0f, -1.0f, 0.0f); // Default to down
  f32 diffuse_intensity = 0.0f;

  Light(Vector3 color, f32 ambient_intensity, Vector3 direction, f32 diffuse_intensity);
  ~Light() = default;
};

void use_light(Light *light, f32 color_location, f32 ambient_intensity_location, f32 direction_location, f32 diffuse_intensity_location);
