7 #ifndef PXR_EXEC_VDF_READ_WRITE_ITERATOR_H
8 #define PXR_EXEC_VDF_READ_WRITE_ITERATOR_H
142 return _accessor[*_iterator];
151 return &_accessor[*_iterator];
157 return _iterator.IsAtEnd();
163 _iterator = VdfMask::Bits::AllSetView::const_iterator();
173 return *it._iterator;
184 VdfMask::Bits::AllSetView::const_iterator _iterator;
189 std::shared_ptr<VdfMask::Bits> _bits;
205 _output = _GetRequiredOutputForWriting(context, name);
209 _Initialize(context);
220 return Vdf_AllocateBoxedValue<T>(context,
name,
count)
231 return Vdf_AllocateBoxedValue<T>(context,
TfToken(),
count)
241 if (_output != rhs._output) {
246 const bool atEnd = IsAtEnd();
247 const bool rhsAtEnd = rhs.
IsAtEnd();
248 if (atEnd || rhsAtEnd) {
249 return atEnd == rhsAtEnd;
254 return *_iterator == *rhs._iterator;
270 const VdfMask *requestMask =
nullptr;
271 const VdfMask *affectsMask =
nullptr;
272 if (!_GetOutputMasks(context, *_output, &requestMask, &affectsMask)) {
278 VdfVector *
v = _GetOutputValueForWriting(context, *_output);
280 v,
"Output '%s' is missing buffer.",
281 _output->GetName().GetText())) {
288 if (_accessor.IsEmpty()) {
299 (affectsMask->
GetSize() == 1 && _accessor.IsBoxed()));
301 _bits = std::make_shared<VdfMask::Bits>(_accessor.GetNumValues());
303 _iterator = _bits->GetAllSetView().begin();
VdfReadWriteIterator(const VdfContext &context)
typedef int(APIENTRYP RE_PFNGLXSWAPINTERVALSGIPROC)(int)
ReadWriteAccessor< TYPE > GetReadWriteAccessor() const
reference operator*() const
#define PXR_NAMESPACE_OPEN_SCOPE
AllSetView GetAllSetView() const
std::forward_iterator_tag iterator_category
A VdfMask is placed on connections to specify the data flowing through them.
VdfMask::Bits const & GetBits() const
#define TF_DEV_AXIOM(cond)
friend int Vdf_GetIteratorIndex(const VdfReadWriteIterator &it)
VdfReadWriteIterator & operator++()
GLuint const GLchar * name
bool operator!=(const VdfReadWriteIterator &rhs) const
bool operator==(const VdfReadWriteIterator &rhs) const
pointer operator->() const
static VdfReadWriteIterator Allocate(const VdfContext &context, const TfToken &name, size_t count)
size_t GetNumValues() const
#define PXR_NAMESPACE_CLOSE_SCOPE
const_iterator begin() const