public CustomizationPointInstance Build() { var customizationPointInstanceInternal = new CustomizationPointInstanceInternal() { m_CustomizationPointHandle = customizationPoint.handle, }; customizationPointInstanceInternal.m_BlockInstanceListHandle = FixedHandleListInternal.Build(container, BlockInstances, (v) => (v.handle)); customizationPointInstanceInternal.m_PassIdentifierListHandle = FixedHandleListInternal.Build(container, PassIdentifiers, (p) => (container.AddPassIdentifier(p.SubShaderIndex, p.PassIndex))); var returnTypeHandle = container.AddCustomizationPointInstanceInternal(customizationPointInstanceInternal); return(new CustomizationPointInstance(container, returnTypeHandle)); }
internal extern FoundryHandle AddCustomizationPointInstanceInternal(CustomizationPointInstanceInternal customizationPointInstance);
// private internal CustomizationPointInstance(ShaderContainer container, FoundryHandle handle) { this.container = container; this.handle = handle; this.customizationPointInstance = container?.GetCustomizationPointInstance(handle) ?? CustomizationPointInstanceInternal.Invalid(); }