Lines Matching defs:proxy

46         // In DDL-mode a proxy provider can still have extant uniquely keyed proxies (since
53 bool GrProxyProvider::assignUniqueKeyToProxy(const GrUniqueKey& key, GrTextureProxy* proxy) {
56 if (this->isAbandoned() || !proxy) {
60 // Only the proxyProvider that created a proxy should be assigning unique keys to it.
61 SkASSERT(this->isDDLProvider() == proxy->creatingProvider());
78 proxy->cacheAccess().setUniqueKey(this, key);
79 SkASSERT(proxy->getUniqueKey() == key);
80 fUniquelyKeyedProxies.add(proxy);
85 sk_sp<T> GrProxyProvider::assignTagToProxy(sk_sp<T> proxy) {
86 if (!proxy) {
87 return proxy;
91 proxy->setGrProxyTag(direct->getCurrentGrResourceTag());
93 return proxy;
96 void GrProxyProvider::adoptUniqueKeyFromSurface(GrTextureProxy* proxy, const GrSurface* surf) {
98 proxy->cacheAccess().setUniqueKey(this, surf->getUniqueKey());
99 SkASSERT(proxy->getUniqueKey() == surf->getUniqueKey());
102 fUniquelyKeyedProxies.add(proxy);
105 void GrProxyProvider::removeUniqueKeyFromProxy(GrTextureProxy* proxy) {
107 SkASSERT(proxy);
108 SkASSERT(proxy->getUniqueKey().isValid());
114 this->processInvalidUniqueKey(proxy->getUniqueKey(), proxy, InvalidateGPUResource::kYes);
124 GrTextureProxy* proxy = fUniquelyKeyedProxies.find(key);
125 if (proxy) {
126 return sk_ref_sp(proxy);
153 // rely on GrColorType to get a swizzle for the proxy.
268 auto proxy = this->findOrCreateProxyByUniqueKey(key);
269 if (!proxy) {
274 // Assume that we used a fallback color type if and only if the proxy is renderable.
275 if (proxy->asRenderTargetProxy()) {
278 SkASSERT(expectedFormat == proxy->backendFormat());
280 GrSwizzle swizzle = caps->getReadSwizzle(proxy->backendFormat(), ct);
281 return {std::move(proxy), origin, swizzle};
315 sk_sp<GrTextureProxy> proxy;
318 proxy = this->createNonMippedProxyFromBitmap(copyBitmap, fit, budgeted);
320 proxy = this->createMippedProxyFromBitmap(copyBitmap, budgeted);
323 if (!proxy) {
331 // In order to reuse code we always create a lazy proxy. When we aren't in DDL mode however
332 // we're better off instantiating the proxy immediately here.
333 if (!proxy->priv().doLazyInstantiation(resourceProvider)) {
337 return assignTagToProxy(proxy);
351 sk_sp<GrTextureProxy> proxy = this->createLazyProxy(
371 if (!proxy) {
374 SkASSERT(proxy->dimensions() == bitmap.dimensions());
375 return proxy;
395 sk_sp<GrTextureProxy> proxy = this->createLazyProxy(
427 if (!proxy) {
431 SkASSERT(proxy->dimensions() == bitmap.dimensions());
433 return proxy;
511 sk_sp<GrTextureProxy> proxy = this->createLazyProxy(
520 if (!proxy) {
527 // In order to reuse code we always create a lazy proxy. When we aren't in DDL mode however
528 // we're better off instantiating the proxy immediately here.
529 if (!proxy->priv().doLazyInstantiation(resourceProvider)) {
533 return proxy;
566 // Make sure we match how we created the proxy with SkBudgeted::kNo
601 // Make sure we match how we created the proxy with SkBudgeted::kNo
642 // Make sure we match how we created the proxy with SkBudgeted::kNo
677 // Make sure we match how we created the proxy with SkBudgeted::kNo
705 // This proxy should be unbudgeted because we're just wrapping an external resource
747 auto proxy = sk_sp<GrTextureProxy>(new GrTextureProxy(std::move(callback),
758 proxy->priv().setIsPromiseProxy();
759 return proxy;
859 // However, as of today all uses of this essentially create a deferred proxy in the end.
879 void GrProxyProvider::processInvalidUniqueKey(const GrUniqueKey& key, GrTextureProxy* proxy,
881 this->processInvalidUniqueKeyImpl(key, proxy, invalidateGPUResource, RemoveTableEntry::kYes);
884 void GrProxyProvider::processInvalidUniqueKeyImpl(const GrUniqueKey& key, GrTextureProxy* proxy,
889 if (!proxy) {
890 proxy = fUniquelyKeyedProxies.find(key);
892 SkASSERT(!proxy || proxy->getUniqueKey() == key);
895 // proxy's unique key. We must do it in this order because 'key' may alias the proxy's key.
908 if (proxy) {
912 proxy->cacheAccess().clearUniqueKey();
941 fUniquelyKeyedProxies.foreach([&](GrTextureProxy* proxy){
942 proxy->fProxyProvider = nullptr;
947 fUniquelyKeyedProxies.foreach([&](GrTextureProxy* proxy){
950 this->processInvalidUniqueKeyImpl(proxy->getUniqueKey(), proxy,