Fixed weight problem with custom linear filtering and wrap mode

This commit is contained in:
Chuck Walbourn 2021-07-29 17:06:19 -07:00
parent 7e6b4a0993
commit b11ad7b1c0

View File

@ -76,6 +76,8 @@ inline void _CreateLinearFilter(_In_ size_t source, _In_ size_t dest, _In_ bool
ptrdiff_t isrcB = ptrdiff_t(srcB);
ptrdiff_t isrcA = isrcB - 1;
float weight = 1.0f + float(isrcB) - srcB;
if (isrcA < 0)
{
isrcA = (wrap) ? (ptrdiff_t(source) - 1) : 0;
@ -86,8 +88,6 @@ inline void _CreateLinearFilter(_In_ size_t source, _In_ size_t dest, _In_ bool
isrcB = (wrap) ? 0 : (ptrdiff_t(source) - 1);
}
float weight = 1.0f + float(isrcB) - srcB;
auto& entry = lf[u];
entry.u0 = size_t(isrcA);
entry.weight0 = weight;