| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2010 Google Inc. | 2 * Copyright 2010 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 GrDrawTarget_DEFINED | 8 #ifndef GrDrawTarget_DEFINED |
| 9 #define GrDrawTarget_DEFINED | 9 #define GrDrawTarget_DEFINED |
| 10 | 10 |
| (...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 305 * rect. If NULL then rect serves as the local coords. | 305 * rect. If NULL then rect serves as the local coords. |
| 306 * @param localMatrix optional matrix applied to localRect. If | 306 * @param localMatrix optional matrix applied to localRect. If |
| 307 * srcRect is non-NULL and srcMatrix is non-NULL | 307 * srcRect is non-NULL and srcMatrix is non-NULL |
| 308 * then srcRect will be transformed by srcMatrix. | 308 * then srcRect will be transformed by srcMatrix. |
| 309 * srcMatrix can be NULL when no srcMatrix is desired. | 309 * srcMatrix can be NULL when no srcMatrix is desired. |
| 310 */ | 310 */ |
| 311 void drawRect(GrDrawState* ds, | 311 void drawRect(GrDrawState* ds, |
| 312 GrColor color, | 312 GrColor color, |
| 313 const SkRect& rect, | 313 const SkRect& rect, |
| 314 const SkRect* localRect, | 314 const SkRect* localRect, |
| 315 const SkMatrix* localMatrix) { | 315 const SkMatrix* localMatrix, |
| 316 const SkMatrix* primProcLocalMatrix) { |
| 316 AutoGeometryPush agp(this); | 317 AutoGeometryPush agp(this); |
| 317 this->onDrawRect(ds, color, rect, localRect, localMatrix); | 318 this->onDrawRect(ds, color, rect, localRect, localMatrix, primProcLocalM
atrix); |
| 318 } | 319 } |
| 319 | 320 |
| 320 /** | 321 /** |
| 321 * Helper for drawRect when the caller doesn't need separate local rects or
matrices. | 322 * Helper for drawRect when the caller doesn't need separate local rects or
matrices. |
| 322 */ | 323 */ |
| 323 void drawSimpleRect(GrDrawState* ds, GrColor color, const SkRect& rect) { | 324 void drawSimpleRect(GrDrawState* ds, GrColor color, const SkRect& rect) { |
| 324 this->drawRect(ds, color, rect, NULL, NULL); | 325 this->drawRect(ds, color, rect, NULL, NULL, NULL); |
| 325 } | 326 } |
| 326 void drawSimpleRect(GrDrawState* ds, GrColor color, const SkIRect& irect) { | 327 void drawSimpleRect(GrDrawState* ds, GrColor color, const SkIRect& irect) { |
| 327 SkRect rect = SkRect::Make(irect); | 328 SkRect rect = SkRect::Make(irect); |
| 328 this->drawRect(ds, color, rect, NULL, NULL); | 329 this->drawRect(ds, color, rect, NULL, NULL, NULL); |
| 329 } | 330 } |
| 330 | 331 |
| 331 /** | 332 /** |
| 332 * This call is used to draw multiple instances of some geometry with a | 333 * This call is used to draw multiple instances of some geometry with a |
| 333 * given number of vertices (V) and indices (I) per-instance. The indices in | 334 * given number of vertices (V) and indices (I) per-instance. The indices in |
| 334 * the index source must have the form i[k+I] == i[k] + V. Also, all indices | 335 * the index source must have the form i[k+I] == i[k] + V. Also, all indices |
| 335 * i[kI] ... i[(k+1)I-1] must be elements of the range kV ... (k+1)V-1. As a | 336 * i[kI] ... i[(k+1)I-1] must be elements of the range kV ... (k+1)V-1. As a |
| 336 * concrete example, the following index buffer for drawing a series of | 337 * concrete example, the following index buffer for drawing a series of |
| 337 * quads each as two triangles each satisfies these conditions with V=4 and | 338 * quads each as two triangles each satisfies these conditions with V=4 and |
| 338 * I=6: | 339 * I=6: |
| (...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 702 virtual void onDraw(const GrDrawState&, | 703 virtual void onDraw(const GrDrawState&, |
| 703 const GrGeometryProcessor*, | 704 const GrGeometryProcessor*, |
| 704 const DrawInfo&, | 705 const DrawInfo&, |
| 705 const GrScissorState&, | 706 const GrScissorState&, |
| 706 const GrDeviceCoordTexture* dstCopy) = 0; | 707 const GrDeviceCoordTexture* dstCopy) = 0; |
| 707 // TODO copy in order drawbuffer onDrawRect to here | 708 // TODO copy in order drawbuffer onDrawRect to here |
| 708 virtual void onDrawRect(GrDrawState*, | 709 virtual void onDrawRect(GrDrawState*, |
| 709 GrColor color, | 710 GrColor color, |
| 710 const SkRect& rect, | 711 const SkRect& rect, |
| 711 const SkRect* localRect, | 712 const SkRect* localRect, |
| 712 const SkMatrix* localMatrix) = 0; | 713 const SkMatrix* localMatrix, |
| 714 const SkMatrix* primProcLocalMatrix) = 0; |
| 713 | 715 |
| 714 virtual void onStencilPath(const GrDrawState&, | 716 virtual void onStencilPath(const GrDrawState&, |
| 715 const GrPathProcessor*, | 717 const GrPathProcessor*, |
| 716 const GrPath*, | 718 const GrPath*, |
| 717 const GrScissorState&, | 719 const GrScissorState&, |
| 718 const GrStencilSettings&) = 0; | 720 const GrStencilSettings&) = 0; |
| 719 virtual void onDrawPath(const GrDrawState&, | 721 virtual void onDrawPath(const GrDrawState&, |
| 720 const GrPathProcessor*, | 722 const GrPathProcessor*, |
| 721 const GrPath*, | 723 const GrPath*, |
| 722 const GrScissorState&, | 724 const GrScissorState&, |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 849 virtual bool setupClip(const SkRect* devBounds, | 851 virtual bool setupClip(const SkRect* devBounds, |
| 850 GrDrawState::AutoRestoreEffects* are, | 852 GrDrawState::AutoRestoreEffects* are, |
| 851 GrDrawState::AutoRestoreStencil* ars, | 853 GrDrawState::AutoRestoreStencil* ars, |
| 852 GrDrawState*, | 854 GrDrawState*, |
| 853 GrScissorState* scissorState) SK_OVERRIDE; | 855 GrScissorState* scissorState) SK_OVERRIDE; |
| 854 | 856 |
| 855 typedef GrDrawTarget INHERITED; | 857 typedef GrDrawTarget INHERITED; |
| 856 }; | 858 }; |
| 857 | 859 |
| 858 #endif | 860 #endif |
| OLD | NEW |