X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fprogramcompiler.cpp;h=1c84a96dc925f18095368d63aa13aaaf19a7d88d;hp=1ba898ec4d373f63e019610206dcce5762248063;hb=91d3eac06389c0bb0363f643790581403b5fca1b;hpb=c895aa82dd405146f648e5ca3fcfaa326eab9b87 diff --git a/source/programcompiler.cpp b/source/programcompiler.cpp index 1ba898ec..1c84a96d 100644 --- a/source/programcompiler.cpp +++ b/source/programcompiler.cpp @@ -1765,6 +1765,22 @@ bool ProgramCompiler::LegacyConverter::supports_interface_layouts() const return check_version(Version(3, 30)); } +bool ProgramCompiler::LegacyConverter::supports_centroid_sampling() const +{ + if(target_api==OPENGL_ES2) + return check_version(Version(3, 0)); + else + return check_version(Version(1, 20)); +} + +bool ProgramCompiler::LegacyConverter::supports_sample_sampling() const +{ + if(target_api==OPENGL_ES2) + return check_version(Version(3, 20)); + else + return check_version(Version(4, 0)); +} + void ProgramCompiler::LegacyConverter::visit(VariableDeclaration &var) { if(var.layout && !supports_interface_layouts()) @@ -1792,6 +1808,17 @@ void ProgramCompiler::LegacyConverter::visit(VariableDeclaration &var) } } + if(var.sampling=="centroid") + { + if(!supports_centroid_sampling()) + var.sampling = string(); + } + else if(var.sampling=="sample") + { + if(!supports_sample_sampling()) + var.sampling = string(); + } + if((var.interface=="in" || var.interface=="out") && !supports_unified_interface_syntax()) { if(stage->type==FRAGMENT && var.interface=="out")