10b7e8245db728d127ada698be63d78b33fc6e4daChris Craik/* 20b7e8245db728d127ada698be63d78b33fc6e4daChris Craik * Copyright (C) 2015 The Android Open Source Project 30b7e8245db728d127ada698be63d78b33fc6e4daChris Craik * 40b7e8245db728d127ada698be63d78b33fc6e4daChris Craik * Licensed under the Apache License, Version 2.0 (the "License"); 50b7e8245db728d127ada698be63d78b33fc6e4daChris Craik * you may not use this file except in compliance with the License. 60b7e8245db728d127ada698be63d78b33fc6e4daChris Craik * You may obtain a copy of the License at 70b7e8245db728d127ada698be63d78b33fc6e4daChris Craik * 80b7e8245db728d127ada698be63d78b33fc6e4daChris Craik * http://www.apache.org/licenses/LICENSE-2.0 90b7e8245db728d127ada698be63d78b33fc6e4daChris Craik * 100b7e8245db728d127ada698be63d78b33fc6e4daChris Craik * Unless required by applicable law or agreed to in writing, software 110b7e8245db728d127ada698be63d78b33fc6e4daChris Craik * distributed under the License is distributed on an "AS IS" BASIS, 120b7e8245db728d127ada698be63d78b33fc6e4daChris Craik * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130b7e8245db728d127ada698be63d78b33fc6e4daChris Craik * See the License for the specific language governing permissions and 140b7e8245db728d127ada698be63d78b33fc6e4daChris Craik * limitations under the License. 150b7e8245db728d127ada698be63d78b33fc6e4daChris Craik */ 160b7e8245db728d127ada698be63d78b33fc6e4daChris Craik 170b7e8245db728d127ada698be63d78b33fc6e4daChris Craik#ifndef ANDROID_HWUI_LAYER_UPDATE_QUEUE_H 180b7e8245db728d127ada698be63d78b33fc6e4daChris Craik#define ANDROID_HWUI_LAYER_UPDATE_QUEUE_H 190b7e8245db728d127ada698be63d78b33fc6e4daChris Craik 200b7e8245db728d127ada698be63d78b33fc6e4daChris Craik#include "Rect.h" 210b7e8245db728d127ada698be63d78b33fc6e4daChris Craik#include "utils/Macros.h" 220b7e8245db728d127ada698be63d78b33fc6e4daChris Craik 230b7e8245db728d127ada698be63d78b33fc6e4daChris Craik#include <vector> 240b7e8245db728d127ada698be63d78b33fc6e4daChris Craik#include <unordered_map> 250b7e8245db728d127ada698be63d78b33fc6e4daChris Craik 260b7e8245db728d127ada698be63d78b33fc6e4daChris Craiknamespace android { 270b7e8245db728d127ada698be63d78b33fc6e4daChris Craiknamespace uirenderer { 280b7e8245db728d127ada698be63d78b33fc6e4daChris Craik 290b7e8245db728d127ada698be63d78b33fc6e4daChris Craikclass RenderNode; 300b7e8245db728d127ada698be63d78b33fc6e4daChris Craik 310b7e8245db728d127ada698be63d78b33fc6e4daChris Craikclass LayerUpdateQueue { 320b7e8245db728d127ada698be63d78b33fc6e4daChris Craik PREVENT_COPY_AND_ASSIGN(LayerUpdateQueue); 330b7e8245db728d127ada698be63d78b33fc6e4daChris Craikpublic: 340b7e8245db728d127ada698be63d78b33fc6e4daChris Craik struct Entry { 350b7e8245db728d127ada698be63d78b33fc6e4daChris Craik Entry(RenderNode* renderNode, const Rect& damage) 360b7e8245db728d127ada698be63d78b33fc6e4daChris Craik : renderNode(renderNode) 370b7e8245db728d127ada698be63d78b33fc6e4daChris Craik , damage(damage) {} 380b7e8245db728d127ada698be63d78b33fc6e4daChris Craik RenderNode* renderNode; 390b7e8245db728d127ada698be63d78b33fc6e4daChris Craik Rect damage; 400b7e8245db728d127ada698be63d78b33fc6e4daChris Craik }; 410b7e8245db728d127ada698be63d78b33fc6e4daChris Craik 420b7e8245db728d127ada698be63d78b33fc6e4daChris Craik LayerUpdateQueue() {} 430b7e8245db728d127ada698be63d78b33fc6e4daChris Craik void enqueueLayerWithDamage(RenderNode* renderNode, Rect dirty); 440b7e8245db728d127ada698be63d78b33fc6e4daChris Craik void clear(); 45b250a834e433b4f483e8d8362a6fda8d6594c7b8Chris Craik const std::vector<Entry>& entries() const { return mEntries; } 460b7e8245db728d127ada698be63d78b33fc6e4daChris Craikprivate: 470b7e8245db728d127ada698be63d78b33fc6e4daChris Craik std::vector<Entry> mEntries; 480b7e8245db728d127ada698be63d78b33fc6e4daChris Craik}; 490b7e8245db728d127ada698be63d78b33fc6e4daChris Craik 500b7e8245db728d127ada698be63d78b33fc6e4daChris Craik}; // namespace uirenderer 510b7e8245db728d127ada698be63d78b33fc6e4daChris Craik}; // namespace android 520b7e8245db728d127ada698be63d78b33fc6e4daChris Craik 530b7e8245db728d127ada698be63d78b33fc6e4daChris Craik#endif // ANDROID_HWUI_LAYER_UPDATE_QUEUE_H 54