hyporo-cpp/source/hyporo/gpu/shader.hpp

50 lines
619 B
C++
Raw Normal View History

2022-09-24 16:07:46 +05:00
#pragma once
#include "context.hpp"
#include <string>
namespace hpr::gpu
{
class Shader : public Context
{
2022-10-05 21:10:51 +05:00
friend class Device;
2022-09-24 16:07:46 +05:00
public:
enum class ShaderType
{
Vertex,
Geometry,
Fragment,
ShaderTypeCount
};
2022-10-05 21:10:51 +05:00
protected:
std::string p_filename;
std::string p_label;
ShaderType p_type;
public:
2022-09-24 16:07:46 +05:00
// Constructors
Shader();
Shader(DeviceAPI api);
virtual ~Shader();
// Member functions
const std::string filename() const;
const std::string label() const;
2022-10-05 21:10:51 +05:00
const ShaderType type() const;
2022-09-24 16:07:46 +05:00
};
} // end namespace hpr::gpu