Files
2026-01-18 12:27:37 +01:00

59 lines
1.2 KiB
C++

#ifndef EGG_STATE_EFB_H
#define EGG_STATE_EFB_H
#include "common.h"
#include "egg/egg_types.h"
namespace EGG {
class StateEfb {
public:
enum BufferType {
BUFFER_TYPE_0,
BUFFER_TYPE_1,
BUFFER_TYPE_2,
BUFFER_TYPE_3,
BUFFER_TYPE_MAX,
};
enum WorkBuffer {
WORK_BUFFER_0,
WORK_BUFFER_1,
};
struct Buffer {
TextureBuffer *buf;
u32 userData;
u32 field_0x08;
};
private:
static Buffer spBufferSet[BUFFER_TYPE_MAX];
static f32 sWorkSpaceV[6];
static f32 sWorkSpaceHideV[6];
static f32 sShiftViewPort[6]; // unk name
static s32 sWorkBuffer;
static s32 sPushCount;
static u32 sFlag;
static bool isEnableDirtyBufferMode();
static bool GetUseTfRgb565();
public:
static bool CheckFlag0x2() {
return (sFlag & 2) != 0;
}
static void Clean();
static TextureBuffer *captureEfb(BufferType type, bool, u32 userData);
static bool releaseEfb(BufferType type, u32 userData);
static void pushWorkBuffer(WorkBuffer work, u32 userData);
static void popWorkBuffer(bool b, u32 userData);
static f32 *shiftWorkSpaceViewportGX();
};
} // namespace EGG
#endif