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

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

Issue 22686002: Implement path cover with nv_path_rendering (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: fix a comment Created 7 years, 2 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/GrDrawTargetCaps.h ('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 * Copyright 2011 Google Inc. 2 * Copyright 2011 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef GrGpu_DEFINED 8 #ifndef GrGpu_DEFINED
9 #define GrGpu_DEFINED 9 #define GrGpu_DEFINED
10 10
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 virtual void clearStencilClip(const SkIRect& rect, bool insideClip) = 0; 328 virtual void clearStencilClip(const SkIRect& rect, bool insideClip) = 0;
329 329
330 enum PrivateDrawStateStateBits { 330 enum PrivateDrawStateStateBits {
331 kFirstBit = (GrDrawState::kLastPublicStateBit << 1), 331 kFirstBit = (GrDrawState::kLastPublicStateBit << 1),
332 332
333 kModifyStencilClip_StateBit = kFirstBit, // allows draws to modify 333 kModifyStencilClip_StateBit = kFirstBit, // allows draws to modify
334 // stencil bits used for 334 // stencil bits used for
335 // clipping. 335 // clipping.
336 }; 336 };
337 337
338 void getPathStencilSettingsForFillType(SkPath::FillType fill, GrStencilSetti ngs* outStencilSettings);
339
338 protected: 340 protected:
339 enum DrawType { 341 enum DrawType {
340 kDrawPoints_DrawType, 342 kDrawPoints_DrawType,
341 kDrawLines_DrawType, 343 kDrawLines_DrawType,
342 kDrawTriangles_DrawType, 344 kDrawTriangles_DrawType,
343 kStencilPath_DrawType, 345 kStencilPath_DrawType,
346 kFillPath_DrawType,
344 }; 347 };
345 348
346 DrawType PrimTypeToDrawType(GrPrimitiveType type) { 349 DrawType PrimTypeToDrawType(GrPrimitiveType type) {
347 switch (type) { 350 switch (type) {
348 case kTriangles_GrPrimitiveType: 351 case kTriangles_GrPrimitiveType:
349 case kTriangleStrip_GrPrimitiveType: 352 case kTriangleStrip_GrPrimitiveType:
350 case kTriangleFan_GrPrimitiveType: 353 case kTriangleFan_GrPrimitiveType:
351 return kDrawTriangles_DrawType; 354 return kDrawTriangles_DrawType;
352 case kPoints_GrPrimitiveType: 355 case kPoints_GrPrimitiveType:
353 return kDrawPoints_DrawType; 356 return kDrawPoints_DrawType;
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 virtual GrVertexBuffer* onCreateVertexBuffer(uint32_t size, bool dynamic) = 0; 436 virtual GrVertexBuffer* onCreateVertexBuffer(uint32_t size, bool dynamic) = 0;
434 virtual GrIndexBuffer* onCreateIndexBuffer(uint32_t size, bool dynamic) = 0; 437 virtual GrIndexBuffer* onCreateIndexBuffer(uint32_t size, bool dynamic) = 0;
435 virtual GrPath* onCreatePath(const SkPath& path) = 0; 438 virtual GrPath* onCreatePath(const SkPath& path) = 0;
436 439
437 // overridden by backend-specific derived class to perform the clear and 440 // overridden by backend-specific derived class to perform the clear and
438 // clearRect. NULL rect means clear whole target. 441 // clearRect. NULL rect means clear whole target.
439 virtual void onClear(const SkIRect* rect, GrColor color) = 0; 442 virtual void onClear(const SkIRect* rect, GrColor color) = 0;
440 443
441 // overridden by backend-specific derived class to perform the draw call. 444 // overridden by backend-specific derived class to perform the draw call.
442 virtual void onGpuDraw(const DrawInfo&) = 0; 445 virtual void onGpuDraw(const DrawInfo&) = 0;
443 // when GrDrawTarget::stencilPath is called the draw state's current stencil 446
444 // settings are ignored. Instead the GrGpu decides the stencil rules
445 // necessary to stencil the path. These are still subject to filtering by
446 // the clip mask manager.
447 virtual void setStencilPathSettings(const GrPath&,
448 SkPath::FillType,
449 GrStencilSettings* settings) = 0;
450 // overridden by backend-specific derived class to perform the path stencili ng. 447 // overridden by backend-specific derived class to perform the path stencili ng.
451 virtual void onGpuStencilPath(const GrPath*, SkPath::FillType) = 0; 448 virtual void onGpuStencilPath(const GrPath*, SkPath::FillType) = 0;
449 virtual void onGpuFillPath(const GrPath*, SkPath::FillType) = 0;
452 450
453 // overridden by backend-specific derived class to perform flush 451 // overridden by backend-specific derived class to perform flush
454 virtual void onForceRenderTargetFlush() = 0; 452 virtual void onForceRenderTargetFlush() = 0;
455 453
456 // overridden by backend-specific derived class to perform the read pixels. 454 // overridden by backend-specific derived class to perform the read pixels.
457 virtual bool onReadPixels(GrRenderTarget* target, 455 virtual bool onReadPixels(GrRenderTarget* target,
458 int left, int top, int width, int height, 456 int left, int top, int width, int height,
459 GrPixelConfig, 457 GrPixelConfig,
460 void* buffer, 458 void* buffer,
461 size_t rowBytes) = 0; 459 size_t rowBytes) = 0;
(...skipping 25 matching lines...) Expand all
487 virtual void clearStencil() = 0; 485 virtual void clearStencil() = 0;
488 486
489 // Given a rt, find or create a stencil buffer and attach it 487 // Given a rt, find or create a stencil buffer and attach it
490 bool attachStencilBufferToRenderTarget(GrRenderTarget* target); 488 bool attachStencilBufferToRenderTarget(GrRenderTarget* target);
491 489
492 // GrDrawTarget overrides 490 // GrDrawTarget overrides
493 virtual void onDraw(const DrawInfo&) SK_OVERRIDE; 491 virtual void onDraw(const DrawInfo&) SK_OVERRIDE;
494 virtual void onStencilPath(const GrPath* path, const SkStrokeRec& stroke, 492 virtual void onStencilPath(const GrPath* path, const SkStrokeRec& stroke,
495 SkPath::FillType) SK_OVERRIDE; 493 SkPath::FillType) SK_OVERRIDE;
496 494
495 virtual void onFillPath(const GrPath* path, const SkStrokeRec& stroke, SkPat h::FillType,
496 const GrDeviceCoordTexture* dstCopy) SK_OVERRIDE;
497
497 // readies the pools to provide vertex/index data. 498 // readies the pools to provide vertex/index data.
498 void prepareVertexPool(); 499 void prepareVertexPool();
499 void prepareIndexPool(); 500 void prepareIndexPool();
500 501
501 void resetContext() { 502 void resetContext() {
502 // We call this because the client may have messed with the 503 // We call this because the client may have messed with the
503 // stencil buffer. Perhaps we should detect whether it is a 504 // stencil buffer. Perhaps we should detect whether it is a
504 // internally created stencil buffer and if so skip the invalidate. 505 // internally created stencil buffer and if so skip the invalidate.
505 fClipMaskManager.invalidateStencilMask(); 506 fClipMaskManager.invalidateStencilMask();
506 this->onResetContext(fResetBits); 507 this->onResetContext(fResetBits);
(...skipping 22 matching lines...) Expand all
529 // these are mutable so they can be created on-demand 530 // these are mutable so they can be created on-demand
530 mutable GrIndexBuffer* fQuadInd exBuffer; 531 mutable GrIndexBuffer* fQuadInd exBuffer;
531 // Used to abandon/release all resources created by this GrGpu. TODO: Move t his 532 // Used to abandon/release all resources created by this GrGpu. TODO: Move t his
532 // functionality to GrResourceCache. 533 // functionality to GrResourceCache.
533 ResourceList fResourc eList; 534 ResourceList fResourc eList;
534 535
535 typedef GrDrawTarget INHERITED; 536 typedef GrDrawTarget INHERITED;
536 }; 537 };
537 538
538 #endif 539 #endif
OLDNEW
« no previous file with comments | « src/gpu/GrDrawTargetCaps.h ('k') | src/gpu/GrGpu.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698