使SDL调用纯虚拟成员函数作为事件回调?
我目前正在开发一个小应用程序类。它应该在使用SDL2时减少一些痛苦。对于我想要一个名为handleEvent的函数在实现派生类(应用程序类是一个基本接口)时被重载,以便自动传递当前的SDL_Event,以便用户可以对其进行操作。使SDL调用纯虚拟成员函数" title="成员函数">成员函数作为事件回调?
我认为使用内置的SDL函数SDL_AddEventWatch创建回调会比启动线程更好,让它手动检查新事件并调用成员函数。
但是,SDL Documentation for the function没有指定使用成员函数作为“过滤器”。而且我甚至使用纯虚拟成员函数!
请注意,该函数需要的唯一参数(从我的角度来看)是指向要处理的偶数的指针。然而,这个指针仍然需要被访问,以便用户可以直接更改类中的东西。
实现这个的正确方法是什么?
回答:
我将使用libffi的闭包来创建与预期签名相匹配的实例的包装。用于初始化闭包的函数将取出保存的实例参数以及SDL传递的任何参数,并将它们转发到虚函数中。
以上是 使SDL调用纯虚拟成员函数作为事件回调? 的全部内容, 来源链接: utcz.com/qa/258362.html