Graphics: Replace runtime structs offsets by compile-time struct offsets
now that nzsl::FieldOffsets is constexpr this is possible
This commit is contained in:
committed by
Jérôme Leclercq
parent
929b599337
commit
e10f15243d
@@ -7,73 +7,17 @@
|
||||
#ifndef NAZARA_GRAPHICS_PREDEFINEDSHADERSTRUCTS_HPP
|
||||
#define NAZARA_GRAPHICS_PREDEFINEDSHADERSTRUCTS_HPP
|
||||
|
||||
#include <Nazara/Graphics/Config.hpp>
|
||||
#include <Nazara/Graphics/MaterialSettings.hpp>
|
||||
#include <array>
|
||||
#include <Nazara/Graphics/PredefinedShaderStructBuilder.hpp>
|
||||
|
||||
namespace Nz
|
||||
{
|
||||
struct NAZARA_GRAPHICS_API PredefinedLightData
|
||||
{
|
||||
struct Light
|
||||
{
|
||||
std::size_t type;
|
||||
std::size_t color;
|
||||
std::size_t factor;
|
||||
std::size_t parameter1;
|
||||
std::size_t parameter2;
|
||||
std::size_t parameter3;
|
||||
std::size_t shadowMapSize;
|
||||
std::size_t viewProjMatrix;
|
||||
};
|
||||
|
||||
std::size_t lightsOffset;
|
||||
std::size_t lightCountOffset;
|
||||
std::size_t lightSize;
|
||||
std::size_t totalSize;
|
||||
Light lightMemberOffsets;
|
||||
|
||||
static constexpr std::size_t MaxLightCount = 3;
|
||||
|
||||
static PredefinedLightData GetOffsets();
|
||||
};
|
||||
|
||||
struct NAZARA_GRAPHICS_API PredefinedInstanceData
|
||||
{
|
||||
std::size_t invWorldMatrixOffset;
|
||||
std::size_t totalSize;
|
||||
std::size_t worldMatrixOffset;
|
||||
|
||||
static PredefinedInstanceData GetOffsets();
|
||||
};
|
||||
|
||||
struct NAZARA_GRAPHICS_API PredefinedSkeletalData
|
||||
{
|
||||
std::size_t totalSize;
|
||||
std::size_t jointMatricesOffset;
|
||||
|
||||
static constexpr std::size_t MaxMatricesCount = 256;
|
||||
|
||||
static PredefinedSkeletalData GetOffsets();
|
||||
};
|
||||
|
||||
struct NAZARA_GRAPHICS_API PredefinedViewerData
|
||||
{
|
||||
std::size_t eyePositionOffset;
|
||||
std::size_t invProjMatrixOffset;
|
||||
std::size_t invTargetSizeOffset;
|
||||
std::size_t invViewMatrixOffset;
|
||||
std::size_t invViewProjMatrixOffset;
|
||||
std::size_t projMatrixOffset;
|
||||
std::size_t targetSizeOffset;
|
||||
std::size_t totalSize;
|
||||
std::size_t viewMatrixOffset;
|
||||
std::size_t viewProjMatrixOffset;
|
||||
|
||||
static PredefinedViewerData GetOffsets();
|
||||
};
|
||||
static constexpr PredefinedDirectionalLightData PredefinedDirectionalLightOffsets = PredefinedDirectionalLightData::Build();
|
||||
static constexpr PredefinedPointLightData PredefinedPointLightOffsets = PredefinedPointLightData::Build();
|
||||
static constexpr PredefinedSpotLightData PredefinedSpotLightOffsets = PredefinedSpotLightData::Build();
|
||||
static constexpr PredefinedLightData PredefinedLightOffsets = PredefinedLightData::Build();
|
||||
static constexpr PredefinedInstanceData PredefinedInstanceOffsets = PredefinedInstanceData::Build();
|
||||
static constexpr PredefinedSkeletalData PredefinedSkeletalOffsets = PredefinedSkeletalData::Build();
|
||||
static constexpr PredefinedViewerData PredefinedViewerOffsets = PredefinedViewerData::Build();
|
||||
}
|
||||
|
||||
#include <Nazara/Graphics/PredefinedShaderStructs.inl>
|
||||
|
||||
#endif // NAZARA_GRAPHICS_PREDEFINEDSHADERSTRUCTS_HPP
|
||||
|
||||
Reference in New Issue
Block a user