1cdf832043afeb74598d64f8689098ae75dad8731Robert Carr/* 2cdf832043afeb74598d64f8689098ae75dad8731Robert Carr * Copyright (C) 2018 The Android Open Source Project 3cdf832043afeb74598d64f8689098ae75dad8731Robert Carr * 4cdf832043afeb74598d64f8689098ae75dad8731Robert Carr * Licensed under the Apache License, Version 2.0 (the "License"); 5cdf832043afeb74598d64f8689098ae75dad8731Robert Carr * you may not use this file except in compliance with the License. 6cdf832043afeb74598d64f8689098ae75dad8731Robert Carr * You may obtain a copy of the License at 7cdf832043afeb74598d64f8689098ae75dad8731Robert Carr * 8cdf832043afeb74598d64f8689098ae75dad8731Robert Carr * http://www.apache.org/licenses/LICENSE-2.0 9cdf832043afeb74598d64f8689098ae75dad8731Robert Carr * 10cdf832043afeb74598d64f8689098ae75dad8731Robert Carr * Unless required by applicable law or agreed to in writing, software 11cdf832043afeb74598d64f8689098ae75dad8731Robert Carr * distributed under the License is distributed on an "AS IS" BASIS, 12cdf832043afeb74598d64f8689098ae75dad8731Robert Carr * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13cdf832043afeb74598d64f8689098ae75dad8731Robert Carr * See the License for the specific language governing permissions and 14cdf832043afeb74598d64f8689098ae75dad8731Robert Carr * limitations under the License. 15cdf832043afeb74598d64f8689098ae75dad8731Robert Carr */ 16cdf832043afeb74598d64f8689098ae75dad8731Robert Carr#pragma once 17cdf832043afeb74598d64f8689098ae75dad8731Robert Carr 18cdf832043afeb74598d64f8689098ae75dad8731Robert Carr#include <sys/types.h> 19cdf832043afeb74598d64f8689098ae75dad8731Robert Carr 20cdf832043afeb74598d64f8689098ae75dad8731Robert Carr#include <cstdint> 21cdf832043afeb74598d64f8689098ae75dad8731Robert Carr 22cdf832043afeb74598d64f8689098ae75dad8731Robert Carr#include "Layer.h" 23cdf832043afeb74598d64f8689098ae75dad8731Robert Carr 24cdf832043afeb74598d64f8689098ae75dad8731Robert Carrnamespace android { 25cdf832043afeb74598d64f8689098ae75dad8731Robert Carr 26578038fc49f83c4c8c4accdce49df404ecd6ad02Robert Carrclass ContainerLayer : public Layer { 27cdf832043afeb74598d64f8689098ae75dad8731Robert Carrpublic: 28578038fc49f83c4c8c4accdce49df404ecd6ad02Robert Carr ContainerLayer(SurfaceFlinger* flinger, const sp<Client>& client, const String8& name, 29578038fc49f83c4c8c4accdce49df404ecd6ad02Robert Carr uint32_t w, uint32_t h, uint32_t flags); 30578038fc49f83c4c8c4accdce49df404ecd6ad02Robert Carr virtual ~ContainerLayer() = default; 31cdf832043afeb74598d64f8689098ae75dad8731Robert Carr 32578038fc49f83c4c8c4accdce49df404ecd6ad02Robert Carr const char* getTypeId() const override { return "ContainerLayer"; } 33cdf832043afeb74598d64f8689098ae75dad8731Robert Carr void onDraw(const RenderArea& renderArea, const Region& clip, 34cdf832043afeb74598d64f8689098ae75dad8731Robert Carr bool useIdentityTransform) const override; 35cdf832043afeb74598d64f8689098ae75dad8731Robert Carr bool isVisible() const override; 36cdf832043afeb74598d64f8689098ae75dad8731Robert Carr 37cdf832043afeb74598d64f8689098ae75dad8731Robert Carr void setPerFrameData(const sp<const DisplayDevice>& displayDevice) override; 38cdf832043afeb74598d64f8689098ae75dad8731Robert Carr}; 39cdf832043afeb74598d64f8689098ae75dad8731Robert Carr 40cdf832043afeb74598d64f8689098ae75dad8731Robert Carr} // namespace android 41