| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2013 Google Inc. | 3 * Copyright 2013 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 #ifndef GrCaps_DEFINED | 8 #ifndef GrCaps_DEFINED |
| 9 #define GrCaps_DEFINED | 9 #define GrCaps_DEFINED |
| 10 | 10 |
| 11 #include "GrTypes.h" | 11 #include "GrTypes.h" |
| 12 #include "GrTypesPriv.h" | 12 #include "GrTypesPriv.h" |
| 13 #include "GrBlend.h" |
| 13 #include "GrShaderVar.h" | 14 #include "GrShaderVar.h" |
| 14 #include "SkRefCnt.h" | 15 #include "SkRefCnt.h" |
| 15 #include "SkString.h" | 16 #include "SkString.h" |
| 16 | 17 |
| 17 struct GrContextOptions; | 18 struct GrContextOptions; |
| 18 | 19 |
| 19 class GrShaderCaps : public SkRefCnt { | 20 class GrShaderCaps : public SkRefCnt { |
| 20 public: | 21 public: |
| 21 SK_DECLARE_INST_COUNT(GrShaderCaps) | 22 SK_DECLARE_INST_COUNT(GrShaderCaps) |
| 22 | 23 |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 150 BlendEquationSupport blendEquationSupport() const { return fBlendEquationSup
port; } | 151 BlendEquationSupport blendEquationSupport() const { return fBlendEquationSup
port; } |
| 151 | 152 |
| 152 bool advancedBlendEquationSupport() const { | 153 bool advancedBlendEquationSupport() const { |
| 153 return fBlendEquationSupport >= kAdvanced_BlendEquationSupport; | 154 return fBlendEquationSupport >= kAdvanced_BlendEquationSupport; |
| 154 } | 155 } |
| 155 | 156 |
| 156 bool advancedCoherentBlendEquationSupport() const { | 157 bool advancedCoherentBlendEquationSupport() const { |
| 157 return kAdvancedCoherent_BlendEquationSupport == fBlendEquationSupport; | 158 return kAdvancedCoherent_BlendEquationSupport == fBlendEquationSupport; |
| 158 } | 159 } |
| 159 | 160 |
| 161 bool canUseAdvancedBlendEquation(GrBlendEquation equation) const { |
| 162 SkASSERT(GrBlendEquationIsAdvanced(equation)); |
| 163 return SkToBool(fAdvBlendEqBlacklist & (1 << equation)); |
| 164 } |
| 165 |
| 160 /** | 166 /** |
| 161 * Indicates whether GPU->CPU memory mapping for GPU resources such as verte
x buffers and | 167 * Indicates whether GPU->CPU memory mapping for GPU resources such as verte
x buffers and |
| 162 * textures allows partial mappings or full mappings. | 168 * textures allows partial mappings or full mappings. |
| 163 */ | 169 */ |
| 164 enum MapFlags { | 170 enum MapFlags { |
| 165 kNone_MapFlags = 0x0, //<! Cannot map the resource. | 171 kNone_MapFlags = 0x0, //<! Cannot map the resource. |
| 166 | 172 |
| 167 kCanMap_MapFlag = 0x1, //<! The resource can be mapped. Must be s
et for any of | 173 kCanMap_MapFlag = 0x1, //<! The resource can be mapped. Must be s
et for any of |
| 168 // the other flags to have meaning.k | 174 // the other flags to have meaning.k |
| 169 kSubset_MapFlag = 0x2, //<! The resource can be partially mapped. | 175 kSubset_MapFlag = 0x2, //<! The resource can be partially mapped. |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 221 bool fDiscardRenderTargetSupport : 1; | 227 bool fDiscardRenderTargetSupport : 1; |
| 222 bool fReuseScratchTextures : 1; | 228 bool fReuseScratchTextures : 1; |
| 223 bool fGpuTracingSupport : 1; | 229 bool fGpuTracingSupport : 1; |
| 224 bool fCompressedTexSubImageSupport : 1; | 230 bool fCompressedTexSubImageSupport : 1; |
| 225 bool fOversizedStencilSupport : 1; | 231 bool fOversizedStencilSupport : 1; |
| 226 bool fTextureBarrierSupport : 1; | 232 bool fTextureBarrierSupport : 1; |
| 227 // Driver workaround | 233 // Driver workaround |
| 228 bool fUseDrawInsteadOfClear : 1; | 234 bool fUseDrawInsteadOfClear : 1; |
| 229 | 235 |
| 230 BlendEquationSupport fBlendEquationSupport; | 236 BlendEquationSupport fBlendEquationSupport; |
| 237 uint32_t fAdvBlendEqBlacklist; |
| 238 GR_STATIC_ASSERT(kLast_GrBlendEquation < 32); |
| 239 |
| 231 uint32_t fMapBufferFlags; | 240 uint32_t fMapBufferFlags; |
| 232 int fGeometryBufferMapThreshold; | 241 int fGeometryBufferMapThreshold; |
| 233 | 242 |
| 234 int fMaxRenderTargetSize; | 243 int fMaxRenderTargetSize; |
| 235 int fMaxTextureSize; | 244 int fMaxTextureSize; |
| 236 int fMinTextureSize; | 245 int fMinTextureSize; |
| 237 int fMaxSampleCount; | 246 int fMaxSampleCount; |
| 238 | 247 |
| 239 // The first entry for each config is without msaa and the second is with. | 248 // The first entry for each config is without msaa and the second is with. |
| 240 bool fConfigRenderSupport[kGrPixelConfigCnt][2]; | 249 bool fConfigRenderSupport[kGrPixelConfigCnt][2]; |
| 241 bool fConfigTextureSupport[kGrPixelConfigCnt]; | 250 bool fConfigTextureSupport[kGrPixelConfigCnt]; |
| 242 | 251 |
| 243 private: | 252 private: |
| 244 bool fSupressPrints : 1; | 253 bool fSupressPrints : 1; |
| 245 bool fDrawPathMasksToCompressedTextureSupport : 1; | 254 bool fDrawPathMasksToCompressedTextureSupport : 1; |
| 246 | 255 |
| 247 typedef SkRefCnt INHERITED; | 256 typedef SkRefCnt INHERITED; |
| 248 }; | 257 }; |
| 249 | 258 |
| 250 #endif | 259 #endif |
| OLD | NEW |