// Copyright (c) 2023 Dominic Masters
// 
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT

#pragma once
#include "dawnopengl.hpp"
#include "display/shader/IShaderStage.hpp"

namespace Dawn {
  class ShaderStage : public IShaderStage {
    public:
      GLuint id = -1;

      /**
       * Constructs a new ShaderStage.
       * 
       * @param type The type of shader this is.
       * @param source The source code to compile.
       */
      ShaderStage(const enum ShaderStageType type, const std::string source);

      /**
       * Disposes of the shader stage.
       */
      ~ShaderStage();
  };
}