30 lines
955 B
C++
30 lines
955 B
C++
#pragma once
|
|
|
|
#include "Types.hpp"
|
|
#include "Matrix4x4.hpp"
|
|
#include "Vector2.hpp"
|
|
#include "Vector3.hpp"
|
|
#include "Vector4.hpp"
|
|
|
|
namespace TSE
|
|
{
|
|
class IShader
|
|
{
|
|
public:
|
|
|
|
virtual void Bind() const = 0;
|
|
virtual void Unbind() const = 0;
|
|
|
|
virtual void SetUniform(const char* name, int value) = 0;
|
|
virtual void SetUniform(const char* name, const int* value, int count) = 0;
|
|
virtual void SetUniform(const char* name, const Matrix4x4* value) = 0;
|
|
virtual void SetUniform(const char* name, float value) = 0;
|
|
virtual void SetUniform(const char* name, const float* value, int count) = 0;
|
|
virtual void SetUniform(const char* name, const Vector2* value) = 0;
|
|
virtual void SetUniform(const char* name, const Vector3* value) = 0;
|
|
virtual void SetUniform(const char* name, const Vector4* value) = 0;
|
|
|
|
virtual ~IShader() = default;
|
|
};
|
|
} // namespace TSE
|