| Index: Source/modules/gamepad/Gamepad.cpp
|
| diff --git a/Source/modules/gamepad/Gamepad.cpp b/Source/modules/gamepad/Gamepad.cpp
|
| index 8fbe47c17946f3d38b21769ef387a9da8b966497..499e97bf49bc618b51fdb1a908a2d8f4385be5f9 100644
|
| --- a/Source/modules/gamepad/Gamepad.cpp
|
| +++ b/Source/modules/gamepad/Gamepad.cpp
|
| @@ -35,34 +35,32 @@ Gamepad::Gamepad()
|
| ScriptWrappable::init(this);
|
| }
|
|
|
| -void Gamepad::axes(unsigned count, float* data)
|
| +void Gamepad::setAxes(unsigned count, const float* data)
|
| {
|
| m_axes.resize(count);
|
| if (count)
|
| std::copy(data, data + count, m_axes.begin());
|
| }
|
|
|
| -#if defined(ENABLE_NEW_GAMEPAD_API)
|
| -void Gamepad::buttons(unsigned count, blink::WebGamepadButton* data)
|
| +void Gamepad::setButtons(unsigned count, const blink::WebGamepadButton* data)
|
| {
|
| - m_buttons.resize(count);
|
| - for (unsigned i = 0; i < count; ++i)
|
| - m_buttons[i] = data[i].value;
|
| + 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);
|
| + }
|
| }
|
| -#else
|
| -void Gamepad::buttons(unsigned count, float* data)
|
| -{
|
| - m_buttons.resize(count);
|
| - if (count)
|
| - std::copy(data, data + count, m_buttons.begin());
|
| -}
|
| -#endif
|
|
|
| -Gamepad::~Gamepad()
|
| +void Gamepad::trace(Visitor* visitor)
|
| {
|
| + visitor->trace(m_buttons);
|
| }
|
|
|
| -void Gamepad::trace(Visitor* visitor)
|
| +Gamepad::~Gamepad()
|
| {
|
| }
|
|
|
|
|