191d6354cde90b6625d4af6a5d909d886bf602a49sergeyv/* 291d6354cde90b6625d4af6a5d909d886bf602a49sergeyv * Copyright (C) 2016 The Android Open Source Project 391d6354cde90b6625d4af6a5d909d886bf602a49sergeyv * 491d6354cde90b6625d4af6a5d909d886bf602a49sergeyv * Licensed under the Apache License, Version 2.0 (the "License"); 591d6354cde90b6625d4af6a5d909d886bf602a49sergeyv * you may not use this file except in compliance with the License. 691d6354cde90b6625d4af6a5d909d886bf602a49sergeyv * You may obtain a copy of the License at 791d6354cde90b6625d4af6a5d909d886bf602a49sergeyv * 891d6354cde90b6625d4af6a5d909d886bf602a49sergeyv * http://www.apache.org/licenses/LICENSE-2.0 991d6354cde90b6625d4af6a5d909d886bf602a49sergeyv * 1091d6354cde90b6625d4af6a5d909d886bf602a49sergeyv * Unless required by applicable law or agreed to in writing, software 1191d6354cde90b6625d4af6a5d909d886bf602a49sergeyv * distributed under the License is distributed on an "AS IS" BASIS, 1291d6354cde90b6625d4af6a5d909d886bf602a49sergeyv * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1391d6354cde90b6625d4af6a5d909d886bf602a49sergeyv * See the License for the specific language governing permissions and 1491d6354cde90b6625d4af6a5d909d886bf602a49sergeyv * limitations under the License. 1591d6354cde90b6625d4af6a5d909d886bf602a49sergeyv */ 1691d6354cde90b6625d4af6a5d909d886bf602a49sergeyv 1791d6354cde90b6625d4af6a5d909d886bf602a49sergeyv#include "TestSceneBase.h" 1891d6354cde90b6625d4af6a5d909d886bf602a49sergeyv#include "utils/Color.h" 1991d6354cde90b6625d4af6a5d909d886bf602a49sergeyv#include "tests/common/BitmapAllocationTestUtils.h" 2091d6354cde90b6625d4af6a5d909d886bf602a49sergeyv 2191d6354cde90b6625d4af6a5d909d886bf602a49sergeyvclass HwBitmap565; 2291d6354cde90b6625d4af6a5d909d886bf602a49sergeyv 2391d6354cde90b6625d4af6a5d909d886bf602a49sergeyvstatic TestScene::Registrar _HwBitmap565(TestScene::Info{ 2491d6354cde90b6625d4af6a5d909d886bf602a49sergeyv "hwBitmap565", 2591d6354cde90b6625d4af6a5d909d886bf602a49sergeyv "Draws composite shader with hardware bitmap", 2691d6354cde90b6625d4af6a5d909d886bf602a49sergeyv TestScene::simpleCreateScene<HwBitmap565> 2791d6354cde90b6625d4af6a5d909d886bf602a49sergeyv}); 2891d6354cde90b6625d4af6a5d909d886bf602a49sergeyv 2991d6354cde90b6625d4af6a5d909d886bf602a49sergeyvclass HwBitmap565 : public TestScene { 3091d6354cde90b6625d4af6a5d909d886bf602a49sergeyvpublic: 3191d6354cde90b6625d4af6a5d909d886bf602a49sergeyv sp<RenderNode> card; 3291d6354cde90b6625d4af6a5d909d886bf602a49sergeyv void createContent(int width, int height, Canvas& canvas) override { 3391d6354cde90b6625d4af6a5d909d886bf602a49sergeyv canvas.drawColor(Color::Grey_200, SkBlendMode::kSrcOver); 3491d6354cde90b6625d4af6a5d909d886bf602a49sergeyv 3591d6354cde90b6625d4af6a5d909d886bf602a49sergeyv sk_sp<Bitmap> hardwareBitmap = BitmapAllocationTestUtils::allocateHardwareBitmap(200, 200, 3691d6354cde90b6625d4af6a5d909d886bf602a49sergeyv kRGB_565_SkColorType, [](SkBitmap& skBitmap) { 3791d6354cde90b6625d4af6a5d909d886bf602a49sergeyv skBitmap.eraseColor(Color::White); 3891d6354cde90b6625d4af6a5d909d886bf602a49sergeyv SkCanvas skCanvas(skBitmap); 3991d6354cde90b6625d4af6a5d909d886bf602a49sergeyv SkPaint skPaint; 4091d6354cde90b6625d4af6a5d909d886bf602a49sergeyv skPaint.setColor(Color::Red_500); 4191d6354cde90b6625d4af6a5d909d886bf602a49sergeyv skCanvas.drawRect(SkRect::MakeWH(100, 100), skPaint); 4291d6354cde90b6625d4af6a5d909d886bf602a49sergeyv skPaint.setColor(Color::Blue_500); 4391d6354cde90b6625d4af6a5d909d886bf602a49sergeyv skCanvas.drawRect(SkRect::MakeXYWH(100, 100, 100, 100), skPaint); 4491d6354cde90b6625d4af6a5d909d886bf602a49sergeyv }); 4591d6354cde90b6625d4af6a5d909d886bf602a49sergeyv canvas.drawBitmap(*hardwareBitmap, 10.0f, 10.0f, nullptr); 4691d6354cde90b6625d4af6a5d909d886bf602a49sergeyv } 4791d6354cde90b6625d4af6a5d909d886bf602a49sergeyv 4891d6354cde90b6625d4af6a5d909d886bf602a49sergeyv void doFrame(int frameNr) override { } 4991d6354cde90b6625d4af6a5d909d886bf602a49sergeyv};