欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

ENQUEUE_UNIQUE_RENDER_COMMAND_ONEPARAMETER

发布时间:2023/12/10 编程问答 38 豆豆
生活随笔 收集整理的这篇文章主要介绍了 ENQUEUE_UNIQUE_RENDER_COMMAND_ONEPARAMETER 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

该宏非常重要, 其作用是: 创建一个渲染命令任务,并将该任务压入渲染队列,待渲染线程执行. 主要用于多线程渲染!

    #define ENQUEUE_UNIQUE_RENDER_COMMAND_ONEPARAMETER(TypeName,ParamType1,ParamName1,ParamValue1,Code)class EURCMacro_TypeName : public FRenderCommand{public:EURCMacro_TypeName(TCallTraits<ParamType1>::ParamType InParamName1):ParamName1(InParamName1){}void DoTask(ENamedThreads::Type CurrentThread, const FGraphEventRef& MyCompletionGraphEvent){FRHICommandListImmediate& RHICmdList = GetImmediateCommandList_ForRenderCommand();Code;}FORCEINLINE TStatId GetStatId() const{RETURN_QUICK_DECLARE_CYCLE_STAT(TypeName, STATGROUP_RenderThreadCommands);}private:ParamType1 ParamName1;};{LogRenderCommand(TypeName);if(ShouldExecuteOnRenderThread()){CheckNotBlockedOnRenderThread();TGraphTask<EURCMacro_TypeName>::CreateTask().ConstructAndDispatchWhenReady(ParamValue1);}else{EURCMacro_TypeName TempCommand(ParamValue1);FScopeCycleCounter EURCMacro_Scope(TempCommand.GetStatId());TempCommand.DoTask(ENamedThreads::GameThread, FGraphEventRef() );}}

总结

以上是生活随笔为你收集整理的ENQUEUE_UNIQUE_RENDER_COMMAND_ONEPARAMETER的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。