hle: nvflinger: Move PixelFormat to its own header.
This commit is contained in:
parent
5a8b9a9706
commit
d456b9d554
11 changed files with 50 additions and 33 deletions
|
@ -539,6 +539,7 @@ add_library(core STATIC
|
|||
hle/service/nvflinger/buffer_queue.h
|
||||
hle/service/nvflinger/nvflinger.cpp
|
||||
hle/service/nvflinger/nvflinger.h
|
||||
hle/service/nvflinger/pixel_format.h
|
||||
hle/service/nvflinger/status.h
|
||||
hle/service/nvflinger/ui/fence.h
|
||||
hle/service/nvflinger/ui/graphic_buffer.h
|
||||
|
|
|
@ -38,18 +38,16 @@ NvResult nvdisp_disp0::Ioctl3(DeviceFD fd, Ioctl command, const std::vector<u8>&
|
|||
void nvdisp_disp0::OnOpen(DeviceFD fd) {}
|
||||
void nvdisp_disp0::OnClose(DeviceFD fd) {}
|
||||
|
||||
void nvdisp_disp0::flip(u32 buffer_handle, u32 offset, u32 format, u32 width, u32 height,
|
||||
u32 stride, NVFlinger::BufferQueue::BufferTransformFlags transform,
|
||||
void nvdisp_disp0::flip(u32 buffer_handle, u32 offset, android::PixelFormat format, u32 width,
|
||||
u32 height, u32 stride, android::BufferTransformFlags transform,
|
||||
const Common::Rectangle<int>& crop_rect) {
|
||||
const VAddr addr = nvmap_dev->GetObjectAddress(buffer_handle);
|
||||
LOG_TRACE(Service,
|
||||
"Drawing from address {:X} offset {:08X} Width {} Height {} Stride {} Format {}",
|
||||
addr, offset, width, height, stride, format);
|
||||
|
||||
const auto pixel_format = static_cast<Tegra::FramebufferConfig::PixelFormat>(format);
|
||||
const auto transform_flags = static_cast<Tegra::FramebufferConfig::TransformFlags>(transform);
|
||||
const Tegra::FramebufferConfig framebuffer{addr, offset, width, height,
|
||||
stride, pixel_format, transform_flags, crop_rect};
|
||||
const Tegra::FramebufferConfig framebuffer{addr, offset, width, height,
|
||||
stride, format, transform, crop_rect};
|
||||
|
||||
system.GetPerfStats().EndSystemFrame();
|
||||
system.GPU().SwapBuffers(&framebuffer);
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#include "common/math_util.h"
|
||||
#include "core/hle/service/nvdrv/devices/nvdevice.h"
|
||||
#include "core/hle/service/nvflinger/buffer_queue.h"
|
||||
#include "core/hle/service/nvflinger/pixel_format.h"
|
||||
|
||||
namespace Service::Nvidia::Devices {
|
||||
|
||||
|
@ -31,8 +32,8 @@ public:
|
|||
void OnClose(DeviceFD fd) override;
|
||||
|
||||
/// Performs a screen flip, drawing the buffer pointed to by the handle.
|
||||
void flip(u32 buffer_handle, u32 offset, u32 format, u32 width, u32 height, u32 stride,
|
||||
NVFlinger::BufferQueue::BufferTransformFlags transform,
|
||||
void flip(u32 buffer_handle, u32 offset, android::PixelFormat format, u32 width, u32 height,
|
||||
u32 stride, android::BufferTransformFlags transform,
|
||||
const Common::Rectangle<int>& crop_rect);
|
||||
|
||||
private:
|
||||
|
|
21
src/core/hle/service/nvflinger/pixel_format.h
Normal file
21
src/core/hle/service/nvflinger/pixel_format.h
Normal file
|
@ -0,0 +1,21 @@
|
|||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
// Copyright 2021 yuzu Emulator Project
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "common/common_types.h"
|
||||
|
||||
namespace android {
|
||||
|
||||
enum class PixelFormat : u32 {
|
||||
NoFormat = 0,
|
||||
Rgba8888 = 1,
|
||||
Rgbx8888 = 2,
|
||||
Rgb888 = 3,
|
||||
Rgb565 = 4,
|
||||
Bgra8888 = 5,
|
||||
Rgba5551 = 6,
|
||||
Rgba4444 = 7,
|
||||
};
|
||||
|
||||
} // namespace android
|
|
@ -44,7 +44,7 @@ public:
|
|||
return buffer_id;
|
||||
}
|
||||
|
||||
constexpr u32 ExternalFormat() const {
|
||||
constexpr PixelFormat ExternalFormat() const {
|
||||
return external_format;
|
||||
}
|
||||
|
||||
|
@ -89,7 +89,7 @@ private:
|
|||
INSERT_PADDING_WORDS(3);
|
||||
u32 buffer_id{};
|
||||
INSERT_PADDING_WORDS(6);
|
||||
u32 external_format{};
|
||||
PixelFormat external_format{};
|
||||
INSERT_PADDING_WORDS(10);
|
||||
u32 handle{};
|
||||
u32 offset{};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue