public SubpassDescription2
 (
     StructureType sType                           = StructureType.SubpassDescription2,
     void *pNext                                   = default,
     SubpassDescriptionFlags flags                 = default,
     PipelineBindPoint pipelineBindPoint           = default,
     uint viewMask                                 = default,
     uint inputAttachmentCount                     = default,
     AttachmentReference2 *pInputAttachments       = default,
     uint colorAttachmentCount                     = default,
     AttachmentReference2 *pColorAttachments       = default,
     AttachmentReference2 *pResolveAttachments     = default,
     AttachmentReference2 *pDepthStencilAttachment = default,
     uint preserveAttachmentCount                  = default,
     uint *pPreserveAttachments                    = default
 )
 {
     SType                   = sType;
     PNext                   = pNext;
     Flags                   = flags;
     PipelineBindPoint       = pipelineBindPoint;
     ViewMask                = viewMask;
     InputAttachmentCount    = inputAttachmentCount;
     PInputAttachments       = pInputAttachments;
     ColorAttachmentCount    = colorAttachmentCount;
     PColorAttachments       = pColorAttachments;
     PResolveAttachments     = pResolveAttachments;
     PDepthStencilAttachment = pDepthStencilAttachment;
     PreserveAttachmentCount = preserveAttachmentCount;
     PPreserveAttachments    = pPreserveAttachments;
 }
 public SubpassDescription
 (
     SubpassDescriptionFlags flags                = default,
     PipelineBindPoint pipelineBindPoint          = default,
     uint inputAttachmentCount                    = default,
     AttachmentReference *pInputAttachments       = default,
     uint colorAttachmentCount                    = default,
     AttachmentReference *pColorAttachments       = default,
     AttachmentReference *pResolveAttachments     = default,
     AttachmentReference *pDepthStencilAttachment = default,
     uint preserveAttachmentCount                 = default,
     uint *pPreserveAttachments                   = default
 )
 {
     Flags                   = flags;
     PipelineBindPoint       = pipelineBindPoint;
     InputAttachmentCount    = inputAttachmentCount;
     PInputAttachments       = pInputAttachments;
     ColorAttachmentCount    = colorAttachmentCount;
     PColorAttachments       = pColorAttachments;
     PResolveAttachments     = pResolveAttachments;
     PDepthStencilAttachment = pDepthStencilAttachment;
     PreserveAttachmentCount = preserveAttachmentCount;
     PPreserveAttachments    = pPreserveAttachments;
 }
Example #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SubpassDescription"/> structure.
 /// </summary>
 /// <param name="colorAttachments">
 /// Structures that lists which of the render pass’s attachments will be used as color
 /// attachments in the subpass, and what layout each attachment will be in during the
 /// subpass. Each element of the array corresponds to a fragment shader output location, i.e.
 /// if the shader declared an output variable layout(location=X) then it uses the attachment
 /// provided in <see cref="ColorAttachments"/>[X].
 /// </param>
 /// <param name="depthStencilAttachment">
 /// Specifies which attachment will be used for depth/stencil data and the layout it will be
 /// in during the subpass. Setting the attachment index to <see
 /// cref="Constant.AttachmentUnused"/> or leaving this as <c>null</c> indicates that no
 /// depth/stencil attachment will be used in the subpass.
 /// </param>
 public SubpassDescription(
     AttachmentReference[] colorAttachments,
     AttachmentReference?depthStencilAttachment = null)
 {
     Flags                  = 0;
     ColorAttachments       = colorAttachments;
     InputAttachments       = null;
     ResolveAttachments     = null;
     DepthStencilAttachment = depthStencilAttachment;
     PreserveAttachments    = null;
 }
Example #4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SubpassDescription"/> structure.
 /// </summary>
 /// <param name="flags">A bitmask indicating usage of the subpass.</param>
 /// <param name="colorAttachments">
 /// Structures that lists which of the render pass’s attachments will be used as color
 /// attachments in the subpass, and what layout each attachment will be in during the
 /// subpass. Each element of the array corresponds to a fragment shader output location, i.e.
 /// if the shader declared an output variable <c>layout(location=X)</c> then it uses the
 /// attachment provided in <c>ColorAttachments[X]</c>.
 /// </param>
 /// <param name="inputAttachments">
 /// Structures that lists which of the render pass's attachments can be read in the shader
 /// during the subpass, and what layout each attachment will be in during the subpass. Each
 /// element of the array corresponds to an input attachment unit number in the shader, i.e.
 /// if the shader declares an input variable <c>layout(inputAttachmentIndex=X, set=Y,
 /// binding=Z)</c> then it uses the attachment provided in <c>InputAttachments[X]</c>. Input
 /// attachments must also be bound to the pipeline with a descriptor set, with the input
 /// attachment descriptor written in the location (set=Y, binding=Z).
 /// </param>
 /// <param name="resolveAttachments">
 /// Is <c>null</c> or an array of structures that lists which of the render pass's
 /// attachments are resolved to at the end of the subpass, and what layout each attachment
 /// will be in during the multisample resolve operation. If <see cref="ResolveAttachments"/>
 /// is not <c>null</c>, each of its elements corresponds to a color attachment (the element
 /// in <see cref="ColorAttachments"/> at the same index), and a multisample resolve operation
 /// is defined for each attachment. At the end of each subpass, multisample resolve
 /// operations read the subpass's color attachments, and resolve the samples for each pixel
 /// to the same pixel location in the corresponding resolve attachments, unless the resolve
 /// attachment index is <see cref="Constant.AttachmentUnused"/>. If the first use of an
 /// attachment in a render pass is as a resolve attachment, then the <see
 /// cref="AttachmentLoadOp"/> is effectively ignored as the resolve is guaranteed to
 /// overwrite all pixels in the render area.
 /// </param>
 /// <param name="depthStencilAttachment">
 /// Specifies which attachment will be used for depth/stencil data and the layout it will be
 /// in during the subpass. Setting the attachment index to <see
 /// cref="Constant.AttachmentUnused"/> or leaving this as <c>null</c> indicates that no
 /// depth/stencil attachment will be used in the subpass.
 /// </param>
 /// <param name="preserveAttachments">
 /// Render pass attachment indices describing the attachments that are not used by a subpass,
 /// but whose contents must be preserved throughout the subpass.
 /// </param>
 public SubpassDescription(
     SubpassDescriptionFlags flags              = 0,
     AttachmentReference[] colorAttachments     = null,
     AttachmentReference[] inputAttachments     = null,
     AttachmentReference[] resolveAttachments   = null,
     AttachmentReference?depthStencilAttachment = null,
     int[] preserveAttachments = null)
 {
     Flags                  = flags;
     ColorAttachments       = colorAttachments;
     InputAttachments       = inputAttachments;
     ResolveAttachments     = resolveAttachments;
     DepthStencilAttachment = depthStencilAttachment;
     PreserveAttachments    = preserveAttachments;
 }