summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/angle/src/libANGLE/Renderbuffer.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/angle/src/libANGLE/Renderbuffer.h')
-rw-r--r--src/3rdparty/angle/src/libANGLE/Renderbuffer.h43
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_