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

Side by Side Diff: src/gpu/GrFragmentProcessor.cpp

Issue 1490283004: Create GLSLUniformHandler class for gpu backend (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: clean up public api of uniformhandler Created 5 years 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
« no previous file with comments | « src/gpu/GrDefaultGeoProcFactory.cpp ('k') | src/gpu/GrOvalRenderer.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2015 Google Inc. 3 * Copyright 2015 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 #include "GrFragmentProcessor.h" 9 #include "GrFragmentProcessor.h"
10 #include "GrCoordTransform.h" 10 #include "GrCoordTransform.h"
11 #include "GrInvariantOutput.h"
12 #include "GrProcOptInfo.h"
11 #include "glsl/GrGLSLFragmentProcessor.h" 13 #include "glsl/GrGLSLFragmentProcessor.h"
12 #include "glsl/GrGLSLFragmentShaderBuilder.h" 14 #include "glsl/GrGLSLFragmentShaderBuilder.h"
13 #include "glsl/GrGLSLProgramBuilder.h"
14 #include "glsl/GrGLSLProgramDataManager.h" 15 #include "glsl/GrGLSLProgramDataManager.h"
16 #include "glsl/GrGLSLUniformHandler.h"
15 #include "effects/GrConstColorProcessor.h" 17 #include "effects/GrConstColorProcessor.h"
16 #include "effects/GrXfermodeFragmentProcessor.h" 18 #include "effects/GrXfermodeFragmentProcessor.h"
17 19
18 GrFragmentProcessor::~GrFragmentProcessor() { 20 GrFragmentProcessor::~GrFragmentProcessor() {
19 // If we got here then our ref count must have reached zero, so we will have converted refs 21 // If we got here then our ref count must have reached zero, so we will have converted refs
20 // to pending executions for all children. 22 // to pending executions for all children.
21 for (int i = 0; i < fChildProcessors.count(); ++i) { 23 for (int i = 0; i < fChildProcessors.count(); ++i) {
22 fChildProcessors[i]->completedExecution(); 24 fChildProcessors[i]->completedExecution();
23 } 25 }
24 } 26 }
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 } 221 }
220 222
221 const char* name() const override { return "Replace Color"; } 223 const char* name() const override { return "Replace Color"; }
222 224
223 GrGLSLFragmentProcessor* onCreateGLSLInstance() const override { 225 GrGLSLFragmentProcessor* onCreateGLSLInstance() const override {
224 class GLFP : public GrGLSLFragmentProcessor { 226 class GLFP : public GrGLSLFragmentProcessor {
225 public: 227 public:
226 GLFP() : fHaveSetColor(false) {} 228 GLFP() : fHaveSetColor(false) {}
227 void emitCode(EmitArgs& args) override { 229 void emitCode(EmitArgs& args) override {
228 const char* colorName; 230 const char* colorName;
229 fColorUni = args.fBuilder->addUniform(GrGLSLProgramBuilder:: kFragment_Visibility, 231 fColorUni = args.fUniformHandler->addUniform(
230 kVec4f_GrSLType, kDefa ult_GrSLPrecision, 232 GrGLSLUniformHandler::k Fragment_Visibility,
231 "Color", &colorName); 233 kVec4f_GrSLType, kDefau lt_GrSLPrecision,
234 "Color", &colorName);
232 this->emitChild(0, colorName, args); 235 this->emitChild(0, colorName, args);
233 } 236 }
234 237
235 private: 238 private:
236 void onSetData(const GrGLSLProgramDataManager& pdman, 239 void onSetData(const GrGLSLProgramDataManager& pdman,
237 const GrProcessor& fp) override { 240 const GrProcessor& fp) override {
238 GrColor color = fp.cast<ReplaceInputFragmentProcessor>().fCo lor; 241 GrColor color = fp.cast<ReplaceInputFragmentProcessor>().fCo lor;
239 if (!fHaveSetColor || color != fPreviousColor) { 242 if (!fHaveSetColor || color != fPreviousColor) {
240 static const float scale = 1.f / 255.f; 243 static const float scale = 1.f / 255.f;
241 float floatColor[4] = { 244 float floatColor[4] = {
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 } 372 }
370 } 373 }
371 374
372 if (1 == cnt) { 375 if (1 == cnt) {
373 return SkRef(series[0]); 376 return SkRef(series[0]);
374 } else { 377 } else {
375 return new SeriesFragmentProcessor(series, cnt); 378 return new SeriesFragmentProcessor(series, cnt);
376 } 379 }
377 } 380 }
378 381
OLDNEW
« no previous file with comments | « src/gpu/GrDefaultGeoProcFactory.cpp ('k') | src/gpu/GrOvalRenderer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698