MCPcopy Create free account
hub / github.com/defold/defold / EngineUpdate

Function EngineUpdate

engine/hid/src/test/test_app_hid.cpp:564–732  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

562}
563
564static UpdateResult EngineUpdate(void* _engine)
565{
566 EngineCtx* engine = (EngineCtx*)_engine;
567 const uint32_t status_buffer_size = 16 * 1024;
568 char status_buffer[16 * 1024];
569 uint32_t status_offset = 0;
570 uint32_t connected_keyboard_count = 0;
571 uint32_t connected_gamepad_count = 0;
572
573 dmHID::Update(engine->m_HidContext);
574
575 dmPlatform::PollEvents(engine->m_Window);
576
577 if (engine->m_InteractiveOutput)
578 {
579 AppendStatusLine(status_buffer, status_buffer_size, &status_offset, "HID input status\n");
580 AppendStatusLine(status_buffer, status_buffer_size, &status_offset, "Last event: %s\n", engine->m_LastEvent);
581 AppendStatusLine(status_buffer, status_buffer_size, &status_offset, "\nKeyboards\n");
582 }
583
584 for (int i = 0; i < dmHID::MAX_KEYBOARD_COUNT; ++i)
585 {
586 dmHID::HKeyboard keyboard = dmHID::GetKeyboard(engine->m_HidContext, i);
587 if (!keyboard)
588 continue;
589 if (!dmHID::IsKeyboardConnected(keyboard))
590 continue;
591
592 dmHID::KeyboardPacket packet;
593 if (!GetKeyboardPacket(keyboard, &packet))
594 {
595 printf("failed to get keyboard packet\n");
596 continue;
597 }
598
599 int packet_changed = memcmp(&packet, &engine->m_OldKeyboardPackets[i], sizeof(dmHID::KeyboardPacket)) != 0;
600 memcpy(&engine->m_OldKeyboardPackets[i], &packet, sizeof(dmHID::KeyboardPacket));
601
602 if (engine->m_InteractiveOutput)
603 {
604 ++connected_keyboard_count;
605 AppendKeyboardStatus(status_buffer, status_buffer_size, &status_offset, i, &packet);
606 }
607 else if (packet_changed)
608 {
609 printf("KEYBOARD %d:", i);
610
611 bool has_pressed_keys = false;
612 for (int j = dmHID::KEY_SPACE; j < dmHID::MAX_KEY_COUNT; ++j)
613 {
614 if (GetKey(&packet, (dmHID::Key)j))
615 {
616 printf(" KEY %s (%d)", KeyToStr((dmHID::Key)j), j);
617 has_pressed_keys = true;
618 }
619 }
620
621 if (!has_pressed_keys)

Callers

nothing calls this directly

Calls 15

AppendStatusLineFunction · 0.85
GetKeyboardFunction · 0.85
IsKeyboardConnectedFunction · 0.85
GetKeyboardPacketFunction · 0.85
AppendKeyboardStatusFunction · 0.85
KeyToStrFunction · 0.85
GetGamepadFunction · 0.85
IsGamepadConnectedFunction · 0.85
GetGamepadPacketFunction · 0.85
AppendGamepadStatusFunction · 0.85
GetGamepadButtonCountFunction · 0.85
GetGamepadButtonFunction · 0.85

Tested by

no test coverage detected