summaryrefslogtreecommitdiff
path: root/elements/gstqtvideosink/painters/genericsurfacepainter.h
diff options
context:
space:
mode:
authorGeorge Kiagiadakis <george.kiagiadakis@collabora.com>2013-10-14 11:21:31 +0200
committerGeorge Kiagiadakis <george.kiagiadakis@collabora.com>2013-10-18 18:07:55 +0200
commit7d9a800163a92cdbfcc38aa24591c8ad20a6bb19 (patch)
treedaf826cdb7c5476a6c56dbd9a7ecd3c9d7c3cf8d /elements/gstqtvideosink/painters/genericsurfacepainter.h
parentd46c146834c7fff787094e1b715c973a17998a27 (diff)
qtvideosink: Distribute classes into subdirectories for easier code navigation
Diffstat (limited to 'elements/gstqtvideosink/painters/genericsurfacepainter.h')
-rw-r--r--elements/gstqtvideosink/painters/genericsurfacepainter.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/elements/gstqtvideosink/painters/genericsurfacepainter.h b/elements/gstqtvideosink/painters/genericsurfacepainter.h
new file mode 100644
index 0000000..66325df
--- /dev/null
+++ b/elements/gstqtvideosink/painters/genericsurfacepainter.h
@@ -0,0 +1,51 @@
+/*
+ Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). <qt-info@nokia.com>
+ Copyright (C) 2011 Collabora Ltd. <info@collabora.com>
+
+ This library is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 2.1
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#ifndef GENERICSURFACEPAINTER_H
+#define GENERICSURFACEPAINTER_H
+
+#include "abstractsurfacepainter.h"
+#include <QSet>
+#include <QImage>
+
+/**
+ * Generic painter that paints using the QPainter API.
+ * No colorspace conversion is done and no colors adjustment either.
+ */
+class GenericSurfacePainter : public AbstractSurfacePainter
+{
+public:
+ GenericSurfacePainter();
+
+ static QSet<GstVideoFormat> supportedPixelFormats();
+
+ virtual bool supportsFormat(GstVideoFormat format) const {
+ return supportedPixelFormats().contains(format);
+ }
+
+ virtual void init(const BufferFormat &format);
+ virtual void cleanup();
+
+ virtual void paint(quint8 *data, const BufferFormat & frameFormat, const QRectF & clipRect,
+ QPainter *painter, const PaintAreas & areas);
+
+ virtual void updateColors(int brightness, int contrast, int hue, int saturation);
+
+private:
+ QImage::Format m_imageFormat;
+};
+
+#endif // GENERICSURFACEPAINTER_H