#ifndef EGG_DRAW_PATH_DOF_H #define EGG_DRAW_PATH_DOF_H #include "egg/gfx/eggDrawPathBase.h" #include "egg/gfx/eggTextureBuffer.h" #include "egg/prim/eggBinary.h" #include "egg/egg_types.h" namespace EGG { class DrawPathDOF : public DrawPathBase, public IBinary { public: class BinData { // TODO }; DrawPathDOF(); virtual ~DrawPathDOF(); virtual u16 getNumStep() const override { return 3; } virtual void internalResetForDraw() override; virtual void internalDraw(u16) override; virtual void SetBinaryInner(const Bin &) override; virtual void GetBinaryInner(Bin *) const override; virtual void SetBinaryInner(const Bin &, const Bin &, f32) override; void updateShimmer(); private: void internalDrawStandard(u16); void internalDrawLite(u16); void allocAndCaptureBlurBuffer(u16 x, u16 y, u16 width, u16 height); /* 0x1C */ u16 field_0x1C; /* 0x1E */ u8 field_0x1E; /* 0x1F */ u8 field_0x1F; /* 0x20 */ s32 field_0x20; /* 0x24 */ f32 field_0x24; /* 0x28 */ f32 field_0x28; /* 0x2C */ f32 field_0x2C; /* 0x30 */ f32 field_0x30; /* 0x34 */ s32 field_0x34; /* 0x38 */ s32 field_0x38; /* 0x3C */ u8 _0x3C[0x5C - 0x3C]; /* 0x5C */ f32 field_0x5C; /* 0x60 */ f32 field_0x60; /* 0x64 */ f32 field_0x64; /* 0x68 */ f32 field_0x68; /* 0x6C */ f32 field_0x6C; /* 0x70 */ f32 field_0x70; /* 0x74 */ f32 field_0x74; /* 0x78 */ f32 field_0x78; /* 0x7C */ f32 field_0x7C; /* 0x80 */ u8 field_0x80; /* 0x84 */ PostEffectBlur *mpBlur; /* 0x88 */ PostEffectMaskDOF *mpMaskDof; /* 0x8C */ TextureBuffer *mpTextureBuffer; /* 0x90 */ PostEffectMask *mpMask; }; } // namespace EGG #endif