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

Side by Side Diff: src/pipe/SkPipeFormat.h

Issue 2201323003: add pipecanvas (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: initial reader Created 4 years, 4 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
OLDNEW
(Empty)
1 /*
2 * Copyright 2016 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8 #ifndef SkPipeFormat_DEFINED
9 #define SkPipeFormat_DEFINED
10
11 #include "SkTypes.h"
12
13 enum Verb {
mtklein 2016/08/04 12:50:38 : uint8_t ?
mtklein 2016/08/04 12:50:38 Should probably namespace all these symbols someho
reed1 2016/08/04 13:18:41 Definitely, just going fast at the moment
14 kSave_Verb,
15 kRestore_Verb,
16 kConcat_Verb,
17
18 kClipRect_Verb,
19 kClipRRect_Verb,
20 kClipPath_Verb,
21 kClipRegion_Verb,
22
23 kDrawDRRect_Verb,
24 kDrawText_Verb,
25 kDrawPosText_Verb,
26 kDrawPosTextH_Verb,
27 kDrawTextOnPath_Verb,
28 kDrawTextBlob_Verb,
29 kDrawTextRSXform_Verb,
30 kDrawPatch_Verb,
31 kDrawPaint_Verb,
32 kDrawPoints_Verb,
33 kDrawRect_Verb,
34 kDrawPath_Verb,
35 kDrawOval_Verb,
36 kDrawRRect_Verb,
37
38 kDrawImage_Verb,
39 kDrawImageRect_Verb,
40 kDrawImageNine_Verb,
41
42 kDrawVertices_Verb,
43
44 kDrawPicture_Verb,
45 kDrawAnnotation_Verb,
46
47 kLastVerb = kDrawAnnotation_Verb,
48 };
49
50 enum PaintUsage {
51 kText_PaintUsage = 1 << 0,
52 kGeometry_PaintUsage = 1 << 1,
53 kImage_PaintUsage = 1 << 2,
54 kSaveLayer_PaintUsage = 1 << 3,
55 kDrawPaint_PaintUsage = 1 << 4,
56 };
57
58 // must sum to <= 32
59 enum BitsPerField {
60 kFlags_BPF = 16,
61 kHint_BPF = 2,
62 kAlign_BPF = 2,
63 kFilter_BPF = 2,
64 kCaps_BPF = 2,
65 kJoins_BPF = 2,
66 };
67
68 enum {
69 kTextSize_NonDef = 1 << 0,
70 kTextScaleX_NonDef = 1 << 1,
71 kTextSkewX_NonDef = 1 << 2,
72 kStrokeWidth_NonDef = 1 << 3,
73 kStrokeMiter_NonDef = 1 << 4,
74 kColor_NonDef = 1 << 5,
75 kTypeface_NonDef = 1 << 6,
76 kPathEffect_NonDef = 1 << 7,
77 kShader_NonDef = 1 << 8,
78 kXfermode_NonDef = 1 << 9,
79 kMaskFilter_NonDef = 1 << 10,
80 kColorFilter_NonDef = 1 << 11,
81 kRasterizer_NonDef = 1 << 12,
82 kImageFilter_NonDef = 1 << 13,
83 };
84
85 //////////////////////////////////////////////////////////////////////////////// ///////////////////
86
87 static inline bool fits_in(int value, int bits) {
88 return value >= 0 && value < (1 << bits);
89 }
90
91 static inline void ASSERT_FITS_IN(int value, int bits) {
92 SkASSERT(fits_in(value, bits));
93 }
94
95 static inline uint32_t pack_verb(Verb verb, unsigned extra = 0) {
96 ASSERT_FITS_IN(verb, 8);
97 ASSERT_FITS_IN(extra, 24);
98 return ((uint32_t)verb << 24) | extra;
99 }
100
101 static inline Verb unpack_verb(uint32_t data) {
102 return (Verb)(data >> 24);
103 }
104
105 static inline unsigned unpack_verb_extra(uint32_t data) {
106 return data & 0xFFFFFF;
107 }
108
109 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698