Skip to content

Commit 1ce1307

Browse files
mikejurkaAndroid (Google) Code Review
authored andcommitted
Merge "Don't draw layers in buildLayer()"
2 parents 9778bd1 + 7e52caf commit 1ce1307

File tree

3 files changed

+7
-32
lines changed

3 files changed

+7
-32
lines changed

core/java/android/view/HardwareLayer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ void update(int width, int height, boolean isOpaque) {
167167

168168
/**
169169
* Specifies the display list to use to refresh the layer.
170-
*
170+
*
171171
* @param displayList The display list containing the drawing commands to
172172
* execute in this layer
173173
* @param dirtyRect The dirty region of the layer that needs to be redrawn

core/java/android/view/TextureView.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ protected void destroyHardwareResources() {
315315
}
316316

317317
@Override
318-
HardwareLayer getHardwareLayer(boolean immediateRefresh) {
318+
HardwareLayer getHardwareLayer() {
319319
if (mLayer == null) {
320320
if (mAttachInfo == null || mAttachInfo.mHardwareRenderer == null) {
321321
return null;

core/java/android/view/View.java

Lines changed: 5 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -10221,7 +10221,7 @@ public void buildLayer() {
1022110221
if (mAttachInfo.mHardwareRenderer != null &&
1022210222
mAttachInfo.mHardwareRenderer.isEnabled() &&
1022310223
mAttachInfo.mHardwareRenderer.validate()) {
10224-
getHardwareLayer(true);
10224+
getHardwareLayer();
1022510225
}
1022610226
break;
1022710227
case LAYER_TYPE_SOFTWARE:
@@ -10243,7 +10243,7 @@ void flushLayer() {
1024310243
*
1024410244
* @return A HardwareLayer ready to render, or null if an error occurred.
1024510245
*/
10246-
HardwareLayer getHardwareLayer(boolean immediateRefresh) {
10246+
HardwareLayer getHardwareLayer() {
1024710247
if (mAttachInfo == null || mAttachInfo.mHardwareRenderer == null ||
1024810248
!mAttachInfo.mHardwareRenderer.isEnabled()) {
1024910249
return null;
@@ -10273,33 +10273,8 @@ HardwareLayer getHardwareLayer(boolean immediateRefresh) {
1027310273
return null;
1027410274
}
1027510275

10276-
if (!immediateRefresh) {
10277-
mHardwareLayer.redraw(getDisplayList(), mLocalDirtyRect);
10278-
mLocalDirtyRect.setEmpty();
10279-
} else {
10280-
HardwareCanvas currentCanvas = mAttachInfo.mHardwareCanvas;
10281-
final HardwareCanvas canvas = mHardwareLayer.start(currentCanvas);
10282-
10283-
// Make sure all the GPU resources have been properly allocated
10284-
if (canvas == null) {
10285-
mHardwareLayer.end(currentCanvas);
10286-
return null;
10287-
}
10288-
10289-
mAttachInfo.mHardwareCanvas = canvas;
10290-
try {
10291-
canvas.setViewport(width, height);
10292-
canvas.onPreDraw(mLocalDirtyRect);
10293-
mLocalDirtyRect.setEmpty();
10294-
10295-
canvas.drawDisplayList(getDisplayList(), mRight - mLeft, mBottom - mTop, null,
10296-
DisplayList.FLAG_CLIP_CHILDREN);
10297-
} finally {
10298-
canvas.onPostDraw();
10299-
mHardwareLayer.end(currentCanvas);
10300-
mAttachInfo.mHardwareCanvas = currentCanvas;
10301-
}
10302-
}
10276+
mHardwareLayer.redraw(getDisplayList(), mLocalDirtyRect);
10277+
mLocalDirtyRect.setEmpty();
1030310278
}
1030410279

1030510280
return mHardwareLayer;
@@ -11266,7 +11241,7 @@ boolean draw(Canvas canvas, ViewGroup parent, long drawingTime) {
1126611241
if (hasNoCache) {
1126711242
boolean layerRendered = false;
1126811243
if (layerType == LAYER_TYPE_HARDWARE) {
11269-
final HardwareLayer layer = getHardwareLayer(false);
11244+
final HardwareLayer layer = getHardwareLayer();
1127011245
if (layer != null && layer.isValid()) {
1127111246
mLayerPaint.setAlpha((int) (alpha * 255));
1127211247
((HardwareCanvas) canvas).drawHardwareLayer(layer, 0, 0, mLayerPaint);

0 commit comments

Comments
 (0)