summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main.rs35
1 files changed, 19 insertions, 16 deletions
diff --git a/src/main.rs b/src/main.rs
index 61a770a..d7791d9 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -67,13 +67,6 @@ struct QueueFamilyIndices {
   presentation: u32,
 }
 
-#[derive(Debug)]
-struct SwapchainFeatures {
-  capabilities: vk::SurfaceCapabilitiesKHR,
-  formats: Vec<vk::SurfaceFormatKHR>,
-  presentation_modes: Vec<vk::PresentModeKHR>,
-}
-
 
 struct Surreality {
   //   The "window" is the usual operating-system concept of a window; it's
@@ -201,6 +194,15 @@ struct DeviceCreation {
   enable_swapchain: bool,
 }
 
+//   This struct exists for a single use, returning from
+// find_device_swapchain_features().
+#[derive(Debug)]
+struct SwapchainFeatures {
+  capabilities: vk::SurfaceCapabilitiesKHR,
+  formats: Vec<vk::SurfaceFormatKHR>,
+  presentation_modes: Vec<vk::PresentModeKHR>,
+}
+
 impl Surreality {
   fn new() -> Self {
     Surreality {
@@ -632,19 +634,20 @@ impl Surreality {
                     indices: &QueueFamilyIndices)
       -> Result<Swapchain>
   {
-    let features = Self::find_device_swapchain_features(
-            instance, surface, physical_device)?.require()?;
+    let SwapchainFeatures { capabilities, formats, presentation_modes }
+            = Self::find_device_swapchain_features(
+                  instance, surface, physical_device)?.require()?;
 
-    let format = Self::pick_surface_format(&features.formats)?;
+    let format = Self::pick_surface_format(&formats)?;
 
     let presentation_mode
-            = Self::pick_presentation_mode(&features.presentation_modes)?;
-    let extent = Self::pick_image_extent(window, features.capabilities)?;
+            = Self::pick_presentation_mode(&presentation_modes)?;
+    let extent = Self::pick_image_extent(window, capabilities)?;
 
-    let mut image_count = features.capabilities.min_image_count + 1;
-    if features.capabilities.max_image_count != 0 {
+    let mut image_count = capabilities.min_image_count + 1;
+    if capabilities.max_image_count != 0 {
       image_count
-          = image_count.clamp(0, features.capabilities.max_image_count);
+          = image_count.clamp(0, capabilities.max_image_count);
     }
 
     let mut unique_queue_family_indices = BTreeSet::new();
@@ -673,7 +676,7 @@ impl Surreality {
             .image_usage(vk::ImageUsageFlags::COLOR_ATTACHMENT)
             .image_sharing_mode(sharing_mode)
             .queue_family_indices(&ordered_indices)
-            .pre_transform(features.capabilities.current_transform)
+            .pre_transform(capabilities.current_transform)
             .composite_alpha(vk::CompositeAlphaFlagsKHR::OPAQUE)
             .present_mode(presentation_mode)
             .clipped(true)