|
| 1 | +#pragma once |
| 2 | + |
| 3 | +#include "RE/I/IRendererResourceManager.h" |
| 4 | + |
| 5 | +namespace RE |
| 6 | +{ |
| 7 | + class __declspec(novtable) BSShaderResourceManager : |
| 8 | + public IRendererResourceManager |
| 9 | + { |
| 10 | + public: |
| 11 | + static constexpr auto RTTI{ RTTI::BSShaderResourceManager }; |
| 12 | + static constexpr auto VTABLE{ VTABLE::BSShaderResourceManager }; |
| 13 | + |
| 14 | + virtual ~BSShaderResourceManager(); |
| 15 | + |
| 16 | + virtual BSTriShape* CreateTriShape(std::uint32_t a_numTriangles, std::uint16_t* a_indices, std::uint32_t a_numVertices, NiPoint3* a_positions, NiPoint2* a_texCoords0, NiColorA* a_texCoords1, NiPoint3* a_normals, NiPoint3* a_binormals, NiPoint3* a_tangents, NiColorA* a_colors, NiColorA* a_skinBoneWeights, std::uint8_t* a_skinBoneIndices, NiColorA* a_landscapeData1, NiColorA* a_landscapeData2, float* a_eyeData, bool a_generatePositionData) override; |
| 17 | + virtual BSTriShape* CreateTriShape(std::uint32_t a_numTriangles, std::uint32_t a_numVertices, NiPoint3* a_positions, NiPoint2* a_texCoords, NiColorA* a_colors, std::uint16_t* a_indices) override; |
| 18 | + virtual void* CreateTriShape(NiStream* a_stream, std::uint64_t a_vertexDesc, std::uint32_t a_vertexCount, std::uint32_t a_indexCount, char** a_dynamicData) override; |
| 19 | + virtual void* CreateTriShapeRendererData(void* a_vertexBuffer, std::uint64_t a_vertexDesc, std::uint16_t* a_indices, std::uint32_t a_indexCount) override; |
| 20 | + virtual BSSubIndexTriShape* CreateSubIndexTriShape(std::uint32_t a_numTriangles, std::uint32_t a_numSegments, std::uint16_t* a_indices, std::uint32_t a_numVertices, NiPoint3* a_positions, NiPoint2* a_texCoords0, NiColorA* a_texCoords1, NiPoint3* a_normals, NiPoint3* a_binormals, NiPoint3* a_tangents, NiColorA* a_colors, NiColorA* a_skinBoneWeights, std::uint8_t* a_skinBoneIndices, NiColorA* a_landscapeData1, NiColorA* a_landscapeData2, float* a_eyeData) override; |
| 21 | + virtual void IncRefTriShape(void* a_rendererData) override; |
| 22 | + virtual void DecRefTriShape(void* a_rendererData) override; |
| 23 | + virtual BSDynamicTriShape* CreateDynamicTriShape(std::uint32_t a_dynamicFlags, std::uint32_t a_numTriangles, std::uint16_t* a_indices, std::uint32_t a_numVertices, NiPoint3* a_positions, NiPoint2* a_texCoords0, NiColorA* a_texCoords1, NiPoint3* a_normals, NiPoint3* a_binormals, NiPoint3* a_tangents, NiColorA* a_colors, NiColorA* a_skinBoneWeights, std::uint8_t* a_skinBoneIndices, NiColorA* a_landscapeData1, NiColorA* a_landscapeData2, float* a_eyeData) override; |
| 24 | + virtual BSDynamicTriShape* CreateDynamicTriShape(std::uint32_t, std::uint32_t, std::uint32_t, NiPoint3*, NiPoint2*, NiColorA*, std::uint16_t*) override; |
| 25 | + virtual void IncRefDynamicTriShape(void* a_rendererData) override; |
| 26 | + virtual void DecRefDynamicTriShape(void* a_rendererData) override; |
| 27 | + virtual void ConvertBSTriShapeToBSDynamicTriShape(NiNode* a_root, NiDefaultAVObjectPalette* a_objectPalette) override; |
| 28 | + virtual void ApplyMaterials(NiAVObject* a_root) override; |
| 29 | + virtual void SetTriShapeStreamDynamicFlags(std::uint32_t) override; |
| 30 | + virtual void* CreateParticleShape() override; |
| 31 | + virtual void IncRefParticleShape(void* a_rendererData) override; |
| 32 | + virtual void DecRefParticleShape(void* a_rendererData) override; |
| 33 | + virtual BSLines* CreateLineShape(std::uint32_t a_numLines, std::uint16_t* a_indices, std::uint32_t a_numVertices, NiPoint3* a_positions, NiPoint2* a_texCoords0, NiColorA* a_texCoords1, NiPoint3* a_normals, NiPoint3* a_binormals, NiPoint3* a_tangents, NiColorA* a_colors, NiColorA* a_skinBoneWeights, std::uint8_t* a_skinBoneIndices, NiColorA* a_landscapeData1, NiColorA* a_landscapeData2, float* a_eyeData) override; |
| 34 | + virtual BSDynamicLines* CreateDynamicLineShape(std::uint32_t, std::uint32_t, std::uint32_t, NiPoint3*, NiPoint2*, NiColorA*, std::uint16_t*) override; |
| 35 | + virtual void* CreateDynamicLineShape(NiStream*, std::uint64_t, std::uint32_t, std::uint32_t) override; |
| 36 | + virtual BSDynamicLines* CreateDynamicLineShape(std::uint32_t, std::uint32_t, std::uint16_t*, std::uint32_t, NiPoint3*, NiPoint2*, NiColorA*, NiPoint3*, NiPoint3*, NiPoint3*, NiColorA*, NiColorA*, std::uint8_t*, NiColorA*, NiColorA*, float*) override; |
| 37 | + virtual void IncRefLines(void* a_rendererData) override; |
| 38 | + virtual void DecRefLines(void* a_rendererData) override; |
| 39 | + virtual void IncRefDynamicLines(void* a_rendererData) override; |
| 40 | + virtual void DecRefDynamicLines(void* a_rendererData) override; |
| 41 | + virtual void LoadTexture(NiTexture* apTexture) override; |
| 42 | + virtual void CreateStreamingTexture(NiTexture* a_texture, const void* a_userDataIn, void* a_userDataOut) override; |
| 43 | + virtual bool ReadStreamingTextureData(NiTexture* a_texture, void* a_userDataIn) override; |
| 44 | + virtual bool CreateStreamingTextureArraySlice(NiTexture* a_texture, const void* a_userDataIn, void* a_userDataOut, std::uint32_t a_slice) override; |
| 45 | + virtual bool ReadStreamingTextureDataToArraySlice(NiTexture* a_texture, void* a_userDataIn, std::uint32_t a_slice) override; |
| 46 | + virtual void FinishStreamingTexture(NiTexture* a_texture) override; |
| 47 | + virtual void IncRefTexture(BSGraphics::Texture* a_rendererData) override; |
| 48 | + virtual void DecRefTexture(BSGraphics::Texture* a_rendererData) override; |
| 49 | + virtual void GetTextureWidthHeight(NiTexture* a_texture, std::uint32_t* a_width, std::uint32_t* a_height) override; |
| 50 | + virtual std::uint32_t GetTextureFormat(NiTexture* a_texture) override; |
| 51 | + virtual bool UpdateTextureToDesiredMipLevel(NiTexture* a_texture, std::uint32_t*) override; |
| 52 | + virtual void LoadUpgradeTextureData(NiTexture* a_texture) override; |
| 53 | + virtual bool UpdateStreamingTextureToDesiredMipLevel(NiTexture* a_texture, std::uint32_t*, void*, void*) override; |
| 54 | + virtual void FinishStreamingTextureUpgade(NiTexture* a_texture) override; |
| 55 | + virtual void* CreateVertexBuffer(std::uint32_t* a_dataSize, void* a_data, std::uint32_t a_stride, std::uint64_t) override; |
| 56 | + virtual void DecRefVertexBuffer(void* a_rendererData) override; |
| 57 | + virtual NiShadeProperty* CreateDefaultEffectShaderProperty(bool a_vertexColors, bool a_skinned) override; |
| 58 | + virtual BSMeshLODTriShape* CreateMeshLODTriShape(std::uint32_t*, std::uint32_t, std::uint64_t, std::uint32_t, std::uint32_t, void*) override; |
| 59 | + virtual BSMeshLODTriShape* CreateMeshLODTriShape(BSTriShape*, std::uint32_t*, std::uint32_t) override; |
| 60 | + virtual std::uint32_t UpdateIndexBufferForInstancing(BSMultiStreamInstanceTriShape*, std::uint32_t) override; |
| 61 | + virtual bool FindIntersectionsTriShapeFastPath(const NiPoint3*, const NiPoint3*, NiPick*, BSTriShape*) override; |
| 62 | + virtual void CreateTangentSpace(std::uint32_t, std::uint16_t*, std::uint32_t, NiPoint3*, NiPoint2*, NiPoint3*, NiPoint3*, NiPoint3*) override; |
| 63 | + virtual float GetShaderFrameCount() override; |
| 64 | + virtual float GetShaderTimerDelta() override; |
| 65 | + virtual void GetFadeNodeSettings(FadeNodeSettings* a_skinned) override; |
| 66 | + virtual void GetCameraVectors(NiPoint3* a_up, NiPoint3* a_right, NiPoint3* a_direction) override; |
| 67 | + |
| 68 | + static inline BSShaderResourceManager* GetSingleton() |
| 69 | + { |
| 70 | + static REL::Relocation<BSShaderResourceManager**> ptr{ ID::BSShaderResourceManager::Singleton }; |
| 71 | + return *ptr; |
| 72 | + } |
| 73 | + }; |
| 74 | +} |
0 commit comments