Add isUnifiedMultisampled entry point to GrDrawContext
GrRenderTargetProxy supports the isUnifiedMultisampled call so GrDrawContext will be able to support it even when GrRenderTargetProxy-backed. This is split out of: https://codereview.chromium.org/1930013002/ ((Mostly) Retract GrRenderTarget from SkGpuDevice) GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1982583002 Review-Url: https://codereview.chromium.org/1982583002
This commit is contained in:
parent
7acc008531
commit
071457b7fc
@ -261,6 +261,7 @@ public:
|
||||
const GrSurfaceDesc& desc() const { return fRenderTarget->desc(); }
|
||||
int width() const { return fRenderTarget->width(); }
|
||||
int height() const { return fRenderTarget->height(); }
|
||||
bool isUnifiedMultisampled() const { return fRenderTarget->isUnifiedMultisampled(); }
|
||||
int numColorSamples() const { return fRenderTarget->numColorSamples(); }
|
||||
bool isGammaCorrect() const { return fSurfaceProps.isGammaCorrect(); }
|
||||
|
||||
|
@ -888,7 +888,7 @@ void SkGpuDevice::drawBitmap(const SkDraw& origDraw,
|
||||
|
||||
// The tile code path doesn't currently support AA, so if the paint asked for aa and we could
|
||||
// draw untiled, then we bypass checking for tiling purely for optimization reasons.
|
||||
bool drawAA = !fRenderTarget->isUnifiedMultisampled() &&
|
||||
bool drawAA = !fDrawContext->isUnifiedMultisampled() &&
|
||||
paint.isAntiAlias() &&
|
||||
bitmap.width() <= maxTileSize &&
|
||||
bitmap.height() <= maxTileSize;
|
||||
@ -988,7 +988,7 @@ void SkGpuDevice::drawTiledBitmap(const SkBitmap& bitmap,
|
||||
|
||||
const SkPaint* paint = &origPaint;
|
||||
SkPaint tempPaint;
|
||||
if (origPaint.isAntiAlias() && !fRenderTarget->isUnifiedMultisampled()) {
|
||||
if (origPaint.isAntiAlias() && !fDrawContext->isUnifiedMultisampled()) {
|
||||
// Drop antialiasing to avoid seams at tile boundaries.
|
||||
tempPaint = origPaint;
|
||||
tempPaint.setAntiAlias(false);
|
||||
@ -1264,7 +1264,7 @@ void SkGpuDevice::drawBitmapRect(const SkDraw& draw, const SkBitmap& bitmap,
|
||||
|
||||
// The tile code path doesn't currently support AA, so if the paint asked for aa and we could
|
||||
// draw untiled, then we bypass checking for tiling purely for optimization reasons.
|
||||
bool drawAA = !fRenderTarget->isUnifiedMultisampled() &&
|
||||
bool drawAA = !fDrawContext->isUnifiedMultisampled() &&
|
||||
paint.isAntiAlias() &&
|
||||
bitmap.width() <= maxTileSize &&
|
||||
bitmap.height() <= maxTileSize;
|
||||
@ -1426,7 +1426,7 @@ void SkGpuDevice::drawProducerNine(const SkDraw& draw, GrTextureProducer* produc
|
||||
CHECK_SHOULD_DRAW(draw);
|
||||
|
||||
bool useFallback = paint.getMaskFilter() || paint.isAntiAlias() ||
|
||||
fRenderTarget->isUnifiedMultisampled();
|
||||
fDrawContext->isUnifiedMultisampled();
|
||||
bool doBicubic;
|
||||
GrTextureParams::FilterMode textureFilterMode =
|
||||
GrSkFilterQualityToGrFilterMode(paint.getFilterQuality(), *draw.fMatrix, SkMatrix::I(),
|
||||
|
@ -186,7 +186,7 @@ void SkGpuDevice::drawTextureProducerImpl(GrTextureProducer* producer,
|
||||
SkMatrix combinedMatrix;
|
||||
combinedMatrix.setConcat(viewMatrix, srcToDstMatrix);
|
||||
if (can_ignore_bilerp_constraint(*producer, clippedSrcRect, combinedMatrix,
|
||||
fRenderTarget->isUnifiedMultisampled())) {
|
||||
fDrawContext->isUnifiedMultisampled())) {
|
||||
constraintMode = GrTextureAdjuster::kNo_FilterConstraint;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user