Commit 8c3dde97 authored by Gaëtan Renaudeau's avatar Gaëtan Renaudeau

bugfix iOS version

parent bd14d3bf
......@@ -7,8 +7,8 @@
},
"dependencies": {
"gl-react-native": "file:../..",
"gl-react": "^2.0.2",
"gl-react": "^2.0.8",
"react-native": "^0.17.0",
"react-native-material-kit": "^0.2.2"
"react-native-material-kit": "^0.2.4"
}
}
......@@ -104,7 +104,7 @@ RCT_NOT_IMPLEMENTED(-init)
- (void)setRenderId:(NSNumber *)renderId
{
if (_nbContentTextures > 0) {
if ([_nbContentTextures intValue] > 0) {
[self setNeedsDisplay];
}
}
......@@ -273,12 +273,17 @@ RCT_NOT_IMPLEMENTED(-init)
GLRenderData *res = traverseTree(_data);
if (res != nil) {
_needSync = false;
_renderData = traverseTree(_data);
_images = images;
for (NSString *src in diff([prevImages allKeys], [images allKeys])) {
[_preloaded removeObject:src];
}
}
else {
// the data is not ready, retry in one tick
[self setNeedsDisplay];
}
}
}
......@@ -329,25 +334,23 @@ RCT_NOT_IMPLEMENTED(-init)
- (void)drawRect:(CGRect)rect
{
__weak GLCanvas *weakSelf = self;
if (_needSync) {
_needSync = false;
[self syncData];
}
self.layer.opaque = _opaque;
if ([self haveRemainingToPreload]) {
if (_neverRendered) {
_neverRendered = false;
glClearColor(0.0, 0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT);
}
if (_needSync) {
[self syncData];
}
if ([self haveRemainingToPreload]) {
return;
}
_neverRendered = false;
BOOL needsDeferredRendering = _nbContentTextures > 0 && !_autoRedraw;
BOOL needsDeferredRendering = [_nbContentTextures intValue] > 0 && !_autoRedraw;
if (needsDeferredRendering && !_deferredRendering) {
_deferredRendering = true;
[self performSelectorOnMainThread:@selector(syncContentData) withObject:nil waitUntilDone:NO];
......@@ -355,22 +358,21 @@ RCT_NOT_IMPLEMENTED(-init)
else {
[self render];
_deferredRendering = false;
if (_captureFrameRequested) {
_captureFrameRequested = false;
[self performSelectorOnMainThread:@selector(capture) withObject:nil waitUntilDone:NO];
}
}
}
// 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];
-(void)capture
{
UIImage *frameImage = [self snapshot];
NSData *frameData = UIImagePNGRepresentation(frameImage);
NSString *frame =
[NSString stringWithFormat:@"data:image/png;base64,%@",
[frameData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength]];
if (weakSelf.onGLCaptureFrame) weakSelf.onGLCaptureFrame(@{ @"frame": frame });
});
}
}
if (self.onGLCaptureFrame) self.onGLCaptureFrame(@{ @"frame": frame });
}
- (void)render
......
......@@ -97,7 +97,9 @@ RCT_NOT_IMPLEMENTED(-init)
} else {
// we need to copy the image because it seems the image will be altered.
self.image = [UIImage imageWithCGImage:image.CGImage];
if(_onload) _onload();
dispatch_async(dispatch_get_main_queue(), ^{
if (_onload) _onload();
});
}
}];
}
......
......@@ -42,7 +42,7 @@
346089C01BEFD0A500C90DB5 /* GLFBO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLFBO.h; sourceTree = "<group>"; };
346089C11BEFD0A500C90DB5 /* GLFBO.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GLFBO.m; sourceTree = "<group>"; };
346089C21BEFD0A500C90DB5 /* GLImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLImage.h; sourceTree = "<group>"; };
346089C31BEFD0A500C90DB5 /* GLImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GLImage.m; sourceTree = "<group>"; };
346089C31BEFD0A500C90DB5 /* GLImage.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.c.objc; path = GLImage.m; sourceTree = "<group>"; tabWidth = 2; };
346089C41BEFD0A500C90DB5 /* GLImageData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLImageData.h; sourceTree = "<group>"; };
346089C51BEFD0A500C90DB5 /* GLImageData.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.c.objc; path = GLImageData.m; sourceTree = "<group>"; tabWidth = 2; };
346089C61BEFD0A500C90DB5 /* GLRenderData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLRenderData.h; sourceTree = "<group>"; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment