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

Side by Side Diff: include/gpu/GrTypes.h

Issue 216503004: SK_SUPPORT_LEGACY_GRTYPES to hide duplicate types from SkTypes.h (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 6 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
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2010 Google Inc. 3 * Copyright 2010 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 10
11 #ifndef GrTypes_DEFINED 11 #ifndef GrTypes_DEFINED
12 #define GrTypes_DEFINED 12 #define GrTypes_DEFINED
13 13
14 #include "SkTypes.h" 14 #include "SkTypes.h"
15 #include "GrConfig.h" 15 #include "GrConfig.h"
16 #include "SkMath.h" 16 #include "SkMath.h"
17 17
18 //#define SK_SUPPORT_LEGACY_GRTYPES
19
18 //////////////////////////////////////////////////////////////////////////////// 20 ////////////////////////////////////////////////////////////////////////////////
19 21
20 /** 22 /**
21 * Defines overloaded bitwise operators to make it easier to use an enum as a 23 * Defines overloaded bitwise operators to make it easier to use an enum as a
22 * bitfield. 24 * bitfield.
23 */ 25 */
24 #define GR_MAKE_BITFIELD_OPS(X) \ 26 #define GR_MAKE_BITFIELD_OPS(X) \
25 inline X operator | (X a, X b) { \ 27 inline X operator | (X a, X b) { \
26 return (X) (+a | +b); \ 28 return (X) (+a | +b); \
27 } \ 29 } \
(...skipping 15 matching lines...) Expand all
43 \ 45 \
44 friend X operator & (X a, X b); \ 46 friend X operator & (X a, X b); \
45 \ 47 \
46 template <typename T> \ 48 template <typename T> \
47 friend X operator & (T a, X b); \ 49 friend X operator & (T a, X b); \
48 \ 50 \
49 template <typename T> \ 51 template <typename T> \
50 friend X operator & (X a, T b); \ 52 friend X operator & (X a, T b); \
51 //////////////////////////////////////////////////////////////////////////////// 53 ////////////////////////////////////////////////////////////////////////////////
52 54
55 #ifdef SK_SUPPORT_LEGACY_GRTYPES
53 56
54 /** 57 /**
55 * Macro to round n up to the next multiple of 4, or return it unchanged if 58 * Macro to round n up to the next multiple of 4, or return it unchanged if
56 * n is already a multiple of 4 59 * n is already a multiple of 4
57 */ 60 */
58 #define GrALIGN4(n) SkAlign4(n) 61 #define GrALIGN4(n) SkAlign4(n)
59 #define GrIsALIGN4(n) SkIsAlign4(n) 62 #define GrIsALIGN4(n) SkIsAlign4(n)
60 63
61 template <typename T> const T& GrMin(const T& a, const T& b) { 64 template <typename T> const T& GrMin(const T& a, const T& b) {
62 return (a < b) ? a : b; 65 return (a < b) ? a : b;
63 } 66 }
64 67
65 template <typename T> const T& GrMax(const T& a, const T& b) { 68 template <typename T> const T& GrMax(const T& a, const T& b) {
66 return (b < a) ? a : b; 69 return (b < a) ? a : b;
67 } 70 }
68 71
72 /**
73 * Count elements in an array
74 */
75 #define GR_ARRAY_COUNT(array) SK_ARRAY_COUNT(array)
76
77 /**
78 * 16.16 fixed point type
79 */
80 typedef int32_t GrFixed;
81
82 #ifdef SK_DEBUG
83
84 static inline int16_t GrToS16(intptr_t x) {
85 SkASSERT((int16_t)x == x);
86 return (int16_t)x;
87 }
88
89 #else
90
91 #define GrToS16(x) x
92
93 #endif
94
95 #endif
96
69 // compile time versions of min/max 97 // compile time versions of min/max
70 #define GR_CT_MAX(a, b) (((b) < (a)) ? (a) : (b)) 98 #define GR_CT_MAX(a, b) (((b) < (a)) ? (a) : (b))
71 #define GR_CT_MIN(a, b) (((b) < (a)) ? (b) : (a)) 99 #define GR_CT_MIN(a, b) (((b) < (a)) ? (b) : (a))
72 100
73 /** 101 /**
74 * divide, rounding up 102 * divide, rounding up
75 */ 103 */
76 static inline int32_t GrIDivRoundUp(int x, int y) { 104 static inline int32_t GrIDivRoundUp(int x, int y) {
77 SkASSERT(y > 0); 105 SkASSERT(y > 0);
78 return (x + (y-1)) / y; 106 return (x + (y-1)) / y;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 /** 141 /**
114 * align down 142 * align down
115 */ 143 */
116 static inline uint32_t GrUIAlignDown(uint32_t x, uint32_t alignment) { 144 static inline uint32_t GrUIAlignDown(uint32_t x, uint32_t alignment) {
117 return (x / alignment) * alignment; 145 return (x / alignment) * alignment;
118 } 146 }
119 static inline size_t GrSizeAlignDown(size_t x, uint32_t alignment) { 147 static inline size_t GrSizeAlignDown(size_t x, uint32_t alignment) {
120 return (x / alignment) * alignment; 148 return (x / alignment) * alignment;
121 } 149 }
122 150
123 /**
124 * Count elements in an array
125 */
126 #define GR_ARRAY_COUNT(array) SK_ARRAY_COUNT(array)
127
128 /////////////////////////////////////////////////////////////////////////////// 151 ///////////////////////////////////////////////////////////////////////////////
129 152
130 /** 153 /**
131 * Return true if n is a power of 2 154 * Return true if n is a power of 2
132 */ 155 */
133 static inline bool GrIsPow2(unsigned n) { 156 static inline bool GrIsPow2(unsigned n) {
134 return n && 0 == (n & (n - 1)); 157 return n && 0 == (n & (n - 1));
135 } 158 }
136 159
137 /** 160 /**
138 * Return the next power of 2 >= n. 161 * Return the next power of 2 >= n.
139 */ 162 */
140 static inline uint32_t GrNextPow2(uint32_t n) { 163 static inline uint32_t GrNextPow2(uint32_t n) {
141 return n ? (1 << (32 - SkCLZ(n - 1))) : 1; 164 return n ? (1 << (32 - SkCLZ(n - 1))) : 1;
142 } 165 }
143 166
144 static inline int GrNextPow2(int n) { 167 static inline int GrNextPow2(int n) {
145 SkASSERT(n >= 0); // this impl only works for non-neg. 168 SkASSERT(n >= 0); // this impl only works for non-neg.
146 return n ? (1 << (32 - SkCLZ(n - 1))) : 1; 169 return n ? (1 << (32 - SkCLZ(n - 1))) : 1;
147 } 170 }
148 171
149 /////////////////////////////////////////////////////////////////////////////// 172 ///////////////////////////////////////////////////////////////////////////////
150 173
151 /** 174 /**
152 * 16.16 fixed point type
153 */
154 typedef int32_t GrFixed;
155
156 #ifdef SK_DEBUG
157
158 static inline int16_t GrToS16(intptr_t x) {
159 SkASSERT((int16_t)x == x);
160 return (int16_t)x;
161 }
162
163 #else
164
165 #define GrToS16(x) x
166
167 #endif
168
169
170 ///////////////////////////////////////////////////////////////////////////////
171
172 /**
173 * Possible 3D APIs that may be used by Ganesh. 175 * Possible 3D APIs that may be used by Ganesh.
174 */ 176 */
175 enum GrBackend { 177 enum GrBackend {
176 kOpenGL_GrBackend, 178 kOpenGL_GrBackend,
177 }; 179 };
178 180
179 /** 181 /**
180 * Backend-specific 3D context handle 182 * Backend-specific 3D context handle
181 * GrGLInterface* for OpenGL. If NULL will use the default GL interface. 183 * GrGLInterface* for OpenGL. If NULL will use the default GL interface.
182 */ 184 */
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after
618 }; 620 };
619 621
620 /** 622 /**
621 * This value translates to reseting all the context state for any backend. 623 * This value translates to reseting all the context state for any backend.
622 */ 624 */
623 static const uint32_t kAll_GrBackendState = 0xffffffff; 625 static const uint32_t kAll_GrBackendState = 0xffffffff;
624 626
625 /////////////////////////////////////////////////////////////////////////////// 627 ///////////////////////////////////////////////////////////////////////////////
626 628
627 #endif 629 #endif
OLDNEW
« include/gpu/GrPoint.h ('K') | « include/gpu/GrTexture.h ('k') | include/gpu/GrTypesPriv.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698