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

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

Issue 257393004: Convert GrCrash->SkFAIL GrDebugCrash->SkDEBUGFAIL (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: whitespace change Created 6 years, 7 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
OLDNEW
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 #include "gl/GrGLShaderBuilder.h" 8 #include "gl/GrGLShaderBuilder.h"
9 #include "gl/GrGLProgram.h" 9 #include "gl/GrGLProgram.h"
10 #include "gl/GrGLUniformHandle.h" 10 #include "gl/GrGLUniformHandle.h"
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 case kStandardDerivatives_GLSLFeature: 180 case kStandardDerivatives_GLSLFeature:
181 if (!fGpu->glCaps().shaderDerivativeSupport()) { 181 if (!fGpu->glCaps().shaderDerivativeSupport()) {
182 return false; 182 return false;
183 } 183 }
184 if (kGLES_GrGLStandard == fGpu->glStandard()) { 184 if (kGLES_GrGLStandard == fGpu->glStandard()) {
185 this->addFSFeature(1 << kStandardDerivatives_GLSLFeature, 185 this->addFSFeature(1 << kStandardDerivatives_GLSLFeature,
186 "GL_OES_standard_derivatives"); 186 "GL_OES_standard_derivatives");
187 } 187 }
188 return true; 188 return true;
189 default: 189 default:
190 GrCrash("Unexpected GLSLFeature requested."); 190 SkFAIL("Unexpected GLSLFeature requested.");
191 return false; 191 return false;
192 } 192 }
193 } 193 }
194 194
195 bool GrGLShaderBuilder::enablePrivateFeature(GLSLPrivateFeature feature) { 195 bool GrGLShaderBuilder::enablePrivateFeature(GLSLPrivateFeature feature) {
196 switch (feature) { 196 switch (feature) {
197 case kFragCoordConventions_GLSLPrivateFeature: 197 case kFragCoordConventions_GLSLPrivateFeature:
198 if (!fGpu->glCaps().fragCoordConventionsSupport()) { 198 if (!fGpu->glCaps().fragCoordConventionsSupport()) {
199 return false; 199 return false;
200 } 200 }
(...skipping 10 matching lines...) Expand all
211 "GL_EXT_shader_framebuffer_fetch"); 211 "GL_EXT_shader_framebuffer_fetch");
212 return true; 212 return true;
213 case kNVShaderFramebufferFetch_GLSLPrivateFeature: 213 case kNVShaderFramebufferFetch_GLSLPrivateFeature:
214 if (GrGLCaps::kNV_FBFetchType != fGpu->glCaps().fbFetchType()) { 214 if (GrGLCaps::kNV_FBFetchType != fGpu->glCaps().fbFetchType()) {
215 return false; 215 return false;
216 } 216 }
217 this->addFSFeature(1 << kNVShaderFramebufferFetch_GLSLPrivateFeature , 217 this->addFSFeature(1 << kNVShaderFramebufferFetch_GLSLPrivateFeature ,
218 "GL_NV_shader_framebuffer_fetch"); 218 "GL_NV_shader_framebuffer_fetch");
219 return true; 219 return true;
220 default: 220 default:
221 GrCrash("Unexpected GLSLPrivateFeature requested."); 221 SkFAIL("Unexpected GLSLPrivateFeature requested.");
222 return false; 222 return false;
223 } 223 }
224 } 224 }
225 225
226 void GrGLShaderBuilder::addFSFeature(uint32_t featureBit, const char* extensionN ame) { 226 void GrGLShaderBuilder::addFSFeature(uint32_t featureBit, const char* extensionN ame) {
227 if (!(featureBit & fFSFeaturesAddedMask)) { 227 if (!(featureBit & fFSFeaturesAddedMask)) {
228 fFSExtensions.appendf("#extension %s: require\n", extensionName); 228 fFSExtensions.appendf("#extension %s: require\n", extensionName);
229 fFSFeaturesAddedMask |= featureBit; 229 fFSFeaturesAddedMask |= featureBit;
230 } 230 }
231 } 231 }
(...skipping 10 matching lines...) Expand all
242 out->append("x"); 242 out->append("x");
243 } 243 }
244 out->appendf("_Stage%d", fCodeStage.stageIndex()); 244 out->appendf("_Stage%d", fCodeStage.stageIndex());
245 } 245 }
246 } 246 }
247 247
248 const char* GrGLShaderBuilder::dstColor() { 248 const char* GrGLShaderBuilder::dstColor() {
249 if (fCodeStage.inStageCode()) { 249 if (fCodeStage.inStageCode()) {
250 const GrEffectRef& effect = *fCodeStage.effectStage()->getEffect(); 250 const GrEffectRef& effect = *fCodeStage.effectStage()->getEffect();
251 if (!effect->willReadDstColor()) { 251 if (!effect->willReadDstColor()) {
252 GrDebugCrash("GrGLEffect asked for dst color but its generating GrEf fect " 252 SkDEBUGFAIL("GrGLEffect asked for dst color but its generating GrEff ect "
253 "did not request access."); 253 "did not request access.");
254 return ""; 254 return "";
255 } 255 }
256 } 256 }
257 static const char kFBFetchColorName[] = "gl_LastFragData[0]"; 257 static const char kFBFetchColorName[] = "gl_LastFragData[0]";
258 GrGLCaps::FBFetchType fetchType = fGpu->glCaps().fbFetchType(); 258 GrGLCaps::FBFetchType fetchType = fGpu->glCaps().fbFetchType();
259 if (GrGLCaps::kEXT_FBFetchType == fetchType) { 259 if (GrGLCaps::kEXT_FBFetchType == fetchType) {
260 SkAssertResult(this->enablePrivateFeature(kEXTShaderFramebufferFetch_GLS LPrivateFeature)); 260 SkAssertResult(this->enablePrivateFeature(kEXTShaderFramebufferFetch_GLS LPrivateFeature));
261 return kFBFetchColorName; 261 return kFBFetchColorName;
262 } else if (GrGLCaps::kNV_FBFetchType == fetchType) { 262 } else if (GrGLCaps::kNV_FBFetchType == fetchType) {
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 } 392 }
393 this->fsCodeAppendf("\tvec2 %s = %s.xy / %s.z;", 393 this->fsCodeAppendf("\tvec2 %s = %s.xy / %s.z;",
394 coords2D.c_str(), coords[index].c_str(), coords[index].c _str()); 394 coords2D.c_str(), coords[index].c_str(), coords[index].c _str());
395 return coords2D; 395 return coords2D;
396 } 396 }
397 397
398 const char* GrGLShaderBuilder::fragmentPosition() { 398 const char* GrGLShaderBuilder::fragmentPosition() {
399 if (fCodeStage.inStageCode()) { 399 if (fCodeStage.inStageCode()) {
400 const GrEffectRef& effect = *fCodeStage.effectStage()->getEffect(); 400 const GrEffectRef& effect = *fCodeStage.effectStage()->getEffect();
401 if (!effect->willReadFragmentPosition()) { 401 if (!effect->willReadFragmentPosition()) {
402 GrDebugCrash("GrGLEffect asked for frag position but its generating GrEffect " 402 SkDEBUGFAIL("GrGLEffect asked for frag position but its generating G rEffect "
403 "did not request access."); 403 "did not request access.");
404 return ""; 404 return "";
405 } 405 }
406 } 406 }
407 // We only declare "gl_FragCoord" when we're in the case where we want to us e layout qualifiers 407 // We only declare "gl_FragCoord" when we're in the case where we want to us e layout qualifiers
408 // to reverse y. Otherwise it isn't necessary and whether the "in" qualifier appears in the 408 // to reverse y. Otherwise it isn't necessary and whether the "in" qualifier appears in the
409 // declaration varies in earlier GLSL specs. So it is simpler to omit it. 409 // declaration varies in earlier GLSL specs. So it is simpler to omit it.
410 if (fTopLeftFragPosRead) { 410 if (fTopLeftFragPosRead) {
411 fSetupFragPosition = true; 411 fSetupFragPosition = true;
412 return "gl_FragCoord"; 412 return "gl_FragCoord";
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
476 case GrGLShaderVar::kHigh_Precision: 476 case GrGLShaderVar::kHigh_Precision:
477 str->append("precision highp float;\n"); 477 str->append("precision highp float;\n");
478 break; 478 break;
479 case GrGLShaderVar::kMedium_Precision: 479 case GrGLShaderVar::kMedium_Precision:
480 str->append("precision mediump float;\n"); 480 str->append("precision mediump float;\n");
481 break; 481 break;
482 case GrGLShaderVar::kLow_Precision: 482 case GrGLShaderVar::kLow_Precision:
483 str->append("precision lowp float;\n"); 483 str->append("precision lowp float;\n");
484 break; 484 break;
485 case GrGLShaderVar::kDefault_Precision: 485 case GrGLShaderVar::kDefault_Precision:
486 GrCrash("Default precision now allowed."); 486 SkFAIL("Default precision now allowed.");
487 default: 487 default:
488 GrCrash("Unknown precision value."); 488 SkFAIL("Unknown precision value.");
489 } 489 }
490 } 490 }
491 } 491 }
492 } 492 }
493 493
494 void GrGLShaderBuilder::appendDecls(const VarArray& vars, SkString* out) const { 494 void GrGLShaderBuilder::appendDecls(const VarArray& vars, SkString* out) const {
495 for (int i = 0; i < vars.count(); ++i) { 495 for (int i = 0; i < vars.count(); ++i) {
496 vars[i].appendDecl(this->ctxInfo(), out); 496 vars[i].appendDecl(this->ctxInfo(), out);
497 out->append(";\n"); 497 out->append(";\n");
498 } 498 }
(...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after
990 990
991 GrGLPathTexGenProgramEffectsBuilder pathTexGenEffectsBuilder(this, 991 GrGLPathTexGenProgramEffectsBuilder pathTexGenEffectsBuilder(this,
992 effectCnt); 992 effectCnt);
993 this->INHERITED::createAndEmitEffects(&pathTexGenEffectsBuilder, 993 this->INHERITED::createAndEmitEffects(&pathTexGenEffectsBuilder,
994 effectStages, 994 effectStages,
995 effectKeys, 995 effectKeys,
996 effectCnt, 996 effectCnt,
997 inOutFSColor); 997 inOutFSColor);
998 return pathTexGenEffectsBuilder.finish(); 998 return pathTexGenEffectsBuilder.finish();
999 } 999 }
OLDNEW
« include/core/SkTypes.h ('K') | « src/gpu/gl/GrGLSL.cpp ('k') | src/gpu/gl/GrGLShaderVar.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698