Commit ce07f967 by Geoff Lang Committed by Commit Bot

Merge the Framebuffer onDestroy and onDestroyDefault methods.

Pass the proxy context to the onDestroyDefault call. BUG=angleproject:2464 Change-Id: I47f869d623e238ca3680c962387ba9359e7d3844 Reviewed-on: https://chromium-review.googlesource.com/1052220Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
parent 13455079
...@@ -530,8 +530,6 @@ Error Display::terminate() ...@@ -530,8 +530,6 @@ Error Display::terminate()
mMemoryProgramCache.clear(); mMemoryProgramCache.clear();
mProxyContext.reset(nullptr);
while (!mContextSet.empty()) while (!mContextSet.empty())
{ {
ANGLE_TRY(destroyContext(*mContextSet.begin())); ANGLE_TRY(destroyContext(*mContextSet.begin()));
...@@ -555,6 +553,9 @@ Error Display::terminate() ...@@ -555,6 +553,9 @@ Error Display::terminate()
ANGLE_TRY(destroySurface(*mState.surfaceSet.begin())); ANGLE_TRY(destroySurface(*mState.surfaceSet.begin()));
} }
// Allow the EGL objects that are being deleted to use the proxy context.
mProxyContext.reset(nullptr);
mConfigSet.clear(); mConfigSet.clear();
if (mDevice != nullptr && mDevice->getOwningDisplay() != nullptr) if (mDevice != nullptr && mDevice->getOwningDisplay() != nullptr)
......
...@@ -700,11 +700,6 @@ void Framebuffer::onDestroy(const Context *context) ...@@ -700,11 +700,6 @@ void Framebuffer::onDestroy(const Context *context)
mImpl->destroy(context); mImpl->destroy(context);
} }
void Framebuffer::destroyDefault(const egl::Display *display)
{
mImpl->destroyDefault(display);
}
void Framebuffer::setLabel(const std::string &label) void Framebuffer::setLabel(const std::string &label)
{ {
mState.mLabel = label; mState.mLabel = label;
......
...@@ -144,7 +144,6 @@ class Framebuffer final : public angle::ObserverInterface, public LabeledObject ...@@ -144,7 +144,6 @@ class Framebuffer final : public angle::ObserverInterface, public LabeledObject
~Framebuffer() override; ~Framebuffer() override;
void onDestroy(const Context *context); void onDestroy(const Context *context);
void destroyDefault(const egl::Display *display);
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;
......
...@@ -119,7 +119,7 @@ Error Surface::destroyImpl(const Display *display) ...@@ -119,7 +119,7 @@ Error Surface::destroyImpl(const Display *display)
{ {
if (mState.defaultFramebuffer) if (mState.defaultFramebuffer)
{ {
mState.defaultFramebuffer->destroyDefault(display); mState.defaultFramebuffer->onDestroy(display->getProxyContext());
} }
if (mImplementation) if (mImplementation)
{ {
......
...@@ -32,7 +32,6 @@ class FramebufferImpl : angle::NonCopyable ...@@ -32,7 +32,6 @@ class FramebufferImpl : angle::NonCopyable
explicit FramebufferImpl(const gl::FramebufferState &state) : mState(state) {} explicit FramebufferImpl(const gl::FramebufferState &state) : mState(state) {}
virtual ~FramebufferImpl() {} virtual ~FramebufferImpl() {}
virtual void destroy(const gl::Context *context) {} virtual void destroy(const gl::Context *context) {}
virtual void destroyDefault(const egl::Display *display) {}
virtual gl::Error discard(const gl::Context *context, virtual gl::Error discard(const gl::Context *context,
size_t count, size_t count,
......
...@@ -85,13 +85,6 @@ void FramebufferVk::destroy(const gl::Context *context) ...@@ -85,13 +85,6 @@ void FramebufferVk::destroy(const gl::Context *context)
renderer->releaseResource(*this, &mMaskedClearUniformBuffer.memory); renderer->releaseResource(*this, &mMaskedClearUniformBuffer.memory);
} }
void FramebufferVk::destroyDefault(const egl::Display *display)
{
VkDevice device = vk::GetImpl(display)->getRenderer()->getDevice();
mFramebuffer.destroy(device);
}
gl::Error FramebufferVk::discard(const gl::Context *context, gl::Error FramebufferVk::discard(const gl::Context *context,
size_t count, size_t count,
const GLenum *attachments) const GLenum *attachments)
......
...@@ -35,7 +35,6 @@ class FramebufferVk : public FramebufferImpl, public vk::CommandGraphResource ...@@ -35,7 +35,6 @@ class FramebufferVk : public FramebufferImpl, public vk::CommandGraphResource
~FramebufferVk() override; ~FramebufferVk() override;
void destroy(const gl::Context *context) override; void destroy(const gl::Context *context) override;
void destroyDefault(const egl::Display *display) override;
gl::Error discard(const gl::Context *context, size_t count, const GLenum *attachments) override; gl::Error discard(const gl::Context *context, size_t count, const GLenum *attachments) override;
gl::Error invalidate(const gl::Context *context, gl::Error invalidate(const gl::Context *context,
......
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