public unsafe void ClearRenderTargetDepthStencil(int layer, int layerCount, float depthValue, bool depthMask, int stencilValue, int stencilMask) { // TODO: Use stencilMask (fully) if (FramebufferParams == null || !FramebufferParams.HasDepthStencil) { return; } if (_renderPass == null) { CreateRenderPass(); } BeginRenderPass(); var clearValue = new ClearValue(null, new ClearDepthStencilValue(depthValue, (uint)stencilValue)); var flags = depthMask ? ImageAspectFlags.ImageAspectDepthBit : 0; if (stencilMask != 0) { flags |= ImageAspectFlags.ImageAspectStencilBit; } var attachment = new ClearAttachment(flags, 0, clearValue); var clearRect = FramebufferParams.GetClearRect(ClearScissor, layer, layerCount); Gd.Api.CmdClearAttachments(CommandBuffer, 1, &attachment, 1, &clearRect); }
public unsafe void ClearAttachments(uint attachmentCount, ref ClearAttachment attachments, uint rectCount, ClearRect* rects) { fixed (ClearAttachment* __attachments__ = &attachments) { vkCmdClearAttachments(this, attachmentCount, __attachments__, rectCount, rects); } }
public void CmdClearAttachment(ClearAttachment pAttachment, ClearRect?pRect) { unsafe { ClearRect valpRect = pRect ?? default(ClearRect); ClearRect *ptrpRect = pRect != null ? &valpRect : (ClearRect *)IntPtr.Zero; Interop.NativeMethods.vkCmdClearAttachments(this.m, (UInt32)(pAttachment != null ? 1 : 0), pAttachment != null ? pAttachment.m : (Interop.ClearAttachment *) default(IntPtr), (UInt32)(pRect != null ? 1 : 0), ptrpRect); } }
public unsafe void ClearRenderTargetColor(int index, int layer, int layerCount, ColorF color) { if (FramebufferParams == null || !FramebufferParams.IsValidColorAttachment(index)) { return; } if (_renderPass == null) { CreateRenderPass(); } BeginRenderPass(); var clearValue = new ClearValue(new ClearColorValue(color.Red, color.Green, color.Blue, color.Alpha)); var attachment = new ClearAttachment(ImageAspectFlags.ImageAspectColorBit, (uint)index, clearValue); var clearRect = FramebufferParams.GetClearRect(ClearScissor, layer, layerCount); Gd.Api.CmdClearAttachments(CommandBuffer, 1, &attachment, 1, &clearRect); }
public unsafe void ClearRenderTargetColor(int index, uint componentMask, ColorF color) { // TODO: Use componentMask if (_framebuffer == null) { return; } if (_renderPass == null) { CreateRenderPass(); } BeginRenderPass(); var clearValue = new ClearValue(new ClearColorValue(color.Red, color.Green, color.Blue, color.Alpha)); var attachment = new ClearAttachment(ImageAspectFlags.ImageAspectColorBit, (uint)index, clearValue); var clearRect = FramebufferParams?.GetClearRect() ?? default; Gd.Api.CmdClearAttachments(CommandBuffer, 1, &attachment, 1, &clearRect); }
internal static unsafe extern void vkCmdClearAttachments(CommandBuffer commandBuffer, uint attachmentCount, ClearAttachment* attachments, uint rectCount, ClearRect* rects);