/// <summary> /// Tries to detach a <see cref="Texture"/> attached to the specified attachment point. /// </summary> /// <param name="point">The attachment point to check.</param> /// <param name="attachment">The detached <see cref="Texture"/> attachment, if the method returned true.</param> /// <returns>Returns whether the operation succeeded.</returns> public bool TryDetachTexture(FramebufferAttachmentPoint point, out FramebufferTextureAttachment attachment) { for (int i = 0; i < textureAttachments.Count; i++) { if (textureAttachments[i].AttachmentPoint == point) { GraphicsDevice.Framebuffer = this; GL.FramebufferTexture(FramebufferTarget.Framebuffer, (FramebufferAttachment)point, 0, 0); attachment = textureAttachments[i]; textureAttachments.RemoveAt(i); return(true); } } attachment = default; return(false); }
/// <summary> /// Gets a <see cref="Texture"/> attachment from this <see cref="FramebufferObject"/>. /// </summary> /// <param name="attachmentPoint">The point to look for a texture attachment at.</param> /// <param name="attachment">The attachment found.</param> /// <returns>Whether a texture attachment was found at the specified attachment point.</returns> public bool TryGetTextureAttachment(FramebufferAttachmentPoint attachmentPoint, out FramebufferTextureAttachment attachment) { for (int i = 0; i < textureAttachments.Count; i++) { if (textureAttachments[i].AttachmentPoint == attachmentPoint) { attachment = textureAttachments[i]; return(true); } } attachment = default; return(false); }