Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/blender/blender_python.cpp
| Show First 20 Lines • Show All 183 Lines • ▼ Show 20 Lines | |||||
| } | } | ||||
| /* pixel_array and result passed as pointers */ | /* pixel_array and result passed as pointers */ | ||||
| static PyObject *bake_func(PyObject * /*self*/, PyObject *args) | static PyObject *bake_func(PyObject * /*self*/, PyObject *args) | ||||
| { | { | ||||
| PyObject *pysession, *pyobject; | PyObject *pysession, *pyobject; | ||||
| PyObject *pypixel_array, *pyresult; | PyObject *pypixel_array, *pyresult; | ||||
| const char *pass_type; | const char *pass_type; | ||||
| int num_pixels, depth; | int num_pixels, depth, object_id; | ||||
| if(!PyArg_ParseTuple(args, "OOsOiiO", &pysession, &pyobject, &pass_type, &pypixel_array, &num_pixels, &depth, &pyresult)) | if(!PyArg_ParseTuple(args, "OOsiOiiO", &pysession, &pyobject, &pass_type, &object_id, &pypixel_array, &num_pixels, &depth, &pyresult)) | ||||
| return NULL; | return NULL; | ||||
| BlenderSession *session = (BlenderSession*)PyLong_AsVoidPtr(pysession); | BlenderSession *session = (BlenderSession*)PyLong_AsVoidPtr(pysession); | ||||
| PointerRNA objectptr; | PointerRNA objectptr; | ||||
| RNA_id_pointer_create((ID*)PyLong_AsVoidPtr(pyobject), &objectptr); | RNA_id_pointer_create((ID*)PyLong_AsVoidPtr(pyobject), &objectptr); | ||||
| BL::Object b_object(objectptr); | BL::Object b_object(objectptr); | ||||
| void *b_result = PyLong_AsVoidPtr(pyresult); | void *b_result = PyLong_AsVoidPtr(pyresult); | ||||
| PointerRNA bakepixelptr; | PointerRNA bakepixelptr; | ||||
| RNA_pointer_create(NULL, &RNA_BakePixel, PyLong_AsVoidPtr(pypixel_array), &bakepixelptr); | RNA_pointer_create(NULL, &RNA_BakePixel, PyLong_AsVoidPtr(pypixel_array), &bakepixelptr); | ||||
| BL::BakePixel b_bake_pixel(bakepixelptr); | BL::BakePixel b_bake_pixel(bakepixelptr); | ||||
| python_thread_state_save(&session->python_thread_state); | python_thread_state_save(&session->python_thread_state); | ||||
| session->bake(b_object, pass_type, b_bake_pixel, (size_t)num_pixels, depth, (float *)b_result); | session->bake(b_object, pass_type, object_id, b_bake_pixel, (size_t)num_pixels, depth, (float *)b_result); | ||||
| python_thread_state_restore(&session->python_thread_state); | python_thread_state_restore(&session->python_thread_state); | ||||
| Py_RETURN_NONE; | Py_RETURN_NONE; | ||||
| } | } | ||||
| static PyObject *draw_func(PyObject * /*self*/, PyObject *args) | static PyObject *draw_func(PyObject * /*self*/, PyObject *args) | ||||
| { | { | ||||
| ▲ Show 20 Lines • Show All 400 Lines • Show Last 20 Lines | |||||