diff options
author | Brian Paul <[email protected]> | 2009-04-01 19:50:28 -0600 |
---|---|---|
committer | Brian Paul <[email protected]> | 2009-04-01 19:54:35 -0600 |
commit | 49fb750a6884c3f647f46270ffce8652f664f908 (patch) | |
tree | 8a666b370a04c14b14391c6d9281e0ccd032e339 /src/mesa/shader/slang/slang_compile.c | |
parent | 1ab225017ed1ea8bd9e266d10ee56ab914bb28c1 (diff) |
glsl: implement compiling/linking of separate compilation units
A shader program may consist of multiple shaders (source code units).
If we find there are unresolved functions after compiling the unit that
defines main(), we'll concatenate all the respective vertex or fragment
shaders then recompile.
This isn't foolproof but should work in most cases.
Diffstat (limited to 'src/mesa/shader/slang/slang_compile.c')
-rw-r--r-- | src/mesa/shader/slang/slang_compile.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/mesa/shader/slang/slang_compile.c b/src/mesa/shader/slang/slang_compile.c index fb7128841c4..6348f799aa2 100644 --- a/src/mesa/shader/slang/slang_compile.c +++ b/src/mesa/shader/slang/slang_compile.c @@ -2435,6 +2435,8 @@ parse_code_unit(slang_parse_ctx * C, slang_code_unit * unit, _slang_codegen_function(&A, mainFunc); shader->Main = GL_TRUE; /* this shader defines main() */ + + shader->UnresolvedRefs = A.UnresolvedRefs; } _slang_pop_var_table(o.vartable); |