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 |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 #if GR_FORCE_GPU_TRACE_DEBUGGING | 126 #if GR_FORCE_GPU_TRACE_DEBUGGING |
127 bool gpuTracingSupport() const { return true; } | 127 bool gpuTracingSupport() const { return true; } |
128 #else | 128 #else |
129 bool gpuTracingSupport() const { return fGpuTracingSupport; } | 129 bool gpuTracingSupport() const { return fGpuTracingSupport; } |
130 #endif | 130 #endif |
131 bool compressedTexSubImageSupport() const { return fCompressedTexSubImageSup
port; } | 131 bool compressedTexSubImageSupport() const { return fCompressedTexSubImageSup
port; } |
132 bool oversizedStencilSupport() const { return fOversizedStencilSupport; } | 132 bool oversizedStencilSupport() const { return fOversizedStencilSupport; } |
133 bool textureBarrierSupport() const { return fTextureBarrierSupport; } | 133 bool textureBarrierSupport() const { return fTextureBarrierSupport; } |
134 | 134 |
135 bool useDrawInsteadOfClear() const { return fUseDrawInsteadOfClear; } | 135 bool useDrawInsteadOfClear() const { return fUseDrawInsteadOfClear; } |
136 bool useDrawInsteadOfPartialTextureWrite() const { | |
137 return fUseDrawInsteadOfPartialTextureWrite; | |
138 } | |
139 | 136 |
140 /** | 137 /** |
141 * Indicates the capabilities of the fixed function blend unit. | 138 * Indicates the capabilities of the fixed function blend unit. |
142 */ | 139 */ |
143 enum BlendEquationSupport { | 140 enum BlendEquationSupport { |
144 kBasic_BlendEquationSupport, //<! Support to select the oper
ator that | 141 kBasic_BlendEquationSupport, //<! Support to select the oper
ator that |
145 // combines src and dst terms
. | 142 // combines src and dst terms
. |
146 kAdvanced_BlendEquationSupport, //<! Additional fixed function
support for specific | 143 kAdvanced_BlendEquationSupport, //<! Additional fixed function
support for specific |
147 // SVG/PDF blend modes. Requi
res blend barriers. | 144 // SVG/PDF blend modes. Requi
res blend barriers. |
148 kAdvancedCoherent_BlendEquationSupport, //<! Advanced blend equation su
pport that does not | 145 kAdvancedCoherent_BlendEquationSupport, //<! Advanced blend equation su
pport that does not |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
216 } | 213 } |
217 | 214 |
218 protected: | 215 protected: |
219 /** Subclasses must call this at the end of their constructors in order to a
pply caps | 216 /** Subclasses must call this at the end of their constructors in order to a
pply caps |
220 overrides requested by the client. Note that overrides will only reduce
the caps never | 217 overrides requested by the client. Note that overrides will only reduce
the caps never |
221 expand them. */ | 218 expand them. */ |
222 void applyOptionsOverrides(const GrContextOptions& options); | 219 void applyOptionsOverrides(const GrContextOptions& options); |
223 | 220 |
224 SkAutoTUnref<GrShaderCaps> fShaderCaps; | 221 SkAutoTUnref<GrShaderCaps> fShaderCaps; |
225 | 222 |
226 bool fNPOTTextureTileSupport : 1; | 223 bool fNPOTTextureTileSupport : 1; |
227 bool fMipMapSupport : 1; | 224 bool fMipMapSupport : 1; |
228 bool fTwoSidedStencilSupport : 1; | 225 bool fTwoSidedStencilSupport : 1; |
229 bool fStencilWrapOpsSupport : 1; | 226 bool fStencilWrapOpsSupport : 1; |
230 bool fDiscardRenderTargetSupport : 1; | 227 bool fDiscardRenderTargetSupport : 1; |
231 bool fReuseScratchTextures : 1; | 228 bool fReuseScratchTextures : 1; |
232 bool fGpuTracingSupport : 1; | 229 bool fGpuTracingSupport : 1; |
233 bool fCompressedTexSubImageSupport : 1; | 230 bool fCompressedTexSubImageSupport : 1; |
234 bool fOversizedStencilSupport : 1; | 231 bool fOversizedStencilSupport : 1; |
235 bool fTextureBarrierSupport : 1; | 232 bool fTextureBarrierSupport : 1; |
236 // Driver workaround | 233 // Driver workaround |
237 bool fUseDrawInsteadOfClear : 1; | 234 bool fUseDrawInsteadOfClear : 1; |
238 bool fUseDrawInsteadOfPartialTextureWrite : 1; | |
239 | 235 |
240 BlendEquationSupport fBlendEquationSupport; | 236 BlendEquationSupport fBlendEquationSupport; |
241 uint32_t fAdvBlendEqBlacklist; | 237 uint32_t fAdvBlendEqBlacklist; |
242 GR_STATIC_ASSERT(kLast_GrBlendEquation < 32); | 238 GR_STATIC_ASSERT(kLast_GrBlendEquation < 32); |
243 | 239 |
244 uint32_t fMapBufferFlags; | 240 uint32_t fMapBufferFlags; |
245 int fGeometryBufferMapThreshold; | 241 int fGeometryBufferMapThreshold; |
246 | 242 |
247 int fMaxRenderTargetSize; | 243 int fMaxRenderTargetSize; |
248 int fMaxTextureSize; | 244 int fMaxTextureSize; |
249 int fMinTextureSize; | 245 int fMinTextureSize; |
250 int fMaxSampleCount; | 246 int fMaxSampleCount; |
251 | 247 |
252 // 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. |
253 bool fConfigRenderSupport[kGrPixelConfigCnt][2]; | 249 bool fConfigRenderSupport[kGrPixelConfigCnt][2]; |
254 bool fConfigTextureSupport[kGrPixelConfigCnt]; | 250 bool fConfigTextureSupport[kGrPixelConfigCnt]; |
255 | 251 |
256 private: | 252 private: |
257 bool fSupressPrints : 1; | 253 bool fSupressPrints : 1; |
258 bool fDrawPathMasksToCompressedTextureSupport : 1; | 254 bool fDrawPathMasksToCompressedTextureSupport : 1; |
259 | 255 |
260 typedef SkRefCnt INHERITED; | 256 typedef SkRefCnt INHERITED; |
261 }; | 257 }; |
262 | 258 |
263 #endif | 259 #endif |
OLD | NEW |