SDL을 사용하는 작은 프로젝트가 있는데 다른 드라이버를 가지고 놀고있었습니다. 나는 aalib 드라이버를 발견했으며, SDL_KEYUP 이벤트가 호출되지 않는다는 것을 깨달았습니다.SDL 및 aalib : SDL_KEYUP 이벤트가 없습니까?
그러나 이것은 특정 조건에서만 발생합니다. 이 이벤트는 X 드라이버를 사용할 때 보내지 만, 콘솔 모드 (Ctrl + Alt + F1 사용)에서는 사용하지 않습니다.
#include <SDL/SDL.h>
#include <stdio.h>
int main()
{
SDL_Init(0);
SDL_SetVideoMode(64, 64, 32, SDL_SWSURFACE);
while(1)
{
SDL_Event event;
while(SDL_PollEvent(&event))
{
if(event.type == SDL_KEYDOWN)
printf("Key down: %d\n", event.key.keysym.sym);
else if(event.type == SDL_KEYUP)
printf("Key up: %d\n", event.key.keysym.sym);
else if(event.type == SDL_QUIT)
SDL_Quit();
}
}
}
aalib와 함께 실행하려면 다음 :
env SDL_VIDEODRIVER=aalib ./a.out
내 질문이있다 :이이 버그로 간주 될 수 있나요
다음은이를 테스트 할 수있는 최소한의 코드는? 또는 콘솔이이 정보를 제공하지 않기 때문에 aalib이 알 수없는 것입니까?
aalib가이 정보를 가질 수 없다면 나는 SDL이 모든 드라이버에 대해 동일한 기능을 제공 할 수 없다는 사실을 알고 있습니다.
OS : FreeBSD의 8.2
SDL 버전 : 1.2.14
SDL은 각 캐릭터를 다운/업 사이클로 처리하거나, 가장 느린 합리적인 반복 속도 간격보다 큰 간격이 다시 해당 캐릭터를 수신하지 않고 지나면 간단히 업 이벤트를 생성 할 수 있습니다. 쓸 수 있는. –
그럴 수도 있습니다. 그러나 나는 어쨌든 aalib 운전자가 주로 장난감으로서의 의미가 있다고 의심한다. – duskwuff