#define MSP_GL_UNIFORM_H_
#include <algorithm>
-#include "program.h"
+#include "reflectdata.h"
namespace Msp {
namespace GL {
virtual ~Uniform() { }
virtual void apply(int) const = 0;
- virtual void store(const Program::UniformInfo &, void *) const = 0;
+ virtual void store(const ReflectData::UniformInfo &, void *) const = 0;
virtual Uniform *clone() const = 0;
};
static void apply(int, unsigned, const T *);
- virtual void store(const Program::UniformInfo &info, void *buffer) const
+ virtual void store(const ReflectData::UniformInfo &info, void *buffer) const
{ store(info, buffer, &value); }
- static void store(const Program::UniformInfo &, void *buffer, const T *value)
+ static void store(const ReflectData::UniformInfo &, void *buffer, const T *value)
{ *reinterpret_cast<T *>(buffer) = *value; }
virtual UniformScalar *clone() const
static void apply(int index, unsigned size, const T *value);
- virtual void store(const Program::UniformInfo &info, void *buffer) const
+ virtual void store(const ReflectData::UniformInfo &info, void *buffer) const
{ store(info, buffer, value); }
- static void store(const Program::UniformInfo &, void *buffer, const T *value)
+ static void store(const ReflectData::UniformInfo &, void *buffer, const T *value)
{ std::copy(value, value+vecsize, reinterpret_cast<T *>(buffer)); }
virtual UniformVector *clone() const
static void apply(int index, unsigned size, const T *value);
- virtual void store(const Program::UniformInfo &info, void *buffer) const
+ virtual void store(const ReflectData::UniformInfo &info, void *buffer) const
{ store(info, buffer, value); }
- static void store(const Program::UniformInfo &info, void *buffer, const T *value)
+ static void store(const ReflectData::UniformInfo &info, void *buffer, const T *value)
{
for(unsigned i=0; i<cols; ++i)
UniformVector<T, rows>::store(info, reinterpret_cast<char *>(buffer)+i*info.matrix_stride, value+i*rows);
virtual void apply(int index) const
{ T::apply(index, size_, values); }
- virtual void store(const Program::UniformInfo &info, void *buffer) const
+ virtual void store(const ReflectData::UniformInfo &info, void *buffer) const
{
for(unsigned i=0; i<size_; ++i)
T::store(info, reinterpret_cast<char *>(buffer)+i*info.array_stride, values+i*elemsize);