Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/blender/blender_python.cpp
| Show First 20 Lines • Show All 188 Lines • ▼ Show 20 Lines | static PyObject *exit_func(PyObject * /*self*/, PyObject * /*args*/) | ||||
| ShaderManager::free_memory(); | ShaderManager::free_memory(); | ||||
| TaskScheduler::free_memory(); | TaskScheduler::free_memory(); | ||||
| Device::free_memory(); | Device::free_memory(); | ||||
| Py_RETURN_NONE; | Py_RETURN_NONE; | ||||
| } | } | ||||
| static PyObject *create_func(PyObject * /*self*/, PyObject *args) | static PyObject *create_func(PyObject * /*self*/, PyObject *args) | ||||
| { | { | ||||
| PyObject *pyengine, *pypreferences, *pydata, *pyregion, *pyv3d, *pyrv3d; | PyObject *pyengine, *pypreferences, *pydata, *pyscreen, *pyregion, *pyv3d, *pyrv3d; | ||||
| int preview_osl; | int preview_osl; | ||||
| if (!PyArg_ParseTuple(args, | if (!PyArg_ParseTuple(args, | ||||
| "OOOOOOi", | "OOOOOOOi", | ||||
| &pyengine, | &pyengine, | ||||
| &pypreferences, | &pypreferences, | ||||
| &pydata, | &pydata, | ||||
| &pyscreen, | |||||
| &pyregion, | &pyregion, | ||||
| &pyv3d, | &pyv3d, | ||||
| &pyrv3d, | &pyrv3d, | ||||
| &preview_osl)) { | &preview_osl)) { | ||||
| return NULL; | return NULL; | ||||
| } | } | ||||
| /* RNA */ | /* RNA */ | ||||
| ID *bScreen = (ID *)PyLong_AsVoidPtr(pyscreen); | |||||
| PointerRNA engineptr; | PointerRNA engineptr; | ||||
| RNA_pointer_create(NULL, &RNA_RenderEngine, (void *)PyLong_AsVoidPtr(pyengine), &engineptr); | RNA_pointer_create(NULL, &RNA_RenderEngine, (void *)PyLong_AsVoidPtr(pyengine), &engineptr); | ||||
| BL::RenderEngine engine(engineptr); | BL::RenderEngine engine(engineptr); | ||||
| PointerRNA preferencesptr; | PointerRNA preferencesptr; | ||||
| RNA_pointer_create( | RNA_pointer_create( | ||||
| NULL, &RNA_Preferences, (void *)PyLong_AsVoidPtr(pypreferences), &preferencesptr); | NULL, &RNA_Preferences, (void *)PyLong_AsVoidPtr(pypreferences), &preferencesptr); | ||||
| BL::Preferences preferences(preferencesptr); | BL::Preferences preferences(preferencesptr); | ||||
| PointerRNA dataptr; | PointerRNA dataptr; | ||||
| RNA_main_pointer_create((Main *)PyLong_AsVoidPtr(pydata), &dataptr); | RNA_main_pointer_create((Main *)PyLong_AsVoidPtr(pydata), &dataptr); | ||||
| BL::BlendData data(dataptr); | BL::BlendData data(dataptr); | ||||
| PointerRNA regionptr; | PointerRNA regionptr; | ||||
| RNA_pointer_create(NULL, &RNA_Region, pylong_as_voidptr_typesafe(pyregion), ®ionptr); | RNA_pointer_create(bScreen, &RNA_Region, pylong_as_voidptr_typesafe(pyregion), ®ionptr); | ||||
| BL::Region region(regionptr); | BL::Region region(regionptr); | ||||
| PointerRNA v3dptr; | PointerRNA v3dptr; | ||||
| RNA_pointer_create(NULL, &RNA_SpaceView3D, pylong_as_voidptr_typesafe(pyv3d), &v3dptr); | RNA_pointer_create(bScreen, &RNA_SpaceView3D, pylong_as_voidptr_typesafe(pyv3d), &v3dptr); | ||||
| BL::SpaceView3D v3d(v3dptr); | BL::SpaceView3D v3d(v3dptr); | ||||
| PointerRNA rv3dptr; | PointerRNA rv3dptr; | ||||
| RNA_pointer_create(NULL, &RNA_RegionView3D, pylong_as_voidptr_typesafe(pyrv3d), &rv3dptr); | RNA_pointer_create(bScreen, &RNA_RegionView3D, pylong_as_voidptr_typesafe(pyrv3d), &rv3dptr); | ||||
| BL::RegionView3D rv3d(rv3dptr); | BL::RegionView3D rv3d(rv3dptr); | ||||
| /* create session */ | /* create session */ | ||||
| BlenderSession *session; | BlenderSession *session; | ||||
| if (rv3d) { | if (rv3d) { | ||||
| /* interactive viewport session */ | /* interactive viewport session */ | ||||
| int width = region.width(); | int width = region.width(); | ||||
| ▲ Show 20 Lines • Show All 839 Lines • Show Last 20 Lines | |||||