X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fglsl%2Foutput.cpp;h=3fc703c1966d9b4a9c745f7f3ee8e49aa55c5af8;hp=9d4383e4de979b91c6febdab5e0cd02ca599e4e8;hb=c0be4e4ae1a8b6ac31ff6b7080e2242c13d947ff;hpb=efeb3137935ec5ef6a16531c2e6b915caa3db481 diff --git a/source/glsl/output.cpp b/source/glsl/output.cpp index 9d4383e4..3fc703c1 100644 --- a/source/glsl/output.cpp +++ b/source/glsl/output.cpp @@ -22,21 +22,27 @@ const string &Formatter::apply(Stage &s, Compiler::Mode m) mode = m; stage = &s; - GLApi api = get_gl_api(); - const Version &ver = s.required_version; + const Version &ver = s.required_features.glsl_version; if(ver) { append(format("#version %d%02d", ver.major, ver.minor)); - if(api==OPENGL_ES2 && ver>=Version(3, 0)) + if(s.required_features.gl_api==OPENGL_ES2 && ver>=Version(3, 0)) append(" es"); formatted += '\n'; } - for(vector::const_iterator i=s.required_extensions.begin(); i!=s.required_extensions.end(); ++i) - append(format("#extension %s: require\n", (*i)->get_name())); - if(!s.required_extensions.empty()) - formatted += '\n'; + if(s.required_features.arb_explicit_attrib_location) + append("#extension arb_explicit_attrib_location: require\n"); + if(s.required_features.arb_gpu_shader5) + append("#extension arb_gpu_shader5: require\n"); + if(s.required_features.arb_uniform_buffer_object) + append("#extension arb_uniform_buffer_object: require\n"); + if(s.required_features.ext_gpu_shader4) + append("#extension ext_gpu_shader4: require\n"); + if(s.required_features.ext_texture_array) + append("#extension ext_texture_array: require\n"); + formatted += '\n'; visit(s.content); @@ -67,7 +73,7 @@ void Formatter::set_source(unsigned index, unsigned line) else { unsigned l = line; - if(mode==Compiler::PROGRAM && stage && stage->required_versionrequired_features.glsl_versionrequired_versionrequired_features.glsl_versiontype==Stage::VERTEX && var.interface=="in") interface = "attribute";