diff options
author | John Reck <jreck@google.com> | 2017-05-23 14:45:22 -0700 |
---|---|---|
committer | John Reck <jreck@google.com> | 2017-05-24 22:10:40 +0000 |
commit | 1fedd9168715d7a8e645acdd5c8d06ffa982fd51 (patch) | |
tree | 7309b69c1bd9b66b684946f7397c321821743ce4 /tests/HwAccelerationTest/src | |
parent | 52ca75011b6a636ac3485e58305b102787fd08e9 (diff) |
Creating HW bitmaps from RenderNode
Allows creating a HW Bitmap from the drawing
commands of a RenderNode.
Bug: 38507414
Bug: 37698012
Test: Sample in HwAccelerationTest
Change-Id: I57c60b2c8bf5194f4412ad4b7f1c1f35e2e4c757
Diffstat (limited to 'tests/HwAccelerationTest/src')
-rw-r--r-- | tests/HwAccelerationTest/src/com/android/test/hwui/DrawIntoHwBitmapActivity.java | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/DrawIntoHwBitmapActivity.java b/tests/HwAccelerationTest/src/com/android/test/hwui/DrawIntoHwBitmapActivity.java new file mode 100644 index 000000000000..faabdfc01de7 --- /dev/null +++ b/tests/HwAccelerationTest/src/com/android/test/hwui/DrawIntoHwBitmapActivity.java @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.test.hwui; + +import static android.graphics.GraphicBuffer.USAGE_HW_TEXTURE; +import static android.graphics.GraphicBuffer.USAGE_SW_READ_NEVER; +import static android.graphics.GraphicBuffer.USAGE_SW_WRITE_NEVER; +import static android.graphics.GraphicBuffer.USAGE_SW_WRITE_RARELY; + +import android.app.Activity; +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.GraphicBuffer; +import android.graphics.Paint; +import android.graphics.PixelFormat; +import android.graphics.SurfaceTexture; +import android.os.Bundle; +import android.view.DisplayListCanvas; +import android.view.RenderNode; +import android.view.Surface; +import android.view.ThreadedRenderer; +import android.widget.ImageView; + +public class DrawIntoHwBitmapActivity extends Activity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + ImageView view = new ImageView(this); + view.setScaleType(ImageView.ScaleType.CENTER_INSIDE); + setContentView(view); + view.setImageBitmap(createBitmap()); + } + + Bitmap createBitmap() { + RenderNode node = RenderNode.create("HwuiCanvas", null); + node.setLeftTopRightBottom(0, 0, 500, 500); + node.setClipToBounds(false); + DisplayListCanvas canvas = node.start(500, 500); + Paint p = new Paint(); + p.setColor(Color.BLACK); + p.setTextSize(20 * getResources().getDisplayMetrics().density); + canvas.drawColor(0xFF2196F3); + p.setColor(0xFFBBDEFB); + canvas.drawRect(0, 0, 500, 100, p); + p.setColor(Color.BLACK); + canvas.drawText("Hello, World!", 0, 90, p); + node.end(canvas); + return ThreadedRenderer.createHardwareBitmap(node, 500, 500); + } +} |