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

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

Issue 777673003: move program descriptor generation to flush (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: more cleanup Created 6 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
OLDNEW
1 /* 1 /*
2 * Copyright 2011 Google Inc. 2 * Copyright 2011 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 GrGpuGL_DEFINED 8 #ifndef GrGpuGL_DEFINED
9 #define GrGpuGL_DEFINED 9 #define GrGpuGL_DEFINED
10 10
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 const SkIRect& srcRect, 99 const SkIRect& srcRect,
100 const SkIPoint& dstPoint) SK_OVERRIDE; 100 const SkIPoint& dstPoint) SK_OVERRIDE;
101 101
102 bool canCopySurface(const GrSurface* dst, 102 bool canCopySurface(const GrSurface* dst,
103 const GrSurface* src, 103 const GrSurface* src,
104 const SkIRect& srcRect, 104 const SkIRect& srcRect,
105 const SkIPoint& dstPoint) SK_OVERRIDE; 105 const SkIPoint& dstPoint) SK_OVERRIDE;
106 106
107 protected: 107 protected:
108 virtual void buildProgramDesc(const GrOptDrawState&, 108 virtual void buildProgramDesc(const GrOptDrawState&,
109 const GrProgramDesc::DescInfo&,
110 GrGpu::DrawType, 109 GrGpu::DrawType,
111 GrProgramDesc*) SK_OVERRIDE; 110 GrProgramDesc*) SK_OVERRIDE;
112 111
113 private: 112 private:
114 // GrGpu overrides 113 // GrGpu overrides
115 virtual void onResetContext(uint32_t resetBits) SK_OVERRIDE; 114 virtual void onResetContext(uint32_t resetBits) SK_OVERRIDE;
116 115
117 virtual GrTexture* onCreateTexture(const GrSurfaceDesc& desc, 116 virtual GrTexture* onCreateTexture(const GrSurfaceDesc& desc,
118 const void* srcData, 117 const void* srcData,
119 size_t rowBytes) SK_OVERRIDE; 118 size_t rowBytes) SK_OVERRIDE;
(...skipping 28 matching lines...) Expand all
148 int left, int top, int width, int height, 147 int left, int top, int width, int height,
149 GrPixelConfig config, const void* buffer, 148 GrPixelConfig config, const void* buffer,
150 size_t rowBytes) SK_OVERRIDE; 149 size_t rowBytes) SK_OVERRIDE;
151 150
152 virtual void onResolveRenderTarget(GrRenderTarget* target) SK_OVERRIDE; 151 virtual void onResolveRenderTarget(GrRenderTarget* target) SK_OVERRIDE;
153 152
154 virtual void onDraw(const GrOptDrawState&, const GrDrawTarget::DrawInfo&) SK _OVERRIDE; 153 virtual void onDraw(const GrOptDrawState&, const GrDrawTarget::DrawInfo&) SK _OVERRIDE;
155 154
156 155
157 virtual void clearStencil(GrRenderTarget*) SK_OVERRIDE; 156 virtual void clearStencil(GrRenderTarget*) SK_OVERRIDE;
158 virtual bool flushGraphicsState(const GrOptDrawState&, DrawType) SK_OVERRIDE ; 157 virtual bool flushGraphicsState(const GrOptDrawState&,
158 const GrProgramDesc&,
159 DrawType) SK_OVERRIDE;
159 160
160 // GrDrawTarget overrides 161 // GrDrawTarget overrides
161 virtual void didAddGpuTraceMarker() SK_OVERRIDE; 162 virtual void didAddGpuTraceMarker() SK_OVERRIDE;
162 virtual void didRemoveGpuTraceMarker() SK_OVERRIDE; 163 virtual void didRemoveGpuTraceMarker() SK_OVERRIDE;
163 164
164 // binds texture unit in GL 165 // binds texture unit in GL
165 void setTextureUnit(int unitIdx); 166 void setTextureUnit(int unitIdx);
166 167
167 // Sets up vertex attribute pointers and strides. On return indexOffsetInByt es gives the offset 168 // Sets up vertex attribute pointers and strides. On return indexOffsetInByt es gives the offset
168 // an into the index buffer. It does not account for drawInfo.startIndex() b ut rather the start 169 // an into the index buffer. It does not account for drawInfo.startIndex() b ut rather the start
(...skipping 12 matching lines...) Expand all
181 bool hasExtension(const char* ext) const { return fGLContext.hasExtension(ex t); } 182 bool hasExtension(const char* ext) const { return fGLContext.hasExtension(ex t); }
182 183
183 static bool BlendCoeffReferencesConstant(GrBlendCoeff coeff); 184 static bool BlendCoeffReferencesConstant(GrBlendCoeff coeff);
184 185
185 class ProgramCache : public ::SkNoncopyable { 186 class ProgramCache : public ::SkNoncopyable {
186 public: 187 public:
187 ProgramCache(GrGpuGL* gpu); 188 ProgramCache(GrGpuGL* gpu);
188 ~ProgramCache(); 189 ~ProgramCache();
189 190
190 void abandon(); 191 void abandon();
191 GrGLProgram* getProgram(const GrOptDrawState&, DrawType); 192 GrGLProgram* getProgram(const GrOptDrawState&, const GrProgramDesc&, Dra wType);
192 193
193 private: 194 private:
194 enum { 195 enum {
195 // We may actually have kMaxEntries+1 shaders in the GL context beca use we create a new 196 // We may actually have kMaxEntries+1 shaders in the GL context beca use we create a new
196 // shader before evicting from the cache. 197 // shader before evicting from the cache.
197 kMaxEntries = 128, 198 kMaxEntries = 128,
198 kHashBits = 6, 199 kHashBits = 6,
199 }; 200 };
200 201
201 struct Entry; 202 struct Entry;
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 449
449 // we record what stencil format worked last time to hopefully exit early 450 // we record what stencil format worked last time to hopefully exit early
450 // from our loop that tries stencil formats and calls check fb status. 451 // from our loop that tries stencil formats and calls check fb status.
451 int fLastSuccessfulStencilFmtIdx; 452 int fLastSuccessfulStencilFmtIdx;
452 453
453 typedef GrGpu INHERITED; 454 typedef GrGpu INHERITED;
454 friend class GrGLPathRendering; // For accessing setTextureUnit. 455 friend class GrGLPathRendering; // For accessing setTextureUnit.
455 }; 456 };
456 457
457 #endif 458 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698