Skip to content

Commit 4aacf93

Browse files
Romain GuyAndroid (Google) Code Review
authored andcommitted
Merge "Fix memory corruption in LayerRenderer::copyLayer" into jb-mr1-dev
2 parents 4ea283a + e49d7ec commit 4aacf93

File tree

3 files changed

+92
-0
lines changed

3 files changed

+92
-0
lines changed

libs/hwui/LayerRenderer.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,8 @@ bool LayerRenderer::copyLayer(Layer* layer, SkBitmap* bitmap) {
400400
caches.activeTexture(0);
401401
glBindTexture(GL_TEXTURE_2D, texture);
402402

403+
glPixelStorei(GL_PACK_ALIGNMENT, bitmap->bytesPerPixel());
404+
403405
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
404406
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
405407

tests/HwAccelerationTest/AndroidManifest.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,15 @@
4141
</intent-filter>
4242
</activity>
4343

44+
<activity
45+
android:name="TJunctionActivity"
46+
android:label="_T-Junction">
47+
<intent-filter>
48+
<action android:name="android.intent.action.MAIN" />
49+
<category android:name="android.intent.category.LAUNCHER" />
50+
</intent-filter>
51+
</activity>
52+
4453
<activity
4554
android:name="TextPathActivity"
4655
android:label="_TextPath">
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
/*
2+
* Copyright (C) 2012 The Android Open Source Project
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package com.android.test.hwui;
18+
19+
import android.app.Activity;
20+
import android.content.Context;
21+
import android.graphics.Canvas;
22+
import android.graphics.Paint;
23+
import android.os.Bundle;
24+
import android.view.View;
25+
26+
@SuppressWarnings("UnusedDeclaration")
27+
public class TJunctionActivity extends Activity {
28+
@Override
29+
protected void onCreate(Bundle savedInstanceState) {
30+
super.onCreate(savedInstanceState);
31+
setContentView(new TJunctionView(this));
32+
}
33+
34+
private class TJunctionView extends View {
35+
private final Paint mPaint;
36+
37+
public TJunctionView(Context context) {
38+
super(context);
39+
40+
setLayerType(LAYER_TYPE_HARDWARE, null);
41+
42+
mPaint = new Paint();
43+
}
44+
45+
@Override
46+
protected void onDraw(Canvas canvas) {
47+
super.onDraw(canvas);
48+
49+
mPaint.setColor(0xffff0000);
50+
51+
canvas.translate(10.0f, 10.0f);
52+
canvas.drawRect(0.0f, 0.0f, 100.0f, 50.0f, mPaint);
53+
54+
mPaint.setColor(0xff00ff00);
55+
56+
canvas.translate(50.0f, 50.0f);
57+
canvas.drawRect(0.0f, 0.0f, 100.0f, 50.0f, mPaint);
58+
59+
mPaint.setColor(0xff0000ff);
60+
61+
canvas.translate(-25.0f, 50.0f);
62+
canvas.drawRect(0.0f, 0.0f, 100.0f, 50.0f, mPaint);
63+
64+
mPaint.setColor(0xffffffff);
65+
66+
canvas.translate(150.0f, 75.0f);
67+
canvas.drawRect(0.0f, 0.0f, 100.0f, 50.0f, mPaint);
68+
69+
canvas.translate(-50.0f, 75.0f);
70+
canvas.drawRect(0.0f, 0.0f, 100.0f, 50.0f, mPaint);
71+
72+
canvas.translate(-75.0f, 50.0f);
73+
canvas.drawRect(0.0f, 0.0f, 100.0f, 50.0f, mPaint);
74+
75+
canvas.translate(150.0f, 0.0f);
76+
canvas.drawRect(0.0f, 0.0f, 100.0f, 50.0f, mPaint);
77+
78+
invalidate();
79+
}
80+
}
81+
}

0 commit comments

Comments
 (0)