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

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

Issue 19449002: Replace all instances of GrRect with SkRect. (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 7 years, 5 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/gpu/GrClipMaskManager.h ('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 15 matching lines...) Expand all
26 typedef SkClipStack::Element Element; 26 typedef SkClipStack::Element Element;
27 27
28 using namespace GrReducedClip; 28 using namespace GrReducedClip;
29 29
30 //////////////////////////////////////////////////////////////////////////////// 30 ////////////////////////////////////////////////////////////////////////////////
31 namespace { 31 namespace {
32 // set up the draw state to enable the aa clipping mask. Besides setting up the 32 // set up the draw state to enable the aa clipping mask. Besides setting up the
33 // stage matrix this also alters the vertex layout 33 // stage matrix this also alters the vertex layout
34 void setup_drawstate_aaclip(GrGpu* gpu, 34 void setup_drawstate_aaclip(GrGpu* gpu,
35 GrTexture* result, 35 GrTexture* result,
36 const GrIRect &devBound) { 36 const SkIRect &devBound) {
37 GrDrawState* drawState = gpu->drawState(); 37 GrDrawState* drawState = gpu->drawState();
38 GrAssert(drawState); 38 GrAssert(drawState);
39 39
40 SkMatrix mat; 40 SkMatrix mat;
41 // We want to use device coords to compute the texture coordinates. We set o ur matrix to be 41 // We want to use device coords to compute the texture coordinates. We set o ur matrix to be
42 // equal to the view matrix followed by an offset to the devBound, and then a scaling matrix to 42 // equal to the view matrix followed by an offset to the devBound, and then a scaling matrix to
43 // normalized coords. We apply this matrix to the vertex positions rather th an local coords. 43 // normalized coords. We apply this matrix to the vertex positions rather th an local coords.
44 mat.setIDiv(result->width(), result->height()); 44 mat.setIDiv(result->width(), result->height());
45 mat.preTranslate(SkIntToScalar(-devBound.fLeft), 45 mat.preTranslate(SkIntToScalar(-devBound.fLeft),
46 SkIntToScalar(-devBound.fTop)); 46 SkIntToScalar(-devBound.fTop));
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 default: 338 default:
339 // something is wrong if we're trying to draw an empty element. 339 // something is wrong if we're trying to draw an empty element.
340 GrCrash("Unexpected element type"); 340 GrCrash("Unexpected element type");
341 return false; 341 return false;
342 } 342 }
343 } 343 }
344 344
345 void GrClipMaskManager::mergeMask(GrTexture* dstMask, 345 void GrClipMaskManager::mergeMask(GrTexture* dstMask,
346 GrTexture* srcMask, 346 GrTexture* srcMask,
347 SkRegion::Op op, 347 SkRegion::Op op,
348 const GrIRect& dstBound, 348 const SkIRect& dstBound,
349 const GrIRect& srcBound) { 349 const SkIRect& srcBound) {
350 GrDrawState::AutoViewMatrixRestore avmr; 350 GrDrawState::AutoViewMatrixRestore avmr;
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;
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 bool invert = element->isInverseFilled(); 475 bool invert = element->isInverseFilled();
476 476
477 if (invert || SkRegion::kIntersect_Op == op || SkRegion::kReverseDiffere nce_Op == op) { 477 if (invert || SkRegion::kIntersect_Op == op || SkRegion::kReverseDiffere nce_Op == op) {
478 GrPathRenderer* pr = NULL; 478 GrPathRenderer* pr = NULL;
479 bool useTemp = !this->canStencilAndDrawElement(result, element, &pr) ; 479 bool useTemp = !this->canStencilAndDrawElement(result, element, &pr) ;
480 GrTexture* dst; 480 GrTexture* dst;
481 // This is the bounds of the clip element in the space of the alpha- mask. The temporary 481 // This is the bounds of the clip element in the space of the alpha- mask. The temporary
482 // mask buffer can be substantially larger than the actually clip st ack element. We 482 // mask buffer can be substantially larger than the actually clip st ack element. We
483 // touch the minimum number of pixels necessary and use decal mode t o combine it with 483 // touch the minimum number of pixels necessary and use decal mode t o combine it with
484 // the accumulator. 484 // the accumulator.
485 GrIRect maskSpaceElementIBounds; 485 SkIRect maskSpaceElementIBounds;
486 486
487 if (useTemp) { 487 if (useTemp) {
488 if (invert) { 488 if (invert) {
489 maskSpaceElementIBounds = maskSpaceIBounds; 489 maskSpaceElementIBounds = maskSpaceIBounds;
490 } else { 490 } else {
491 GrRect elementBounds = element->getBounds(); 491 SkRect elementBounds = element->getBounds();
492 elementBounds.offset(clipToMaskOffset); 492 elementBounds.offset(clipToMaskOffset);
493 elementBounds.roundOut(&maskSpaceElementIBounds); 493 elementBounds.roundOut(&maskSpaceElementIBounds);
494 } 494 }
495 495
496 this->getTemp(maskSpaceIBounds.fRight, maskSpaceIBounds.fBottom, &temp); 496 this->getTemp(maskSpaceIBounds.fRight, maskSpaceIBounds.fBottom, &temp);
497 if (NULL == temp.texture()) { 497 if (NULL == temp.texture()) {
498 fAACache.reset(); 498 fAACache.reset();
499 return NULL; 499 return NULL;
500 } 500 }
501 dst = temp.texture(); 501 dst = temp.texture();
(...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after
1001 1001
1002 //////////////////////////////////////////////////////////////////////////////// 1002 ////////////////////////////////////////////////////////////////////////////////
1003 void GrClipMaskManager::releaseResources() { 1003 void GrClipMaskManager::releaseResources() {
1004 fAACache.releaseResources(); 1004 fAACache.releaseResources();
1005 } 1005 }
1006 1006
1007 void GrClipMaskManager::setGpu(GrGpu* gpu) { 1007 void GrClipMaskManager::setGpu(GrGpu* gpu) {
1008 fGpu = gpu; 1008 fGpu = gpu;
1009 fAACache.setContext(gpu->getContext()); 1009 fAACache.setContext(gpu->getContext());
1010 } 1010 }
OLDNEW
« no previous file with comments | « src/gpu/GrClipMaskManager.h ('k') | src/gpu/GrContext.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698