24 : fNeedsStencil(targetView.asRenderTargetProxy()->needsStencil())
25 , fBackendFormat(targetView.proxy()->backendFormat())
26 , fOrigin(targetView.origin())
27 , fTargetHasVkResolveAttachmentWithInput(
28 targetView.asRenderTargetProxy()->supportsVkInputAttachment() &&
29 ((targetView.asRenderTargetProxy()->numSamples() > 1 &&
30 targetView.asTextureProxy()) ||
31 targetView.asRenderTargetProxy()->numSamples() == 1))
32 , fTargetsNumSamples(targetView.asRenderTargetProxy()->numSamples())
34 , fUserStencilSettings(userStencilSettings)
36 , fPrimitiveType(primitiveType)
37 , fRenderPassXferBarriers(renderPassXferBarriers)
38 , fColorLoadOp(colorLoadOp) {
40 fNumSamples = fTargetsNumSamples;
41 if (fNumSamples == 1 && usesMSAASurface) {
51 stencil.
reset(*fUserStencilSettings, this->
pipeline().hasStencilClip(), 8);
60void GrProgramInfo::validate(
bool flushTime)
const {
62 SkASSERT(fPipeline->allProxiesInstantiated());
66void GrProgramInfo::checkAllInstantiated()
const {
73void GrProgramInfo::checkMSAAAndMIPSAreResolved()
const {
SkDEBUGCODE(SK_SPI) SkThreadID SkGetThreadID()
int internalMultisampleCount(const GrBackendFormat &format) const
void visitProxies(const GrVisitProxyFunc &) const
void visitTextureEffects(const std::function< void(const GrTextureEffect &)> &) const
const GrPipeline & pipeline() const
GrProgramInfo(const GrCaps &caps, const GrSurfaceProxyView &targetView, bool usesMSAASurface, const GrPipeline *pipeline, const GrUserStencilSettings *userStencilSettings, const GrGeometryProcessor *geomProc, GrPrimitiveType primitiveType, GrXferBarrierFlags renderPassXferBarriers, GrLoadOp colorLoadOp)
bool isStencilEnabled() const
const GrBackendFormat & backendFormat() const
GrStencilSettings nonGLStencilSettings() const
constexpr skgpu::Mipmapped mipmapped() const
void reset(const GrUserStencilSettings &, bool hasStencilClip, int numStencilBits)
bool isInstantiated() const
GrTexture * texture() const
GrSamplerState samplerState() const
skgpu::Mipmapped mipmapped() const
bool mipmapsAreDirty() const