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
{
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

@@ -79,11 +79,26 @@ namespace OpenVulkano::Scene
, compareEnabled(compareEnabled), compareOp(compareOp)
, 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;
public:
// Default configs
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;
};
}