diff --git a/README.md b/README.md index 7bf3accb7ec72174927817cb7edf47d87cee7888..8f4ce7fb974596db2c3f6d985567c963972cf1a2 100644 --- a/README.md +++ b/README.md @@ -27,25 +27,25 @@ npm i --save gl-react-native **on Android:** 1. `android/settings.gradle`:: Add the following snippet - ```gradle - include ':RNGL' - project(':RNGL').projectDir = file('../node_modules/gl-react-native/android') - ``` +```gradle +include ':RNGL' +project(':RNGL').projectDir = file('../node_modules/gl-react-native/android') +``` 1. `android/app/build.gradle`: Add in dependencies block. - ```gradle - compile project(':RNGL') - ``` +```gradle +compile project(':RNGL') +``` 1. in your `MainActivity` (or equivalent): - ```java - import com.projectseptember.RNGL.RNGLPackage; - ... - - mReactInstanceManager = ReactInstanceManager.builder() - .setApplication(getApplication()) - ... - .addPackage(new MainReactPackage()) - .addPackage(new RNGLPackage()) - ... - .build(); - - ``` +```java +import com.projectseptember.RNGL.RNGLPackage; +... + +mReactInstanceManager = ReactInstanceManager.builder() + .setApplication(getApplication()) + ... + .addPackage(new MainReactPackage()) + .addPackage(new RNGLPackage()) + ... + .build(); + +``` diff --git a/ios/GLCanvas.m b/ios/GLCanvas.m index a3fee68ae0cee164addf74d09d938e8108b0686a..551aea383b36c07742976717ab4bf0c9066653b1 100644 --- a/ios/GLCanvas.m +++ b/ios/GLCanvas.m @@ -61,7 +61,7 @@ NSArray* diff (NSArray* a, NSArray* b) { NSTimer *animationTimer; BOOL _needSync; - + NSMutableArray *_captureConfigs; BOOL _captureScheduled; } @@ -341,7 +341,6 @@ RCT_NOT_IMPLEMENTED(-init) if (imgData) contentData[i] = imgData; } _contentData = contentData; - _deferredRendering = false; [self setNeedsDisplay]; RCT_PROFILE_END_EVENT(0, @"gl", nil); } @@ -406,14 +405,13 @@ RCT_NOT_IMPLEMENTED(-init) return; } - bool willRender = !_deferredRendering; - - if ([_nbContentTextures intValue] > 0 && !_autoRedraw) { + BOOL needsDeferredRendering = [_nbContentTextures intValue] > 0 && !_autoRedraw; + if (needsDeferredRendering && !_deferredRendering) { _deferredRendering = true; [self performSelectorOnMainThread:@selector(syncContentData) withObject:nil waitUntilDone:NO]; } - - if (willRender) { + else { + _deferredRendering = false; [self render]; if (!_captureScheduled && [_captureConfigs count] > 0) { _captureScheduled = true; @@ -426,24 +424,24 @@ RCT_NOT_IMPLEMENTED(-init) { _captureScheduled = false; if (!self.onGLCaptureFrame) return; - + UIImage *frameImage = [self snapshot]; - + for (CaptureConfig *config in _captureConfigs) { id result; id error; - + BOOL isPng = [config.type isEqualToString:@"png"]; BOOL isJpeg = !isPng && ([config.type isEqualToString:@"jpeg"] || [config.type isEqualToString:@"jpg"]); - + BOOL isBase64 = [config.format isEqualToString:@"base64"]; BOOL isFile = !isBase64 && [config.format isEqualToString:@"file"]; - + NSData *frameData = isPng ? UIImagePNGRepresentation(frameImage) : isJpeg ? UIImageJPEGRepresentation(frameImage, [config.quality floatValue]) : nil; - + if (!frameData) { error = [NSString stringWithFormat:@"Unsupported capture type '%@'", config.type]; } @@ -463,14 +461,14 @@ RCT_NOT_IMPLEMENTED(-init) else { error = [NSString stringWithFormat:@"Unsupported capture format '%@'", config.format]; } - + NSMutableDictionary *response = [[NSMutableDictionary alloc] init]; response[@"config"] = [config dictionary]; if (error) response[@"error"] = error; if (result) response[@"result"] = result; self.onGLCaptureFrame(response); } - + _captureConfigs = [[NSMutableArray alloc] init]; } diff --git a/package.json b/package.json index 53b806770fbaec887066ace78964224cfa0cb1d4..2a87423379b72c75fc44f830a25e089a3b6e88d8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gl-react-native", - "version": "2.17.5", + "version": "2.17.8", "description": "OpenGL bindings for react-native to implement complex effects over images and components, in the descriptive VDOM paradigm", "repository": { "type": "git",