Skip to content
  • Matt Turner's avatar
    glcpp: Set extension defines after resolving the GLSL version. · b2d1c579
    Matt Turner authored
    Instead of defining preprocessor macros in glcpp_parser_create based on
    the GL API, wait until the shader version has been resolved. Doing this
    allows us to correctly set (and not set) preprocessor macros for
    extensions allowed by the API but not the shader, as in the case of
    ARB_ES3_compatibility.
    
    The shader version has been resolved when the preprocessor encounters
    the first preprocessor token, since the GLSL spec says
    
       "The #version directive must occur in a shader before anything else,
        except for comments and white space."
    
    Specifically, if a #version token is found the version is known
    explicitly, and if any other preprocessor token is found then the GLSL
    version is implicitly 1.10.
    
    Cc: mesa-stable@lists.freedesktop.org
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71630
    
    
    Reviewed-by: default avatarIan Romanick <ian.d.romanick@intel.com>
    b2d1c579