summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/WebKit/Source/modules/gamepad/Gamepad.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/WebKit/Source/modules/gamepad/Gamepad.cpp')
-rw-r--r--chromium/third_party/WebKit/Source/modules/gamepad/Gamepad.cpp24
1 files changed, 13 insertions, 11 deletions
diff --git a/chromium/third_party/WebKit/Source/modules/gamepad/Gamepad.cpp b/chromium/third_party/WebKit/Source/modules/gamepad/Gamepad.cpp
index a83ec8a59cc..f2950ec5566 100644
--- a/chromium/third_party/WebKit/Source/modules/gamepad/Gamepad.cpp
+++ b/chromium/third_party/WebKit/Source/modules/gamepad/Gamepad.cpp
@@ -29,28 +29,30 @@
namespace WebCore {
Gamepad::Gamepad()
- : m_index(0)
- , m_timestamp(0)
{
ScriptWrappable::init(this);
}
-void Gamepad::axes(unsigned count, float* data)
+Gamepad::~Gamepad()
{
- m_axes.resize(count);
- if (count)
- std::copy(data, data + count, m_axes.begin());
}
-void Gamepad::buttons(unsigned count, float* data)
+void Gamepad::setButtons(unsigned count, const blink::WebGamepadButton* data)
{
- m_buttons.resize(count);
- if (count)
- std::copy(data, data + count, m_buttons.begin());
+ if (m_buttons.size() != count) {
+ m_buttons.resize(count);
+ for (unsigned i = 0; i < count; ++i)
+ m_buttons[i] = GamepadButton::create();
+ }
+ for (unsigned i = 0; i < count; ++i) {
+ m_buttons[i]->setValue(data[i].value);
+ m_buttons[i]->setPressed(data[i].pressed);
+ }
}
-Gamepad::~Gamepad()
+void Gamepad::trace(Visitor* visitor)
{
+ visitor->trace(m_buttons);
}
} // namespace WebCore