From 945e8d4944b01cf46c932de3a3d2fed7d7a59395 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABtan=20Renaudeau?= Date: Mon, 28 Dec 2015 18:44:35 +0100 Subject: [PATCH] polish --- .../xcshareddata/xcschemes/AdvancedEffects.xcscheme | 7 ------- ios/GLCanvas.m | 13 ++++++++----- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/Examples/AdvancedEffects/ios/AdvancedEffects.xcodeproj/xcshareddata/xcschemes/AdvancedEffects.xcscheme b/Examples/AdvancedEffects/ios/AdvancedEffects.xcodeproj/xcshareddata/xcschemes/AdvancedEffects.xcscheme index 0888e64..3a106ba 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 a082c39..e96cdbe 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 -- 2.26.2