From: Jean-Philippe Bruyère Date: Mon, 22 Nov 2021 01:41:26 +0000 (+0100) Subject: auto layer for image view creation X-Git-Tag: v0.2.4-beta~8 X-Git-Url: https://git.osiis.dedyn.io/?a=commitdiff_plain;h=91e1d9a3dced35b75ca35b43dd69c830eef63b17;p=jp%2Fvke.net.git auto layer for image view creation --- diff --git a/addons/gltfLoader/PbrModelTexArray.cs b/addons/gltfLoader/PbrModelTexArray.cs index e743924..c40a0e7 100644 --- a/addons/gltfLoader/PbrModelTexArray.cs +++ b/addons/gltfLoader/PbrModelTexArray.cs @@ -77,7 +77,7 @@ namespace vke.glTF { 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"); diff --git a/samples/deferred/shadowMapRenderer.cs b/samples/deferred/shadowMapRenderer.cs index 5e059c4..511d387 100644 --- a/samples/deferred/shadowMapRenderer.cs +++ b/samples/deferred/shadowMapRenderer.cs @@ -97,7 +97,7 @@ namespace deferred { //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; diff --git a/vke/src/Utils.cs b/vke/src/Utils.cs index 8071962..f7786d5 100644 --- a/vke/src/Utils.cs +++ b/vke/src/Utils.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2019 Jean-Philippe Bruyère +// Copyright (c) 2019-2022 Jean-Philippe Bruyère // // This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT) using System; diff --git a/vke/src/base/Image.cs b/vke/src/base/Image.cs index a49c035..9c5e815 100644 --- a/vke/src/base/Image.cs +++ b/vke/src/base/Image.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2019 Jean-Philippe Bruyère +// Copyright (c) 2019-2021 Jean-Philippe Bruyère // // This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT) using System; @@ -429,7 +429,7 @@ namespace vke { } 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, @@ -448,7 +448,7 @@ namespace vke { 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));