summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/nvnflinger/ui/fence.h
blob: 177aed7580dee63c58eca587ad44bec605ec0b27 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
// SPDX-FileCopyrightText: Copyright 2012 The Android Open Source Project
// SPDX-License-Identifier: GPL-3.0-or-later
// Parts of this implementation were based on:
// https://cs.android.com/android/platform/superproject/+/android-5.1.1_r38:frameworks/native/include/ui/Fence.h

#pragma once

#include <array>

#include "common/common_types.h"
#include "core/hle/service/nvdrv/nvdata.h"

namespace Service::android {

class Fence {
public:
    constexpr Fence() = default;

    static constexpr Fence NoFence() {
        Fence fence;
        fence.fences[0].id = -1;
        fence.fences[1].id = -1;
        fence.fences[2].id = -1;
        fence.fences[3].id = -1;
        return fence;
    }

public:
    u32 num_fences{};
    std::array<Service::Nvidia::NvFence, 4> fences{};
};
static_assert(sizeof(Fence) == 36, "Fence has wrong size");

} // namespace Service::android