#include "src/gpu/ganesh/GrProgramDesc.h"
#include "include/gpu/ganesh/GrBackendSurface.h"
#include "include/private/base/SkAssert.h"
#include "include/private/base/SkTo.h"
#include "include/private/gpu/ganesh/GrTypesPriv.h"
#include "src/gpu/KeyBuilder.h"
#include "src/gpu/Swizzle.h"
#include "src/gpu/ganesh/GrCaps.h"
#include "src/gpu/ganesh/GrFragmentProcessor.h"
#include "src/gpu/ganesh/GrGeometryProcessor.h"
#include "src/gpu/ganesh/GrPipeline.h"
#include "src/gpu/ganesh/GrProcessor.h"
#include "src/gpu/ganesh/GrProgramInfo.h"
#include "src/gpu/ganesh/GrSurfaceProxy.h"
#include "src/gpu/ganesh/GrSurfaceProxyView.h"
#include "src/gpu/ganesh/GrXferProcessor.h"
#include "src/gpu/ganesh/effects/GrTextureEffect.h"
enum GrSurfaceOrigin : int;
static constexpr uint32_t kClassIDBits = …;
static constexpr uint32_t kSamplerOrImageTypeKeyBits = …;
static inline uint16_t texture_type_key(GrTextureType type) { … }
static uint32_t sampler_key(GrTextureType textureType, const skgpu::Swizzle& swizzle,
const GrCaps& caps) { … }
static void add_geomproc_sampler_keys(skgpu::KeyBuilder* b,
const GrGeometryProcessor& geomProc,
const GrCaps& caps) { … }
static void gen_geomproc_key(const GrGeometryProcessor& geomProc,
const GrCaps& caps,
skgpu::KeyBuilder* b) { … }
static void gen_xp_key(const GrXferProcessor& xp,
const GrCaps& caps,
const GrPipeline& pipeline,
skgpu::KeyBuilder* b) { … }
static void gen_fp_key(const GrFragmentProcessor& fp,
const GrCaps& caps,
skgpu::KeyBuilder* b) { … }
static void gen_key(skgpu::KeyBuilder* b,
const GrProgramInfo& programInfo,
const GrCaps& caps) { … }
void GrProgramDesc::Build(GrProgramDesc* desc,
const GrProgramInfo& programInfo,
const GrCaps& caps) { … }
SkString GrProgramDesc::Describe(const GrProgramInfo& programInfo,
const GrCaps& caps) { … }