|
|
|
@ -0,0 +1,46 @@ |
|
|
|
// 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/BufferItem.h |
|
|
|
|
|
|
|
#pragma once |
|
|
|
|
|
|
|
#include <memory> |
|
|
|
|
|
|
|
#include "common/common_types.h" |
|
|
|
#include "core/hle/service/nvflinger/ui/fence.h" |
|
|
|
#include "core/hle/service/nvflinger/ui/rect.h" |
|
|
|
#include "core/hle/service/nvflinger/window.h" |
|
|
|
|
|
|
|
namespace android { |
|
|
|
|
|
|
|
class GraphicBuffer; |
|
|
|
|
|
|
|
class BufferItem final { |
|
|
|
public: |
|
|
|
constexpr BufferItem() = default; |
|
|
|
|
|
|
|
std::shared_ptr<GraphicBuffer> graphic_buffer; |
|
|
|
Fence fence; |
|
|
|
Rect crop; |
|
|
|
NativeWindowTransform transform{}; |
|
|
|
u32 scaling_mode{}; |
|
|
|
s64 timestamp{}; |
|
|
|
bool is_auto_timestamp{}; |
|
|
|
u64 frame_number{}; |
|
|
|
|
|
|
|
// The default value for buf, used to indicate this doesn't correspond to a slot. |
|
|
|
static constexpr s32 INVALID_BUFFER_SLOT = -1; |
|
|
|
union { |
|
|
|
s32 slot{INVALID_BUFFER_SLOT}; |
|
|
|
s32 buf; |
|
|
|
}; |
|
|
|
|
|
|
|
bool is_droppable{}; |
|
|
|
bool acquire_called{}; |
|
|
|
bool transform_to_display_inverse{}; |
|
|
|
s32 swap_interval{}; |
|
|
|
}; |
|
|
|
|
|
|
|
} // namespace android |