]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/program.cpp
Remove generic clipping state
[libs/gl.git] / source / core / program.cpp
index 5c8257b2fc60de50bf0e767beb90a5f8da5784e2..4707f4c0416e2be185441efebe847e65ed49fd7a 100644 (file)
@@ -173,6 +173,20 @@ void Program::collect_attributes(const SpirVModule &mod)
                }
 }
 
+void Program::collect_builtins(const SpirVModule &mod)
+{
+       for(const SpirVModule::Variable &v: mod.get_variables())
+               if(v.storage==SpirVModule::OUTPUT && v.struct_type)
+                       collect_builtins(*v.struct_type);
+}
+
+void Program::collect_builtins(const SpirVModule::Structure &strct)
+{
+       for(const SpirVModule::StructMember &m: strct.members)
+               if(m.builtin==SpirVModule::CLIP_DISTANCE)
+                       reflect_data.n_clip_distances = m.array_size;
+}
+
 const ReflectData::UniformBlockInfo &Program::get_uniform_block_info(const string &name) const
 {
        auto i = find_member(reflect_data.uniform_blocks, name, &ReflectData::UniformBlockInfo::name);