36 : fCharacterization(c) {
37 if (fCharacterization.
isValid()) {
44 auto proxyProvider =
fContext->priv().proxyProvider();
55 proxyProvider->orphanAllUniqueKeys();
59bool GrDeferredDisplayListRecorder::init() {
65 if (!fCharacterization.
isValid()) {
70 new GrDeferredDisplayList::LazyProxyData);
72 auto proxyProvider =
fContext->priv().proxyProvider();
75 bool usesGLFBO0 = fCharacterization.usesGLFBO0();
78 fCharacterization.isTextureable()) {
83 bool vkRTSupportsInputAttachment = fCharacterization.vkRTSupportsInputAttachment();
88 if (fCharacterization.vulkanSecondaryCBCompatible()) {
97 vkRTSupportsInputAttachment ||
98 fCharacterization.isTextureable() ||
114 fCharacterization.isTextureable()) {
118 if (vkRTSupportsInputAttachment) {
127 if (fCharacterization.isTextureable()) {
128 optionalTextureInfo = &kTextureInfo;
131 fTargetProxy = proxyProvider->createLazyRenderTargetProxy(
137 SkASSERT(lazyProxyData->fReplayDest->peekSurface());
138 auto surface = sk_ref_sp<GrSurface>(lazyProxyData->fReplayDest->peekSurface());
141 fCharacterization.backendFormat(),
149 fCharacterization.isProtected(),
150 fCharacterization.vulkanSecondaryCBCompatible(),
161 fCharacterization.origin(),
162 fCharacterization.surfaceProps(),
168 fSurface = sk_make_sp<SkSurface_Ganesh>(std::move(
device));
177 if (!fSurface && !this->
init()) {
196 std::move(fTargetProxy),
197 std::move(fLazyProxyData)));
199 fContext->priv().moveRenderTasksToDDL(ddl.get());
@ kRequiresManualMSAAResolve
@ kVkRTSupportsInputAttachment
static constexpr GrColorType SkColorTypeToGrColorType(SkColorType ct)
@ kBottomLeft_GrSurfaceOrigin
static constexpr bool SkToBool(const T &x)
bool msaaResolvesAutomatically() const
GrDeferredDisplayListRecorder(const GrSurfaceCharacterization &)
~GrDeferredDisplayListRecorder()
sk_sp< GrDeferredDisplayList > detach()
static sk_sp< GrRecordingContext > MakeDDL(sk_sp< GrContextThreadSafeProxy >)
const GrCaps * caps() const
sk_sp< GrContextThreadSafeProxy > refContextInfo() const
SkISize dimensions() const
sk_sp< SkColorSpace > refColorSpace() const
SkColorType colorType() const
GrSurfaceProxyPriv priv()
void restoreToCount(int saveCount)