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
|
@ -6,18 +6,14 @@
|
|||
|
||||
#include "common/common_types.h"
|
||||
#include "common/math_util.h"
|
||||
#include "core/hle/service/nvflinger/pixel_format.h"
|
||||
|
||||
namespace Tegra {
|
||||
|
||||
/**
|
||||
* Struct describing framebuffer configuration
|
||||
*/
|
||||
struct FramebufferConfig {
|
||||
enum class PixelFormat : u32 {
|
||||
A8B8G8R8_UNORM = 1,
|
||||
RGB565_UNORM = 4,
|
||||
B8G8R8A8_UNORM = 5,
|
||||
};
|
||||
|
||||
enum class TransformFlags : u32 {
|
||||
/// No transform flags are set
|
||||
Unset = 0x00,
|
||||
|
@ -38,9 +34,9 @@ struct FramebufferConfig {
|
|||
u32 width{};
|
||||
u32 height{};
|
||||
u32 stride{};
|
||||
PixelFormat pixel_format{};
|
||||
|
||||
TransformFlags transform_flags{};
|
||||
android::PixelFormat pixel_format{};
|
||||
Common::Rectangle<int> crop_rect;
|
||||
};
|
||||
|
||||
|
|
|
@ -323,12 +323,12 @@ void RendererOpenGL::ConfigureFramebufferTexture(TextureInfo& texture,
|
|||
|
||||
GLint internal_format;
|
||||
switch (framebuffer.pixel_format) {
|
||||
case Tegra::FramebufferConfig::PixelFormat::A8B8G8R8_UNORM:
|
||||
case android::PixelFormat::Rgba8888:
|
||||
internal_format = GL_RGBA8;
|
||||
texture.gl_format = GL_RGBA;
|
||||
texture.gl_type = GL_UNSIGNED_INT_8_8_8_8_REV;
|
||||
break;
|
||||
case Tegra::FramebufferConfig::PixelFormat::RGB565_UNORM:
|
||||
case android::PixelFormat::Rgb565:
|
||||
internal_format = GL_RGB565;
|
||||
texture.gl_format = GL_RGB;
|
||||
texture.gl_type = GL_UNSIGNED_SHORT_5_6_5;
|
||||
|
@ -464,8 +464,8 @@ void RendererOpenGL::DrawScreen(const Layout::FramebufferLayout& layout) {
|
|||
const auto& texcoords = screen_info.display_texcoords;
|
||||
auto left = texcoords.left;
|
||||
auto right = texcoords.right;
|
||||
if (framebuffer_transform_flags != Tegra::FramebufferConfig::TransformFlags::Unset) {
|
||||
if (framebuffer_transform_flags == Tegra::FramebufferConfig::TransformFlags::FlipV) {
|
||||
if (framebuffer_transform_flags != android::BufferTransformFlags::Unset) {
|
||||
if (framebuffer_transform_flags == android::BufferTransformFlags::FlipV) {
|
||||
// Flip the framebuffer vertically
|
||||
left = texcoords.right;
|
||||
right = texcoords.left;
|
||||
|
|
|
@ -46,7 +46,7 @@ struct TextureInfo {
|
|||
GLsizei height;
|
||||
GLenum gl_format;
|
||||
GLenum gl_type;
|
||||
Tegra::FramebufferConfig::PixelFormat pixel_format;
|
||||
android::PixelFormat pixel_format;
|
||||
};
|
||||
|
||||
/// Structure used for storing information about the display target for the Switch screen
|
||||
|
@ -135,7 +135,7 @@ private:
|
|||
std::vector<u8> gl_framebuffer_data;
|
||||
|
||||
/// Used for transforming the framebuffer orientation
|
||||
Tegra::FramebufferConfig::TransformFlags framebuffer_transform_flags{};
|
||||
android::BufferTransformFlags framebuffer_transform_flags{};
|
||||
Common::Rectangle<int> framebuffer_crop_rect;
|
||||
};
|
||||
|
||||
|
|
|
@ -94,11 +94,11 @@ std::size_t GetSizeInBytes(const Tegra::FramebufferConfig& framebuffer) {
|
|||
|
||||
VkFormat GetFormat(const Tegra::FramebufferConfig& framebuffer) {
|
||||
switch (framebuffer.pixel_format) {
|
||||
case Tegra::FramebufferConfig::PixelFormat::A8B8G8R8_UNORM:
|
||||
case android::PixelFormat::Rgba8888:
|
||||
return VK_FORMAT_A8B8G8R8_UNORM_PACK32;
|
||||
case Tegra::FramebufferConfig::PixelFormat::RGB565_UNORM:
|
||||
case android::PixelFormat::Rgb565:
|
||||
return VK_FORMAT_R5G6B5_UNORM_PACK16;
|
||||
case Tegra::FramebufferConfig::PixelFormat::B8G8R8A8_UNORM:
|
||||
case android::PixelFormat::Bgra8888:
|
||||
return VK_FORMAT_B8G8R8A8_UNORM;
|
||||
default:
|
||||
UNIMPLEMENTED_MSG("Unknown framebuffer pixel format: {}",
|
||||
|
@ -1390,9 +1390,9 @@ void VKBlitScreen::SetVertexData(BufferData& data, const Tegra::FramebufferConfi
|
|||
auto right = texcoords.right;
|
||||
|
||||
switch (framebuffer_transform_flags) {
|
||||
case Tegra::FramebufferConfig::TransformFlags::Unset:
|
||||
case android::BufferTransformFlags::Unset:
|
||||
break;
|
||||
case Tegra::FramebufferConfig::TransformFlags::FlipV:
|
||||
case android::BufferTransformFlags::FlipV:
|
||||
// Flip the framebuffer vertically
|
||||
left = texcoords.right;
|
||||
right = texcoords.left;
|
||||
|
|
|
@ -190,13 +190,13 @@ PixelFormat PixelFormatFromRenderTargetFormat(Tegra::RenderTargetFormat format)
|
|||
}
|
||||
}
|
||||
|
||||
PixelFormat PixelFormatFromGPUPixelFormat(Tegra::FramebufferConfig::PixelFormat format) {
|
||||
PixelFormat PixelFormatFromGPUPixelFormat(android::PixelFormat format) {
|
||||
switch (format) {
|
||||
case Tegra::FramebufferConfig::PixelFormat::A8B8G8R8_UNORM:
|
||||
case android::PixelFormat::Rgba8888:
|
||||
return PixelFormat::A8B8G8R8_UNORM;
|
||||
case Tegra::FramebufferConfig::PixelFormat::RGB565_UNORM:
|
||||
case android::PixelFormat::Rgb565:
|
||||
return PixelFormat::R5G6B5_UNORM;
|
||||
case Tegra::FramebufferConfig::PixelFormat::B8G8R8A8_UNORM:
|
||||
case android::PixelFormat::Bgra8888:
|
||||
return PixelFormat::B8G8R8A8_UNORM;
|
||||
default:
|
||||
UNIMPLEMENTED_MSG("Unimplemented format={}", format);
|
||||
|
|
|
@ -460,7 +460,7 @@ PixelFormat PixelFormatFromDepthFormat(Tegra::DepthFormat format);
|
|||
|
||||
PixelFormat PixelFormatFromRenderTargetFormat(Tegra::RenderTargetFormat format);
|
||||
|
||||
PixelFormat PixelFormatFromGPUPixelFormat(Tegra::FramebufferConfig::PixelFormat format);
|
||||
PixelFormat PixelFormatFromGPUPixelFormat(android::PixelFormat format);
|
||||
|
||||
SurfaceType GetFormatType(PixelFormat pixel_format);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue