Files
TSE/TSE_Core/src/interfaces/IShader.hpp
2026-01-17 13:48:25 +01:00

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