|
|
@ -0,0 +1,39 @@ |
|
|
|
|
|
// SPDX-License-Identifier: GPL-3.0-or-later |
|
|
|
|
|
// Copyright 2021 yuzu Emulator Project |
|
|
|
|
|
// Copyright 2014 The Android Open Source Project |
|
|
|
|
|
// Parts of this implementation were base on: |
|
|
|
|
|
// https://cs.android.com/android/platform/superproject/+/android-5.1.1_r38:frameworks/native/include/gui/BufferSlot.h |
|
|
|
|
|
|
|
|
|
|
|
#pragma once |
|
|
|
|
|
|
|
|
|
|
|
#include <memory> |
|
|
|
|
|
|
|
|
|
|
|
#include "common/common_types.h" |
|
|
|
|
|
#include "core/hle/service/nvflinger/ui/fence.h" |
|
|
|
|
|
|
|
|
|
|
|
namespace android { |
|
|
|
|
|
|
|
|
|
|
|
class GraphicBuffer; |
|
|
|
|
|
|
|
|
|
|
|
enum class BufferState : u32 { |
|
|
|
|
|
Free = 0, |
|
|
|
|
|
Dequeued = 1, |
|
|
|
|
|
Queued = 2, |
|
|
|
|
|
Acquired = 3, |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
struct BufferSlot final { |
|
|
|
|
|
constexpr BufferSlot() = default; |
|
|
|
|
|
|
|
|
|
|
|
std::shared_ptr<GraphicBuffer> graphic_buffer; |
|
|
|
|
|
BufferState buffer_state{BufferState::Free}; |
|
|
|
|
|
bool request_buffer_called{}; |
|
|
|
|
|
u64 frame_number{}; |
|
|
|
|
|
Fence fence; |
|
|
|
|
|
bool acquire_called{}; |
|
|
|
|
|
bool needs_cleanup_on_release{}; |
|
|
|
|
|
bool attached_by_consumer{}; |
|
|
|
|
|
bool is_preallocated{}; |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
} // namespace android |