Commit c2328a15 by Jamie Madill Committed by Commit Bot

Use angle::Result in front-end (Part 4)

Handles the gl::Renderbuffer class and its implementation. Bug: angleproject:2491 Change-Id: I3ef718b492dc39ba640c8f68ed80b536f89ff378 Reviewed-on: https://chromium-review.googlesource.com/c/1283309Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent 64b7c4ff
...@@ -60,7 +60,7 @@ TEST(ImageTest, RefCounting) ...@@ -60,7 +60,7 @@ TEST(ImageTest, RefCounting)
renderbuffer->addRef(); renderbuffer->addRef();
EXPECT_CALL(*renderbufferImpl, setStorageEGLImageTarget(_, _)) EXPECT_CALL(*renderbufferImpl, setStorageEGLImageTarget(_, _))
.WillOnce(Return(gl::NoError())) .WillOnce(Return(angle::Result::Continue()))
.RetiresOnSaturation(); .RetiresOnSaturation();
EXPECT_FALSE(renderbuffer->setStorageEGLImageTarget(nullptr, image).isError()); EXPECT_FALSE(renderbuffer->setStorageEGLImageTarget(nullptr, image).isError());
...@@ -71,7 +71,9 @@ TEST(ImageTest, RefCounting) ...@@ -71,7 +71,9 @@ TEST(ImageTest, RefCounting)
EXPECT_EQ(1u, renderbuffer->getRefCount()); EXPECT_EQ(1u, renderbuffer->getRefCount());
// Simulate deletion of the texture and verify that it is deleted but the image still exists // Simulate deletion of the texture and verify that it is deleted but the image still exists
EXPECT_CALL(*imageImpl, orphan(_, _)).WillOnce(Return(gl::NoError())).RetiresOnSaturation(); EXPECT_CALL(*imageImpl, orphan(_, _))
.WillOnce(Return(angle::Result::Continue()))
.RetiresOnSaturation();
EXPECT_CALL(*textureImpl, destructor()).Times(1).RetiresOnSaturation(); EXPECT_CALL(*textureImpl, destructor()).Times(1).RetiresOnSaturation();
texture->release(nullptr); texture->release(nullptr);
EXPECT_EQ(2u, image->getRefCount()); EXPECT_EQ(2u, image->getRefCount());
...@@ -85,7 +87,9 @@ TEST(ImageTest, RefCounting) ...@@ -85,7 +87,9 @@ TEST(ImageTest, RefCounting)
// Simulate deletion of the renderbuffer and verify that the deletion cascades to all objects // Simulate deletion of the renderbuffer and verify that the deletion cascades to all objects
EXPECT_CALL(*imageImpl, destructor()).Times(1).RetiresOnSaturation(); EXPECT_CALL(*imageImpl, destructor()).Times(1).RetiresOnSaturation();
EXPECT_CALL(*imageImpl, orphan(_, _)).WillOnce(Return(gl::NoError())).RetiresOnSaturation(); EXPECT_CALL(*imageImpl, orphan(_, _))
.WillOnce(Return(angle::Result::Continue()))
.RetiresOnSaturation();
EXPECT_CALL(*renderbufferImpl, destructor()).Times(1).RetiresOnSaturation(); EXPECT_CALL(*renderbufferImpl, destructor()).Times(1).RetiresOnSaturation();
...@@ -107,7 +111,7 @@ TEST(ImageTest, RespecificationReleasesReferences) ...@@ -107,7 +111,7 @@ TEST(ImageTest, RespecificationReleasesReferences)
gl::PixelUnpackState defaultUnpackState; gl::PixelUnpackState defaultUnpackState;
EXPECT_CALL(*textureImpl, setImage(_, _, _, _, _, _, _, _)) EXPECT_CALL(*textureImpl, setImage(_, _, _, _, _, _, _, _))
.WillOnce(Return(gl::NoError())) .WillOnce(Return(angle::Result::Continue()))
.RetiresOnSaturation(); .RetiresOnSaturation();
EXPECT_FALSE(texture EXPECT_FALSE(texture
->setImage(nullptr, defaultUnpackState, gl::TextureTarget::_2D, 0, GL_RGBA8, ->setImage(nullptr, defaultUnpackState, gl::TextureTarget::_2D, 0, GL_RGBA8,
...@@ -128,9 +132,11 @@ TEST(ImageTest, RespecificationReleasesReferences) ...@@ -128,9 +132,11 @@ TEST(ImageTest, RespecificationReleasesReferences)
// Respecify the texture and verify that the image is orpahaned // Respecify the texture and verify that the image is orpahaned
rx::MockImageImpl *imageImpl = static_cast<rx::MockImageImpl *>(image->getImplementation()); rx::MockImageImpl *imageImpl = static_cast<rx::MockImageImpl *>(image->getImplementation());
EXPECT_CALL(*imageImpl, orphan(_, _)).WillOnce(Return(gl::NoError())).RetiresOnSaturation(); EXPECT_CALL(*imageImpl, orphan(_, _))
.WillOnce(Return(angle::Result::Continue()))
.RetiresOnSaturation();
EXPECT_CALL(*textureImpl, setImage(_, _, _, _, _, _, _, _)) EXPECT_CALL(*textureImpl, setImage(_, _, _, _, _, _, _, _))
.WillOnce(Return(gl::NoError())) .WillOnce(Return(angle::Result::Continue()))
.RetiresOnSaturation(); .RetiresOnSaturation();
EXPECT_FALSE(texture EXPECT_FALSE(texture
......
...@@ -80,7 +80,7 @@ void Renderbuffer::onDestroy(const Context *context) ...@@ -80,7 +80,7 @@ void Renderbuffer::onDestroy(const Context *context)
if (mImplementation) if (mImplementation)
{ {
ANGLE_SWALLOW_ERR(mImplementation->onDestroy(context)); mImplementation->onDestroy(context);
} }
} }
...@@ -98,28 +98,28 @@ const std::string &Renderbuffer::getLabel() const ...@@ -98,28 +98,28 @@ const std::string &Renderbuffer::getLabel() const
return mLabel; return mLabel;
} }
Error Renderbuffer::setStorage(const Context *context, angle::Result Renderbuffer::setStorage(const Context *context,
GLenum internalformat, GLenum internalformat,
size_t width, size_t width,
size_t height) size_t height)
{ {
ANGLE_TRY(orphanImages(context)); ANGLE_TRY_HANDLE(context, orphanImages(context));
ANGLE_TRY(mImplementation->setStorage(context, internalformat, width, height)); ANGLE_TRY(mImplementation->setStorage(context, internalformat, width, height));
mState.update(static_cast<GLsizei>(width), static_cast<GLsizei>(height), Format(internalformat), mState.update(static_cast<GLsizei>(width), static_cast<GLsizei>(height), Format(internalformat),
0, InitState::MayNeedInit); 0, InitState::MayNeedInit);
onStorageChange(context); onStorageChange(context);
return NoError(); return angle::Result::Continue();
} }
Error Renderbuffer::setStorageMultisample(const Context *context, angle::Result Renderbuffer::setStorageMultisample(const Context *context,
size_t samples, size_t samples,
GLenum internalformat, GLenum internalformat,
size_t width, size_t width,
size_t height) size_t height)
{ {
ANGLE_TRY(orphanImages(context)); ANGLE_TRY_HANDLE(context, orphanImages(context));
ANGLE_TRY( ANGLE_TRY(
mImplementation->setStorageMultisample(context, samples, internalformat, width, height)); mImplementation->setStorageMultisample(context, samples, internalformat, width, height));
...@@ -127,12 +127,12 @@ Error Renderbuffer::setStorageMultisample(const Context *context, ...@@ -127,12 +127,12 @@ Error Renderbuffer::setStorageMultisample(const Context *context,
static_cast<GLsizei>(samples), InitState::MayNeedInit); static_cast<GLsizei>(samples), InitState::MayNeedInit);
onStorageChange(context); onStorageChange(context);
return NoError(); return angle::Result::Continue();
} }
Error Renderbuffer::setStorageEGLImageTarget(const Context *context, egl::Image *image) angle::Result Renderbuffer::setStorageEGLImageTarget(const Context *context, egl::Image *image)
{ {
ANGLE_TRY(orphanImages(context)); ANGLE_TRY_HANDLE(context, orphanImages(context));
ANGLE_TRY(mImplementation->setStorageEGLImageTarget(context, image)); ANGLE_TRY(mImplementation->setStorageEGLImageTarget(context, image));
setTargetImage(context, image); setTargetImage(context, image);
...@@ -141,7 +141,7 @@ Error Renderbuffer::setStorageEGLImageTarget(const Context *context, egl::Image ...@@ -141,7 +141,7 @@ Error Renderbuffer::setStorageEGLImageTarget(const Context *context, egl::Image
Format(image->getFormat()), 0, image->sourceInitState()); Format(image->getFormat()), 0, image->sourceInitState());
onStorageChange(context); onStorageChange(context);
return NoError(); return angle::Result::Continue();
} }
rx::RenderbufferImpl *Renderbuffer::getImplementation() const rx::RenderbufferImpl *Renderbuffer::getImplementation() const
......
...@@ -72,13 +72,16 @@ class Renderbuffer final : public RefCountObject, public egl::ImageSibling, publ ...@@ -72,13 +72,16 @@ class Renderbuffer final : public RefCountObject, public egl::ImageSibling, publ
void setLabel(const std::string &label) override; void setLabel(const std::string &label) override;
const std::string &getLabel() const override; const std::string &getLabel() const override;
Error setStorage(const Context *context, GLenum internalformat, size_t width, size_t height); angle::Result setStorage(const Context *context,
Error setStorageMultisample(const Context *context, GLenum internalformat,
size_t samples, size_t width,
GLenum internalformat, size_t height);
size_t width, angle::Result setStorageMultisample(const Context *context,
size_t height); size_t samples,
Error setStorageEGLImageTarget(const Context *context, egl::Image *imageTarget); GLenum internalformat,
size_t width,
size_t height);
angle::Result setStorageEGLImageTarget(const Context *context, egl::Image *imageTarget);
rx::RenderbufferImpl *getImplementation() const; rx::RenderbufferImpl *getImplementation() const;
......
...@@ -32,18 +32,19 @@ class RenderbufferImpl : public FramebufferAttachmentObjectImpl ...@@ -32,18 +32,19 @@ class RenderbufferImpl : public FramebufferAttachmentObjectImpl
public: public:
RenderbufferImpl(const gl::RenderbufferState &state) : mState(state) {} RenderbufferImpl(const gl::RenderbufferState &state) : mState(state) {}
~RenderbufferImpl() override {} ~RenderbufferImpl() override {}
virtual gl::Error onDestroy(const gl::Context *context); virtual void onDestroy(const gl::Context *context) {}
virtual gl::Error setStorage(const gl::Context *context, virtual angle::Result setStorage(const gl::Context *context,
GLenum internalformat, GLenum internalformat,
size_t width, size_t width,
size_t height) = 0; size_t height) = 0;
virtual gl::Error setStorageMultisample(const gl::Context *context, virtual angle::Result setStorageMultisample(const gl::Context *context,
size_t samples, size_t samples,
GLenum internalformat, GLenum internalformat,
size_t width, size_t width,
size_t height) = 0; size_t height) = 0;
virtual gl::Error setStorageEGLImageTarget(const gl::Context *context, egl::Image *image) = 0; virtual angle::Result setStorageEGLImageTarget(const gl::Context *context,
egl::Image *image) = 0;
// Override if accurate native memory size information is available // Override if accurate native memory size information is available
virtual GLint getMemorySize() const { return 0; } virtual GLint getMemorySize() const { return 0; }
...@@ -51,11 +52,6 @@ class RenderbufferImpl : public FramebufferAttachmentObjectImpl ...@@ -51,11 +52,6 @@ class RenderbufferImpl : public FramebufferAttachmentObjectImpl
protected: protected:
const gl::RenderbufferState &mState; const gl::RenderbufferState &mState;
}; };
inline gl::Error RenderbufferImpl::onDestroy(const gl::Context *context)
{
return gl::NoError();
}
} // namespace rx } // namespace rx
#endif // LIBANGLE_RENDERER_RENDERBUFFERIMPL_H_ #endif // LIBANGLE_RENDERER_RENDERBUFFERIMPL_H_
...@@ -23,10 +23,10 @@ class MockRenderbufferImpl : public RenderbufferImpl ...@@ -23,10 +23,10 @@ class MockRenderbufferImpl : public RenderbufferImpl
public: public:
MockRenderbufferImpl() : RenderbufferImpl(mMockState) {} MockRenderbufferImpl() : RenderbufferImpl(mMockState) {}
virtual ~MockRenderbufferImpl() { destructor(); } virtual ~MockRenderbufferImpl() { destructor(); }
MOCK_METHOD4(setStorage, gl::Error(const gl::Context *, GLenum, size_t, size_t)); MOCK_METHOD4(setStorage, angle::Result(const gl::Context *, GLenum, size_t, size_t));
MOCK_METHOD5(setStorageMultisample, MOCK_METHOD5(setStorageMultisample,
gl::Error(const gl::Context *, size_t, GLenum, size_t, size_t)); angle::Result(const gl::Context *, size_t, GLenum, size_t, size_t));
MOCK_METHOD2(setStorageEGLImageTarget, gl::Error(const gl::Context *, egl::Image *)); MOCK_METHOD2(setStorageEGLImageTarget, angle::Result(const gl::Context *, egl::Image *));
MOCK_METHOD4(getAttachmentRenderTarget, MOCK_METHOD4(getAttachmentRenderTarget,
angle::Result(const gl::Context *, angle::Result(const gl::Context *,
......
...@@ -9,10 +9,12 @@ ...@@ -9,10 +9,12 @@
#include "libANGLE/renderer/d3d/RenderbufferD3D.h" #include "libANGLE/renderer/d3d/RenderbufferD3D.h"
#include "libANGLE/Context.h"
#include "libANGLE/Image.h" #include "libANGLE/Image.h"
#include "libANGLE/renderer/d3d/ContextD3D.h"
#include "libANGLE/renderer/d3d/EGLImageD3D.h" #include "libANGLE/renderer/d3d/EGLImageD3D.h"
#include "libANGLE/renderer/d3d/RendererD3D.h"
#include "libANGLE/renderer/d3d/RenderTargetD3D.h" #include "libANGLE/renderer/d3d/RenderTargetD3D.h"
#include "libANGLE/renderer/d3d/RendererD3D.h"
namespace rx namespace rx
{ {
...@@ -27,25 +29,24 @@ RenderbufferD3D::~RenderbufferD3D() ...@@ -27,25 +29,24 @@ RenderbufferD3D::~RenderbufferD3D()
mImage = nullptr; mImage = nullptr;
} }
gl::Error RenderbufferD3D::onDestroy(const gl::Context *context) void RenderbufferD3D::onDestroy(const gl::Context *context)
{ {
SafeDelete(mRenderTarget); SafeDelete(mRenderTarget);
return gl::NoError();
} }
gl::Error RenderbufferD3D::setStorage(const gl::Context *context, angle::Result RenderbufferD3D::setStorage(const gl::Context *context,
GLenum internalformat, GLenum internalformat,
size_t width, size_t width,
size_t height) size_t height)
{ {
return setStorageMultisample(context, 0, internalformat, width, height); return setStorageMultisample(context, 0, internalformat, width, height);
} }
gl::Error RenderbufferD3D::setStorageMultisample(const gl::Context *context, angle::Result RenderbufferD3D::setStorageMultisample(const gl::Context *context,
size_t samples, size_t samples,
GLenum internalformat, GLenum internalformat,
size_t width, size_t width,
size_t height) size_t height)
{ {
// If the renderbuffer parameters are queried, the calling function // If the renderbuffer parameters are queried, the calling function
// will expect one of the valid renderbuffer formats for use in // will expect one of the valid renderbuffer formats for use in
...@@ -62,12 +63,7 @@ gl::Error RenderbufferD3D::setStorageMultisample(const gl::Context *context, ...@@ -62,12 +63,7 @@ gl::Error RenderbufferD3D::setStorageMultisample(const gl::Context *context,
// Because ES 3.0 already knows the exact number of supported samples, it would already have been // Because ES 3.0 already knows the exact number of supported samples, it would already have been
// validated and generated GL_INVALID_VALUE. // validated and generated GL_INVALID_VALUE.
const gl::TextureCaps &formatCaps = mRenderer->getNativeTextureCaps().get(creationFormat); const gl::TextureCaps &formatCaps = mRenderer->getNativeTextureCaps().get(creationFormat);
if (samples > formatCaps.getMaxSamples()) ANGLE_CHECK_HR_ALLOC(GetImplAs<ContextD3D>(context), samples <= formatCaps.getMaxSamples());
{
return gl::OutOfMemory() << "Renderbuffer format does not support " << samples
<< " samples, " << formatCaps.getMaxSamples()
<< " is the maximum.";
}
RenderTargetD3D *newRT = nullptr; RenderTargetD3D *newRT = nullptr;
ANGLE_TRY(mRenderer->createRenderTarget(context, static_cast<int>(width), ANGLE_TRY(mRenderer->createRenderTarget(context, static_cast<int>(width),
...@@ -78,15 +74,16 @@ gl::Error RenderbufferD3D::setStorageMultisample(const gl::Context *context, ...@@ -78,15 +74,16 @@ gl::Error RenderbufferD3D::setStorageMultisample(const gl::Context *context,
mImage = nullptr; mImage = nullptr;
mRenderTarget = newRT; mRenderTarget = newRT;
return gl::NoError(); return angle::Result::Continue();
} }
gl::Error RenderbufferD3D::setStorageEGLImageTarget(const gl::Context *context, egl::Image *image) angle::Result RenderbufferD3D::setStorageEGLImageTarget(const gl::Context *context,
egl::Image *image)
{ {
mImage = GetImplAs<EGLImageD3D>(image); mImage = GetImplAs<EGLImageD3D>(image);
SafeDelete(mRenderTarget); SafeDelete(mRenderTarget);
return gl::NoError(); return angle::Result::Continue();
} }
angle::Result RenderbufferD3D::getRenderTarget(const gl::Context *context, angle::Result RenderbufferD3D::getRenderTarget(const gl::Context *context,
......
...@@ -27,18 +27,18 @@ class RenderbufferD3D : public RenderbufferImpl ...@@ -27,18 +27,18 @@ class RenderbufferD3D : public RenderbufferImpl
RenderbufferD3D(const gl::RenderbufferState &state, RendererD3D *renderer); RenderbufferD3D(const gl::RenderbufferState &state, RendererD3D *renderer);
~RenderbufferD3D() override; ~RenderbufferD3D() override;
gl::Error onDestroy(const gl::Context *context) override; void onDestroy(const gl::Context *context) override;
gl::Error setStorage(const gl::Context *context, angle::Result setStorage(const gl::Context *context,
GLenum internalformat, GLenum internalformat,
size_t width, size_t width,
size_t height) override; size_t height) override;
gl::Error setStorageMultisample(const gl::Context *context, angle::Result setStorageMultisample(const gl::Context *context,
size_t samples, size_t samples,
GLenum internalformat, GLenum internalformat,
size_t width, size_t width,
size_t height) override; size_t height) override;
gl::Error setStorageEGLImageTarget(const gl::Context *context, egl::Image *image) override; angle::Result setStorageEGLImageTarget(const gl::Context *context, egl::Image *image) override;
angle::Result getRenderTarget(const gl::Context *context, RenderTargetD3D **outRenderTarget); angle::Result getRenderTarget(const gl::Context *context, RenderTargetD3D **outRenderTarget);
angle::Result getAttachmentRenderTarget(const gl::Context *context, angle::Result getAttachmentRenderTarget(const gl::Context *context,
......
...@@ -10,8 +10,10 @@ ...@@ -10,8 +10,10 @@
#include "common/debug.h" #include "common/debug.h"
#include "libANGLE/Caps.h" #include "libANGLE/Caps.h"
#include "libANGLE/Context.h"
#include "libANGLE/angletypes.h" #include "libANGLE/angletypes.h"
#include "libANGLE/renderer/gl/BlitGL.h" #include "libANGLE/renderer/gl/BlitGL.h"
#include "libANGLE/renderer/gl/ContextGL.h"
#include "libANGLE/renderer/gl/FunctionsGL.h" #include "libANGLE/renderer/gl/FunctionsGL.h"
#include "libANGLE/renderer/gl/ImageGL.h" #include "libANGLE/renderer/gl/ImageGL.h"
#include "libANGLE/renderer/gl/StateManagerGL.h" #include "libANGLE/renderer/gl/StateManagerGL.h"
...@@ -44,10 +46,10 @@ RenderbufferGL::~RenderbufferGL() ...@@ -44,10 +46,10 @@ RenderbufferGL::~RenderbufferGL()
mRenderbufferID = 0; mRenderbufferID = 0;
} }
gl::Error RenderbufferGL::setStorage(const gl::Context *context, angle::Result RenderbufferGL::setStorage(const gl::Context *context,
GLenum internalformat, GLenum internalformat,
size_t width, size_t width,
size_t height) size_t height)
{ {
mStateManager->bindRenderbuffer(GL_RENDERBUFFER, mRenderbufferID); mStateManager->bindRenderbuffer(GL_RENDERBUFFER, mRenderbufferID);
...@@ -58,14 +60,14 @@ gl::Error RenderbufferGL::setStorage(const gl::Context *context, ...@@ -58,14 +60,14 @@ gl::Error RenderbufferGL::setStorage(const gl::Context *context,
mNativeInternalFormat = renderbufferFormat.internalFormat; mNativeInternalFormat = renderbufferFormat.internalFormat;
return gl::NoError(); return angle::Result::Continue();
} }
gl::Error RenderbufferGL::setStorageMultisample(const gl::Context *context, angle::Result RenderbufferGL::setStorageMultisample(const gl::Context *context,
size_t samples, size_t samples,
GLenum internalformat, GLenum internalformat,
size_t width, size_t width,
size_t height) size_t height)
{ {
mStateManager->bindRenderbuffer(GL_RENDERBUFFER, mRenderbufferID); mStateManager->bindRenderbuffer(GL_RENDERBUFFER, mRenderbufferID);
...@@ -84,24 +86,23 @@ gl::Error RenderbufferGL::setStorageMultisample(const gl::Context *context, ...@@ -84,24 +86,23 @@ gl::Error RenderbufferGL::setStorageMultisample(const gl::Context *context,
do do
{ {
error = mFunctions->getError(); error = mFunctions->getError();
if (error == GL_OUT_OF_MEMORY) ANGLE_CHECK_GL_ALLOC(GetImplAs<ContextGL>(context), error != GL_OUT_OF_MEMORY);
{
return gl::OutOfMemory();
}
ASSERT(error == GL_NO_ERROR); ASSERT(error == GL_NO_ERROR);
} while (error != GL_NO_ERROR); } while (error != GL_NO_ERROR);
} }
mNativeInternalFormat = renderbufferFormat.internalFormat; mNativeInternalFormat = renderbufferFormat.internalFormat;
return gl::NoError(); return angle::Result::Continue();
} }
gl::Error RenderbufferGL::setStorageEGLImageTarget(const gl::Context *context, egl::Image *image) angle::Result RenderbufferGL::setStorageEGLImageTarget(const gl::Context *context,
egl::Image *image)
{ {
ImageGL *imageGL = GetImplAs<ImageGL>(image); ImageGL *imageGL = GetImplAs<ImageGL>(image);
return imageGL->setRenderbufferStorage(context, this, &mNativeInternalFormat); ANGLE_TRY_HANDLE(context,
imageGL->setRenderbufferStorage(context, this, &mNativeInternalFormat));
return angle::Result::Continue();
} }
GLuint RenderbufferGL::getRenderbufferID() const GLuint RenderbufferGL::getRenderbufferID() const
......
...@@ -35,16 +35,16 @@ class RenderbufferGL : public RenderbufferImpl ...@@ -35,16 +35,16 @@ class RenderbufferGL : public RenderbufferImpl
const gl::TextureCapsMap &textureCaps); const gl::TextureCapsMap &textureCaps);
~RenderbufferGL() override; ~RenderbufferGL() override;
gl::Error setStorage(const gl::Context *context, angle::Result setStorage(const gl::Context *context,
GLenum internalformat, GLenum internalformat,
size_t width, size_t width,
size_t height) override; size_t height) override;
gl::Error setStorageMultisample(const gl::Context *context, angle::Result setStorageMultisample(const gl::Context *context,
size_t samples, size_t samples,
GLenum internalformat, GLenum internalformat,
size_t width, size_t width,
size_t height) override; size_t height) override;
gl::Error setStorageEGLImageTarget(const gl::Context *context, egl::Image *image) override; angle::Result setStorageEGLImageTarget(const gl::Context *context, egl::Image *image) override;
angle::Result initializeContents(const gl::Context *context, angle::Result initializeContents(const gl::Context *context,
const gl::ImageIndex &imageIndex) override; const gl::ImageIndex &imageIndex) override;
......
...@@ -22,26 +22,27 @@ RenderbufferNULL::~RenderbufferNULL() ...@@ -22,26 +22,27 @@ RenderbufferNULL::~RenderbufferNULL()
{ {
} }
gl::Error RenderbufferNULL::setStorage(const gl::Context *context, angle::Result RenderbufferNULL::setStorage(const gl::Context *context,
GLenum internalformat, GLenum internalformat,
size_t width, size_t width,
size_t height) size_t height)
{ {
return gl::NoError(); return angle::Result::Continue();
} }
gl::Error RenderbufferNULL::setStorageMultisample(const gl::Context *context, angle::Result RenderbufferNULL::setStorageMultisample(const gl::Context *context,
size_t samples, size_t samples,
GLenum internalformat, GLenum internalformat,
size_t width, size_t width,
size_t height) size_t height)
{ {
return gl::NoError(); return angle::Result::Continue();
} }
gl::Error RenderbufferNULL::setStorageEGLImageTarget(const gl::Context *context, egl::Image *image) angle::Result RenderbufferNULL::setStorageEGLImageTarget(const gl::Context *context,
egl::Image *image)
{ {
return gl::NoError(); return angle::Result::Continue();
} }
angle::Result RenderbufferNULL::initializeContents(const gl::Context *context, angle::Result RenderbufferNULL::initializeContents(const gl::Context *context,
......
...@@ -21,17 +21,17 @@ class RenderbufferNULL : public RenderbufferImpl ...@@ -21,17 +21,17 @@ class RenderbufferNULL : public RenderbufferImpl
RenderbufferNULL(const gl::RenderbufferState &state); RenderbufferNULL(const gl::RenderbufferState &state);
~RenderbufferNULL() override; ~RenderbufferNULL() override;
gl::Error setStorage(const gl::Context *context, angle::Result setStorage(const gl::Context *context,
GLenum internalformat, GLenum internalformat,
size_t width, size_t width,
size_t height) override; size_t height) override;
gl::Error setStorageMultisample(const gl::Context *context, angle::Result setStorageMultisample(const gl::Context *context,
size_t samples, size_t samples,
GLenum internalformat, GLenum internalformat,
size_t width, size_t width,
size_t height) override; size_t height) override;
gl::Error setStorageEGLImageTarget(const gl::Context *context, egl::Image *image) override; angle::Result setStorageEGLImageTarget(const gl::Context *context, egl::Image *image) override;
angle::Result initializeContents(const gl::Context *context, angle::Result initializeContents(const gl::Context *context,
const gl::ImageIndex &imageIndex) override; const gl::ImageIndex &imageIndex) override;
......
...@@ -32,21 +32,19 @@ RenderbufferVk::~RenderbufferVk() ...@@ -32,21 +32,19 @@ RenderbufferVk::~RenderbufferVk()
{ {
} }
gl::Error RenderbufferVk::onDestroy(const gl::Context *context) void RenderbufferVk::onDestroy(const gl::Context *context)
{ {
ContextVk *contextVk = vk::GetImpl(context); ContextVk *contextVk = vk::GetImpl(context);
RendererVk *renderer = contextVk->getRenderer(); RendererVk *renderer = contextVk->getRenderer();
mImage.release(renderer); mImage.release(renderer);
renderer->releaseObject(renderer->getCurrentQueueSerial(), &mImageView); renderer->releaseObject(renderer->getCurrentQueueSerial(), &mImageView);
return gl::NoError();
} }
gl::Error RenderbufferVk::setStorage(const gl::Context *context, angle::Result RenderbufferVk::setStorage(const gl::Context *context,
GLenum internalformat, GLenum internalformat,
size_t width, size_t width,
size_t height) size_t height)
{ {
ContextVk *contextVk = vk::GetImpl(context); ContextVk *contextVk = vk::GetImpl(context);
RendererVk *renderer = contextVk->getRenderer(); RendererVk *renderer = contextVk->getRenderer();
...@@ -99,23 +97,24 @@ gl::Error RenderbufferVk::setStorage(const gl::Context *context, ...@@ -99,23 +97,24 @@ gl::Error RenderbufferVk::setStorage(const gl::Context *context,
} }
} }
return gl::NoError(); return angle::Result::Continue();
} }
gl::Error RenderbufferVk::setStorageMultisample(const gl::Context *context, angle::Result RenderbufferVk::setStorageMultisample(const gl::Context *context,
size_t samples, size_t samples,
GLenum internalformat, GLenum internalformat,
size_t width, size_t width,
size_t height) size_t height)
{ {
UNIMPLEMENTED(); ANGLE_VK_UNREACHABLE(vk::GetImpl(context));
return gl::InternalError(); return angle::Result::Stop();
} }
gl::Error RenderbufferVk::setStorageEGLImageTarget(const gl::Context *context, egl::Image *image) angle::Result RenderbufferVk::setStorageEGLImageTarget(const gl::Context *context,
egl::Image *image)
{ {
UNIMPLEMENTED(); ANGLE_VK_UNREACHABLE(vk::GetImpl(context));
return gl::InternalError(); return angle::Result::Stop();
} }
angle::Result RenderbufferVk::getAttachmentRenderTarget(const gl::Context *context, angle::Result RenderbufferVk::getAttachmentRenderTarget(const gl::Context *context,
......
...@@ -23,18 +23,18 @@ class RenderbufferVk : public RenderbufferImpl ...@@ -23,18 +23,18 @@ class RenderbufferVk : public RenderbufferImpl
RenderbufferVk(const gl::RenderbufferState &state); RenderbufferVk(const gl::RenderbufferState &state);
~RenderbufferVk() override; ~RenderbufferVk() override;
gl::Error onDestroy(const gl::Context *context) override; void onDestroy(const gl::Context *context) override;
gl::Error setStorage(const gl::Context *context, angle::Result setStorage(const gl::Context *context,
GLenum internalformat, GLenum internalformat,
size_t width, size_t width,
size_t height) override; size_t height) override;
gl::Error setStorageMultisample(const gl::Context *context, angle::Result setStorageMultisample(const gl::Context *context,
size_t samples, size_t samples,
GLenum internalformat, GLenum internalformat,
size_t width, size_t width,
size_t height) override; size_t height) override;
gl::Error setStorageEGLImageTarget(const gl::Context *context, egl::Image *image) override; angle::Result setStorageEGLImageTarget(const gl::Context *context, egl::Image *image) override;
angle::Result getAttachmentRenderTarget(const gl::Context *context, angle::Result getAttachmentRenderTarget(const gl::Context *context,
GLenum binding, GLenum binding,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment