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

Side by Side Diff: include/core/SkCanvas.h

Issue 2127233002: Added the framework for having canvas/recorder/picture record depth_set's. (Closed) Base URL: https://skia.googlesource.com/skia@master
Patch Set: updated tests to be more rigorous about translateZ in playback Created 4 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
« no previous file with comments | « no previous file | include/private/SkRecords.h » ('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 2006 The Android Open Source Project 2 * Copyright 2006 The Android Open Source Project
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 SkCanvas_DEFINED 8 #ifndef SkCanvas_DEFINED
9 #define SkCanvas_DEFINED 9 #define SkCanvas_DEFINED
10 10
(...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 437
438 /** Replace the current matrix with a copy of the specified matrix. 438 /** Replace the current matrix with a copy of the specified matrix.
439 @param matrix The matrix that will be copied into the current matrix. 439 @param matrix The matrix that will be copied into the current matrix.
440 */ 440 */
441 void setMatrix(const SkMatrix& matrix); 441 void setMatrix(const SkMatrix& matrix);
442 442
443 /** Helper for setMatrix(identity). Sets the current matrix to identity. 443 /** Helper for setMatrix(identity). Sets the current matrix to identity.
444 */ 444 */
445 void resetMatrix(); 445 void resetMatrix();
446 446
447 /** Add the specified translation to the current draw depth of the canvas.
448 @param z The distance to translate in Z.
449 Negative into screen, positive out of screen.
450 Without translation, the draw depth defaults to 0.
451 */
452 void translateZ(SkScalar z);
453
447 /** 454 /**
448 * Modify the current clip with the specified rectangle. 455 * Modify the current clip with the specified rectangle.
449 * @param rect The rect to combine with the current clip 456 * @param rect The rect to combine with the current clip
450 * @param op The region op to apply to the current clip 457 * @param op The region op to apply to the current clip
451 * @param doAntiAlias true if the clip should be antialiased 458 * @param doAntiAlias true if the clip should be antialiased
452 */ 459 */
453 void clipRect(const SkRect& rect, 460 void clipRect(const SkRect& rect,
454 SkRegion::Op op = SkRegion::kIntersect_Op, 461 SkRegion::Op op = SkRegion::kIntersect_Op,
455 bool doAntiAlias = false); 462 bool doAntiAlias = false);
456 463
(...skipping 781 matching lines...) Expand 10 before | Expand all | Expand 10 after
1238 const SkPaint* paint, 1245 const SkPaint* paint,
1239 SrcRectConstraint constraint = kStrict_SrcRectCon straint); 1246 SrcRectConstraint constraint = kStrict_SrcRectCon straint);
1240 1247
1241 // expose minimum amount of information necessary for transitional refactori ng 1248 // expose minimum amount of information necessary for transitional refactori ng
1242 /** 1249 /**
1243 * Returns CTM and clip bounds, translated from canvas coordinates to top la yer coordinates. 1250 * Returns CTM and clip bounds, translated from canvas coordinates to top la yer coordinates.
1244 */ 1251 */
1245 void temporary_internal_describeTopLayer(SkMatrix* matrix, SkIRect* clip_bou nds); 1252 void temporary_internal_describeTopLayer(SkMatrix* matrix, SkIRect* clip_bou nds);
1246 1253
1247 protected: 1254 protected:
1255 /** Returns the current (cumulative) draw depth of the canvas.
1256 */
1257 SkScalar getZ() const;
1258
1248 /** After calling saveLayer(), there can be any number of devices that make 1259 /** After calling saveLayer(), there can be any number of devices that make
1249 up the top-most drawing area. LayerIter can be used to iterate through 1260 up the top-most drawing area. LayerIter can be used to iterate through
1250 those devices. Note that the iterator is only valid until the next API 1261 those devices. Note that the iterator is only valid until the next API
1251 call made on the canvas. Ownership of all pointers in the iterator stays 1262 call made on the canvas. Ownership of all pointers in the iterator stays
1252 with the canvas, so none of them should be modified or deleted. 1263 with the canvas, so none of them should be modified or deleted.
1253 */ 1264 */
1254 class LayerIter /*: SkNoncopyable*/ { 1265 class LayerIter /*: SkNoncopyable*/ {
1255 public: 1266 public:
1256 /** Initialize iterator with canvas, and set values for 1st device */ 1267 /** Initialize iterator with canvas, and set values for 1st device */
1257 LayerIter(SkCanvas*, bool skipEmptyClips); 1268 LayerIter(SkCanvas*, bool skipEmptyClips);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1300 1311
1301 virtual void willSave() {} 1312 virtual void willSave() {}
1302 // Overriders should call the corresponding INHERITED method up the inherita nce chain. 1313 // Overriders should call the corresponding INHERITED method up the inherita nce chain.
1303 virtual SaveLayerStrategy getSaveLayerStrategy(const SaveLayerRec&) { 1314 virtual SaveLayerStrategy getSaveLayerStrategy(const SaveLayerRec&) {
1304 return kFullLayer_SaveLayerStrategy; 1315 return kFullLayer_SaveLayerStrategy;
1305 } 1316 }
1306 virtual void willRestore() {} 1317 virtual void willRestore() {}
1307 virtual void didRestore() {} 1318 virtual void didRestore() {}
1308 virtual void didConcat(const SkMatrix&) {} 1319 virtual void didConcat(const SkMatrix&) {}
1309 virtual void didSetMatrix(const SkMatrix&) {} 1320 virtual void didSetMatrix(const SkMatrix&) {}
1321 virtual void didTranslateZ(SkScalar) {}
1310 1322
1311 virtual void onDrawAnnotation(const SkRect&, const char key[], SkData* value ); 1323 virtual void onDrawAnnotation(const SkRect&, const char key[], SkData* value );
1312 virtual void onDrawDRRect(const SkRRect&, const SkRRect&, const SkPaint&); 1324 virtual void onDrawDRRect(const SkRRect&, const SkRRect&, const SkPaint&);
1313 1325
1314 virtual void onDrawText(const void* text, size_t byteLength, SkScalar x, 1326 virtual void onDrawText(const void* text, size_t byteLength, SkScalar x,
1315 SkScalar y, const SkPaint& paint); 1327 SkScalar y, const SkPaint& paint);
1316 1328
1317 virtual void onDrawPosText(const void* text, size_t byteLength, 1329 virtual void onDrawPosText(const void* text, size_t byteLength,
1318 const SkPoint pos[], const SkPaint& paint); 1330 const SkPoint pos[], const SkPaint& paint);
1319 1331
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
1585 1597
1586 class SkCanvasClipVisitor { 1598 class SkCanvasClipVisitor {
1587 public: 1599 public:
1588 virtual ~SkCanvasClipVisitor(); 1600 virtual ~SkCanvasClipVisitor();
1589 virtual void clipRect(const SkRect&, SkRegion::Op, bool antialias) = 0; 1601 virtual void clipRect(const SkRect&, SkRegion::Op, bool antialias) = 0;
1590 virtual void clipRRect(const SkRRect&, SkRegion::Op, bool antialias) = 0; 1602 virtual void clipRRect(const SkRRect&, SkRegion::Op, bool antialias) = 0;
1591 virtual void clipPath(const SkPath&, SkRegion::Op, bool antialias) = 0; 1603 virtual void clipPath(const SkPath&, SkRegion::Op, bool antialias) = 0;
1592 }; 1604 };
1593 1605
1594 #endif 1606 #endif
OLDNEW
« no previous file with comments | « no previous file | include/private/SkRecords.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698