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