Index: Source/modules/gamepad/Gamepad.cpp |
diff --git a/Source/modules/gamepad/Gamepad.cpp b/Source/modules/gamepad/Gamepad.cpp |
index 8fbe47c17946f3d38b21769ef387a9da8b966497..1db85bf34fd66ed4e0d54c2e779f8600b270b22e 100644 |
--- a/Source/modules/gamepad/Gamepad.cpp |
+++ b/Source/modules/gamepad/Gamepad.cpp |
@@ -35,34 +35,31 @@ 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) |
{ |
} |
-void Gamepad::trace(Visitor* visitor) |
+Gamepad::~Gamepad() |
{ |
} |