diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-03-19 20:54:17 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-03-19 20:54:17 +0300 |
commit | fa59c6a3e7d72d57faadcf0795848b4c3b8381d9 (patch) | |
tree | ea668f42028f8cdf5a5968feeed27e8bd99b30fd /intern/cycles/blender/blender_python.cpp | |
parent | e7f535cd4cf919b7e479d20b8a1b6714f166151d (diff) | |
parent | 83de13f75aafca7d4e1d58ddd36cca19121aa84f (diff) |
Merge branch 'blender2.7'
Diffstat (limited to 'intern/cycles/blender/blender_python.cpp')
-rw-r--r-- | intern/cycles/blender/blender_python.cpp | 45 |
1 files changed, 41 insertions, 4 deletions
diff --git a/intern/cycles/blender/blender_python.cpp b/intern/cycles/blender/blender_python.cpp index 4a1eeeb65c1..ccd783073a3 100644 --- a/intern/cycles/blender/blender_python.cpp +++ b/intern/cycles/blender/blender_python.cpp @@ -23,6 +23,7 @@ #include "blender/blender_session.h" #include "render/denoising.h" +#include "render/merge.h" #include "util/util_debug.h" #include "util/util_foreach.h" @@ -642,9 +643,8 @@ static PyObject *opencl_compile_func(PyObject * /*self*/, PyObject *args) } #endif -static bool denoise_parse_filepaths(PyObject *pyfilepaths, vector<string>& filepaths) +static bool image_parse_filepaths(PyObject *pyfilepaths, vector<string>& filepaths) { - if(PyUnicode_Check(pyfilepaths)) { const char *filepath = PyUnicode_AsUTF8(pyfilepaths); filepaths.push_back(filepath); @@ -713,12 +713,12 @@ static PyObject *denoise_func(PyObject * /*self*/, PyObject *args, PyObject *key /* Parse file paths list. */ vector<string> input, output; - if(!denoise_parse_filepaths(pyinput, input)) { + if(!image_parse_filepaths(pyinput, input)) { return NULL; } if(pyoutput) { - if(!denoise_parse_filepaths(pyoutput, output)) { + if(!image_parse_filepaths(pyoutput, output)) { return NULL; } } @@ -757,6 +757,42 @@ static PyObject *denoise_func(PyObject * /*self*/, PyObject *args, PyObject *key Py_RETURN_NONE; } +static PyObject *merge_func(PyObject * /*self*/, PyObject *args, PyObject *keywords) +{ + static const char *keyword_list[] = {"input", "output", NULL}; + PyObject *pyinput, *pyoutput = NULL; + + if (!PyArg_ParseTupleAndKeywords(args, keywords, "OO", (char**)keyword_list, &pyinput, &pyoutput)) { + return NULL; + } + + /* Parse input list. */ + vector<string> input; + if(!image_parse_filepaths(pyinput, input)) { + return NULL; + } + + /* Parse output string. */ + if(!PyUnicode_Check(pyoutput)) { + PyErr_SetString(PyExc_ValueError, "Output must be a string."); + return NULL; + } + string output = PyUnicode_AsUTF8(pyoutput); + + /* Merge. */ + ImageMerger merger; + merger.input = input; + merger.output = output; + + if(!merger.run()) { + PyErr_SetString(PyExc_ValueError, merger.error.c_str()); + return NULL; + } + + Py_RETURN_NONE; +} + + static PyObject *debug_flags_update_func(PyObject * /*self*/, PyObject *args) { PyObject *pyscene; @@ -920,6 +956,7 @@ static PyMethodDef methods[] = { /* Standalone denoising */ {"denoise", (PyCFunction)denoise_func, METH_VARARGS|METH_KEYWORDS, ""}, + {"merge", (PyCFunction)merge_func, METH_VARARGS|METH_KEYWORDS, ""}, /* Debugging routines */ {"debug_flags_update", debug_flags_update_func, METH_VARARGS, ""}, |