diff --git a/Examples/Simple/package.json b/Examples/Simple/package.json
index 25bf40762b2e42a7e5b184349e62273a462a5c86..2ca59fde74e3ded14be990757efb5807550460d6 100644
--- a/Examples/Simple/package.json
+++ b/Examples/Simple/package.json
@@ -7,6 +7,6 @@
},
"dependencies": {
"gl-react-native": "file:../..",
- "react-native": "^0.9.0"
+ "react-native": "^0.10.0"
}
}
diff --git a/RNGL/GLCanvas.h b/RNGL/GLCanvas.h
index e66fe814365cfef86ac5c00861269fea5dff5a4a..90090f1813a4a204b9556d3cef19be10c2b556e0 100644
--- a/RNGL/GLCanvas.h
+++ b/RNGL/GLCanvas.h
@@ -6,6 +6,7 @@
@property (nonatomic) GLData *data;
@property (nonatomic) BOOL opaque;
@property (nonatomic) NSNumber *nbTargets;
+@property (nonatomic) NSNumber *renderId;
- (instancetype)initWithBridge:(RCTBridge *)bridge
withContext:(EAGLContext*)context;
diff --git a/RNGL/GLCanvas.m b/RNGL/GLCanvas.m
index 6feff6cb9cfa8e0bd3f0cf077658c57d54e7fe43..c36af0802bb721744851d33eb55762845d60da0a 100644
--- a/RNGL/GLCanvas.m
+++ b/RNGL/GLCanvas.m
@@ -61,6 +61,13 @@ NSString* srcResource (id res)
return src;
}
+- (void)setRenderId:(NSNumber *)renderId
+{
+ if (_nbTargets > 0) {
+ [self setNeedsDisplay];
+ }
+}
+
- (void)setData:(GLData *)data
{
_data = data;
@@ -94,7 +101,7 @@ NSString* srcResource (id res)
for (GLData *child in data.children) {
if (fboId == frameIndex) fboId ++;
fbosMapping[[NSNumber numberWithInt:i]] = [NSNumber numberWithInt:fboId];
- [children addObject:traverseTree(child, fboId)];
+ [children addObject:weak_traverseTree(child, fboId)];
fboId ++;
i ++;
}
@@ -180,6 +187,7 @@ NSString* srcResource (id res)
- (void)setNbTargets:(NSNumber *)nbTargets
{
[self resizeTargets:[nbTargets intValue]];
+ _nbTargets = nbTargets;
}
- (void)resizeTargets:(int)n
@@ -245,7 +253,7 @@ NSString* srcResource (id res)
float h = [renderData.height floatValue] * scale;
for (GLRenderData *child in renderData.children)
- recDraw(child);
+ weak_recDraw(child);
if (renderData.frameIndex == -1) {
glBindFramebuffer(GL_FRAMEBUFFER, defaultFBO);
diff --git a/RNGL/GLCanvasManager.m b/RNGL/GLCanvasManager.m
index 0fe2883d355e30d3a3f0b37655a82ac723b33952..201ab2d239de1c9f3fd38fee33356b45569edd61 100644
--- a/RNGL/GLCanvasManager.m
+++ b/RNGL/GLCanvasManager.m
@@ -21,6 +21,7 @@ RCT_EXPORT_MODULE();
RCT_EXPORT_VIEW_PROPERTY(nbTargets, NSNumber);
RCT_EXPORT_VIEW_PROPERTY(opaque, BOOL);
RCT_EXPORT_VIEW_PROPERTY(data, GLData);
+RCT_EXPORT_VIEW_PROPERTY(renderId, NSNumber);
- (UIView *)view
{
diff --git a/package.json b/package.json
index b6c9fa4c7be03044e77bf97eada109b72a7be25e..19ef5cfcc3afae37a3feab487cdf6e3bcd74d027 100644
--- a/package.json
+++ b/package.json
@@ -21,7 +21,7 @@
"dependencies": {
"invariant": "2.1.0",
"react-native": ">=0.9.0 <0.11.0",
- "gl-react-core": "^0.1.0"
+ "gl-react-core": "^0.1.1"
},
"devDependencies": {
"eslint": "^1.2.1",
diff --git a/src/View.js b/src/View.js
index e635ad9772addde34aec6ff4bfccf2a3c648ef93..edf14efc300492c5cc80e37901d85009f8578d15 100644
--- a/src/View.js
+++ b/src/View.js
@@ -23,13 +23,14 @@ const renderVtarget = function (style, width, height, id, children) {
return {children};
};
-const renderVGL = function (props, width, height, data, nbTargets) {
+const renderVGL = function (props, width, height, data, nbTargets, renderId) {
return ;
};