16#ifndef ALICEO2_ABSTRACT_REF_H
17#define ALICEO2_ABSTRACT_REF_H
26template <
int NBIdx,
int NBSrc,
int NBFlg>
30 static constexpr auto MVAR()
32 static_assert(NBIT <= 64,
"> 64 bits not supported");
33 if constexpr (NBIT > 32) {
36 }
else if constexpr (NBIT > 16) {
39 }
else if constexpr (NBIT > 8) {
49 using Base_t =
decltype(AbstractRef::MVAR<NBIdx + NBSrc + NBFlg>());
50 using Idx_t =
decltype(AbstractRef::MVAR<NBIdx>());
51 using Src_t =
decltype(AbstractRef::MVAR<NBSrc>());
52 using Flg_t =
decltype(AbstractRef::MVAR<NBFlg>());
78 GPUdi() bool testBit(
int i)
const {
return (mRef >> (NBIdx + NBSrc)) & ((0x1U <<
i) &
FlgMask); }
87 GPUdi() bool isSourceSet()
const {
return getSource() !=
SrcMask; }
89 GPUdi() bool operator==(const
AbstractRef&
o)
const {
return getRawWOFlags() ==
o.getRawWOFlags(); }
typedef void(APIENTRYP PFNGLCULLFACEPROC)(GLenum mode)
bool operator==(const observer_ptr< W1 > &p1, const observer_ptr< W2 > &p2)