Loading libs/hwui/hwui/Bitmap.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -106,6 +106,8 @@ static PixelFormat internalFormatToPixelFormat(GLint internalFormat) { return PIXEL_FORMAT_RGBA_8888; case GL_RGBA: return PIXEL_FORMAT_RGBA_8888; case GL_RGB: return PIXEL_FORMAT_RGB_565; default: LOG_ALWAYS_FATAL("Unsupported bitmap colorType: %d", internalFormat); return PIXEL_FORMAT_UNKNOWN; Loading libs/hwui/tests/common/BitmapAllocationTestUtils.h +3 −1 Original line number Diff line number Diff line Loading @@ -39,7 +39,9 @@ public: static sk_sp<Bitmap> allocateHardwareBitmap(int width, int height, SkColorType colorType, std::function<void(SkBitmap& bitmap)> setup) { SkBitmap skBitmap; sk_sp<Bitmap> heapBitmap(TestUtils::createBitmap(width, height, &skBitmap)); SkImageInfo info = SkImageInfo::Make(width, height, colorType, kPremul_SkAlphaType); skBitmap.setInfo(info); sk_sp<Bitmap> heapBitmap(Bitmap::allocateHeapBitmap(&skBitmap, nullptr)); setup(skBitmap); return Bitmap::allocateHardwareBitmap(skBitmap); } Loading libs/hwui/tests/common/scenes/HwBitmap565.cpp 0 → 100644 +49 −0 Original line number Diff line number Diff line /* * Copyright (C) 2016 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. */ #include "TestSceneBase.h" #include "utils/Color.h" #include "tests/common/BitmapAllocationTestUtils.h" class HwBitmap565; static TestScene::Registrar _HwBitmap565(TestScene::Info{ "hwBitmap565", "Draws composite shader with hardware bitmap", TestScene::simpleCreateScene<HwBitmap565> }); class HwBitmap565 : public TestScene { public: sp<RenderNode> card; void createContent(int width, int height, Canvas& canvas) override { canvas.drawColor(Color::Grey_200, SkBlendMode::kSrcOver); sk_sp<Bitmap> hardwareBitmap = BitmapAllocationTestUtils::allocateHardwareBitmap(200, 200, kRGB_565_SkColorType, [](SkBitmap& skBitmap) { skBitmap.eraseColor(Color::White); SkCanvas skCanvas(skBitmap); SkPaint skPaint; skPaint.setColor(Color::Red_500); skCanvas.drawRect(SkRect::MakeWH(100, 100), skPaint); skPaint.setColor(Color::Blue_500); skCanvas.drawRect(SkRect::MakeXYWH(100, 100, 100, 100), skPaint); }); canvas.drawBitmap(*hardwareBitmap, 10.0f, 10.0f, nullptr); } void doFrame(int frameNr) override { } }; No newline at end of file Loading
libs/hwui/hwui/Bitmap.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -106,6 +106,8 @@ static PixelFormat internalFormatToPixelFormat(GLint internalFormat) { return PIXEL_FORMAT_RGBA_8888; case GL_RGBA: return PIXEL_FORMAT_RGBA_8888; case GL_RGB: return PIXEL_FORMAT_RGB_565; default: LOG_ALWAYS_FATAL("Unsupported bitmap colorType: %d", internalFormat); return PIXEL_FORMAT_UNKNOWN; Loading
libs/hwui/tests/common/BitmapAllocationTestUtils.h +3 −1 Original line number Diff line number Diff line Loading @@ -39,7 +39,9 @@ public: static sk_sp<Bitmap> allocateHardwareBitmap(int width, int height, SkColorType colorType, std::function<void(SkBitmap& bitmap)> setup) { SkBitmap skBitmap; sk_sp<Bitmap> heapBitmap(TestUtils::createBitmap(width, height, &skBitmap)); SkImageInfo info = SkImageInfo::Make(width, height, colorType, kPremul_SkAlphaType); skBitmap.setInfo(info); sk_sp<Bitmap> heapBitmap(Bitmap::allocateHeapBitmap(&skBitmap, nullptr)); setup(skBitmap); return Bitmap::allocateHardwareBitmap(skBitmap); } Loading
libs/hwui/tests/common/scenes/HwBitmap565.cpp 0 → 100644 +49 −0 Original line number Diff line number Diff line /* * Copyright (C) 2016 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. */ #include "TestSceneBase.h" #include "utils/Color.h" #include "tests/common/BitmapAllocationTestUtils.h" class HwBitmap565; static TestScene::Registrar _HwBitmap565(TestScene::Info{ "hwBitmap565", "Draws composite shader with hardware bitmap", TestScene::simpleCreateScene<HwBitmap565> }); class HwBitmap565 : public TestScene { public: sp<RenderNode> card; void createContent(int width, int height, Canvas& canvas) override { canvas.drawColor(Color::Grey_200, SkBlendMode::kSrcOver); sk_sp<Bitmap> hardwareBitmap = BitmapAllocationTestUtils::allocateHardwareBitmap(200, 200, kRGB_565_SkColorType, [](SkBitmap& skBitmap) { skBitmap.eraseColor(Color::White); SkCanvas skCanvas(skBitmap); SkPaint skPaint; skPaint.setColor(Color::Red_500); skCanvas.drawRect(SkRect::MakeWH(100, 100), skPaint); skPaint.setColor(Color::Blue_500); skCanvas.drawRect(SkRect::MakeXYWH(100, 100, 100, 100), skPaint); }); canvas.drawBitmap(*hardwareBitmap, 10.0f, 10.0f, nullptr); } void doFrame(int frameNr) override { } }; No newline at end of file