glsl: Add new overload of program_resource_visitor::visit_field method
authorIan Romanick <ian.d.romanick@intel.com>
Sat, 17 Aug 2013 06:30:43 +0000 (23:30 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Mon, 19 Aug 2013 23:39:04 +0000 (16:39 -0700)
commit5ac884fd9f213baed1de52eb7d17b86455c48a02
treee10e5f4819484255b3c64625e56c459b9dbe19f3
parentd9bb8b7b56ce65bbf6909419aa6d3d69ccd34c08
glsl: Add new overload of program_resource_visitor::visit_field method

The outer-most record is passed into the visit_field method for
the first field.  In other words, in the following structure:

    struct S1 {
        vec4 v;
        float f;
    };

    struct S {
        S1 s1;
        S1 s2;
    };

    uniform Ubo {
        S s;
    };

s.s1.v would get record_type = S (because s1.v is the first non-record
field in S), and s.s2.v would get record_type = S1.  s.s1.f and s.s2.f
would get record_type = NULL becuase they aren't the first field of
anything.

This new overload isn't used yet, but the next patch will add several
uses.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Cc: "9.2 9.1" mesa-stable@lists.freedesktop.org
src/glsl/link_uniforms.cpp
src/glsl/linker.h