feat: uniform buffer configure shader

This commit is contained in:
2025-10-24 12:37:09 +02:00
parent ee8e6012c8
commit b5ea21ad43
4 changed files with 31 additions and 12 deletions

View File

@@ -3,6 +3,7 @@
#include <GL/glew.h>
#include "engine/renderer/shader.h"
#include "engine/export.h"
namespace Core {
@@ -16,6 +17,7 @@ namespace OpenGL {
public:
Buffer(BufferTarget target, BufferUsage usage);
protected:
void Data(void* data, size_t size);
void SubData(void *data, size_t size, size_t offset);
@@ -33,8 +35,17 @@ namespace OpenGL {
class ENGINE_API UniformBuffer : public Buffer {
public:
UniformBuffer(size_t size, unsigned int index);
public:
void ConfigureShader(Shader& shader, const char* uniformName);
template<typename T, typename S = size_t>
void UpdateUniform(void* data, S offset) {
SubData(data, sizeof(T), offset);
}
private:
unsigned int m_uniformBinding;
private:
static unsigned int s_bufferNextId;
};
} // namespace OpenGL

View File

@@ -15,11 +15,11 @@ public:
Shader();
~Shader();
unsigned int m_id;
void init(const std::string &vertexCode, const std::string &fragmentCode);
void use();
const unsigned int GetID() const { return m_id; }
void setBool(const std::string &name, bool value) const;
void setInt(const std::string &name, int value) const;
void setFloat(const std::string &name, float value) const;
@@ -32,8 +32,8 @@ public:
void setMat2(const std::string &name, const glm::mat2 &mat) const;
void setMat3(const std::string &name, const glm::mat3 &mat) const;
void setMat4(const std::string &name, const glm::mat4 &mat) const;
private:
unsigned int m_id;
unsigned int m_vertexId;
unsigned int m_fragmentId;