#include "abstractclipitem.h"
#include "monitorscene.h"
#include "widgets/monitoreditwidget.h"
+#include "widgets/videosurface.h"
+#include "widgets/videoglwidget.h"
#include "kdenlivesettings.h"
#include <KDebug>
#define SEEK_INACTIVE (-1)
-Monitor::Monitor(Kdenlive::MonitorId id, MonitorManager *manager, QString profile, QWidget *parent) :
+Monitor::Monitor(Kdenlive::MonitorId id, MonitorManager *manager, QGLWidget *glContext, QString profile, QWidget *parent) :
AbstractMonitor(id, manager, parent)
, render(NULL)
, m_currentClip(NULL)
, m_effectWidget(NULL)
, m_selectedClip(NULL)
, m_loopClipTransition(true)
+ , m_parentGLContext(glContext)
, m_glWidget(NULL)
, m_editMarker(NULL)
{
void Monitor::createOpenGlWidget(QWidget *parent, const QString &profile)
{
- render = new Render(id(), 0, profile, this);
- m_glWidget = new VideoGLWidget(parent);
+ m_glWidget = new VideoGLWidget(parent, m_parentGLContext);
+ render = new Render(id(), 0, profile, this, m_glWidget);
if (m_glWidget == NULL) {
// Creation failed, we are in trouble...
QMessageBox::critical(this, i18n("Missing OpenGL support"),
m_glWidget->setImageAspectRatio(render->dar());
m_glWidget->setBackgroundColor(KdenliveSettings::window_background());
connect(render, SIGNAL(showImageSignal(QImage)), m_glWidget, SLOT(showImage(QImage)));
+ connect(render, SIGNAL(showImageSignal(Mlt::Frame*, GLuint)), m_glWidget, SLOT(showImage(Mlt::Frame*, GLuint)));
}
void Monitor::setupMenu(QMenu *goMenu, QAction *playZone, QAction *loopZone, QMenu *markerMenu, QAction *loopClip)