Repository navigation
Expand file tree
/
Copy pathUEPyCapture.cpp
More file actions
64 lines (43 loc) · 1.63 KB
/
Copy pathUEPyCapture.cpp
File metadata and controls
64 lines (43 loc) · 1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include "UnrealEnginePythonPrivatePCH.h"
#include "Runtime/MovieSceneCapture/Public/MovieSceneCapture.h"
PyObject *py_ue_capture_initialize(ue_PyUObject * self, PyObject * args) {
ue_py_check(self);
PyObject *py_widget;
if (!PyArg_ParseTuple(args, "O", &py_widget)) {
return nullptr;
}
UMovieSceneCapture *capture = ue_py_check_type<UMovieSceneCapture>(self);
if (!capture)
return PyErr_Format(PyExc_Exception, "uobject is not a UMovieSceneCapture");
ue_PySWidget *s_widget = py_ue_is_swidget(py_widget);
if (!s_widget)
return PyErr_Format(PyExc_Exception, "argument is not a SWidget");
#if WITH_EDITOR
if (s_widget->s_widget->GetType().Compare(FName("SPythonEditorViewport")) == 0) {
TSharedRef<SPythonEditorViewport> s_viewport = StaticCastSharedRef<SPythonEditorViewport>(s_widget->s_widget);
capture->Initialize(s_viewport->GetSceneViewport());
capture->StartWarmup();
}
else {
return PyErr_Format(PyExc_Exception, "argument is not a supported Viewport-based SWidget");
}
#endif
Py_RETURN_NONE;
}
PyObject *py_ue_capture_start(ue_PyUObject * self, PyObject * args) {
ue_py_check(self);
UMovieSceneCapture *capture = ue_py_check_type<UMovieSceneCapture>(self);
if (!capture)
return PyErr_Format(PyExc_Exception, "uobject is not a UMovieSceneCapture");
capture->StartCapture();
Py_RETURN_NONE;
}
PyObject *py_ue_capture_stop(ue_PyUObject * self, PyObject * args) {
ue_py_check(self);
UMovieSceneCapture *capture = ue_py_check_type<UMovieSceneCapture>(self);
if (!capture)
return PyErr_Format(PyExc_Exception, "uobject is not a UMovieSceneCapture");
capture->Finalize();
capture->Close();
Py_RETURN_NONE;
}