| 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 |
| 11 | 11 |
| 12 #include <functional> |
| 13 |
| 12 #include "glsl/GrGLSL.h" | 14 #include "glsl/GrGLSL.h" |
| 13 #include "GrCaps.h" | 15 #include "GrCaps.h" |
| 14 #include "GrGLStencilAttachment.h" | 16 #include "GrGLStencilAttachment.h" |
| 15 #include "GrSwizzle.h" | 17 #include "GrSwizzle.h" |
| 16 #include "SkChecksum.h" | 18 #include "SkChecksum.h" |
| 17 #include "SkTHash.h" | 19 #include "SkTHash.h" |
| 18 #include "SkTArray.h" | 20 #include "SkTArray.h" |
| 19 | 21 |
| 20 class GrGLContextInfo; | 22 class GrGLContextInfo; |
| 21 class GrGLSLCaps; | 23 class GrGLSLCaps; |
| 24 class GrGLRenderTarget; |
| 22 | 25 |
| 23 /** | 26 /** |
| 24 * Stores some capabilities of a GL context. Most are determined by the GL | 27 * Stores some capabilities of a GL context. Most are determined by the GL |
| 25 * version and the extensions string. It also tracks formats that have passed | 28 * version and the extensions string. It also tracks formats that have passed |
| 26 * the FBO completeness test. | 29 * the FBO completeness test. |
| 27 */ | 30 */ |
| 28 class GrGLCaps : public GrCaps { | 31 class GrGLCaps : public GrCaps { |
| 29 public: | 32 public: |
| 30 typedef GrGLStencilAttachment::Format StencilFormat; | 33 typedef GrGLStencilAttachment::Format StencilFormat; |
| 31 | 34 |
| (...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 276 | 279 |
| 277 /// Is there support for ES2 compatability? | 280 /// Is there support for ES2 compatability? |
| 278 bool ES2CompatibilitySupport() const { return fES2CompatibilitySupport; } | 281 bool ES2CompatibilitySupport() const { return fES2CompatibilitySupport; } |
| 279 | 282 |
| 280 /// Can we call glDisable(GL_MULTISAMPLE)? | 283 /// Can we call glDisable(GL_MULTISAMPLE)? |
| 281 bool multisampleDisableSupport() const { return fMultisampleDisableSupport;
} | 284 bool multisampleDisableSupport() const { return fMultisampleDisableSupport;
} |
| 282 | 285 |
| 283 /// Use indices or vertices in CPU arrays rather than VBOs for dynamic conte
nt. | 286 /// Use indices or vertices in CPU arrays rather than VBOs for dynamic conte
nt. |
| 284 bool useNonVBOVertexAndIndexDynamicData() const { return fUseNonVBOVertexAnd
IndexDynamicData; } | 287 bool useNonVBOVertexAndIndexDynamicData() const { return fUseNonVBOVertexAnd
IndexDynamicData; } |
| 285 | 288 |
| 286 /// Does ReadPixels support the provided format/type combo? | 289 /// Does ReadPixels support reading readConfig pixels from a FBO that is ren
derTargetConfig? |
| 287 bool readPixelsSupported(const GrGLInterface* intf, | 290 bool readPixelsSupported(GrPixelConfig renderTargetConfig, |
| 288 GrPixelConfig readConfig, | 291 GrPixelConfig readConfig, |
| 289 GrPixelConfig currFBOConfig) const; | 292 std::function<void (GrGLenum, GrGLint*)> getInteger
v, |
| 293 std::function<bool ()> bindRenderTarget) const; |
| 290 | 294 |
| 291 bool isCoreProfile() const { return fIsCoreProfile; } | 295 bool isCoreProfile() const { return fIsCoreProfile; } |
| 292 | 296 |
| 293 bool bindFragDataLocationSupport() const { return fBindFragDataLocationSuppo
rt; } | 297 bool bindFragDataLocationSupport() const { return fBindFragDataLocationSuppo
rt; } |
| 294 | 298 |
| 295 bool bindUniformLocationSupport() const { return fBindUniformLocationSupport
; } | 299 bool bindUniformLocationSupport() const { return fBindUniformLocationSupport
; } |
| 296 | 300 |
| 297 /// Are textures with GL_TEXTURE_EXTERNAL_OES type supported. | 301 /// Are textures with GL_TEXTURE_EXTERNAL_OES type supported. |
| 298 bool externalTextureSupport() const { return fExternalTextureSupport; } | 302 bool externalTextureSupport() const { return fExternalTextureSupport; } |
| 299 | 303 |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 341 void initFSAASupport(const GrGLContextInfo&, const GrGLInterface*); | 345 void initFSAASupport(const GrGLContextInfo&, const GrGLInterface*); |
| 342 void initBlendEqationSupport(const GrGLContextInfo&); | 346 void initBlendEqationSupport(const GrGLContextInfo&); |
| 343 void initStencilFormats(const GrGLContextInfo&); | 347 void initStencilFormats(const GrGLContextInfo&); |
| 344 // This must be called after initFSAASupport(). | 348 // This must be called after initFSAASupport(). |
| 345 void initConfigTable(const GrGLContextInfo&, const GrGLInterface* gli, GrGLS
LCaps* glslCaps); | 349 void initConfigTable(const GrGLContextInfo&, const GrGLInterface* gli, GrGLS
LCaps* glslCaps); |
| 346 | 350 |
| 347 void initShaderPrecisionTable(const GrGLContextInfo& ctxInfo, | 351 void initShaderPrecisionTable(const GrGLContextInfo& ctxInfo, |
| 348 const GrGLInterface* intf, | 352 const GrGLInterface* intf, |
| 349 GrGLSLCaps* glslCaps); | 353 GrGLSLCaps* glslCaps); |
| 350 | 354 |
| 355 GrGLStandard fStandard; |
| 356 |
| 351 SkTArray<StencilFormat, true> fStencilFormats; | 357 SkTArray<StencilFormat, true> fStencilFormats; |
| 352 | 358 |
| 353 int fMaxFragmentUniformVectors; | 359 int fMaxFragmentUniformVectors; |
| 354 int fMaxVertexAttributes; | 360 int fMaxVertexAttributes; |
| 355 int fMaxFragmentTextureUnits; | 361 int fMaxFragmentTextureUnits; |
| 356 | 362 |
| 357 MSFBOType fMSFBOType; | 363 MSFBOType fMSFBOType; |
| 358 InvalidateFBType fInvalidateFBType; | 364 InvalidateFBType fInvalidateFBType; |
| 359 MapBufferType fMapBufferType; | 365 MapBufferType fMapBufferType; |
| 360 TransferBufferType fTransferBufferType; | 366 TransferBufferType fTransferBufferType; |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 450 | 456 |
| 451 GrSwizzle fSwizzle; | 457 GrSwizzle fSwizzle; |
| 452 }; | 458 }; |
| 453 | 459 |
| 454 ConfigInfo fConfigTable[kGrPixelConfigCnt]; | 460 ConfigInfo fConfigTable[kGrPixelConfigCnt]; |
| 455 | 461 |
| 456 typedef GrCaps INHERITED; | 462 typedef GrCaps INHERITED; |
| 457 }; | 463 }; |
| 458 | 464 |
| 459 #endif | 465 #endif |
| OLD | NEW |