diff options
Diffstat (limited to 'chromium/third_party/WebKit/Source/modules/gamepad/Gamepad.cpp')
-rw-r--r-- | chromium/third_party/WebKit/Source/modules/gamepad/Gamepad.cpp | 24 |
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 |