Minor code improvements: avoid unnecessary Python object allocations in Freestyle color blending.

This commit is contained in:
2013-11-03 14:25:37 +00:00
parent 2190e6de0e
commit 9575521812
@@ -129,7 +129,6 @@ static PyObject *Freestyle_blendRamp(PyObject *self, PyObject *args)
PyObject *obj1, *obj2;
char *s;
int type;
Vec3f *v1 = NULL, *v2 = NULL;
float a[3], fac, b[3];
if (!PyArg_ParseTuple(args, "sOfO", &s, &obj1, &fac, &obj2))
@@ -137,32 +136,20 @@ static PyObject *Freestyle_blendRamp(PyObject *self, PyObject *args)
type = ramp_blend_type(s);
if (type < 0) {
PyErr_SetString(PyExc_TypeError, "argument 1 is an unknown ramp blend type");
goto error;
return NULL;
}
v1 = Vec3f_ptr_from_PyObject(obj1);
if (!v1) {
if (!float_array_from_PyObject(obj1, a, 3)) {
PyErr_SetString(PyExc_TypeError,
"argument 2 must be a 3D vector (either a tuple/list of 3 elements or Vector)");
goto error;
return NULL;
}
v2 = Vec3f_ptr_from_PyObject(obj2);
if (!v2) {
if (!float_array_from_PyObject(obj2, b, 3)) {
PyErr_SetString(PyExc_TypeError,
"argument 4 must be a 3D vector (either a tuple/list of 3 elements or Vector)");
goto error;
return NULL;
}
a[0] = v1->x(); b[0] = v2->x();
a[1] = v1->y(); b[1] = v2->y();
a[2] = v1->z(); b[2] = v2->z();
ramp_blend(type, a, fac, b);
delete v1;
delete v2;
return Vector_CreatePyObject(a, 3, Py_NEW, NULL);
error:
if (v1) delete v1;
if (v2) delete v2;
return NULL;
}
#include "BKE_texture.h" /* do_colorband() */