8#ifndef skgpu_graphite_PipelineData_DEFINED
9#define skgpu_graphite_PipelineData_DEFINED
37 const char*
data()
const {
return fData.
data(); }
40 uint32_t
hash()
const;
43 return fData.
size() == that.fData.
size() &&
59 bool empty()
const {
return fTextureData.empty(); }
60 int numTextures()
const {
return SkTo<int>(fTextureData.size()); }
65 uint32_t
hash()
const;
70 fTextureData.push_back({std::move(proxy),
SamplerDesc{sampling, tileModes}});
79 std::vector<SampledTexture> fTextureData;
109 template <
typename T>
void write(
const T& t) { fUniformManager.
write(t); }
128 friend class UniformExpectationsValidator;
131 void doneWithExpectedUniforms() { fUniformManager.doneWithExpectedUniforms(); }
134 TextureDataBlock fTextureDataBlock;
135 UniformManager fUniformManager;
139class UniformExpectationsValidator {
141 UniformExpectationsValidator(PipelineDataGatherer *gatherer,
144 ~UniformExpectationsValidator() {
145 fGatherer->doneWithExpectedUniforms();
149 PipelineDataGatherer *fGatherer;
151 UniformExpectationsValidator(UniformExpectationsValidator &&) =
delete;
152 UniformExpectationsValidator(
const UniformExpectationsValidator &) =
delete;
153 UniformExpectationsValidator &operator=(UniformExpectationsValidator &&) =
delete;
154 UniformExpectationsValidator &operator=(
const UniformExpectationsValidator &) =
delete;
constexpr T * data() const
constexpr size_t size() const
const SkTileMode sk_sp< TextureProxy > proxy
void write(const Uniform &u, const void *data)
void writeHalf(const T &t)
void writeHalfArray(SkSpan< const T > t)
void resetWithNewLayout(Layout layout)
SkDEBUGCODE(void checkReset();) void add(const SkSamplingOptions &sampling
const SkTileMode tileModes[2]
UniformDataBlock finishUniformDataBlock()
void writeArray(SkSpan< const T > t)
const TextureDataBlock & textureDataBlock()
void writePaintColor(const SkPMColor4f &color)
std::pair< sk_sp< TextureProxy >, SamplerDesc > SampledTexture
TextureDataBlock()=default
bool operator==(const TextureDataBlock &) const
static TextureDataBlock * Make(const TextureDataBlock &, SkArenaAlloc *)
bool operator!=(const TextureDataBlock &other) const
void add(const SkSamplingOptions &sampling, const SkTileMode tileModes[2], sk_sp< TextureProxy > proxy)
const SampledTexture & texture(int index) const