diff options
author | Andy Nichols <andy.nichols@digia.com> | 2013-10-16 17:25:23 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-10-17 09:50:58 +0200 |
commit | b7b2bdef1525f6b0fbf13f46224d732f41e0575c (patch) | |
tree | 330cbec42221eabbe3a3efaaa4b50313878faa21 /mkspecs | |
parent | 979a55a1ef3f5d7402b76f5fe50e59315b24de25 (diff) |
linux-rasp-pi: Remove custom cursor code
This code was added as an optimization for showing a mouse cursor on
the Raspberry Pi. What happens though is while the mouse cursor does
move more smoothly, the actual application becomes less smooth when the
mouse cursor is moved. By removing the custom cursor code, performance
will no longer be effected by rendering a moving mouse cursor.
Change-Id: I9f8ac6c236cd4ff6d8e1d999a461c3e6db75d7e3
Reviewed-by: Samuli Piippo <samuli.piippo@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Diffstat (limited to 'mkspecs')
-rw-r--r-- | mkspecs/devices/linux-rasp-pi-g++/qeglfshooks_pi.cpp | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/mkspecs/devices/linux-rasp-pi-g++/qeglfshooks_pi.cpp b/mkspecs/devices/linux-rasp-pi-g++/qeglfshooks_pi.cpp index 671f525250..5e57ba382a 100644 --- a/mkspecs/devices/linux-rasp-pi-g++/qeglfshooks_pi.cpp +++ b/mkspecs/devices/linux-rasp-pi-g++/qeglfshooks_pi.cpp @@ -136,89 +136,6 @@ static void destroyDispmanxLayer(EGLNativeWindowType window) delete eglWindow; } -class QEglFSPiCursor : public QEglFSCursor -{ -public: - QEglFSPiCursor(QEglFSScreen *screen) : QEglFSCursor(screen) { - QSurfaceFormat platformFormat; - platformFormat.setDepthBufferSize(24); - platformFormat.setStencilBufferSize(8); - platformFormat.setRedBufferSize(8); - platformFormat.setGreenBufferSize(8); - platformFormat.setBlueBufferSize(8); - platformFormat.setAlphaBufferSize(8); - m_config = q_configFromGLFormat(m_screen->display(), platformFormat); - - createSurface(); - createContext(); - drawInLayer(); - } - - ~QEglFSPiCursor() { - eglDestroySurface(m_screen->display(), m_surface); - destroyDispmanxLayer(m_window); - eglDestroyContext(m_screen->display(), m_context); - } - - void createSurface() { - const QRect cr = cursorRect(); - m_window = createDispmanxLayer(cr.topLeft(), cr.size(), 50, DISPMANX_FLAGS_ALPHA_FROM_SOURCE); - m_surface = eglCreateWindowSurface(m_screen->display(), m_config, m_window, NULL); - } - - void createContext() { - eglBindAPI(EGL_OPENGL_ES_API); - QVector<EGLint> attrs; - attrs.append(EGL_CONTEXT_CLIENT_VERSION); - attrs.append(2); - attrs.append(EGL_NONE); - m_context = eglCreateContext(m_screen->display(), m_config, EGL_NO_CONTEXT, attrs.constData()); - } - - void drawInLayer() { - eglMakeCurrent(m_screen->display(), m_surface, m_surface, m_context); - - glClearColor(0, 0, 0, 0); - glClear(GL_COLOR_BUFFER_BIT); - draw(QRectF(QPointF(-1, 1), QPointF(1, -1))); - - eglSwapBuffers(m_screen->display(), m_surface); - eglMakeCurrent(m_screen->display(), EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); - } - - void changeCursor(QCursor *cursor, QWindow *window) Q_DECL_OVERRIDE { - if (!setCurrentCursor(cursor)) - return; - - EGL_DISPMANX_WINDOW_T *eglWindow = static_cast<EGL_DISPMANX_WINDOW_T *>(m_window); - if (QSize(eglWindow->width, eglWindow->height) != m_cursor.size) { - eglDestroySurface(m_screen->display(), m_surface); - destroyDispmanxLayer(m_window); - createSurface(); - } - drawInLayer(); - } - - void setPos(const QPoint &pos) Q_DECL_OVERRIDE { - m_cursor.pos = pos; - moveDispmanxLayer(m_window, cursorRect().topLeft()); - } - - void pointerEvent(const QMouseEvent &event) Q_DECL_OVERRIDE { - if (event.type() != QEvent::MouseMove) - return; - m_cursor.pos = event.pos(); - moveDispmanxLayer(m_window, cursorRect().topLeft()); - } - - void paintOnScreen() Q_DECL_OVERRIDE { } -private: - EGLConfig m_config; - EGLContext m_context; - EGLNativeWindowType m_window; - EGLSurface m_surface; -}; - class QEglFSPiHooks : public QEglFSHooks { public: @@ -230,9 +147,6 @@ public: virtual void destroyNativeWindow(EGLNativeWindowType window); virtual bool hasCapability(QPlatformIntegration::Capability cap) const; - QEglFSCursor *createCursor(QEglFSScreen *screen) const { - return new QEglFSPiCursor(screen); - } }; void QEglFSPiHooks::platformInit() |