mirror of
https://github.com/switchbrew/libnx.git
synced 2025-06-21 12:32:40 +02:00
Add NvColorFormat enum
This commit is contained in:
parent
b1600c9add
commit
f381066a43
@ -5,7 +5,7 @@
|
||||
typedef struct {
|
||||
u32 width;
|
||||
u32 height;
|
||||
u64 color_format;
|
||||
NvColorFormat color_format;
|
||||
NvLayout layout;
|
||||
u32 pitch;
|
||||
u32 unused; // usually this field contains the nvmap handle, but it's completely unused/overwritten during marshalling
|
||||
|
@ -249,3 +249,233 @@ typedef enum {
|
||||
NvKind_Generic_16BX2 = 0xfe,
|
||||
NvKind_Invalid = 0xff,
|
||||
} NvKind;
|
||||
|
||||
typedef enum {
|
||||
NvColorFormat_Unspecified = 0x0000000000UL,
|
||||
NvColorFormat_NonColor8 = 0x0009200408UL,
|
||||
NvColorFormat_X4C4 = 0x0009200A10UL,
|
||||
NvColorFormat_NonColor32 = 0x0100490508UL,
|
||||
NvColorFormat_A8L8 = 0x0100490E10UL,
|
||||
NvColorFormat_Float_A16L16 = 0x0100495D20UL,
|
||||
NvColorFormat_A1B5G5R5 = 0x0100531410UL,
|
||||
NvColorFormat_A4B4G4R4 = 0x0100531510UL,
|
||||
NvColorFormat_A5B5G5R1 = 0x0100531810UL,
|
||||
NvColorFormat_A2B10G10R10 = 0x0100532020UL,
|
||||
NvColorFormat_A8B8G8R8 = 0x0100532120UL,
|
||||
NvColorFormat_A16B16G16R16 = 0x0100532740UL,
|
||||
NvColorFormat_Float_A16B16G16R16 = 0x0100536740UL,
|
||||
NvColorFormat_A1R5G5B5 = 0x0100D11410UL,
|
||||
NvColorFormat_A4R4G4B4 = 0x0100D11510UL,
|
||||
NvColorFormat_A5R1G5B5 = 0x0100D11610UL,
|
||||
NvColorFormat_A2R10G10B10 = 0x0100D12020UL,
|
||||
NvColorFormat_A8R8G8B8 = 0x0100D12120UL,
|
||||
NvColorFormat_A1 = 0x0101240101UL,
|
||||
NvColorFormat_A2 = 0x0101240202UL,
|
||||
NvColorFormat_A4 = 0x0101240304UL,
|
||||
NvColorFormat_A8 = 0x0101240408UL,
|
||||
NvColorFormat_A16 = 0x0101240A10UL,
|
||||
NvColorFormat_A32 = 0x0101241C20UL,
|
||||
NvColorFormat_Float_A16 = 0x0101244A10UL,
|
||||
NvColorFormat_L4A4 = 0x0102000508UL,
|
||||
NvColorFormat_L8A8 = 0x0102000E10UL,
|
||||
NvColorFormat_B4G4R4A4 = 0x01060A1510UL,
|
||||
NvColorFormat_B5G5R1A5 = 0x01060A1710UL,
|
||||
NvColorFormat_B5G5R5A1 = 0x01060A1810UL,
|
||||
NvColorFormat_B8G8R8A8 = 0x01060A2120UL,
|
||||
NvColorFormat_B10G10R10A2 = 0x01060A2320UL,
|
||||
NvColorFormat_R1G5B5A5 = 0x0106881410UL,
|
||||
NvColorFormat_R4G4B4A4 = 0x0106881510UL,
|
||||
NvColorFormat_R5G5B5A1 = 0x0106881810UL,
|
||||
NvColorFormat_R8G8B8A8 = 0x0106882120UL,
|
||||
NvColorFormat_R10G10B10A2 = 0x0106882320UL,
|
||||
NvColorFormat_L1 = 0x010A000101UL,
|
||||
NvColorFormat_L2 = 0x010A000202UL,
|
||||
NvColorFormat_L4 = 0x010A000304UL,
|
||||
NvColorFormat_L8 = 0x010A000408UL,
|
||||
NvColorFormat_L16 = 0x010A000A10UL,
|
||||
NvColorFormat_L32 = 0x010A001C20UL,
|
||||
NvColorFormat_Float_L16 = 0x010A004A10UL,
|
||||
NvColorFormat_B5G6R5 = 0x010A0A1210UL,
|
||||
NvColorFormat_B6G5R5 = 0x010A0A1310UL,
|
||||
NvColorFormat_B5G5R5X1 = 0x010A0A1810UL,
|
||||
NvColorFormat_B8_G8_R8 = 0x010A0A1918UL,
|
||||
NvColorFormat_B8G8R8X8 = 0x010A0A2120UL,
|
||||
NvColorFormat_Float_B10G11R11 = 0x010A0A5E20UL,
|
||||
NvColorFormat_X1B5G5R5 = 0x010A531410UL,
|
||||
NvColorFormat_X8B8G8R8 = 0x010A532120UL,
|
||||
NvColorFormat_X16B16G16R16 = 0x010A532740UL,
|
||||
NvColorFormat_Float_X16B16G16R16 = 0x010A536740UL,
|
||||
NvColorFormat_R3G3B2 = 0x010A880608UL,
|
||||
NvColorFormat_R5G5B6 = 0x010A881110UL,
|
||||
NvColorFormat_R5G6B5 = 0x010A881210UL,
|
||||
NvColorFormat_R5G5B5X1 = 0x010A881810UL,
|
||||
NvColorFormat_R8_G8_B8 = 0x010A881918UL,
|
||||
NvColorFormat_R8G8B8X8 = 0x010A882120UL,
|
||||
NvColorFormat_X1R5G5B5 = 0x010AD11410UL,
|
||||
NvColorFormat_X8R8G8B8 = 0x010AD12120UL,
|
||||
NvColorFormat_RG8 = 0x010B080E10UL,
|
||||
NvColorFormat_R16G16 = 0x010B081D20UL,
|
||||
NvColorFormat_Float_R16G16 = 0x010B085D20UL,
|
||||
NvColorFormat_R8 = 0x010B200408UL,
|
||||
NvColorFormat_R16 = 0x010B200A10UL,
|
||||
NvColorFormat_Float_R16 = 0x010B204A10UL,
|
||||
NvColorFormat_A2B10G10R10_sRGB = 0x0200532020UL,
|
||||
NvColorFormat_A8B8G8R8_sRGB = 0x0200532120UL,
|
||||
NvColorFormat_A16B16G16R16_sRGB = 0x0200532740UL,
|
||||
NvColorFormat_A2R10G10B10_sRGB = 0x0200D12020UL,
|
||||
NvColorFormat_B10G10R10A2_sRGB = 0x02060A2320UL,
|
||||
NvColorFormat_R10G10B10A2_sRGB = 0x0206882320UL,
|
||||
NvColorFormat_X8B8G8R8_sRGB = 0x020A532120UL,
|
||||
NvColorFormat_X16B16G16R16_sRGB = 0x020A532740UL,
|
||||
NvColorFormat_A2B10G10R10_709 = 0x0300532020UL,
|
||||
NvColorFormat_A8B8G8R8_709 = 0x0300532120UL,
|
||||
NvColorFormat_A16B16G16R16_709 = 0x0300532740UL,
|
||||
NvColorFormat_A2R10G10B10_709 = 0x0300D12020UL,
|
||||
NvColorFormat_B10G10R10A2_709 = 0x03060A2320UL,
|
||||
NvColorFormat_R10G10B10A2_709 = 0x0306882320UL,
|
||||
NvColorFormat_X8B8G8R8_709 = 0x030A532120UL,
|
||||
NvColorFormat_X16B16G16R16_709 = 0x030A532740UL,
|
||||
NvColorFormat_A2B10G10R10_709_Linear = 0x0400532020UL,
|
||||
NvColorFormat_A8B8G8R8_709_Linear = 0x0400532120UL,
|
||||
NvColorFormat_A16B16G16R16_709_Linear = 0x0400532740UL,
|
||||
NvColorFormat_A2R10G10B10_709_Linear = 0x0400D12020UL,
|
||||
NvColorFormat_B10G10R10A2_709_Linear = 0x04060A2320UL,
|
||||
NvColorFormat_R10G10B10A2_709_Linear = 0x0406882320UL,
|
||||
NvColorFormat_X8B8G8R8_709_Linear = 0x040A532120UL,
|
||||
NvColorFormat_X16B16G16R16_709_Linear = 0x040A532740UL,
|
||||
NvColorFormat_Float_A16B16G16R16_scRGB_Linear = 0x0500536740UL,
|
||||
NvColorFormat_A2B10G10R10_2020 = 0x0600532020UL,
|
||||
NvColorFormat_A8B8G8R8_2020 = 0x0600532120UL,
|
||||
NvColorFormat_A16B16G16R16_2020 = 0x0600532740UL,
|
||||
NvColorFormat_A2R10G10B10_2020 = 0x0600D12020UL,
|
||||
NvColorFormat_B10G10R10A2_2020 = 0x06060A2320UL,
|
||||
NvColorFormat_R10G10B10A2_2020 = 0x0606882320UL,
|
||||
NvColorFormat_X8B8G8R8_2020 = 0x060A532120UL,
|
||||
NvColorFormat_X16B16G16R16_2020 = 0x060A532740UL,
|
||||
NvColorFormat_A2B10G10R10_2020_Linear = 0x0700532020UL,
|
||||
NvColorFormat_A8B8G8R8_2020_Linear = 0x0700532120UL,
|
||||
NvColorFormat_A16B16G16R16_2020_Linear = 0x0700532740UL,
|
||||
NvColorFormat_Float_A16B16G16R16_2020_Linear = 0x0700536740UL,
|
||||
NvColorFormat_A2R10G10B10_2020_Linear = 0x0700D12020UL,
|
||||
NvColorFormat_B10G10R10A2_2020_Linear = 0x07060A2320UL,
|
||||
NvColorFormat_R10G10B10A2_2020_Linear = 0x0706882320UL,
|
||||
NvColorFormat_X8B8G8R8_2020_Linear = 0x070A532120UL,
|
||||
NvColorFormat_X16B16G16R16_2020_Linear = 0x070A532740UL,
|
||||
NvColorFormat_Float_A16B16G16R16_2020_PQ = 0x0800536740UL,
|
||||
NvColorFormat_A4I4 = 0x0901210508UL,
|
||||
NvColorFormat_A8I8 = 0x0901210E10UL,
|
||||
NvColorFormat_I4A4 = 0x0903200508UL,
|
||||
NvColorFormat_I8A8 = 0x0903200E10UL,
|
||||
NvColorFormat_I1 = 0x0909200101UL,
|
||||
NvColorFormat_I2 = 0x0909200202UL,
|
||||
NvColorFormat_I4 = 0x0909200304UL,
|
||||
NvColorFormat_I8 = 0x0909200408UL,
|
||||
NvColorFormat_A8Y8U8V8 = 0x0A00D12120UL,
|
||||
NvColorFormat_A16Y16U16V16 = 0x0A00D12740UL,
|
||||
NvColorFormat_Y8U8V8A8 = 0x0A06882120UL,
|
||||
NvColorFormat_V8_U8 = 0x0A080C0710UL,
|
||||
NvColorFormat_V8U8 = 0x0A080C0E10UL,
|
||||
NvColorFormat_V10U10 = 0x0A08142220UL,
|
||||
NvColorFormat_V12U12 = 0x0A08142420UL,
|
||||
NvColorFormat_V8 = 0x0A08240408UL,
|
||||
NvColorFormat_V10 = 0x0A08240F10UL,
|
||||
NvColorFormat_V12 = 0x0A08241010UL,
|
||||
NvColorFormat_U8_V8 = 0x0A08440710UL,
|
||||
NvColorFormat_U8V8 = 0x0A08440E10UL,
|
||||
NvColorFormat_U10V10 = 0x0A08842220UL,
|
||||
NvColorFormat_U12V12 = 0x0A08842420UL,
|
||||
NvColorFormat_U8 = 0x0A09040408UL,
|
||||
NvColorFormat_U10 = 0x0A09040F10UL,
|
||||
NvColorFormat_U12 = 0x0A09041010UL,
|
||||
NvColorFormat_Y8 = 0x0A09200408UL,
|
||||
NvColorFormat_Y10 = 0x0A09200F10UL,
|
||||
NvColorFormat_Y12 = 0x0A09201010UL,
|
||||
NvColorFormat_YVYU = 0x0A0A500810UL,
|
||||
NvColorFormat_VYUY = 0x0A0A500910UL,
|
||||
NvColorFormat_YUYV = 0x0A0A880810UL,
|
||||
NvColorFormat_UYVY = 0x0A0A880910UL,
|
||||
NvColorFormat_Y8_U8_V8 = 0x0A0A881918UL,
|
||||
NvColorFormat_V8_U8_RR = 0x0B080C0710UL,
|
||||
NvColorFormat_V8U8_RR = 0x0B080C0E10UL,
|
||||
NvColorFormat_V8_RR = 0x0B08240408UL,
|
||||
NvColorFormat_U8_V8_RR = 0x0B08440710UL,
|
||||
NvColorFormat_U8V8_RR = 0x0B08440E10UL,
|
||||
NvColorFormat_U8_RR = 0x0B09040408UL,
|
||||
NvColorFormat_Y8_RR = 0x0B09200408UL,
|
||||
NvColorFormat_V8_U8_ER = 0x0C080C0710UL,
|
||||
NvColorFormat_V8U8_ER = 0x0C080C0E10UL,
|
||||
NvColorFormat_V8_ER = 0x0C08240408UL,
|
||||
NvColorFormat_U8_V8_ER = 0x0C08440710UL,
|
||||
NvColorFormat_U8V8_ER = 0x0C08440E10UL,
|
||||
NvColorFormat_U8_ER = 0x0C09040408UL,
|
||||
NvColorFormat_Y8_ER = 0x0C09200408UL,
|
||||
NvColorFormat_V8_U8_709 = 0x0D080C0710UL,
|
||||
NvColorFormat_V8U8_709 = 0x0D080C0E10UL,
|
||||
NvColorFormat_V10U10_709 = 0x0D08142220UL,
|
||||
NvColorFormat_V12U12_709 = 0x0D08142420UL,
|
||||
NvColorFormat_V8_709 = 0x0D08240408UL,
|
||||
NvColorFormat_V10_709 = 0x0D08240F10UL,
|
||||
NvColorFormat_V12_709 = 0x0D08241010UL,
|
||||
NvColorFormat_U8_V8_709 = 0x0D08440710UL,
|
||||
NvColorFormat_U8V8_709 = 0x0D08440E10UL,
|
||||
NvColorFormat_U10V10_709 = 0x0D08842220UL,
|
||||
NvColorFormat_U12V12_709 = 0x0D08842420UL,
|
||||
NvColorFormat_U8_709 = 0x0D09040408UL,
|
||||
NvColorFormat_U10_709 = 0x0D09040F10UL,
|
||||
NvColorFormat_U12_709 = 0x0D09041010UL,
|
||||
NvColorFormat_Y8_709 = 0x0D09200408UL,
|
||||
NvColorFormat_Y10_709 = 0x0D09200F10UL,
|
||||
NvColorFormat_Y12_709 = 0x0D09201010UL,
|
||||
NvColorFormat_V8_U8_709_ER = 0x0E080C0710UL,
|
||||
NvColorFormat_V8U8_709_ER = 0x0E080C0E10UL,
|
||||
NvColorFormat_V10U10_709_ER = 0x0E08142220UL,
|
||||
NvColorFormat_V12U12_709_ER = 0x0E08142420UL,
|
||||
NvColorFormat_V8_709_ER = 0x0E08240408UL,
|
||||
NvColorFormat_V10_709_ER = 0x0E08240F10UL,
|
||||
NvColorFormat_V12_709_ER = 0x0E08241010UL,
|
||||
NvColorFormat_U8_V8_709_ER = 0x0E08440710UL,
|
||||
NvColorFormat_U8V8_709_ER = 0x0E08440E10UL,
|
||||
NvColorFormat_U10V10_709_ER = 0x0E08842220UL,
|
||||
NvColorFormat_U12V12_709_ER = 0x0E08842420UL,
|
||||
NvColorFormat_U8_709_ER = 0x0E09040408UL,
|
||||
NvColorFormat_U10_709_ER = 0x0E09040F10UL,
|
||||
NvColorFormat_U12_709_ER = 0x0E09041010UL,
|
||||
NvColorFormat_Y8_709_ER = 0x0E09200408UL,
|
||||
NvColorFormat_Y10_709_ER = 0x0E09200F10UL,
|
||||
NvColorFormat_Y12_709_ER = 0x0E09201010UL,
|
||||
NvColorFormat_V10U10_2020 = 0x0F08142220UL,
|
||||
NvColorFormat_V12U12_2020 = 0x0F08142420UL,
|
||||
NvColorFormat_V10_2020 = 0x0F08240F10UL,
|
||||
NvColorFormat_V12_2020 = 0x0F08241010UL,
|
||||
NvColorFormat_U10V10_2020 = 0x0F08842220UL,
|
||||
NvColorFormat_U12V12_2020 = 0x0F08842420UL,
|
||||
NvColorFormat_U10_2020 = 0x0F09040F10UL,
|
||||
NvColorFormat_U12_2020 = 0x0F09041010UL,
|
||||
NvColorFormat_Y10_2020 = 0x0F09200F10UL,
|
||||
NvColorFormat_Y12_2020 = 0x0F09201010UL,
|
||||
NvColorFormat_Bayer8RGGB = 0x1009200408UL,
|
||||
NvColorFormat_Bayer16RGGB = 0x1009200A10UL,
|
||||
NvColorFormat_BayerS16RGGB = 0x1009208A10UL,
|
||||
NvColorFormat_X2Bayer14RGGB = 0x1009210B10UL,
|
||||
NvColorFormat_X4Bayer12RGGB = 0x1009210C10UL,
|
||||
NvColorFormat_X6Bayer10RGGB = 0x1009210D10UL,
|
||||
NvColorFormat_Bayer8BGGR = 0x1109200408UL,
|
||||
NvColorFormat_Bayer16BGGR = 0x1109200A10UL,
|
||||
NvColorFormat_BayerS16BGGR = 0x1109208A10UL,
|
||||
NvColorFormat_X2Bayer14BGGR = 0x1109210B10UL,
|
||||
NvColorFormat_X4Bayer12BGGR = 0x1109210C10UL,
|
||||
NvColorFormat_X6Bayer10BGGR = 0x1109210D10UL,
|
||||
NvColorFormat_Bayer8GRBG = 0x1209200408UL,
|
||||
NvColorFormat_Bayer16GRBG = 0x1209200A10UL,
|
||||
NvColorFormat_BayerS16GRBG = 0x1209208A10UL,
|
||||
NvColorFormat_X2Bayer14GRBG = 0x1209210B10UL,
|
||||
NvColorFormat_X4Bayer12GRBG = 0x1209210C10UL,
|
||||
NvColorFormat_X6Bayer10GRBG = 0x1209210D10UL,
|
||||
NvColorFormat_Bayer8GBRG = 0x1309200408UL,
|
||||
NvColorFormat_Bayer16GBRG = 0x1309200A10UL,
|
||||
NvColorFormat_BayerS16GBRG = 0x1309208A10UL,
|
||||
NvColorFormat_X2Bayer14GBRG = 0x1309210B10UL,
|
||||
NvColorFormat_X4Bayer12GBRG = 0x1309210C10UL,
|
||||
NvColorFormat_X6Bayer10GBRG = 0x1309210D10UL,
|
||||
NvColorFormat_XYZ = 0x140A886640UL,
|
||||
} NvColorFormat;
|
||||
|
@ -12,14 +12,14 @@
|
||||
#include "display/framebuffer.h"
|
||||
#include "nvidia/graphic_buffer.h"
|
||||
|
||||
static const u64 g_nvColorFmtTable[] = {
|
||||
0x100532120, // PIXEL_FORMAT_RGBA_8888
|
||||
0x10A532120, // PIXEL_FORMAT_RGBX_8888
|
||||
0x10A881918, // PIXEL_FORMAT_RGB_888 <-- doesn't work
|
||||
0x10A881210, // PIXEL_FORMAT_RGB_565
|
||||
0x100D12120, // PIXEL_FORMAT_BGRA_8888
|
||||
0x106881810, // PIXEL_FORMAT_RGBA_5551 <-- doesn't work
|
||||
0x100531510, // PIXEL_FORMAT_RGBA_4444
|
||||
static const NvColorFormat g_nvColorFmtTable[] = {
|
||||
NvColorFormat_A8B8G8R8, // PIXEL_FORMAT_RGBA_8888
|
||||
NvColorFormat_X8B8G8R8, // PIXEL_FORMAT_RGBX_8888
|
||||
NvColorFormat_R8_G8_B8, // PIXEL_FORMAT_RGB_888 <-- doesn't work
|
||||
NvColorFormat_R5G6B5, // PIXEL_FORMAT_RGB_565
|
||||
NvColorFormat_A8R8G8B8, // PIXEL_FORMAT_BGRA_8888
|
||||
NvColorFormat_R5G5B5A1, // PIXEL_FORMAT_RGBA_5551 <-- doesn't work
|
||||
NvColorFormat_A4B4G4R4, // PIXEL_FORMAT_RGBA_4444
|
||||
};
|
||||
|
||||
Result framebufferCreate(Framebuffer* fb, NWindow *win, u32 width, u32 height, u32 format, u32 num_fbs)
|
||||
@ -48,8 +48,8 @@ Result framebufferCreate(Framebuffer* fb, NWindow *win, u32 width, u32 height, u
|
||||
fb->win = win;
|
||||
fb->num_fbs = num_fbs;
|
||||
|
||||
const u64 colorfmt = g_nvColorFmtTable[format-1];
|
||||
const u32 bytes_per_pixel = (colorfmt >> 3) & 0x1F;
|
||||
const NvColorFormat colorfmt = g_nvColorFmtTable[format-PIXEL_FORMAT_RGBA_8888];
|
||||
const u32 bytes_per_pixel = ((u64)colorfmt >> 3) & 0x1F;
|
||||
const u32 block_height_log2 = 4; // According to TRM this is the optimal value (SIXTEEN_GOBS)
|
||||
const u32 block_height = 8 * (1U << block_height_log2);
|
||||
|
||||
|
@ -81,7 +81,7 @@ static NvGraphicBuffer g_gfx_GraphicBuffer = {
|
||||
.num_planes = 1,
|
||||
.planes = {
|
||||
{
|
||||
.color_format = 0x100532120UL, // this is 'A8B8G8R8' according to symbols in official sw
|
||||
.color_format = NvColorFormat_A8B8G8R8,
|
||||
.layout = NvLayout_BlockLinear,
|
||||
.kind = NvKind_Generic_16BX2,
|
||||
.block_height_log2 = 4, // i.e. block height is 16 which is the preferred value according to TRM
|
||||
|
Loading…
Reference in New Issue
Block a user