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

Side by Side Diff: src/core/SkLightingShader.cpp

Issue 1434313002: Make all GrFragmentProcessors GL independent. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 1 month 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 /* 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 "SkBitmapProcState.h" 9 #include "SkBitmapProcState.h"
10 #include "SkColor.h" 10 #include "SkColor.h"
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 typedef SkShader INHERITED; 123 typedef SkShader INHERITED;
124 }; 124 };
125 125
126 //////////////////////////////////////////////////////////////////////////// 126 ////////////////////////////////////////////////////////////////////////////
127 127
128 #if SK_SUPPORT_GPU 128 #if SK_SUPPORT_GPU
129 129
130 #include "GrCoordTransform.h" 130 #include "GrCoordTransform.h"
131 #include "GrFragmentProcessor.h" 131 #include "GrFragmentProcessor.h"
132 #include "GrTextureAccess.h" 132 #include "GrTextureAccess.h"
133 #include "gl/GrGLFragmentProcessor.h" 133 #include "glsl/GrGLSLFragmentProcessor.h"
134 #include "glsl/GrGLSLFragmentShaderBuilder.h" 134 #include "glsl/GrGLSLFragmentShaderBuilder.h"
135 #include "glsl/GrGLSLProgramBuilder.h" 135 #include "glsl/GrGLSLProgramBuilder.h"
136 #include "glsl/GrGLSLProgramDataManager.h" 136 #include "glsl/GrGLSLProgramDataManager.h"
137 #include "SkGr.h" 137 #include "SkGr.h"
138 #include "SkGrPriv.h" 138 #include "SkGrPriv.h"
139 139
140 class LightingFP : public GrFragmentProcessor { 140 class LightingFP : public GrFragmentProcessor {
141 public: 141 public:
142 LightingFP(GrTexture* diffuse, GrTexture* normal, const SkMatrix& diffMatrix , 142 LightingFP(GrTexture* diffuse, GrTexture* normal, const SkMatrix& diffMatrix ,
143 const SkMatrix& normMatrix, const GrTextureParams& diffParams, 143 const SkMatrix& normMatrix, const GrTextureParams& diffParams,
(...skipping 17 matching lines...) Expand all
161 } else { 161 } else {
162 // TODO: handle more than one of these 162 // TODO: handle more than one of these
163 fLightColor = lights->light(i).color(); 163 fLightColor = lights->light(i).color();
164 fLightDir = lights->light(i).dir(); 164 fLightDir = lights->light(i).dir();
165 } 165 }
166 } 166 }
167 167
168 this->initClassID<LightingFP>(); 168 this->initClassID<LightingFP>();
169 } 169 }
170 170
171 class LightingGLFP : public GrGLFragmentProcessor { 171 class LightingGLFP : public GrGLSLFragmentProcessor {
172 public: 172 public:
173 LightingGLFP() { 173 LightingGLFP() {
174 fLightDir.fX = 10000.0f; 174 fLightDir.fX = 10000.0f;
175 fLightColor.fX = 0.0f; 175 fLightColor.fX = 0.0f;
176 fAmbientColor.fX = 0.0f; 176 fAmbientColor.fX = 0.0f;
177 fInvNormRotation.set(0.0f, 0.0f); 177 fInvNormRotation.set(0.0f, 0.0f);
178 } 178 }
179 179
180 void emitCode(EmitArgs& args) override { 180 void emitCode(EmitArgs& args) override {
181 181
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 void onComputeInvariantOutput(GrInvariantOutput* inout) const override { 290 void onComputeInvariantOutput(GrInvariantOutput* inout) const override {
291 inout->mulByUnknownFourComponents(); 291 inout->mulByUnknownFourComponents();
292 } 292 }
293 293
294 const SkVector3& lightDir() const { return fLightDir; } 294 const SkVector3& lightDir() const { return fLightDir; }
295 const SkColor3f& lightColor() const { return fLightColor; } 295 const SkColor3f& lightColor() const { return fLightColor; }
296 const SkColor3f& ambientColor() const { return fAmbientColor; } 296 const SkColor3f& ambientColor() const { return fAmbientColor; }
297 const SkVector& invNormRotation() const { return fInvNormRotation; } 297 const SkVector& invNormRotation() const { return fInvNormRotation; }
298 298
299 private: 299 private:
300 GrGLFragmentProcessor* onCreateGLInstance() const override { return new Ligh tingGLFP; } 300 GrGLSLFragmentProcessor* onCreateGLInstance() const override { return new Li ghtingGLFP; }
301 301
302 bool onIsEqual(const GrFragmentProcessor& proc) const override { 302 bool onIsEqual(const GrFragmentProcessor& proc) const override {
303 const LightingFP& lightingFP = proc.cast<LightingFP>(); 303 const LightingFP& lightingFP = proc.cast<LightingFP>();
304 return fDiffDeviceTransform == lightingFP.fDiffDeviceTransform && 304 return fDiffDeviceTransform == lightingFP.fDiffDeviceTransform &&
305 fNormDeviceTransform == lightingFP.fNormDeviceTransform && 305 fNormDeviceTransform == lightingFP.fNormDeviceTransform &&
306 fDiffuseTextureAccess == lightingFP.fDiffuseTextureAccess && 306 fDiffuseTextureAccess == lightingFP.fDiffuseTextureAccess &&
307 fNormalTextureAccess == lightingFP.fNormalTextureAccess && 307 fNormalTextureAccess == lightingFP.fNormalTextureAccess &&
308 fLightDir == lightingFP.fLightDir && 308 fLightDir == lightingFP.fLightDir &&
309 fLightColor == lightingFP.fLightColor && 309 fLightColor == lightingFP.fLightColor &&
310 fAmbientColor == lightingFP.fAmbientColor && 310 fAmbientColor == lightingFP.fAmbientColor &&
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after
714 normLocalM); 714 normLocalM);
715 } 715 }
716 716
717 /////////////////////////////////////////////////////////////////////////////// 717 ///////////////////////////////////////////////////////////////////////////////
718 718
719 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkLightingShader) 719 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkLightingShader)
720 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLightingShaderImpl) 720 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLightingShaderImpl)
721 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END 721 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END
722 722
723 /////////////////////////////////////////////////////////////////////////////// 723 ///////////////////////////////////////////////////////////////////////////////
OLDNEW
« no previous file with comments | « include/gpu/effects/GrConstColorProcessor.h ('k') | src/effects/GrCircleBlurFragmentProcessor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698