我们今天来看 Engine/Source/Runtime/SlateCore/Public/Widgets/SWidget.h 文件,这个类,是UMG的核心类,
里面有一些要用到的class,我们先罗列一下,有一些class可能要细分的看一看:
1,class FActiveTimerHandle;活跃定时器说明
FActiveTimerHandle源码
可以看出,这些还是挺简单的,主要的实现在
ExecuteIfPending方法源码
这里有两个东西要注意。1,退出机制:运行Delegate时会首先检查它的user object 是否还存在,如果存在,会退出。2,它不保证严格意义的 executionPeriod执行间隔,如果在slow frames时,会跳过,直接执行>= CurrentTime的那一次。不过可以从NextExecutiongTime可以推算出延时了多少的时间间隔。
class FArrangedChildren;(Construct a new container for arranged children that only accepts children that match the VisibilityFilter.)
这是个等待渲染的 Widget的容器,里面按照VisibilityFilter的方式来分类
Visibility.h部分源码
class FChildren;这是一个容器类,后面分单章来说。
class FPaintArgs;
class FSlateWindowElementList;
class FSlotBase;
class FWeakWidgetPath;
class FWidgetPath;
class IToolTip;
class SWidget;
struct FSlateBrush;