diff --git a/openVulkanoCpp/Scene/SamplerConfig.cpp b/openVulkanoCpp/Scene/SamplerConfig.cpp index 43443b9..ef11576 100644 --- a/openVulkanoCpp/Scene/SamplerConfig.cpp +++ b/openVulkanoCpp/Scene/SamplerConfig.cpp @@ -9,4 +9,11 @@ namespace OpenVulkano::Scene { const SamplerConfig SamplerConfig::DEFAULT; -} \ No newline at end of file + 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); +} diff --git a/openVulkanoCpp/Scene/SamplerConfig.hpp b/openVulkanoCpp/Scene/SamplerConfig.hpp index c5d1887..7953abb 100644 --- a/openVulkanoCpp/Scene/SamplerConfig.hpp +++ b/openVulkanoCpp/Scene/SamplerConfig.hpp @@ -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; }; }