Add definitions for some common sampler settings

This commit is contained in:
Georg Hagen
2024-08-01 13:02:36 +02:00
parent 0754cdf072
commit 5bd46074a9
2 changed files with 23 additions and 1 deletions

View File

@@ -9,4 +9,11 @@
namespace OpenVulkano::Scene namespace OpenVulkano::Scene
{ {
const SamplerConfig SamplerConfig::DEFAULT; const SamplerConfig SamplerConfig::DEFAULT;
const SamplerConfig SamplerConfig::NEAREST(TextureSamplerFilter::NEAREST, TextureSamplerFilter::NEAREST);
const SamplerConfig SamplerConfig::LINEAR(TextureSamplerFilter::LINEAR, TextureSamplerFilter::NEAREST);
const SamplerConfig SamplerConfig::BILINEAR(TextureSamplerFilter::LINEAR, TextureSamplerFilter::LINEAR);
const SamplerConfig SamplerConfig::TIRILINEAR(TextureSamplerFilter::LINEAR, TextureSamplerFilter::LINEAR, TextureSamplerMipmapMode::LINEAR);
const SamplerConfig SamplerConfig::ANISOTROPIC_LOW(TextureSamplerFilter::LINEAR, TextureSamplerFilter::LINEAR, TextureSamplerMipmapMode::LINEAR, true, 4);
const SamplerConfig SamplerConfig::ANISOTROPIC_HIGH(TextureSamplerFilter::LINEAR, TextureSamplerFilter::LINEAR, TextureSamplerMipmapMode::LINEAR, true, 16);
const SamplerConfig SamplerConfig::ANISOTROPIC_PRO(TextureSamplerFilter::LINEAR, TextureSamplerFilter::LINEAR, TextureSamplerMipmapMode::LINEAR, true, 32);
} }

View File

@@ -80,10 +80,25 @@ namespace OpenVulkano::Scene
, minLod(minLod), maxLod(maxLod), borderColor(borderColor), unnormalizedCoordinates(unnormalizedCoordinates) , minLod(minLod), maxLod(maxLod), borderColor(borderColor), unnormalizedCoordinates(unnormalizedCoordinates)
{} {}
SamplerConfig(TextureSamplerFilter magFilter, TextureSamplerFilter minFilter = TextureSamplerFilter::LINEAR,
TextureSamplerMipmapMode mipmapMode = TextureSamplerMipmapMode::NEAREST,
bool32_t anisotropyEnabled = false, float maxAnisotropy = 0)
: magFilter(magFilter), minFilter(minFilter), mipmapMode(mipmapMode), anisotropyEnabled(anisotropyEnabled), maxAnisotropy(maxAnisotropy)
{}
auto operator <=>(const SamplerConfig& other) const = default; auto operator <=>(const SamplerConfig& other) const = default;
public: public:
// Default configs // Default configs
static const SamplerConfig DEFAULT; static const SamplerConfig DEFAULT;
static const SamplerConfig NEAREST;
static const SamplerConfig LINEAR;
static const SamplerConfig BILINEAR;
static const SamplerConfig TIRILINEAR;
static const SamplerConfig ANISOTROPIC_LOW;
static const SamplerConfig ANISOTROPIC_HIGH;
// Not supported on most consumer grphics cards!
static const SamplerConfig ANISOTROPIC_PRO;
}; };
} }