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

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

Issue 12843026: Make GrDrawTarget::Caps ref counted and GrGLCaps derive from it. (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 9 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 | Annotate | Revision Log
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 8
9 9
10 #ifndef GrGpuGL_DEFINED 10 #ifndef GrGpuGL_DEFINED
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 virtual bool readPixelsWillPayForYFlip( 50 virtual bool readPixelsWillPayForYFlip(
51 GrRenderTarget* renderTarget, 51 GrRenderTarget* renderTarget,
52 int left, int top, 52 int left, int top,
53 int width, int height, 53 int width, int height,
54 GrPixelConfig config, 54 GrPixelConfig config,
55 size_t rowBytes) const SK_OVERRIDE; 55 size_t rowBytes) const SK_OVERRIDE;
56 virtual bool fullReadPixelsIsFasterThanPartial() const SK_OVERRIDE; 56 virtual bool fullReadPixelsIsFasterThanPartial() const SK_OVERRIDE;
57 57
58 virtual void abandonResources() SK_OVERRIDE; 58 virtual void abandonResources() SK_OVERRIDE;
59 59
60 const GrGLCaps& glCaps() const { return fGLContext.info().caps(); } 60 const GrGLCaps& glCaps() const { return *fGLContext.info().caps(); }
61 61
62 // These functions should be used to bind GL objects. They track the GL stat e and skip redundant 62 // These functions should be used to bind GL objects. They track the GL stat e and skip redundant
63 // bindings. Making the equivalent glBind calls directly will confuse the st ate tracking. 63 // bindings. Making the equivalent glBind calls directly will confuse the st ate tracking.
64 void bindVertexArray(GrGLuint id) { 64 void bindVertexArray(GrGLuint id) {
65 fHWGeometryState.setVertexArrayID(this, id); 65 fHWGeometryState.setVertexArrayID(this, id);
66 } 66 }
67 void bindIndexBufferAndDefaultVertexArray(GrGLuint id) { 67 void bindIndexBufferAndDefaultVertexArray(GrGLuint id) {
68 fHWGeometryState.setIndexBufferIDOnDefaultVertexArray(this, id); 68 fHWGeometryState.setIndexBufferIDOnDefaultVertexArray(this, id);
69 } 69 }
70 void bindVertexBuffer(GrGLuint id) { 70 void bindVertexBuffer(GrGLuint id) {
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 // sets the matrix for path stenciling (uses the GL fixed pipe matrices) 211 // sets the matrix for path stenciling (uses the GL fixed pipe matrices)
212 void flushPathStencilMatrix(); 212 void flushPathStencilMatrix();
213 213
214 // flushes dithering, color-mask, and face culling stat 214 // flushes dithering, color-mask, and face culling stat
215 void flushMiscFixedFunctionState(); 215 void flushMiscFixedFunctionState();
216 216
217 // flushes the scissor. see the note on flushBoundTextureAndParams about 217 // flushes the scissor. see the note on flushBoundTextureAndParams about
218 // flushing the scissor after that function is called. 218 // flushing the scissor after that function is called.
219 void flushScissor(); 219 void flushScissor();
220 220
221 // Inits GrDrawTarget::Caps, subclass may enable additional caps.
222 void initCaps();
223
224 void initFSAASupport(); 221 void initFSAASupport();
225 222
226 // determines valid stencil formats 223 // determines valid stencil formats
227 void initStencilFormats(); 224 void initStencilFormats();
228 225
229 void setSpareTextureUnit(); 226 void setSpareTextureUnit();
230 227
231 // bound is region that may be modified and therefore has to be resolved. 228 // bound is region that may be modified and therefore has to be resolved.
232 // NULL means whole target. Can be an empty rect. 229 // NULL means whole target. Can be an empty rect.
233 void flushRenderTarget(const GrIRect* bound); 230 void flushRenderTarget(const GrIRect* bound);
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 TriState fHWWriteToColor; 421 TriState fHWWriteToColor;
425 TriState fHWDitherEnabled; 422 TriState fHWDitherEnabled;
426 GrRenderTarget* fHWBoundRenderTarget; 423 GrRenderTarget* fHWBoundRenderTarget;
427 GrTexture* fHWBoundTextures[GrDrawState::kNumStages]; 424 GrTexture* fHWBoundTextures[GrDrawState::kNumStages];
428 ///@} 425 ///@}
429 426
430 // we record what stencil format worked last time to hopefully exit early 427 // we record what stencil format worked last time to hopefully exit early
431 // from our loop that tries stencil formats and calls check fb status. 428 // from our loop that tries stencil formats and calls check fb status.
432 int fLastSuccessfulStencilFmtIdx; 429 int fLastSuccessfulStencilFmtIdx;
433 430
434 bool fPrintedCaps;
435
436 typedef GrGpu INHERITED; 431 typedef GrGpu INHERITED;
437 }; 432 };
438 433
439 #endif 434 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698