swr/rast: Remove use of C++14 template variable
SWR rasterizer must remain C++11 compliant. Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
This commit is contained in:
parent
9df5691fff
commit
1ebf6fc865
|
@ -502,7 +502,7 @@ void SIMDCALL BinTrianglesImpl(
|
|||
}
|
||||
|
||||
// Adjust for pixel center location
|
||||
typename SIMD_T::Float offset = g_pixelOffsets<SIMD_T>[rastState.pixelLocation];
|
||||
typename SIMD_T::Float offset = SwrPixelOffsets<SIMD_T>::GetOffset(rastState.pixelLocation);
|
||||
|
||||
tri[0].x = SIMD_T::add_ps(tri[0].x, offset);
|
||||
tri[0].y = SIMD_T::add_ps(tri[0].y, offset);
|
||||
|
@ -1332,7 +1332,7 @@ void BinPointsImpl(
|
|||
}
|
||||
}
|
||||
|
||||
typename SIMD_T::Float offset = g_pixelOffsets<SIMD_T>[rastState.pixelLocation];
|
||||
typename SIMD_T::Float offset = SwrPixelOffsets<SIMD_T>::GetOffset(rastState.pixelLocation);
|
||||
|
||||
prim[0].x = SIMD_T::add_ps(prim[0].x, offset);
|
||||
prim[0].y = SIMD_T::add_ps(prim[0].y, offset);
|
||||
|
@ -1666,7 +1666,7 @@ void SIMDCALL BinLinesImpl(
|
|||
}
|
||||
|
||||
// adjust for pixel center location
|
||||
typename SIMD_T::Float offset = g_pixelOffsets<SIMD_T>[rastState.pixelLocation];
|
||||
typename SIMD_T::Float offset = SwrPixelOffsets<SIMD_T>::GetOffset(rastState.pixelLocation);
|
||||
|
||||
prim[0].x = SIMD_T::add_ps(prim[0].x, offset);
|
||||
prim[0].y = SIMD_T::add_ps(prim[0].y, offset);
|
||||
|
|
|
@ -31,11 +31,19 @@
|
|||
//////////////////////////////////////////////////////////////////////////
|
||||
/// @brief Offsets added to post-viewport vertex positions based on
|
||||
/// raster state.
|
||||
///
|
||||
/// Can't use templated variable because we must stick with C++11 features.
|
||||
/// Template variables were introduced with C++14
|
||||
template <typename SIMD_T>
|
||||
static const typename SIMD_T::Float g_pixelOffsets[SWR_PIXEL_LOCATION_UL + 1] =
|
||||
struct SwrPixelOffsets
|
||||
{
|
||||
SIMD_T::set1_ps(0.0f), // SWR_PIXEL_LOCATION_CENTER
|
||||
SIMD_T::set1_ps(0.5f), // SWR_PIXEL_LOCATION_UL
|
||||
public:
|
||||
INLINE static typename SIMD_T::Float GetOffset(uint32_t loc)
|
||||
{
|
||||
SWR_ASSERT(loc <= 1);
|
||||
|
||||
return SIMD_T::set1_ps(loc ? 0.5f : 0.0f);
|
||||
}
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
|
Loading…
Reference in New Issue