X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Fcompiler.cpp;h=9ddafcff403c9369b72a76828c366e59077ed3f8;hb=c32051dc7e77faf0fe6bdad2a6f1025e7b43da19;hp=4b1d4edf11d0e6e29c8410ab123521b440826128;hpb=24e4eea282917c3f6e4e16a2825372da64133e35;p=libs%2Fgl.git diff --git a/source/glsl/compiler.cpp b/source/glsl/compiler.cpp index 4b1d4edf..9ddafcff 100644 --- a/source/glsl/compiler.cpp +++ b/source/glsl/compiler.cpp @@ -195,6 +195,14 @@ const map &Compiler::get_uniform_block_bindings() const return module->shared.uniform_block_bindings; } +unsigned Compiler::get_n_clip_distances() const +{ + if(!compiled) + throw invalid_operation("Compiler::get_n_clip_distances"); + auto i = find_member(module->stages, Stage::VERTEX, &Stage::type); + return (i!=module->stages.end() ? i->n_clip_distances : 0); +} + const SourceMap &Compiler::get_source_map() const { return module->source_map; @@ -388,7 +396,8 @@ void Compiler::finalize(Stage &stage, Mode mode) { if(mode==PROGRAM) { - LegacyConverter().apply(stage, features); + StructuralFeatureConverter().apply(stage, features); + QualifierConverter().apply(stage, features); resolve(stage, RESOLVE_VARIABLES|RESOLVE_FUNCTIONS); PrecisionConverter().apply(stage); }