OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2012 Google Inc. | 3 * Copyright 2012 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 #ifndef GrFrameBufferObj_DEFINED | 9 #ifndef GrFrameBufferObj_DEFINED |
10 #define GrFrameBufferObj_DEFINED | 10 #define GrFrameBufferObj_DEFINED |
11 | 11 |
12 #include "GrFakeRefObj.h" | 12 #include "GrFakeRefObj.h" |
13 class GrFBBindableObj; | 13 class GrFBBindableObj; |
14 | 14 |
15 //////////////////////////////////////////////////////////////////////////////// | 15 //////////////////////////////////////////////////////////////////////////////// |
16 // TODO: when a framebuffer obj is bound the GL_SAMPLES query must return 0 | 16 // TODO: when a framebuffer obj is bound the GL_SAMPLES query must return 0 |
17 // TODO: GL_STENCIL_BITS must also be redirected to the framebuffer | 17 // TODO: GL_STENCIL_BITS must also be redirected to the framebuffer |
18 class GrFrameBufferObj : public GrFakeRefObj { | 18 class GrFrameBufferObj : public GrFakeRefObj { |
19 GR_DEFINE_CREATOR(GrFrameBufferObj); | 19 GR_DEFINE_CREATOR(GrFrameBufferObj); |
20 | 20 |
21 public: | 21 public: |
22 GrFrameBufferObj() | 22 GrFrameBufferObj() |
23 : GrFakeRefObj() | 23 : GrFakeRefObj() |
24 , fBound(false) | 24 , fBound(false) |
25 , fColorBuffer(NULL) | 25 , fColorBuffer(nullptr) |
26 , fDepthBuffer(NULL) | 26 , fDepthBuffer(nullptr) |
27 , fStencilBuffer(NULL) { | 27 , fStencilBuffer(nullptr) { |
28 } | 28 } |
29 | 29 |
30 virtual ~GrFrameBufferObj() { | 30 virtual ~GrFrameBufferObj() { |
31 fColorBuffer = NULL; | 31 fColorBuffer = nullptr; |
32 fDepthBuffer = NULL; | 32 fDepthBuffer = nullptr; |
33 fStencilBuffer = NULL; | 33 fStencilBuffer = nullptr; |
34 } | 34 } |
35 | 35 |
36 void setBound() { fBound = true; } | 36 void setBound() { fBound = true; } |
37 void resetBound() { fBound = false; } | 37 void resetBound() { fBound = false; } |
38 bool getBound() const { return fBound; } | 38 bool getBound() const { return fBound; } |
39 | 39 |
40 void setColor(GrFBBindableObj *buffer); | 40 void setColor(GrFBBindableObj *buffer); |
41 GrFBBindableObj *getColor() { return fColorBuffer; } | 41 GrFBBindableObj *getColor() { return fColorBuffer; } |
42 | 42 |
43 void setDepth(GrFBBindableObj *buffer); | 43 void setDepth(GrFBBindableObj *buffer); |
44 GrFBBindableObj *getDepth() { return fDepthBuffer; } | 44 GrFBBindableObj *getDepth() { return fDepthBuffer; } |
45 | 45 |
46 void setStencil(GrFBBindableObj *buffer); | 46 void setStencil(GrFBBindableObj *buffer); |
47 GrFBBindableObj *getStencil() { return fStencilBuffer; } | 47 GrFBBindableObj *getStencil() { return fStencilBuffer; } |
48 | 48 |
49 void deleteAction() override { | 49 void deleteAction() override { |
50 | 50 |
51 setColor(NULL); | 51 setColor(nullptr); |
52 setDepth(NULL); | 52 setDepth(nullptr); |
53 setStencil(NULL); | 53 setStencil(nullptr); |
54 | 54 |
55 this->INHERITED::deleteAction(); | 55 this->INHERITED::deleteAction(); |
56 } | 56 } |
57 | 57 |
58 protected: | 58 protected: |
59 private: | 59 private: |
60 bool fBound; // is this frame buffer currently bound via "glBindFrame
buffer"? | 60 bool fBound; // is this frame buffer currently bound via "glBindFrame
buffer"? |
61 GrFBBindableObj * fColorBuffer; | 61 GrFBBindableObj * fColorBuffer; |
62 GrFBBindableObj * fDepthBuffer; | 62 GrFBBindableObj * fDepthBuffer; |
63 GrFBBindableObj * fStencilBuffer; | 63 GrFBBindableObj * fStencilBuffer; |
64 | 64 |
65 typedef GrFakeRefObj INHERITED; | 65 typedef GrFakeRefObj INHERITED; |
66 }; | 66 }; |
67 | 67 |
68 #endif // GrFrameBufferObj_DEFINED | 68 #endif // GrFrameBufferObj_DEFINED |
OLD | NEW |