Skip to main content

mtl_gpu/pass/
mod.rs

1//! Metal pass descriptors.
2//!
3//! Corresponds to `Metal/MTLRenderPass.hpp`, `Metal/MTLComputePass.hpp`, `Metal/MTLBlitPass.hpp`,
4//! and `Metal/MTLResourceStatePass.hpp`.
5//!
6//! Pass descriptors configure the state and resources for command encoders.
7
8mod attachment;
9mod blit_pass;
10mod blit_sample_buffer;
11mod color_attachment;
12mod compute_pass;
13mod compute_sample_buffer;
14mod depth_attachment;
15mod render_pass;
16mod render_sample_buffer;
17mod resource_state;
18mod stencil_attachment;
19
20pub use attachment::RenderPassAttachmentDescriptor;
21pub use blit_pass::BlitPassDescriptor;
22pub use blit_sample_buffer::{
23    BlitPassSampleBufferAttachmentDescriptor, BlitPassSampleBufferAttachmentDescriptorArray,
24};
25pub use color_attachment::{
26    RenderPassColorAttachmentDescriptor, RenderPassColorAttachmentDescriptorArray,
27};
28pub use compute_pass::ComputePassDescriptor;
29pub use compute_sample_buffer::{
30    ComputePassSampleBufferAttachmentDescriptor, ComputePassSampleBufferAttachmentDescriptorArray,
31};
32pub use depth_attachment::RenderPassDepthAttachmentDescriptor;
33pub use render_pass::RenderPassDescriptor;
34pub use render_sample_buffer::{
35    RenderPassSampleBufferAttachmentDescriptor, RenderPassSampleBufferAttachmentDescriptorArray,
36};
37pub use resource_state::{
38    ResourceStatePassDescriptor, ResourceStatePassSampleBufferAttachmentDescriptor,
39    ResourceStatePassSampleBufferAttachmentDescriptorArray,
40};
41pub use stencil_attachment::RenderPassStencilAttachmentDescriptor;
42
43#[cfg(test)]
44mod tests {
45    use super::*;
46    use std::ffi::c_void;
47
48    #[test]
49    fn test_render_pass_descriptor_size() {
50        assert_eq!(
51            std::mem::size_of::<RenderPassDescriptor>(),
52            std::mem::size_of::<*mut c_void>()
53        );
54    }
55
56    #[test]
57    fn test_compute_pass_descriptor_size() {
58        assert_eq!(
59            std::mem::size_of::<ComputePassDescriptor>(),
60            std::mem::size_of::<*mut c_void>()
61        );
62    }
63
64    #[test]
65    fn test_blit_pass_descriptor_size() {
66        assert_eq!(
67            std::mem::size_of::<BlitPassDescriptor>(),
68            std::mem::size_of::<*mut c_void>()
69        );
70    }
71}