X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=lib%2Fqtcamviewfinderrenderer.h;h=a172d5b923d7b7fa05208d42e026b383faf27063;hb=0da718e86100458cc336d51ca79554e4fbac415d;hp=4e46af0af1439941e60b8851dbe28974938e5b00;hpb=ddd8b7037bf34c35800f2a8cec0af45fcbd72a68;p=harmattan%2Fcameraplus diff --git a/lib/qtcamviewfinderrenderer.h b/lib/qtcamviewfinderrenderer.h index 4e46af0..a172d5b 100644 --- a/lib/qtcamviewfinderrenderer.h +++ b/lib/qtcamviewfinderrenderer.h @@ -1,14 +1,35 @@ // -*- c++ -*- +/*! + * This file is part of CameraPlus. + * + * Copyright (C) 2012-2013 Mohammed Sameer + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + #ifndef QT_CAM_VIEWFINDER_RENDERER_H #define QT_CAM_VIEWFINDER_RENDERER_H #include #include +#include class QtCamConfig; class QMetaObject; -class QPainter; +class QMatrix4x4; class QSizeF; class QtCamViewfinderRenderer : public QObject { @@ -20,19 +41,26 @@ public: virtual ~QtCamViewfinderRenderer(); - virtual void paint(QPainter *painter) = 0; + virtual void paint(const QMatrix4x4& matrix, const QRectF& viewport) = 0; virtual void resize(const QSizeF& size) = 0; virtual void reset() = 0; virtual GstElement *sinkElement() = 0; + virtual QRectF renderArea() = 0; + virtual QSizeF videoResolution() = 0; + + virtual bool needsNativePainting() = 0; + protected: QtCamViewfinderRenderer(QtCamConfig *config, QObject *parent = 0); signals: void updateRequested(); + void renderAreaChanged(); + void videoResolutionChanged(); }; #define QT_CAM_VIEWFINDER_RENDERER(key, klass) \ -static int klass_seq = QtCamViewfinderRenderer::registerRenderer(key, klass::staticMetaObject) + static int klass_seq = QtCamViewfinderRenderer::registerRenderer(key, klass::staticMetaObject); #endif /* QT_CAM_VIEWFINDER_RENDERER_H */