summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndreas Pokorny <andreas.pokorny@canonical.com>2015-06-25 01:08:44 +0200
committerAndreas Pokorny <andreas.pokorny@canonical.com>2015-06-25 01:08:44 +0200
commite8687c2cd0640ab635ed53a7b951baa9615a2932 (patch)
treefc0a47d9fdc25eefb46fab432892bdcc8ed85e47 /src
parentaee914d643adf4994c655cce06998d1dd06d98d6 (diff)
changes needed for 0.14.0 release
Diffstat (limited to 'src')
-rw-r--r--src/common/debughelpers.h2
-rw-r--r--src/modules/Unity/Application/mirsurfaceitem.cpp31
-rw-r--r--src/platforms/mirserver/qteventfeeder.cpp17
-rw-r--r--src/platforms/mirserver/qteventfeeder.h4
4 files changed, 22 insertions, 32 deletions
diff --git a/src/common/debughelpers.h b/src/common/debughelpers.h
index 7990598..d4e5253 100644
--- a/src/common/debughelpers.h
+++ b/src/common/debughelpers.h
@@ -20,7 +20,7 @@
#include <QString>
#include <mir_toolkit/common.h>
-#include <mir_toolkit/events/input/input_event.h>
+#include <mir_toolkit/event.h>
class QTouchEvent;
diff --git a/src/modules/Unity/Application/mirsurfaceitem.cpp b/src/modules/Unity/Application/mirsurfaceitem.cpp
index c8d895a..2739e4c 100644
--- a/src/modules/Unity/Application/mirsurfaceitem.cpp
+++ b/src/modules/Unity/Application/mirsurfaceitem.cpp
@@ -73,16 +73,16 @@ getMirModifiersFromQt(Qt::KeyboardModifiers mods)
mir::EventUPtr makeMirEvent(QMouseEvent *qtEvent, MirPointerAction action)
{
- auto timestamp = qtEvent->timestamp() * 1000000;
+ auto timestamp = std::chrono::milliseconds(qtEvent->timestamp());
auto modifiers = getMirModifiersFromQt(qtEvent->modifiers());
- std::vector<MirPointerButton> buttons;
+ MirPointerButtons buttons = 0;
if (qtEvent->buttons() & Qt::LeftButton)
- buttons.push_back(mir_pointer_button_primary);
+ buttons |= mir_pointer_button_primary;
if (qtEvent->buttons() & Qt::RightButton)
- buttons.push_back(mir_pointer_button_secondary);
+ buttons |= mir_pointer_button_secondary;
if (qtEvent->buttons() & Qt::MidButton)
- buttons.push_back(mir_pointer_button_tertiary);
+ buttons |= mir_pointer_button_tertiary;
return mir::events::make_event(0 /*DeviceID */, timestamp, modifiers, action,
buttons, qtEvent->x(), qtEvent->y(), 0, 0);
@@ -90,9 +90,9 @@ mir::EventUPtr makeMirEvent(QMouseEvent *qtEvent, MirPointerAction action)
mir::EventUPtr makeMirEvent(QHoverEvent *qtEvent, MirPointerAction action)
{
- auto timestamp = qtEvent->timestamp() * 1000000;
+ auto timestamp = std::chrono::milliseconds(qtEvent->timestamp());
- std::vector<MirPointerButton> buttons;
+ MirPointerButtons buttons = 0;
return mir::events::make_event(0 /*DeviceID */, timestamp, mir_input_event_modifier_none, action,
buttons, qtEvent->posF().x(), qtEvent->posF().y(), 0, 0);
@@ -115,7 +115,7 @@ mir::EventUPtr makeMirEvent(QKeyEvent *qtEvent)
if (qtEvent->isAutoRepeat())
action = mir_keyboard_action_repeat;
- return mir::events::make_event(0 /* DeviceID */, qtEvent->timestamp() * 1000000,
+ return mir::events::make_event(0 /* DeviceID */, std::chrono::milliseconds(qtEvent->timestamp()),
action, qtEvent->nativeVirtualKey(),
qtEvent->nativeScanCode(),
qtEvent->nativeModifiers());
@@ -127,7 +127,7 @@ mir::EventUPtr makeMirEvent(Qt::KeyboardModifiers qmods,
ulong qtTimestamp)
{
auto modifiers = getMirModifiersFromQt(qmods);
- auto ev = mir::events::make_event(0, static_cast<int64_t>(qtTimestamp) * 1000000,
+ auto ev = mir::events::make_event(0, std::chrono::milliseconds(qtTimestamp),
modifiers);
for (int i = 0; i < qtTouchPoints.count(); ++i) {
@@ -388,17 +388,16 @@ bool MirSurfaceItem::updateTexture() // called by rendering thread (scene gra
bool textureUpdated = false;
const void* const userId = (void*)123;
- std::unique_ptr<mg::Renderable> renderable =
- m_surface->compositor_snapshot(userId);
+ auto renderables = m_surface->generate_renderables(userId);
- if (m_surface->buffers_ready_for_compositor(userId) > 0) {
+ if (m_surface->buffers_ready_for_compositor(userId) > 0 && renderables.size() > 0) {
if (!m_textureProvider->t) {
- m_textureProvider->t = new MirBufferSGTexture(renderable->buffer());
+ m_textureProvider->t = new MirBufferSGTexture(renderables[0]->buffer());
} else {
// Avoid holding two buffers for the compositor at the same time. Thus free the current
// before acquiring the next
m_textureProvider->t->freeBuffer();
- m_textureProvider->t->setBuffer(renderable->buffer());
+ m_textureProvider->t->setBuffer(renderables[0]->buffer());
}
textureUpdated = true;
}
@@ -746,7 +745,9 @@ void MirSurfaceItem::dropPendingBuffers()
// The line below looks like an innocent, effect-less, getter. But as this
// method returns a unique_pointer, not holding its reference causes the
// buffer to be destroyed/released straight away.
- m_surface->compositor_snapshot(userId)->buffer();
+ //m_surface->compositor_snapshot(userId)->buffer();
+ for (auto const & item : m_surface->generate_renderables(userId))
+ item->buffer();
qCDebug(QTMIR_SURFACES) << "MirSurfaceItem::dropPendingBuffers()"
<< "surface =" << this
<< "buffer dropped."
diff --git a/src/platforms/mirserver/qteventfeeder.cpp b/src/platforms/mirserver/qteventfeeder.cpp
index 6c6dfa6..5490096 100644
--- a/src/platforms/mirserver/qteventfeeder.cpp
+++ b/src/platforms/mirserver/qteventfeeder.cpp
@@ -219,11 +219,11 @@ QtEventFeeder::~QtEventFeeder()
delete mQtWindowSystem;
}
-void QtEventFeeder::dispatch(MirEvent const& event)
+bool QtEventFeeder::dispatch(MirEvent const& event)
{
auto type = mir_event_get_type(&event);
if (type != mir_event_type_input)
- return;
+ return false;
auto iev = mir_event_get_input_event(&event);
switch (mir_input_event_get_type(iev)) {
@@ -238,6 +238,8 @@ void QtEventFeeder::dispatch(MirEvent const& event)
default:
break;
}
+
+ return true;
}
namespace
@@ -423,17 +425,6 @@ void QtEventFeeder::stop()
// not used
}
-void QtEventFeeder::configuration_changed(std::chrono::nanoseconds when)
-{
- Q_UNUSED(when);
-}
-
-void QtEventFeeder::device_reset(int32_t device_id, std::chrono::nanoseconds when)
-{
- Q_UNUSED(device_id);
- Q_UNUSED(when);
-}
-
void QtEventFeeder::validateTouches(ulong timestamp,
QList<QWindowSystemInterface::TouchPoint> &touchPoints)
{
diff --git a/src/platforms/mirserver/qteventfeeder.h b/src/platforms/mirserver/qteventfeeder.h
index 48113bf..d786715 100644
--- a/src/platforms/mirserver/qteventfeeder.h
+++ b/src/platforms/mirserver/qteventfeeder.h
@@ -61,9 +61,7 @@ public:
static const int MirEventActionPointerIndexMask;
static const int MirEventActionPointerIndexShift;
- void configuration_changed(std::chrono::nanoseconds when) override;
- void device_reset(int32_t device_id, std::chrono::nanoseconds when) override;
- void dispatch(MirEvent const& event) override;
+ bool dispatch(MirEvent const& event) override;
void start() override;
void stop() override;