渲染任务是如何产生并压入到渲染队列的呢
还记得ENQUEUE_UNIQUE_RENDER_COMMAND_ONEPARAMETER宏吗,该宏的作用就是生成渲染任务并压入渲染队列。
这是笔者知道的一种方式,应该还有其他方式。
ENQUEUE_UNIQUE_RENDER_COMMAND_ONEPARAMETER宏展开后会得到下面的核心代码,
它的作用是把创建任务并压入渲染队列:
TGraphTask<EURCMacroBeginDrawingCommand>::CreateTask().ConstructAndDispatchWhenReady(this);
先介绍TGraphTask:它是一个模板类,继承自FBaseGraphTask,里面维护了具体的任务,作用相当于具体任务的托管.
CreateTask() 创建了TGraphTask对象,同时也创建了具体的任务(EURCMacroBeginDrawingCommand).