Revert "Move more internal methods from GrContext to GrContextPriv (take 2)"
This reverts commit c22e50bd31
.
Reason for revert: Speculative fix for Android roll
Original change's description:
> Move more internal methods from GrContext to GrContextPriv (take 2)
>
> Change-Id: I47108910517d61edeb52f82793d384fdb5605d45
> Reviewed-on: https://skia-review.googlesource.com/97241
> Commit-Queue: Robert Phillips <robertphillips@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>
TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com
Change-Id: I3a77ac33c5f48529357cf9c683d5f4cacaa2379f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/97582
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
This commit is contained in:
parent
4f7f197c09
commit
2914555e00
@ -83,7 +83,7 @@ protected:
|
||||
cache->purgeAllUnlocked();
|
||||
SkASSERT(0 == cache->getResourceCount() && 0 == cache->getResourceBytes());
|
||||
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
GrGpu* gpu = context->getGpu();
|
||||
|
||||
for (int i = 0; i < loops; ++i) {
|
||||
populate_cache(gpu, CACHE_SIZE_COUNT, fKeyData32Count);
|
||||
@ -129,7 +129,7 @@ protected:
|
||||
cache->purgeAllUnlocked();
|
||||
SkASSERT(0 == cache->getResourceCount() && 0 == cache->getResourceBytes());
|
||||
|
||||
GrGpu* gpu = fContext->contextPriv().getGpu();
|
||||
GrGpu* gpu = fContext->getGpu();
|
||||
|
||||
populate_cache(gpu, CACHE_SIZE_COUNT, fKeyData32Count);
|
||||
}
|
||||
|
@ -12,7 +12,6 @@
|
||||
|
||||
#if SK_SUPPORT_GPU
|
||||
#include "GrContext.h"
|
||||
#include "GrContextPriv.h"
|
||||
#endif
|
||||
|
||||
// These CPU tile sizes are not good per se, but they are similar to what Chrome uses.
|
||||
@ -190,7 +189,7 @@ void SKPBench::getGpuStats(SkCanvas* canvas, SkTArray<SkString>* keys, SkTArray<
|
||||
context->flush();
|
||||
context->freeGpuResources();
|
||||
context->resetContext();
|
||||
context->contextPriv().getGpu()->resetShaderCacheForTesting();
|
||||
context->getGpu()->resetShaderCacheForTesting();
|
||||
draw_pic_for_stats(canvas, context, fPic.get(), keys, values, "first_frame");
|
||||
|
||||
// draw second frame
|
||||
|
@ -12,7 +12,6 @@
|
||||
#if SK_SUPPORT_GPU
|
||||
|
||||
#include "GrContext.h"
|
||||
#include "GrContextPriv.h"
|
||||
#include "GrGpu.h"
|
||||
#include "GrTest.h"
|
||||
#include "SkBitmap.h"
|
||||
@ -95,7 +94,7 @@ protected:
|
||||
}
|
||||
|
||||
void createYUVTextures(GrContext* context, GrBackendTexture yuvTextures[3]) {
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
GrGpu* gpu = context->getGpu();
|
||||
if (!gpu) {
|
||||
return;
|
||||
}
|
||||
@ -113,7 +112,7 @@ protected:
|
||||
|
||||
void deleteYUVTextures(GrContext* context, GrBackendTexture yuvTextures[3]) {
|
||||
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
GrGpu* gpu = context->getGpu();
|
||||
if (!gpu) {
|
||||
return;
|
||||
}
|
||||
|
@ -13,7 +13,6 @@
|
||||
|
||||
#include "GrBackendSurface.h"
|
||||
#include "GrContext.h"
|
||||
#include "GrContextPriv.h"
|
||||
#include "GrGpu.h"
|
||||
#include "GrTest.h"
|
||||
#include "gl/GrGLContext.h"
|
||||
@ -62,7 +61,7 @@ protected:
|
||||
if (!context) {
|
||||
return nullptr;
|
||||
}
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
GrGpu* gpu = context->getGpu();
|
||||
if (!gpu) {
|
||||
return nullptr;
|
||||
}
|
||||
|
@ -300,6 +300,10 @@ public:
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Functions intended for internal use only.
|
||||
GrGpu* getGpu() { return fGpu.get(); }
|
||||
const GrGpu* getGpu() const { return fGpu.get(); }
|
||||
GrAtlasGlyphCache* getAtlasGlyphCache() { return fAtlasGlyphCache; }
|
||||
GrTextBlobCache* getTextBlobCache() { return fTextBlobCache.get(); }
|
||||
bool abandoned() const;
|
||||
|
||||
/** Reset GPU stats */
|
||||
|
@ -183,7 +183,7 @@ void GrAtlasTextOp::executeForTextTarget(SkAtlasTextTarget* target) {
|
||||
FlushInfo flushInfo;
|
||||
SkAutoGlyphCache glyphCache;
|
||||
auto& context = target->context()->internal();
|
||||
auto* atlasGlyphCache = context.grContext()->contextPriv().getAtlasGlyphCache();
|
||||
auto* atlasGlyphCache = context.grContext()->getAtlasGlyphCache();
|
||||
for (int i = 0; i < fGeoCount; ++i) {
|
||||
GrAtlasTextBlob::VertexRegenerator regenerator(
|
||||
fGeoData[i].fBlob, fGeoData[i].fRun, fGeoData[i].fSubRun, fGeoData[i].fViewMatrix,
|
||||
|
@ -7,7 +7,6 @@
|
||||
|
||||
#include "SkInternalAtlasTextContext.h"
|
||||
#include "GrContext.h"
|
||||
#include "GrContextPriv.h"
|
||||
#include "SkAtlasTextContext.h"
|
||||
#include "SkAtlasTextRenderer.h"
|
||||
#include "text/GrAtlasGlyphCache.h"
|
||||
@ -37,20 +36,17 @@ SkInternalAtlasTextContext::SkInternalAtlasTextContext(sk_sp<SkAtlasTextRenderer
|
||||
|
||||
SkInternalAtlasTextContext::~SkInternalAtlasTextContext() {
|
||||
if (fDistanceFieldAtlas.fProxy) {
|
||||
#ifdef SK_DEBUG
|
||||
auto atlasGlyphCache = fGrContext->contextPriv().getAtlasGlyphCache();
|
||||
SkASSERT(1 == atlasGlyphCache->getAtlasPageCount(kA8_GrMaskFormat));
|
||||
#endif
|
||||
SkASSERT(1 == fGrContext->getAtlasGlyphCache()->getAtlasPageCount(kA8_GrMaskFormat));
|
||||
fRenderer->deleteTexture(fDistanceFieldAtlas.fTextureHandle);
|
||||
}
|
||||
}
|
||||
|
||||
GrAtlasGlyphCache* SkInternalAtlasTextContext::atlasGlyphCache() {
|
||||
return fGrContext->contextPriv().getAtlasGlyphCache();
|
||||
return fGrContext->getAtlasGlyphCache();
|
||||
}
|
||||
|
||||
GrTextBlobCache* SkInternalAtlasTextContext::textBlobCache() {
|
||||
return fGrContext->contextPriv().getTextBlobCache();
|
||||
return fGrContext->getTextBlobCache();
|
||||
}
|
||||
|
||||
GrDeferredUploadToken SkInternalAtlasTextContext::addInlineUpload(
|
||||
@ -84,7 +80,7 @@ void SkInternalAtlasTextContext::recordDraw(const void* srcVertexData, int glyph
|
||||
}
|
||||
|
||||
void SkInternalAtlasTextContext::flush() {
|
||||
auto* atlasGlyphCache = fGrContext->contextPriv().getAtlasGlyphCache();
|
||||
auto* atlasGlyphCache = fGrContext->getAtlasGlyphCache();
|
||||
if (!fDistanceFieldAtlas.fProxy) {
|
||||
SkASSERT(1 == atlasGlyphCache->getAtlasPageCount(kA8_GrMaskFormat));
|
||||
fDistanceFieldAtlas.fProxy = atlasGlyphCache->getProxies(kA8_GrMaskFormat)->get();
|
||||
|
@ -147,7 +147,7 @@ sk_sp<GrTextureProxy> GrAHardwareBufferImageGenerator::onGenerateTexture(
|
||||
#endif
|
||||
|
||||
sk_sp<GrTextureProxy> GrAHardwareBufferImageGenerator::makeProxy(GrContext* context) {
|
||||
if (!context->abandoned() || kOpenGL_GrBackend != context->contextPriv().getBackend()) {
|
||||
if (!context->getGpu() || kOpenGL_GrBackend != context->contextPriv().getBackend()) {
|
||||
// Check if GrContext is not abandoned and the backend is GL.
|
||||
return nullptr;
|
||||
}
|
||||
|
@ -175,12 +175,6 @@ public:
|
||||
|
||||
GrResourceCache* getResourceCache() { return fContext->fResourceCache; }
|
||||
|
||||
GrGpu* getGpu() { return fContext->fGpu.get(); }
|
||||
const GrGpu* getGpu() const { return fContext->fGpu.get(); }
|
||||
|
||||
GrAtlasGlyphCache* getAtlasGlyphCache() { return fContext->fAtlasGlyphCache; }
|
||||
GrTextBlobCache* getTextBlobCache() { return fContext->fTextBlobCache.get(); }
|
||||
|
||||
private:
|
||||
explicit GrContextPriv(GrContext* context) : fContext(context) {}
|
||||
GrContextPriv(const GrContextPriv&); // unimpl
|
||||
|
@ -121,9 +121,8 @@ GrSemaphoresSubmitted GrDrawingManager::internalFlush(GrSurfaceProxy*,
|
||||
SkASSERT(result);
|
||||
#endif
|
||||
|
||||
GrGpu* gpu = fContext->contextPriv().getGpu();
|
||||
|
||||
GrOpFlushState flushState(gpu, fContext->contextPriv().resourceProvider(),
|
||||
GrOpFlushState flushState(fContext->getGpu(),
|
||||
fContext->contextPriv().resourceProvider(),
|
||||
&fTokenTracker);
|
||||
|
||||
GrOnFlushResourceProvider onFlushProvider(this);
|
||||
@ -194,7 +193,8 @@ GrSemaphoresSubmitted GrDrawingManager::internalFlush(GrSurfaceProxy*,
|
||||
|
||||
fOpLists.reset();
|
||||
|
||||
GrSemaphoresSubmitted result = gpu->finishFlush(numSemaphores, backendSemaphores);
|
||||
GrSemaphoresSubmitted result = fContext->getGpu()->finishFlush(numSemaphores,
|
||||
backendSemaphores);
|
||||
|
||||
// We always have to notify the cache when it requested a flush so it can reset its state.
|
||||
if (flushed || type == GrResourceCache::FlushType::kCacheRequested) {
|
||||
@ -299,11 +299,10 @@ GrSemaphoresSubmitted GrDrawingManager::prepareSurfaceForExternalIO(
|
||||
return result;
|
||||
}
|
||||
|
||||
GrGpu* gpu = fContext->contextPriv().getGpu();
|
||||
GrSurface* surface = proxy->priv().peekSurface();
|
||||
|
||||
if (gpu && surface->asRenderTarget()) {
|
||||
gpu->resolveRenderTarget(surface->asRenderTarget(), proxy->origin());
|
||||
if (fContext->getGpu() && surface->asRenderTarget()) {
|
||||
fContext->getGpu()->resolveRenderTarget(surface->asRenderTarget(), proxy->origin());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@ -323,11 +322,10 @@ sk_sp<GrRenderTargetOpList> GrDrawingManager::newRTOpList(GrRenderTargetProxy* r
|
||||
fOpLists.back()->makeClosed(*fContext->caps());
|
||||
}
|
||||
|
||||
auto resourceProvider = fContext->contextPriv().resourceProvider();
|
||||
|
||||
sk_sp<GrRenderTargetOpList> opList(new GrRenderTargetOpList(rtp,
|
||||
resourceProvider,
|
||||
fContext->getAuditTrail()));
|
||||
sk_sp<GrRenderTargetOpList> opList(new GrRenderTargetOpList(
|
||||
rtp,
|
||||
fContext->contextPriv().resourceProvider(),
|
||||
fContext->getAuditTrail()));
|
||||
SkASSERT(rtp->getLastOpList() == opList.get());
|
||||
|
||||
if (managedOpList) {
|
||||
|
@ -75,8 +75,8 @@ sk_sp<GrTextureProxy> GrTextureAdjuster::refTextureProxySafeForParams(const GrSa
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
GrGpu* gpu = fContext->contextPriv().getGpu();
|
||||
if (!gpu->isACopyNeededForTextureParams(proxy.get(), params, ©Params, scaleAdjust)) {
|
||||
if (!fContext->getGpu()->isACopyNeededForTextureParams(proxy.get(), params, ©Params,
|
||||
scaleAdjust)) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
|
@ -28,16 +28,16 @@ sk_sp<GrTextureProxy> GrTextureMaker::refTextureProxyForParams(const GrSamplerSt
|
||||
*texColorSpace = this->getColorSpace(dstColorSpace);
|
||||
}
|
||||
|
||||
GrGpu* gpu = fContext->contextPriv().getGpu();
|
||||
sk_sp<GrTextureProxy> original(this->refOriginalTextureProxy(willBeMipped, dstColorSpace,
|
||||
AllowedTexGenType::kCheap));
|
||||
if (original) {
|
||||
if (!gpu->isACopyNeededForTextureParams(original.get(), params, ©Params, scaleAdjust)) {
|
||||
if (!fContext->getGpu()->isACopyNeededForTextureParams(original.get(), params, ©Params,
|
||||
scaleAdjust)) {
|
||||
return original;
|
||||
}
|
||||
} else {
|
||||
if (!gpu->isACopyNeededForTextureParams(this->width(), this->height(),
|
||||
params, ©Params, scaleAdjust)) {
|
||||
if (!fContext->getGpu()->isACopyNeededForTextureParams(this->width(), this->height(),
|
||||
params, ©Params, scaleAdjust)) {
|
||||
return this->refOriginalTextureProxy(willBeMipped, dstColorSpace,
|
||||
AllowedTexGenType::kAny);
|
||||
}
|
||||
|
@ -348,7 +348,7 @@ static void calculate_translation(bool applyVM,
|
||||
}
|
||||
}
|
||||
|
||||
void GrAtlasTextBlob::flushBigGlyphs(GrTextUtils::Target* target,
|
||||
void GrAtlasTextBlob::flushBigGlyphs(GrContext* context, GrTextUtils::Target* target,
|
||||
const GrClip& clip, const SkPaint& paint,
|
||||
const SkMatrix& viewMatrix, SkScalar x, SkScalar y,
|
||||
const SkIRect& clipBounds) {
|
||||
@ -367,11 +367,11 @@ void GrAtlasTextBlob::flushBigGlyphs(GrTextUtils::Target* target,
|
||||
}
|
||||
}
|
||||
|
||||
void GrAtlasTextBlob::flushBigRun(GrTextUtils::Target* target,
|
||||
const SkSurfaceProps& props, const SkTextBlobRunIterator& it,
|
||||
const GrClip& clip, const GrTextUtils::Paint& paint,
|
||||
SkDrawFilter* drawFilter, const SkMatrix& viewMatrix,
|
||||
const SkIRect& clipBounds, SkScalar x, SkScalar y) {
|
||||
void GrAtlasTextBlob::flushBigRun(GrContext* context, GrTextUtils::Target* target,
|
||||
const SkSurfaceProps& props, const SkTextBlobRunIterator& it,
|
||||
const GrClip& clip, const GrTextUtils::Paint& paint,
|
||||
SkDrawFilter* drawFilter, const SkMatrix& viewMatrix,
|
||||
const SkIRect& clipBounds, SkScalar x, SkScalar y) {
|
||||
size_t textLen = it.glyphCount() * sizeof(uint16_t);
|
||||
const SkPoint& offset = it.offset();
|
||||
|
||||
@ -382,24 +382,24 @@ void GrAtlasTextBlob::flushBigRun(GrTextUtils::Target* target,
|
||||
|
||||
switch (it.positioning()) {
|
||||
case SkTextBlob::kDefault_Positioning:
|
||||
GrTextUtils::DrawBigText(target, clip, runPaint, viewMatrix,
|
||||
GrTextUtils::DrawBigText(context, target, clip, runPaint, viewMatrix,
|
||||
(const char*)it.glyphs(), textLen, x + offset.x(),
|
||||
y + offset.y(), clipBounds);
|
||||
break;
|
||||
case SkTextBlob::kHorizontal_Positioning:
|
||||
GrTextUtils::DrawBigPosText(target, props, clip, runPaint, viewMatrix,
|
||||
GrTextUtils::DrawBigPosText(context, target, props, clip, runPaint, viewMatrix,
|
||||
(const char*)it.glyphs(), textLen, it.pos(), 1,
|
||||
SkPoint::Make(x, y + offset.y()), clipBounds);
|
||||
break;
|
||||
case SkTextBlob::kFull_Positioning:
|
||||
GrTextUtils::DrawBigPosText(target, props, clip, runPaint, viewMatrix,
|
||||
GrTextUtils::DrawBigPosText(context, target, props, clip, runPaint, viewMatrix,
|
||||
(const char*)it.glyphs(), textLen, it.pos(), 2,
|
||||
SkPoint::Make(x, y), clipBounds);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void GrAtlasTextBlob::flushCached(GrAtlasGlyphCache* atlasGlyphCache, GrTextUtils::Target* target,
|
||||
void GrAtlasTextBlob::flushCached(GrContext* context, GrTextUtils::Target* target,
|
||||
const SkTextBlob* blob, const SkSurfaceProps& props,
|
||||
const GrDistanceFieldAdjustTable* distanceAdjustTable,
|
||||
const GrTextUtils::Paint& paint, SkDrawFilter* drawFilter,
|
||||
@ -410,20 +410,19 @@ void GrAtlasTextBlob::flushCached(GrAtlasGlyphCache* atlasGlyphCache, GrTextUtil
|
||||
SkTextBlobRunIterator it(blob);
|
||||
for (int run = 0; !it.done(); it.next(), run++) {
|
||||
if (fRuns[run].fTooBigForAtlas) {
|
||||
this->flushBigRun(target, props, it, clip, paint, drawFilter, viewMatrix,
|
||||
this->flushBigRun(context, target, props, it, clip, paint, drawFilter, viewMatrix,
|
||||
clipBounds, x, y);
|
||||
continue;
|
||||
}
|
||||
this->flushRun(target, clip, run, viewMatrix, x, y, paint, props, distanceAdjustTable,
|
||||
atlasGlyphCache);
|
||||
context->getAtlasGlyphCache());
|
||||
}
|
||||
|
||||
// Now flush big glyphs
|
||||
this->flushBigGlyphs(target, clip, paint, viewMatrix, x, y, clipBounds);
|
||||
this->flushBigGlyphs(context, target, clip, paint, viewMatrix, x, y, clipBounds);
|
||||
}
|
||||
|
||||
void GrAtlasTextBlob::flushThrowaway(GrAtlasGlyphCache* atlasGlyphCache,
|
||||
GrTextUtils::Target* target,
|
||||
void GrAtlasTextBlob::flushThrowaway(GrContext* context, GrTextUtils::Target* target,
|
||||
const SkSurfaceProps& props,
|
||||
const GrDistanceFieldAdjustTable* distanceAdjustTable,
|
||||
const GrTextUtils::Paint& paint, const GrClip& clip,
|
||||
@ -431,11 +430,11 @@ void GrAtlasTextBlob::flushThrowaway(GrAtlasGlyphCache* atlasGlyphCache,
|
||||
SkScalar x, SkScalar y) {
|
||||
for (int run = 0; run < fRunCount; run++) {
|
||||
this->flushRun(target, clip, run, viewMatrix, x, y, paint, props, distanceAdjustTable,
|
||||
atlasGlyphCache);
|
||||
context->getAtlasGlyphCache());
|
||||
}
|
||||
|
||||
// Now flush big glyphs
|
||||
this->flushBigGlyphs(target, clip, paint, viewMatrix, x, y, clipBounds);
|
||||
this->flushBigGlyphs(context, target, clip, paint, viewMatrix, x, y, clipBounds);
|
||||
}
|
||||
|
||||
std::unique_ptr<GrDrawOp> GrAtlasTextBlob::test_makeOp(
|
||||
|
@ -195,14 +195,14 @@ public:
|
||||
const SkMatrix& viewMatrix, SkScalar x, SkScalar y);
|
||||
|
||||
// flush a GrAtlasTextBlob associated with a SkTextBlob
|
||||
void flushCached(GrAtlasGlyphCache*, GrTextUtils::Target*, const SkTextBlob* blob,
|
||||
void flushCached(GrContext* context, GrTextUtils::Target*, const SkTextBlob* blob,
|
||||
const SkSurfaceProps& props,
|
||||
const GrDistanceFieldAdjustTable* distanceAdjustTable,
|
||||
const GrTextUtils::Paint&, SkDrawFilter* drawFilter, const GrClip& clip,
|
||||
const SkMatrix& viewMatrix, const SkIRect& clipBounds, SkScalar x, SkScalar y);
|
||||
|
||||
// flush a throwaway GrAtlasTextBlob *not* associated with an SkTextBlob
|
||||
void flushThrowaway(GrAtlasGlyphCache*, GrTextUtils::Target*, const SkSurfaceProps& props,
|
||||
void flushThrowaway(GrContext* context, GrTextUtils::Target*, const SkSurfaceProps& props,
|
||||
const GrDistanceFieldAdjustTable* distanceAdjustTable,
|
||||
const GrTextUtils::Paint& paint, const GrClip& clip,
|
||||
const SkMatrix& viewMatrix, const SkIRect& clipBounds, SkScalar x,
|
||||
@ -295,11 +295,11 @@ private:
|
||||
const GrDistanceFieldAdjustTable* distanceAdjustTable,
|
||||
GrAtlasGlyphCache* cache);
|
||||
|
||||
void flushBigGlyphs(GrTextUtils::Target*, const GrClip& clip,
|
||||
void flushBigGlyphs(GrContext* context, GrTextUtils::Target*, const GrClip& clip,
|
||||
const SkPaint& paint, const SkMatrix& viewMatrix, SkScalar x, SkScalar y,
|
||||
const SkIRect& clipBounds);
|
||||
|
||||
void flushBigRun(GrTextUtils::Target*, const SkSurfaceProps& props,
|
||||
void flushBigRun(GrContext* context, GrTextUtils::Target*, const SkSurfaceProps& props,
|
||||
const SkTextBlobRunIterator& it, const GrClip& clip,
|
||||
const GrTextUtils::Paint& paint, SkDrawFilter* drawFilter,
|
||||
const SkMatrix& viewMatrix, const SkIRect& clipBounds, SkScalar x,
|
||||
|
@ -6,7 +6,6 @@
|
||||
*/
|
||||
#include "GrAtlasTextContext.h"
|
||||
#include "GrContext.h"
|
||||
#include "GrContextPriv.h"
|
||||
#include "GrTextBlobCache.h"
|
||||
#include "SkDistanceFieldGen.h"
|
||||
#include "SkDraw.h"
|
||||
@ -122,9 +121,7 @@ void GrAtlasTextContext::drawTextBlob(GrContext* context, GrTextUtils::Target* t
|
||||
drawFilter);
|
||||
uint32_t scalerContextFlags = ComputeScalerContextFlags(target->colorSpaceInfo());
|
||||
|
||||
auto atlasGlyphCache = context->contextPriv().getAtlasGlyphCache();
|
||||
GrTextBlobCache* textBlobCache = context->contextPriv().getTextBlobCache();
|
||||
|
||||
GrTextBlobCache* cache = context->getTextBlobCache();
|
||||
if (canCache) {
|
||||
bool hasLCD = HasLCD(blob);
|
||||
|
||||
@ -144,7 +141,7 @@ void GrAtlasTextContext::drawTextBlob(GrContext* context, GrTextUtils::Target* t
|
||||
key.fHasBlur = SkToBool(mf);
|
||||
key.fCanonicalColor = canonicalColor;
|
||||
key.fScalerContextFlags = scalerContextFlags;
|
||||
cacheBlob = textBlobCache->find(key);
|
||||
cacheBlob = cache->find(key);
|
||||
}
|
||||
|
||||
GrTextUtils::Paint paint(&skPaint, &target->colorSpaceInfo());
|
||||
@ -153,21 +150,21 @@ void GrAtlasTextContext::drawTextBlob(GrContext* context, GrTextUtils::Target* t
|
||||
// We have to remake the blob because changes may invalidate our masks.
|
||||
// TODO we could probably get away reuse most of the time if the pointer is unique,
|
||||
// but we'd have to clear the subrun information
|
||||
textBlobCache->remove(cacheBlob.get());
|
||||
cacheBlob = textBlobCache->makeCachedBlob(blob, key, blurRec, skPaint);
|
||||
this->regenerateTextBlob(cacheBlob.get(), atlasGlyphCache,
|
||||
cache->remove(cacheBlob.get());
|
||||
cacheBlob = cache->makeCachedBlob(blob, key, blurRec, skPaint);
|
||||
this->regenerateTextBlob(cacheBlob.get(), context->getAtlasGlyphCache(),
|
||||
*context->caps()->shaderCaps(), paint, scalerContextFlags,
|
||||
viewMatrix, props, blob, x, y, drawFilter);
|
||||
} else {
|
||||
textBlobCache->makeMRU(cacheBlob.get());
|
||||
cache->makeMRU(cacheBlob.get());
|
||||
|
||||
if (CACHE_SANITY_CHECK) {
|
||||
int glyphCount = 0;
|
||||
int runCount = 0;
|
||||
GrTextBlobCache::BlobGlyphCount(&glyphCount, &runCount, blob);
|
||||
sk_sp<GrAtlasTextBlob> sanityBlob(textBlobCache->makeBlob(glyphCount, runCount));
|
||||
sk_sp<GrAtlasTextBlob> sanityBlob(cache->makeBlob(glyphCount, runCount));
|
||||
sanityBlob->setupKey(key, blurRec, skPaint);
|
||||
this->regenerateTextBlob(sanityBlob.get(), atlasGlyphCache,
|
||||
this->regenerateTextBlob(sanityBlob.get(), context->getAtlasGlyphCache(),
|
||||
*context->caps()->shaderCaps(), paint, scalerContextFlags,
|
||||
viewMatrix, props, blob, x, y, drawFilter);
|
||||
GrAtlasTextBlob::AssertEqual(*sanityBlob, *cacheBlob);
|
||||
@ -175,16 +172,16 @@ void GrAtlasTextContext::drawTextBlob(GrContext* context, GrTextUtils::Target* t
|
||||
}
|
||||
} else {
|
||||
if (canCache) {
|
||||
cacheBlob = textBlobCache->makeCachedBlob(blob, key, blurRec, skPaint);
|
||||
cacheBlob = cache->makeCachedBlob(blob, key, blurRec, skPaint);
|
||||
} else {
|
||||
cacheBlob = textBlobCache->makeBlob(blob);
|
||||
cacheBlob = cache->makeBlob(blob);
|
||||
}
|
||||
this->regenerateTextBlob(cacheBlob.get(), atlasGlyphCache,
|
||||
this->regenerateTextBlob(cacheBlob.get(), context->getAtlasGlyphCache(),
|
||||
*context->caps()->shaderCaps(), paint, scalerContextFlags,
|
||||
viewMatrix, props, blob, x, y, drawFilter);
|
||||
}
|
||||
|
||||
cacheBlob->flushCached(atlasGlyphCache, target, blob, props, fDistanceAdjustTable.get(), paint,
|
||||
cacheBlob->flushCached(context, target, blob, props, fDistanceAdjustTable.get(), paint,
|
||||
drawFilter, clip, viewMatrix, clipBounds, x, y);
|
||||
}
|
||||
|
||||
@ -321,27 +318,23 @@ void GrAtlasTextContext::drawText(GrContext* context, GrTextUtils::Target* targe
|
||||
if (context->abandoned()) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto atlasGlyphCache = context->contextPriv().getAtlasGlyphCache();
|
||||
auto textBlobCache = context->contextPriv().getTextBlobCache();
|
||||
|
||||
GrTextUtils::Paint paint(&skPaint, &target->colorSpaceInfo());
|
||||
if (this->canDraw(atlasGlyphCache, skPaint, viewMatrix, props,
|
||||
if (this->canDraw(context->getAtlasGlyphCache(), skPaint, viewMatrix, props,
|
||||
*context->caps()->shaderCaps())) {
|
||||
sk_sp<GrAtlasTextBlob> blob(
|
||||
this->makeDrawTextBlob(textBlobCache, atlasGlyphCache,
|
||||
this->makeDrawTextBlob(context->getTextBlobCache(), context->getAtlasGlyphCache(),
|
||||
*context->caps()->shaderCaps(), paint,
|
||||
ComputeScalerContextFlags(target->colorSpaceInfo()),
|
||||
viewMatrix, props, text, byteLength, x, y));
|
||||
if (blob) {
|
||||
blob->flushThrowaway(atlasGlyphCache, target, props, fDistanceAdjustTable.get(), paint,
|
||||
clip, viewMatrix, regionClipBounds, x, y);
|
||||
blob->flushThrowaway(context, target, props, fDistanceAdjustTable.get(), paint, clip,
|
||||
viewMatrix, regionClipBounds, x, y);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// fall back to drawing as a path or scaled glyph
|
||||
GrTextUtils::DrawBigText(target, clip, paint, viewMatrix, text, byteLength, x, y,
|
||||
GrTextUtils::DrawBigText(context, target, clip, paint, viewMatrix, text, byteLength, x, y,
|
||||
regionClipBounds);
|
||||
}
|
||||
|
||||
@ -354,27 +347,22 @@ void GrAtlasTextContext::drawPosText(GrContext* context, GrTextUtils::Target* ta
|
||||
GrTextUtils::Paint paint(&skPaint, &target->colorSpaceInfo());
|
||||
if (context->abandoned()) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto atlasGlyphCache = context->contextPriv().getAtlasGlyphCache();
|
||||
auto textBlobCache = context->contextPriv().getTextBlobCache();
|
||||
|
||||
if (this->canDraw(atlasGlyphCache, skPaint, viewMatrix, props,
|
||||
*context->caps()->shaderCaps())) {
|
||||
} else if (this->canDraw(context->getAtlasGlyphCache(), skPaint, viewMatrix, props,
|
||||
*context->caps()->shaderCaps())) {
|
||||
sk_sp<GrAtlasTextBlob> blob(this->makeDrawPosTextBlob(
|
||||
textBlobCache, atlasGlyphCache,
|
||||
context->getTextBlobCache(), context->getAtlasGlyphCache(),
|
||||
*context->caps()->shaderCaps(), paint,
|
||||
ComputeScalerContextFlags(target->colorSpaceInfo()), viewMatrix, props, text,
|
||||
byteLength, pos, scalarsPerPosition, offset));
|
||||
if (blob) {
|
||||
blob->flushThrowaway(atlasGlyphCache, target, props, fDistanceAdjustTable.get(), paint,
|
||||
clip, viewMatrix, regionClipBounds, offset.fX, offset.fY);
|
||||
blob->flushThrowaway(context, target, props, fDistanceAdjustTable.get(), paint, clip,
|
||||
viewMatrix, regionClipBounds, offset.fX, offset.fY);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// fall back to drawing as a path or scaled glyph
|
||||
GrTextUtils::DrawBigPosText(target, props, clip, paint, viewMatrix, text,
|
||||
GrTextUtils::DrawBigPosText(context, target, props, clip, paint, viewMatrix, text,
|
||||
byteLength, pos, scalarsPerPosition, offset, regionClipBounds);
|
||||
}
|
||||
|
||||
@ -848,18 +836,16 @@ GR_DRAW_OP_TEST_DEFINE(GrAtlasTextOp) {
|
||||
SkScalar x = SkIntToScalar(xInt);
|
||||
SkScalar y = SkIntToScalar(yInt);
|
||||
|
||||
auto atlasGlyphCache = context->contextPriv().getAtlasGlyphCache();
|
||||
|
||||
// right now we don't handle textblobs, nor do we handle drawPosText. Since we only intend to
|
||||
// test the text op with this unit test, that is okay.
|
||||
sk_sp<GrAtlasTextBlob> blob(gTextContext->makeDrawTextBlob(
|
||||
context->contextPriv().getTextBlobCache(), atlasGlyphCache,
|
||||
context->getTextBlobCache(), context->getAtlasGlyphCache(),
|
||||
*context->caps()->shaderCaps(), utilsPaint,
|
||||
GrAtlasTextContext::kTextBlobOpScalerContextFlags, viewMatrix, gSurfaceProps, text,
|
||||
static_cast<size_t>(textLen), x, y));
|
||||
|
||||
return blob->test_makeOp(textLen, 0, 0, viewMatrix, x, y, utilsPaint, gSurfaceProps,
|
||||
gTextContext->dfAdjustTable(), atlasGlyphCache,
|
||||
gTextContext->dfAdjustTable(), context->getAtlasGlyphCache(),
|
||||
rtc->textTarget());
|
||||
}
|
||||
|
||||
|
@ -78,7 +78,7 @@ bool GrTextUtils::ShouldDisableLCD(const SkPaint& paint) {
|
||||
paint.isFakeBoldText() || paint.getStyle() != SkPaint::kFill_Style;
|
||||
}
|
||||
|
||||
void GrTextUtils::DrawBigText(GrTextUtils::Target* target,
|
||||
void GrTextUtils::DrawBigText(GrContext* context, GrTextUtils::Target* target,
|
||||
const GrClip& clip, const SkPaint& paint,
|
||||
const SkMatrix& viewMatrix, const char text[], size_t byteLength,
|
||||
SkScalar x, SkScalar y, const SkIRect& clipBounds) {
|
||||
@ -104,7 +104,7 @@ void GrTextUtils::DrawBigText(GrTextUtils::Target* target,
|
||||
}
|
||||
}
|
||||
|
||||
void GrTextUtils::DrawBigPosText(GrTextUtils::Target* target,
|
||||
void GrTextUtils::DrawBigPosText(GrContext* context, GrTextUtils::Target* target,
|
||||
const SkSurfaceProps& props, const GrClip& clip,
|
||||
const SkPaint& origPaint, const SkMatrix& viewMatrix,
|
||||
const char text[], size_t byteLength, const SkScalar pos[],
|
||||
|
@ -129,17 +129,17 @@ public:
|
||||
static bool ShouldDisableLCD(const SkPaint& paint);
|
||||
|
||||
// Functions for drawing large text either as paths or (for color emoji) as scaled glyphs
|
||||
static void DrawBigText(GrTextUtils::Target*, const GrClip& clip,
|
||||
const SkPaint& paint, const SkMatrix& viewMatrix, const char text[],
|
||||
size_t byteLength, SkScalar x, SkScalar y,
|
||||
const SkIRect& clipBounds);
|
||||
|
||||
static void DrawBigPosText(GrTextUtils::Target*,
|
||||
const SkSurfaceProps& props, const GrClip& clip,
|
||||
const SkPaint& paint, const SkMatrix& viewMatrix,
|
||||
const char text[], size_t byteLength, const SkScalar pos[],
|
||||
int scalarsPerPosition, const SkPoint& offset,
|
||||
static void DrawBigText(GrContext*, GrTextUtils::Target*, const GrClip& clip,
|
||||
const SkPaint& paint, const SkMatrix& viewMatrix, const char text[],
|
||||
size_t byteLength, SkScalar x, SkScalar y,
|
||||
const SkIRect& clipBounds);
|
||||
|
||||
static void DrawBigPosText(GrContext* context, GrTextUtils::Target*,
|
||||
const SkSurfaceProps& props, const GrClip& clip,
|
||||
const SkPaint& paint, const SkMatrix& viewMatrix,
|
||||
const char text[], size_t byteLength, const SkScalar pos[],
|
||||
int scalarsPerPosition, const SkPoint& offset,
|
||||
const SkIRect& clipBounds);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -590,8 +590,7 @@ sk_sp<SkImage> SkImage::MakeCrossContextFromEncoded(GrContext* context, sk_sp<Sk
|
||||
// Flush any writes or uploads
|
||||
context->contextPriv().prepareSurfaceForExternalIO(proxy.get());
|
||||
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
sk_sp<GrSemaphore> sema = gpu->prepareTextureForCrossContextUsage(texture.get());
|
||||
sk_sp<GrSemaphore> sema = context->getGpu()->prepareTextureForCrossContextUsage(texture.get());
|
||||
|
||||
auto gen = GrBackendTextureImageGenerator::Make(std::move(texture), proxy->origin(),
|
||||
std::move(sema), codecImage->alphaType(),
|
||||
@ -626,9 +625,8 @@ sk_sp<SkImage> SkImage::MakeCrossContextFromPixmap(GrContext* context, const SkP
|
||||
|
||||
// Flush any writes or uploads
|
||||
context->contextPriv().prepareSurfaceForExternalIO(proxy.get());
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
sk_sp<GrSemaphore> sema = gpu->prepareTextureForCrossContextUsage(texture.get());
|
||||
sk_sp<GrSemaphore> sema = context->getGpu()->prepareTextureForCrossContextUsage(texture.get());
|
||||
|
||||
auto gen = GrBackendTextureImageGenerator::Make(std::move(texture), proxy->origin(),
|
||||
std::move(sema), pixmap.alphaType(),
|
||||
|
@ -28,7 +28,7 @@ static void cleanup(GLTestContext* glctx0, GrGLuint texID0, GLTestContext* glctx
|
||||
glctx1->makeCurrent();
|
||||
if (grctx1) {
|
||||
if (backendTex1 && backendTex1->isValid()) {
|
||||
GrGLGpu* gpu1 = static_cast<GrGLGpu*>(grctx1->contextPriv().getGpu());
|
||||
GrGLGpu* gpu1 = static_cast<GrGLGpu*>(grctx1->getGpu());
|
||||
gpu1->deleteTestingOnlyBackendTexture(backendTex1);
|
||||
}
|
||||
}
|
||||
@ -53,7 +53,7 @@ DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(EGLImageTest, reporter, ctxInfo) {
|
||||
if (kGLES_GrGLStandard != glCtx0->gl()->fStandard) {
|
||||
return;
|
||||
}
|
||||
GrGLGpu* gpu0 = static_cast<GrGLGpu*>(context0->contextPriv().getGpu());
|
||||
GrGLGpu* gpu0 = static_cast<GrGLGpu*>(context0->getGpu());
|
||||
if (!gpu0->glCaps().shaderCaps()->externalTextureSupport()) {
|
||||
return;
|
||||
}
|
||||
@ -83,7 +83,7 @@ DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(EGLImageTest, reporter, ctxInfo) {
|
||||
|
||||
// Use GL Context 1 to create a texture unknown to GrContext.
|
||||
context1->flush();
|
||||
GrGpu* gpu1 = context1->contextPriv().getGpu();
|
||||
GrGpu* gpu1 = context1->getGpu();
|
||||
static const int kSize = 100;
|
||||
backendTexture1 =
|
||||
gpu1->createTestingOnlyBackendTexture(nullptr, kSize, kSize, kRGBA_8888_GrPixelConfig,
|
||||
|
@ -348,7 +348,7 @@ bool GrDrawingManager::ProgramUnitTest(GrContext* context, int maxStages, int ma
|
||||
|
||||
static int get_glprograms_max_stages(const sk_gpu_test::ContextInfo& ctxInfo) {
|
||||
GrContext* context = ctxInfo.grContext();
|
||||
GrGLGpu* gpu = static_cast<GrGLGpu*>(context->contextPriv().getGpu());
|
||||
GrGLGpu* gpu = static_cast<GrGLGpu*>(context->getGpu());
|
||||
int maxStages = 6;
|
||||
if (kGLES_GrGLStandard == gpu->glStandard()) {
|
||||
// We've had issues with driver crashes and HW limits being exceeded with many effects on
|
||||
|
@ -37,14 +37,12 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrWrappedMipMappedTest, reporter, ctxInfo) {
|
||||
if (!context->caps()->mipMapSupport()) {
|
||||
return;
|
||||
}
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
for (auto mipMapped : {GrMipMapped::kNo, GrMipMapped::kYes}) {
|
||||
for (auto isRT : {false, true}) {
|
||||
// CreateTestingOnlyBackendTexture currently doesn't support uploading data to mip maps
|
||||
// so we don't send any. However, we pretend there is data for the checks below which is
|
||||
// fine since we are never actually using these textures for any work on the gpu.
|
||||
GrBackendTexture backendTex = gpu->createTestingOnlyBackendTexture(
|
||||
GrBackendTexture backendTex = context->getGpu()->createTestingOnlyBackendTexture(
|
||||
nullptr, kSize, kSize, kRGBA_8888_GrPixelConfig, isRT, mipMapped);
|
||||
|
||||
sk_sp<GrTextureProxy> proxy;
|
||||
@ -71,7 +69,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrWrappedMipMappedTest, reporter, ctxInfo) {
|
||||
}
|
||||
REPORTER_ASSERT(reporter, proxy);
|
||||
if (!proxy) {
|
||||
gpu->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -80,7 +78,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrWrappedMipMappedTest, reporter, ctxInfo) {
|
||||
GrTexture* texture = proxy->priv().peekTexture();
|
||||
REPORTER_ASSERT(reporter, texture);
|
||||
if (!texture) {
|
||||
gpu->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -94,7 +92,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrWrappedMipMappedTest, reporter, ctxInfo) {
|
||||
} else {
|
||||
REPORTER_ASSERT(reporter, GrMipMapped::kNo == texture->texturePriv().mipMapped());
|
||||
}
|
||||
gpu->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -106,11 +104,9 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrBackendTextureImageMipMappedTest, reporter,
|
||||
if (!context->caps()->mipMapSupport()) {
|
||||
return;
|
||||
}
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
for (auto mipMapped : {GrMipMapped::kNo, GrMipMapped::kYes}) {
|
||||
for (auto willUseMips : {false, true}) {
|
||||
GrBackendTexture backendTex = gpu->createTestingOnlyBackendTexture(
|
||||
GrBackendTexture backendTex = context->getGpu()->createTestingOnlyBackendTexture(
|
||||
nullptr, kSize, kSize, kRGBA_8888_GrPixelConfig, false, mipMapped);
|
||||
|
||||
sk_sp<SkImage> image = SkImage::MakeFromTexture(context, backendTex,
|
||||
@ -122,7 +118,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrBackendTextureImageMipMappedTest, reporter,
|
||||
GrTextureProxy* proxy = as_IB(image)->peekProxy();
|
||||
REPORTER_ASSERT(reporter, proxy);
|
||||
if (!proxy) {
|
||||
gpu->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -131,7 +127,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrBackendTextureImageMipMappedTest, reporter,
|
||||
sk_sp<GrTexture> texture = sk_ref_sp(proxy->priv().peekTexture());
|
||||
REPORTER_ASSERT(reporter, texture);
|
||||
if (!texture) {
|
||||
gpu->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -139,7 +135,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrBackendTextureImageMipMappedTest, reporter,
|
||||
texture, kTopLeft_GrSurfaceOrigin, nullptr, kPremul_SkAlphaType, nullptr);
|
||||
REPORTER_ASSERT(reporter, imageGen);
|
||||
if (!imageGen) {
|
||||
gpu->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -155,7 +151,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrBackendTextureImageMipMappedTest, reporter,
|
||||
|
||||
REPORTER_ASSERT(reporter, genProxy);
|
||||
if (!genProxy) {
|
||||
gpu->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -168,7 +164,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrBackendTextureImageMipMappedTest, reporter,
|
||||
GrTexture* genTexture = genProxy->priv().peekTexture();
|
||||
REPORTER_ASSERT(reporter, genTexture);
|
||||
if (!genTexture) {
|
||||
gpu->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -206,7 +202,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrBackendTextureImageMipMappedTest, reporter,
|
||||
bitmap.allocPixels(imageInfo);
|
||||
surfContext->readPixels(imageInfo, bitmap.getPixels(), 0, 0, 0, 0);
|
||||
|
||||
gpu->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -220,13 +216,12 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrImageSnapshotMipMappedTest, reporter, ctxIn
|
||||
}
|
||||
|
||||
auto resourceProvider = context->contextPriv().resourceProvider();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
for (auto willUseMips : {false, true}) {
|
||||
for (auto isWrapped : {false, true}) {
|
||||
GrMipMapped mipMapped = willUseMips ? GrMipMapped::kYes : GrMipMapped::kNo;
|
||||
sk_sp<SkSurface> surface;
|
||||
GrBackendTexture backendTex = gpu->createTestingOnlyBackendTexture(
|
||||
GrBackendTexture backendTex = context->getGpu()->createTestingOnlyBackendTexture(
|
||||
nullptr, kSize, kSize, kRGBA_8888_GrPixelConfig, true, mipMapped);
|
||||
if (isWrapped) {
|
||||
surface = SkSurface::MakeFromBackendTexture(context,
|
||||
@ -245,7 +240,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrImageSnapshotMipMappedTest, reporter, ctxIn
|
||||
}
|
||||
REPORTER_ASSERT(reporter, surface);
|
||||
if (!surface) {
|
||||
gpu->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
}
|
||||
SkGpuDevice* device = ((SkSurface_Gpu*)surface.get())->getDevice();
|
||||
GrTextureProxy* texProxy = device->accessRenderTargetContext()->asTextureProxy();
|
||||
@ -258,7 +253,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrImageSnapshotMipMappedTest, reporter, ctxIn
|
||||
sk_sp<SkImage> image = surface->makeImageSnapshot();
|
||||
REPORTER_ASSERT(reporter, image);
|
||||
if (!image) {
|
||||
gpu->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
}
|
||||
texProxy = as_IB(image)->peekProxy();
|
||||
REPORTER_ASSERT(reporter, mipMapped == texProxy->mipMapped());
|
||||
@ -270,7 +265,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrImageSnapshotMipMappedTest, reporter, ctxIn
|
||||
// Must flush the context to make sure all the cmds (copies, etc.) from above are sent
|
||||
// to the gpu before we delete the backendHandle.
|
||||
context->flush();
|
||||
gpu->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ static void test_lcd_coverage(skiatest::Reporter* reporter, const GrCaps& caps);
|
||||
static void test_lcd_coverage_fallback_case(skiatest::Reporter* reporter, const GrCaps& caps);
|
||||
|
||||
DEF_GPUTEST_FOR_NULLGL_CONTEXT(GrPorterDuff, reporter, ctxInfo) {
|
||||
const GrCaps& caps = *ctxInfo.grContext()->contextPriv().getGpu()->caps();
|
||||
const GrCaps& caps = *ctxInfo.grContext()->getGpu()->caps();
|
||||
if (!caps.shaderCaps()->dualSourceBlendingSupport()) {
|
||||
SK_ABORT("Null context does not support dual source blending.");
|
||||
return;
|
||||
@ -1061,7 +1061,6 @@ DEF_GPUTEST(PorterDuffNoDualSourceBlending, reporter, options) {
|
||||
return;
|
||||
}
|
||||
|
||||
GrGpu* gpu = ctx->contextPriv().getGpu();
|
||||
GrProxyProvider* proxyProvider = ctx->contextPriv().proxyProvider();
|
||||
const GrCaps& caps = *ctx->caps();
|
||||
if (caps.shaderCaps()->dualSourceBlendingSupport()) {
|
||||
@ -1070,8 +1069,8 @@ DEF_GPUTEST(PorterDuffNoDualSourceBlending, reporter, options) {
|
||||
}
|
||||
|
||||
GrBackendTexture backendTex =
|
||||
gpu->createTestingOnlyBackendTexture(nullptr, 100, 100, kRGBA_8888_GrPixelConfig,
|
||||
false, GrMipMapped::kNo);
|
||||
ctx->getGpu()->createTestingOnlyBackendTexture(nullptr, 100, 100, kRGBA_8888_GrPixelConfig,
|
||||
false, GrMipMapped::kNo);
|
||||
|
||||
GrXferProcessor::DstProxy fakeDstProxy;
|
||||
{
|
||||
@ -1102,7 +1101,7 @@ DEF_GPUTEST(PorterDuffNoDualSourceBlending, reporter, options) {
|
||||
}
|
||||
}
|
||||
}
|
||||
gpu->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
ctx->getGpu()->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -25,7 +25,6 @@
|
||||
DEF_GPUTEST_FOR_NULLGL_CONTEXT(GrSurface, reporter, ctxInfo) {
|
||||
GrContext* context = ctxInfo.grContext();
|
||||
auto resourceProvider = context->contextPriv().resourceProvider();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
GrSurfaceDesc desc;
|
||||
desc.fFlags = kRenderTarget_GrSurfaceFlag;
|
||||
@ -52,7 +51,7 @@ DEF_GPUTEST_FOR_NULLGL_CONTEXT(GrSurface, reporter, ctxInfo) {
|
||||
REPORTER_ASSERT(reporter, tex1.get() == tex1->asTexture());
|
||||
REPORTER_ASSERT(reporter, static_cast<GrSurface*>(tex1.get()) == tex1->asTexture());
|
||||
|
||||
GrBackendTexture backendTex = gpu->createTestingOnlyBackendTexture(
|
||||
GrBackendTexture backendTex = context->getGpu()->createTestingOnlyBackendTexture(
|
||||
nullptr, 256, 256, kRGBA_8888_GrPixelConfig, false, GrMipMapped::kNo);
|
||||
|
||||
sk_sp<GrSurface> texRT2 = resourceProvider->wrapRenderableBackendTexture(
|
||||
@ -67,7 +66,7 @@ DEF_GPUTEST_FOR_NULLGL_CONTEXT(GrSurface, reporter, ctxInfo) {
|
||||
REPORTER_ASSERT(reporter, static_cast<GrSurface*>(texRT2->asRenderTarget()) ==
|
||||
static_cast<GrSurface*>(texRT2->asTexture()));
|
||||
|
||||
gpu->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
}
|
||||
|
||||
// This test checks that the isConfigTexturable and isConfigRenderable are
|
||||
|
@ -723,9 +723,8 @@ DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SkImage_NewFromTextureRelease, reporter, c
|
||||
std::unique_ptr<uint32_t[]> pixels(new uint32_t[kWidth * kHeight]);
|
||||
|
||||
GrContext* ctx = ctxInfo.grContext();
|
||||
GrGpu* gpu = ctx->contextPriv().getGpu();
|
||||
|
||||
GrBackendTexture backendTex = gpu->createTestingOnlyBackendTexture(
|
||||
GrBackendTexture backendTex = ctxInfo.grContext()->getGpu()->createTestingOnlyBackendTexture(
|
||||
pixels.get(), kWidth, kHeight, kRGBA_8888_GrPixelConfig, true, GrMipMapped::kNo);
|
||||
|
||||
TextureReleaseChecker releaseChecker;
|
||||
@ -757,7 +756,7 @@ DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SkImage_NewFromTextureRelease, reporter, c
|
||||
refImg.reset(nullptr); // force a release of the image
|
||||
REPORTER_ASSERT(reporter, 1 == releaseChecker.fReleaseCount);
|
||||
|
||||
gpu->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
ctxInfo.grContext()->getGpu()->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
}
|
||||
|
||||
static void test_cross_context_image(skiatest::Reporter* reporter, const GrContextOptions& options,
|
||||
|
@ -111,9 +111,6 @@ private:
|
||||
|
||||
DEF_GPUTEST_FOR_ALL_CONTEXTS(VertexAttributeCount, reporter, ctxInfo) {
|
||||
GrContext* context = ctxInfo.grContext();
|
||||
#if GR_GPU_STATS
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
#endif
|
||||
|
||||
sk_sp<GrRenderTargetContext> renderTargetContext(context->makeDeferredRenderTargetContext(
|
||||
SkBackingFit::kApprox,
|
||||
@ -131,23 +128,23 @@ DEF_GPUTEST_FOR_ALL_CONTEXTS(VertexAttributeCount, reporter, ctxInfo) {
|
||||
context->flush();
|
||||
context->resetGpuStats();
|
||||
#if GR_GPU_STATS
|
||||
REPORTER_ASSERT(reporter, gpu->stats()->numDraws() == 0);
|
||||
REPORTER_ASSERT(reporter, gpu->stats()->numFailedDraws() == 0);
|
||||
REPORTER_ASSERT(reporter, context->getGpu()->stats()->numDraws() == 0);
|
||||
REPORTER_ASSERT(reporter, context->getGpu()->stats()->numFailedDraws() == 0);
|
||||
#endif
|
||||
GrPaint grPaint;
|
||||
// This one should succeed.
|
||||
renderTargetContext->priv().testingOnly_addDrawOp(Op::Make(attribCnt));
|
||||
context->flush();
|
||||
#if GR_GPU_STATS
|
||||
REPORTER_ASSERT(reporter, gpu->stats()->numDraws() == 1);
|
||||
REPORTER_ASSERT(reporter, gpu->stats()->numFailedDraws() == 0);
|
||||
REPORTER_ASSERT(reporter, context->getGpu()->stats()->numDraws() == 1);
|
||||
REPORTER_ASSERT(reporter, context->getGpu()->stats()->numFailedDraws() == 0);
|
||||
#endif
|
||||
context->resetGpuStats();
|
||||
renderTargetContext->priv().testingOnly_addDrawOp(Op::Make(attribCnt + 1));
|
||||
context->flush();
|
||||
#if GR_GPU_STATS
|
||||
REPORTER_ASSERT(reporter, gpu->stats()->numDraws() == 0);
|
||||
REPORTER_ASSERT(reporter, gpu->stats()->numFailedDraws() == 1);
|
||||
REPORTER_ASSERT(reporter, context->getGpu()->stats()->numDraws() == 0);
|
||||
REPORTER_ASSERT(reporter, context->getGpu()->stats()->numFailedDraws() == 1);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
@ -47,17 +47,16 @@ static sk_sp<GrSurfaceProxy> make_deferred(GrProxyProvider* proxyProvider, const
|
||||
static sk_sp<GrSurfaceProxy> make_backend(GrContext* context, const ProxyParams& p,
|
||||
GrBackendTexture* backendTex) {
|
||||
GrProxyProvider* proxyProvider = context->contextPriv().proxyProvider();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
*backendTex = gpu->createTestingOnlyBackendTexture(nullptr, p.fSize, p.fSize,
|
||||
p.fConfig, false,
|
||||
GrMipMapped::kNo);
|
||||
*backendTex = context->getGpu()->createTestingOnlyBackendTexture(nullptr, p.fSize, p.fSize,
|
||||
p.fConfig, false,
|
||||
GrMipMapped::kNo);
|
||||
|
||||
return proxyProvider->createWrappedTextureProxy(*backendTex, p.fOrigin);
|
||||
}
|
||||
|
||||
static void cleanup_backend(GrContext* context, GrBackendTexture* backendTex) {
|
||||
context->contextPriv().getGpu()->deleteTestingOnlyBackendTexture(backendTex);
|
||||
context->getGpu()->deleteTestingOnlyBackendTexture(backendTex);
|
||||
}
|
||||
|
||||
// Basic test that two proxies with overlapping intervals and compatible descriptors are
|
||||
|
@ -200,7 +200,7 @@ DEF_GPUTEST_FOR_CONTEXTS(ResourceCacheStencilBuffers, &is_rendering_and_not_angl
|
||||
DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ResourceCacheWrappedResources, reporter, ctxInfo) {
|
||||
GrContext* context = ctxInfo.grContext();
|
||||
GrResourceProvider* resourceProvider = context->contextPriv().resourceProvider();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
GrGpu* gpu = context->getGpu();
|
||||
// this test is only valid for GL
|
||||
if (!gpu || !gpu->glContextForTesting()) {
|
||||
return;
|
||||
@ -370,13 +370,12 @@ static void test_no_key(skiatest::Reporter* reporter) {
|
||||
Mock mock(10, 30000);
|
||||
GrContext* context = mock.context();
|
||||
GrResourceCache* cache = mock.cache();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
// Create a bunch of resources with no keys
|
||||
TestResource* a = new TestResource(gpu);
|
||||
TestResource* b = new TestResource(gpu);
|
||||
TestResource* c = new TestResource(gpu);
|
||||
TestResource* d = new TestResource(gpu);
|
||||
TestResource* a = new TestResource(context->getGpu());
|
||||
TestResource* b = new TestResource(context->getGpu());
|
||||
TestResource* c = new TestResource(context->getGpu());
|
||||
TestResource* d = new TestResource(context->getGpu());
|
||||
a->setSize(11);
|
||||
b->setSize(12);
|
||||
c->setSize(13);
|
||||
@ -428,21 +427,21 @@ static void test_budgeting(skiatest::Reporter* reporter) {
|
||||
Mock mock(10, 300);
|
||||
GrContext* context = mock.context();
|
||||
GrResourceCache* cache = mock.cache();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
GrUniqueKey uniqueKey;
|
||||
make_unique_key<0>(&uniqueKey, 0);
|
||||
|
||||
// Create a scratch, a unique, and a wrapped resource
|
||||
TestResource* scratch =
|
||||
TestResource::CreateScratch(gpu, SkBudgeted::kYes, TestResource::kB_SimulatedProperty);
|
||||
TestResource::CreateScratch(context->getGpu(), SkBudgeted::kYes, TestResource::kB_SimulatedProperty);
|
||||
scratch->setSize(10);
|
||||
TestResource* unique = new TestResource(gpu);
|
||||
TestResource* unique = new TestResource(context->getGpu());
|
||||
unique->setSize(11);
|
||||
unique->resourcePriv().setUniqueKey(uniqueKey);
|
||||
TestResource* wrapped = TestResource::CreateWrapped(gpu);
|
||||
TestResource* wrapped = TestResource::CreateWrapped(context->getGpu());
|
||||
wrapped->setSize(12);
|
||||
TestResource* unbudgeted = new TestResource(gpu, SkBudgeted::kNo);
|
||||
TestResource* unbudgeted =
|
||||
new TestResource(context->getGpu(), SkBudgeted::kNo);
|
||||
unbudgeted->setSize(13);
|
||||
|
||||
// Make sure we can add a unique key to the wrapped resource
|
||||
@ -484,7 +483,7 @@ static void test_budgeting(skiatest::Reporter* reporter) {
|
||||
REPORTER_ASSERT(reporter, 0 == cache->getPurgeableBytes());
|
||||
|
||||
// Now try freeing the budgeted resources first
|
||||
wrapped = TestResource::CreateWrapped(gpu);
|
||||
wrapped = TestResource::CreateWrapped(context->getGpu());
|
||||
scratch->setSize(12);
|
||||
unique->unref();
|
||||
REPORTER_ASSERT(reporter, 11 == cache->getPurgeableBytes());
|
||||
@ -525,7 +524,6 @@ static void test_unbudgeted(skiatest::Reporter* reporter) {
|
||||
Mock mock(10, 30000);
|
||||
GrContext* context = mock.context();
|
||||
GrResourceCache* cache = mock.cache();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
GrUniqueKey uniqueKey;
|
||||
make_unique_key<0>(&uniqueKey, 0);
|
||||
@ -536,7 +534,7 @@ static void test_unbudgeted(skiatest::Reporter* reporter) {
|
||||
TestResource* unbudgeted;
|
||||
|
||||
// A large uncached or wrapped resource shouldn't evict anything.
|
||||
scratch = TestResource::CreateScratch(gpu, SkBudgeted::kYes,
|
||||
scratch = TestResource::CreateScratch(context->getGpu(), SkBudgeted::kYes,
|
||||
TestResource::kB_SimulatedProperty);
|
||||
|
||||
scratch->setSize(10);
|
||||
@ -547,7 +545,7 @@ static void test_unbudgeted(skiatest::Reporter* reporter) {
|
||||
REPORTER_ASSERT(reporter, 10 == cache->getBudgetedResourceBytes());
|
||||
REPORTER_ASSERT(reporter, 10 == cache->getPurgeableBytes());
|
||||
|
||||
unique = new TestResource(gpu);
|
||||
unique = new TestResource(context->getGpu());
|
||||
unique->setSize(11);
|
||||
unique->resourcePriv().setUniqueKey(uniqueKey);
|
||||
unique->unref();
|
||||
@ -558,7 +556,7 @@ static void test_unbudgeted(skiatest::Reporter* reporter) {
|
||||
REPORTER_ASSERT(reporter, 21 == cache->getPurgeableBytes());
|
||||
|
||||
size_t large = 2 * cache->getResourceBytes();
|
||||
unbudgeted = new TestResource(gpu, SkBudgeted::kNo, large);
|
||||
unbudgeted = new TestResource(context->getGpu(), SkBudgeted::kNo, large);
|
||||
REPORTER_ASSERT(reporter, 3 == cache->getResourceCount());
|
||||
REPORTER_ASSERT(reporter, 21 + large == cache->getResourceBytes());
|
||||
REPORTER_ASSERT(reporter, 2 == cache->getBudgetedResourceCount());
|
||||
@ -572,7 +570,7 @@ static void test_unbudgeted(skiatest::Reporter* reporter) {
|
||||
REPORTER_ASSERT(reporter, 21 == cache->getBudgetedResourceBytes());
|
||||
REPORTER_ASSERT(reporter, 21 == cache->getPurgeableBytes());
|
||||
|
||||
wrapped = TestResource::CreateWrapped(gpu, large);
|
||||
wrapped = TestResource::CreateWrapped(context->getGpu(), large);
|
||||
REPORTER_ASSERT(reporter, 3 == cache->getResourceCount());
|
||||
REPORTER_ASSERT(reporter, 21 + large == cache->getResourceBytes());
|
||||
REPORTER_ASSERT(reporter, 2 == cache->getBudgetedResourceCount());
|
||||
@ -600,10 +598,10 @@ void test_unbudgeted_to_scratch(skiatest::Reporter* reporter);
|
||||
Mock mock(10, 300);
|
||||
GrContext* context = mock.context();
|
||||
GrResourceCache* cache = mock.cache();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
TestResource* resource =
|
||||
TestResource::CreateScratch(gpu, SkBudgeted::kNo, TestResource::kA_SimulatedProperty);
|
||||
TestResource::CreateScratch(context->getGpu(), SkBudgeted::kNo,
|
||||
TestResource::kA_SimulatedProperty);
|
||||
GrScratchKey key;
|
||||
TestResource::ComputeScratchKey(TestResource::kA_SimulatedProperty, &key);
|
||||
|
||||
@ -664,13 +662,12 @@ static void test_duplicate_scratch_key(skiatest::Reporter* reporter) {
|
||||
Mock mock(5, 30000);
|
||||
GrContext* context = mock.context();
|
||||
GrResourceCache* cache = mock.cache();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
// Create two resources that have the same scratch key.
|
||||
TestResource* a = TestResource::CreateScratch(gpu,
|
||||
TestResource* a = TestResource::CreateScratch(context->getGpu(),
|
||||
SkBudgeted::kYes,
|
||||
TestResource::kB_SimulatedProperty);
|
||||
TestResource* b = TestResource::CreateScratch(gpu,
|
||||
TestResource* b = TestResource::CreateScratch(context->getGpu(),
|
||||
SkBudgeted::kYes,
|
||||
TestResource::kB_SimulatedProperty);
|
||||
a->setSize(11);
|
||||
@ -712,12 +709,11 @@ static void test_remove_scratch_key(skiatest::Reporter* reporter) {
|
||||
Mock mock(5, 30000);
|
||||
GrContext* context = mock.context();
|
||||
GrResourceCache* cache = mock.cache();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
// Create two resources that have the same scratch key.
|
||||
TestResource* a = TestResource::CreateScratch(gpu, SkBudgeted::kYes,
|
||||
TestResource* a = TestResource::CreateScratch(context->getGpu(), SkBudgeted::kYes,
|
||||
TestResource::kB_SimulatedProperty);
|
||||
TestResource* b = TestResource::CreateScratch(gpu, SkBudgeted::kYes,
|
||||
TestResource* b = TestResource::CreateScratch(context->getGpu(), SkBudgeted::kYes,
|
||||
TestResource::kB_SimulatedProperty);
|
||||
a->unref();
|
||||
b->unref();
|
||||
@ -772,12 +768,11 @@ static void test_scratch_key_consistency(skiatest::Reporter* reporter) {
|
||||
Mock mock(5, 30000);
|
||||
GrContext* context = mock.context();
|
||||
GrResourceCache* cache = mock.cache();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
// Create two resources that have the same scratch key.
|
||||
TestResource* a = TestResource::CreateScratch(gpu, SkBudgeted::kYes,
|
||||
TestResource* a = TestResource::CreateScratch(context->getGpu(), SkBudgeted::kYes,
|
||||
TestResource::kB_SimulatedProperty);
|
||||
TestResource* b = TestResource::CreateScratch(gpu, SkBudgeted::kYes,
|
||||
TestResource* b = TestResource::CreateScratch(context->getGpu(), SkBudgeted::kYes,
|
||||
TestResource::kB_SimulatedProperty);
|
||||
a->unref();
|
||||
b->unref();
|
||||
@ -832,13 +827,12 @@ static void test_duplicate_unique_key(skiatest::Reporter* reporter) {
|
||||
Mock mock(5, 30000);
|
||||
GrContext* context = mock.context();
|
||||
GrResourceCache* cache = mock.cache();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
GrUniqueKey key;
|
||||
make_unique_key<0>(&key, 0);
|
||||
|
||||
// Create two resources that we will attempt to register with the same unique key.
|
||||
TestResource* a = new TestResource(gpu);
|
||||
TestResource* a = new TestResource(context->getGpu());
|
||||
a->setSize(11);
|
||||
|
||||
// Set key on resource a.
|
||||
@ -855,7 +849,7 @@ static void test_duplicate_unique_key(skiatest::Reporter* reporter) {
|
||||
REPORTER_ASSERT(reporter, 1 == TestResource::NumAlive());
|
||||
|
||||
// Create resource b and set the same key. It should replace a's unique key cache entry.
|
||||
TestResource* b = new TestResource(gpu);
|
||||
TestResource* b = new TestResource(context->getGpu());
|
||||
b->setSize(12);
|
||||
b->resourcePriv().setUniqueKey(key);
|
||||
REPORTER_ASSERT(reporter, b == cache->findAndRefUniqueResource(key));
|
||||
@ -875,7 +869,7 @@ static void test_duplicate_unique_key(skiatest::Reporter* reporter) {
|
||||
// Now replace b with c, but make sure c can start with one unique key and change it to b's key.
|
||||
// Also make b be unreffed when replacement occurs.
|
||||
b->unref();
|
||||
TestResource* c = new TestResource(gpu);
|
||||
TestResource* c = new TestResource(context->getGpu());
|
||||
GrUniqueKey differentKey;
|
||||
make_unique_key<0>(&differentKey, 1);
|
||||
c->setSize(13);
|
||||
@ -912,7 +906,7 @@ static void test_duplicate_unique_key(skiatest::Reporter* reporter) {
|
||||
{
|
||||
GrUniqueKey key2;
|
||||
make_unique_key<0>(&key2, 0);
|
||||
sk_sp<TestResource> d(new TestResource(gpu));
|
||||
sk_sp<TestResource> d(new TestResource(context->getGpu()));
|
||||
int foo = 4132;
|
||||
key2.setCustomData(SkData::MakeWithCopy(&foo, sizeof(foo)));
|
||||
d->resourcePriv().setUniqueKey(key2);
|
||||
@ -928,7 +922,6 @@ static void test_purge_invalidated(skiatest::Reporter* reporter) {
|
||||
Mock mock(5, 30000);
|
||||
GrContext* context = mock.context();
|
||||
GrResourceCache* cache = mock.cache();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
GrUniqueKey key1, key2, key3;
|
||||
make_unique_key<0>(&key1, 1);
|
||||
@ -936,9 +929,9 @@ static void test_purge_invalidated(skiatest::Reporter* reporter) {
|
||||
make_unique_key<0>(&key3, 3);
|
||||
|
||||
// Add three resources to the cache. Only c is usable as scratch.
|
||||
TestResource* a = new TestResource(gpu);
|
||||
TestResource* b = new TestResource(gpu);
|
||||
TestResource* c = TestResource::CreateScratch(gpu, SkBudgeted::kYes,
|
||||
TestResource* a = new TestResource(context->getGpu());
|
||||
TestResource* b = new TestResource(context->getGpu());
|
||||
TestResource* c = TestResource::CreateScratch(context->getGpu(), SkBudgeted::kYes,
|
||||
TestResource::kA_SimulatedProperty);
|
||||
a->resourcePriv().setUniqueKey(key1);
|
||||
b->resourcePriv().setUniqueKey(key2);
|
||||
@ -997,14 +990,13 @@ static void test_cache_chained_purge(skiatest::Reporter* reporter) {
|
||||
Mock mock(3, 30000);
|
||||
GrContext* context = mock.context();
|
||||
GrResourceCache* cache = mock.cache();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
GrUniqueKey key1, key2;
|
||||
make_unique_key<0>(&key1, 1);
|
||||
make_unique_key<0>(&key2, 2);
|
||||
|
||||
TestResource* a = new TestResource(gpu);
|
||||
TestResource* b = new TestResource(gpu);
|
||||
TestResource* a = new TestResource(context->getGpu());
|
||||
TestResource* b = new TestResource(context->getGpu());
|
||||
a->resourcePriv().setUniqueKey(key1);
|
||||
b->resourcePriv().setUniqueKey(key2);
|
||||
|
||||
@ -1040,13 +1032,12 @@ static void test_resource_size_changed(skiatest::Reporter* reporter) {
|
||||
Mock mock(3, 30000);
|
||||
GrContext* context = mock.context();
|
||||
GrResourceCache* cache = mock.cache();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
TestResource* a = new TestResource(gpu);
|
||||
TestResource* a = new TestResource(context->getGpu());
|
||||
a->resourcePriv().setUniqueKey(key1);
|
||||
a->unref();
|
||||
|
||||
TestResource* b = new TestResource(gpu);
|
||||
TestResource* b = new TestResource(context->getGpu());
|
||||
b->resourcePriv().setUniqueKey(key2);
|
||||
b->unref();
|
||||
|
||||
@ -1070,14 +1061,13 @@ static void test_resource_size_changed(skiatest::Reporter* reporter) {
|
||||
Mock mock(2, 300);
|
||||
GrContext* context = mock.context();
|
||||
GrResourceCache* cache = mock.cache();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
TestResource* a = new TestResource(gpu);
|
||||
TestResource* a = new TestResource(context->getGpu());
|
||||
a->setSize(100);
|
||||
a->resourcePriv().setUniqueKey(key1);
|
||||
a->unref();
|
||||
|
||||
TestResource* b = new TestResource(gpu);
|
||||
TestResource* b = new TestResource(context->getGpu());
|
||||
b->setSize(100);
|
||||
b->resourcePriv().setUniqueKey(key2);
|
||||
b->unref();
|
||||
@ -1110,7 +1100,6 @@ static void test_timestamp_wrap(skiatest::Reporter* reporter) {
|
||||
Mock mock(kBudgetCnt, kBudgetSize);
|
||||
GrContext* context = mock.context();
|
||||
GrResourceCache* cache = mock.cache();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
// Pick a random number of resources to add before the timestamp will wrap.
|
||||
cache->changeTimestamp(SK_MaxU32 - random.nextULessThan(kCount + 1));
|
||||
@ -1127,7 +1116,7 @@ static void test_timestamp_wrap(skiatest::Reporter* reporter) {
|
||||
GrUniqueKey key;
|
||||
make_unique_key<0>(&key, j);
|
||||
|
||||
TestResource* r = new TestResource(gpu);
|
||||
TestResource* r = new TestResource(context->getGpu());
|
||||
r->resourcePriv().setUniqueKey(key);
|
||||
if (random.nextU() % kLockedFreq) {
|
||||
// Make this is purgeable.
|
||||
@ -1167,7 +1156,6 @@ static void test_flush(skiatest::Reporter* reporter) {
|
||||
Mock mock(1000000, 1000000);
|
||||
GrContext* context = mock.context();
|
||||
GrResourceCache* cache = mock.cache();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
// The current cache impl will round the max flush count to the next power of 2. So we choose a
|
||||
// power of two here to keep things simpler.
|
||||
@ -1177,7 +1165,7 @@ static void test_flush(skiatest::Reporter* reporter) {
|
||||
{
|
||||
// Insert a resource and send a flush notification kFlushCount times.
|
||||
for (int i = 0; i < kFlushCount; ++i) {
|
||||
TestResource* r = new TestResource(gpu);
|
||||
TestResource* r = new TestResource(context->getGpu());
|
||||
GrUniqueKey k;
|
||||
make_unique_key<1>(&k, i);
|
||||
r->resourcePriv().setUniqueKey(k);
|
||||
@ -1207,7 +1195,7 @@ static void test_flush(skiatest::Reporter* reporter) {
|
||||
{
|
||||
GrGpuResource* refedResources[kFlushCount >> 1];
|
||||
for (int i = 0; i < kFlushCount; ++i) {
|
||||
TestResource* r = new TestResource(gpu);
|
||||
TestResource* r = new TestResource(context->getGpu());
|
||||
GrUniqueKey k;
|
||||
make_unique_key<1>(&k, i);
|
||||
r->resourcePriv().setUniqueKey(k);
|
||||
@ -1248,7 +1236,7 @@ static void test_flush(skiatest::Reporter* reporter) {
|
||||
// eviction.
|
||||
context->flush();
|
||||
for (int i = 0; i < 10; ++i) {
|
||||
TestResource* r = new TestResource(gpu);
|
||||
TestResource* r = new TestResource(context->getGpu());
|
||||
GrUniqueKey k;
|
||||
make_unique_key<1>(&k, i);
|
||||
r->resourcePriv().setUniqueKey(k);
|
||||
@ -1265,7 +1253,6 @@ static void test_time_purge(skiatest::Reporter* reporter) {
|
||||
Mock mock(1000000, 1000000);
|
||||
GrContext* context = mock.context();
|
||||
GrResourceCache* cache = mock.cache();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
static constexpr int kCnts[] = {1, 10, 1024};
|
||||
auto nowish = []() {
|
||||
@ -1284,7 +1271,7 @@ static void test_time_purge(skiatest::Reporter* reporter) {
|
||||
{
|
||||
// Insert resources and get time points between each addition.
|
||||
for (int i = 0; i < cnt; ++i) {
|
||||
TestResource* r = new TestResource(gpu);
|
||||
TestResource* r = new TestResource(context->getGpu());
|
||||
GrUniqueKey k;
|
||||
make_unique_key<1>(&k, i);
|
||||
r->resourcePriv().setUniqueKey(k);
|
||||
@ -1315,7 +1302,7 @@ static void test_time_purge(skiatest::Reporter* reporter) {
|
||||
{
|
||||
std::unique_ptr<GrGpuResource* []> refedResources(new GrGpuResource*[cnt / 2]);
|
||||
for (int i = 0; i < cnt; ++i) {
|
||||
TestResource* r = new TestResource(gpu);
|
||||
TestResource* r = new TestResource(context->getGpu());
|
||||
GrUniqueKey k;
|
||||
make_unique_key<1>(&k, i);
|
||||
r->resourcePriv().setUniqueKey(k);
|
||||
@ -1350,7 +1337,7 @@ static void test_time_purge(skiatest::Reporter* reporter) {
|
||||
// eviction
|
||||
context->flush();
|
||||
for (int i = 0; i < 10; ++i) {
|
||||
TestResource* r = new TestResource(gpu);
|
||||
TestResource* r = new TestResource(context->getGpu());
|
||||
GrUniqueKey k;
|
||||
make_unique_key<1>(&k, i);
|
||||
r->resourcePriv().setUniqueKey(k);
|
||||
@ -1368,7 +1355,6 @@ static void test_partial_purge(skiatest::Reporter* reporter) {
|
||||
Mock mock(6, 100);
|
||||
GrContext* context = mock.context();
|
||||
GrResourceCache* cache = mock.cache();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
enum TestsCase {
|
||||
kOnlyScratch_TestCase = 0,
|
||||
@ -1388,9 +1374,9 @@ static void test_partial_purge(skiatest::Reporter* reporter) {
|
||||
make_unique_key<0>(&key3, 3);
|
||||
|
||||
// Add three unique resources to the cache.
|
||||
TestResource *unique1 = new TestResource(gpu);
|
||||
TestResource *unique2 = new TestResource(gpu);
|
||||
TestResource *unique3 = new TestResource(gpu);
|
||||
TestResource *unique1 = new TestResource(context->getGpu());
|
||||
TestResource *unique2 = new TestResource(context->getGpu());
|
||||
TestResource *unique3 = new TestResource(context->getGpu());
|
||||
|
||||
unique1->resourcePriv().setUniqueKey(key1);
|
||||
unique2->resourcePriv().setUniqueKey(key2);
|
||||
@ -1401,9 +1387,9 @@ static void test_partial_purge(skiatest::Reporter* reporter) {
|
||||
unique3->setSize(12);
|
||||
|
||||
// Add two scratch resources to the cache.
|
||||
TestResource *scratch1 = TestResource::CreateScratch(gpu, SkBudgeted::kYes,
|
||||
TestResource *scratch1 = TestResource::CreateScratch(context->getGpu(), SkBudgeted::kYes,
|
||||
TestResource::kA_SimulatedProperty);
|
||||
TestResource *scratch2 = TestResource::CreateScratch(gpu, SkBudgeted::kYes,
|
||||
TestResource *scratch2 = TestResource::CreateScratch(context->getGpu(), SkBudgeted::kYes,
|
||||
TestResource::kB_SimulatedProperty);
|
||||
scratch1->setSize(13);
|
||||
scratch2->setSize(14);
|
||||
@ -1482,7 +1468,6 @@ static void test_large_resource_count(skiatest::Reporter* reporter) {
|
||||
Mock mock(2 * kResourceCnt, 2 * kResourceCnt + 1000);
|
||||
GrContext* context = mock.context();
|
||||
GrResourceCache* cache = mock.cache();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
for (int i = 0; i < kResourceCnt; ++i) {
|
||||
GrUniqueKey key1, key2;
|
||||
@ -1491,12 +1476,12 @@ static void test_large_resource_count(skiatest::Reporter* reporter) {
|
||||
|
||||
TestResource* resource;
|
||||
|
||||
resource = new TestResource(gpu);
|
||||
resource = new TestResource(context->getGpu());
|
||||
resource->resourcePriv().setUniqueKey(key1);
|
||||
resource->setSize(1);
|
||||
resource->unref();
|
||||
|
||||
resource = new TestResource(gpu);
|
||||
resource = new TestResource(context->getGpu());
|
||||
resource->resourcePriv().setUniqueKey(key2);
|
||||
resource->setSize(1);
|
||||
resource->unref();
|
||||
@ -1552,9 +1537,7 @@ static void test_custom_data(skiatest::Reporter* reporter) {
|
||||
static void test_abandoned(skiatest::Reporter* reporter) {
|
||||
Mock mock(10, 300);
|
||||
GrContext* context = mock.context();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
sk_sp<GrGpuResource> resource(new TestResource(gpu));
|
||||
sk_sp<GrGpuResource> resource(new TestResource(context->getGpu()));
|
||||
context->abandonContext();
|
||||
|
||||
REPORTER_ASSERT(reporter, resource->wasDestroyed());
|
||||
@ -1588,14 +1571,13 @@ static void test_tags(skiatest::Reporter* reporter) {
|
||||
Mock mock(kNumResources, kNumResources * TestResource::kDefaultSize);
|
||||
GrContext* context = mock.context();
|
||||
GrResourceCache* cache = mock.cache();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
SkString tagStr;
|
||||
int tagIdx = 0;
|
||||
int currTagCnt = 0;
|
||||
|
||||
for (int i = 0; i < kNumResources; ++i, ++currTagCnt) {
|
||||
sk_sp<GrGpuResource> resource(new TestResource(gpu));
|
||||
sk_sp<GrGpuResource> resource(new TestResource(context->getGpu()));
|
||||
GrUniqueKey key;
|
||||
if (currTagCnt == tagIdx) {
|
||||
tagIdx += 1;
|
||||
|
@ -169,7 +169,7 @@ DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SRGBMipMaps, reporter, ctxInfo) {
|
||||
//
|
||||
// TODO: Once Vulkan supports legacy mip-mapping, we can promote this to GrCaps. Right now,
|
||||
// Vulkan has most of the functionality, but not the mip-mapping part that's being tested here.
|
||||
GrGLGpu* glGpu = static_cast<GrGLGpu*>(context->contextPriv().getGpu());
|
||||
GrGLGpu* glGpu = static_cast<GrGLGpu*>(context->getGpu());
|
||||
if (glGpu->glCaps().srgbDecodeDisableSupport() &&
|
||||
glGpu->glCaps().srgbDecodeDisableAffectsMipmaps()) {
|
||||
read_and_check_pixels(reporter, l32RenderTargetContext.get(), expectedLinear, iiRGBA,
|
||||
|
@ -8,7 +8,6 @@
|
||||
#include "SkTypes.h"
|
||||
|
||||
#if SK_SUPPORT_GPU
|
||||
#include "GrContextPriv.h"
|
||||
#include "GrContextFactory.h"
|
||||
#include "GrTest.h"
|
||||
#include "Test.h"
|
||||
@ -133,7 +132,7 @@ void surface_semaphore_test(skiatest::Reporter* reporter,
|
||||
#ifdef SK_VULKAN
|
||||
if (kVulkan_GrBackend == mainInfo.backend()) {
|
||||
// Initialize the secondary semaphore instead of having Ganesh create one internally
|
||||
GrVkGpu* gpu = static_cast<GrVkGpu*>(mainCtx->contextPriv().getGpu());
|
||||
GrVkGpu* gpu = static_cast<GrVkGpu*>(mainCtx->getGpu());
|
||||
const GrVkInterface* interface = gpu->vkInterface();
|
||||
VkDevice device = gpu->device();
|
||||
|
||||
@ -236,7 +235,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(EmptySurfaceSemaphoreTest, reporter, ctxInfo)
|
||||
REPORTER_ASSERT(reporter, GrSemaphoresSubmitted::kYes == submitted);
|
||||
|
||||
if (kOpenGL_GrBackend == ctxInfo.backend()) {
|
||||
GrGLGpu* gpu = static_cast<GrGLGpu*>(ctx->contextPriv().getGpu());
|
||||
GrGLGpu* gpu = static_cast<GrGLGpu*>(ctx->getGpu());
|
||||
const GrGLInterface* interface = gpu->glInterface();
|
||||
GrGLsync sync = semaphore.glSync();
|
||||
REPORTER_ASSERT(reporter, sync);
|
||||
@ -247,7 +246,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(EmptySurfaceSemaphoreTest, reporter, ctxInfo)
|
||||
|
||||
#ifdef SK_VULKAN
|
||||
if (kVulkan_GrBackend == ctxInfo.backend()) {
|
||||
GrVkGpu* gpu = static_cast<GrVkGpu*>(ctx->contextPriv().getGpu());
|
||||
GrVkGpu* gpu = static_cast<GrVkGpu*>(ctx->getGpu());
|
||||
const GrVkInterface* interface = gpu->vkInterface();
|
||||
VkDevice device = gpu->device();
|
||||
VkQueue queue = gpu->queue();
|
||||
|
@ -584,17 +584,15 @@ DEF_TEST(surface_raster_zeroinitialized, reporter) {
|
||||
#if SK_SUPPORT_GPU
|
||||
static sk_sp<SkSurface> create_gpu_surface_backend_texture(
|
||||
GrContext* context, int sampleCnt, uint32_t color, GrBackendTexture* outTexture) {
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
const int kWidth = 10;
|
||||
const int kHeight = 10;
|
||||
std::unique_ptr<uint32_t[]> pixels(new uint32_t[kWidth * kHeight]);
|
||||
sk_memset32(pixels.get(), color, kWidth * kHeight);
|
||||
|
||||
*outTexture = gpu->createTestingOnlyBackendTexture(
|
||||
*outTexture = context->getGpu()->createTestingOnlyBackendTexture(
|
||||
pixels.get(), kWidth, kHeight, kRGBA_8888_GrPixelConfig, true, GrMipMapped::kNo);
|
||||
|
||||
if (!outTexture->isValid() || !gpu->isTestingOnlyBackendTexture(*outTexture)) {
|
||||
if (!outTexture->isValid() || !context->getGpu()->isTestingOnlyBackendTexture(*outTexture)) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@ -603,7 +601,7 @@ static sk_sp<SkSurface> create_gpu_surface_backend_texture(
|
||||
kRGBA_8888_SkColorType,
|
||||
nullptr, nullptr);
|
||||
if (!surface) {
|
||||
gpu->deleteTestingOnlyBackendTexture(outTexture);
|
||||
context->getGpu()->deleteTestingOnlyBackendTexture(outTexture);
|
||||
return nullptr;
|
||||
}
|
||||
return surface;
|
||||
@ -611,17 +609,15 @@ static sk_sp<SkSurface> create_gpu_surface_backend_texture(
|
||||
|
||||
static sk_sp<SkSurface> create_gpu_surface_backend_texture_as_render_target(
|
||||
GrContext* context, int sampleCnt, uint32_t color, GrBackendTexture* outTexture) {
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
const int kWidth = 10;
|
||||
const int kHeight = 10;
|
||||
std::unique_ptr<uint32_t[]> pixels(new uint32_t[kWidth * kHeight]);
|
||||
sk_memset32(pixels.get(), color, kWidth * kHeight);
|
||||
|
||||
*outTexture = gpu->createTestingOnlyBackendTexture(
|
||||
*outTexture = context->getGpu()->createTestingOnlyBackendTexture(
|
||||
pixels.get(), kWidth, kHeight, kRGBA_8888_GrPixelConfig, true, GrMipMapped::kNo);
|
||||
|
||||
if (!outTexture->isValid() || !gpu->isTestingOnlyBackendTexture(*outTexture)) {
|
||||
if (!outTexture->isValid() || !context->getGpu()->isTestingOnlyBackendTexture(*outTexture)) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@ -630,7 +626,7 @@ static sk_sp<SkSurface> create_gpu_surface_backend_texture_as_render_target(
|
||||
nullptr, nullptr);
|
||||
|
||||
if (!surface) {
|
||||
gpu->deleteTestingOnlyBackendTexture(outTexture);
|
||||
context->getGpu()->deleteTestingOnlyBackendTexture(outTexture);
|
||||
return nullptr;
|
||||
}
|
||||
return surface;
|
||||
@ -678,7 +674,6 @@ static void test_surface_clear(skiatest::Reporter* reporter, sk_sp<SkSurface> su
|
||||
|
||||
DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SurfaceClear_Gpu, reporter, ctxInfo) {
|
||||
GrContext* context = ctxInfo.grContext();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
std::function<sk_sp<GrSurfaceContext>(SkSurface*)> grSurfaceContextGetters[] = {
|
||||
[] (SkSurface* s){
|
||||
@ -708,7 +703,7 @@ DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SurfaceClear_Gpu, reporter, ctxInfo) {
|
||||
auto surface = surfaceFunc(context, 0, kOrigColor, &backendTex);
|
||||
test_surface_clear(reporter, surface, grSurfaceGetter, kOrigColor);
|
||||
surface.reset();
|
||||
gpu->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -756,7 +751,7 @@ static void test_surface_draw_partially(
|
||||
}
|
||||
|
||||
DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfacePartialDraw_Gpu, reporter, ctxInfo) {
|
||||
GrGpu* gpu = ctxInfo.grContext()->contextPriv().getGpu();
|
||||
GrGpu* gpu = ctxInfo.grContext()->getGpu();
|
||||
if (!gpu) {
|
||||
return;
|
||||
}
|
||||
@ -779,7 +774,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfacePartialDraw_Gpu, reporter, ctxInfo) {
|
||||
|
||||
|
||||
DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SurfaceAttachStencil_Gpu, reporter, ctxInfo) {
|
||||
GrGpu* gpu = ctxInfo.grContext()->contextPriv().getGpu();
|
||||
GrGpu* gpu = ctxInfo.grContext()->getGpu();
|
||||
if (!gpu) {
|
||||
return;
|
||||
}
|
||||
@ -880,7 +875,6 @@ DEF_TEST(SurfaceCreationWithColorSpace, reporter) {
|
||||
#if SK_SUPPORT_GPU
|
||||
DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfaceCreationWithColorSpace_Gpu, reporter, ctxInfo) {
|
||||
GrContext* context = ctxInfo.grContext();
|
||||
|
||||
bool f16Support = context->caps()->isConfigRenderable(kRGBA_half_GrPixelConfig, false);
|
||||
auto surfaceMaker = [context](const SkImageInfo& info) {
|
||||
return SkSurface::MakeRenderTarget(context, SkBudgeted::kNo, info);
|
||||
@ -890,16 +884,14 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfaceCreationWithColorSpace_Gpu, reporter,
|
||||
|
||||
std::vector<GrBackendTexture> backendTextures;
|
||||
auto wrappedSurfaceMaker = [ context, &backendTextures ](const SkImageInfo& info) {
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
static const int kSize = 10;
|
||||
GrPixelConfig config = SkImageInfo2GrPixelConfig(info, *context->caps());
|
||||
|
||||
GrBackendTexture backendTex = gpu->createTestingOnlyBackendTexture(
|
||||
GrBackendTexture backendTex = context->getGpu()->createTestingOnlyBackendTexture(
|
||||
nullptr, kSize, kSize, config, true, GrMipMapped::kNo);
|
||||
|
||||
if (!backendTex.isValid() ||
|
||||
!gpu->isTestingOnlyBackendTexture(backendTex)) {
|
||||
!context->getGpu()->isTestingOnlyBackendTexture(backendTex)) {
|
||||
return sk_sp<SkSurface>(nullptr);
|
||||
}
|
||||
backendTextures.push_back(backendTex);
|
||||
@ -915,9 +907,8 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfaceCreationWithColorSpace_Gpu, reporter,
|
||||
|
||||
context->flush();
|
||||
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
for (auto backendTex : backendTextures) {
|
||||
gpu->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -69,7 +69,6 @@ void basic_transfer_test(skiatest::Reporter* reporter, GrContext* context, GrPix
|
||||
}
|
||||
|
||||
auto resourceProvider = context->contextPriv().resourceProvider();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
// set up the data
|
||||
const int kTextureWidth = 16;
|
||||
@ -111,13 +110,13 @@ void basic_transfer_test(skiatest::Reporter* reporter, GrContext* context, GrPix
|
||||
// transfer full data
|
||||
|
||||
bool result;
|
||||
result = gpu->transferPixels(tex.get(), 0, 0, kTextureWidth, kTextureHeight,
|
||||
config, buffer.get(), 0, rowBytes);
|
||||
result = context->getGpu()->transferPixels(tex.get(), 0, 0, kTextureWidth, kTextureHeight,
|
||||
config, buffer.get(), 0, rowBytes);
|
||||
REPORTER_ASSERT(reporter, result);
|
||||
|
||||
memset(dstBuffer.get(), 0xCDCD, size);
|
||||
result = gpu->readPixels(tex.get(), origin, 0, 0, kTextureWidth, kTextureHeight,
|
||||
config, dstBuffer.get(), rowBytes);
|
||||
result = context->getGpu()->readPixels(tex.get(), origin, 0, 0, kTextureWidth, kTextureHeight,
|
||||
config, dstBuffer.get(), rowBytes);
|
||||
if (result) {
|
||||
REPORTER_ASSERT(reporter, does_full_buffer_contain_correct_values(srcBuffer,
|
||||
dstBuffer,
|
||||
@ -143,13 +142,13 @@ void basic_transfer_test(skiatest::Reporter* reporter, GrContext* context, GrPix
|
||||
buffer->unmap();
|
||||
|
||||
size_t offset = sizeof(GrColor)*(kTop*kBufferWidth + kLeft);
|
||||
result = gpu->transferPixels(tex.get(), kLeft, kTop, kWidth, kHeight, config,
|
||||
buffer.get(), offset, rowBytes);
|
||||
result = context->getGpu()->transferPixels(tex.get(), kLeft, kTop, kWidth, kHeight, config,
|
||||
buffer.get(), offset, rowBytes);
|
||||
REPORTER_ASSERT(reporter, result);
|
||||
|
||||
memset(dstBuffer.get(), 0xCDCD, size);
|
||||
result = gpu->readPixels(tex.get(), origin, 0, 0, kTextureWidth, kTextureHeight,
|
||||
config, dstBuffer.get(), rowBytes);
|
||||
result = context->getGpu()->readPixels(tex.get(), origin, 0, 0, kTextureWidth, kTextureHeight,
|
||||
config, dstBuffer.get(), rowBytes);
|
||||
if (result) {
|
||||
REPORTER_ASSERT(reporter, does_full_buffer_contain_correct_values(srcBuffer,
|
||||
dstBuffer,
|
||||
|
@ -11,7 +11,6 @@
|
||||
|
||||
#if SK_SUPPORT_GPU && defined(SK_VULKAN)
|
||||
|
||||
#include "GrContextPriv.h"
|
||||
#include "GrContextFactory.h"
|
||||
#include "GrTest.h"
|
||||
#include "Test.h"
|
||||
@ -20,7 +19,7 @@
|
||||
using sk_gpu_test::GrContextFactory;
|
||||
|
||||
void subheap_test(skiatest::Reporter* reporter, GrContext* context) {
|
||||
GrVkGpu* gpu = static_cast<GrVkGpu*>(context->contextPriv().getGpu());
|
||||
GrVkGpu* gpu = static_cast<GrVkGpu*>(context->getGpu());
|
||||
|
||||
// memtype doesn't matter, we're just testing the suballocation algorithm so we'll use 0
|
||||
GrVkSubHeap heap(gpu, 0, 0, 64 * 1024, 32);
|
||||
@ -117,7 +116,7 @@ void subheap_test(skiatest::Reporter* reporter, GrContext* context) {
|
||||
}
|
||||
|
||||
void suballoc_test(skiatest::Reporter* reporter, GrContext* context) {
|
||||
GrVkGpu* gpu = static_cast<GrVkGpu*>(context->contextPriv().getGpu());
|
||||
GrVkGpu* gpu = static_cast<GrVkGpu*>(context->getGpu());
|
||||
|
||||
// memtype/heap index don't matter, we're just testing the allocation algorithm so we'll use 0
|
||||
GrVkHeap heap(gpu, GrVkHeap::kSubAlloc_Strategy, 64 * 1024);
|
||||
@ -177,7 +176,7 @@ void suballoc_test(skiatest::Reporter* reporter, GrContext* context) {
|
||||
}
|
||||
|
||||
void singlealloc_test(skiatest::Reporter* reporter, GrContext* context) {
|
||||
GrVkGpu* gpu = static_cast<GrVkGpu*>(context->contextPriv().getGpu());
|
||||
GrVkGpu* gpu = static_cast<GrVkGpu*>(context->getGpu());
|
||||
|
||||
// memtype/heap index don't matter, we're just testing the allocation algorithm so we'll use 0
|
||||
GrVkHeap heap(gpu, GrVkHeap::kSingleAlloc_Strategy, 64 * 1024);
|
||||
|
@ -11,7 +11,6 @@
|
||||
|
||||
#if SK_SUPPORT_GPU && defined(SK_VULKAN)
|
||||
|
||||
#include "GrContextPriv.h"
|
||||
#include "GrContextFactory.h"
|
||||
#include "GrRenderTarget.h"
|
||||
#include "GrTest.h"
|
||||
@ -31,7 +30,7 @@ const GrPixelConfig kPixelConfig = kRGBA_8888_GrPixelConfig;
|
||||
|
||||
void wrap_tex_test(skiatest::Reporter* reporter, GrContext* context) {
|
||||
|
||||
GrVkGpu* gpu = static_cast<GrVkGpu*>(context->contextPriv().getGpu());
|
||||
GrVkGpu* gpu = static_cast<GrVkGpu*>(context->getGpu());
|
||||
|
||||
GrBackendTexture origBackendTex = gpu->createTestingOnlyBackendTexture(nullptr, kW, kH,
|
||||
kPixelConfig, false,
|
||||
@ -76,7 +75,7 @@ void wrap_tex_test(skiatest::Reporter* reporter, GrContext* context) {
|
||||
}
|
||||
|
||||
void wrap_rt_test(skiatest::Reporter* reporter, GrContext* context) {
|
||||
GrVkGpu* gpu = static_cast<GrVkGpu*>(context->contextPriv().getGpu());
|
||||
GrVkGpu* gpu = static_cast<GrVkGpu*>(context->getGpu());
|
||||
|
||||
GrBackendTexture origBackendTex = gpu->createTestingOnlyBackendTexture(nullptr, kW, kH,
|
||||
kPixelConfig, true,
|
||||
@ -113,7 +112,7 @@ void wrap_rt_test(skiatest::Reporter* reporter, GrContext* context) {
|
||||
}
|
||||
|
||||
void wrap_trt_test(skiatest::Reporter* reporter, GrContext* context) {
|
||||
GrVkGpu* gpu = static_cast<GrVkGpu*>(context->contextPriv().getGpu());
|
||||
GrVkGpu* gpu = static_cast<GrVkGpu*>(context->getGpu());
|
||||
|
||||
GrBackendTexture origBackendTex = gpu->createTestingOnlyBackendTexture(nullptr, kW, kH,
|
||||
kPixelConfig, true,
|
||||
|
@ -427,11 +427,10 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(WritePixels_Gpu, reporter, ctxInfo) {
|
||||
|
||||
DEF_GPUTEST_FOR_RENDERING_CONTEXTS(WritePixelsNonTexture_Gpu, reporter, ctxInfo) {
|
||||
GrContext* context = ctxInfo.grContext();
|
||||
GrGpu* gpu = context->contextPriv().getGpu();
|
||||
|
||||
for (auto& origin : { kTopLeft_GrSurfaceOrigin, kBottomLeft_GrSurfaceOrigin }) {
|
||||
for (int sampleCnt : {0, 4}) {
|
||||
GrBackendTexture backendTex = gpu->createTestingOnlyBackendTexture(
|
||||
GrBackendTexture backendTex = context->getGpu()->createTestingOnlyBackendTexture(
|
||||
nullptr, DEV_W, DEV_H, kSkia8888_GrPixelConfig, true, GrMipMapped::kNo);
|
||||
SkColorType colorType;
|
||||
if (kRGBA_8888_GrPixelConfig == kSkia8888_GrPixelConfig) {
|
||||
@ -442,14 +441,14 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(WritePixelsNonTexture_Gpu, reporter, ctxInfo)
|
||||
sk_sp<SkSurface> surface(SkSurface::MakeFromBackendTextureAsRenderTarget(
|
||||
context, backendTex, origin, sampleCnt, colorType, nullptr, nullptr));
|
||||
if (!surface) {
|
||||
gpu->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
continue;
|
||||
}
|
||||
|
||||
test_write_pixels(reporter, surface.get());
|
||||
|
||||
surface.reset();
|
||||
gpu->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
context->getGpu()->deleteTestingOnlyBackendTexture(&backendTex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -148,7 +148,7 @@ void GrContext::printGpuStats() const {
|
||||
}
|
||||
|
||||
sk_sp<SkImage> GrContext::getFontAtlasImage_ForTesting(GrMaskFormat format) {
|
||||
GrAtlasGlyphCache* cache = this->contextPriv().getAtlasGlyphCache();
|
||||
GrAtlasGlyphCache* cache = this->getAtlasGlyphCache();
|
||||
|
||||
const sk_sp<GrTextureProxy>* proxies = cache->getProxies(format);
|
||||
if (!proxies[0]) {
|
||||
|
Loading…
Reference in New Issue
Block a user