예제 #1
0
            public TemplatePass Build()
            {
                var templatePassInternal = new TemplatePassInternal()
                {
                    m_DisplayNameHandle   = container.AddString(displayName),
                    m_ReferenceNameHandle = container.AddString(referenceName),
                };

                templatePassInternal.m_PassIdentifierHandle           = container.AddPassIdentifier(passIdentifier.SubShaderIndex, passIdentifier.PassIndex);
                templatePassInternal.m_VertexStageElementListHandle   = FixedHandleListInternal.Build(container, vertexStageElements, (e) => BuildStageElement(e));
                templatePassInternal.m_FragmentStageElementListHandle = FixedHandleListInternal.Build(container, fragmentStageElements, (e) => BuildStageElement(e));
                templatePassInternal.m_TagDescriptorListHandle        = FixedHandleListInternal.Build(container, tagDescriptors, (o) => (o.handle));

                var returnTypeHandle = container.AddTemplatePassInternal(templatePassInternal);

                return(new TemplatePass(container, returnTypeHandle));
            }
            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));
            }