mirror of
https://github.com/MonsterDruide1/OdysseyDecomp
synced 2026-05-10 17:29:13 +00:00
73 lines
2.2 KiB
C++
73 lines
2.2 KiB
C++
#pragma once
|
|
|
|
#include <basis/seadTypes.h>
|
|
|
|
namespace sead {
|
|
class Camera;
|
|
}
|
|
|
|
namespace agl {
|
|
class DrawContext;
|
|
class RenderTargetDepth;
|
|
class TextureData;
|
|
} // namespace agl
|
|
|
|
namespace al {
|
|
class GraphicsSystemInfo;
|
|
class AreaObjDirector;
|
|
class ExecuteDirector;
|
|
class EffectSystem;
|
|
class SceneCameraInfo;
|
|
class PlayerHolder;
|
|
class Projection;
|
|
class ShaderHolder;
|
|
class DepthShadowParam;
|
|
class DepthShadowClipParam;
|
|
class DepthShadowMapDirector;
|
|
class ShadowMaskDirector;
|
|
|
|
class ShadowDirector {
|
|
public:
|
|
ShadowDirector(s32, GraphicsSystemInfo*, AreaObjDirector*, ExecuteDirector*, EffectSystem*,
|
|
SceneCameraInfo*, const PlayerHolder*);
|
|
~ShadowDirector();
|
|
|
|
void initShader(ShaderHolder*);
|
|
void endInit();
|
|
void initAfterPlacement();
|
|
void clearRequest();
|
|
void update();
|
|
void* getCurrentShadowParam(); // unknown return type
|
|
void* getCurrentClipParam(); // unknown return type
|
|
bool isUsingShadowCamera() const;
|
|
void preDrawGraphics();
|
|
bool isEnableShadowPrePass() const;
|
|
void updateViewGpu(s32, const sead::Camera*, const Projection*);
|
|
void* getDepthShadow(); // unknown return type
|
|
void drawShadowPrePass(agl::DrawContext*, s32, const agl::RenderTargetDepth*,
|
|
const agl::RenderTargetDepth*, const agl::TextureData*);
|
|
void* getShadowPrePassSampler(s32) const; // unknown return type
|
|
void* getShadowPrePassTexture(s32) const; // unknown return type
|
|
bool isEnableDepthShadow() const;
|
|
void* getCurrentShadowParam() const; // unknown return type
|
|
void* getCurrentClipParam() const; // unknown return type
|
|
void* getCurrentNear() const; // unknown return type
|
|
void* getCurrentFar() const; // unknown return type
|
|
bool requestParam(s32, s32, const DepthShadowParam&);
|
|
bool requestParam(s32, s32, const DepthShadowClipParam&);
|
|
|
|
ShadowMaskDirector* getShadowMaskDirector() const { return mShadowMaskDirector; }
|
|
|
|
DepthShadowMapDirector* getDepthShadowMapDirector() const { return mDepthShadowMapDirector; }
|
|
|
|
private:
|
|
void* _0[1];
|
|
ShadowMaskDirector* mShadowMaskDirector;
|
|
DepthShadowMapDirector* mDepthShadowMapDirector;
|
|
void* _10[0x148 / 8];
|
|
};
|
|
|
|
static_assert(sizeof(ShadowDirector) == 0x160);
|
|
|
|
} // namespace al
|