SDL_GetKeyState не обнаруживает нажатия клавиш на японском языке - PullRequest
0 голосов
/ 05 декабря 2018

SDL_GetKeyState не определяет состояние нажатия клавиш на нескольких японских клавиатурах, которые я тестировал.В частности, Y |(рядом с клавишей Backspace) и \ _ (рядом со смещением вправо) и клавишами композиции Kana на каждой стороне панели ПРОБЕЛ.Y |и \ _ генерировать и возвращать символы, но их состояние нажатия клавиши не замечено.

Урезанный код.Нажатие клавиш возвращает символы:

if (SDL_PollEvent(&ev))
  switch(ev.type) {
    case SDL_KEYDOWN:
      ch = ev.key.keysym.unicode;
      // Y| and \_ return characters

Но определение их состояния не работает.Использование кода, подобного этому, показывает отсутствие реакции на нажатие клавиш:

SDL_PumpEvents();
keystate = SDL_GetKeyState(NULL);
while(SDL_PollEvent(&ev))
  { if (ev.type == SDL_QUIT) exit(0); }
for (arg=0; arg<512; arg++)
  { printf("%2x ",keystate[arg]); }

Есть ли более глубокий уровень, который я могу вызвать для обнаружения состояний нажатия клавиш?Или SDL неподвижно привязан только к тем клавиатурам, с которыми когда-либо сталкивались авторы?

...