MCPcopy Create free account
hub / github.com/SFML/SFML / ensureMappings

Function ensureMappings

src/SFML/Window/Win32/InputImpl.cpp:551–574  ·  view source on GitHub ↗

Ensure the mappings are generated from/to Key and Scancode.

Source from the content-addressed store, hash-verified

549
550/// Ensure the mappings are generated from/to Key and Scancode.
551void ensureMappings()
552{
553 static bool isMappingInitialized = false;
554
555 if (isMappingInitialized)
556 return;
557
558 // Phase 1: Initialize mappings with default values
559 keyToScancodeMapping.fill(sf::Keyboard::Scan::Unknown);
560 scancodeToKeyMapping.fill(sf::Keyboard::Key::Unknown);
561
562 // Phase 2: Translate scancode to virtual code to key names
563 for (unsigned int i = 0; i < sf::Keyboard::ScancodeCount; ++i)
564 {
565 const auto scan = static_cast<sf::Keyboard::Scancode>(i);
566 const UINT virtualKey = sfScanToVirtualKey(scan);
567 const sf::Keyboard::Key key = virtualKeyToSfKey(virtualKey);
568 if (key != sf::Keyboard::Key::Unknown && keyToScancodeMapping[key] == sf::Keyboard::Scan::Unknown)
569 keyToScancodeMapping[key] = scan;
570 scancodeToKeyMapping[scan] = key;
571 }
572
573 isMappingInitialized = true;
574}
575
576bool isValidScancode(sf::Keyboard::Scancode code)
577{

Callers 2

localizeFunction · 0.85
delocalizeFunction · 0.85

Calls 2

sfScanToVirtualKeyFunction · 0.85
virtualKeyToSfKeyFunction · 0.85

Tested by

no test coverage detected