| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 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 GrTypesPriv_DEFINED | 8 #ifndef GrTypesPriv_DEFINED |
| 9 #define GrTypesPriv_DEFINED | 9 #define GrTypesPriv_DEFINED |
| 10 | 10 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 33 kVertex_GrShaderType, | 33 kVertex_GrShaderType, |
| 34 kGeometry_GrShaderType, | 34 kGeometry_GrShaderType, |
| 35 kFragment_GrShaderType, | 35 kFragment_GrShaderType, |
| 36 | 36 |
| 37 kLastkFragment_GrShaderType = kFragment_GrShaderType | 37 kLastkFragment_GrShaderType = kFragment_GrShaderType |
| 38 }; | 38 }; |
| 39 static const int kGrShaderTypeCount = kLastkFragment_GrShaderType + 1; | 39 static const int kGrShaderTypeCount = kLastkFragment_GrShaderType + 1; |
| 40 | 40 |
| 41 /** | 41 /** |
| 42 * Precisions of shader language variables. Not all shading languages support pr
ecisions or actually | 42 * Precisions of shader language variables. Not all shading languages support pr
ecisions or actually |
| 43 * vary the internal precision based on the qualifiers. | 43 * vary the internal precision based on the qualifiers. These currently only app
ly to float types ( |
| 44 * including float vectors and matrices). |
| 44 */ | 45 */ |
| 45 enum GrSLPrecision { | 46 enum GrSLPrecision { |
| 46 kLow_GrSLPrecision, | 47 kLow_GrSLPrecision, |
| 47 kMedium_GrSLPrecision, | 48 kMedium_GrSLPrecision, |
| 48 kHigh_GrSLPrecision, | 49 kHigh_GrSLPrecision, |
| 49 | 50 |
| 50 // Default precision is medium. This is because on OpenGL ES 2 highp support
is not | 51 // Default precision is medium. This is because on OpenGL ES 2 highp support
is not |
| 51 // guaranteed. On (non-ES) OpenGL the specifiers have no effect on precision
. | 52 // guaranteed. On (non-ES) OpenGL the specifiers have no effect on precision
. |
| 52 kDefault_GrSLPrecision = kMedium_GrSLPrecision, | 53 kDefault_GrSLPrecision = kMedium_GrSLPrecision, |
| 53 | 54 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 80 static inline GrSLType GrSLFloatVectorType(int count) { | 81 static inline GrSLType GrSLFloatVectorType(int count) { |
| 81 SkASSERT(count > 0 && count <= 4); | 82 SkASSERT(count > 0 && count <= 4); |
| 82 return (GrSLType)(count); | 83 return (GrSLType)(count); |
| 83 | 84 |
| 84 GR_STATIC_ASSERT(kFloat_GrSLType == 1); | 85 GR_STATIC_ASSERT(kFloat_GrSLType == 1); |
| 85 GR_STATIC_ASSERT(kVec2f_GrSLType == 2); | 86 GR_STATIC_ASSERT(kVec2f_GrSLType == 2); |
| 86 GR_STATIC_ASSERT(kVec3f_GrSLType == 3); | 87 GR_STATIC_ASSERT(kVec3f_GrSLType == 3); |
| 87 GR_STATIC_ASSERT(kVec4f_GrSLType == 4); | 88 GR_STATIC_ASSERT(kVec4f_GrSLType == 4); |
| 88 } | 89 } |
| 89 | 90 |
| 91 /** Is the shading language type floating point (or vector/matrix of fp)? */ |
| 92 static inline bool GrSLTypeIsFloatType(GrSLType type) { |
| 93 SkASSERT(type >= 0 && type < static_cast<GrSLType>(kGrSLTypeCount)); |
| 94 return type >= 1 && type <= 6; |
| 95 |
| 96 GR_STATIC_ASSERT(0 == kVoid_GrSLType); |
| 97 GR_STATIC_ASSERT(1 == kFloat_GrSLType); |
| 98 GR_STATIC_ASSERT(2 == kVec2f_GrSLType); |
| 99 GR_STATIC_ASSERT(3 == kVec3f_GrSLType); |
| 100 GR_STATIC_ASSERT(4 == kVec4f_GrSLType); |
| 101 GR_STATIC_ASSERT(5 == kMat33f_GrSLType); |
| 102 GR_STATIC_ASSERT(6 == kMat44f_GrSLType); |
| 103 GR_STATIC_ASSERT(7 == kSampler2D_GrSLType); |
| 104 GR_STATIC_ASSERT(8 == kGrSLTypeCount); |
| 105 } |
| 90 ////////////////////////////////////////////////////////////////////////////// | 106 ////////////////////////////////////////////////////////////////////////////// |
| 91 | 107 |
| 92 /** | 108 /** |
| 93 * Types used to describe format of vertices in arrays. | 109 * Types used to describe format of vertices in arrays. |
| 94 */ | 110 */ |
| 95 enum GrVertexAttribType { | 111 enum GrVertexAttribType { |
| 96 kFloat_GrVertexAttribType = 0, | 112 kFloat_GrVertexAttribType = 0, |
| 97 kVec2f_GrVertexAttribType, | 113 kVec2f_GrVertexAttribType, |
| 98 kVec3f_GrVertexAttribType, | 114 kVec3f_GrVertexAttribType, |
| 99 kVec4f_GrVertexAttribType, | 115 kVec4f_GrVertexAttribType, |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 218 /** | 234 /** |
| 219 * Indicates the type of pending IO operations that can be recorded for gpu reso
urces. | 235 * Indicates the type of pending IO operations that can be recorded for gpu reso
urces. |
| 220 */ | 236 */ |
| 221 enum GrIOType { | 237 enum GrIOType { |
| 222 kRead_GrIOType, | 238 kRead_GrIOType, |
| 223 kWrite_GrIOType, | 239 kWrite_GrIOType, |
| 224 kRW_GrIOType | 240 kRW_GrIOType |
| 225 }; | 241 }; |
| 226 | 242 |
| 227 #endif | 243 #endif |
| OLD | NEW |