23#include "rawspeedconfig.h"
53 [[nodiscard]]
int RAWSPEED_READONLY
numRows() const;
54 [[nodiscard]]
int RAWSPEED_READONLY
numCols() const;
59 template <typename T2>
60 requires(std::is_const_v<T2> && !std::is_const_v<
T>)
64 template <typename T2>
65 requires(!(std::is_const_v<T2> && !std::is_const_v<
T>) &&
66 !std::is_same_v<std::remove_const_t<
T>, std::remove_const_t<T2>> &&
67 !std::is_same_v<std::remove_const_t<
T>, std::
byte>)
71 template <typename T2>
72 requires(!std::is_const_v<T2> && std::is_const_v<
T> &&
73 std::is_same_v<std::remove_const_t<
T>, std::remove_const_t<T2>>)
80 template <
typename T2>
82 !(std::is_const_v<T2> && !std::is_const_v<T>) &&
83 !(std::is_same_v<std::remove_const_t<T>, std::remove_const_t<T2>>) &&
84 std::is_same_v<std::remove_const_t<T>, std::byte>)
88 sizeof(T2) * RHS._pitch) {}
106 invariant(data.width() % tileWidth == 0);
107 invariant(data.height() % tileHeight == 0);
112 const int tileWidth_,
113 const int tileHeight_)
114 : data(data_), tileWidth(tileWidth_), tileHeight(tileHeight_) {
115 establishClassInvariants();
119__attribute__((always_inline))
inline int TiledArray2DRef<T>::numCols()
const {
120 establishClassInvariants();
121 return data.width() / tileWidth;
125__attribute__((always_inline))
inline int TiledArray2DRef<T>::numRows()
const {
126 establishClassInvariants();
127 return data.height() / tileHeight;
132TiledArray2DRef<T>::operator()(
const int row,
const int col)
const {
133 establishClassInvariants();
bool RAWSPEED_READNONE __attribute__((visibility("default"))) benchmarkDryRun()
void establishClassInvariants() const noexcept
TiledArray2DRef(Array2DRef< T > data, int tileWidth, int tileHeight)
TiledArray2DRef(TiledArray2DRef< T2 > RHS)
int RAWSPEED_READONLY numCols() const
std::remove_cv_t< value_type > cvless_value_type
int RAWSPEED_READONLY numRows() const
CroppedArray2DRef< T > operator()(int row, int col) const
TiledArray2DRef(Array2DRef< T > data, int tileWidth, int tileHeight) -> TiledArray2DRef< T >
__attribute__((noinline)) __attribute__((visibility("default"))) JPEGStuffedByteStreamGenerator
CroppedArray2DRef(Array2DRef< T > base_, int offsetCols_, int offsetRows_, int croppedWidth_, int croppedHeight_) -> CroppedArray2DRef< typename Array2DRef< T >::value_type >