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

Side by Side Diff: src/gpu/GrGpu.h

Issue 13314002: Add support for reading the dst pixel value in an effect. Use in a new effect for the kDarken xfer … (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Revert whitespace/comment changes accidentally made in GrGLProgramDesc.cpp Created 7 years, 8 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/GrDrawTarget.cpp ('k') | src/gpu/GrGpu.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 2011 Google Inc. 3 * Copyright 2011 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 9
10 #ifndef GrGpu_DEFINED 10 #ifndef GrGpu_DEFINED
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after
359 case kLines_GrPrimitiveType: 359 case kLines_GrPrimitiveType:
360 case kLineStrip_GrPrimitiveType: 360 case kLineStrip_GrPrimitiveType:
361 return kDrawLines_DrawType; 361 return kDrawLines_DrawType;
362 default: 362 default:
363 GrCrash("Unexpected primitive type"); 363 GrCrash("Unexpected primitive type");
364 return kDrawTriangles_DrawType; 364 return kDrawTriangles_DrawType;
365 } 365 }
366 } 366 }
367 367
368 // prepares clip flushes gpu state before a draw 368 // prepares clip flushes gpu state before a draw
369 bool setupClipAndFlushState(DrawType); 369 bool setupClipAndFlushState(DrawType, const GrDeviceCoordTexture* dstCopy);
370 370
371 // Functions used to map clip-respecting stencil tests into normal 371 // Functions used to map clip-respecting stencil tests into normal
372 // stencil funcs supported by GPUs. 372 // stencil funcs supported by GPUs.
373 static GrStencilFunc ConvertStencilFunc(bool stencilInClip, 373 static GrStencilFunc ConvertStencilFunc(bool stencilInClip,
374 GrStencilFunc func); 374 GrStencilFunc func);
375 static void ConvertStencilFuncAndMask(GrStencilFunc func, 375 static void ConvertStencilFuncAndMask(GrStencilFunc func,
376 bool clipInStencil, 376 bool clipInStencil,
377 unsigned int clipBit, 377 unsigned int clipBit,
378 unsigned int userBits, 378 unsigned int userBits,
379 unsigned int* ref, 379 unsigned int* ref,
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 // width and height may be larger than rt (if underlying API allows it). 475 // width and height may be larger than rt (if underlying API allows it).
476 // Should attach the SB to the RT. Returns false if compatible sb could 476 // Should attach the SB to the RT. Returns false if compatible sb could
477 // not be created. 477 // not be created.
478 virtual bool createStencilBufferForRenderTarget(GrRenderTarget*, int width, int height) = 0; 478 virtual bool createStencilBufferForRenderTarget(GrRenderTarget*, int width, int height) = 0;
479 479
480 // attaches an existing SB to an existing RT. 480 // attaches an existing SB to an existing RT.
481 virtual bool attachStencilBufferToRenderTarget(GrStencilBuffer*, GrRenderTar get*) = 0; 481 virtual bool attachStencilBufferToRenderTarget(GrStencilBuffer*, GrRenderTar get*) = 0;
482 482
483 // The GrGpu typically records the clients requested state and then flushes 483 // The GrGpu typically records the clients requested state and then flushes
484 // deltas from previous state at draw time. This function does the 484 // deltas from previous state at draw time. This function does the
485 // backend-specific flush of the state 485 // backend-specific flush of the state.
486 // returns false if current state is unsupported. 486 // returns false if current state is unsupported.
487 virtual bool flushGraphicsState(DrawType) = 0; 487 virtual bool flushGraphicsState(DrawType, const GrDeviceCoordTexture* dstCop y) = 0;
488 488
489 // clears the entire stencil buffer to 0 489 // clears the entire stencil buffer to 0
490 virtual void clearStencil() = 0; 490 virtual void clearStencil() = 0;
491 491
492 // Given a rt, find or create a stencil buffer and attach it 492 // Given a rt, find or create a stencil buffer and attach it
493 bool attachStencilBufferToRenderTarget(GrRenderTarget* target); 493 bool attachStencilBufferToRenderTarget(GrRenderTarget* target);
494 494
495 // GrDrawTarget overrides 495 // GrDrawTarget overrides
496 virtual void onDraw(const DrawInfo&) SK_OVERRIDE; 496 virtual void onDraw(const DrawInfo&) SK_OVERRIDE;
497 virtual void onStencilPath(const GrPath* path, const SkStrokeRec& stroke, 497 virtual void onStencilPath(const GrPath* path, const SkStrokeRec& stroke,
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
531 // these are mutable so they can be created on-demand 531 // these are mutable so they can be created on-demand
532 mutable GrVertexBuffer* fUnitSqu areVertexBuffer; 532 mutable GrVertexBuffer* fUnitSqu areVertexBuffer;
533 mutable GrIndexBuffer* fQuadInd exBuffer; 533 mutable GrIndexBuffer* fQuadInd exBuffer;
534 bool fContext IsDirty; 534 bool fContext IsDirty;
535 ResourceList fResourc eList; 535 ResourceList fResourc eList;
536 536
537 typedef GrDrawTarget INHERITED; 537 typedef GrDrawTarget INHERITED;
538 }; 538 };
539 539
540 #endif 540 #endif
OLDNEW
« no previous file with comments | « src/gpu/GrDrawTarget.cpp ('k') | src/gpu/GrGpu.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698