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 |