Commit fd28f9e3 authored by Gaëtan Renaudeau's avatar Gaëtan Renaudeau

simplify the logic in drawRect

parent 7a874939
...@@ -113,7 +113,6 @@ RCT_NOT_IMPLEMENTED(-init) ...@@ -113,7 +113,6 @@ RCT_NOT_IMPLEMENTED(-init)
{ {
if (autoRedraw) { if (autoRedraw) {
if (!animationTimer) if (!animationTimer)
animationTimer = // FIXME: can we do better than this?
[NSTimer scheduledTimerWithTimeInterval:1.0/60.0 [NSTimer scheduledTimerWithTimeInterval:1.0/60.0
target:self target:self
selector:@selector(setNeedsDisplay) selector:@selector(setNeedsDisplay)
...@@ -306,6 +305,7 @@ RCT_NOT_IMPLEMENTED(-init) ...@@ -306,6 +305,7 @@ RCT_NOT_IMPLEMENTED(-init)
contentData[i] = imgData; contentData[i] = imgData;
} }
_contentData = contentData; _contentData = contentData;
_deferredRendering = false;
[self setNeedsDisplay]; [self setNeedsDisplay];
RCT_PROFILE_END_EVENT(0, @"gl", nil); RCT_PROFILE_END_EVENT(0, @"gl", nil);
} }
...@@ -335,7 +335,7 @@ RCT_NOT_IMPLEMENTED(-init) ...@@ -335,7 +335,7 @@ RCT_NOT_IMPLEMENTED(-init)
- (void)drawRect:(CGRect)rect - (void)drawRect:(CGRect)rect
{ {
self.layer.opaque = _opaque; self.layer.opaque = _opaque;
if (_neverRendered) { if (_neverRendered) {
_neverRendered = false; _neverRendered = false;
glClearColor(0.0, 0.0, 0.0, 0.0); glClearColor(0.0, 0.0, 0.0, 0.0);
...@@ -350,14 +350,15 @@ RCT_NOT_IMPLEMENTED(-init) ...@@ -350,14 +350,15 @@ RCT_NOT_IMPLEMENTED(-init)
return; return;
} }
BOOL needsDeferredRendering = [_nbContentTextures intValue] > 0 && !_autoRedraw; bool willRender = !_deferredRendering;
if (needsDeferredRendering && !_deferredRendering) {
if ([_nbContentTextures intValue] > 0) {
_deferredRendering = true; _deferredRendering = true;
[self performSelectorOnMainThread:@selector(syncContentData) withObject:nil waitUntilDone:NO]; [self performSelectorOnMainThread:@selector(syncContentData) withObject:nil waitUntilDone:NO];
} }
else {
if (willRender) {
[self render]; [self render];
_deferredRendering = false;
if (_captureFrameRequested) { if (_captureFrameRequested) {
_captureFrameRequested = false; _captureFrameRequested = false;
[self performSelectorOnMainThread:@selector(capture) withObject:nil waitUntilDone:NO]; [self performSelectorOnMainThread:@selector(capture) withObject:nil waitUntilDone:NO];
......
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