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

Side by Side Diff: src/gpu/gl/GrGLProcessor.h

Issue 1428543003: Create GLSL base class for ProgramDataManager (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: add space 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
« no previous file with comments | « src/gpu/gl/GrGLPrimitiveProcessor.h ('k') | src/gpu/gl/GrGLProgram.h » ('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 * 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 #ifndef GrGLProcessor_DEFINED 8 #ifndef GrGLProcessor_DEFINED
9 #define GrGLProcessor_DEFINED 9 #define GrGLProcessor_DEFINED
10 10
11 #include "GrGLProgramDataManager.h"
12 #include "GrProcessor.h" 11 #include "GrProcessor.h"
12 #include "GrShaderVar.h"
13 #include "GrTextureAccess.h" 13 #include "GrTextureAccess.h"
14 #include "glsl/GrGLSLProgramDataManager.h"
14 15
15 /** @file 16 /** @file
16 This file contains specializations for OpenGL of the shader stages declared in 17 This file contains specializations for OpenGL of the shader stages declared in
17 include/gpu/GrProcessor.h. Objects of type GrGLProcessor are responsible for emitting the 18 include/gpu/GrProcessor.h. Objects of type GrGLProcessor are responsible for emitting the
18 GLSL code that implements a GrProcessor and for uploading uniforms at draw t ime. If they don't 19 GLSL code that implements a GrProcessor and for uploading uniforms at draw t ime. If they don't
19 always emit the same GLSL code, they must have a function: 20 always emit the same GLSL code, they must have a function:
20 static inline void GenKey(const GrProcessor&, const GrGLSLCaps&, GrProce ssorKeyBuilder*) 21 static inline void GenKey(const GrProcessor&, const GrGLSLCaps&, GrProce ssorKeyBuilder*)
21 that is used to implement a program cache. When two GrProcessors produce the same key this means 22 that is used to implement a program cache. When two GrProcessors produce the same key this means
22 that their GrGLProcessors would emit the same GLSL code. 23 that their GrGLProcessors would emit the same GLSL code.
23 24
24 The GrGLProcessor subclass must also have a constructor of the form: 25 The GrGLProcessor subclass must also have a constructor of the form:
25 ProcessorSubclass::ProcessorSubclass(const GrBackendProcessorFactory&, c onst GrProcessor&) 26 ProcessorSubclass::ProcessorSubclass(const GrBackendProcessorFactory&, c onst GrProcessor&)
26 27
27 These objects are created by the factory object returned by the GrProcessor: :getFactory(). 28 These objects are created by the factory object returned by the GrProcessor: :getFactory().
28 */ 29 */
29 // TODO delete this and make TextureSampler its own thing 30 // TODO delete this and make TextureSampler its own thing
30 class GrGLProcessor { 31 class GrGLProcessor {
31 public: 32 public:
32 typedef GrGLProgramDataManager::UniformHandle UniformHandle; 33 typedef GrGLSLProgramDataManager::UniformHandle UniformHandle;
33 34
34 /** 35 /**
35 * Passed to GrGLProcessors so they can add transformed coordinates to their shader code. 36 * Passed to GrGLProcessors so they can add transformed coordinates to their shader code.
36 */ 37 */
37 typedef GrShaderVar TransformedCoords; 38 typedef GrShaderVar TransformedCoords;
38 typedef SkTArray<GrShaderVar> TransformedCoordsArray; 39 typedef SkTArray<GrShaderVar> TransformedCoordsArray;
39 40
40 /** 41 /**
41 * Passed to GrGLProcessors so they can add texture reads to their shader co de. 42 * Passed to GrGLProcessors so they can add texture reads to their shader co de.
42 */ 43 */
(...skipping 16 matching lines...) Expand all
59 uint32_t fConfigComponentMask; 60 uint32_t fConfigComponentMask;
60 char fSwizzle[5]; 61 char fSwizzle[5];
61 62
62 friend class GrGLShaderBuilder; 63 friend class GrGLShaderBuilder;
63 }; 64 };
64 65
65 typedef SkTArray<TextureSampler> TextureSamplerArray; 66 typedef SkTArray<TextureSampler> TextureSamplerArray;
66 }; 67 };
67 68
68 #endif 69 #endif
OLDNEW
« no previous file with comments | « src/gpu/gl/GrGLPrimitiveProcessor.h ('k') | src/gpu/gl/GrGLProgram.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698