X-Git-Url: http://cgit.sxemacs.org/?p=harmattan%2Fcameraplus;a=blobdiff_plain;f=declarative%2Fvideoplayer.cpp;h=ce311a279b1ef13fe0120c6b165067973a7328c8;hp=8b6310a2880234f82894f4a5d8152335f476b4b6;hb=0d3123d710b1210e952ebac85e05ac115de11ee3;hpb=c95761c58432ae57f919647fe80fd2b26c509e77 diff --git a/declarative/videoplayer.cpp b/declarative/videoplayer.cpp index 8b6310a..ce311a2 100644 --- a/declarative/videoplayer.cpp +++ b/declarative/videoplayer.cpp @@ -28,6 +28,7 @@ #include #include "qtcamviewfinderrenderer.h" #include +#include #if defined(QT4) VideoPlayer::VideoPlayer(QDeclarativeItem *parent) : @@ -50,6 +51,12 @@ VideoPlayer::VideoPlayer(QQuickItem *parent) : #if defined(QT4) setFlag(QGraphicsItem::ItemHasNoContents, false); #endif + +#if defined(QT5) + setRenderTarget(QQuickPaintedItem::FramebufferObject); + setSmooth(false); + setAntialiasing(false); +#endif } VideoPlayer::~VideoPlayer() { @@ -62,6 +69,12 @@ VideoPlayer::~VideoPlayer() { } void VideoPlayer::componentComplete() { +#if defined(QT4) + QDeclarativeItem::componentComplete(); +#elif defined(QT5) + QQuickPaintedItem::componentComplete(); +#endif + if (!m_config) { qmlInfo(this) << "CameraConfig not set"; return; @@ -239,16 +252,30 @@ void VideoPlayer::paint(QPainter *painter, const QStyleOptionGraphicsItem *optio Q_UNUSED(widget); Q_UNUSED(option); + + painter->fillRect(boundingRect(), Qt::black); + #elif defined(QT5) void VideoPlayer::paint(QPainter *painter) { + painter->fillRect(contentsBoundingRect(), Qt::black); + #endif - painter->fillRect(boundingRect(), Qt::black); if (!m_renderer) { return; } - m_renderer->paint(painter); + bool needsNativePainting = m_renderer->needsNativePainting(); + + if (needsNativePainting) { + painter->beginNativePainting(); + } + + m_renderer->paint(QMatrix4x4(painter->combinedTransform()), painter->viewport()); + + if (needsNativePainting) { + painter->endNativePainting(); + } } VideoPlayer::State VideoPlayer::state() const {