@@ -40,57 +40,43 @@ Image::Image(ref_ptr<Data> in_data) :
4040 auto properties = data->properties ;
4141 auto dimensions = data->dimensions ();
4242
43- auto [ width, height, depth] = data->pixelExtents ();
43+ std::tie (extent. width , extent. height , extent. depth , arrayLayers) = data->pixelExtents ();
4444
4545 switch (properties.imageViewType )
4646 {
4747 case (VK_IMAGE_VIEW_TYPE_1D ):
4848 imageType = VK_IMAGE_TYPE_1D ;
49- arrayLayers = 1 ;
5049 break ;
5150 case (VK_IMAGE_VIEW_TYPE_2D ):
5251 imageType = VK_IMAGE_TYPE_2D ;
53- arrayLayers = 1 ;
5452 break ;
5553 case (VK_IMAGE_VIEW_TYPE_3D ):
5654 imageType = VK_IMAGE_TYPE_3D ;
57- arrayLayers = 1 ;
5855 break ;
5956 case (VK_IMAGE_VIEW_TYPE_CUBE ):
6057 imageType = VK_IMAGE_TYPE_2D ;
6158 flags = VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT ;
62- arrayLayers = depth;
63- depth = 1 ;
6459 break ;
6560 case (VK_IMAGE_VIEW_TYPE_1D_ARRAY ):
6661 imageType = VK_IMAGE_TYPE_1D ;
67- arrayLayers = height * depth;
68- height = 1 ;
69- depth = 1 ;
7062 /* flags = VK_IMAGE_CREATE_1D_ARRAY_COMPATIBLE_BIT; // comment out as Vulkan headers don't yet provide this. */
7163 break ;
7264 case (VK_IMAGE_VIEW_TYPE_2D_ARRAY ):
7365 // imageType = VK_IMAGE_TYPE_3D;
7466 // flags = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT;
7567 imageType = VK_IMAGE_TYPE_2D ;
76- arrayLayers = depth;
77- depth = 1 ;
7868 break ;
7969 case (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY ):
8070 imageType = VK_IMAGE_TYPE_2D ;
8171 flags = VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT ;
82- arrayLayers = depth;
83- depth = 1 ;
8472 break ;
8573 default :
8674 imageType = dimensions >= 3 ? VK_IMAGE_TYPE_3D : (dimensions == 2 ? VK_IMAGE_TYPE_2D : VK_IMAGE_TYPE_1D );
87- arrayLayers = 1 ;
8875 break ;
8976 }
9077
9178 format = properties.format ;
9279 mipLevels = std::max (1u , static_cast <uint32_t >(data->properties .mipLevels ));
93- extent = VkExtent3D{width, height, depth};
9480
9581 // vsg::info("Image::Image(", data, ") mpipLevels = ", mipLevels);
9682
@@ -212,8 +198,6 @@ VkResult Image::compile(Device* device)
212198 info.pQueueFamilyIndices = queueFamilyIndices.data ();
213199 info.initialLayout = initialLayout;
214200
215- // vsg::info("Image::compile(), data = ",data, ", mipLevels = ", mipLevels, ", arrayLayers = ", arrayLayers, ", extent = {", extent.width, ", ", extent.height, ", ", extent.depth, "}");
216-
217201 vd.device = device;
218202
219203 vd.requiresDataCopy = data.valid ();
0 commit comments