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 ; };