LeakCheckTests.cpp revision 7db5ffb7dbd30202468459e2ef4426e91d4fcbb3
1/* 2 * Copyright (C) 2016 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#include "BakedOpRenderer.h" 18#include "BakedOpDispatcher.h" 19#include "FrameBuilder.h" 20#include "LayerUpdateQueue.h" 21#include "RecordingCanvas.h" 22#include "tests/common/TestUtils.h" 23 24#include <gtest/gtest.h> 25 26using namespace android; 27using namespace android::uirenderer; 28 29const LayerUpdateQueue sEmptyLayerUpdateQueue; 30const Vector3 sLightCenter = {100, 100, 100}; 31 32RENDERTHREAD_TEST(LeakCheck, saveLayerUnclipped_simple) { 33 auto node = TestUtils::createNode(0, 0, 200, 200, 34 [](RenderProperties& props, RecordingCanvas& canvas) { 35 canvas.saveLayerAlpha(10, 10, 190, 190, 128, (SkCanvas::SaveFlags)(0)); 36 canvas.drawRect(0, 0, 200, 200, SkPaint()); 37 canvas.restore(); 38 }); 39 BakedOpRenderer::LightInfo lightInfo = {50.0f, 128, 128}; 40 RenderState& renderState = renderThread.renderState(); 41 Caches& caches = Caches::getInstance(); 42 43 FrameBuilder frameBuilder(sEmptyLayerUpdateQueue, SkRect::MakeWH(200, 200), 200, 200, 44 TestUtils::createSyncedNodeList(node), sLightCenter); 45 BakedOpRenderer renderer(caches, renderState, true, lightInfo); 46 frameBuilder.replayBakedOps<BakedOpDispatcher>(renderer); 47} 48