[英]Detecting window events in the SDL2 C# wrapper
我正在通过FNA使用SDL2 C#包装器 ,我需要能够检测窗口何时调整大小,最小化/最大化等等。从我发现的内容看来,我应该使用SDL_EventFilter
委托和SDL_WindowEventID
枚举。 我尝试使用SDL_AddEventWatch
和SDL_SetEventFilter
方法附加这样的事件,但我没有得到任何与窗口管理相关的事件。
如何正确使用C#包装器中的SDL窗口事件?
在事件轮询循环中为SDL_WINDOWEVENT
添加一个案例:
SDL_Event event;
while (SDL_PollEvent(out sdlEvent) == 1) {
switch(sdlEvent.type) {
case SDL_EventType.SDL_WINDOWEVENT:
HandleWindowEvent(sdlEvent.window);
break;
// other events here ...
}
Thread.Sleep(1);
}
然后你可以有一个处理这些事件的方法:
HandleWindowEvents(SDL_WindowEvent wEvent) {
switch(wEvent.windowEvent) {
case SDL_WindowEventID.SDL_WINDOWEVENT_RESIZED:
Console.WriteLine($"Window resized: {wEvent.data1}x{wEvent.data2}");
break;
// more window events here ...
}
}
所有窗口事件都在Wiki中列出。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.