@@ -117,41 +117,6 @@ -(void)destroy
117
117
_allocatedSize = CGSizeMake (0 .0f , 0 .0f );
118
118
}
119
119
120
- -(void )begin
121
- {
122
- // CGSize pixelSize = self.texture.contentSizeInPixels;
123
- // GLuint fbo = [self fbo];
124
- //
125
- // [_renderer pushGroup];
126
- // [_renderer enqueueBlock:^{
127
- // glGetFloatv(GL_VIEWPORT, _oldViewport.v);
128
- // glViewport(0, 0, pixelSize.width, pixelSize.height );
129
- //
130
- // glGetIntegerv(GL_FRAMEBUFFER_BINDING, &_oldFBO);
131
- // glBindFramebuffer(GL_FRAMEBUFFER, fbo);
132
- //
133
- // } globalSortOrder:NSIntegerMin debugLabel:@"CCEffectNode: Bind FBO" threadSafe:NO];
134
- }
135
-
136
- -(void )endWithDebugLabel : (NSString *)debugLabel
137
- {
138
- // [_renderer enqueueBlock:^{
139
- // glBindFramebuffer(GL_FRAMEBUFFER, _oldFBO);
140
- // glViewport(_oldViewport.v[0], _oldViewport.v[1], _oldViewport.v[2], _oldViewport.v[3]);
141
- // } globalSortOrder:NSIntegerMax debugLabel:@"CCEffectNode: Restore FBO" threadSafe:NO];
142
- //
143
- // [_renderer popGroupWithDebugLabel:debugLabel globalSortOrder:0];
144
- }
145
-
146
- -(void )visit
147
- {
148
- // [self configureRender];
149
- // NSAssert(_renderer, @"Cannot call [CCNode visit] without a currently bound renderer.");
150
- //
151
- // GLKMatrix4 projection; [_renderer.globalShaderUniforms[CCShaderUniformProjection] getValue:&projection];
152
- // [self visit:_renderer parentTransform:&projection];
153
- }
154
-
155
120
-(void )visit : (CCRenderer *)renderer parentTransform : (const GLKMatrix4 *)parentTransform
156
121
{
157
122
// override visit.
@@ -173,83 +138,42 @@ -(void)visit:(CCRenderer *)renderer parentTransform:(const GLKMatrix4 *)parentTr
173
138
_orderOfArrival = 0 ;
174
139
}
175
140
176
- -(void )configureRender
177
- {
178
- // // bind renderer
179
- // _renderer = [CCRenderer currentRenderer];
180
- //
181
- // if(_renderer == nil)
182
- // {
183
- // _renderer = [[CCRenderer alloc] init];
184
- //
185
- // NSMutableDictionary *uniforms = [[CCDirector sharedDirector].globalShaderUniforms mutableCopy];
186
- // uniforms[CCShaderUniformProjection] = [NSValue valueWithGLKMatrix4:_projection];
187
- // #warning FIXME
188
- // // _renderer.globalShaderUniforms = uniforms;
189
- //
190
- // [CCRenderer bindRenderer:_renderer];
191
- // _privateRenderer = YES;
192
- // }
193
- // else if(_privateRenderer == NO)
194
- // {
195
- // _oldGlobalUniforms = _renderer.globalShaderUniforms;
196
- //
197
- // NSMutableDictionary *uniforms = [_oldGlobalUniforms mutableCopy];
198
- // uniforms[CCShaderUniformProjection] = [NSValue valueWithGLKMatrix4:_projection];
199
- // #warning FIXME
200
- // // _renderer.globalShaderUniforms = uniforms;
201
- // }
202
- }
203
-
204
141
-(void )draw : (CCRenderer *)renderer transform : (const GLKMatrix4 *)transform
205
142
{
206
- // [self configureRender];
207
- //
208
- // NSAssert(_renderer == renderer, @"CCEffectNode error!");
209
- //
210
- // // Render children of this effect node into an FBO for use by the
211
- // // remainder of the effects.
212
- // [self begin];
213
- //
214
- // [_renderer enqueueClear:self.clearFlags color:_clearColor depth:self.clearDepth stencil:self.clearStencil globalSortOrder:NSIntegerMin];
215
- //
216
- // //! make sure all children are drawn
217
- // [self sortAllChildren];
218
- //
219
- // for(CCNode *child in _children){
220
- // if( child != _sprite) [child visit:renderer parentTransform:&_projection];
221
- // }
222
- // [self endWithDebugLabel:@"CCEffectNode: Pre-render pass"];
223
- //
224
- // // Done pre-render
225
- //
226
- // if (_effect)
227
- // {
228
- // _effectRenderer.contentSize = self.contentSizeInPoints;
229
- // if ([_effect prepareForRendering] == CCEffectPrepareSuccess)
230
- // {
231
- // // Preparing an effect for rendering can modify its uniforms
232
- // // dictionary which means we need to reinitialize our copy of the
233
- // // uniforms.
234
- // [self updateShaderUniformsFromEffect];
235
- // }
236
- // [_effectRenderer drawSprite:_sprite withEffect:_effect uniforms:_shaderUniforms renderer:_renderer transform:transform];
237
- // }
238
- // else
239
- // {
240
- // _sprite.anchorPoint = ccp(0.0f, 0.0f);
241
- // _sprite.position = ccp(0.0f, 0.0f);
242
- // [_sprite visit:_renderer parentTransform:transform];
243
- // }
244
- //
245
- // // if(_privateRenderer == NO)
246
- // // ;
247
- // // #warning FIXME
248
- // //// _renderer.globalShaderUniforms = _oldGlobalUniforms;
249
- // // else
250
- // // [CCRenderer bindRenderer:nil];
251
- //
252
- // _renderer = nil;
143
+ // Render children of this effect node into an FBO for use by the
144
+ // remainder of the effects.
145
+ CCRenderer *rtRenderer = [self begin ];
146
+
147
+ [rtRenderer enqueueClear: self .clearFlags color: _clearColor depth: self .clearDepth stencil: self .clearStencil globalSortOrder: NSIntegerMin];
148
+
149
+ // ! make sure all children are drawn
150
+ [self sortAllChildren ];
151
+
152
+ for (CCNode *child in _children){
153
+ if ( child != _sprite) [child visit: rtRenderer parentTransform: &_projection];
154
+ }
155
+ [self end ];
156
+
157
+ // Done pre-render
158
+
159
+ if (_effect)
160
+ {
161
+ _effectRenderer.contentSize = self.contentSizeInPoints ;
162
+ if ([_effect prepareForRendering ] == CCEffectPrepareSuccess)
163
+ {
164
+ // Preparing an effect for rendering can modify its uniforms
165
+ // dictionary which means we need to reinitialize our copy of the
166
+ // uniforms.
167
+ [self updateShaderUniformsFromEffect ];
168
+ }
169
+ [_effectRenderer drawSprite: _sprite withEffect: _effect uniforms: _shaderUniforms renderer: renderer transform: transform];
170
+ }
171
+ else
172
+ {
173
+ _sprite.anchorPoint = ccp (0 .0f , 0 .0f );
174
+ _sprite.position = ccp (0 .0f , 0 .0f );
175
+ [_sprite visit: renderer parentTransform: transform];
176
+ }
253
177
}
254
178
255
179
- (void )updateShaderUniformsFromEffect
0 commit comments