SL::Features &feat = info.glsl_features;
feat.target_api = get_backend_api();
feat.glsl_version = get_glsl_version();
- feat.arb_enhanced_layouts = ARB_enhanced_layouts;
- feat.arb_explicit_attrib_location = ARB_explicit_attrib_location;
- feat.arb_explicit_uniform_location = ARB_explicit_uniform_location;
- feat.arb_gpu_shader5 = ARB_gpu_shader5;
- feat.arb_separate_shader_objects = ARB_separate_shader_objects;
- feat.arb_uniform_buffer_object = ARB_uniform_buffer_object;
- feat.arb_shader_storage_buffer_object = ARB_shader_storage_buffer_object;
- feat.ext_gpu_shader4 = EXT_gpu_shader4;
- feat.ext_texture_array = EXT_texture_array;
+ feat.arb_enhanced_layouts = static_cast<bool>(ARB_enhanced_layouts);
+ feat.arb_explicit_attrib_location = static_cast<bool>(ARB_explicit_attrib_location);
+ feat.arb_explicit_uniform_location = static_cast<bool>(ARB_explicit_uniform_location);
+ feat.arb_gpu_shader5 = static_cast<bool>(ARB_gpu_shader5);
+ feat.arb_separate_shader_objects = static_cast<bool>(ARB_separate_shader_objects);
+ feat.arb_uniform_buffer_object = static_cast<bool>(ARB_uniform_buffer_object);
+ feat.arb_shader_storage_buffer_object = static_cast<bool>(ARB_shader_storage_buffer_object);
+ feat.ext_gpu_shader4 = static_cast<bool>(EXT_gpu_shader4);
+ feat.ext_texture_array = static_cast<bool>(EXT_texture_array);
feat.uniform_binding_range = lim.max_uniform_bindings;
feat.texture_binding_range = lim.max_texture_bindings;
feat.storage_texture_binding_range = lim.max_storage_texture_bindings;
bool operator>=(const Version &) const;
bool operator<(const Version &o) const { return !(*this>=o); }
- operator bool() const { return major || minor; }
+ explicit operator bool() const { return major || minor; }
};
/** Returns the backend for which the library was compiled. */
target = &*i;
}
- if(stage.required_features.glsl_version>target->required_features.glsl_version)
+ if(target->required_features.glsl_version<stage.required_features.glsl_version)
target->required_features.glsl_version = stage.required_features.glsl_version;
for(const RefPtr<Statement> &s: stage.content.body)
if(!dynamic_cast<Import *>(s.get()))
void Compiler::generate(Stage &stage)
{
stage.required_features.target_api = features.target_api;
- if(module->shared.required_features.glsl_version>stage.required_features.glsl_version)
+ if(stage.required_features.glsl_version<module->shared.required_features.glsl_version)
stage.required_features.glsl_version = module->shared.required_features.glsl_version;
inject_block(stage.content, module->shared.content);