807 {
808 if (keyContext.recorder() &&
809 (!imgData.fTextureProxies[0] || !imgData.fTextureProxies[1] ||
810 !imgData.fTextureProxies[2] || !imgData.fTextureProxies[3])) {
812 return;
813 }
814
815 const Caps* caps = keyContext.caps();
817
822 gatherer->add(imgData.fTextureProxies[0], {imgData.fSampling, imgData.fTileModes});
823 gatherer->add(imgData.fTextureProxies[1], {imgData.fSamplingUV, uvTileModes});
824 gatherer->add(imgData.fTextureProxies[2], {imgData.fSamplingUV, uvTileModes});
825 gatherer->add(imgData.fTextureProxies[3], {imgData.fSampling, imgData.fTileModes});
826
827 if (doTilingInHw) {
828 add_hw_yuv_image_uniform_data(keyContext.dict(), imgData, gatherer);
830 } else if (imgData.fSampling.useCubic) {
831 add_cubic_yuv_image_uniform_data(keyContext.dict(), imgData, gatherer);
833 } else {
834 add_yuv_image_uniform_data(keyContext.dict(), imgData, gatherer);
836 }
837}
static bool can_do_yuv_tiling_in_hw(const Caps *caps, const YUVImageShaderBlock::ImageData &imgData)