LeakCheckTests.cpp revision 7db5ffb7dbd30202468459e2ef4426e91d4fcbb3
17db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck/* 27db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck * Copyright (C) 2016 The Android Open Source Project 37db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck * 47db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck * Licensed under the Apache License, Version 2.0 (the "License"); 57db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck * you may not use this file except in compliance with the License. 67db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck * You may obtain a copy of the License at 77db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck * 87db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck * http://www.apache.org/licenses/LICENSE-2.0 97db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck * 107db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck * Unless required by applicable law or agreed to in writing, software 117db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck * distributed under the License is distributed on an "AS IS" BASIS, 127db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck * See the License for the specific language governing permissions and 147db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck * limitations under the License. 157db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck */ 167db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck 177db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck#include "BakedOpRenderer.h" 187db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck#include "BakedOpDispatcher.h" 197db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck#include "FrameBuilder.h" 207db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck#include "LayerUpdateQueue.h" 217db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck#include "RecordingCanvas.h" 227db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck#include "tests/common/TestUtils.h" 237db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck 247db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck#include <gtest/gtest.h> 257db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck 267db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reckusing namespace android; 277db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reckusing namespace android::uirenderer; 287db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck 297db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reckconst LayerUpdateQueue sEmptyLayerUpdateQueue; 307db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reckconst Vector3 sLightCenter = {100, 100, 100}; 317db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck 327db5ffb7dbd30202468459e2ef4426e91d4fcbb3John ReckRENDERTHREAD_TEST(LeakCheck, saveLayerUnclipped_simple) { 337db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck auto node = TestUtils::createNode(0, 0, 200, 200, 347db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck [](RenderProperties& props, RecordingCanvas& canvas) { 357db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck canvas.saveLayerAlpha(10, 10, 190, 190, 128, (SkCanvas::SaveFlags)(0)); 367db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck canvas.drawRect(0, 0, 200, 200, SkPaint()); 377db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck canvas.restore(); 387db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck }); 397db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck BakedOpRenderer::LightInfo lightInfo = {50.0f, 128, 128}; 407db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck RenderState& renderState = renderThread.renderState(); 417db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck Caches& caches = Caches::getInstance(); 427db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck 437db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck FrameBuilder frameBuilder(sEmptyLayerUpdateQueue, SkRect::MakeWH(200, 200), 200, 200, 447db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck TestUtils::createSyncedNodeList(node), sLightCenter); 457db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck BakedOpRenderer renderer(caches, renderState, true, lightInfo); 467db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck frameBuilder.replayBakedOps<BakedOpDispatcher>(renderer); 477db5ffb7dbd30202468459e2ef4426e91d4fcbb3John Reck} 48