Я написал несколько базовых приложений OpenGL с XCB в качестве бэкэнд (xlib для GLX, конечно), и в каждом тесте, который я написал, когда я двигаю мышью над окном, он вызывает все входные данные своего рода «буферизованный» и реагирует только на события через определенный промежуток времени (варьируется в зависимости от количества входов).xcb mouse motion вызывает входную задержку
Я вызываю xcb_poll_events и получаю информацию о событиях таким образом, а затем загружаю его в пользовательский класс событий, но это не было медленным в моей старой реализации xlib.
Что может быть причиной этого запаздывания?
Опрос событие:
Event_c system_class::poll_for_event(){
Event_c temp;
xcb_generic_event_t *event;
event = xcb_poll_for_event(this->connection_xcb);
if(!event)
return temp;
switch(event->response_type){
handle events...
}
free(event);
return temp;
}
и цикл обработки событий в тестовом приложении:
int main(int argc, char *argv[]){
init stuff...
system_class app;
window_class window;
Event_c event;
while(running){
event = app.poll_for_event();
if(event.detail){
handle user input...
}
window.swap_buffers(); // just calls glXSwapBuffers
}
return 0;
}
Спасибо, да, я понимаю это сейчас, но этот вопрос казался архаичным, и я не знал, обновлять его: L – CoffeeandCode