90 lines
7.2 KiB
C++
90 lines
7.2 KiB
C++
#pragma once
|
|
|
|
namespace RE
|
|
{
|
|
class BSDynamicLines;
|
|
class BSDynamicTriShape;
|
|
class BSLines;
|
|
class BSMeshLODTriShape;
|
|
class BSMultiStreamInstanceTriShape;
|
|
class BSSubIndexTriShape;
|
|
class BSTriShape;
|
|
class FadeNodeSettings;
|
|
class NiAVObject;
|
|
class NiColorA;
|
|
class NiDefaultAVObjectPalette;
|
|
class NiNode;
|
|
class NiPick;
|
|
class NiPoint2;
|
|
class NiPoint3;
|
|
class NiShadeProperty;
|
|
class NiStream;
|
|
class NiTexture;
|
|
|
|
namespace BSGraphics
|
|
{
|
|
class Texture;
|
|
}
|
|
|
|
class __declspec(novtable) IRendererResourceManager
|
|
{
|
|
public:
|
|
static constexpr auto RTTI{ RTTI::IRendererResourceManager };
|
|
static constexpr auto VTABLE{ VTABLE::IRendererResourceManager };
|
|
|
|
virtual ~IRendererResourceManager();
|
|
|
|
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) = 0;
|
|
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) = 0;
|
|
virtual void* CreateTriShape(NiStream* a_stream, std::uint64_t a_vertexDesc, std::uint32_t a_vertexCount, std::uint32_t a_indexCount, char** a_dynamicData) = 0;
|
|
virtual void* CreateTriShapeRendererData(void* a_vertexBuffer, std::uint64_t a_vertexDesc, std::uint16_t* a_indices, std::uint32_t a_indexCount) = 0;
|
|
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) = 0;
|
|
virtual void IncRefTriShape(void* a_rendererData) = 0;
|
|
virtual void DecRefTriShape(void* a_rendererData) = 0;
|
|
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) = 0;
|
|
virtual BSDynamicTriShape* CreateDynamicTriShape(std::uint32_t, std::uint32_t, std::uint32_t, NiPoint3*, NiPoint2*, NiColorA*, std::uint16_t*) = 0;
|
|
virtual void IncRefDynamicTriShape(void* a_rendererData) = 0;
|
|
virtual void DecRefDynamicTriShape(void* a_rendererData) = 0;
|
|
virtual void ConvertBSTriShapeToBSDynamicTriShape(NiNode* a_root, NiDefaultAVObjectPalette* a_objectPalette) = 0;
|
|
virtual void ApplyMaterials(NiAVObject* a_root) = 0;
|
|
virtual void SetTriShapeStreamDynamicFlags(std::uint32_t) = 0;
|
|
virtual void* CreateParticleShape() = 0;
|
|
virtual void IncRefParticleShape(void* a_rendererData) = 0;
|
|
virtual void DecRefParticleShape(void* a_rendererData) = 0;
|
|
virtual BSLines* CreateLineShape(std::uint32_t, std::uint16_t*, std::uint32_t, NiPoint3*, NiPoint2*, NiColorA*, NiPoint3*, NiPoint3*, NiPoint3*, NiColorA*, NiColorA*, std::uint8_t*, NiColorA*, NiColorA*, float*) = 0;
|
|
virtual BSDynamicLines* CreateDynamicLineShape(std::uint32_t, std::uint32_t, std::uint32_t, NiPoint3*, NiPoint2*, NiColorA*, std::uint16_t*) = 0;
|
|
virtual void* CreateDynamicLineShape(NiStream*, std::uint64_t, std::uint32_t, std::uint32_t) = 0;
|
|
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*) = 0;
|
|
virtual void IncRefLines(void* a_rendererData) = 0;
|
|
virtual void DecRefLines(void* a_rendererData) = 0;
|
|
virtual void IncRefDynamicLines(void* a_rendererData) = 0;
|
|
virtual void DecRefDynamicLines(void* a_rendererData) = 0;
|
|
virtual void LoadTexture(NiTexture* apTexture) = 0;
|
|
virtual void CreateStreamingTexture(NiTexture* a_texture, const void* a_userDataIn, void* a_userDataOut) = 0;
|
|
virtual bool ReadStreamingTextureData(NiTexture* a_texture, void* a_userDataIn) = 0;
|
|
virtual bool CreateStreamingTextureArraySlice(NiTexture* a_texture, const void* a_userDataIn, void* a_userDataOut, std::uint32_t a_slice) = 0;
|
|
virtual bool ReadStreamingTextureDataToArraySlice(NiTexture* a_texture, void* a_userDataIn, std::uint32_t a_slice) = 0;
|
|
virtual void FinishStreamingTexture(NiTexture* a_texture) = 0;
|
|
virtual void IncRefTexture(BSGraphics::Texture* a_rendererData) = 0;
|
|
virtual void DecRefTexture(BSGraphics::Texture* a_rendererData) = 0;
|
|
virtual void GetTextureWidthHeight(NiTexture* a_texture, std::uint32_t* a_width, std::uint32_t* a_height) = 0;
|
|
virtual std::uint32_t GetTextureFormat(NiTexture* a_texture) = 0;
|
|
virtual bool UpdateTextureToDesiredMipLevel(NiTexture* a_texture, std::uint32_t*) = 0;
|
|
virtual void LoadUpgradeTextureData(NiTexture* a_texture) = 0;
|
|
virtual bool UpdateStreamingTextureToDesiredMipLevel(NiTexture* a_texture, std::uint32_t*, void*, void*) = 0;
|
|
virtual void FinishStreamingTextureUpgade(NiTexture* a_texture) = 0;
|
|
virtual void* CreateVertexBuffer(std::uint32_t* a_dataSize, void* a_data, std::uint32_t a_stride, std::uint64_t) = 0;
|
|
virtual void DecRefVertexBuffer(void* a_rendererData) = 0;
|
|
virtual NiShadeProperty* CreateDefaultEffectShaderProperty(bool a_vertexColors, bool a_skinned) = 0;
|
|
virtual BSMeshLODTriShape* CreateMeshLODTriShape(std::uint32_t*, std::uint32_t, std::uint64_t, std::uint32_t, std::uint32_t, void*) = 0;
|
|
virtual BSMeshLODTriShape* CreateMeshLODTriShape(BSTriShape*, std::uint32_t*, std::uint32_t) = 0;
|
|
virtual std::uint32_t UpdateIndexBufferForInstancing(BSMultiStreamInstanceTriShape*, std::uint32_t) = 0;
|
|
virtual bool FindIntersectionsTriShapeFastPath(const NiPoint3*, const NiPoint3*, NiPick*, BSTriShape*) = 0;
|
|
virtual void CreateTangentSpace(std::uint32_t, std::uint16_t*, std::uint32_t, NiPoint3*, NiPoint2*, NiPoint3*, NiPoint3*, NiPoint3*) = 0;
|
|
virtual float GetShaderFrameCount() = 0;
|
|
virtual float GetShaderTimerDelta() = 0;
|
|
virtual void GetFadeNodeSettings(FadeNodeSettings* a_skinned) = 0;
|
|
virtual void GetCameraVectors(NiPoint3* a_up, NiPoint3* a_right, NiPoint3* a_direction) = 0;
|
|
};
|
|
}
|