[-]
[+]
|
Changed |
_service:tar_git:qt5-qpa-hwcomposer-plugin.changes
|
|
[-]
[+]
|
Changed |
_service:tar_git:qt5-qpa-hwcomposer-plugin.spec
^
|
|
[-]
[+]
|
Changed |
_service
^
|
@@ -1,7 +1,7 @@
<services>
- <service name="tar_git">
- <param name="url">https://github.com/mlehtima/qt5-qpa-hwcomposer-plugin.git</param>
- <param name="branch">master</param>
- <param name="revision">HEAD</param>
- </service>
+<service name="tar_git">
+ <param name="url">http://github.com/mer-hybris/qt5-qpa-hwcomposer-plugin.git</param>
+ <param name="branch">master</param>
+ <param name="revision">HEAD</param>
+</service>
</services>
\ No newline at end of file
|
[-]
[+]
|
Changed |
_service:tar_git:qt5-qpa-hwcomposer-plugin-5.6.2.1.tar.bz2/hwcomposer/hwcomposer.pro
^
|
@@ -1,7 +1,7 @@
TARGET = hwcomposer
PLUGIN_TYPE = platforms
-PLUGIN_CLASS_NAME = QEglFSIntegrationPlugin
+PLUGIN_CLASS_NAME = QEglFShwcIntegrationPlugin
load(qt_plugin)
INCLUDEPATH += .
@@ -28,7 +28,7 @@
HEADERS += hwcomposer_backend_v11.h
-QT += core-private compositor-private gui-private platformsupport-private
+QT += core-private compositor-private gui-private platformsupport-private dbus
DEFINES += QEGL_EXTRA_DEBUG
CONFIG += egl qpa/genericunixfontdatabase
@@ -36,7 +36,7 @@
CONFIG += link_pkgconfig
# For linking against libQt5PlatformSupport.a
-PKGCONFIG += libudev glib-2.0 mtdev
+PKGCONFIG_PRIVATE += libudev glib-2.0 mtdev
# libhybris / droid integration
PKGCONFIG += android-headers libhardware hybris-egl-platform
@@ -57,14 +57,12 @@
$$PWD/qeglfswindow.cpp \
$$PWD/qeglfsbackingstore.cpp \
$$PWD/qeglfsscreen.cpp \
- $$PWD/qeglfscontext.cpp \
- $$PWD/qeglfspageflipper.cpp
+ $$PWD/qeglfscontext.cpp
HEADERS += $$PWD/qeglfsintegration.h \
$$PWD/qeglfswindow.h \
$$PWD/qeglfsbackingstore.h \
$$PWD/qeglfsscreen.h \
- $$PWD/qeglfscontext.h \
- $$PWD/qeglfspageflipper.h
+ $$PWD/qeglfscontext.h
QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF
|
[-]
[+]
|
Changed |
_service:tar_git:qt5-qpa-hwcomposer-plugin-5.6.2.1.tar.bz2/hwcomposer/hwcomposer_backend.cpp
^
|
@@ -85,14 +85,7 @@
// Open hardware composer device
HWC_PLUGIN_ASSERT_ZERO(hwc_module->methods->open(hwc_module, HWC_HARDWARE_COMPOSER, &hwc_device));
- uint32_t version = hwc_device->version;
- if ((version & 0xffff0000) == 0) {
- // Assume header version is always 1
- uint32_t header_version = 1;
-
- // Legacy version encoding
- version = (version << 16) | header_version;
- }
+ uint32_t version = interpreted_version(hwc_device);
fprintf(stderr, "== hwcomposer device ==\n");
fprintf(stderr, " * Version: %x (interpreted as %x)\n", hwc_device->version, version);
@@ -126,22 +119,22 @@
#endif /* HWC_DEVICE_API_VERSION_1_0 */
#ifdef HWC_PLUGIN_HAVE_HWCOMPOSER1_API
case HWC_DEVICE_API_VERSION_1_1:
- return new HwComposerBackend_v11(hwc_module, hwc_device, HWC_NUM_DISPLAY_TYPES);
- break;
#ifdef HWC_DEVICE_API_VERSION_1_2
case HWC_DEVICE_API_VERSION_1_2:
- /* hwcomposer 1.2 and beyond have virtual displays however virtual displays are
- only used in hwcomposer 1.2 */
- return new HwComposerBackend_v11(hwc_module, hwc_device, HWC_NUM_DISPLAY_TYPES);
- break;
-
-#endif /* HWC_DEVICE_API_VERSION_1_2 */
+#endif
#ifdef HWC_DEVICE_API_VERSION_1_3
case HWC_DEVICE_API_VERSION_1_3:
- /* Do not use virtual displays */
- return new HwComposerBackend_v11(hwc_module, hwc_device, HWC_NUM_PHYSICAL_DISPLAY_TYPES);
+#endif
+#ifdef HWC_DEVICE_API_VERSION_1_4
+ case HWC_DEVICE_API_VERSION_1_4:
+#endif
+#ifdef HWC_DEVICE_API_VERSION_1_5
+ case HWC_DEVICE_API_VERSION_1_5:
+#endif
+ // HWC_NUM_DISPLAY_TYPES is the actual size of the array, otherwise
+ // underrun/overruns happen
+ return new HwComposerBackend_v11(hwc_module, hwc_device, HWC_NUM_DISPLAY_TYPES);
break;
-#endif /* HWC_DEVICE_API_VERSION_1_3 */
#endif /* HWC_PLUGIN_HAVE_HWCOMPOSER1_API */
default:
fprintf(stderr, "Unknown hwcomposer API: 0x%x/0x%x/0x%x\n",
|
[-]
[+]
|
Changed |
_service:tar_git:qt5-qpa-hwcomposer-plugin-5.6.2.1.tar.bz2/hwcomposer/hwcomposer_backend.h
^
|
@@ -43,6 +43,7 @@
#define HWCOMPOSER_BACKEND_H
#include <sys/types.h>
+#include <sync/sync.h>
#include <android-config.h>
#include <hardware/hardware.h>
@@ -53,6 +54,7 @@
#include <qdebug.h>
+class QEglFSWindow;
// Evaluate "x", if it doesn't return zero, print a warning
#define HWC_PLUGIN_EXPECT_ZERO(x) \
@@ -66,7 +68,7 @@
// Evaluate "x", if it is NULL, exit with a fatal error
#define HWC_PLUGIN_FATAL(x) \
- qFatal("QPA-HWC: %s", x, __func__)
+ qFatal("QPA-HWC: %s in %s", x, __func__)
// Evaluate "x", if it is NULL, exit with a fatal error
#define HWC_PLUGIN_ASSERT_NOT_NULL(x) \
@@ -78,6 +80,19 @@
{ int res; if ((res = (x)) != 0) \
qFatal("QPA-HWC: %s in %s returned %i", (#x), __func__, res); }
+inline static uint32_t interpreted_version(hw_device_t *hwc_device)
+{
+ uint32_t version = hwc_device->version;
+
+ if ((version & 0xffff0000) == 0) {
+ // Assume header version is always 1
+ uint32_t header_version = 1;
+
+ // Legacy version encoding
+ version = (version << 16) | header_version;
+ }
+ return version;
+}
class HwComposerBackend {
@@ -94,6 +109,8 @@
virtual void sleepDisplay(bool sleep) = 0;
virtual float refreshRate() = 0;
+ virtual bool requestUpdate(QEglFSWindow *) { return false; }
+
protected:
HwComposerBackend(hw_module_t *hwc_module);
virtual ~HwComposerBackend();
|
[-]
[+]
|
Changed |
_service:tar_git:qt5-qpa-hwcomposer-plugin-5.6.2.1.tar.bz2/hwcomposer/hwcomposer_backend_v0.cpp
^
|
@@ -38,6 +38,8 @@
** $QT_END_LICENSE$
**
****************************************************************************/
+#include <android-version.h>
+#if ANDROID_VERSION_MAJOR <= 4
#include "hwcomposer_backend_v0.h"
#ifdef HWC_DEVICE_API_VERSION_0_1
@@ -119,3 +121,4 @@
return fps;
}
#endif
+#endif
|
[-]
[+]
|
Changed |
_service:tar_git:qt5-qpa-hwcomposer-plugin-5.6.2.1.tar.bz2/hwcomposer/hwcomposer_backend_v11.cpp
^
|
@@ -40,11 +40,49 @@
****************************************************************************/
#include <android-version.h>
-
#include "hwcomposer_backend_v11.h"
+#include "qeglfswindow.h"
+
+#include <QtCore/QElapsedTimer>
+#include <QtCore/QTimerEvent>
+#include <QtCore/QCoreApplication>
+#include <private/qwindow_p.h>
#ifdef HWC_PLUGIN_HAVE_HWCOMPOSER1_API
+// #define QPA_HWC_TIMING
+// #define QPA_HWC_SYNC_BEFORE_SET
+
+#ifdef QPA_HWC_TIMING
+#define QPA_HWC_TIMING_SAMPLE(variable) variable = timer.nsecsElapsed()
+static QElapsedTimer timer;
+static qint64 presentTime;
+static qint64 syncTime;
+static qint64 prepareTime;
+static qint64 setTime;
+#else
+#define QPA_HWC_TIMING_SAMPLE(variable)
+#endif
+
+struct HwcProcs_v11 : public hwc_procs
+{
+ HwComposerBackend_v11 *backend;
+};
+
+static void hwc11_callback_vsync(const struct hwc_procs *procs, int, int64_t)
+{
+ QCoreApplication::postEvent(static_cast<const HwcProcs_v11 *>(procs)->backend, new QEvent(QEvent::User));
+}
+
+static void hwc11_callback_invalidate(const struct hwc_procs *)
+{
+}
+
+static void hwc11_callback_hotplug(const struct hwc_procs *, int, int)
+{
+}
+
+
class HWComposer : public HWComposerNativeWindow
{
private:
@@ -72,54 +110,73 @@
, mlist(mList)
, num_displays(num_displays)
{
+ int bufferCount = qBound(2, qgetenv("QPA_HWC_BUFFER_COUNT").toInt(), 8);
+ setBufferCount(bufferCount);
}
void HWComposer::present(HWComposerNativeWindowBuffer *buffer)
{
- int oldretire = mlist[0]->retireFenceFd;
- mlist[0]->retireFenceFd = -1;
+ QPA_HWC_TIMING_SAMPLE(presentTime);
+
fblayer->handle = buffer->handle;
- fblayer->acquireFenceFd = getFenceBufferFd(buffer);
fblayer->releaseFenceFd = -1;
+#ifdef QPA_HWC_SYNC_BEFORE_SET
+ int acqFd = getFenceBufferFd(buffer);
+ if (acqFd >= 0) {
+ sync_wait(acqFd, -1);
+ close(acqFd);
+ fblayer->acquireFenceFd = -1;
+ }
+#else
+ fblayer->acquireFenceFd = getFenceBufferFd(buffer);
+#endif
+
+ QPA_HWC_TIMING_SAMPLE(syncTime);
+
int err = hwcdevice->prepare(hwcdevice, num_displays, mlist);
HWC_PLUGIN_EXPECT_ZERO(err);
+ QPA_HWC_TIMING_SAMPLE(prepareTime);
+
err = hwcdevice->set(hwcdevice, num_displays, mlist);
HWC_PLUGIN_EXPECT_ZERO(err);
+ QPA_HWC_TIMING_SAMPLE(setTime);
+
setFenceBufferFd(buffer, fblayer->releaseFenceFd);
- if (oldretire != -1)
- {
- sync_wait(oldretire, -1);
- close(oldretire);
+ if (mlist[0]->retireFenceFd != -1) {
+ close(mlist[0]->retireFenceFd);
+ mlist[0]->retireFenceFd = -1;
}
}
HwComposerBackend_v11::HwComposerBackend_v11(hw_module_t *hwc_module, hw_device_t *hw_device, int num_displays)
: HwComposerBackend(hwc_module)
, hwc_device((hwc_composer_device_1_t *)hw_device)
- , hwc_win(NULL)
, hwc_list(NULL)
, hwc_mList(NULL)
- , oldretire(-1)
- , oldrelease(-1)
- , oldrelease2(-1)
, num_displays(num_displays)
+ , m_displayOff(true)
{
+ procs = new HwcProcs_v11();
+ procs->invalidate = hwc11_callback_invalidate;
+ procs->hotplug = hwc11_callback_hotplug;
+ procs->vsync = hwc11_callback_vsync;
+ procs->backend = this;
+
+ hwc_device->registerProcs(hwc_device, procs);
+
+ hwc_version = interpreted_version(hw_device);
sleepDisplay(false);
}
HwComposerBackend_v11::~HwComposerBackend_v11()
{
- // Destroy the window if it hasn't yet been destroyed
- if (hwc_win != NULL) {
- delete hwc_win;
- }
-
// Close the hwcomposer handle
- HWC_PLUGIN_EXPECT_ZERO(hwc_close_1(hwc_device));
+ if (!qgetenv("QPA_HWC_WORKAROUNDS").split(',').contains("no-close-hwc"))
+ HWC_PLUGIN_EXPECT_ZERO(hwc_close_1(hwc_device));
if (hwc_mList != NULL) {
free(hwc_mList);
@@ -128,6 +185,8 @@
if (hwc_list != NULL) {
free(hwc_list);
}
+
+ delete procs;
}
EGLNativeDisplayType
@@ -141,7 +200,6 @@
{
// We expect that we haven't created a window already, if we had, we
// would leak stuff, and we want to avoid that for obvious reasons.
- HWC_PLUGIN_EXPECT_NULL(hwc_win);
HWC_PLUGIN_EXPECT_NULL(hwc_list);
HWC_PLUGIN_EXPECT_NULL(hwc_mList);
@@ -151,8 +209,11 @@
const hwc_rect_t r = { 0, 0, width, height };
for (int i = 0; i < num_displays; i++) {
- hwc_mList[i] = hwc_list;
+ hwc_mList[i] = NULL;
}
+ // Assign buffer only to the first item, otherwise you get tearing
+ // if passed the same to multiple places
+ hwc_mList[0] = hwc_list;
hwc_layer_1_t *layer = NULL;
@@ -164,20 +225,30 @@
layer->handle = 0;
layer->transform = 0;
layer->blending = HWC_BLENDING_NONE;
- layer->sourceCrop = r;
#ifdef HWC_DEVICE_API_VERSION_1_3
layer->sourceCropf.top = 0.0f;
layer->sourceCropf.left = 0.0f;
layer->sourceCropf.bottom = (float) height;
layer->sourceCropf.right = (float) width;
+#else
+ layer->sourceCrop = r;
#endif
layer->displayFrame = r;
layer->visibleRegionScreen.numRects = 1;
layer->visibleRegionScreen.rects = &layer->displayFrame;
layer->acquireFenceFd = -1;
layer->releaseFenceFd = -1;
-#if (ANDROID_VERSION_MAJOR >= 4) && (ANDROID_VERSION_MINOR >= 3)
- layer->planeAlpha = 0xff;
+#if (ANDROID_VERSION_MAJOR >= 4) && (ANDROID_VERSION_MINOR >= 3) || (ANDROID_VERSION_MAJOR >= 5)
+ // We've observed that qualcomm chipsets enters into compositionType == 6
+ // (HWC_BLIT), an undocumented composition type which gives us rendering
+ // glitches and warnings in logcat. By setting the planarAlpha to non-
+ // opaque, we attempt to force the HWC into using HWC_FRAMEBUFFER for this
+ // layer so the HWC_FRAMEBUFFER_TARGET layer actually gets used.
+ bool tryToForceGLES = !qgetenv("QPA_HWC_FORCE_GLES").isEmpty();
+ layer->planeAlpha = tryToForceGLES ? 1 : 255;
|
[-]
[+]
|
Changed |
_service:tar_git:qt5-qpa-hwcomposer-plugin-5.6.2.1.tar.bz2/hwcomposer/hwcomposer_backend_v11.h
^
|
@@ -49,7 +49,12 @@
// libhybris access to the native hwcomposer window
#include <hwcomposer_window.h>
-class HwComposerBackend_v11 : public HwComposerBackend {
+#include <QBasicTimer>
+
+class HwcProcs_v11;
+class QWindow;
+
+class HwComposerBackend_v11 : public QObject, public HwComposerBackend {
public:
HwComposerBackend_v11(hw_module_t *hwc_module, hw_device_t *hw_device, int num_displays);
virtual ~HwComposerBackend_v11();
@@ -61,15 +66,24 @@
virtual void sleepDisplay(bool sleep);
virtual float refreshRate();
+ virtual bool requestUpdate(QEglFSWindow *window) Q_DECL_OVERRIDE;
+
+ void timerEvent(QTimerEvent *) Q_DECL_OVERRIDE;
+ void handleVSyncEvent();
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
+
private:
hwc_composer_device_1_t *hwc_device;
- HWComposerNativeWindow *hwc_win;
hwc_display_contents_1_t *hwc_list;
hwc_display_contents_1_t **hwc_mList;
- int oldretire;
- int oldrelease;
- int oldrelease2;
+ uint32_t hwc_version;
int num_displays;
+
+ bool m_displayOff;
+ QBasicTimer m_deliverUpdateTimeout;
+ QBasicTimer m_vsyncTimeout;
+ QSet<QWindow *> m_pendingUpdate;
+ HwcProcs_v11 *procs;
};
#endif /* HWC_PLUGIN_HAVE_HWCOMPOSER1_API */
|
[-]
[+]
|
Changed |
_service:tar_git:qt5-qpa-hwcomposer-plugin-5.6.2.1.tar.bz2/hwcomposer/hwcomposer_context.cpp
^
|
@@ -96,9 +96,6 @@
HwComposerContext::~HwComposerContext()
{
- // Turn display off
- sleepDisplay(true);
-
// Properly clean up hwcomposer backend
HwComposerBackend::destroy(backend);
@@ -192,4 +189,13 @@
return fps;
}
+bool HwComposerContext::requestUpdate(QEglFSWindow *window)
+{
+ if (backend)
+ return backend->requestUpdate(window);
+ return false;
+}
+
+
+
QT_END_NAMESPACE
|
[-]
[+]
|
Changed |
_service:tar_git:qt5-qpa-hwcomposer-plugin-5.6.2.1.tar.bz2/hwcomposer/hwcomposer_context.h
^
|
@@ -57,6 +57,7 @@
QT_BEGIN_NAMESPACE
class QEglFSContext;
+class QEglFSWindow;
class HwComposerScreenInfo;
class HwComposerBackend;
@@ -81,6 +82,8 @@
void sleepDisplay(bool sleep);
qreal refreshRate() const;
+ bool requestUpdate(QEglFSWindow *window);
+
private:
HwComposerScreenInfo *info;
HwComposerBackend *backend;
|
[-]
[+]
|
Changed |
_service:tar_git:qt5-qpa-hwcomposer-plugin-5.6.2.1.tar.bz2/hwcomposer/main.cpp
^
|
@@ -44,23 +44,19 @@
QT_BEGIN_NAMESPACE
-class QEglFSIntegrationPlugin : public QPlatformIntegrationPlugin
+class QEglFShwcIntegrationPlugin : public QPlatformIntegrationPlugin
{
Q_OBJECT
-#if QT_VERSION < QT_VERSION_CHECK(5, 2, 0)
- Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.1" FILE "hwcomposer.json")
-#else
- Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.2" FILE "hwcomposer.json")
-#endif
+ Q_PLUGIN_METADATA(IID QPlatformIntegrationFactoryInterface_iid FILE "hwcomposer.json")
public:
- QPlatformIntegration *create(const QString&, const QStringList&);
+ QPlatformIntegration *create(const QString&, const QStringList&) Q_DECL_OVERRIDE;
};
-QPlatformIntegration* QEglFSIntegrationPlugin::create(const QString& system, const QStringList& paramList)
+QPlatformIntegration* QEglFShwcIntegrationPlugin::create(const QString& system, const QStringList& paramList)
{
Q_UNUSED(paramList);
- if (system.toLower() == "hwcomposer")
- return new QEglFSIntegration;
+ if (!system.compare(QLatin1String("hwcomposer"), Qt::CaseInsensitive))
+ return new QEglFSIntegration();
return 0;
}
|
[-]
[+]
|
Changed |
_service:tar_git:qt5-qpa-hwcomposer-plugin-5.6.2.1.tar.bz2/hwcomposer/qeglfscontext.cpp
^
|
@@ -42,7 +42,6 @@
#include "qeglfscontext.h"
#include "qeglfswindow.h"
#include "qeglfsintegration.h"
-#include "qeglfspageflipper.h"
#include <QtPlatformSupport/private/qeglpbuffer_p.h>
#include <QtGui/QSurface>
#include <QtDebug>
@@ -51,7 +50,6 @@
QEglFSContext::QEglFSContext(
HwComposerContext *hwc
- , QEglFSPageFlipper *pageFlipper
, const QSurfaceFormat &format
, QPlatformOpenGLContext *share
, EGLDisplay display
@@ -63,12 +61,12 @@
hwc->surfaceFormatFor(format)
, share
, display
- , QEglFSIntegration::chooseConfig(display, hwc->surfaceFormatFor(format))
+ , &(m_config = QEglFSIntegration::chooseConfig(display, hwc->surfaceFormatFor(format)))
#if QT_VERSION < QT_VERSION_CHECK(5, 3, 0)
, eglApi
#endif
),
- m_hwc(hwc), m_pageFlipper(pageFlipper), m_swapIntervalConfigured(false)
+ m_hwc(hwc), m_swapIntervalConfigured(false)
{
}
|
[-]
[+]
|
Changed |
_service:tar_git:qt5-qpa-hwcomposer-plugin-5.6.2.1.tar.bz2/hwcomposer/qeglfscontext.h
^
|
@@ -44,7 +44,6 @@
#include <QtPlatformSupport/private/qeglconvenience_p.h>
#include <QtPlatformSupport/private/qeglplatformcontext_p.h>
-#include "qeglfspageflipper.h"
#include "hwcomposer_context.h"
@@ -53,7 +52,7 @@
class QEglFSContext : public QEGLPlatformContext
{
public:
- QEglFSContext(HwComposerContext *hwc, QEglFSPageFlipper *pageFlipper,
+ QEglFSContext(HwComposerContext *hwc,
const QSurfaceFormat &format, QPlatformOpenGLContext *share, EGLDisplay display
#if QT_VERSION < QT_VERSION_CHECK(5, 3, 0)
, EGLenum eglApi = EGL_OPENGL_ES_API);
@@ -65,7 +64,7 @@
void swapBuffers(QPlatformSurface *surface);
private:
HwComposerContext *m_hwc;
- QEglFSPageFlipper *m_pageFlipper;
+ EGLConfig m_config;
bool m_swapIntervalConfigured;
};
|
[-]
[+]
|
Changed |
_service:tar_git:qt5-qpa-hwcomposer-plugin-5.6.2.1.tar.bz2/hwcomposer/qeglfsintegration.cpp
^
|
@@ -63,7 +63,6 @@
#include <qpa/qplatforminputcontextfactory_p.h>
#include "qeglfscontext.h"
-#include "qeglfspageflipper.h"
#include <EGL/egl.h>
@@ -115,7 +114,11 @@
QEglFSIntegration::~QEglFSIntegration()
{
+#if QT_VERSION >= 0x050500
+ destroyScreen(mScreen);
+#else
delete mScreen;
+#endif
eglTerminate(mDisplay);
delete mHwc;
@@ -150,7 +153,7 @@
QPlatformOpenGLContext *QEglFSIntegration::createPlatformOpenGLContext(QOpenGLContext *context) const
{
- return new QEglFSContext(mHwc, static_cast<QEglFSPageFlipper *>(mScreen->pageFlipper()), mHwc->surfaceFormatFor(context->format()), context->shareHandle(), mDisplay);
+ return new QEglFSContext(mHwc, mHwc->surfaceFormatFor(context->format()), context->shareHandle(), mDisplay);
}
QPlatformOffscreenSurface *QEglFSIntegration::createPlatformOffscreenSurface(QOffscreenSurface *surface) const
@@ -197,8 +200,8 @@
mHwc->sleepDisplay(true);
} else if (lowerCaseResource == "displayon") {
// Called from lipstick to turn on the display (src/homeapplication.cpp)
- mHwc->sleepDisplay(false);
- }
+ mHwc->sleepDisplay(false);
+ }
return NULL;
}
@@ -246,7 +249,7 @@
QPlatformTheme *QEglFSIntegration::createPlatformTheme(const QString &name) const
{
- if (name == QLatin1String("generic_qeglfs"))
+ if (name == QLatin1String("generic_eglfs"))
return new GenericEglFSTheme;
return GenericEglFSTheme::createUnixTheme(name);
|
[-]
[+]
|
Changed |
_service:tar_git:qt5-qpa-hwcomposer-plugin-5.6.2.1.tar.bz2/hwcomposer/qeglfsscreen.cpp
^
|
@@ -41,7 +41,6 @@
#include "qeglfsscreen.h"
#include "qeglfswindow.h"
-#include "qeglfspageflipper.h"
#include <private/qmath_p.h>
@@ -49,7 +48,6 @@
QEglFSScreen::QEglFSScreen(HwComposerContext *hwc, EGLDisplay dpy)
: m_hwc(hwc)
- , m_pageFlipper(new QEglFSPageFlipper(this))
, m_dpy(dpy)
{
#ifdef QEGL_EXTRA_DEBUG
@@ -59,17 +57,8 @@
QEglFSScreen::~QEglFSScreen()
{
- delete m_pageFlipper;
}
-#if 0
-QPlatformScreenPageFlipper *QEglFSScreen::pageFlipper() const
-{
- return m_pageFlipper;
-}
-#endif
-
-
QRect QEglFSScreen::geometry() const
{
return QRect(QPoint(0, 0), m_hwc->screenSize());
|
[-]
[+]
|
Changed |
_service:tar_git:qt5-qpa-hwcomposer-plugin-5.6.2.1.tar.bz2/hwcomposer/qeglfswindow.cpp
^
|
@@ -147,4 +147,10 @@
return m_format;
}
+void QEglFSWindow::requestUpdate()
+{
+ if (!m_hwc->requestUpdate(this))
+ QPlatformWindow::requestUpdate();
+}
+
QT_END_NAMESPACE
|
[-]
[+]
|
Changed |
_service:tar_git:qt5-qpa-hwcomposer-plugin-5.6.2.1.tar.bz2/hwcomposer/qeglfswindow.h
^
|
@@ -70,6 +70,8 @@
virtual void invalidateSurface();
virtual void resetSurface();
+ void requestUpdate();
+
protected:
EGLSurface m_surface;
EGLNativeWindowType m_window;
|