Files

1427 lines
61 KiB
Odin
Raw Permalink Normal View History

2024-05-11 23:24:13 +02:00
package gxm
import "core:c"
import sce "../common"
// Error Codes
SceGxmErrorCode :: enum c.uint {
2024-05-11 23:24:13 +02:00
UNINITIALIZED = 0x805B0000,
ALREADY_INITIALIZED = 0x805B0001,
OUT_OF_MEMORY = 0x805B0002,
INVALID_VALUE = 0x805B0003,
INVALID_POINTER = 0x805B0004,
INVALID_ALIGNMENT = 0x805B0005,
NOT_WITHIN_SCENE = 0x805B0006,
WITHIN_SCENE = 0x805B0007,
NULL_PROGRAM = 0x805B0008,
UNSUPPORTED = 0x805B0009,
PATCHER_INTERNAL = 0x805B000A,
RESERVE_FAILED = 0x805B000B,
PROGRAM_IN_USE = 0x805B000C,
INVALID_INDEX_COUNT = 0x805B000D,
INVALID_POLYGON_MODE = 0x805B000E,
INVALID_SAMPLER_RESULT_TYPE_PRECISION = 0x805B000F,
INVALID_SAMPLER_RESULT_TYPE_COMPONENT_COUNT = 0x805B0010,
UNIFORM_BUFFER_NOT_RESERVED = 0x805B0011,
INVALID_AUXILIARY_SURFACE = 0x805B0013,
INVALID_PRECOMPUTED_DRAW = 0x805B0014,
INVALID_PRECOMPUTED_VERTEX_STATE = 0x805B0015,
INVALID_PRECOMPUTED_FRAGMENT_STATE = 0x805B0016,
DRIVER = 0x805B0017,
INVALID_TEXTURE = 0x805B0018,
INVALID_TEXTURE_DATA_POINTER = 0x805B0019,
INVALID_TEXTURE_PALETTE_POINTER = 0x805B001A,
OUT_OF_RENDER_TARGETS = 0x805B0027
}
SceGxmDisplayQueueCallback :: #type proc(callbackData: rawptr)
SceGxmInitializeParams :: struct {
flags: c.uint,
displayQueueMaxPendingCount: c.uint,
displayQueueCallback: ^SceGxmDisplayQueueCallback,
displayQueueCallbackDataSize: c.uint,
parameterBufferSize: sce.Size,
}
when size_of(rawptr) == 4 {
#assert(size_of(SceGxmInitializeParams) == 0x14)
}
SceGxmMemoryAttribFlags :: enum c.int {
READ = 1,
WRITE = 2,
RW = (READ | WRITE)
}
SceGxmAttributeFormat :: enum c.int {
U8,
S8,
U16,
S16,
U8N,
S8N,
U16N,
S16N,
F16,
F32,
UNTYPED
}
SceGxmDepthStencilFormat :: enum c.uint {
DF32 = 0x00044000,
S8 = 0x00022000,
DF32_S8 = 0x00066000,
DF32M = 0x000CC000,
DF32M_S8 = 0x000EE000,
S8D24 = 0x01266000,
D16 = 0x02444000,
}
SceGxmPrimitiveType :: enum c.uint {
TRIANGLES = 0x00000000,
LINES = 0x04000000,
POINTS = 0x08000000,
TRIANGLE_STRIP = 0x0C000000,
TRIANGLE_FAN = 0x10000000,
TRIANGLE_EDGES = 0x14000000,
}
SceGxmEdgeEnableFlags :: enum c.uint {
EDGE_ENABLE_01 = 0x00000100,
EDGE_ENABLE_12 = 0x00000200,
EDGE_ENABLE_20 = 0x00000400,
}
SceGxmRegionClipMode :: enum c.uint {
NONE = 0x00000000,
ALL = 0x40000000,
OUTSIDE = 0x80000000,
INSIDE = 0xC0000000,
}
SceGxmDepthFunc :: enum c.uint {
NEVER = 0x00000000,
LESS = 0x00400000,
EQUAL = 0x00800000,
LESS_EQUAL = 0x00C00000,
GREATER = 0x01000000,
NOT_EQUAL = 0x01400000,
GREATER_EQUAL = 0x01800000,
ALWAYS = 0x01C00000,
}
SceGxmStencilFunc :: enum c.uint {
NEVER = 0x00000000,
LESS = 0x02000000,
EQUAL = 0x04000000,
LESS_EQUAL = 0x06000000,
GREATER = 0x08000000,
NOT_EQUAL = 0x0A000000,
GREATER_EQUAL = 0x0C000000,
ALWAYS = 0x0E000000,
}
SceGxmStencilOp :: enum c.uint {
KEEP = 0x00000000,
ZERO = 0x00000001,
REPLACE = 0x00000002,
INCR = 0x00000003,
DECR = 0x00000004,
INVERT = 0x00000005,
INCR_WRAP = 0x00000006,
DECR_WRAP = 0x00000007,
}
SceGxmCullMode :: enum c.uint {
NONE = 0x00000000,
CW = 0x00000001,
CCW = 0x00000002,
}
SceGxmPassType :: enum c.uint {
OPAQUE = 0x00000000,
TRANSLUCENT = 0x02000000,
DISCARD = 0x04000000,
MASK_UPDATE = 0x06000000,
DEPTH_REPLACE = 0x0A000000,
}
SceGxmPolygonMode :: enum c.uint {
TRIANGLE_FILL = 0x00000000,
LINE = 0x00008000,
POINT_10UV = 0x00010000,
POINT = 0x00018000,
POINT_01UV = 0x00020000,
TRIANGLE_LINE = 0x00028000,
TRIANGLE_POINT = 0x00030000,
}
SceGxmColorSwizzle4Mode :: enum c.uint {
ABGR = 0x00000000,
ARGB = 0x00100000,
RGBA = 0x00200000,
BGRA = 0x00300000,
}
SceGxmColorSwizzle3Mode :: enum c.uint {
BGR = 0x00000000,
RGB = 0x00100000,
}
SceGxmColorSwizzle2Mode :: enum c.uint {
GR = 0x00000000,
RG = 0x00100000,
RA = 0x00200000,
AR = 0x00300000,
}
SceGxmColorSwizzle1Mode :: enum c.uint {
R = 0x00000000,
G = 0x00100000,
A = 0x00100000,
}
SceGxmColorBaseFormat :: enum c.uint {
U8U8U8U8 = 0x00000000,
U8U8U8 = 0x10000000,
U5U6U5 = 0x30000000,
U1U5U5U5 = 0x40000000,
U4U4U4U4 = 0x50000000,
U8U3U3U2 = 0x60000000,
F16 = 0xF0000000,
F16F16 = 0x00800000,
F32 = 0x10800000,
S16 = 0x20800000,
S16S16 = 0x30800000,
U16 = 0x40800000,
U16U16 = 0x50800000,
U2U10U10U10 = 0x60800000,
U8 = 0x80800000,
S8 = 0x90800000,
S5S5U6 = 0xA0800000,
U8U8 = 0xB0800000,
S8S8 = 0xC0800000,
U8S8S8U8 = 0xD0800000,
S8S8S8S8 = 0xE0800000,
F16F16F16F16 = 0x01000000,
F32F32 = 0x11000000,
F11F11F10 = 0x21000000,
SE5M9M9M9 = 0x31000000,
U2F10F10F10 = 0x41000000,
}
//! Supported color formats
SceGxmColorFormat :: enum c.uint {
U8U8U8U8_ABGR = c.uint(SceGxmColorBaseFormat.U8U8U8U8) | c.uint(SceGxmColorSwizzle4Mode.ABGR),
U8U8U8U8_ARGB = c.uint(SceGxmColorBaseFormat.U8U8U8U8) | c.uint(SceGxmColorSwizzle4Mode.ARGB),
U8U8U8U8_RGBA = c.uint(SceGxmColorBaseFormat.U8U8U8U8) | c.uint(SceGxmColorSwizzle4Mode.RGBA),
U8U8U8U8_BGRA = c.uint(SceGxmColorBaseFormat.U8U8U8U8) | c.uint(SceGxmColorSwizzle4Mode.BGRA),
U8U8U8_BGR = c.uint(SceGxmColorBaseFormat.U8U8U8) | c.uint(SceGxmColorSwizzle3Mode.BGR),
U8U8U8_RGB = c.uint(SceGxmColorBaseFormat.U8U8U8) | c.uint(SceGxmColorSwizzle3Mode.RGB),
U5U6U5_BGR = c.uint(SceGxmColorBaseFormat.U5U6U5) | c.uint(SceGxmColorSwizzle3Mode.BGR),
U5U6U5_RGB = c.uint(SceGxmColorBaseFormat.U5U6U5) | c.uint(SceGxmColorSwizzle3Mode.RGB),
U1U5U5U5_ABGR = c.uint(SceGxmColorBaseFormat.U1U5U5U5) | c.uint(SceGxmColorSwizzle4Mode.ABGR),
U1U5U5U5_ARGB = c.uint(SceGxmColorBaseFormat.U1U5U5U5) | c.uint(SceGxmColorSwizzle4Mode.ARGB),
U5U5U5U1_RGBA = c.uint(SceGxmColorBaseFormat.U1U5U5U5) | c.uint(SceGxmColorSwizzle4Mode.RGBA),
U5U5U5U1_BGRA = c.uint(SceGxmColorBaseFormat.U1U5U5U5) | c.uint(SceGxmColorSwizzle4Mode.BGRA),
U4U4U4U4_ABGR = c.uint(SceGxmColorBaseFormat.U4U4U4U4) | c.uint(SceGxmColorSwizzle4Mode.ABGR),
U4U4U4U4_ARGB = c.uint(SceGxmColorBaseFormat.U4U4U4U4) | c.uint(SceGxmColorSwizzle4Mode.ARGB),
U4U4U4U4_RGBA = c.uint(SceGxmColorBaseFormat.U4U4U4U4) | c.uint(SceGxmColorSwizzle4Mode.RGBA),
U4U4U4U4_BGRA = c.uint(SceGxmColorBaseFormat.U4U4U4U4) | c.uint(SceGxmColorSwizzle4Mode.BGRA),
U8U3U3U2_ARGB = c.uint(c.uint(SceGxmColorBaseFormat.U8U3U3U2)),
F16_R = c.uint(SceGxmColorBaseFormat.F16) | c.uint(SceGxmColorSwizzle1Mode.R),
F16_G = c.uint(SceGxmColorBaseFormat.F16) | c.uint(SceGxmColorSwizzle1Mode.G),
F16F16_GR = c.uint(SceGxmColorBaseFormat.F16F16) | c.uint(SceGxmColorSwizzle2Mode.GR),
F16F16_RG = c.uint(SceGxmColorBaseFormat.F16F16) | c.uint(SceGxmColorSwizzle2Mode.RG),
F32_R = c.uint(SceGxmColorBaseFormat.F32) | c.uint(SceGxmColorSwizzle1Mode.R),
S16_R = c.uint(SceGxmColorBaseFormat.S16) | c.uint(SceGxmColorSwizzle1Mode.R),
S16_G = c.uint(SceGxmColorBaseFormat.S16) | c.uint(SceGxmColorSwizzle1Mode.G),
S16S16_GR = c.uint(SceGxmColorBaseFormat.S16S16) | c.uint(SceGxmColorSwizzle2Mode.GR),
S16S16_RG = c.uint(SceGxmColorBaseFormat.S16S16) | c.uint(SceGxmColorSwizzle2Mode.RG),
U16_R = c.uint(SceGxmColorBaseFormat.U16) | c.uint(SceGxmColorSwizzle1Mode.R),
U16_G = c.uint(SceGxmColorBaseFormat.U16) | c.uint(SceGxmColorSwizzle1Mode.G),
U16U16_GR = c.uint(SceGxmColorBaseFormat.U16U16) | c.uint(SceGxmColorSwizzle2Mode.GR),
U16U16_RG = c.uint(SceGxmColorBaseFormat.U16U16) | c.uint(SceGxmColorSwizzle2Mode.RG),
U2U10U10U10_ABGR = c.uint(SceGxmColorBaseFormat.U2U10U10U10) | c.uint(SceGxmColorSwizzle4Mode.ABGR),
U2U10U10U10_ARGB = c.uint(SceGxmColorBaseFormat.U2U10U10U10) | c.uint(SceGxmColorSwizzle4Mode.ARGB),
U10U10U10U2_RGBA = c.uint(SceGxmColorBaseFormat.U2U10U10U10) | c.uint(SceGxmColorSwizzle4Mode.RGBA),
U10U10U10U2_BGRA = c.uint(SceGxmColorBaseFormat.U2U10U10U10) | c.uint(SceGxmColorSwizzle4Mode.BGRA),
U8_R = c.uint(SceGxmColorBaseFormat.U8) | c.uint(SceGxmColorSwizzle1Mode.R),
U8_A = c.uint(SceGxmColorBaseFormat.U8) | c.uint(SceGxmColorSwizzle1Mode.A),
S8_R = c.uint(SceGxmColorBaseFormat.S8) | c.uint(SceGxmColorSwizzle1Mode.R),
S8_A = c.uint(SceGxmColorBaseFormat.S8) | c.uint(SceGxmColorSwizzle1Mode.A),
U6S5S5_BGR = c.uint(SceGxmColorBaseFormat.S5S5U6) | c.uint(SceGxmColorSwizzle3Mode.BGR),
S5S5U6_RGB = c.uint(SceGxmColorBaseFormat.S5S5U6) | c.uint(SceGxmColorSwizzle3Mode.RGB),
U8U8_GR = c.uint(SceGxmColorBaseFormat.U8U8) | c.uint(SceGxmColorSwizzle2Mode.GR),
U8U8_RG = c.uint(SceGxmColorBaseFormat.U8U8) | c.uint(SceGxmColorSwizzle2Mode.RG),
U8U8_RA = c.uint(SceGxmColorBaseFormat.U8U8) | c.uint(SceGxmColorSwizzle2Mode.RA),
U8U8_AR = c.uint(SceGxmColorBaseFormat.U8U8) | c.uint(SceGxmColorSwizzle2Mode.AR),
S8S8_GR = c.uint(SceGxmColorBaseFormat.S8S8) | c.uint(SceGxmColorSwizzle2Mode.GR),
S8S8_RG = c.uint(SceGxmColorBaseFormat.S8S8) | c.uint(SceGxmColorSwizzle2Mode.RG),
S8S8_RA = c.uint(SceGxmColorBaseFormat.S8S8) | c.uint(SceGxmColorSwizzle2Mode.RA),
S8S8_AR = c.uint(SceGxmColorBaseFormat.S8S8) | c.uint(SceGxmColorSwizzle2Mode.AR),
U8S8S8U8_ABGR = c.uint(SceGxmColorBaseFormat.U8S8S8U8) | c.uint(SceGxmColorSwizzle4Mode.ABGR),
U8U8S8S8_ARGB = c.uint(SceGxmColorBaseFormat.U8S8S8U8) | c.uint(SceGxmColorSwizzle4Mode.ARGB),
U8S8S8U8_RGBA = c.uint(SceGxmColorBaseFormat.U8S8S8U8) | c.uint(SceGxmColorSwizzle4Mode.RGBA),
S8S8U8U8_BGRA = c.uint(SceGxmColorBaseFormat.U8S8S8U8) | c.uint(SceGxmColorSwizzle4Mode.BGRA),
S8S8S8S8_ABGR = c.uint(SceGxmColorBaseFormat.S8S8S8S8) | c.uint(SceGxmColorSwizzle4Mode.ABGR),
S8S8S8S8_ARGB = c.uint(SceGxmColorBaseFormat.S8S8S8S8) | c.uint(SceGxmColorSwizzle4Mode.ARGB),
S8S8S8S8_RGBA = c.uint(SceGxmColorBaseFormat.S8S8S8S8) | c.uint(SceGxmColorSwizzle4Mode.RGBA),
S8S8S8S8_BGRA = c.uint(SceGxmColorBaseFormat.S8S8S8S8) | c.uint(SceGxmColorSwizzle4Mode.BGRA),
F16F16F16F16_ABGR = c.uint(SceGxmColorBaseFormat.F16F16F16F16) | c.uint(SceGxmColorSwizzle4Mode.ABGR),
F16F16F16F16_ARGB = c.uint(SceGxmColorBaseFormat.F16F16F16F16) | c.uint(SceGxmColorSwizzle4Mode.ARGB),
F16F16F16F16_RGBA = c.uint(SceGxmColorBaseFormat.F16F16F16F16) | c.uint(SceGxmColorSwizzle4Mode.RGBA),
F16F16F16F16_BGRA = c.uint(SceGxmColorBaseFormat.F16F16F16F16) | c.uint(SceGxmColorSwizzle4Mode.BGRA),
F32F32_GR = c.uint(SceGxmColorBaseFormat.F32F32) | c.uint(SceGxmColorSwizzle2Mode.GR),
F32F32_RG = c.uint(SceGxmColorBaseFormat.F32F32) | c.uint(SceGxmColorSwizzle2Mode.RG),
F10F11F11_BGR = c.uint(SceGxmColorBaseFormat.F11F11F10) | c.uint(SceGxmColorSwizzle3Mode.BGR),
F11F11F10_RGB = c.uint(SceGxmColorBaseFormat.F11F11F10) | c.uint(SceGxmColorSwizzle3Mode.RGB),
SE5M9M9M9_BGR = c.uint(SceGxmColorBaseFormat.SE5M9M9M9) | c.uint(SceGxmColorSwizzle3Mode.BGR),
SE5M9M9M9_RGB = c.uint(SceGxmColorBaseFormat.SE5M9M9M9) | c.uint(SceGxmColorSwizzle3Mode.RGB),
U2F10F10F10_ABGR = c.uint(SceGxmColorBaseFormat.U2F10F10F10) | c.uint(SceGxmColorSwizzle4Mode.ABGR),
U2F10F10F10_ARGB = c.uint(SceGxmColorBaseFormat.U2F10F10F10) | c.uint(SceGxmColorSwizzle4Mode.ARGB),
F10F10F10U2_RGBA = c.uint(SceGxmColorBaseFormat.U2F10F10F10) | c.uint(SceGxmColorSwizzle4Mode.RGBA),
F10F10F10U2_BGRA = c.uint(SceGxmColorBaseFormat.U2F10F10F10) | c.uint(SceGxmColorSwizzle4Mode.BGRA),
// Legacy formats
A8B8G8R8 = U8U8U8U8_ABGR,
A8R8G8B8 = U8U8U8U8_ARGB,
R5G6B5 = U5U6U5_RGB,
A1R5G5B5 = U1U5U5U5_ARGB,
A4R4G4B4 = U4U4U4U4_ARGB,
A8 = U8_A,
}
SceGxmColorSurfaceType :: enum c.uint {
LINEAR = 0x00000000,
TILED = 0x04000000,
SWIZZLED = 0x08000000,
}
SceGxmColorSurfaceGammaMode :: enum c.uint {
NONE = 0x00000000,
R = 0x00001000,
GR = 0x00003000,
BGR = 0x00001000,
}
SceGxmColorSurfaceDitherMode :: enum c.uint {
DISABLED = 0x00000000,
ENABLED = 0x00000008,
}
SceGxmDepthStencilSurfaceType :: enum c.uint {
LINEAR = 0x00000000,
TILED = 0x00011000,
}
SceGxmOutputRegisterFormat :: enum c.int {
DECLARED,
UCHAR4,
CHAR4,
USHORT2,
SHORT2,
HALF4,
HALF2,
FLOAT2,
FLOAT,
}
SceGxmMultisampleMode :: enum c.int {
MULTISAMPLE_NONE,
MULTISAMPLE_2X,
MULTISAMPLE_4X
}
SceGxmTextureSwizzle4Mode :: enum c.uint {
SWIZZLE4_ABGR = 0x00000000,
SWIZZLE4_ARGB = 0x00001000,
SWIZZLE4_RGBA = 0x00002000,
SWIZZLE4_BGRA = 0x00003000,
SWIZZLE4_1BGR = 0x00004000,
SWIZZLE4_1RGB = 0x00005000,
SWIZZLE4_RGB1 = 0x00006000,
SWIZZLE4_BGR1 = 0x00007000,
}
SceGxmTextureSwizzle3Mode :: enum c.uint {
BGR = 0x00000000,
RGB = 0x00001000,
}
SceGxmTextureSwizzle2Mode :: enum c.uint {
SWIZZLE2_GR = 0x00000000,
SWIZZLE2_00GR = 0x00001000,
SWIZZLE2_GRRR = 0x00002000,
SWIZZLE2_RGGG = 0x00003000,
SWIZZLE2_GRGR = 0x00004000,
SWIZZLE2_00RG = 0x00005000,
}
SceGxmTextureSwizzle2ModeAlt :: enum c.uint {
SD = 0x00000000,
DS = 0x00001000,
}
SceGxmTextureSwizzle1Mode :: enum c.uint {
SWIZZLE1_R = 0x00000000,
SWIZZLE1_000R = 0x00001000,
SWIZZLE1_111R = 0x00002000,
SWIZZLE1_RRRR = 0x00003000,
SWIZZLE1_0RRR = 0x00004000,
SWIZZLE1_1RRR = 0x00005000,
SWIZZLE1_R000 = 0x00006000,
SWIZZLE1_R111 = 0x00007000,
}
SceGxmTextureSwizzleYUV422Mode :: enum c.uint {
YUYV_CSC0 = 0x00000000,
YVYU_CSC0 = 0x00001000,
UYVY_CSC0 = 0x00002000,
VYUY_CSC0 = 0x00003000,
YUYV_CSC1 = 0x00004000,
YVYU_CSC1 = 0x00005000,
UYVY_CSC1 = 0x00006000,
VYUY_CSC1 = 0x00007000,
}
SceGxmTextureSwizzleYUV420Mode :: enum c.uint {
YUV_CSC0 = 0x00000000,
YVU_CSC0 = 0x00001000,
YUV_CSC1 = 0x00002000,
YVU_CSC1 = 0x00003000,
}
SceGxmTextureBaseFormat :: enum c.uint {
U8 = 0x00000000,
S8 = 0x01000000,
U4U4U4U4 = 0x02000000,
U8U3U3U2 = 0x03000000,
U1U5U5U5 = 0x04000000,
U5U6U5 = 0x05000000,
S5S5U6 = 0x06000000,
U8U8 = 0x07000000,
S8S8 = 0x08000000,
U16 = 0x09000000,
S16 = 0x0A000000,
F16 = 0x0B000000,
U8U8U8U8 = 0x0C000000,
S8S8S8S8 = 0x0D000000,
U2U10U10U10 = 0x0E000000,
U16U16 = 0x0F000000,
S16S16 = 0x10000000,
F16F16 = 0x11000000,
F32 = 0x12000000,
F32M = 0x13000000,
X8S8S8U8 = 0x14000000,
X8U24 = 0x15000000,
U32 = 0x17000000,
S32 = 0x18000000,
SE5M9M9M9 = 0x19000000,
F11F11F10 = 0x1A000000,
F16F16F16F16 = 0x1B000000,
U16U16U16U16 = 0x1C000000,
S16S16S16S16 = 0x1D000000,
F32F32 = 0x1E000000,
U32U32 = 0x1F000000,
PVRT2BPP = 0x80000000,
PVRT4BPP = 0x81000000,
PVRTII2BPP = 0x82000000,
PVRTII4BPP = 0x83000000,
UBC1 = 0x85000000,
UBC2 = 0x86000000,
UBC3 = 0x87000000,
UBC4 = 0x88000000,
SBC4 = 0x89000000,
UBC5 = 0x8A000000,
SBC5 = 0x8B000000,
YUV420P2 = 0x90000000,
YUV420P3 = 0x91000000,
YUV422 = 0x92000000,
P4 = 0x94000000,
P8 = 0x95000000,
U8U8U8 = 0x98000000,
S8S8S8 = 0x99000000,
U2F10F10F10 = 0x9A000000,
}
SceGxmTextureFormat :: enum c.uint {
// Supported formats
U8_000R = c.uint(SceGxmTextureBaseFormat.U8) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_000R),
U8_111R = c.uint(SceGxmTextureBaseFormat.U8) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_111R),
U8_RRRR = c.uint(SceGxmTextureBaseFormat.U8) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_RRRR),
U8_0RRR = c.uint(SceGxmTextureBaseFormat.U8) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_0RRR),
U8_1RRR = c.uint(SceGxmTextureBaseFormat.U8) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_1RRR),
U8_R000 = c.uint(SceGxmTextureBaseFormat.U8) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R000),
U8_R111 = c.uint(SceGxmTextureBaseFormat.U8) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R111),
U8_R = c.uint(SceGxmTextureBaseFormat.U8) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R),
S8_000R = c.uint(SceGxmTextureBaseFormat.S8) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_000R),
S8_111R = c.uint(SceGxmTextureBaseFormat.S8) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_111R),
S8_RRRR = c.uint(SceGxmTextureBaseFormat.S8) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_RRRR),
S8_0RRR = c.uint(SceGxmTextureBaseFormat.S8) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_0RRR),
S8_1RRR = c.uint(SceGxmTextureBaseFormat.S8) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_1RRR),
S8_R000 = c.uint(SceGxmTextureBaseFormat.S8) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R000),
S8_R111 = c.uint(SceGxmTextureBaseFormat.S8) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R111),
S8_R = c.uint(SceGxmTextureBaseFormat.S8) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R),
U4U4U4U4_ABGR = c.uint(SceGxmTextureBaseFormat.U4U4U4U4) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ABGR),
U4U4U4U4_ARGB = c.uint(SceGxmTextureBaseFormat.U4U4U4U4) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ARGB),
U4U4U4U4_RGBA = c.uint(SceGxmTextureBaseFormat.U4U4U4U4) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_RGBA),
U4U4U4U4_BGRA = c.uint(SceGxmTextureBaseFormat.U4U4U4U4) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_BGRA),
X4U4U4U4_1BGR = c.uint(SceGxmTextureBaseFormat.U4U4U4U4) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1BGR),
X4U4U4U4_1RGB = c.uint(SceGxmTextureBaseFormat.U4U4U4U4) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1RGB),
U4U4U4X4_RGB1 = c.uint(SceGxmTextureBaseFormat.U4U4U4U4) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_RGB1),
U4U4U4X4_BGR1 = c.uint(SceGxmTextureBaseFormat.U4U4U4U4) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_BGR1),
U8U3U3U2_ARGB = c.uint(SceGxmTextureBaseFormat.U8U3U3U2),
U1U5U5U5_ABGR = c.uint(SceGxmTextureBaseFormat.U1U5U5U5) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ABGR),
U1U5U5U5_ARGB = c.uint(SceGxmTextureBaseFormat.U1U5U5U5) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ARGB),
U5U5U5U1_RGBA = c.uint(SceGxmTextureBaseFormat.U1U5U5U5) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_RGBA),
U5U5U5U1_BGRA = c.uint(SceGxmTextureBaseFormat.U1U5U5U5) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_BGRA),
X1U5U5U5_1BGR = c.uint(SceGxmTextureBaseFormat.U1U5U5U5) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1BGR),
X1U5U5U5_1RGB = c.uint(SceGxmTextureBaseFormat.U1U5U5U5) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1RGB),
U5U5U5X1_RGB1 = c.uint(SceGxmTextureBaseFormat.U1U5U5U5) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_RGB1),
U5U5U5X1_BGR1 = c.uint(SceGxmTextureBaseFormat.U1U5U5U5) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_BGR1),
U5U6U5_BGR = c.uint(SceGxmTextureBaseFormat.U5U6U5) | c.uint(SceGxmTextureSwizzle3Mode.BGR),
U5U6U5_RGB = c.uint(SceGxmTextureBaseFormat.U5U6U5) | c.uint(SceGxmTextureSwizzle3Mode.RGB),
U6S5S5_BGR = c.uint(SceGxmTextureBaseFormat.S5S5U6) | c.uint(SceGxmTextureSwizzle3Mode.BGR),
S5S5U6_RGB = c.uint(SceGxmTextureBaseFormat.S5S5U6) | c.uint(SceGxmTextureSwizzle3Mode.RGB),
U8U8_00GR = c.uint(SceGxmTextureBaseFormat.U8U8) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_00GR),
U8U8_GRRR = c.uint(SceGxmTextureBaseFormat.U8U8) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GRRR),
U8U8_RGGG = c.uint(SceGxmTextureBaseFormat.U8U8) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_RGGG),
U8U8_GRGR = c.uint(SceGxmTextureBaseFormat.U8U8) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GRGR),
U8U8_00RG = c.uint(SceGxmTextureBaseFormat.U8U8) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_00RG),
U8U8_GR = c.uint(SceGxmTextureBaseFormat.U8U8) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GR),
S8S8_00GR = c.uint(SceGxmTextureBaseFormat.S8S8) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_00GR),
S8S8_GRRR = c.uint(SceGxmTextureBaseFormat.S8S8) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GRRR),
S8S8_RGGG = c.uint(SceGxmTextureBaseFormat.S8S8) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_RGGG),
S8S8_GRGR = c.uint(SceGxmTextureBaseFormat.S8S8) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GRGR),
S8S8_00RG = c.uint(SceGxmTextureBaseFormat.S8S8) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_00RG),
S8S8_GR = c.uint(SceGxmTextureBaseFormat.S8S8) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GR),
U16_000R = c.uint(SceGxmTextureBaseFormat.U16) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_000R),
U16_111R = c.uint(SceGxmTextureBaseFormat.U16) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_111R),
U16_RRRR = c.uint(SceGxmTextureBaseFormat.U16) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_RRRR),
U16_0RRR = c.uint(SceGxmTextureBaseFormat.U16) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_0RRR),
U16_1RRR = c.uint(SceGxmTextureBaseFormat.U16) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_1RRR),
U16_R000 = c.uint(SceGxmTextureBaseFormat.U16) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R000),
U16_R111 = c.uint(SceGxmTextureBaseFormat.U16) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R111),
U16_R = c.uint(SceGxmTextureBaseFormat.U16) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R),
S16_000R = c.uint(SceGxmTextureBaseFormat.S16) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_000R),
S16_111R = c.uint(SceGxmTextureBaseFormat.S16) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_111R),
S16_RRRR = c.uint(SceGxmTextureBaseFormat.S16) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_RRRR),
S16_0RRR = c.uint(SceGxmTextureBaseFormat.S16) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_0RRR),
S16_1RRR = c.uint(SceGxmTextureBaseFormat.S16) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_1RRR),
S16_R000 = c.uint(SceGxmTextureBaseFormat.S16) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R000),
S16_R111 = c.uint(SceGxmTextureBaseFormat.S16) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R111),
S16_R = c.uint(SceGxmTextureBaseFormat.S16) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R),
F16_000R = c.uint(SceGxmTextureBaseFormat.F16) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_000R),
F16_111R = c.uint(SceGxmTextureBaseFormat.F16) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_111R),
F16_RRRR = c.uint(SceGxmTextureBaseFormat.F16) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_RRRR),
F16_0RRR = c.uint(SceGxmTextureBaseFormat.F16) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_0RRR),
F16_1RRR = c.uint(SceGxmTextureBaseFormat.F16) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_1RRR),
F16_R000 = c.uint(SceGxmTextureBaseFormat.F16) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R000),
F16_R111 = c.uint(SceGxmTextureBaseFormat.F16) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R111),
F16_R = c.uint(SceGxmTextureBaseFormat.F16) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R),
U8U8U8U8_ABGR = c.uint(SceGxmTextureBaseFormat.U8U8U8U8) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ABGR),
U8U8U8U8_ARGB = c.uint(SceGxmTextureBaseFormat.U8U8U8U8) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ARGB),
U8U8U8U8_RGBA = c.uint(SceGxmTextureBaseFormat.U8U8U8U8) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_RGBA),
U8U8U8U8_BGRA = c.uint(SceGxmTextureBaseFormat.U8U8U8U8) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_BGRA),
X8U8U8U8_1BGR = c.uint(SceGxmTextureBaseFormat.U8U8U8U8) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1BGR),
X8U8U8U8_1RGB = c.uint(SceGxmTextureBaseFormat.U8U8U8U8) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1RGB),
U8U8U8X8_RGB1 = c.uint(SceGxmTextureBaseFormat.U8U8U8U8) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_RGB1),
U8U8U8X8_BGR1 = c.uint(SceGxmTextureBaseFormat.U8U8U8U8) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_BGR1),
S8S8S8S8_ABGR = c.uint(SceGxmTextureBaseFormat.S8S8S8S8) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ABGR),
S8S8S8S8_ARGB = c.uint(SceGxmTextureBaseFormat.S8S8S8S8) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ARGB),
S8S8S8S8_RGBA = c.uint(SceGxmTextureBaseFormat.S8S8S8S8) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_RGBA),
S8S8S8S8_BGRA = c.uint(SceGxmTextureBaseFormat.S8S8S8S8) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_BGRA),
X8S8S8S8_1BGR = c.uint(SceGxmTextureBaseFormat.S8S8S8S8) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1BGR),
X8S8S8S8_1RGB = c.uint(SceGxmTextureBaseFormat.S8S8S8S8) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1RGB),
S8S8S8X8_RGB1 = c.uint(SceGxmTextureBaseFormat.S8S8S8S8) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_RGB1),
S8S8S8X8_BGR1 = c.uint(SceGxmTextureBaseFormat.S8S8S8S8) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_BGR1),
U2U10U10U10_ABGR = c.uint(SceGxmTextureBaseFormat.U2U10U10U10) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ABGR),
U2U10U10U10_ARGB = c.uint(SceGxmTextureBaseFormat.U2U10U10U10) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ARGB),
U10U10U10U2_RGBA = c.uint(SceGxmTextureBaseFormat.U2U10U10U10) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_RGBA),
U10U10U10U2_BGRA = c.uint(SceGxmTextureBaseFormat.U2U10U10U10) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_BGRA),
X2U10U10U10_1BGR = c.uint(SceGxmTextureBaseFormat.U2U10U10U10) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1BGR),
X2U10U10U10_1RGB = c.uint(SceGxmTextureBaseFormat.U2U10U10U10) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1RGB),
U10U10U10X2_RGB1 = c.uint(SceGxmTextureBaseFormat.U2U10U10U10) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_RGB1),
U10U10U10X2_BGR1 = c.uint(SceGxmTextureBaseFormat.U2U10U10U10) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_BGR1),
U16U16_00GR = c.uint(SceGxmTextureBaseFormat.U16U16) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_00GR),
U16U16_GRRR = c.uint(SceGxmTextureBaseFormat.U16U16) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GRRR),
U16U16_RGGG = c.uint(SceGxmTextureBaseFormat.U16U16) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_RGGG),
U16U16_GRGR = c.uint(SceGxmTextureBaseFormat.U16U16) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GRGR),
U16U16_00RG = c.uint(SceGxmTextureBaseFormat.U16U16) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_00RG),
U16U16_GR = c.uint(SceGxmTextureBaseFormat.U16U16) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GR),
S16S16_00GR = c.uint(SceGxmTextureBaseFormat.S16S16) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_00GR),
S16S16_GRRR = c.uint(SceGxmTextureBaseFormat.S16S16) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GRRR),
S16S16_RGGG = c.uint(SceGxmTextureBaseFormat.S16S16) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_RGGG),
S16S16_GRGR = c.uint(SceGxmTextureBaseFormat.S16S16) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GRGR),
S16S16_00RG = c.uint(SceGxmTextureBaseFormat.S16S16) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_00RG),
S16S16_GR = c.uint(SceGxmTextureBaseFormat.S16S16) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GR),
F16F16_00GR = c.uint(SceGxmTextureBaseFormat.F16F16) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_00GR),
F16F16_GRRR = c.uint(SceGxmTextureBaseFormat.F16F16) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GRRR),
F16F16_RGGG = c.uint(SceGxmTextureBaseFormat.F16F16) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_RGGG),
F16F16_GRGR = c.uint(SceGxmTextureBaseFormat.F16F16) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GRGR),
F16F16_00RG = c.uint(SceGxmTextureBaseFormat.F16F16) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_00RG),
F16F16_GR = c.uint(SceGxmTextureBaseFormat.F16F16) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GR),
F32_000R = c.uint(SceGxmTextureBaseFormat.F32) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_000R),
F32_111R = c.uint(SceGxmTextureBaseFormat.F32) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_111R),
F32_RRRR = c.uint(SceGxmTextureBaseFormat.F32) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_RRRR),
F32_0RRR = c.uint(SceGxmTextureBaseFormat.F32) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_0RRR),
F32_1RRR = c.uint(SceGxmTextureBaseFormat.F32) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_1RRR),
F32_R000 = c.uint(SceGxmTextureBaseFormat.F32) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R000),
F32_R111 = c.uint(SceGxmTextureBaseFormat.F32) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R111),
F32_R = c.uint(SceGxmTextureBaseFormat.F32) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R),
F32M_000R = c.uint(SceGxmTextureBaseFormat.F32M) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_000R),
F32M_111R = c.uint(SceGxmTextureBaseFormat.F32M) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_111R),
F32M_RRRR = c.uint(SceGxmTextureBaseFormat.F32M) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_RRRR),
F32M_0RRR = c.uint(SceGxmTextureBaseFormat.F32M) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_0RRR),
F32M_1RRR = c.uint(SceGxmTextureBaseFormat.F32M) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_1RRR),
F32M_R000 = c.uint(SceGxmTextureBaseFormat.F32M) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R000),
F32M_R111 = c.uint(SceGxmTextureBaseFormat.F32M) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R111),
F32M_R = c.uint(SceGxmTextureBaseFormat.F32M) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R),
X8S8S8U8_1BGR = c.uint(SceGxmTextureBaseFormat.X8S8S8U8) | c.uint(SceGxmTextureSwizzle3Mode.BGR),
X8U8S8S8_1RGB = c.uint(SceGxmTextureBaseFormat.X8S8S8U8) | c.uint(SceGxmTextureSwizzle3Mode.RGB),
X8U24_SD = c.uint(SceGxmTextureBaseFormat.X8U24) | c.uint(SceGxmTextureSwizzle2ModeAlt.SD),
U24X8_DS = c.uint(SceGxmTextureBaseFormat.X8U24) | c.uint(SceGxmTextureSwizzle2ModeAlt.DS),
U32_000R = c.uint(SceGxmTextureBaseFormat.U32) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_000R),
U32_111R = c.uint(SceGxmTextureBaseFormat.U32) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_111R),
U32_RRRR = c.uint(SceGxmTextureBaseFormat.U32) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_RRRR),
U32_0RRR = c.uint(SceGxmTextureBaseFormat.U32) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_0RRR),
U32_1RRR = c.uint(SceGxmTextureBaseFormat.U32) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_1RRR),
U32_R000 = c.uint(SceGxmTextureBaseFormat.U32) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R000),
U32_R111 = c.uint(SceGxmTextureBaseFormat.U32) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R111),
U32_R = c.uint(SceGxmTextureBaseFormat.U32) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R),
S32_000R = c.uint(SceGxmTextureBaseFormat.S32) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_000R),
S32_111R = c.uint(SceGxmTextureBaseFormat.S32) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_111R),
S32_RRRR = c.uint(SceGxmTextureBaseFormat.S32) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_RRRR),
S32_0RRR = c.uint(SceGxmTextureBaseFormat.S32) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_0RRR),
S32_1RRR = c.uint(SceGxmTextureBaseFormat.S32) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_1RRR),
S32_R000 = c.uint(SceGxmTextureBaseFormat.S32) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R000),
S32_R111 = c.uint(SceGxmTextureBaseFormat.S32) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R111),
S32_R = c.uint(SceGxmTextureBaseFormat.S32) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R),
SE5M9M9M9_BGR = c.uint(SceGxmTextureBaseFormat.SE5M9M9M9) | c.uint(SceGxmTextureSwizzle3Mode.BGR),
SE5M9M9M9_RGB = c.uint(SceGxmTextureBaseFormat.SE5M9M9M9) | c.uint(SceGxmTextureSwizzle3Mode.RGB),
F10F11F11_BGR = c.uint(SceGxmTextureBaseFormat.F11F11F10) | c.uint(SceGxmTextureSwizzle3Mode.BGR),
F11F11F10_RGB = c.uint(SceGxmTextureBaseFormat.F11F11F10) | c.uint(SceGxmTextureSwizzle3Mode.RGB),
F16F16F16F16_ABGR = c.uint(SceGxmTextureBaseFormat.F16F16F16F16) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ABGR),
F16F16F16F16_ARGB = c.uint(SceGxmTextureBaseFormat.F16F16F16F16) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ARGB),
F16F16F16F16_RGBA = c.uint(SceGxmTextureBaseFormat.F16F16F16F16) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_RGBA),
F16F16F16F16_BGRA = c.uint(SceGxmTextureBaseFormat.F16F16F16F16) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_BGRA),
X16F16F16F16_1BGR = c.uint(SceGxmTextureBaseFormat.F16F16F16F16) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1BGR),
X16F16F16F16_1RGB = c.uint(SceGxmTextureBaseFormat.F16F16F16F16) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1RGB),
F16F16F16X16_RGB1 = c.uint(SceGxmTextureBaseFormat.F16F16F16F16) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_RGB1),
F16F16F16X16_BGR1 = c.uint(SceGxmTextureBaseFormat.F16F16F16F16) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_BGR1),
U16U16U16U16_ABGR = c.uint(SceGxmTextureBaseFormat.U16U16U16U16) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ABGR),
U16U16U16U16_ARGB = c.uint(SceGxmTextureBaseFormat.U16U16U16U16) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ARGB),
U16U16U16U16_RGBA = c.uint(SceGxmTextureBaseFormat.U16U16U16U16) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_RGBA),
U16U16U16U16_BGRA = c.uint(SceGxmTextureBaseFormat.U16U16U16U16) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_BGRA),
X16U16U16U16_1BGR = c.uint(SceGxmTextureBaseFormat.U16U16U16U16) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1BGR),
X16U16U16U16_1RGB = c.uint(SceGxmTextureBaseFormat.U16U16U16U16) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1RGB),
U16U16U16X16_RGB1 = c.uint(SceGxmTextureBaseFormat.U16U16U16U16) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_RGB1),
U16U16U16X16_BGR1 = c.uint(SceGxmTextureBaseFormat.U16U16U16U16) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_BGR1),
S16S16S16S16_ABGR = c.uint(SceGxmTextureBaseFormat.S16S16S16S16) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ABGR),
S16S16S16S16_ARGB = c.uint(SceGxmTextureBaseFormat.S16S16S16S16) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ARGB),
S16S16S16S16_RGBA = c.uint(SceGxmTextureBaseFormat.S16S16S16S16) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_RGBA),
S16S16S16S16_BGRA = c.uint(SceGxmTextureBaseFormat.S16S16S16S16) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_BGRA),
X16S16S16S16_1BGR = c.uint(SceGxmTextureBaseFormat.S16S16S16S16) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1BGR),
X16S16S16S16_1RGB = c.uint(SceGxmTextureBaseFormat.S16S16S16S16) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1RGB),
S16S16S16X16_RGB1 = c.uint(SceGxmTextureBaseFormat.S16S16S16S16) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_RGB1),
S16S16S16X16_BGR1 = c.uint(SceGxmTextureBaseFormat.S16S16S16S16) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_BGR1),
F32F32_00GR = c.uint(SceGxmTextureBaseFormat.F32F32) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_00GR),
F32F32_GRRR = c.uint(SceGxmTextureBaseFormat.F32F32) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GRRR),
F32F32_RGGG = c.uint(SceGxmTextureBaseFormat.F32F32) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_RGGG),
F32F32_GRGR = c.uint(SceGxmTextureBaseFormat.F32F32) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GRGR),
F32F32_00RG = c.uint(SceGxmTextureBaseFormat.F32F32) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_00RG),
F32F32_GR = c.uint(SceGxmTextureBaseFormat.F32F32) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GR),
U32U32_00GR = c.uint(SceGxmTextureBaseFormat.U32U32) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_00GR),
U32U32_GRRR = c.uint(SceGxmTextureBaseFormat.U32U32) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GRRR),
U32U32_RGGG = c.uint(SceGxmTextureBaseFormat.U32U32) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_RGGG),
U32U32_GRGR = c.uint(SceGxmTextureBaseFormat.U32U32) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GRGR),
U32U32_00RG = c.uint(SceGxmTextureBaseFormat.U32U32) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_00RG),
U32U32_GR = c.uint(SceGxmTextureBaseFormat.U32U32) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GR),
PVRT2BPP_ABGR = c.uint(SceGxmTextureBaseFormat.PVRT2BPP) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ABGR),
PVRT2BPP_1BGR = c.uint(SceGxmTextureBaseFormat.PVRT2BPP) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1BGR),
PVRT4BPP_ABGR = c.uint(SceGxmTextureBaseFormat.PVRT4BPP) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ABGR),
PVRT4BPP_1BGR = c.uint(SceGxmTextureBaseFormat.PVRT4BPP) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1BGR),
PVRTII2BPP_ABGR = c.uint(SceGxmTextureBaseFormat.PVRTII2BPP) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ABGR),
PVRTII2BPP_1BGR = c.uint(SceGxmTextureBaseFormat.PVRTII2BPP) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1BGR),
PVRTII4BPP_ABGR = c.uint(SceGxmTextureBaseFormat.PVRTII4BPP) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ABGR),
PVRTII4BPP_1BGR = c.uint(SceGxmTextureBaseFormat.PVRTII4BPP) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1BGR),
UBC1_ABGR = c.uint(SceGxmTextureBaseFormat.UBC1) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ABGR),
UBC1_1BGR = c.uint(SceGxmTextureBaseFormat.UBC1) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1BGR),
UBC2_ABGR = c.uint(SceGxmTextureBaseFormat.UBC2) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ABGR),
UBC2_1BGR = c.uint(SceGxmTextureBaseFormat.UBC2) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1BGR),
UBC3_ABGR = c.uint(SceGxmTextureBaseFormat.UBC3) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ABGR),
UBC3_1BGR = c.uint(SceGxmTextureBaseFormat.UBC3) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1BGR),
UBC4_000R = c.uint(SceGxmTextureBaseFormat.UBC4) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_000R),
UBC4_111R = c.uint(SceGxmTextureBaseFormat.UBC4) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_111R),
UBC4_RRRR = c.uint(SceGxmTextureBaseFormat.UBC4) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_RRRR),
UBC4_0RRR = c.uint(SceGxmTextureBaseFormat.UBC4) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_0RRR),
UBC4_1RRR = c.uint(SceGxmTextureBaseFormat.UBC4) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_1RRR),
UBC4_R000 = c.uint(SceGxmTextureBaseFormat.UBC4) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R000),
UBC4_R111 = c.uint(SceGxmTextureBaseFormat.UBC4) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R111),
UBC4_R = c.uint(SceGxmTextureBaseFormat.UBC4) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R),
SBC4_000R = c.uint(SceGxmTextureBaseFormat.SBC4) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_000R),
SBC4_111R = c.uint(SceGxmTextureBaseFormat.SBC4) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_111R),
SBC4_RRRR = c.uint(SceGxmTextureBaseFormat.SBC4) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_RRRR),
SBC4_0RRR = c.uint(SceGxmTextureBaseFormat.SBC4) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_0RRR),
SBC4_1RRR = c.uint(SceGxmTextureBaseFormat.SBC4) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_1RRR),
SBC4_R000 = c.uint(SceGxmTextureBaseFormat.SBC4) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R000),
SBC4_R111 = c.uint(SceGxmTextureBaseFormat.SBC4) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R111),
SBC4_R = c.uint(SceGxmTextureBaseFormat.SBC4) | c.uint(SceGxmTextureSwizzle1Mode.SWIZZLE1_R),
UBC5_00GR = c.uint(SceGxmTextureBaseFormat.UBC5) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_00GR),
UBC5_GRRR = c.uint(SceGxmTextureBaseFormat.UBC5) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GRRR),
UBC5_RGGG = c.uint(SceGxmTextureBaseFormat.UBC5) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_RGGG),
UBC5_GRGR = c.uint(SceGxmTextureBaseFormat.UBC5) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GRGR),
UBC5_00RG = c.uint(SceGxmTextureBaseFormat.UBC5) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_00RG),
UBC5_GR = c.uint(SceGxmTextureBaseFormat.UBC5) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GR),
SBC5_00GR = c.uint(SceGxmTextureBaseFormat.SBC5) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_00GR),
SBC5_GRRR = c.uint(SceGxmTextureBaseFormat.SBC5) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GRRR),
SBC5_RGGG = c.uint(SceGxmTextureBaseFormat.SBC5) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_RGGG),
SBC5_GRGR = c.uint(SceGxmTextureBaseFormat.SBC5) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GRGR),
SBC5_00RG = c.uint(SceGxmTextureBaseFormat.SBC5) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_00RG),
SBC5_GR = c.uint(SceGxmTextureBaseFormat.SBC5) | c.uint(SceGxmTextureSwizzle2Mode.SWIZZLE2_GR),
YUV420P2_CSC0 = c.uint(SceGxmTextureBaseFormat.YUV420P2) | c.uint(SceGxmTextureSwizzleYUV420Mode.YUV_CSC0),
YVU420P2_CSC0 = c.uint(SceGxmTextureBaseFormat.YUV420P2) | c.uint(SceGxmTextureSwizzleYUV420Mode.YVU_CSC0),
YUV420P2_CSC1 = c.uint(SceGxmTextureBaseFormat.YUV420P2) | c.uint(SceGxmTextureSwizzleYUV420Mode.YUV_CSC1),
YVU420P2_CSC1 = c.uint(SceGxmTextureBaseFormat.YUV420P2) | c.uint(SceGxmTextureSwizzleYUV420Mode.YVU_CSC1),
YUV420P3_CSC0 = c.uint(SceGxmTextureBaseFormat.YUV420P3) | c.uint(SceGxmTextureSwizzleYUV420Mode.YUV_CSC0),
YVU420P3_CSC0 = c.uint(SceGxmTextureBaseFormat.YUV420P3) | c.uint(SceGxmTextureSwizzleYUV420Mode.YVU_CSC0),
YUV420P3_CSC1 = c.uint(SceGxmTextureBaseFormat.YUV420P3) | c.uint(SceGxmTextureSwizzleYUV420Mode.YUV_CSC1),
YVU420P3_CSC1 = c.uint(SceGxmTextureBaseFormat.YUV420P3) | c.uint(SceGxmTextureSwizzleYUV420Mode.YVU_CSC1),
YUYV422_CSC0 = c.uint(SceGxmTextureBaseFormat.YUV422) | c.uint(SceGxmTextureSwizzleYUV422Mode.YUYV_CSC0),
YVYU422_CSC0 = c.uint(SceGxmTextureBaseFormat.YUV422) | c.uint(SceGxmTextureSwizzleYUV422Mode.YVYU_CSC0),
UYVY422_CSC0 = c.uint(SceGxmTextureBaseFormat.YUV422) | c.uint(SceGxmTextureSwizzleYUV422Mode.UYVY_CSC0),
VYUY422_CSC0 = c.uint(SceGxmTextureBaseFormat.YUV422) | c.uint(SceGxmTextureSwizzleYUV422Mode.VYUY_CSC0),
YUYV422_CSC1 = c.uint(SceGxmTextureBaseFormat.YUV422) | c.uint(SceGxmTextureSwizzleYUV422Mode.YUYV_CSC1),
YVYU422_CSC1 = c.uint(SceGxmTextureBaseFormat.YUV422) | c.uint(SceGxmTextureSwizzleYUV422Mode.YVYU_CSC1),
UYVY422_CSC1 = c.uint(SceGxmTextureBaseFormat.YUV422) | c.uint(SceGxmTextureSwizzleYUV422Mode.UYVY_CSC1),
VYUY422_CSC1 = c.uint(SceGxmTextureBaseFormat.YUV422) | c.uint(SceGxmTextureSwizzleYUV422Mode.VYUY_CSC1),
P4_ABGR = c.uint(SceGxmTextureBaseFormat.P4) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ABGR),
P4_ARGB = c.uint(SceGxmTextureBaseFormat.P4) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ARGB),
P4_RGBA = c.uint(SceGxmTextureBaseFormat.P4) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_RGBA),
P4_BGRA = c.uint(SceGxmTextureBaseFormat.P4) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_BGRA),
P4_1BGR = c.uint(SceGxmTextureBaseFormat.P4) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1BGR),
P4_1RGB = c.uint(SceGxmTextureBaseFormat.P4) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1RGB),
P4_RGB1 = c.uint(SceGxmTextureBaseFormat.P4) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_RGB1),
P4_BGR1 = c.uint(SceGxmTextureBaseFormat.P4) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_BGR1),
P8_ABGR = c.uint(SceGxmTextureBaseFormat.P8) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ABGR),
P8_ARGB = c.uint(SceGxmTextureBaseFormat.P8) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ARGB),
P8_RGBA = c.uint(SceGxmTextureBaseFormat.P8) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_RGBA),
P8_BGRA = c.uint(SceGxmTextureBaseFormat.P8) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_BGRA),
P8_1BGR = c.uint(SceGxmTextureBaseFormat.P8) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1BGR),
P8_1RGB = c.uint(SceGxmTextureBaseFormat.P8) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1RGB),
P8_RGB1 = c.uint(SceGxmTextureBaseFormat.P8) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_RGB1),
P8_BGR1 = c.uint(SceGxmTextureBaseFormat.P8) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_BGR1),
U8U8U8_BGR = c.uint(SceGxmTextureBaseFormat.U8U8U8) | c.uint(SceGxmTextureSwizzle3Mode.BGR),
U8U8U8_RGB = c.uint(SceGxmTextureBaseFormat.U8U8U8) | c.uint(SceGxmTextureSwizzle3Mode.RGB),
S8S8S8_BGR = c.uint(SceGxmTextureBaseFormat.S8S8S8) | c.uint(SceGxmTextureSwizzle3Mode.BGR),
S8S8S8_RGB = c.uint(SceGxmTextureBaseFormat.S8S8S8) | c.uint(SceGxmTextureSwizzle3Mode.RGB),
U2F10F10F10_ABGR = c.uint(SceGxmTextureBaseFormat.U2F10F10F10) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ABGR),
U2F10F10F10_ARGB = c.uint(SceGxmTextureBaseFormat.U2F10F10F10) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_ARGB),
F10F10F10U2_RGBA = c.uint(SceGxmTextureBaseFormat.U2F10F10F10) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_RGBA),
F10F10F10U2_BGRA = c.uint(SceGxmTextureBaseFormat.U2F10F10F10) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_BGRA),
X2F10F10F10_1BGR = c.uint(SceGxmTextureBaseFormat.U2F10F10F10) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1BGR),
X2F10F10F10_1RGB = c.uint(SceGxmTextureBaseFormat.U2F10F10F10) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_1RGB),
F10F10F10X2_RGB1 = c.uint(SceGxmTextureBaseFormat.U2F10F10F10) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_RGB1),
F10F10F10X2_BGR1 = c.uint(SceGxmTextureBaseFormat.U2F10F10F10) | c.uint(SceGxmTextureSwizzle4Mode.SWIZZLE4_BGR1),
// Legacy formats
L8 = U8_1RRR,
A8 = U8_R000,
R8 = U8_000R,
A4R4G4B4 = U4U4U4U4_ARGB,
A1R5G5B5 = U1U5U5U5_ARGB,
R5G6B5 = U5U6U5_RGB,
A8L8 = U8U8_GRRR,
L8A8 = U8U8_RGGG,
G8R8 = U8U8_00GR,
L16 = U16_1RRR,
A16 = U16_R000,
R16 = U16_000R,
D16 = U16_R,
LF16 = F16_1RRR,
AF16 = F16_R000,
RF16 = F16_000R,
A8R8G8B8 = U8U8U8U8_ARGB,
A8B8G8R8 = U8U8U8U8_ABGR,
AF16LF16 = F16F16_GRRR,
LF16AF16 = F16F16_RGGG,
GF16RF16 = F16F16_00GR,
LF32M = F32M_1RRR,
AF32M = F32M_R000,
RF32M = F32M_000R,
DF32M = F32M_R,
VYUY = VYUY422_CSC0,
YVYU = YVYU422_CSC0,
UBC1 = UBC1_ABGR,
UBC2 = UBC2_ABGR,
UBC3 = UBC3_ABGR,
PVRT2BPP = PVRT2BPP_ABGR,
PVRT4BPP = PVRT4BPP_ABGR,
PVRTII2BPP = PVRTII2BPP_ABGR,
PVRTII4BPP = PVRTII4BPP_ABGR,
}
SceGxmTextureType :: enum c.uint {
SWIZZLED = 0x00000000,
CUBE = 0x40000000,
LINEAR = 0x60000000,
TILED = 0x80000000,
SWIZZLED_ARBITRARY = 0xA0000000,
LINEAR_STRIDED = 0xC0000000,
CUBE_ARBITRARY = 0xE0000000,
}
SceGxmTextureFilter :: enum c.uint {
POINT = 0x00000000,
LINEAR = 0x00000001,
MIPMAP_LINEAR = 0x00000002,
MIPMAP_POINT = 0x00000003,
}
SceGxmTextureMipFilter :: enum c.uint {
DISABLED = 0x00000000,
ENABLED = 0x00000200,
}
SceGxmTextureAddrMode :: enum c.uint {
REPEAT = 0x00000000,
MIRROR = 0x00000001,
CLAMP = 0x00000002,
MIRROR_CLAMP = 0x00000003,
REPEAT_IGNORE_BORDER = 0x00000004,
CLAMP_FULL_BORDER = 0x00000005,
CLAMP_IGNORE_BORDER = 0x00000006,
CLAMP_HALF_BORDER = 0x00000007,
}
SceGxmTextureGammaMode :: enum c.uint {
NONE = 0x00000000,
R = 0x08000000,
GR = 0x18000000,
BGR = 0x08000000,
}
SceGxmTextureNormalizeMode :: enum c.uint {
DISABLED = 0x00000000,
ENABLED = 0x80000000,
}
SceGxmIndexFormat :: enum c.uint {
U16 = 0x00000000,
U32 = 0x01000000,
}
SceGxmIndexSource :: enum c.uint {
INDEX_16BIT = 0x00000000,
INDEX_32BIT = 0x00000001,
INSTANCE_16BIT = 0x00000002,
INSTANCE_32BIT = 0x00000003,
}
SceGxmFragmentProgramMode :: enum c.uint {
DISABLED = 0x00200000,
ENABLED = 0x00000000,
}
SceGxmDepthWriteMode :: enum c.uint {
DISABLED = 0x00100000,
ENABLED = 0x00000000,
}
SceGxmLineFillLastPixelMode :: enum c.uint {
DISABLED = 0x00000000,
ENABLED = 0x00080000,
}
SceGxmTwoSidedMode :: enum c.uint {
DISABLED = 0x00000000,
ENABLED = 0x00000800,
}
SceGxmWClampMode :: enum c.uint {
DISABLED = 0x00000000,
ENABLED = 0x00008000,
}
SceGxmViewportMode :: enum c.uint {
DISABLED = 0x00010000,
ENABLED = 0x00000000,
}
SceGxmWBufferMode :: enum c.uint {
DISABLED = 0x00000000,
ENABLED = 0x00004000,
}
SceGxmDepthStencilForceLoadMode :: enum c.uint {
DISABLED = 0x00000000,
ENABLED = 0x00000002,
}
SceGxmDepthStencilForceStoreMode :: enum c.uint {
DISABLED = 0x00000000,
ENABLED = 0x00000004,
}
SceGxmSceneFlags :: enum c.uint {
FRAGMENT_SET_DEPENDENCY = 0x00000001,
VERTEX_WAIT_FOR_DEPENDENCY = 0x00000002,
FRAGMENT_TRANSFER_SYNC = 0x00000004,
VERTEX_TRANSFER_SYNC = 0x00000008,
}
SceGxmMidSceneFlags :: enum c.uint {
PRESERVE_DEFAULT_UNIFORM_BUFFERS = 0x00000001,
}
SceGxmColorSurfaceScaleMode :: enum c.uint {
NONE = 0x00000000,
MSAA_DOWNSCALE = 0x00000001,
}
SceGxmOutputRegisterSize :: enum c.uint {
REGISTER_SIZE_32BIT = 0x00000000,
REGISTER_SIZE_64BIT = 0x00000001,
}
SceGxmVisibilityTestMode :: enum c.uint {
DISABLED = 0x00000000,
ENABLED = 0x00004000,
}
SceGxmVisibilityTestOp :: enum c.uint {
INCREMENT = 0x00000000,
SET = 0x00040000,
}
SceGxmYuvProfile :: enum c.int {
BT601_STANDARD,
BT709_STANDARD,
BT601_FULL_RANGE,
BT709_FULL_RANGE,
}
SceGxmBlendFunc :: enum c.int {
NONE,
ADD,
SUBTRACT,
REVERSE_SUBTRACT,
MIN,
MAX
}
SceGxmBlendFactor :: enum c.int {
ZERO,
ONE,
SRC_COLOR,
ONE_MINUS_SRC_COLOR,
SRC_ALPHA,
ONE_MINUS_SRC_ALPHA,
DST_COLOR,
ONE_MINUS_DST_COLOR,
DST_ALPHA,
ONE_MINUS_DST_ALPHA,
SRC_ALPHA_SATURATE,
DST_ALPHA_SATURATE
}
SceGxmColorMask :: enum c.int {
NONE = 0,
A = (1 << 0),
R = (1 << 1),
G = (1 << 2),
B = (1 << 3),
ALL = (A | B | G | R)
}
SceGxmTransferFormat :: enum c.uint {
U8_R = 0x00000000,
U4U4U4U4_ABGR = 0x00010000,
U1U5U5U5_ABGR = 0x00020000,
U5U6U5_BGR = 0x00030000,
U8U8_GR = 0x00040000,
U8U8U8_BGR = 0x00050000,
U8U8U8U8_ABGR = 0x00060000,
VYUY422 = 0x00070000,
YVYU422 = 0x00080000,
UYVY422 = 0x00090000,
YUYV422 = 0x000a0000,
U2U10U10U10_ABGR = 0x000d0000,
RAW16 = 0x000f0000,
RAW32 = 0x00110000,
RAW64 = 0x00120000,
RAW128 = 0x00130000,
}
SceGxmTransferFlags :: enum c.uint {
FRAGMENT_SYNC = 0x00000001,
VERTEX_SYNC = 0x00000002,
}
SceGxmTransferColorKeyMode :: enum c.int {
NONE = 0,
PASS = 1,
REJECT = 2
}
SceGxmTransferType :: enum c.uint {
LINEAR = 0x00000000,
TILED = 0x00400000,
SWIZZLED = 0x00800000,
}
SceGxmBlendInfo :: bit_field c.int {
colorMask: c.uint8_t | 8, //!< Color Mask (One of ::SceGxmColorMask)
colorFunc: c.uint8_t | 4, //!< Color blend function (One of ::SceGxmBlendFunc)
alphaFunc: c.uint8_t | 4, //!< Alpha blend function (One of ::SceGxmBlendFunc)
colorSrc: c.uint8_t | 4, //!< Color source blend factor (One of ::SceGxmBlendFactor)
colorDst: c.uint8_t | 4, //!< Color destination blend factor (One of ::SceGxmBlendFactor)
alphaSrc: c.uint8_t | 4, //!< Alpha source blend factor (One of ::SceGxmBlendFactor)
alphaDst: c.uint8_t | 4, //!< Alpha destination blend factor (One of ::SceGxmBlendFactor)
}
#assert(size_of(SceGxmBlendInfo) == 4)
SceGxmRenderTarget :: struct{}
SceGxmSyncObject :: struct{}
SceGxmVertexAttribute :: struct {
streamIndex: c.uint16_t, //!< Vertex stream index
offset: c.uint16_t, //!< Offset for the stream data in bytes
format: c.uint8_t, //!< Stream data type (One of ::SceGxmAttributeFormat)
componentCount: c.uint8_t, //!< Number of components for the stream data
regIndex: c.uint16_t, //!< The register index in the vertex shader to link stream to.
}
#assert(size_of(SceGxmVertexAttribute) == 8)
SceGxmVertexStream :: struct {
stride: c.uint16_t,
indexSource: c.uint16_t,
}
#assert(size_of(SceGxmVertexStream) == 4)
SceGxmTextureHi8Bytes :: struct {
// Control Word 0
using _: struct #raw_union {
generic: bit_field c.int { // Non LINEAR_STRIDED textures
unk0 : c.uint32_t | 1, //!< Unknown field
stride_ext : c.uint32_t | 2, //!< Stride extension for a LINEAR_STRIDED texture
vaddr_mode : c.uint32_t | 3, //!< V Address Mode
uaddr_mode : c.uint32_t | 3, //!< U Address Mode
mip_filter : c.uint32_t | 1, //!< Mip filter for a non LINEAR_STRIDED texture
min_filter : c.uint32_t | 2, //!< Min filter for a non LINEAR_STRIDED texture)
mag_filter : c.uint32_t | 2, //!< Mag Filter (and Min filter if LINEAR_STRIDED texture)
unk1 : c.uint32_t | 3, //!< Unknown field
mip_count : c.uint32_t | 4, //!< Mip count for a non LINEAR_STRIDED texture
lod_bias : c.uint32_t | 6, //!< Level of Details value for a non LINEAR_STRIDED texture
gamma_mode : c.uint32_t | 2, //!< Gamma mode
unk2 : c.uint32_t | 2, //!< Unknown field
format0 : c.uint32_t | 1, //!< Texture format extension
},
linear_strided: bit_field c.int { // LINEAR_STRIDED textures
unk0 : c.uint32_t | 1, //!< Unknown field
stride_ext : c.uint32_t | 2, //!< Stride extension for a LINEAR_STRIDED texture
vaddr_mode : c.uint32_t | 3, //!< V Address Mode
uaddr_mode : c.uint32_t | 3, //!< U Address Mode
stride_low : c.uint32_t | 3, //!< Internal stride lower bits for a LINEAR_STRIDED texture
mag_filter : c.uint32_t | 2, //!< Mag Filter (and Min filter if LINEAR_STRIDED texture)
unk1 : c.uint32_t | 3, //!< Unknown field
stride : c.uint32_t | 10, //!< Stride for a LINEAR_STRIDED texture
gamma_mode : c.uint32_t | 2, //!< Gamma mode
unk2 : c.uint32_t | 2, //!< Unknown field
format0 : c.uint32_t | 1, //!< Texture format extension
},
},
// Control Word 1
using _ : struct #raw_union {
generic2: bit_field c.int { // Non SWIZZLED and non CUBE textures
height : c.uint32_t | 12, //!< Texture height for non SWIZZLED and non CUBE textures
width : c.uint32_t | 12, //!< Texture width for non SWIZZLED and non CUBE textures
base_format : c.uint32_t | 5, //!< Texture base format
type : c.uint32_t | 3, //!< Texture format type
},
swizzled_cube: bit_field c.int { // SWIZZLED and CUBE textures
height_pot : c.uint32_t | 4, //!< Power of 2 height value for SWIZZLED and CUBE textures
reserved0 : c.uint32_t | 12, //!< Reserved field
width_pot : c.uint32_t | 4, //!< Power of 2 width value for SWIZZLED and CUBE textures
reserved1 : c.uint32_t | 4, //!< Reserved field
base_format : c.uint32_t | 5, //!< Texture base format
type : c.uint32_t | 3, //!< Texture format type
},
},
}
#assert(size_of(SceGxmTextureHi8Bytes) == 8)
SceGxmTextureLo8Bytes :: bit_field c.longlong {
// Control Word 2
lod_min0: c.uint32_t | 2, //!< Level of Details higher bits
data_addr: c.uint32_t | 30, //!< Texture data address
// Control Word 3
palette_addr: c.uint32_t | 26, //!< Texture palette address
lod_min1: c.uint32_t | 2, //!< Level of Details lower bits
swizzle_format: c.uint32_t | 3, //!< Texture format swizzling
normalize_mode: c.uint32_t | 1, //!< Normalize mode
}
#assert(size_of(SceGxmTextureLo8Bytes) == 8)
//! Texture struct
SceGxmTexture :: struct {
using hi: SceGxmTextureHi8Bytes,
using lo: SceGxmTextureLo8Bytes,
}
#assert(size_of(SceGxmTexture) == 0x10)
SceGxmCommandList :: struct {
words: [8]c.uint32_t,
}
#assert(size_of(SceGxmCommandList) == 0x20)
SceGxmColorSurface :: struct {
pbeSidebandWord: c.uint,
pbeEmitWords: [6]c.uint,
outputRegisterSize: c.uint,
backgroundTex: SceGxmTexture,
}
#assert(size_of(SceGxmColorSurface) == 0x30)
SceGxmDepthStencilSurface :: struct {
zlsControl: c.uint,
depthData: rawptr,
stencilData: rawptr,
backgroundDepth: c.float,
backgroundControl: c.uint,
}
when size_of(rawptr) == 4 {
#assert(size_of(SceGxmDepthStencilSurface) == 0x14)
}
//! Represents an auxiliary surface
SceGxmAuxiliarySurface :: struct {
colorFormat: c.uint32_t, //!< Format of auxiliary surface data from SceGxmColorFormat
type: c.uint32_t, //!< Memory layout of the surface data from SceGxmColorSurfaceType
width: c.uint32_t, //!< Surface width
height: c.uint32_t, //!< Surface height
stride: c.uint32_t, //!< Surface stride in bytes
data: rawptr, //!< A pointer to the surface data
}
when size_of(rawptr) == 4 {
#assert(size_of(SceGxmAuxiliarySurface) == 0x18)
}
SceGxmNotification :: struct {
address: ^c.uint,
value: c.uint,
}
when size_of(rawptr) == 4 {
#assert(size_of(SceGxmNotification) == 8)
}
SceGxmValidRegion :: struct {
xMax: c.uint32_t,
yMax: c.uint32_t,
}
#assert(size_of(SceGxmValidRegion) == 8)
SceGxmContext :: struct{}
SCE_GXM_MINIMUM_CONTEXT_HOST_MEM_SIZE :: (2 * 1024)
SCE_GXM_DEFAULT_PARAMETER_BUFFER_SIZE :: (16 * 1024 * 1024)
SCE_GXM_DEFAULT_VDM_RING_BUFFER_SIZE :: (128 * 1024)
SCE_GXM_DEFAULT_VERTEX_RING_BUFFER_SIZE :: (2 * 1024 * 1024)
SCE_GXM_DEFAULT_FRAGMENT_RING_BUFFER_SIZE :: (512 * 1024)
SCE_GXM_DEFAULT_FRAGMENT_USSE_RING_BUFFER_SIZE :: (16 * 1024)
SceGxmContextParams :: struct {
hostMem: rawptr,
hostMemSize: sce.Size,
vdmRingBufferMem: rawptr,
vdmRingBufferMemSize: sce.Size,
vertexRingBufferMem: rawptr,
vertexRingBufferMemSize: sce.Size,
fragmentRingBufferMem: rawptr,
fragmentRingBufferMemSize: sce.Size,
fragmentUsseRingBufferMem: rawptr,
fragmentUsseRingBufferMemSize: sce.Size,
fragmentUsseRingBufferOffset: c.uint,
}
when size_of(rawptr) == 4 {
#assert(size_of(SceGxmContextParams) == 0x2C)
}
SceGxmDeferredContextParams :: struct {
hostMem: rawptr,
hostMemSize: sce.Size,
vdmCallback: #type ^proc(args: rawptr, requestedSize: sce.Size, size: ^sce.Size) -> rawptr,
vertexCallback: #type ^proc(args: rawptr, requestedSize: sce.Size, size: ^sce.Size) -> rawptr,
fragmentCallback: #type ^proc(args: rawptr, requestedSize: sce.Size, size: ^sce.Size) -> rawptr,
callbackData: rawptr,
vdmRingBufferMem: rawptr,
vdmRingBufferMemSize: sce.Size,
vertexRingBufferMem: rawptr,
vertexRingBufferMemSize: sce.Size,
fragmentRingBufferMem: rawptr,
fragmentRingBufferMemSize: sce.Size,
}
when size_of(rawptr) == 4 {
#assert(size_of(SceGxmDeferredContextParams) == 0x30)
}
SceGxmVertexProgram :: struct{}
SceGxmFragmentProgram :: struct{}
SceGxmPrecomputedWordCount :: enum c.int {
VERTEX_STATE_WORD_COUNT = 7,
FRAGMENT_STATE_WORD_COUNT = 9,
DRAW_WORD_COUNT = 11,
}
SceGxmPrecomputedVertexState :: struct {
data: [SceGxmPrecomputedWordCount.VERTEX_STATE_WORD_COUNT]c.uint,
}
#assert(size_of(SceGxmPrecomputedVertexState) == 0x1C)
SceGxmPrecomputedFragmentState :: struct {
data: [SceGxmPrecomputedWordCount.FRAGMENT_STATE_WORD_COUNT]c.uint,
}
#assert(size_of(SceGxmPrecomputedFragmentState) == 0x24)
SceGxmPrecomputedDraw :: struct {
data: [SceGxmPrecomputedWordCount.DRAW_WORD_COUNT]c.uint,
}
#assert(size_of(SceGxmPrecomputedDraw) == 0x2C)
SCE_GXM_MAX_VERTEX_ATTRIBUTES :: 16
SCE_GXM_MAX_VERTEX_STREAMS :: 16
SCE_GXM_MAX_TEXTURE_UNITS :: 16
SCE_GXM_MAX_UNIFORM_BUFFERS :: 14
SCE_GXM_MAX_AUXILIARY_SURFACES :: 3
SCE_GXM_TILE_SHIFTX : c.uint : 5
SCE_GXM_TILE_SHIFTY : c.uint : 5
SCE_GXM_TILE_SIZEX : c.uint : (1 << SCE_GXM_TILE_SHIFTX)
SCE_GXM_TILE_SIZEY : c.uint : (1 << SCE_GXM_TILE_SHIFTY)
SCE_GXM_COLOR_SURFACE_ALIGNMENT : c.uint : 4
SCE_GXM_TEXTURE_ALIGNMENT : c.uint : 16
SCE_GXM_DEPTHSTENCIL_SURFACE_ALIGNMENT : c.uint : 16
SCE_GXM_PALETTE_ALIGNMENT : c.uint : 64
SceGxmProgram :: struct{}
SceGxmProgramParameter :: struct{}
SceGxmProgramType :: enum c.int {
VERTEX_PROGRAM,
FRAGMENT_PROGRAM
}
SceGxmParameterCategory :: enum c.int {
ATTRIBUTE,
UNIFORM,
SAMPLER,
AUXILIARY_SURFACE,
UNIFORM_BUFFER
}
SceGxmParameterType :: enum c.int {
F32,
F16,
C10,
U32,
S32,
U16,
S16,
U8,
S8,
AGGREGATE
}
SceGxmParameterSemantic :: enum c.int {
NONE,
ATTR,
BCOL,
BINORMAL,
BLENDINDICES,
BLENDWEIGHT,
COLOR,
DIFFUSE,
FOGCOORD,
NORMAL,
POINTSIZE,
POSITION,
SPECULAR,
TANGENT,
TEXCOORD
}
SceGxmShaderPatcher :: struct{}
SceGxmRegisteredProgram :: struct{}
SceGxmShaderPatcherId :: ^SceGxmRegisteredProgram
when size_of(rawptr) == 4 {
#assert(size_of(SceGxmShaderPatcherId) == 4)
}
SceGxmShaderPatcherHostAllocCallback :: #type proc(userData: rawptr, size: sce.Size) -> rawptr
SceGxmShaderPatcherHostFreeCallback :: #type proc(userData: rawptr, mem: rawptr)
SceGxmShaderPatcherBufferAllocCallback :: #type proc(userData: rawptr, size: sce.Size) -> rawptr
SceGxmShaderPatcherBufferFreeCallback :: #type proc(userData: rawptr, mem: rawptr)
SceGxmShaderPatcherUsseAllocCallback :: #type proc(userData: rawptr, size: sce.Size, usseOffset: ^c.uint) -> rawptr
SceGxmShaderPatcherUsseFreeCallback :: #type proc(userData: rawptr, mem: rawptr)
SceGxmShaderPatcherParams :: struct {
userData: rawptr,
hostAllocCallback: ^SceGxmShaderPatcherHostAllocCallback,
hostFreeCallback: ^SceGxmShaderPatcherHostFreeCallback,
bufferAllocCallback: ^SceGxmShaderPatcherBufferAllocCallback,
bufferFreeCallback: ^SceGxmShaderPatcherBufferFreeCallback,
bufferMem: rawptr,
bufferMemSize: sce.Size,
vertexUsseAllocCallback: ^SceGxmShaderPatcherUsseAllocCallback,
vertexUsseFreeCallback: ^SceGxmShaderPatcherUsseFreeCallback,
vertexUsseMem: rawptr,
vertexUsseMemSize: sce.Size,
vertexUsseOffset: c.uint,
fragmentUsseAllocCallback: ^SceGxmShaderPatcherUsseAllocCallback,
fragmentUsseFreeCallback: ^SceGxmShaderPatcherUsseFreeCallback,
fragmentUsseMem: rawptr,
fragmentUsseMemSize: sce.Size,
fragmentUsseOffset: c.uint,
}
when size_of(rawptr) == 4 {
#assert(size_of(SceGxmShaderPatcherParams) == 0x44)
}
SceGxmRenderTargetFlags :: enum c.int {
CUSTOM_MULTISAMPLE_LOCATIONS = (1 << 0)
}
SceGxmRenderTargetParams :: struct {
flags: c.uint32_t, //!< Bitwise combined flags from ::SceGxmRenderTargetFlags.
width: c.uint16_t, //!< The width of the render target in pixels.
height: c.uint16_t, //!< The height of the render target in pixels.
scenesPerFrame: c.uint16_t, //!< The expected number of scenes per frame, in the range [1,SCE_GXM_MAX_SCENES_PER_RENDERTARGET].
multisampleMode: c.uint16_t, //!< A value from the #SceGxmMultisampleMode enum.
multisampleLocations: c.uint32_t, //!< If enabled in the flags, the multisample locations to use.
driverMemBlock: sce.UID, //!< The uncached LPDDR memblock for the render target GPU data structures or SCE_UID_INVALID_UID to specify memory should be allocated in libgxm.
}
#assert(size_of(SceGxmRenderTargetParams) == 0x14)
/** GXT error codes */
SceGxtErrorCode :: enum c.uint {
INVALID_VALUE = 0x805D0000,
INVALID_POINTER = 0x805D0001,
INVALID_ALIGNMENT = 0x805D0002
}
/** Header for a GXT file */
SceGxtHeader :: struct {
tag: c.uint32_t, //!< GXT Identifier
version: c.uint32_t, //!< Version number
numTextures: c.uint32_t, //!< Number of textures
dataOffset: c.uint32_t, //!< Offset to the texture data
dataSize: c.uint32_t, //!< Total size of the texture data
numP4Palettes: c.uint32_t, //!< Number of 16 entry palettes
numP8Palettes: c.uint32_t, //!< Number of 256 entry palettes
pad: c.uint32_t, //!< Padding
}
#assert(size_of(SceGxtHeader) == 0x20)
/** This structure contains information about each texture in the GXT file */
SceGxtTextureInfo :: struct {
dataOffset: c.uint32_t, //!< Offset to the texture data
dataSize: c.uint32_t, //!< Size of the texture data
paletteIndex: c.uint32_t, //!< Index of the palette
flags: c.uint32_t, //!< Texture flags
type: c.uint32_t, //!< Texture type
format: c.uint32_t, //!< Texture format
width: c.uint16_t, //!< Texture width
height: c.uint16_t, //!< Texture height
mipCount: c.uint8_t, //!< Number of mipmaps
pad: [3]c.uint8_t, //!< Padding
}
#assert(size_of(SceGxtTextureInfo) == 0x20)