OpenShot Library | libopenshot 1.1.1
Loading...
Searching...
No Matches
VideoRenderer.cpp
Go to the documentation of this file.
1
9// Copyright (c) 2008-2019 OpenShot Studios, LLC
10//
11// SPDX-License-Identifier: LGPL-3.0-or-later
12
13#include "VideoRenderer.h"
14#include <QtCore/QMetaObject>
15#include <QtWidgets/QWidget>
16
18 : QObject(parent), override_widget(nullptr)
19{
20}
21
25
27void VideoRenderer::OverrideWidget(uintptr_t qwidget_address)
28{
29 if (override_present_connection)
30 QObject::disconnect(override_present_connection);
31
32 // re-cast QWidget pointer (long) as an actual QWidget
33 override_widget = reinterpret_cast<QWidget*>(qwidget_address);
34 if (!override_widget)
35 return;
36
37 override_present_connection = QObject::connect(
39 override_widget,
40 [widget = override_widget](const QImage &image) {
41 QMetaObject::invokeMethod(
42 widget, "present",
43 Qt::DirectConnection,
44 Q_ARG(QImage, image)
45 );
46 },
47 Qt::QueuedConnection
48 );
49}
50
51void VideoRenderer::render(std::shared_ptr<QImage> image)
52{
53 if (!image)
54 return;
55
56 emit present(*image);
57}
Header file for Video Renderer class.
void present(const QImage &image)
void render(std::shared_ptr< QImage > image)
VideoRenderer(QObject *parent=0)
void OverrideWidget(uintptr_t qwidget_address)
Override QWidget which needs to be painted.