public TagDescriptor Build() { var descriptor = new TagDescriptorInternal(); descriptor.m_NameHandle = container.AddString(name); descriptor.m_ValueHandle = container.AddString(value); var resultHandle = container.AddTagDescriptorInternal(descriptor); return(new TagDescriptor(container, resultHandle)); }
public Template Build() { var templateInternal = new TemplateInternal() { m_NameHandle = container.AddString(Name), m_AdditionalShaderIDStringHandle = container.AddString(AdditionalShaderID), m_LinkerHandle = container.AddTemplateLinker(linker) }; templateInternal.m_PassListHandle = FixedHandleListInternal.Build(container, passes, (p) => (p.handle)); templateInternal.m_TagDescriptorListHandle = FixedHandleListInternal.Build(container, tagDescriptors, (t) => (t.handle)); var returnTypeHandle = container.AddTemplateInternal(templateInternal); return(new Template(container, returnTypeHandle)); }
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 StructField Build() { var structFieldInternal = new StructFieldInternal(); structFieldInternal.m_NameHandle = container.AddString(name); structFieldInternal.m_TypeHandle = type.handle; structFieldInternal.m_AttributeListHandle = FixedHandleListInternal.Build(container, attributes, (a) => (a.handle)); var returnHandle = container.AddStructFieldInternal(structFieldInternal); return(new StructField(container, returnHandle)); }
public CustomizationPoint Build() { var customizationPointInternal = new CustomizationPointInternal { m_NameHandle = container.AddString(name), }; customizationPointInternal.m_InputListHandle = FixedHandleListInternal.Build(container, inputs, (v) => (v.handle)); customizationPointInternal.m_OutputListHandle = FixedHandleListInternal.Build(container, outputs, (v) => (v.handle)); customizationPointInternal.m_PropertyListHandle = FixedHandleListInternal.Build(container, properties, (v) => (v.handle)); customizationPointInternal.m_DefaultBlockInstanceList = FixedHandleListInternal.Build(container, defaultBlockInstances, (v) => (v.handle)); var returnTypeHandle = container.AddCustomizationPointInternal(customizationPointInternal); return(new CustomizationPoint(container, returnTypeHandle)); }
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)); }
public Block Build() { if (finalized) { return(new Block(Container, blockHandle)); } finalized = true; var blockInternal = new BlockInternal(); blockInternal.m_NameHandle = container.AddString(name); blockInternal.m_DeclaredTypeListHandle = FixedHandleListInternal.Build(container, types, (t) => (t.handle)); blockInternal.m_ReferencedTypeListHandle = FixedHandleListInternal.Build(container, referencedTypes, (t) => (t.handle)); blockInternal.m_DeclaredFunctionListHandle = FixedHandleListInternal.Build(container, functions, (f) => (f.handle)); blockInternal.m_ReferencedFunctionListHandle = FixedHandleListInternal.Build(container, referencedFunctions, (f) => (f.handle)); blockInternal.m_EntryPointFunctionHandle = entryPointFunction.handle; // Build up the input/output variable list from the entry point function GetInOutTypes(entryPointFunction, out var inputType, out var outputType); var inputs = BuildVariablesFromTypeFields(Container, inputType); var outputs = BuildVariablesFromTypeFields(Container, outputType); blockInternal.m_InputVariableListHandle = FixedHandleListInternal.Build(container, inputs, (v) => (v.handle)); blockInternal.m_OutputVariableListHandle = FixedHandleListInternal.Build(container, outputs, (v) => (v.handle)); blockInternal.m_CommandListHandle = FixedHandleListInternal.Build(container, m_Commands, (c) => (c.handle)); blockInternal.m_DefineListHandle = FixedHandleListInternal.Build(container, m_Defines, (d) => (d.handle)); blockInternal.m_IncludeListHandle = FixedHandleListInternal.Build(container, m_Includes, (i) => (i.handle)); blockInternal.m_KeywordListHandle = FixedHandleListInternal.Build(container, m_Keywords, (k) => (k.handle)); blockInternal.m_PragmaListHandle = FixedHandleListInternal.Build(container, m_Pragmas, (p) => (p.handle)); blockInternal.m_PassParentHandle = passParentHandle; blockInternal.m_TemplateParentHandle = templateParentHandle; container.SetBlockInternal(blockHandle, blockInternal); return(new Block(container, blockHandle)); }