forked from bartvdbraak/blender
Fix T40888: Memory error when selecting Cycles render engine
This commit is contained in:
parent
fe9110edc4
commit
8c9c93ca6f
@ -28,7 +28,7 @@ def init():
|
||||
_cycles.init(path, user_path)
|
||||
|
||||
|
||||
def create(engine, data, scene, region=0, v3d=0, rv3d=0, preview_osl=False):
|
||||
def create(engine, data, scene, region=None, v3d=None, rv3d=None, preview_osl=False):
|
||||
import bpy
|
||||
import _cycles
|
||||
|
||||
|
@ -35,6 +35,13 @@
|
||||
|
||||
CCL_NAMESPACE_BEGIN
|
||||
|
||||
static void *pylong_as_voidptr_typesafe(PyObject *object)
|
||||
{
|
||||
if(object == Py_None)
|
||||
return NULL;
|
||||
return PyLong_AsVoidPtr(object);
|
||||
}
|
||||
|
||||
void python_thread_state_save(void **python_thread_state)
|
||||
{
|
||||
*python_thread_state = (void*)PyEval_SaveThread();
|
||||
@ -84,15 +91,15 @@ static PyObject *create_func(PyObject *self, PyObject *args)
|
||||
BL::Scene scene(sceneptr);
|
||||
|
||||
PointerRNA regionptr;
|
||||
RNA_id_pointer_create((ID*)PyLong_AsVoidPtr(pyregion), ®ionptr);
|
||||
RNA_id_pointer_create((ID*)pylong_as_voidptr_typesafe(pyregion), ®ionptr);
|
||||
BL::Region region(regionptr);
|
||||
|
||||
PointerRNA v3dptr;
|
||||
RNA_id_pointer_create((ID*)PyLong_AsVoidPtr(pyv3d), &v3dptr);
|
||||
RNA_id_pointer_create((ID*)pylong_as_voidptr_typesafe(pyv3d), &v3dptr);
|
||||
BL::SpaceView3D v3d(v3dptr);
|
||||
|
||||
PointerRNA rv3dptr;
|
||||
RNA_id_pointer_create((ID*)PyLong_AsVoidPtr(pyrv3d), &rv3dptr);
|
||||
RNA_id_pointer_create((ID*)pylong_as_voidptr_typesafe(pyrv3d), &rv3dptr);
|
||||
BL::RegionView3D rv3d(rv3dptr);
|
||||
|
||||
/* create session */
|
||||
|
Loading…
Reference in New Issue
Block a user