From 0f5533441390d049d2b85e86abdd57b5a874e530 Mon Sep 17 00:00:00 2001 From: mano-wii Date: Sat, 6 Oct 2018 00:13:54 -0300 Subject: Cleanup: use new format string utility --- source/blender/python/generic/bgl.c | 30 +++++++++++------------------- source/blender/python/gpu/gpu_py_element.c | 7 ++----- 2 files changed, 13 insertions(+), 24 deletions(-) (limited to 'source/blender/python') diff --git a/source/blender/python/generic/bgl.c b/source/blender/python/generic/bgl.c index 981aec17e6b..58bfea5fab8 100644 --- a/source/blender/python/generic/bgl.c +++ b/source/blender/python/generic/bgl.c @@ -37,6 +37,8 @@ #include "GPU_glew.h" #include "MEM_guardedalloc.h" +#include "../generic/py_capi_utils.h" + #include "bgl.h" @@ -478,29 +480,19 @@ int BGL_typeSize(int type) static int gl_buffer_type_from_py_buffer(Py_buffer *pybuffer) { - char *typestr = pybuffer->format; + const char format = FORMAT_STR_GET(pybuffer->format); Py_ssize_t itemsize = pybuffer->itemsize; - if (ELEM(typestr[0], '<', '>', '|')) { - typestr += 1; + if (FORMAT_STR_IS_FLOAT(format)) { + if (itemsize == 4) return GL_FLOAT; + if (itemsize == 8) return GL_DOUBLE; } - - switch (typestr[0]) { - case 't': - case 'b': - case 'h': - case 'i': - case 'l': - if (itemsize == 1) return GL_BYTE; - if (itemsize == 2) return GL_SHORT; - if (itemsize == 4) return GL_INT; - break; - case 'f': - case 'd': - if (itemsize == 4) return GL_FLOAT; - if (itemsize == 8) return GL_DOUBLE; - break; + if (FORMAT_STR_IS_BYTE(format) || FORMAT_STR_IS_INT(format)) { + if (itemsize == 1) return GL_BYTE; + if (itemsize == 2) return GL_SHORT; + if (itemsize == 4) return GL_INT; } + return -1; /* UNKNOWN */ } diff --git a/source/blender/python/gpu/gpu_py_element.c b/source/blender/python/gpu/gpu_py_element.c index 657358d0448..0c4cd1d815b 100644 --- a/source/blender/python/gpu/gpu_py_element.c +++ b/source/blender/python/gpu/gpu_py_element.c @@ -93,11 +93,8 @@ static PyObject *bpygpu_IndexBuf_new(PyTypeObject *UNUSED(type), PyObject *args, bool format_error = pybuffer.itemsize != 4; { - char *typestr = pybuffer.format; - if (ELEM(typestr[0], '<', '>', '|')) { - typestr += 1; - } - if (ELEM(typestr[0], 'f', 'd')) { + char format = FORMAT_STR_GET(pybuffer.format); + if (FORMAT_STR_IS_FLOAT(format)) { format_error = true; } } -- cgit v1.2.3