/ src / Ryujinx.Graphics.Vulkan / VulkanException.cs
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  }