summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRhys Weatherley <rhys.weatherley@nokia.com>2009-10-28 22:03:27 (GMT)
committerRhys Weatherley <rhys.weatherley@nokia.com>2009-10-28 22:03:27 (GMT)
commit9fbece67bacee0f88261c3cd07c443fdf6385f81 (patch)
tree72612ac5a47bbaa52ff7c215e046cc0386cbbfa9
parentd9b009bfed86ac273da4fc589daa34d852437254 (diff)
downloadQt-9fbece67bacee0f88261c3cd07c443fdf6385f81.zip
Qt-9fbece67bacee0f88261c3cd07c443fdf6385f81.tar.gz
Qt-9fbece67bacee0f88261c3cd07c443fdf6385f81.tar.bz2
Remove QVGEGLWindowSurfaceQImage from QtOpenVG
Rendering into a QImage as a window backing store isn't very efficient and isn't needed by any of our current platforms. If a specific graphics system needs it in the future, it can implement it directly. Reviewed-by: trustme
-rw-r--r--src/openvg/qwindowsurface_vg.cpp4
-rw-r--r--src/openvg/qwindowsurface_vgegl.cpp59
-rw-r--r--src/openvg/qwindowsurface_vgegl_p.h19
3 files changed, 2 insertions, 80 deletions
diff --git a/src/openvg/qwindowsurface_vg.cpp b/src/openvg/qwindowsurface_vg.cpp
index 661e06a..f8486a6 100644
--- a/src/openvg/qwindowsurface_vg.cpp
+++ b/src/openvg/qwindowsurface_vg.cpp
@@ -54,8 +54,8 @@ QT_BEGIN_NAMESPACE
QVGWindowSurface::QVGWindowSurface(QWidget *window)
: QWindowSurface(window)
{
- d_ptr = QVGEGLWindowSurfacePrivate::create
- (QVGEGLWindowSurfacePrivate::WindowSurface, this);
+ // Create the default type of EGL window surface for windows.
+ d_ptr = new QVGEGLWindowSurfaceDirect(this);
}
QVGWindowSurface::QVGWindowSurface
diff --git a/src/openvg/qwindowsurface_vgegl.cpp b/src/openvg/qwindowsurface_vgegl.cpp
index d622c1f..103f84d 100644
--- a/src/openvg/qwindowsurface_vgegl.cpp
+++ b/src/openvg/qwindowsurface_vgegl.cpp
@@ -101,18 +101,6 @@ QImage::Format qt_vg_config_to_image_format(QEglContext *context)
return argbFormat; // XXX
}
-static void copySubImage(QImage *image, VGImage vgImage, const QRect& rect)
-{
- vgGetImageSubData
- (vgImage,
- image->bits() + rect.bottom() * image->bytesPerLine() +
- rect.x() * (image->depth() / 8),
- -(image->bytesPerLine()),
- qt_vg_image_to_vg_format(image->format()),
- rect.x(), (image->height() - 1) - rect.bottom(),
- rect.width(), rect.height());
-}
-
#if !defined(QVG_NO_SINGLE_CONTEXT)
class QVGSharedContext
@@ -336,20 +324,6 @@ QVGEGLWindowSurfacePrivate::~QVGEGLWindowSurfacePrivate()
destroyPaintEngine();
}
-QVGEGLWindowSurfacePrivate *QVGEGLWindowSurfacePrivate::create
- (SurfaceType type, QWindowSurface *win)
-{
-#if defined(QVG_VGIMAGE_BACKBUFFERS)
- if (type == VGImageSurface)
- return new QVGEGLWindowSurfaceVGImage(win);
- else if (type == QImageSurface)
- return new QVGEGLWindowSurfaceQImage(win);
-#endif
- if (type == WindowSurface)
- return new QVGEGLWindowSurfaceDirect(win);
- return 0;
-}
-
QVGPaintEngine *QVGEGLWindowSurfacePrivate::paintEngine()
{
if (!engine)
@@ -514,39 +488,6 @@ EGLSurface QVGEGLWindowSurfaceVGImage::mainSurface() const
return qt_vg_shared_surface();
}
-QVGEGLWindowSurfaceQImage::QVGEGLWindowSurfaceQImage(QWindowSurface *win)
- : QVGEGLWindowSurfaceVGImage(win)
-{
-}
-
-QVGEGLWindowSurfaceQImage::~QVGEGLWindowSurfaceQImage()
-{
-}
-
-void QVGEGLWindowSurfaceQImage::endPaint
- (QWidget *widget, const QRegion& region, QImage *image)
-{
- QEglContext *context = ensureContext(widget);
- if (context) {
- if (backBufferSurface != EGL_NO_SURFACE) {
- if (isPaintingActive)
- vgFlush();
- context->makeCurrent(mainSurface());
- QRegion rgn = region.intersected
- (QRect(0, 0, image->width(), image->height()));
- if (rgn.numRects() == 1) {
- copySubImage(image, backBuffer, rgn.boundingRect());
- } else {
- QVector<QRect> rects = rgn.rects();
- for (int index = 0; index < rects.size(); ++index)
- copySubImage(image, backBuffer, rects[index]);
- }
- context->lazyDoneCurrent();
- }
- isPaintingActive = false;
- }
-}
-
#endif // QVG_VGIMAGE_BACKBUFFERS
QVGEGLWindowSurfaceDirect::QVGEGLWindowSurfaceDirect(QWindowSurface *win)
diff --git a/src/openvg/qwindowsurface_vgegl_p.h b/src/openvg/qwindowsurface_vgegl_p.h
index fa36b94..7fa60ea 100644
--- a/src/openvg/qwindowsurface_vgegl_p.h
+++ b/src/openvg/qwindowsurface_vgegl_p.h
@@ -70,16 +70,6 @@ public:
QVGEGLWindowSurfacePrivate(QWindowSurface *win);
virtual ~QVGEGLWindowSurfacePrivate();
- enum SurfaceType
- {
- WindowSurface,
- VGImageSurface,
- QImageSurface
- };
-
- static QVGEGLWindowSurfacePrivate *create
- (SurfaceType type, QWindowSurface *win);
-
QVGPaintEngine *paintEngine();
virtual QEglContext *ensureContext(QWidget *widget) = 0;
virtual void beginPaint(QWidget *widget) = 0;
@@ -126,15 +116,6 @@ protected:
EGLSurface mainSurface() const;
};
-class Q_OPENVG_EXPORT QVGEGLWindowSurfaceQImage : public QVGEGLWindowSurfaceVGImage
-{
-public:
- QVGEGLWindowSurfaceQImage(QWindowSurface *win);
- virtual ~QVGEGLWindowSurfaceQImage();
-
- void endPaint(QWidget *widget, const QRegion& region, QImage *image);
-};
-
#endif // EGL_OPENVG_IMAGE
class Q_OPENVG_EXPORT QVGEGLWindowSurfaceDirect : public QVGEGLWindowSurfacePrivate