summaryrefslogtreecommitdiff
path: root/include/egg/gfx/eggDrawPathBase.h
blob: f1e91613194bb9523d6061612c9e3aeb8567292e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#ifndef EGG_DRAW_PATH_BASE_H
#define EGG_DRAW_PATH_BASE_H

#include "egg/egg_types.h"
#include "egg/gfx/eggIScnProc.h"
#include "egg/gfx/eggScreenEffectBase.h"
#include "nw4r/g3d/g3d_scnobj.h"

namespace EGG {

class DrawPathBase : public ScreenEffectBase, public IScnProc, public nw4r::g3d::IScnObjCallback {
public:
    DrawPathBase();

    void createScnProc(MEMAllocator *allocator);

protected:
    virtual u16 getNumStep() const = 0;    // at 0x3C
    virtual void internalResetForDraw() {} // at 0x40
    virtual void internalDraw(u16) = 0;    // at 0x44

    virtual void ExecCallback_CALC_VIEW(
        nw4r::g3d::ScnObj::Timing /* timing */, nw4r::g3d::ScnObj * /* pObj */, u32 /* param */, void * /* pInfo */
    ) override;                                                                                         // also at 0x48
    virtual void scnProcDraw(u16) override;                                                             // also at 0x4C
};

} // namespace EGG

#endif