1bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall/*
2bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall * Copyright (C) 2016 The Android Open Source Project
3bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall *
4bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall * Licensed under the Apache License, Version 2.0 (the "License");
5bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall * you may not use this file except in compliance with the License.
6bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall * You may obtain a copy of the License at
7bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall *
8bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall *      http://www.apache.org/licenses/LICENSE-2.0
9bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall *
10bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall * Unless required by applicable law or agreed to in writing, software
11bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall * distributed under the License is distributed on an "AS IS" BASIS,
12bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall * See the License for the specific language governing permissions and
14bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall * limitations under the License.
15bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall */
16bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall
17bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall#ifndef _HWC2_TEST_VIRTUAL_DISPLAY_H
18bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall#define _HWC2_TEST_VIRTUAL_DISPLAY_H
19bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall
20bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall#include "Hwc2TestBuffer.h"
21bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall#include "Hwc2TestProperties.h"
22bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall
23bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall#define HWC2_INCLUDE_STRINGIFICATION
24bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall#define HWC2_USE_CPP11
25bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall#include <hardware/hwcomposer2.h>
26bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall#undef HWC2_INCLUDE_STRINGIFICATION
27bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall#undef HWC2_USE_CPP11
28bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall
29bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wallclass Hwc2TestVirtualDisplay {
30bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wallpublic:
31bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall    Hwc2TestVirtualDisplay(Hwc2TestCoverage coverage);
32bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall
33bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall    std::string dump() const;
34bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall
35bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall    int getBuffer(buffer_handle_t* outHandle,
36bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall            android::base::unique_fd* outAcquireFence);
37bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall
38bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall    void reset();
39bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall    bool advance();
40bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall
41bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall    UnsignedArea getDisplayDimension() const;
42bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall
43bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wallprivate:
44bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall    Hwc2TestBuffer mBuffer;
45bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall
46bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall    Hwc2TestDisplayDimension mDisplayDimension;
47bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall};
48bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall
49bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall#endif /* ifndef _HWC2_TEST_VIRTUAL_DISPLAY_H */
50