public static FoundryHandle Build <T>(ShaderContainer container, List <T> items, Func <T, FoundryHandle> indexFunc) { if ((items == null) || (items.Count <= 0)) { return(FoundryHandle.Invalid()); } var listHandle = container.AddHandleBlob((uint)items.Count); for (var i = 0; i < items.Count; ++i) { container.SetHandleBlobElement(listHandle, (uint)i, indexFunc(items[i])); } return(listHandle); }
public static FoundryHandle Build(ShaderContainer container, List <FoundryHandle> values) { if ((values == null) || (values.Count <= 0)) { return(FoundryHandle.Invalid()); } var listHandle = container.AddHandleBlob((uint)values.Count); for (var i = 0; i < values.Count; ++i) { container.SetHandleBlobElement(listHandle, (uint)i, values[i]); } return(listHandle); }
public BlockVariable Build() { var blockVariableInternal = new BlockVariableInternal() { m_TypeHandle = Type.handle, m_NameHandle = container.AddString(Name), }; blockVariableInternal.m_AttributeListHandle = container.AddHandleBlob((uint)Attributes.Count); for (int i = 0; i < Attributes.Count; ++i) { container.SetHandleBlobElement(blockVariableInternal.m_AttributeListHandle, (uint)i, Attributes[i].handle); } var returnTypeHandle = container.AddBlockVariableInternal(blockVariableInternal); return(new BlockVariable(container, returnTypeHandle)); }