Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Side by Side Diff: src/gpu/GrClipMaskManager.cpp

Issue 20362002: make the filter mode for GrTextureAccess an enum so we can plumb down (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: fall back to mipmaps for HQ sampling (for now) Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/effects/gradients/SkGradientShader.cpp ('k') | src/gpu/GrContext.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2012 Google Inc. 3 * Copyright 2012 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 #include "GrClipMaskManager.h" 9 #include "GrClipMaskManager.h"
10 #include "GrAAConvexPathRenderer.h" 10 #include "GrAAConvexPathRenderer.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 SkIntToScalar(-devBound.fTop)); 46 SkIntToScalar(-devBound.fTop));
47 mat.preConcat(drawState->getViewMatrix()); 47 mat.preConcat(drawState->getViewMatrix());
48 48
49 SkIRect domainTexels = SkIRect::MakeWH(devBound.width(), devBound.height()); 49 SkIRect domainTexels = SkIRect::MakeWH(devBound.width(), devBound.height());
50 // This could be a long-lived effect that is cached with the alpha-mask. 50 // This could be a long-lived effect that is cached with the alpha-mask.
51 drawState->addCoverageEffect( 51 drawState->addCoverageEffect(
52 GrTextureDomainEffect::Create(result, 52 GrTextureDomainEffect::Create(result,
53 mat, 53 mat,
54 GrTextureDomainEffect::MakeTexelDomain(res ult, domainTexels), 54 GrTextureDomainEffect::MakeTexelDomain(res ult, domainTexels),
55 GrTextureDomainEffect::kDecal_WrapMode, 55 GrTextureDomainEffect::kDecal_WrapMode,
56 false, 56 GrTextureParams::kNone_FilterMode,
57 GrEffect::kPosition_CoordsType))->unref(); 57 GrEffect::kPosition_CoordsType))->unref();
58 } 58 }
59 59
60 bool path_needs_SW_renderer(GrContext* context, 60 bool path_needs_SW_renderer(GrContext* context,
61 GrGpu* gpu, 61 GrGpu* gpu,
62 const SkPath& origPath, 62 const SkPath& origPath,
63 const SkStrokeRec& stroke, 63 const SkStrokeRec& stroke,
64 bool doAA) { 64 bool doAA) {
65 // the gpu alpha mask will draw the inverse paths as non-inverse to a temp b uffer 65 // the gpu alpha mask will draw the inverse paths as non-inverse to a temp b uffer
66 SkTCopyOnFirstWrite<SkPath> path(origPath); 66 SkTCopyOnFirstWrite<SkPath> path(origPath);
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 GrDrawState* drawState = fGpu->drawState(); 351 GrDrawState* drawState = fGpu->drawState();
352 SkAssertResult(avmr.setIdentity(drawState)); 352 SkAssertResult(avmr.setIdentity(drawState));
353 GrDrawState::AutoRestoreEffects are(drawState); 353 GrDrawState::AutoRestoreEffects are(drawState);
354 354
355 drawState->setRenderTarget(dstMask->asRenderTarget()); 355 drawState->setRenderTarget(dstMask->asRenderTarget());
356 356
357 setup_boolean_blendcoeffs(drawState, op); 357 setup_boolean_blendcoeffs(drawState, op);
358 358
359 SkMatrix sampleM; 359 SkMatrix sampleM;
360 sampleM.setIDiv(srcMask->width(), srcMask->height()); 360 sampleM.setIDiv(srcMask->width(), srcMask->height());
361
361 drawState->addColorEffect( 362 drawState->addColorEffect(
362 GrTextureDomainEffect::Create(srcMask, 363 GrTextureDomainEffect::Create(srcMask,
363 sampleM, 364 sampleM,
364 GrTextureDomainEffect::MakeTexelDomain(src Mask, srcBound), 365 GrTextureDomainEffect::MakeTexelDomain(src Mask, srcBound),
365 GrTextureDomainEffect::kDecal_WrapMode, 366 GrTextureDomainEffect::kDecal_WrapMode,
366 false))->unref(); 367 GrTextureParams::kNone_FilterMode))->unref ();
367 fGpu->drawSimpleRect(SkRect::MakeFromIRect(dstBound), NULL); 368 fGpu->drawSimpleRect(SkRect::MakeFromIRect(dstBound), NULL);
368 } 369 }
369 370
370 // get a texture to act as a temporary buffer for AA clip boolean operations 371 // get a texture to act as a temporary buffer for AA clip boolean operations
371 // TODO: given the expense of createTexture we may want to just cache this too 372 // TODO: given the expense of createTexture we may want to just cache this too
372 void GrClipMaskManager::getTemp(int width, int height, GrAutoScratchTexture* tem p) { 373 void GrClipMaskManager::getTemp(int width, int height, GrAutoScratchTexture* tem p) {
373 if (NULL != temp->texture()) { 374 if (NULL != temp->texture()) {
374 // we've already allocated the temp texture 375 // we've already allocated the temp texture
375 return; 376 return;
376 } 377 }
(...skipping 624 matching lines...) Expand 10 before | Expand all | Expand 10 after
1001 1002
1002 //////////////////////////////////////////////////////////////////////////////// 1003 ////////////////////////////////////////////////////////////////////////////////
1003 void GrClipMaskManager::releaseResources() { 1004 void GrClipMaskManager::releaseResources() {
1004 fAACache.releaseResources(); 1005 fAACache.releaseResources();
1005 } 1006 }
1006 1007
1007 void GrClipMaskManager::setGpu(GrGpu* gpu) { 1008 void GrClipMaskManager::setGpu(GrGpu* gpu) {
1008 fGpu = gpu; 1009 fGpu = gpu;
1009 fAACache.setContext(gpu->getContext()); 1010 fAACache.setContext(gpu->getContext());
1010 } 1011 }
OLDNEW
« no previous file with comments | « src/effects/gradients/SkGradientShader.cpp ('k') | src/gpu/GrContext.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698