| 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 "GrGLCaps.h" | 9 #include "GrGLCaps.h" |
| 10 | 10 |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 | 57 |
| 58 this->init(contextOptions, ctxInfo, glInterface); | 58 this->init(contextOptions, ctxInfo, glInterface); |
| 59 } | 59 } |
| 60 | 60 |
| 61 void GrGLCaps::init(const GrContextOptions& contextOptions, | 61 void GrGLCaps::init(const GrContextOptions& contextOptions, |
| 62 const GrGLContextInfo& ctxInfo, | 62 const GrGLContextInfo& ctxInfo, |
| 63 const GrGLInterface* gli) { | 63 const GrGLInterface* gli) { |
| 64 GrGLStandard standard = ctxInfo.standard(); | 64 GrGLStandard standard = ctxInfo.standard(); |
| 65 GrGLVersion version = ctxInfo.version(); | 65 GrGLVersion version = ctxInfo.version(); |
| 66 | 66 |
| 67 this->initGLSL(ctxInfo); | |
| 68 GrGLSLCaps* glslCaps = static_cast<GrGLSLCaps*>(fShaderCaps.get()); | |
| 69 | |
| 70 /************************************************************************** | 67 /************************************************************************** |
| 71 * Caps specific to GrGLCaps | 68 * Caps specific to GrGLCaps |
| 72 **************************************************************************/ | 69 **************************************************************************/ |
| 73 | 70 |
| 74 if (kGLES_GrGLStandard == standard) { | 71 if (kGLES_GrGLStandard == standard) { |
| 75 GR_GL_GetIntegerv(gli, GR_GL_MAX_FRAGMENT_UNIFORM_VECTORS, | 72 GR_GL_GetIntegerv(gli, GR_GL_MAX_FRAGMENT_UNIFORM_VECTORS, |
| 76 &fMaxFragmentUniformVectors); | 73 &fMaxFragmentUniformVectors); |
| 77 } else { | 74 } else { |
| 78 SkASSERT(kGL_GrGLStandard == standard); | 75 SkASSERT(kGL_GrGLStandard == standard); |
| 79 GrGLint max; | 76 GrGLint max; |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 282 fRGBA8888PixelsOpsAreSlow = isANGLE; | 279 fRGBA8888PixelsOpsAreSlow = isANGLE; |
| 283 // On DX9 ANGLE reading a partial FBO is slow. TODO: Check whether this is s
till true and | 280 // On DX9 ANGLE reading a partial FBO is slow. TODO: Check whether this is s
till true and |
| 284 // check DX11 ANGLE. | 281 // check DX11 ANGLE. |
| 285 fPartialFBOReadIsSlow = isANGLE; | 282 fPartialFBOReadIsSlow = isANGLE; |
| 286 #endif | 283 #endif |
| 287 | 284 |
| 288 /************************************************************************** | 285 /************************************************************************** |
| 289 * GrShaderCaps fields | 286 * GrShaderCaps fields |
| 290 **************************************************************************/ | 287 **************************************************************************/ |
| 291 | 288 |
| 289 // This must be called after fCoreProfile is set on the GrGLCaps |
| 290 this->initGLSL(ctxInfo); |
| 291 GrGLSLCaps* glslCaps = static_cast<GrGLSLCaps*>(fShaderCaps.get()); |
| 292 |
| 292 glslCaps->fPathRenderingSupport = this->hasPathRenderingSupport(ctxInfo, gli
); | 293 glslCaps->fPathRenderingSupport = this->hasPathRenderingSupport(ctxInfo, gli
); |
| 293 | 294 |
| 294 // For now these two are equivalent but we could have dst read in shader via
some other method. | 295 // For now these two are equivalent but we could have dst read in shader via
some other method. |
| 295 // Before setting this, initGLSL() must have been called. | 296 // Before setting this, initGLSL() must have been called. |
| 296 glslCaps->fDstReadInShaderSupport = glslCaps->fFBFetchSupport; | 297 glslCaps->fDstReadInShaderSupport = glslCaps->fFBFetchSupport; |
| 297 | 298 |
| 298 // Enable supported shader-related caps | 299 // Enable supported shader-related caps |
| 299 if (kGL_GrGLStandard == standard) { | 300 if (kGL_GrGLStandard == standard) { |
| 300 glslCaps->fDualSourceBlendingSupport = (ctxInfo.version() >= GR_GL_VER(3
, 3) || | 301 glslCaps->fDualSourceBlendingSupport = (ctxInfo.version() >= GR_GL_VER(3
, 3) || |
| 301 ctxInfo.hasExtension("GL_ARB_blend_func_extended")) && | 302 ctxInfo.hasExtension("GL_ARB_blend_func_extended")) && |
| (...skipping 970 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1272 for (int p = 0; p < kGrSLPrecisionCount; ++p) { | 1273 for (int p = 0; p < kGrSLPrecisionCount; ++p) { |
| 1273 glslCaps->fFloatPrecisions[kGeometry_GrShaderType][p] = | 1274 glslCaps->fFloatPrecisions[kGeometry_GrShaderType][p] = |
| 1274 glslCaps->fFloatPrecisions[kVerte
x_GrShaderType][p]; | 1275 glslCaps->fFloatPrecisions[kVerte
x_GrShaderType][p]; |
| 1275 } | 1276 } |
| 1276 } | 1277 } |
| 1277 } | 1278 } |
| 1278 | 1279 |
| 1279 | 1280 |
| 1280 | 1281 |
| 1281 | 1282 |
| OLD | NEW |