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