static auto create_attribs(const spirv_cross::Compiler& compiler, const std::vector<spirv_cross::Resource>& resources) { core::Vector<ShaderModuleBase::Attribute> attribs; std::unordered_set<u32> locations; for(const auto& r : resources) { auto location = compiler.get_decoration(r.id, spv::DecorationLocation); const auto& type = compiler.get_type(r.type_id); attribs << ShaderModuleBase::Attribute{location, type.columns, type.vecsize, component_size(type.basetype), component_type(type.basetype)}; for(usize i = location; i != location + type.columns; ++i) { if(!locations.insert(i).second) { y_fatal("Duplicate or overlapping attribute locations."); } } } return attribs; }
QString NPlotXY::tool_tip() const { return component_type(); }
QString NetworkQueue::tool_tip() const { return component_type(); }