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

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

Issue 1541903002: added support for PLS path rendering (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 years, 11 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
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 GrGLGpu_DEFINED 8 #ifndef GrGLGpu_DEFINED
9 #define GrGLGpu_DEFINED 9 #define GrGLGpu_DEFINED
10 10
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 127
128 GrBackendObject createTestingOnlyBackendTexture(void* pixels, int w, int h, 128 GrBackendObject createTestingOnlyBackendTexture(void* pixels, int w, int h,
129 GrPixelConfig config) const override; 129 GrPixelConfig config) const override;
130 bool isTestingOnlyBackendTexture(GrBackendObject) const override; 130 bool isTestingOnlyBackendTexture(GrBackendObject) const override;
131 void deleteTestingOnlyBackendTexture(GrBackendObject, bool abandonTexture) c onst override; 131 void deleteTestingOnlyBackendTexture(GrBackendObject, bool abandonTexture) c onst override;
132 132
133 void resetShaderCacheForTesting() const override; 133 void resetShaderCacheForTesting() const override;
134 134
135 void drawDebugWireRect(GrRenderTarget*, const SkIRect&, GrColor) override; 135 void drawDebugWireRect(GrRenderTarget*, const SkIRect&, GrColor) override;
136 136
137 void performFlushWorkaround() override;
138
137 private: 139 private:
138 GrGLGpu(GrGLContext* ctx, GrContext* context); 140 GrGLGpu(GrGLContext* ctx, GrContext* context);
139 141
140 // GrGpu overrides 142 // GrGpu overrides
141 void onResetContext(uint32_t resetBits) override; 143 void onResetContext(uint32_t resetBits) override;
142 144
143 void xferBarrier(GrRenderTarget*, GrXferBarrierType) override; 145 void xferBarrier(GrRenderTarget*, GrXferBarrierType) override;
144 146
145 GrTexture* onCreateTexture(const GrSurfaceDesc& desc, GrGpuResource::LifeCyc le lifeCycle, 147 GrTexture* onCreateTexture(const GrSurfaceDesc& desc, GrGpuResource::LifeCyc le lifeCycle,
146 const void* srcData, size_t rowBytes) override; 148 const void* srcData, size_t rowBytes) override;
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 const SkIPoint& dstPoint); 212 const SkIPoint& dstPoint);
211 void copySurfaceAsCopyTexSubImage(GrSurface* dst, 213 void copySurfaceAsCopyTexSubImage(GrSurface* dst,
212 GrSurface* src, 214 GrSurface* src,
213 const SkIRect& srcRect, 215 const SkIRect& srcRect,
214 const SkIPoint& dstPoint); 216 const SkIPoint& dstPoint);
215 bool copySurfaceAsBlitFramebuffer(GrSurface* dst, 217 bool copySurfaceAsBlitFramebuffer(GrSurface* dst,
216 GrSurface* src, 218 GrSurface* src,
217 const SkIRect& srcRect, 219 const SkIRect& srcRect,
218 const SkIPoint& dstPoint); 220 const SkIPoint& dstPoint);
219 221
222 void stampRectUsingProgram(GrGLuint program, const SkRect& bounds, GrGLint p osXformUniform,
223 GrGLuint arrayBuffer);
224
225 void setupPixelLocalStorage(const DrawArgs& args);
226
220 static bool BlendCoeffReferencesConstant(GrBlendCoeff coeff); 227 static bool BlendCoeffReferencesConstant(GrBlendCoeff coeff);
221 228
222 class ProgramCache : public ::SkNoncopyable { 229 class ProgramCache : public ::SkNoncopyable {
223 public: 230 public:
224 ProgramCache(GrGLGpu* gpu); 231 ProgramCache(GrGLGpu* gpu);
225 ~ProgramCache(); 232 ~ProgramCache();
226 233
227 void reset(); 234 void reset();
228 void abandon(); 235 void abandon();
229 GrGLProgram* refProgram(const DrawArgs&); 236 GrGLProgram* refProgram(const DrawArgs&);
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 338
332 // Must be called if bindSurfaceFBOForCopy was used to bind a surface for co pying. 339 // Must be called if bindSurfaceFBOForCopy was used to bind a surface for co pying.
333 void unbindTextureFBOForCopy(GrGLenum fboTarget, GrSurface* surface); 340 void unbindTextureFBOForCopy(GrGLenum fboTarget, GrSurface* surface);
334 341
335 SkAutoTUnref<GrGLContext> fGLContext; 342 SkAutoTUnref<GrGLContext> fGLContext;
336 343
337 void createCopyPrograms(); 344 void createCopyPrograms();
338 void createWireRectProgram(); 345 void createWireRectProgram();
339 void createUnitRectBuffer(); 346 void createUnitRectBuffer();
340 347
348 void createPLSSetupProgram();
349
341 // GL program-related state 350 // GL program-related state
342 ProgramCache* fProgramCache; 351 ProgramCache* fProgramCache;
343 352
344 /////////////////////////////////////////////////////////////////////////// 353 ///////////////////////////////////////////////////////////////////////////
345 ///@name Caching of GL State 354 ///@name Caching of GL State
346 ///@{ 355 ///@{
347 int fHWActiveTextureUnitIdx; 356 int fHWActiveTextureUnitIdx;
348 GrGLuint fHWProgramID; 357 GrGLuint fHWProgramID;
349 358
350 enum TriState { 359 enum TriState {
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 545
537 static int TextureTargetToCopyProgramIdx(GrGLenum target) { 546 static int TextureTargetToCopyProgramIdx(GrGLenum target) {
538 if (target == GR_GL_TEXTURE_2D) { 547 if (target == GR_GL_TEXTURE_2D) {
539 return 0; 548 return 0;
540 } else { 549 } else {
541 SkASSERT(target == GR_GL_TEXTURE_EXTERNAL); 550 SkASSERT(target == GR_GL_TEXTURE_EXTERNAL);
542 return 1; 551 return 1;
543 } 552 }
544 } 553 }
545 554
555 #ifdef ENABLE_PLS
bsalomon 2016/01/13 19:15:34 untab
556 struct {
557 GrGLuint fProgram;
558 GrGLint fPosXformUniform;
559 GrGLuint fArrayBuffer;
560 } fPLSSetupProgram;
561
562 bool fHWPLSEnabled;
563 #endif
564
546 typedef GrGpu INHERITED; 565 typedef GrGpu INHERITED;
547 friend class GrGLPathRendering; // For accessing setTextureUnit. 566 friend class GrGLPathRendering; // For accessing setTextureUnit.
548 }; 567 };
549 568
550 #endif 569 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698