docs: add plugin setup guide

This commit is contained in:
2026-05-30 18:33:24 +12:00
parent f3db41c402
commit b61043a3fe
1776 changed files with 122386 additions and 2 deletions
@@ -0,0 +1,73 @@
#pragma once
#include "RE/N/NiTArray.h"
namespace RE
{
class BSTriShape;
class ImageSpaceManager;
class ImageSpaceEffectParam;
class ImageSpaceTexture;
namespace BSGraphics
{
enum class TextureFilterMode;
}
class __declspec(novtable) ImageSpaceEffect
{
public:
static constexpr auto RTTI{ RTTI::ImageSpaceEffect };
static constexpr auto VTABLE{ VTABLE::ImageSpaceEffect };
class EffectDesc
{
public:
// members
std::uint32_t startEffect; // 00
std::uint32_t lastEffect; // 04
ImageSpaceEffect* parentEffect; // 08
std::uint64_t labelWait; // 10
std::uint64_t* writeLabel; // 18
};
static_assert(sizeof(EffectDesc) == 0x20);
class EffectInput
{
public:
// members
std::int32_t texIndex; // 00
BSGraphics::TextureFilterMode filterMode; // 04
};
static_assert(sizeof(EffectInput) == 0x08);
virtual ~ImageSpaceEffect(); // 00
// add
virtual void Render(BSTriShape* a_geometry, ImageSpaceEffectParam* a_param); // 01
virtual void Dispatch(ImageSpaceEffectParam* a_param, bool a_useAsyncPipe, std::uint32_t a_effect, EffectDesc* a_effectDesc); // 02
virtual void Setup(ImageSpaceManager* a_manager, ImageSpaceEffectParam* a_param); // 03
virtual void Shutdown(); // 04
virtual void BorrowTextures(ImageSpaceEffectParam* a_param); // 05
virtual void ReturnTextures(); // 06
virtual void UpdateComputeShaderParam(std::uint32_t a_effect); // 07
virtual bool IsActive(); // 08
virtual bool UpdateParams(ImageSpaceEffectParam* a_param); // 09
virtual bool SetRenderStates(ImageSpaceEffectParam* a_param); // 0A
virtual bool RestoreRenderStates(ImageSpaceEffectParam* a_param); // 0B
// members
bool isActive; // 08
bool paramsChanged; // 09
NiTPrimitiveArray<ImageSpaceEffect*> effectList; // 10
NiTPrimitiveArray<ImageSpaceEffectParam*> effectParamList; // 28
NiTPrimitiveArray<ImageSpaceTexture*> textures; // 40
NiTPrimitiveArray<ImageSpaceTexture*> vsTextures; // 58
NiTPrimitiveArray<EffectInput*> effectInputs; // 70
NiTPrimitiveArray<std::int32_t*> effectOutput; // 88
bool isComputeShader; // A0
std::uint32_t nbOutput; // A4
bool useDynamicResolution; // A8
};
static_assert(sizeof(ImageSpaceEffect) == 0xB0);
}