#include <algorithm>
-#include <msp/gl/extensions/arb_shader_objects.h>
-#include <msp/gl/extensions/arb_uniform_buffer_object.h>
-#include "buffer.h"
-#include "color.h"
#include "deviceinfo.h"
-#include "error.h"
-#include "matrix.h"
#include "uniformblock.h"
-#include "vector.h"
using namespace std;
namespace GL {
UniformBlock::UniformBlock(const ReflectData::UniformBlockInfo &info):
+ UniformBlockBackend(info.bind_point>=0),
data(info.data_size)
-{
- static Require _req(ARB_shader_objects);
- if(info.bind_point>=0)
- static Require _req2(ARB_uniform_buffer_object);
-}
+{ }
-unsigned UniformBlock::get_alignment() const
+size_t UniformBlock::get_alignment() const
{
- return Limits::get_global().uniform_buffer_alignment;
+ return DeviceInfo::get_global().limits.uniform_buffer_alignment;
}
-void UniformBlock::store(const ReflectData::UniformInfo &info, unsigned array_size, const void *value)
+void UniformBlock::store(const ReflectData::UniformInfo &info, size_t array_size, const void *value)
{
- array_size = min(array_size, max(info.array_size, 1U));
+ array_size = min(array_size, max<size_t>(info.array_size, 1U));
char *store_ptr;
bool packed;