@@ -134,26 +134,26 @@ void ClippingNode::onExit()
134134 Node::onExit ();
135135}
136136
137- void ClippingNode::visit (Renderer* renderer , const Mat4& parentTransform, uint32_t parentFlags)
137+ void ClippingNode::visit (const SceneRenderState& state , const Mat4& parentTransform, uint32_t parentFlags)
138138{
139139 if (!_visible || !hasContent ())
140140 return ;
141141
142142 AXASSERT (_stencil, " No stencil set" );
143143
144- uint32_t flags = processParentFlags (parentTransform, parentFlags);
144+ uint32_t flags = processParentFlags (state, parentTransform, parentFlags);
145145
146146 // Add group command
147147
148- auto * groupCommandStencil = renderer ->getNextGroupCommand ();
148+ auto * groupCommandStencil = state. getRenderer () ->getNextGroupCommand ();
149149 groupCommandStencil->init (_globalZOrder);
150- renderer ->addCommand (groupCommandStencil);
150+ state. getRenderer () ->addCommand (groupCommandStencil);
151151
152- renderer ->pushGroup (groupCommandStencil->getRenderQueueID ());
152+ state. getRenderer () ->pushGroup (groupCommandStencil->getRenderQueueID ());
153153
154154 // _beforeVisitCmd.init(_globalZOrder);
155155 // _beforeVisitCmd.func = AX_CALLBACK_0(StencilStateManager::onBeforeVisit, _stencilStateManager);
156- // renderer ->addCommand(&_beforeVisitCmd);
156+ // state.getRenderer() ->addCommand(&_beforeVisitCmd);
157157 _stencilStateManager->onBeforeVisit (_globalZOrder);
158158
159159 auto alphaThreshold = this ->getAlphaThreshold ();
@@ -167,23 +167,23 @@ void ClippingNode::visit(Renderer* renderer, const Mat4& parentTransform, uint32
167167
168168 AX_SAFE_RELEASE_NULL (programState);
169169 }
170- _stencil->visit (renderer , _modelViewTransform, flags);
170+ _stencil->visit (state , _modelViewTransform, flags);
171171
172- auto afterDrawStencilCmd = renderer ->nextCallbackCommand ();
172+ auto afterDrawStencilCmd = state. getRenderer () ->nextCallbackCommand ();
173173 afterDrawStencilCmd->init (_globalZOrder);
174174 afterDrawStencilCmd->func = AX_CALLBACK_0 (StencilStateManager::onAfterDrawStencil, _stencilStateManager);
175- renderer ->addCommand (afterDrawStencilCmd);
175+ state. getRenderer () ->addCommand (afterDrawStencilCmd);
176176
177- bool visibleByCamera = isVisitableByVisitingCamera ( );
177+ bool visibleByCamera = isVisitableByCamera (state. cameraFlag );
178178
179179 // `_groupCommandChildren` is used as a barrier
180180 // to ensure commands above be executed before children nodes
181- auto * groupCommandChildren = renderer ->getNextGroupCommand ();
181+ auto * groupCommandChildren = state. getRenderer () ->getNextGroupCommand ();
182182
183183 groupCommandChildren->init (_globalZOrder);
184- renderer ->addCommand (groupCommandChildren);
184+ state. getRenderer () ->addCommand (groupCommandChildren);
185185
186- renderer ->pushGroup (groupCommandChildren->getRenderQueueID ());
186+ state. getRenderer () ->pushGroup (groupCommandChildren->getRenderQueueID ());
187187
188188 if (!_children.empty ())
189189 {
@@ -195,30 +195,30 @@ void ClippingNode::visit(Renderer* renderer, const Mat4& parentTransform, uint32
195195 auto node = _children.at (i);
196196
197197 if (node && node->getLocalZOrder () < 0 )
198- node->visit (renderer , _modelViewTransform, flags);
198+ node->visit (state , _modelViewTransform, flags);
199199 else
200200 break ;
201201 }
202202 // self draw
203203 if (visibleByCamera)
204- this ->draw (renderer , _modelViewTransform, flags);
204+ this ->draw (state , _modelViewTransform, flags);
205205
206206 for (auto it = _children.cbegin () + i, itCend = _children.cend (); it != itCend; ++it)
207- (*it)->visit (renderer , _modelViewTransform, flags);
207+ (*it)->visit (state , _modelViewTransform, flags);
208208 }
209209 else if (visibleByCamera)
210210 {
211- this ->draw (renderer , _modelViewTransform, flags);
211+ this ->draw (state , _modelViewTransform, flags);
212212 }
213213
214- renderer ->popGroup ();
214+ state. getRenderer () ->popGroup ();
215215
216- auto _afterVisitCmd = renderer ->nextCallbackCommand ();
216+ auto _afterVisitCmd = state. getRenderer () ->nextCallbackCommand ();
217217 _afterVisitCmd->init (_globalZOrder);
218218 _afterVisitCmd->func = AX_CALLBACK_0 (StencilStateManager::onAfterVisit, _stencilStateManager);
219- renderer ->addCommand (_afterVisitCmd);
219+ state. getRenderer () ->addCommand (_afterVisitCmd);
220220
221- renderer ->popGroup ();
221+ state. getRenderer () ->popGroup ();
222222}
223223
224224void ClippingNode::setGlobalZOrder (float globalZOrder)
0 commit comments