From 84595a62f272f99d51d536b5bc51d828bf42cc76 Mon Sep 17 00:00:00 2001 From: Ignacio Date: Thu, 7 Feb 2019 15:39:32 -0800 Subject: [PATCH] Add helper methods for jai bindings. --- src/nvtt/CubeSurface.cpp | 16 ++++++++++++++++ src/nvtt/nvtt.h | 4 ++++ 2 files changed, 20 insertions(+) diff --git a/src/nvtt/CubeSurface.cpp b/src/nvtt/CubeSurface.cpp index 2b42a89..004a02b 100644 --- a/src/nvtt/CubeSurface.cpp +++ b/src/nvtt/CubeSurface.cpp @@ -844,6 +844,8 @@ Vector3 CubeSurface::Private::applyCosinePowerFilter(const Vector3 & filterDir, return color; } + + #include "nvthread/ParallelFor.h" struct ApplyAngularFilterContext { @@ -1023,6 +1025,20 @@ CubeSurface CubeSurface::fastResample(int size, EdgeFixup fixupMethod) const } +void CubeSurface::_irradianceFilter(int size, EdgeFixup fixupMethod) { + *this = irradianceFilter(size, fixupMethod); +} + +void CubeSurface::_cosinePowerFilter(int size, float cosinePower, EdgeFixup fixupMethod) { + *this = cosinePowerFilter(size, cosinePower, fixupMethod); +} + +void CubeSurface::_fastResample(int size, EdgeFixup fixupMethod) { + *this = fastResample(size, fixupMethod); +} + + + void CubeSurface::toLinear(float gamma) { if (isNull()) return; diff --git a/src/nvtt/nvtt.h b/src/nvtt/nvtt.h index 1ca48ae..4b09bca 100644 --- a/src/nvtt/nvtt.h +++ b/src/nvtt/nvtt.h @@ -664,6 +664,10 @@ namespace nvtt NVTT_API CubeSurface fastResample(int size, EdgeFixup fixupMethod) const; + // Jai doesn't support non-pod structs as return types, so expose some other function to do the same, but operate in place: + NVTT_API void _irradianceFilter(int size, EdgeFixup fixupMethod); + NVTT_API void _cosinePowerFilter(int size, float cosinePower, EdgeFixup fixupMethod); + NVTT_API void _fastResample(int size, EdgeFixup fixupMethod); // Spherical Harmonics: NVTT_API void computeLuminanceIrradianceSH3(float sh[9]) const;