diff options
Diffstat (limited to 'src/3rdparty/angle/src/libANGLE/Renderbuffer.h')
-rw-r--r-- | src/3rdparty/angle/src/libANGLE/Renderbuffer.h | 43 |
1 files changed, 27 insertions, 16 deletions
diff --git a/src/3rdparty/angle/src/libANGLE/Renderbuffer.h b/src/3rdparty/angle/src/libANGLE/Renderbuffer.h index 04af03e879..def18e6ff7 100644 --- a/src/3rdparty/angle/src/libANGLE/Renderbuffer.h +++ b/src/3rdparty/angle/src/libANGLE/Renderbuffer.h @@ -17,6 +17,7 @@ #include "libANGLE/Error.h" #include "libANGLE/FramebufferAttachment.h" #include "libANGLE/Image.h" +#include "libANGLE/formatutils.h" #include "libANGLE/renderer/RenderbufferImpl.h" namespace gl @@ -27,26 +28,30 @@ namespace gl // attachment point. class Renderbuffer final : public egl::ImageSibling, - public gl::FramebufferAttachmentObject, public LabeledObject { public: Renderbuffer(rx::RenderbufferImpl *impl, GLuint id); - virtual ~Renderbuffer(); + ~Renderbuffer() override; + + Error onDestroy(const Context *context) override; void setLabel(const std::string &label) override; const std::string &getLabel() const override; - Error setStorage(GLenum internalformat, size_t width, size_t height); - Error setStorageMultisample(size_t samples, GLenum internalformat, size_t width, size_t height); - Error setStorageEGLImageTarget(egl::Image *imageTarget); + Error setStorage(const Context *context, GLenum internalformat, size_t width, size_t height); + Error setStorageMultisample(const Context *context, + size_t samples, + GLenum internalformat, + size_t width, + size_t height); + Error setStorageEGLImageTarget(const Context *context, egl::Image *imageTarget); - rx::RenderbufferImpl *getImplementation(); - const rx::RenderbufferImpl *getImplementation() const; + rx::RenderbufferImpl *getImplementation() const; GLsizei getWidth() const; GLsizei getHeight() const; - GLenum getInternalFormat() const; + const Format &getFormat() const; GLsizei getSamples() const; GLuint getRedSize() const; GLuint getGreenSize() const; @@ -56,16 +61,19 @@ class Renderbuffer final : public egl::ImageSibling, GLuint getStencilSize() const; // FramebufferAttachmentObject Impl - Extents getAttachmentSize(const FramebufferAttachment::Target &target) const override; - GLenum getAttachmentInternalFormat(const FramebufferAttachment::Target &/*target*/) const override { return getInternalFormat(); } - GLsizei getAttachmentSamples(const FramebufferAttachment::Target &/*target*/) const override { return getSamples(); } + Extents getAttachmentSize(const ImageIndex &imageIndex) const override; + const Format &getAttachmentFormat(GLenum binding, const ImageIndex &imageIndex) const override; + GLsizei getAttachmentSamples(const ImageIndex &imageIndex) const override; - void onAttach() override; - void onDetach() override; + void onAttach(const Context *context) override; + void onDetach(const Context *context) override; GLuint getId() const override; + InitState initState(const ImageIndex &imageIndex) const override; + void setInitState(const ImageIndex &imageIndex, InitState initState) override; + private: - rx::FramebufferAttachmentObjectImpl *getAttachmentImpl() const override { return mRenderbuffer; } + rx::FramebufferAttachmentObjectImpl *getAttachmentImpl() const override; rx::RenderbufferImpl *mRenderbuffer; @@ -73,10 +81,13 @@ class Renderbuffer final : public egl::ImageSibling, GLsizei mWidth; GLsizei mHeight; - GLenum mInternalFormat; + Format mFormat; GLsizei mSamples; + + // For robust resource init. + InitState mInitState; }; -} +} // namespace gl #endif // LIBANGLE_RENDERBUFFER_H_ |