mirror of
https://github.com/zeldaret/ss
synced 2026-05-24 07:10:53 -04:00
59 lines
1.2 KiB
C++
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
|