VulkanException.cs
1 using Silk.NET.Vulkan; 2 using System; 3 using System.Runtime.Serialization; 4 5 namespace Ryujinx.Graphics.Vulkan 6 { 7 static class ResultExtensions 8 { 9 public static bool IsError(this Result result) 10 { 11 // Only negative result codes are errors. 12 return result < Result.Success; 13 } 14 15 public static void ThrowOnError(this Result result) 16 { 17 // Only negative result codes are errors. 18 if (result.IsError()) 19 { 20 throw new VulkanException(result); 21 } 22 } 23 } 24 25 class VulkanException : Exception 26 { 27 public VulkanException() 28 { 29 } 30 31 public VulkanException(Result result) : base($"Unexpected API error \"{result}\".") 32 { 33 } 34 35 public VulkanException(string message) : base(message) 36 { 37 } 38 39 public VulkanException(string message, Exception innerException) : base(message, innerException) 40 { 41 } 42 } 43 }