diff options
| author | robojumper <robojumper@gmail.com> | 2025-03-15 22:14:01 +0100 |
|---|---|---|
| committer | robojumper <robojumper@gmail.com> | 2025-03-16 22:17:50 +0100 |
| commit | 8759f710e57f66d035998428b8c864da80e36fd7 (patch) | |
| tree | 8c4f8e6baa69c7129b4890f050ed58c63884d591 /src/egg/gfx/eggDrawPathBase.cpp | |
| parent | 9b7889f03497dfae5792ee24803a80a7cb6a7281 (diff) | |
more
Diffstat (limited to 'src/egg/gfx/eggDrawPathBase.cpp')
| -rw-r--r-- | src/egg/gfx/eggDrawPathBase.cpp | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/src/egg/gfx/eggDrawPathBase.cpp b/src/egg/gfx/eggDrawPathBase.cpp index e59be480..de88310e 100644 --- a/src/egg/gfx/eggDrawPathBase.cpp +++ b/src/egg/gfx/eggDrawPathBase.cpp @@ -1,3 +1,44 @@ #include "egg/gfx/eggDrawPathBase.h" -namespace EGG {} // namespace EGG +#include "common.h" +#include "egg/gfx/eggIScnProc.h" +#include "nw4r/g3d/g3d_scnobj.h" +#include "nw4r/g3d/g3d_scnproc.h" + +namespace EGG { + +DrawPathBase::DrawPathBase() {} + +void DrawPathBase::createScnProc(MEMAllocator *allocator) { + IScnProc::createScnProc(getNumStep(), allocator); + for (u16 i = 0; i < getNumStep(); i++) { + getProc(i)->SetScnObjOption(nw4r::g3d::ScnObj::OPTION_DISABLE_UPDATEFRAME, true); + getProc(i)->SetScnObjOption(nw4r::g3d::ScnObj::OPTION_DISABLE_CALC_WORLD, true); + getProc(i)->SetScnObjOption(nw4r::g3d::ScnObj::OPTION_DISABLE_CALC_MAT, true); + getProc(i)->SetScnObjOption(nw4r::g3d::ScnObj::OPTION_DISABLE_CALC_VTX, true); + getProc(i)->SetScnObjOption(nw4r::g3d::ScnObj::OPTION_DISABLE_CALC_VIEW, true); + } + nw4r::g3d::ScnProc *p = getProc(0); + p->SetScnObjOption(nw4r::g3d::ScnObj::OPTION_DISABLE_CALC_VIEW, false); + p->EnableScnObjCallbackExecOp(nw4r::g3d::ScnObj::EXECOP_CALC_VIEW); + p->EnableScnObjCallbackTiming(nw4r::g3d::ScnObj::CALLBACK_TIMING_A); + p->DisableScnObjCallbackTiming(nw4r::g3d::ScnObj::CALLBACK_TIMING_B); + p->DisableScnObjCallbackTiming(nw4r::g3d::ScnObj::CALLBACK_TIMING_C); + p->SetCallback(this); +} + +void DrawPathBase::ExecCallback_CALC_VIEW( + nw4r::g3d::ScnObj::Timing timing, nw4r::g3d::ScnObj *pObj, u32 param, void *pInfo +) { + if (mFlag & 1) { + internalResetForDraw(); + } +} + +void DrawPathBase::scnProcDraw(u16) { + if (mFlag & 1) { + internalDraw(); + } +} + +} // namespace EGG |
