#ifndef GrQuadBuffer_DEFINED
#define GrQuadBuffer_DEFINED
#include "include/core/SkRect.h"
#include "include/private/base/SkAssert.h"
#include "include/private/base/SkDebug.h"
#include "include/private/base/SkTDArray.h"
#include "src/gpu/ganesh/geometry/GrQuad.h"
#include <cstdint>
#include <cstring>
template<typename T>
class GrQuadBuffer { … };
template<typename T>
float* GrQuadBuffer<T>::packQuad(const GrQuad& quad, float* coords) { … }
template<typename T>
const float* GrQuadBuffer<T>::unpackQuad(GrQuad::Type type, const float* coords, GrQuad* quad) const { … }
template<typename T>
void GrQuadBuffer<T>::append(const GrQuad& deviceQuad, T&& metadata, const GrQuad* localQuad) { … }
template<typename T>
void GrQuadBuffer<T>::concat(const GrQuadBuffer<T>& that) { … }
#ifdef SK_DEBUG
template<typename T>
void GrQuadBuffer<T>::validate(const char* entry, int expectedCount) const { … }
#endif
template<typename T>
bool GrQuadBuffer<T>::Iter::next() { … }
template<typename T>
bool GrQuadBuffer<T>::MetadataIter::next() { … }
#endif