libnx/nx/include/switch/nvidia/graphic_buffer.h
2018-12-19 19:33:31 +01:00

40 lines
1.1 KiB
C

#pragma once
#include "../display/types.h"
#include "types.h"
typedef struct {
u32 width;
u32 height;
NvColorFormat color_format;
NvLayout layout;
u32 pitch;
u32 unused; // usually this field contains the nvmap handle, but it's completely unused/overwritten during marshalling
u32 offset;
NvKind kind;
u32 block_height_log2;
NvDisplayScanFormat scan;
u32 second_field_offset;
u64 flags;
u64 size;
u32 unk[6]; // compression related
} NvSurface;
typedef struct {
NativeHandle header;
s32 unk0; // -1
s32 nvmap_id; // nvmap object id
u32 unk2; // 0
u32 magic; // 0xDAFFCAFF
u32 pid; // 42
u32 type; // ?
u32 usage; // GRALLOC_USAGE_* bitmask
u32 format; // PIXEL_FORMAT_*
u32 ext_format; // copy of the above (in most cases)
u32 stride; // in pixels!
u32 total_size; // in bytes
u32 num_planes; // usually 1
u32 unk12; // 0
NvSurface planes[3];
u64 unused; // official sw writes a pointer to bookkeeping data here, but it's otherwise completely unused/overwritten during marshalling
} NvGraphicBuffer;