2024-09-08 21:04:31 -04:00
|
|
|
#ifndef GX_FORMAT_H
|
|
|
|
|
#define GX_FORMAT_H
|
|
|
|
|
|
|
|
|
|
#include "system/types.h"
|
|
|
|
|
|
|
|
|
|
#include "tempest/vector.h"
|
|
|
|
|
|
2024-11-27 01:59:15 -05:00
|
|
|
DECLARE_ENUM(CGxFormat__Format);
|
2024-09-08 21:04:31 -04:00
|
|
|
typedef struct CGxFormat CGxFormat;
|
|
|
|
|
|
|
|
|
|
enum CGxFormat__Format {
|
|
|
|
|
Fmt_Rgb565 = 0,
|
|
|
|
|
Fmt_ArgbX888 = 1,
|
|
|
|
|
Fmt_Argb8888 = 2,
|
|
|
|
|
Fmt_Argb2101010 = 3,
|
|
|
|
|
Fmt_Ds160 = 4,
|
|
|
|
|
Fmt_Ds24X = 5,
|
|
|
|
|
Fmt_Ds248 = 6,
|
|
|
|
|
Fmt_Ds320 = 7,
|
|
|
|
|
Formats_Last = 8
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct CGxFormat {
|
2025-05-08 00:05:46 -04:00
|
|
|
uint32_t apiSpecificModeID;
|
2024-09-08 21:04:31 -04:00
|
|
|
bool hwTnL;
|
2025-03-06 16:40:31 -05:00
|
|
|
bool hwCursor; // 0x5, UC
|
2024-09-08 21:04:31 -04:00
|
|
|
int8_t fixLag;
|
|
|
|
|
int8_t window;
|
2025-03-06 16:40:31 -05:00
|
|
|
bool aspect; // UC
|
2024-09-08 21:04:31 -04:00
|
|
|
int32_t maximize;
|
|
|
|
|
CGxFormat__Format depthFormat;
|
|
|
|
|
C2iVector size;
|
2025-03-06 16:40:31 -05:00
|
|
|
// set by CVGxTripleBufferCallback
|
2025-04-29 16:26:36 -04:00
|
|
|
uint32_t backBufferCount; // buffering? buffer? framebufferCount?
|
2025-06-04 17:42:08 -04:00
|
|
|
uint32_t multisampleCount;
|
|
|
|
|
float multisampleQuality; // UC, write at 00769693
|
2024-09-08 21:04:31 -04:00
|
|
|
CGxFormat__Format colorFormat;
|
|
|
|
|
uint32_t refreshRate;
|
|
|
|
|
uint32_t vsync;
|
2025-03-06 16:40:31 -05:00
|
|
|
bool stereoEnabled; // UC, 34
|
|
|
|
|
// something to do with fixed function?
|
|
|
|
|
// write at 0076AD4C
|
2025-05-08 00:05:46 -04:00
|
|
|
// vertexShaderTarget ?
|
|
|
|
|
int32_t fixedFunction[6];
|
2024-09-08 21:04:31 -04:00
|
|
|
C2iVector pos;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif
|