Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(612)

Side by Side Diff: src/gpu/gl/GrGLProgramDesc.cpp

Issue 22686002: Implement path cover with nv_path_rendering (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: rebase Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright 2013 Google Inc. 2 * Copyright 2013 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 #include "GrGLProgramDesc.h" 8 #include "GrGLProgramDesc.h"
9 #include "GrBackendEffectFactory.h" 9 #include "GrBackendEffectFactory.h"
10 #include "GrDrawEffect.h" 10 #include "GrDrawEffect.h"
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 115
116 // Currently the experimental GS will only work with triangle prims (and it doesn't do anything 116 // Currently the experimental GS will only work with triangle prims (and it doesn't do anything
117 // other than pass through values from the VS to the FS anyway). 117 // other than pass through values from the VS to the FS anyway).
118 #if GR_GL_EXPERIMENTAL_GS 118 #if GR_GL_EXPERIMENTAL_GS
119 #if 0 119 #if 0
120 header->fExperimentalGS = gpu->caps().geometryShaderSupport(); 120 header->fExperimentalGS = gpu->caps().geometryShaderSupport();
121 #else 121 #else
122 header->fExperimentalGS = false; 122 header->fExperimentalGS = false;
123 #endif 123 #endif
124 #endif 124 #endif
125 bool defaultToUniformInputs = GR_GL_NO_CONSTANT_ATTRIBUTES || gpu->glCaps(). pathRenderingSupport();
126
125 if (colorIsTransBlack) { 127 if (colorIsTransBlack) {
126 header->fColorInput = kTransBlack_ColorInput; 128 header->fColorInput = kTransBlack_ColorInput;
127 } else if (colorIsSolidWhite) { 129 } else if (colorIsSolidWhite) {
128 header->fColorInput = kSolidWhite_ColorInput; 130 header->fColorInput = kSolidWhite_ColorInput;
129 } else if (GR_GL_NO_CONSTANT_ATTRIBUTES && !requiresColorAttrib) { 131 } else if (defaultToUniformInputs && !requiresColorAttrib) {
130 header->fColorInput = kUniform_ColorInput; 132 header->fColorInput = kUniform_ColorInput;
131 } else { 133 } else {
132 header->fColorInput = kAttribute_ColorInput; 134 header->fColorInput = kAttribute_ColorInput;
133 header->fHasVertexCode = true; 135 header->fHasVertexCode = true;
134 } 136 }
135 137
136 bool covIsSolidWhite = !requiresCoverageAttrib && 0xffffffff == drawState.ge tCoverage(); 138 bool covIsSolidWhite = !requiresCoverageAttrib && 0xffffffff == drawState.ge tCoverage();
137 139
138 if (skipCoverage) { 140 if (skipCoverage) {
139 header->fCoverageInput = kTransBlack_ColorInput; 141 header->fCoverageInput = kTransBlack_ColorInput;
140 } else if (covIsSolidWhite) { 142 } else if (covIsSolidWhite) {
141 header->fCoverageInput = kSolidWhite_ColorInput; 143 header->fCoverageInput = kSolidWhite_ColorInput;
142 } else if (GR_GL_NO_CONSTANT_ATTRIBUTES && !requiresCoverageAttrib) { 144 } else if (defaultToUniformInputs && !requiresCoverageAttrib) {
143 header->fCoverageInput = kUniform_ColorInput; 145 header->fCoverageInput = kUniform_ColorInput;
144 } else { 146 } else {
145 header->fCoverageInput = kAttribute_ColorInput; 147 header->fCoverageInput = kAttribute_ColorInput;
146 header->fHasVertexCode = true; 148 header->fHasVertexCode = true;
147 } 149 }
148 150
149 if (readsDst) { 151 if (readsDst) {
150 SkASSERT(NULL != dstCopy || gpu->caps()->dstReadInShaderSupport()); 152 SkASSERT(NULL != dstCopy || gpu->caps()->dstReadInShaderSupport());
151 const GrTexture* dstCopyTexture = NULL; 153 const GrTexture* dstCopyTexture = NULL;
152 if (NULL != dstCopy) { 154 if (NULL != dstCopy) {
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 264
263 GrGLProgramDesc& GrGLProgramDesc::operator= (const GrGLProgramDesc& other) { 265 GrGLProgramDesc& GrGLProgramDesc::operator= (const GrGLProgramDesc& other) {
264 fInitialized = other.fInitialized; 266 fInitialized = other.fInitialized;
265 if (fInitialized) { 267 if (fInitialized) {
266 size_t keyLength = other.keyLength(); 268 size_t keyLength = other.keyLength();
267 fKey.reset(keyLength); 269 fKey.reset(keyLength);
268 memcpy(fKey.get(), other.fKey.get(), keyLength); 270 memcpy(fKey.get(), other.fKey.get(), keyLength);
269 } 271 }
270 return *this; 272 return *this;
271 } 273 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698