1 //
2 // Copyright 2015 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6 
7 // RenderbufferGL.h: Defines the class interface for RenderbufferGL.
8 
9 #ifndef LIBANGLE_RENDERER_GL_RENDERBUFFERGL_H_
10 #define LIBANGLE_RENDERER_GL_RENDERBUFFERGL_H_
11 
12 #include "libANGLE/renderer/RenderbufferImpl.h"
13 
14 namespace gl
15 {
16 class TextureCapsMap;
17 }
18 
19 namespace rx
20 {
21 
22 class FunctionsGL;
23 class StateManagerGL;
24 struct WorkaroundsGL;
25 
26 class RenderbufferGL : public RenderbufferImpl
27 {
28   public:
29     RenderbufferGL(const FunctionsGL *functions,
30                    const WorkaroundsGL &workarounds,
31                    StateManagerGL *stateManager,
32                    const gl::TextureCapsMap &textureCaps);
33     ~RenderbufferGL() override;
34 
35     virtual gl::Error setStorage(GLenum internalformat, size_t width, size_t height) override;
36     virtual gl::Error setStorageMultisample(size_t samples, GLenum internalformat, size_t width, size_t height) override;
37     virtual gl::Error setStorageEGLImageTarget(egl::Image *image) override;
38 
39     GLuint getRenderbufferID() const;
40 
41   private:
42     const FunctionsGL *mFunctions;
43     const WorkaroundsGL &mWorkarounds;
44     StateManagerGL *mStateManager;
45     const gl::TextureCapsMap &mTextureCaps;
46 
47     GLuint mRenderbufferID;
48 };
49 
50 }
51 
52 #endif // LIBANGLE_RENDERER_GL_RENDERBUFFERGL_H_
53