45 lines
567 B
C++
45 lines
567 B
C++
#pragma once
|
|
|
|
#include "context.hpp"
|
|
|
|
#include <string>
|
|
|
|
|
|
namespace hpr::gpu
|
|
{
|
|
|
|
class Shader : public Context
|
|
{
|
|
protected:
|
|
|
|
std::string p_filename;
|
|
std::string p_label;
|
|
|
|
public:
|
|
|
|
enum class ShaderType
|
|
{
|
|
Vertex,
|
|
Geometry,
|
|
Fragment,
|
|
ShaderTypeCount
|
|
};
|
|
|
|
// Constructors
|
|
|
|
Shader();
|
|
|
|
Shader(DeviceAPI api);
|
|
|
|
virtual ~Shader();
|
|
|
|
// Member functions
|
|
|
|
const std::string filename() const;
|
|
|
|
const std::string label() const;
|
|
|
|
const ShaderType shaderType() const;
|
|
};
|
|
|
|
} // end namespace hpr::gpu
|