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

Side by Side Diff: src/gpu/gl/builders/GrGLFragmentOnlyProgramBuilder.h

Issue 611653002: Cleanup of shader building system (Closed) Base URL: https://skia.googlesource.com/skia.git@solo_gp
Patch Set: Created 6 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
« no previous file with comments | « src/gpu/gl/GrGpuGL_program.cpp ('k') | src/gpu/gl/builders/GrGLFragmentOnlyProgramBuilder.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /*
2 * Copyright 2014 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8 #ifndef GrGLFragmentOnlyProgramBuilder_DEFINED
9 #define GrGLFragmentOnlyProgramBuilder_DEFINED
10
11 #include "GrGLProgramBuilder.h"
12
13 class GrGLFragmentOnlyProgramBuilder : public GrGLProgramBuilder {
14 public:
15 GrGLFragmentOnlyProgramBuilder(GrGpuGL*, const GrOptDrawState&, const GrGLPr ogramDesc&);
16
17 int addTexCoordSets(int count);
18
19 private:
20 virtual void createAndEmitEffects(const GrGeometryStage* geometryProcessor,
21 const GrFragmentStage* colorStages[],
22 const GrFragmentStage* coverageStages[],
23 GrGLSLExpr4* inputColor,
24 GrGLSLExpr4* inputCoverage) SK_OVERRIDE;
25
26 GrGLProgramEffects* onCreateAndEmitEffects(const GrFragmentStage* effectStag es[],
27 int effectCnt,
28 const GrGLProgramDesc::EffectKeyP rovider&,
29 GrGLSLExpr4* inOutFSColor);
30
31 virtual void emitEffect(const GrProcessorStage& stage,
32 const GrProcessorKey& key,
33 const char* outColor,
34 const char* inColor,
35 int stageIndex) SK_OVERRIDE;
36
37 /**
38 * Helper for emitEffect(). Allocates texture units from the builder for eac h transform in an
39 * effect. The transforms all use adjacent texture units. They either use tw o or three of the
40 * coordinates at a given texture unit, depending on if they need perspectiv e interpolation.
41 * The expressions to access the transformed coords (i.e. 'vec2(gl_TexCoord[ 0])') as well as the
42 * types are appended to the TransformedCoordsArray* object, which is in tur n passed to the
43 * effect's emitCode() function.
44 */
45 void setupPathTexGen(const GrProcessorStage&, GrGLProcessor::TransformedCoor dsArray*);
46
47 virtual GrGLProgramEffects* getProgramEffects() SK_OVERRIDE { return fProgra mEffects.get(); }
48
49 typedef GrGLProgramDesc::EffectKeyProvider EffectKeyProvider;
50
51 SkAutoTDelete<GrGLPathTexGenProgramEffects> fProgramEffects;
52
53 typedef GrGLProgramBuilder INHERITED;
54 };
55
56 #endif
OLDNEW
« no previous file with comments | « src/gpu/gl/GrGpuGL_program.cpp ('k') | src/gpu/gl/builders/GrGLFragmentOnlyProgramBuilder.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698