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#include <sstream>
18bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall
19bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall#include "Hwc2TestVirtualDisplay.h"
20bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall
21bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa WallHwc2TestVirtualDisplay::Hwc2TestVirtualDisplay(
22bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall        Hwc2TestCoverage coverage)
23bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall    : mDisplayDimension(coverage)
24bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall{
25bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall    mDisplayDimension.setDependent(&mBuffer);
26bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall}
27bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall
28bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wallstd::string Hwc2TestVirtualDisplay::dump() const
29bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall{
30bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall    std::stringstream dmp;
31bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall
32bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall    dmp << "virtual display: \n";
33bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall
34bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall    mDisplayDimension.dump();
35bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall
36bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall    return dmp.str();
37bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall}
38bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall
39bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wallint Hwc2TestVirtualDisplay::getBuffer(buffer_handle_t* outHandle,
40bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall        android::base::unique_fd* outAcquireFence)
41bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall{
42bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall    int32_t acquireFence;
43bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall    int ret = mBuffer.get(outHandle, &acquireFence);
44bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall    outAcquireFence->reset(acquireFence);
45bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall    return ret;
46bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall}
47bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall
48bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wallvoid Hwc2TestVirtualDisplay::reset()
49bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall{
50bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall    return mDisplayDimension.reset();
51bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall}
52bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall
53bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wallbool Hwc2TestVirtualDisplay::advance()
54bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall{
55bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall    return mDisplayDimension.advance();
56bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall}
57bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall
58bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa WallUnsignedArea Hwc2TestVirtualDisplay::getDisplayDimension() const
59bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall{
60bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall    return mDisplayDimension.get();
61bad1bc78ef50648fadbe725a1fe1c28d62097351Marissa Wall}
62