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