[Bf-blender-cvs] [e8c44110352] master: GPU: Add gpu.platform.backend_type_get function.

Jeroen Bakker noreply at git.blender.org
Fri Oct 21 14:58:49 CEST 2022


Commit: e8c4411035234696742b9cd97525fe094fd3f4ac
Author: Jeroen Bakker
Date:   Fri Oct 21 14:38:30 2022 +0200
Branches: master
https://developer.blender.org/rBe8c4411035234696742b9cd97525fe094fd3f4ac

GPU: Add gpu.platform.backend_type_get function.

Function returns the active GPU backend type.

===================================================================

M	source/blender/python/gpu/gpu_py_platform.c

===================================================================

diff --git a/source/blender/python/gpu/gpu_py_platform.c b/source/blender/python/gpu/gpu_py_platform.c
index b877e3ceb98..51366d199b0 100644
--- a/source/blender/python/gpu/gpu_py_platform.c
+++ b/source/blender/python/gpu/gpu_py_platform.c
@@ -11,6 +11,7 @@
 
 #include "BLI_utildefines.h"
 
+#include "GPU_context.h"
 #include "GPU_platform.h"
 
 #include "gpu_py_platform.h" /* Own include. */
@@ -83,6 +84,28 @@ static PyObject *pygpu_platform_device_type_get(PyObject *UNUSED(self))
   return PyUnicode_FromString("UNKNOWN");
 }
 
+PyDoc_STRVAR(pygpu_platform_backend_type_get_doc,
+             ".. function:: backend_type_get()\n"
+             "\n"
+             "   Get actuve GPU backend.\n"
+             "\n"
+             "   :return: Backend type ('OPENGL', 'METAL', 'NONE', 'UNKNOWN').\n"
+             "   :rtype: str\n");
+static PyObject *pygpu_platform_backend_type_get(PyObject *UNUSED(self))
+{
+  switch (GPU_backend_get_type()) {
+    case GPU_BACKEND_METAL:
+      return PyUnicode_FromString("METAL");
+    case GPU_BACKEND_NONE:
+      return PyUnicode_FromString("NONE");
+    case GPU_BACKEND_OPENGL:
+      return PyUnicode_FromString("OPENGL");
+    case GPU_BACKEND_ANY:
+      break;
+  }
+  return PyUnicode_FromString("UNKNOWN");
+}
+
 /** \} */
 
 /* -------------------------------------------------------------------- */
@@ -106,6 +129,10 @@ static struct PyMethodDef pygpu_platform__tp_methods[] = {
      (PyCFunction)pygpu_platform_device_type_get,
      METH_NOARGS,
      pygpu_platform_device_type_get_doc},
+    {"backend_type_get",
+     (PyCFunction)pygpu_platform_backend_type_get,
+     METH_NOARGS,
+     pygpu_platform_backend_type_get_doc},
     {NULL, NULL, 0, NULL},
 };



More information about the Bf-blender-cvs mailing list