namespace Msp {
namespace GL {
-OpenGLProgram::OpenGLProgram():
- linked(false)
+OpenGLProgram::OpenGLProgram()
{
static Require _req(ARB_shader_objects);
id = glCreateProgram();
- fill(stage_ids, stage_ids+MAX_STAGES, 0);
}
OpenGLProgram::~OpenGLProgram()
transient.textures = compiler.get_texture_bindings();
transient.blocks = compiler.get_uniform_block_bindings();
+
+ ReflectData &rd = static_cast<Program *>(this)->reflect_data;
+ rd.n_clip_distances = compiler.get_n_clip_distances();
}
void OpenGLProgram::compile_glsl_stage(const GlslModule &mod, unsigned stage_id)
}
default_block.sort_uniforms();
- if(!default_block.uniforms.empty())
- {
- const ReflectData::UniformInfo &uni = *default_block.uniforms.back();
- default_block.data_size = uni.location*16+uni.array_size*get_type_size(uni.type);
- }
default_block.update_layout_hash();
rd.update_layout_hash();
}