PyAPI: Make GPUVertFormat() argument optional

This commit is contained in:
Campbell Barton 2018-10-26 08:06:05 +11:00
parent b445d57ccf
commit 1d8ba9d618
2 changed files with 5 additions and 4 deletions

View File

@ -31,7 +31,7 @@ def draw_circle_2d(position, color, radius, segments):
seg = 32
mul = (1.0 / (seg - 1)) * (pi * 2)
verts = [(sin(i * mul), cos(i * mul)) for i in range(seg)]
fmt = GPUVertFormat(format=[])
fmt = GPUVertFormat()
pos_id = fmt.attr_add(id="pos", comp_type='F32', len=2, fetch_mode='FLOAT')
vbo = GPUVertBuf(len=len(verts), format=fmt)
vbo.attr_fill(id=pos_id, data=verts)

View File

@ -196,10 +196,11 @@ static bool bpygpu_vertformat_attr_add_from_tuple(
static PyObject *bpygpu_VertFormat_new(PyTypeObject *UNUSED(type), PyObject *args, PyObject *kwds)
{
PyListObject *format_list;
const char *error_prefix = "GPUVertFormat.__new__";
PyListObject *format_list = NULL;
static const char *_keywords[] = {"format", NULL};
static _PyArg_Parser _parser = {"O!:VertFormat.__new__", _keywords, 0};
static _PyArg_Parser _parser = {"|O!:GPUVertFormat.__new__", _keywords, 0};
if (!_PyArg_ParseTupleAndKeywordsFast(
args, kwds, &_parser,
&PyList_Type, &format_list))
@ -209,7 +210,7 @@ static PyObject *bpygpu_VertFormat_new(PyTypeObject *UNUSED(type), PyObject *arg
BPyGPUVertFormat *ret = (BPyGPUVertFormat *)BPyGPUVertFormat_CreatePyObject(NULL);
if (!bpygpu_vertformat_from_PyList(format_list, "VertFormat.__new__", &ret->fmt)) {
if (format_list && !bpygpu_vertformat_from_PyList(format_list, error_prefix, &ret->fmt)) {
Py_DECREF(ret);
return NULL;
}