diff --git a/Examples/AdvancedEffects/ios/AdvancedEffects.xcodeproj/xcshareddata/xcschemes/AdvancedEffects.xcscheme b/Examples/AdvancedEffects/ios/AdvancedEffects.xcodeproj/xcshareddata/xcschemes/AdvancedEffects.xcscheme
index 0888e641f24af7f6c7e3395348ccfdc64059d77d..3a106baefd676c93a7bc016b9612227854a28a85 100644
--- a/Examples/AdvancedEffects/ios/AdvancedEffects.xcodeproj/xcshareddata/xcschemes/AdvancedEffects.xcscheme
+++ b/Examples/AdvancedEffects/ios/AdvancedEffects.xcodeproj/xcshareddata/xcschemes/AdvancedEffects.xcscheme
@@ -85,13 +85,6 @@
ReferencedContainer = "container:AdvancedEffects.xcodeproj">
-
-
-
-
diff --git a/ios/GLCanvas.m b/ios/GLCanvas.m
index a082c393c8326127e47a00ac45499126153da17d..e96cdbe3f9b0c98f880d23a1045dedf18a3458e6 100644
--- a/ios/GLCanvas.m
+++ b/ios/GLCanvas.m
@@ -301,7 +301,6 @@ RCT_NOT_IMPLEMENTED(-init)
contentData[i] = imgData;
}
_contentData = contentData;
- _deferredRendering = true;
[self setNeedsDisplay];
RCT_PROFILE_END_EVENT(0, @"gl", nil);
}
@@ -350,16 +349,17 @@ RCT_NOT_IMPLEMENTED(-init)
BOOL needsDeferredRendering = _nbContentTextures > 0 && !_autoRedraw;
if (needsDeferredRendering && !_deferredRendering) {
+ _deferredRendering = true;
[self performSelectorOnMainThread:@selector(syncContentData) withObject:nil waitUntilDone:NO];
}
else {
- RCT_PROFILE_BEGIN_EVENT(0, @"GLCanvas render", nil);
[self render];
- RCT_PROFILE_END_EVENT(0, @"gl", nil);
_deferredRendering = false;
if (_captureFrameRequested) {
_captureFrameRequested = false;
+
+ // FIXME: might use performSelectorOnMainThread as well
dispatch_async(dispatch_get_main_queue(), ^{ // snapshot not allowed in render tick. defer it.
if (!weakSelf) return;
UIImage *frameImage = [weakSelf snapshot];
@@ -377,10 +377,11 @@ RCT_NOT_IMPLEMENTED(-init)
{
GLRenderData *rd = _renderData;
if (!rd) return;
-
- CGFloat scale = RCTScreenScale();
+ RCT_PROFILE_BEGIN_EVENT(0, @"GLCanvas render", nil);
@autoreleasepool {
+ CGFloat scale = RCTScreenScale();
+
void (^recDraw) (GLRenderData *renderData);
__block __weak void (^weak_recDraw) (GLRenderData *renderData);
weak_recDraw = recDraw = ^void(GLRenderData *renderData) {
@@ -437,6 +438,8 @@ RCT_NOT_IMPLEMENTED(-init)
[self dispatchOnLoad];
}
}
+
+ RCT_PROFILE_END_EVENT(0, @"gl", nil);
}
//// utility methods