Revert D4449255: [react-native][PR] Fixed ART Surface initialization: do not cancel updates to the surfce, make them pen…

Differential Revision: D4449255

fbshipit-source-id: e210cebfde25c6cd68a1fb7e1dceeefad890cf93
This commit is contained in:
Valentin Shergin 2017-08-15 17:03:07 -07:00 committed by Facebook Github Bot
parent a7468a4acf
commit eb01f8fe59
1 changed files with 13 additions and 12 deletions

View File

@ -34,7 +34,6 @@ public class ARTSurfaceViewShadowNode extends LayoutShadowNode
implements TextureView.SurfaceTextureListener {
private @Nullable Surface mSurface;
private @Nullable boolean mHasPendingUpdates;
private @Nullable Integer mBackgroundColor;
@ -63,7 +62,7 @@ public class ARTSurfaceViewShadowNode extends LayoutShadowNode
private void drawOutput() {
if (mSurface == null || !mSurface.isValid()) {
mHasPendingUpdates = true;
markChildrenUpdatesSeen(this);
return;
}
@ -78,6 +77,7 @@ public class ARTSurfaceViewShadowNode extends LayoutShadowNode
for (int i = 0; i < getChildCount(); i++) {
ARTVirtualNode child = (ARTVirtualNode) getChildAt(i);
child.draw(canvas, paint, 1f);
child.markUpdateSeen();
}
if (mSurface == null) {
@ -85,20 +85,23 @@ public class ARTSurfaceViewShadowNode extends LayoutShadowNode
}
mSurface.unlockCanvasAndPost(canvas);
mHasPendingUpdates = false;
} catch (IllegalArgumentException | IllegalStateException e) {
FLog.e(ReactConstants.TAG, e.getClass().getSimpleName() + " in SurfaceView.drawOutput");
} catch (RuntimeException e) {
FLog.e(ReactConstants.TAG, e.getClass().getSimpleName() + " in SurfaceView.drawOutput");
FLog.e(ReactConstants.TAG, e.getClass().getSimpleName() + " in Surface.unlockCanvasAndPost");
}
}
private void markChildrenUpdatesSeen(ReactShadowNode shadowNode) {
for (int i = 0; i < shadowNode.getChildCount(); i++) {
ReactShadowNode child = shadowNode.getChildAt(i);
child.markUpdateSeen();
markChildrenUpdatesSeen(child);
}
}
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
mSurface = new Surface(surface);
if (mHasPendingUpdates) {
drawOutput();
}
drawOutput();
}
@Override
@ -109,9 +112,7 @@ public class ARTSurfaceViewShadowNode extends LayoutShadowNode
}
@Override
public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) {
drawOutput();
}
public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) {}
@Override
public void onSurfaceTextureUpdated(SurfaceTexture surface) {}