| 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 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 217 | 217 |
| 218 /// Is GL_ARB_IMAGING supported | 218 /// Is GL_ARB_IMAGING supported |
| 219 bool imagingSupport() const { return fImagingSupport; } | 219 bool imagingSupport() const { return fImagingSupport; } |
| 220 | 220 |
| 221 /// Is GL_ARB_fragment_coord_conventions supported? | 221 /// Is GL_ARB_fragment_coord_conventions supported? |
| 222 bool fragCoordConventionsSupport() const { return fFragCoordsConventionSuppo
rt; } | 222 bool fragCoordConventionsSupport() const { return fFragCoordsConventionSuppo
rt; } |
| 223 | 223 |
| 224 /// Is there support for Vertex Array Objects? | 224 /// Is there support for Vertex Array Objects? |
| 225 bool vertexArrayObjectSupport() const { return fVertexArrayObjectSupport; } | 225 bool vertexArrayObjectSupport() const { return fVertexArrayObjectSupport; } |
| 226 | 226 |
| 227 /// Is there support for glDraw*Instanced and glVertexAttribDivisor? |
| 228 bool instancedDrawingSupport() const { return fInstancedDrawingSupport; } |
| 229 |
| 230 /// Is there support for GL_EXT_direct_state_access? |
| 231 bool directStateAccessSupport() const { return fDirectStateAccessSupport; } |
| 232 |
| 233 /// Is there support for GL_KHR_debug? |
| 234 bool debugSupport() const { return fDebugSupport; } |
| 235 |
| 227 /// Is there support for ES2 compatability? | 236 /// Is there support for ES2 compatability? |
| 228 bool ES2CompatibilitySupport() const { return fES2CompatibilitySupport; } | 237 bool ES2CompatibilitySupport() const { return fES2CompatibilitySupport; } |
| 229 | 238 |
| 230 /// Can we call glDisable(GL_MULTISAMPLE)? | 239 /// Can we call glDisable(GL_MULTISAMPLE)? |
| 231 bool multisampleDisableSupport() const { | 240 bool multisampleDisableSupport() const { |
| 232 return fMultisampleDisableSupport; | 241 return fMultisampleDisableSupport; |
| 233 } | 242 } |
| 234 | 243 |
| 235 /// Use indices or vertices in CPU arrays rather than VBOs for dynamic conte
nt. | 244 /// Use indices or vertices in CPU arrays rather than VBOs for dynamic conte
nt. |
| 236 bool useNonVBOVertexAndIndexDynamicData() const { | 245 bool useNonVBOVertexAndIndexDynamicData() const { |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 343 bool fUnpackFlipYSupport : 1; | 352 bool fUnpackFlipYSupport : 1; |
| 344 bool fPackRowLengthSupport : 1; | 353 bool fPackRowLengthSupport : 1; |
| 345 bool fPackFlipYSupport : 1; | 354 bool fPackFlipYSupport : 1; |
| 346 bool fTextureUsageSupport : 1; | 355 bool fTextureUsageSupport : 1; |
| 347 bool fTexStorageSupport : 1; | 356 bool fTexStorageSupport : 1; |
| 348 bool fTextureRedSupport : 1; | 357 bool fTextureRedSupport : 1; |
| 349 bool fImagingSupport : 1; | 358 bool fImagingSupport : 1; |
| 350 bool fTwoFormatLimit : 1; | 359 bool fTwoFormatLimit : 1; |
| 351 bool fFragCoordsConventionSupport : 1; | 360 bool fFragCoordsConventionSupport : 1; |
| 352 bool fVertexArrayObjectSupport : 1; | 361 bool fVertexArrayObjectSupport : 1; |
| 362 bool fInstancedDrawingSupport : 1; |
| 363 bool fDirectStateAccessSupport : 1; |
| 364 bool fDebugSupport : 1; |
| 353 bool fES2CompatibilitySupport : 1; | 365 bool fES2CompatibilitySupport : 1; |
| 354 bool fMultisampleDisableSupport : 1; | 366 bool fMultisampleDisableSupport : 1; |
| 355 bool fUseNonVBOVertexAndIndexDynamicData : 1; | 367 bool fUseNonVBOVertexAndIndexDynamicData : 1; |
| 356 bool fIsCoreProfile : 1; | 368 bool fIsCoreProfile : 1; |
| 357 bool fFullClearIsFree : 1; | 369 bool fFullClearIsFree : 1; |
| 358 | 370 |
| 359 struct ReadPixelsSupportedFormat { | 371 struct ReadPixelsSupportedFormat { |
| 360 GrGLenum fFormat; | 372 GrGLenum fFormat; |
| 361 GrGLenum fType; | 373 GrGLenum fType; |
| 362 GrGLenum fFboFormat; | 374 GrGLenum fFboFormat; |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 398 | 410 |
| 399 /** | 411 /** |
| 400 * Some helper functions for encapsulating various extensions to read FB Buf
fer on openglES | 412 * Some helper functions for encapsulating various extensions to read FB Buf
fer on openglES |
| 401 * | 413 * |
| 402 * TODO(joshualitt) On desktop opengl 4.2+ we can achieve something similar
to this effect | 414 * TODO(joshualitt) On desktop opengl 4.2+ we can achieve something similar
to this effect |
| 403 */ | 415 */ |
| 404 bool fbFetchSupport() const { return fFBFetchSupport; } | 416 bool fbFetchSupport() const { return fFBFetchSupport; } |
| 405 | 417 |
| 406 bool fbFetchNeedsCustomOutput() const { return fFBFetchNeedsCustomOutput; } | 418 bool fbFetchNeedsCustomOutput() const { return fFBFetchNeedsCustomOutput; } |
| 407 | 419 |
| 420 bool bindlessTextureSupport() const { return fBindlessTextureSupport; } |
| 421 |
| 408 const char* fbFetchColorName() const { return fFBFetchColorName; } | 422 const char* fbFetchColorName() const { return fFBFetchColorName; } |
| 409 | 423 |
| 410 const char* fbFetchExtensionString() const { return fFBFetchExtensionString;
} | 424 const char* fbFetchExtensionString() const { return fFBFetchExtensionString;
} |
| 411 | 425 |
| 412 bool dropsTileOnZeroDivide() const { return fDropsTileOnZeroDivide; } | 426 bool dropsTileOnZeroDivide() const { return fDropsTileOnZeroDivide; } |
| 413 | 427 |
| 414 AdvBlendEqInteraction advBlendEqInteraction() const { return fAdvBlendEqInte
raction; } | 428 AdvBlendEqInteraction advBlendEqInteraction() const { return fAdvBlendEqInte
raction; } |
| 415 | 429 |
| 416 bool mustEnableAdvBlendEqs() const { | 430 bool mustEnableAdvBlendEqs() const { |
| 417 return fAdvBlendEqInteraction >= kGeneralEnable_AdvBlendEqInteraction; | 431 return fAdvBlendEqInteraction >= kGeneralEnable_AdvBlendEqInteraction; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 434 | 448 |
| 435 private: | 449 private: |
| 436 // Must be called after fGeometryShaderSupport is initialized. | 450 // Must be called after fGeometryShaderSupport is initialized. |
| 437 void initShaderPrecisionTable(const GrGLContextInfo&, const GrGLInterface*); | 451 void initShaderPrecisionTable(const GrGLContextInfo&, const GrGLInterface*); |
| 438 | 452 |
| 439 GrGLSLGeneration fGLSLGeneration; | 453 GrGLSLGeneration fGLSLGeneration; |
| 440 | 454 |
| 441 bool fDropsTileOnZeroDivide : 1; | 455 bool fDropsTileOnZeroDivide : 1; |
| 442 bool fFBFetchSupport : 1; | 456 bool fFBFetchSupport : 1; |
| 443 bool fFBFetchNeedsCustomOutput : 1; | 457 bool fFBFetchNeedsCustomOutput : 1; |
| 458 bool fBindlessTextureSupport : 1; |
| 444 | 459 |
| 445 const char* fFBFetchColorName; | 460 const char* fFBFetchColorName; |
| 446 const char* fFBFetchExtensionString; | 461 const char* fFBFetchExtensionString; |
| 447 | 462 |
| 448 AdvBlendEqInteraction fAdvBlendEqInteraction; | 463 AdvBlendEqInteraction fAdvBlendEqInteraction; |
| 449 | 464 |
| 450 friend class GrGLCaps; // For initialization. | 465 friend class GrGLCaps; // For initialization. |
| 451 | 466 |
| 452 typedef GrShaderCaps INHERITED; | 467 typedef GrShaderCaps INHERITED; |
| 453 }; | 468 }; |
| 454 | 469 |
| 455 | 470 |
| 456 #endif | 471 #endif |
| OLD | NEW |