不带轮询的 SDL2 事件回调
SDL2 event callback without polling
是否可以在不轮询新事件的情况下使用 SDL_EventWatch/过滤器?
#include <SDL2/SDL.h>
#include <iostream>
int SDLCALL watch(void *userdata, SDL_Event* event) {
std::cout << event->type << "n";
return 1; // or 0
}
int main( ){
SDL_Window *window {SDL_CreateWindow("Window", 100, 100, 400, 400, 0)};
SDL_Renderer* renderer {SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED)};
SDL_SetEventFilter(watch, NULL);
function.Call("main"); // non-C++ function with endless loop
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
"main"
中已经有一个无限循环,它控制着大部分应用程序。然后,我会根据赋予watch(..)
SDL_Event调用适当的 Lua 函数。
此代码不对任何事件做出反应。
正如Gerhard Stein博士在评论中所说:
如果您正在运行循环,则必须以某种方式让 SDL 有机会处理事件。
所以答案是否定的。
相关文章:
- Android NDK传感器向事件队列报告奇怪的间隔
- 从文本文件中读取时钟时间和事件时间并进行处理
- WMI检测进程创建事件-c++
- EvtExportLogneneneba API正在将远程计算机的事件日志保存到远程PC本身.如何将其保存到主机
- 处理闪烁窗口事件
- C++Builder中的OnClick事件签名存在问题
- 跟踪滚动条上的鼠标事件
- 什么是事件表 (wxWidgets)?
- 如何在 MFCaptureEngine 中获取"Camera removed"事件
- 给定顺序中的事件处理
- 如何创建事件驱动的 SDL2 应用程序
- 不带轮询的 SDL2 事件回调
- SDL2 无法捕获控制台键盘事件?
- SDL2 + Win32 API 菜单栏单击事件不起作用
- 在 Android 上触摸事件 SDL2
- 为什么 SDL2 提供的事件值不正确
- 无法从窗口获取 SDL2 事件
- SDL2未接收到窗口事件
- SDL2程序使用事件崩溃
- SDL2操纵杆事件未触发