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

Side by Side Diff: src/gpu/gl/debug/GrFBBindableObj.h

Issue 1815823002: Move SkGLContext and some GrGLInterface implementations to skgputest module (Closed) Base URL: https://chromium.googlesource.com/skia.git@debugobject
Patch Set: fix windows and android? Created 4 years, 8 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/debug/GrBufferObj.cpp ('k') | src/gpu/gl/debug/GrFakeRefObj.h » ('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 2012 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 GrFBBindableObj_DEFINED
9 #define GrFBBindableObj_DEFINED
10
11 #include "SkTDArray.h"
12 #include "GrFakeRefObj.h"
13
14 ////////////////////////////////////////////////////////////////////////////////
15 // A common base class for render buffers and textures
16 class GrFBBindableObj : public GrFakeRefObj {
17
18 public:
19 GrFBBindableObj()
20 : GrFakeRefObj() {
21 }
22
23 virtual ~GrFBBindableObj() {
24 GrAlwaysAssert(0 == fColorReferees.count());
25 GrAlwaysAssert(0 == fDepthReferees.count());
26 GrAlwaysAssert(0 == fStencilReferees.count());
27 }
28
29 void setColorBound(GrFakeRefObj *referee) {
30 fColorReferees.append(1, &referee);
31 }
32 void resetColorBound(GrFakeRefObj *referee) {
33 int index = fColorReferees.find(referee);
34 GrAlwaysAssert(0 <= index);
35 fColorReferees.removeShuffle(index);
36 }
37 bool getColorBound(GrFakeRefObj *referee) const {
38 int index = fColorReferees.find(referee);
39 return 0 <= index;
40 }
41 bool getColorBound() const {
42 return 0 != fColorReferees.count();
43 }
44
45 void setDepthBound(GrFakeRefObj *referee) {
46 fDepthReferees.append(1, &referee);
47 }
48 void resetDepthBound(GrFakeRefObj *referee) {
49 int index = fDepthReferees.find(referee);
50 GrAlwaysAssert(0 <= index);
51 fDepthReferees.removeShuffle(index);
52 }
53 bool getDepthBound(GrFakeRefObj *referee) const {
54 int index = fDepthReferees.find(referee);
55 return 0 <= index;
56 }
57 bool getDepthBound() const {
58 return 0 != fDepthReferees.count();
59 }
60
61 void setStencilBound(GrFakeRefObj *referee) {
62 fStencilReferees.append(1, &referee);
63 }
64 void resetStencilBound(GrFakeRefObj *referee) {
65 int index = fStencilReferees.find(referee);
66 GrAlwaysAssert(0 <= index);
67 fStencilReferees.removeShuffle(index);
68 }
69 bool getStencilBound(GrFakeRefObj *referee) const {
70 int index = fStencilReferees.find(referee);
71 return 0 <= index;
72 }
73 bool getStencilBound() const {
74 return 0 != fStencilReferees.count();
75 }
76
77
78 protected:
79 private:
80 SkTDArray<GrFakeRefObj *> fColorReferees; // frame buffers that use this a s a color buffer (via "glFramebufferRenderbuffer" or "glFramebufferTexture2D")
81 SkTDArray<GrFakeRefObj *> fDepthReferees; // frame buffers that use this a s a depth buffer (via "glFramebufferRenderbuffer" or "glFramebufferTexture2D")
82 SkTDArray<GrFakeRefObj *> fStencilReferees; // frame buffers that use this a s a stencil buffer (via "glFramebufferRenderbuffer" or "glFramebufferTexture2D")
83
84 typedef GrFakeRefObj INHERITED;
85 };
86
87 #endif // GrFBBindableObj_DEFINED
OLDNEW
« no previous file with comments | « src/gpu/gl/debug/GrBufferObj.cpp ('k') | src/gpu/gl/debug/GrFakeRefObj.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698