transferQ.EndSubmitAndWait (cmd, true);
}
- texArray.CreateView (VkImageViewType.ImageView2DArray, VkImageAspectFlags.Color, texArray.CreateInfo.arrayLayers);
+ texArray.CreateView (VkImageViewType.ImageView2DArray, VkImageAspectFlags.Color);
texArray.CreateSampler ();
texArray.Descriptor.imageLayout = VkImageLayout.ShaderReadOnlyOptimal;
texArray.SetName ("model texArray");
//shadow map image
shadowMap = new Image (dev, SHADOWMAP_FORMAT, VkImageUsageFlags.DepthStencilAttachment | VkImageUsageFlags.Sampled, VkMemoryPropertyFlags.DeviceLocal, SHADOWMAP_SIZE, SHADOWMAP_SIZE,
VkImageType.Image2D, SHADOWMAP_NUM_SAMPLES, VkImageTiling.Optimal, 1, (uint)renderer.lights.Length);
- shadowMap.CreateView (VkImageViewType.ImageView2DArray, VkImageAspectFlags.Depth, shadowMap.CreateInfo.arrayLayers);
+ shadowMap.CreateView (VkImageViewType.ImageView2DArray, VkImageAspectFlags.Depth);
shadowMap.CreateSampler (VkSamplerAddressMode.ClampToBorder);
shadowMap.Descriptor.imageLayout = VkImageLayout.DepthStencilReadOnlyOptimal;
-// Copyright (c) 2019 Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+// Copyright (c) 2019-2021 Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
//
// This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
using System;
}
public void CreateView (VkImageViewType type = VkImageViewType.ImageView2D, VkImageAspectFlags aspectFlags = VkImageAspectFlags.Color,
- uint layerCount = 1, uint baseMipLevel = 0, int levelCount = -1, uint baseArrayLayer = 0,
+ int layerCount = -1, uint baseMipLevel = 0, int levelCount = -1, uint baseArrayLayer = 0,
VkComponentSwizzle r = VkComponentSwizzle.R,
VkComponentSwizzle g = VkComponentSwizzle.G,
VkComponentSwizzle b = VkComponentSwizzle.B,
viewInfo.subresourceRange.baseMipLevel = baseMipLevel;
viewInfo.subresourceRange.levelCount = levelCount < 0 ? info.mipLevels : (uint)levelCount;
viewInfo.subresourceRange.baseArrayLayer = baseArrayLayer;
- viewInfo.subresourceRange.layerCount = layerCount;
+ viewInfo.subresourceRange.layerCount = layerCount < 0 ? info.arrayLayers : (uint)layerCount;
Utils.CheckResult (vkCreateImageView (Dev.VkDev, ref viewInfo, IntPtr.Zero, out view));