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));
            }
Exemple #2
0
 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();
 }