]> git.tdb.fi Git - libs/gl.git/blobdiff - source/backends/vulkan/predicate_backend.cpp
Initial implementation of Vulkan backend
[libs/gl.git] / source / backends / vulkan / predicate_backend.cpp
diff --git a/source/backends/vulkan/predicate_backend.cpp b/source/backends/vulkan/predicate_backend.cpp
new file mode 100644 (file)
index 0000000..ecc2be9
--- /dev/null
@@ -0,0 +1,27 @@
+#include "predicate.h"
+#include "predicate_backend.h"
+#include "vulkan.h"
+
+using namespace std;
+
+namespace Msp {
+namespace GL {
+
+unsigned get_vulkan_predicate(Predicate pred)
+{
+       switch(pred)
+       {
+       case NEVER: return VK_COMPARE_OP_NEVER;
+       case ALWAYS: return VK_COMPARE_OP_ALWAYS;
+       case LESS: return VK_COMPARE_OP_LESS;
+       case LEQUAL: return VK_COMPARE_OP_LESS_OR_EQUAL;
+       case EQUAL: return VK_COMPARE_OP_EQUAL;
+       case GREATER: return VK_COMPARE_OP_GREATER;
+       case GEQUAL: return VK_COMPARE_OP_GREATER_OR_EQUAL;
+       case NOTEQUAL: return VK_COMPARE_OP_NOT_EQUAL;
+       default: throw invalid_argument("get_vulkan_predicate");
+       }
+}
+
+} // namespace GL
+} // namespace Msp