NiRenderFrame
: public NiRefObject
<NiRenderFrame.h>
一渲染帧,包括一个RenderStep对象列表,在Draw函数中遍历这个列表来执行每一个RenderStep对象的Render()函数,
调用Display函数执行RenderFrame的渲染工作,在Draw函数开始时会先调用Pre_Processing()函数,结束时会调用Post_processing();
该类只有唯一的一个构造函数,在构函数内只是给该RenderFrame指定了一个默认名称“Render Frame”;
类成员函数:
1.void Draw()
类的主要渲染函数,内部执行顺序是:
1. Pre_Processing(); 2.BegineFrame() 3.遍历每一个Step的Render函数 4.EndUsingRenderTargetGroup() 5.EndFrame() 6.Post_processing();
2. void Display()
只是调用DisplayFrame();
3.
void AppendRenderStep(NiRenderStep* pkRenderStep)
void PrependRenderStep(NiRenderStep* pkRenderStep)
void RemoveRenderStep(NiRenderStep* pkRenderStep)
void RemoveAllRenderSteps()
NiTPointerList<NiRenderStepPtr>& GetRenderSteps()
const NiTPointerList<NiRenderStepPtr>& GetRenderSteps() const
NiRenderStep* GetRenderStepByName(constNiFixedString& kName) const
NiTListIterator GetRenderStepPosByName(const NiFixedString& kName) const
NiRenderStep* GetRenderStepAndPosByName(constNiFixedString& kName, NiTListIterator& kIter) const
这一系列的函数都是对RenderStep列表进行操作的。
void SetPreProcessingCallbackFunc(Callback pfnCallback, void* pvCallbackData = NULL)
Callback GetPreProcessingCallbackFunc() const
void* GetPreProcessingCallbackFuncData() const
这些是设置 和 获得 回调函数指针和数据的,这个回调函数是在Draw()函数的刚开始时调用。
These functions set and get the pre-processing callback function pointer and data. This callback is invoked at the very beginning of theDraw function.
void SetPostProcessingCallbackFunc(Callback pfnCallback, void* pvCallbackData = NULL)
Callback GetPostProcessingCallbackFunc() const
void* GetPostProcessingCallbackFuncData() const
这些是设置 和 获得 回调函数指针和数据的,这个回调函数是在Draw()函数的要结束时调用。
4.
void SetName(const NiFixedString& kName)
const NiFixedString& GetName() const
这些函数是设置和获得渲染帧的名字,默认名字是"Render Frame".
typedef bool (*Callback)(NiRenderFrame* pkCurrentFrame, void* pvCallbackData)
这个回调类型定义了一个可以被用作pre- and post-processing 回调函数的指针,它指向当前调用回调函数的渲染帧及回调函数要要调用的数据;