SlateApplication中的事件处理一

1 FSlateApplication是继承自FGenericApplicationMessageHandler接口,添加事件处理的能的

今天第一节就写一下他是自己注入到系统里的.以android为例
输入的核心是在AndroidInputInterface文件 里

for(int i = 0; i < FAndroidInputInterface::TouchInputStack.Num(); ++i)
    {
        TouchInput Touch = FAndroidInputInterface::TouchInputStack[i];
        int32 ControllerId = FindExistingDevice(Touch.DeviceId);
        ControllerId = (ControllerId == -1) ? 0 : ControllerId;

        // send input to handler
        switch ( Touch.Type )
        {
        case TouchBegan:
            MessageHandler->OnTouchStarted(nullptr, Touch.Position, Touch.Handle, ControllerId);
            break;
        case TouchEnded:
            MessageHandler->OnTouchEnded(Touch.Position, Touch.Handle, ControllerId);
            break;
        case TouchMoved:
            MessageHandler->OnTouchMoved(Touch.Position, Touch.Handle, ControllerId);
            break;
        }
    }

当Android收到touch事件后,通过一系列操作,会转到到这处来执行.这个时候 ,MessageHandler已经实例化成FSlateApplication了

代码里MessageHandler的类型就是FGenericApplicationMessageHandler类型
而messageHandler是在下面的函数里
FAndroidInputInterface::SetMessageHandler
传入的.调用这个函数的时机又是在引擎初始化的时候

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,897评论 25 709
  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,652评论 1 11
  • 太长了,还是转载吧...今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源...
    庞哈哈哈12138阅读 20,375评论 3 283
  • 宫崎骏的电影,清新得让人不禁嘴角上扬。 繁忙的小镇,阡陌交错的街道,身着连衣裙的姑娘,阵阵的微风。乡村的气息扑面而...
    者尔渡阅读 326评论 0 1
  • 我们前一天上午离开环球恐龙城,乘大巴车直奔溧阳,走过大石山、美岕山等农庄。在这常州地界,沿途经过的乡野,多是一派浓...
    萧烟阅读 1,222评论 0 6

友情链接更多精彩内容