| 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 #include "GrGLSLCaps.h" | 9 #include "GrGLSLCaps.h" |
| 10 | 10 |
| 11 #include "GrContextOptions.h" | 11 #include "GrContextOptions.h" |
| 12 | 12 |
| 13 ////////////////////////////////////////////////////////////////////////////////
//////////// | 13 ////////////////////////////////////////////////////////////////////////////////
//////////// |
| 14 | 14 |
| 15 GrGLSLCaps::GrGLSLCaps(const GrContextOptions& options) { | 15 GrGLSLCaps::GrGLSLCaps(const GrContextOptions& options) { |
| 16 fGLSLGeneration = k330_GrGLSLGeneration; | 16 fGLSLGeneration = k330_GrGLSLGeneration; |
| 17 | 17 |
| 18 fDropsTileOnZeroDivide = false; | 18 fDropsTileOnZeroDivide = false; |
| 19 fFBFetchSupport = false; | 19 fFBFetchSupport = false; |
| 20 fFBFetchNeedsCustomOutput = false; | 20 fFBFetchNeedsCustomOutput = false; |
| 21 fBindlessTextureSupport = false; | 21 fBindlessTextureSupport = false; |
| 22 fUsesPrecisionModifiers = false; | 22 fUsesPrecisionModifiers = false; |
| 23 fCanUseAnyFunctionInShader = true; | 23 fCanUseAnyFunctionInShader = true; |
| 24 fForceHighPrecisionNDSTransform = false; | |
| 25 fCanUseMinAndAbsTogether = true; | 24 fCanUseMinAndAbsTogether = true; |
| 26 fMustForceNegatedAtanParamToFloat = false; | 25 fMustForceNegatedAtanParamToFloat = false; |
| 27 fVersionDeclString = nullptr; | 26 fVersionDeclString = nullptr; |
| 28 fShaderDerivativeExtensionString = nullptr; | 27 fShaderDerivativeExtensionString = nullptr; |
| 29 fFragCoordConventionsExtensionString = nullptr; | 28 fFragCoordConventionsExtensionString = nullptr; |
| 30 fSecondaryOutputExtensionString = nullptr; | 29 fSecondaryOutputExtensionString = nullptr; |
| 31 fExternalTextureExtensionString = nullptr; | 30 fExternalTextureExtensionString = nullptr; |
| 32 fFBFetchColorName = nullptr; | 31 fFBFetchColorName = nullptr; |
| 33 fFBFetchExtensionString = nullptr; | 32 fFBFetchExtensionString = nullptr; |
| 34 fAdvBlendEqInteraction = kNotSupported_AdvBlendEqInteraction; | 33 fAdvBlendEqInteraction = kNotSupported_AdvBlendEqInteraction; |
| (...skipping 17 matching lines...) Expand all Loading... |
| 52 GR_STATIC_ASSERT(3 == kSpecificEnables_AdvBlendEqInteraction); | 51 GR_STATIC_ASSERT(3 == kSpecificEnables_AdvBlendEqInteraction); |
| 53 GR_STATIC_ASSERT(SK_ARRAY_COUNT(kAdvBlendEqInteractionStr) == kLast_AdvBlend
EqInteraction + 1); | 52 GR_STATIC_ASSERT(SK_ARRAY_COUNT(kAdvBlendEqInteractionStr) == kLast_AdvBlend
EqInteraction + 1); |
| 54 | 53 |
| 55 r.appendf("--- GLSL-Specific ---\n"); | 54 r.appendf("--- GLSL-Specific ---\n"); |
| 56 | 55 |
| 57 r.appendf("FB Fetch Support: %s\n", (fFBFetchSupport ? "YES" : "NO")); | 56 r.appendf("FB Fetch Support: %s\n", (fFBFetchSupport ? "YES" : "NO")); |
| 58 r.appendf("Drops tile on zero divide: %s\n", (fDropsTileOnZeroDivide ? "YES"
: "NO")); | 57 r.appendf("Drops tile on zero divide: %s\n", (fDropsTileOnZeroDivide ? "YES"
: "NO")); |
| 59 r.appendf("Bindless texture support: %s\n", (fBindlessTextureSupport ? "YES"
: "NO")); | 58 r.appendf("Bindless texture support: %s\n", (fBindlessTextureSupport ? "YES"
: "NO")); |
| 60 r.appendf("Uses precision modifiers: %s\n", (fUsesPrecisionModifiers ? "YES"
: "NO")); | 59 r.appendf("Uses precision modifiers: %s\n", (fUsesPrecisionModifiers ? "YES"
: "NO")); |
| 61 r.appendf("Can use any() function: %s\n", (fCanUseAnyFunctionInShader ? "YES
" : "NO")); | 60 r.appendf("Can use any() function: %s\n", (fCanUseAnyFunctionInShader ? "YES
" : "NO")); |
| 62 r.appendf("Force high precision on NDS transform: %s\n", (fForceHighPrecisio
nNDSTransform ? | |
| 63 "YES" : "NO")); | |
| 64 r.appendf("Can use min() and abs() together: %s\n", (fCanUseMinAndAbsTogethe
r ? "YES" : "NO")); | 61 r.appendf("Can use min() and abs() together: %s\n", (fCanUseMinAndAbsTogethe
r ? "YES" : "NO")); |
| 65 r.appendf("Must force negated atan param to float: %s\n", (fMustForceNegated
AtanParamToFloat ? | 62 r.appendf("Must force negated atan param to float: %s\n", (fMustForceNegated
AtanParamToFloat ? |
| 66 "YES" : "NO")); | 63 "YES" : "NO")); |
| 67 r.appendf("Advanced blend equation interaction: %s\n", | 64 r.appendf("Advanced blend equation interaction: %s\n", |
| 68 kAdvBlendEqInteractionStr[fAdvBlendEqInteraction]); | 65 kAdvBlendEqInteractionStr[fAdvBlendEqInteraction]); |
| 69 return r; | 66 return r; |
| 70 } | 67 } |
| 71 | 68 |
| 72 void GrGLSLCaps::onApplyOptionsOverrides(const GrContextOptions& options) { | 69 void GrGLSLCaps::onApplyOptionsOverrides(const GrContextOptions& options) { |
| 73 if (options.fUseShaderSwizzling) { | 70 if (options.fUseShaderSwizzling) { |
| 74 fMustSwizzleInShader = true; | 71 fMustSwizzleInShader = true; |
| 75 } | 72 } |
| 76 } | 73 } |
| 77 | 74 |
| OLD | NEW |