1 // Copyright (c) 2016 The vulkano developers 2 // Licensed under the Apache License, Version 2.0 3 // <LICENSE-APACHE or 4 // https://www.apache.org/licenses/LICENSE-2.0> or the MIT 5 // license <LICENSE-MIT or https://opensource.org/licenses/MIT>, 6 // at your option. All files in the project carrying such 7 // notice may not be copied, modified, or distributed except 8 // according to those terms. 9 10 //! Description of the steps of the rendering process, and the images used as input or output. 11 //! 12 //! # Render passes and framebuffers 13 //! 14 //! There are two concepts in Vulkan: 15 //! 16 //! - A *render pass* describes the overall process of drawing a frame. It is subdivided into one 17 //! or more subpasses. 18 //! - A *framebuffer* contains the list of image views that are attached during the drawing of 19 //! each subpass. 20 //! 21 //! Render passes are typically created at initialization only (for example during a loading 22 //! screen) because they can be costly, while framebuffers can be created and destroyed either at 23 //! initialization or during the frame. 24 //! 25 //! Consequently you can create graphics pipelines from a render pass object alone. 26 //! A `Framebuffer` object is only needed when you actually add draw commands to a command buffer. 27 28 pub use self::attachments_list::AttachmentsList; 29 pub use self::compat_atch::ensure_image_view_compatible; 30 pub use self::compat_atch::IncompatibleRenderPassAttachmentError; 31 pub use self::desc::AttachmentDesc; 32 pub use self::desc::LoadOp; 33 pub use self::desc::MultiviewDesc; 34 pub use self::desc::RenderPassDesc; 35 pub use self::desc::ResolveMode; 36 pub use self::desc::ResolveModes; 37 pub use self::desc::StoreOp; 38 pub use self::desc::SubpassDependencyDesc; 39 pub use self::desc::SubpassDesc; 40 pub use self::framebuffer::Framebuffer; 41 pub use self::framebuffer::FramebufferAbstract; 42 pub use self::framebuffer::FramebufferBuilder; 43 pub use self::framebuffer::FramebufferCreationError; 44 pub use self::framebuffer::FramebufferSys; 45 pub use self::render_pass::RenderPass; 46 pub use self::render_pass::RenderPassCreationError; 47 pub use self::render_pass::RenderPassSys; 48 pub use self::render_pass::Subpass; 49 50 #[macro_use] 51 mod macros; 52 mod attachments_list; 53 mod compat_atch; 54 mod desc; 55 mod framebuffer; 56 mod render_pass; 57