| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2011 Google Inc. | 3 * Copyright 2011 Google Inc. |
| 4 * | 4 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
| 7 */ | 7 */ |
| 8 | 8 |
| 9 // This is a GPU-backend specific test. It relies on static intializers to work | 9 // This is a GPU-backend specific test. It relies on static intializers to work |
| 10 | 10 |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 71 header->fDiscardIfZeroCoverage = random->nextBool(); | 71 header->fDiscardIfZeroCoverage = random->nextBool(); |
| 72 | 72 |
| 73 bool useLocalCoords = random->nextBool() && currAttribIndex < GrDrawState::k
MaxVertexAttribCnt; | 73 bool useLocalCoords = random->nextBool() && currAttribIndex < GrDrawState::k
MaxVertexAttribCnt; |
| 74 header->fLocalCoordAttributeIndex = useLocalCoords ? currAttribIndex++ : -1; | 74 header->fLocalCoordAttributeIndex = useLocalCoords ? currAttribIndex++ : -1; |
| 75 | 75 |
| 76 header->fColorEffectCnt = numColorStages; | 76 header->fColorEffectCnt = numColorStages; |
| 77 header->fCoverageEffectCnt = numCoverageStages; | 77 header->fCoverageEffectCnt = numCoverageStages; |
| 78 | 78 |
| 79 bool dstRead = false; | 79 bool dstRead = false; |
| 80 bool fragPos = false; | 80 bool fragPos = false; |
| 81 bool vertexCode = false; |
| 81 int numStages = numColorStages + numCoverageStages; | 82 int numStages = numColorStages + numCoverageStages; |
| 82 for (int s = 0; s < numStages; ++s) { | 83 for (int s = 0; s < numStages; ++s) { |
| 83 const GrBackendEffectFactory& factory = (*stages[s]->getEffect())->getFa
ctory(); | 84 const GrBackendEffectFactory& factory = (*stages[s]->getEffect())->getFa
ctory(); |
| 84 GrDrawEffect drawEffect(*stages[s], useLocalCoords); | 85 GrDrawEffect drawEffect(*stages[s], useLocalCoords); |
| 85 this->effectKeys()[s] = factory.glEffectKey(drawEffect, gpu->glCaps()); | 86 this->effectKeys()[s] = factory.glEffectKey(drawEffect, gpu->glCaps()); |
| 86 if ((*stages[s]->getEffect())->willReadDstColor()) { | 87 if ((*stages[s]->getEffect())->willReadDstColor()) { |
| 87 dstRead = true; | 88 dstRead = true; |
| 88 } | 89 } |
| 89 if ((*stages[s]->getEffect())->willReadFragmentPosition()) { | 90 if ((*stages[s]->getEffect())->willReadFragmentPosition()) { |
| 90 fragPos = true; | 91 fragPos = true; |
| 91 } | 92 } |
| 93 if ((*stages[s]->getEffect())->hasVertexCode()) { |
| 94 vertexCode = true; |
| 95 } |
| 92 } | 96 } |
| 93 | 97 |
| 94 if (dstRead) { | 98 if (dstRead) { |
| 95 header->fDstReadKey = GrGLShaderBuilder::KeyForDstRead(dstCopyTexture, g
pu->glCaps()); | 99 header->fDstReadKey = GrGLShaderBuilder::KeyForDstRead(dstCopyTexture, g
pu->glCaps()); |
| 96 } else { | 100 } else { |
| 97 header->fDstReadKey = 0; | 101 header->fDstReadKey = 0; |
| 98 } | 102 } |
| 99 if (fragPos) { | 103 if (fragPos) { |
| 100 header->fFragPosKey = GrGLShaderBuilder::KeyForFragmentPosition(dstRende
rTarget, | 104 header->fFragPosKey = GrGLShaderBuilder::KeyForFragmentPosition(dstRende
rTarget, |
| 101 gpu->gl
Caps()); | 105 gpu->gl
Caps()); |
| 102 } else { | 106 } else { |
| 103 header->fFragPosKey = 0; | 107 header->fFragPosKey = 0; |
| 104 } | 108 } |
| 105 | 109 |
| 110 header->fHasVertexCode = vertexCode || |
| 111 useLocalCoords || |
| 112 kAttribute_ColorInput == header->fColorInput || |
| 113 kAttribute_ColorInput == header->fCoverageInput; |
| 114 |
| 106 CoverageOutput coverageOutput; | 115 CoverageOutput coverageOutput; |
| 107 bool illegalCoverageOutput; | 116 bool illegalCoverageOutput; |
| 108 do { | 117 do { |
| 109 coverageOutput = static_cast<CoverageOutput>(random->nextULessThan(kCove
rageOutputCnt)); | 118 coverageOutput = static_cast<CoverageOutput>(random->nextULessThan(kCove
rageOutputCnt)); |
| 110 illegalCoverageOutput = (!gpu->caps()->dualSourceBlendingSupport() && | 119 illegalCoverageOutput = (!gpu->caps()->dualSourceBlendingSupport() && |
| 111 CoverageOutputUsesSecondaryOutput(coverageOutpu
t)) || | 120 CoverageOutputUsesSecondaryOutput(coverageOutpu
t)) || |
| 112 (!dstRead && kCombineWithDst_CoverageOutput == c
overageOutput); | 121 (!dstRead && kCombineWithDst_CoverageOutput == c
overageOutput); |
| 113 } while (illegalCoverageOutput); | 122 } while (illegalCoverageOutput); |
| 114 | 123 |
| 115 header->fCoverageOutput = coverageOutput; | 124 header->fCoverageOutput = coverageOutput; |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 GrConfigConversionEffect::Create(NULL, | 250 GrConfigConversionEffect::Create(NULL, |
| 242 false, | 251 false, |
| 243 GrConfigConversionEffect::kNone_PMConversio
n, | 252 GrConfigConversionEffect::kNone_PMConversio
n, |
| 244 SkMatrix::I()); | 253 SkMatrix::I()); |
| 245 SkScalar matrix[20]; | 254 SkScalar matrix[20]; |
| 246 SkColorMatrixFilter cmf(matrix); | 255 SkColorMatrixFilter cmf(matrix); |
| 247 SkBitmapAlphaThresholdShader::Create(SkBitmap(), SkRegion(), 0x80); | 256 SkBitmapAlphaThresholdShader::Create(SkBitmap(), SkRegion(), 0x80); |
| 248 } | 257 } |
| 249 | 258 |
| 250 #endif | 259 #endif |
| OLD | NEW |