OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 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 | 8 |
9 #ifndef GrGLCaps_DEFINED | 9 #ifndef GrGLCaps_DEFINED |
10 #define GrGLCaps_DEFINED | 10 #define GrGLCaps_DEFINED |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 | 126 |
127 bool isConfigRenderable(GrPixelConfig config, bool withMSAA) const override
{ | 127 bool isConfigRenderable(GrPixelConfig config, bool withMSAA) const override
{ |
128 SkASSERT(kGrPixelConfigCnt > config); | 128 SkASSERT(kGrPixelConfigCnt > config); |
129 if (withMSAA) { | 129 if (withMSAA) { |
130 return SkToBool(fConfigTable[config].fFlags & ConfigInfo::kRenderabl
eWithMSAA_Flag); | 130 return SkToBool(fConfigTable[config].fFlags & ConfigInfo::kRenderabl
eWithMSAA_Flag); |
131 } else { | 131 } else { |
132 return SkToBool(fConfigTable[config].fFlags & ConfigInfo::kRenderabl
e_Flag); | 132 return SkToBool(fConfigTable[config].fFlags & ConfigInfo::kRenderabl
e_Flag); |
133 } | 133 } |
134 } | 134 } |
135 | 135 |
| 136 bool isConfigTexSupportEnabled(GrPixelConfig config) const { |
| 137 SkASSERT(kGrPixelConfigCnt > config); |
| 138 return SkToBool(fConfigTable[config].fFlags & ConfigInfo::kCanUseTexStor
age_Flag); |
| 139 } |
| 140 |
136 /** Returns the mapping between GrPixelConfig components and GL internal for
mat components. */ | 141 /** Returns the mapping between GrPixelConfig components and GL internal for
mat components. */ |
137 const GrSwizzle& configSwizzle(GrPixelConfig config) const { | 142 const GrSwizzle& configSwizzle(GrPixelConfig config) const { |
138 return fConfigTable[config].fSwizzle; | 143 return fConfigTable[config].fSwizzle; |
139 } | 144 } |
140 | 145 |
141 bool getTexImageFormats(GrPixelConfig surfaceConfig, GrPixelConfig externalC
onfig, | 146 bool getTexImageFormats(GrPixelConfig surfaceConfig, GrPixelConfig externalC
onfig, |
142 GrGLenum* internalFormat, GrGLenum* externalFormat, | 147 GrGLenum* internalFormat, GrGLenum* externalFormat, |
143 GrGLenum* externalType) const; | 148 GrGLenum* externalType) const; |
144 | 149 |
145 bool getCompressedTexImageFormats(GrPixelConfig surfaceConfig, GrGLenum* int
ernalFormat) const; | 150 bool getCompressedTexImageFormats(GrPixelConfig surfaceConfig, GrGLenum* int
ernalFormat) const; |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
267 | 272 |
268 /// Is there support for GL_PACK_ROW_LENGTH | 273 /// Is there support for GL_PACK_ROW_LENGTH |
269 bool packRowLengthSupport() const { return fPackRowLengthSupport; } | 274 bool packRowLengthSupport() const { return fPackRowLengthSupport; } |
270 | 275 |
271 /// Is there support for GL_PACK_REVERSE_ROW_ORDER | 276 /// Is there support for GL_PACK_REVERSE_ROW_ORDER |
272 bool packFlipYSupport() const { return fPackFlipYSupport; } | 277 bool packFlipYSupport() const { return fPackFlipYSupport; } |
273 | 278 |
274 /// Is there support for texture parameter GL_TEXTURE_USAGE | 279 /// Is there support for texture parameter GL_TEXTURE_USAGE |
275 bool textureUsageSupport() const { return fTextureUsageSupport; } | 280 bool textureUsageSupport() const { return fTextureUsageSupport; } |
276 | 281 |
277 /// Is there support for glTexStorage | |
278 bool texStorageSupport() const { return fTexStorageSupport; } | |
279 | |
280 /// Is there support for GL_RED and GL_R8 | 282 /// Is there support for GL_RED and GL_R8 |
281 bool textureRedSupport() const { return fTextureRedSupport; } | 283 bool textureRedSupport() const { return fTextureRedSupport; } |
282 | 284 |
283 /// Is GL_ARB_IMAGING supported | 285 /// Is GL_ARB_IMAGING supported |
284 bool imagingSupport() const { return fImagingSupport; } | 286 bool imagingSupport() const { return fImagingSupport; } |
285 | 287 |
286 /// Is there support for Vertex Array Objects? | 288 /// Is there support for Vertex Array Objects? |
287 bool vertexArrayObjectSupport() const { return fVertexArrayObjectSupport; } | 289 bool vertexArrayObjectSupport() const { return fVertexArrayObjectSupport; } |
288 | 290 |
289 /// Is there support for GL_EXT_direct_state_access? | 291 /// Is there support for GL_EXT_direct_state_access? |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
389 MSFBOType fMSFBOType; | 391 MSFBOType fMSFBOType; |
390 InvalidateFBType fInvalidateFBType; | 392 InvalidateFBType fInvalidateFBType; |
391 MapBufferType fMapBufferType; | 393 MapBufferType fMapBufferType; |
392 TransferBufferType fTransferBufferType; | 394 TransferBufferType fTransferBufferType; |
393 | 395 |
394 bool fUnpackRowLengthSupport : 1; | 396 bool fUnpackRowLengthSupport : 1; |
395 bool fUnpackFlipYSupport : 1; | 397 bool fUnpackFlipYSupport : 1; |
396 bool fPackRowLengthSupport : 1; | 398 bool fPackRowLengthSupport : 1; |
397 bool fPackFlipYSupport : 1; | 399 bool fPackFlipYSupport : 1; |
398 bool fTextureUsageSupport : 1; | 400 bool fTextureUsageSupport : 1; |
399 bool fTexStorageSupport : 1; | |
400 bool fTextureRedSupport : 1; | 401 bool fTextureRedSupport : 1; |
401 bool fImagingSupport : 1; | 402 bool fImagingSupport : 1; |
402 bool fVertexArrayObjectSupport : 1; | 403 bool fVertexArrayObjectSupport : 1; |
403 bool fDirectStateAccessSupport : 1; | 404 bool fDirectStateAccessSupport : 1; |
404 bool fDebugSupport : 1; | 405 bool fDebugSupport : 1; |
405 bool fES2CompatibilitySupport : 1; | 406 bool fES2CompatibilitySupport : 1; |
406 bool fMultisampleDisableSupport : 1; | 407 bool fMultisampleDisableSupport : 1; |
407 bool fDrawIndirectSupport : 1; | 408 bool fDrawIndirectSupport : 1; |
408 bool fMultiDrawIndirectSupport : 1; | 409 bool fMultiDrawIndirectSupport : 1; |
409 bool fBaseInstanceSupport : 1; | 410 bool fBaseInstanceSupport : 1; |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
475 }; | 476 }; |
476 | 477 |
477 // Index fStencilFormats. | 478 // Index fStencilFormats. |
478 int fStencilFormatIndex; | 479 int fStencilFormatIndex; |
479 | 480 |
480 enum { | 481 enum { |
481 kVerifiedColorAttachment_Flag = 0x1, | 482 kVerifiedColorAttachment_Flag = 0x1, |
482 kTextureable_Flag = 0x2, | 483 kTextureable_Flag = 0x2, |
483 kRenderable_Flag = 0x4, | 484 kRenderable_Flag = 0x4, |
484 kRenderableWithMSAA_Flag = 0x8, | 485 kRenderableWithMSAA_Flag = 0x8, |
| 486 kCanUseTexStorage_Flag = 0x10, |
485 }; | 487 }; |
486 uint32_t fFlags; | 488 uint32_t fFlags; |
487 | 489 |
488 GrSwizzle fSwizzle; | 490 GrSwizzle fSwizzle; |
489 }; | 491 }; |
490 | 492 |
491 ConfigInfo fConfigTable[kGrPixelConfigCnt]; | 493 ConfigInfo fConfigTable[kGrPixelConfigCnt]; |
492 | 494 |
493 typedef GrCaps INHERITED; | 495 typedef GrCaps INHERITED; |
494 }; | 496 }; |
495 | 497 |
496 #endif | 498 #endif |
OLD | NEW |