Cleanup: use new format string utility

This commit is contained in:
2018-10-06 00:13:54 -03:00
parent 98e62d459a
commit 0f55334413
2 changed files with 13 additions and 24 deletions

View File

@@ -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;
}
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;
}
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;
}
return -1; /* UNKNOWN */
}