Pass gl::Context to impl methods instead of ContextImpl.
In some cases we might have to call back into the GL layer, passing
the Context, and if we just have a ContextImpl pointer this isn't
possible. It also removes the need for SafeGetImpl.
BUG=angleproject:2044
Change-Id: I6363e84b25648c992c25779d4c43f795aa2866d6
Reviewed-on: https://chromium-review.googlesource.com/516835
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/FramebufferVk.cpp b/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
index 84b8907..b7adc97 100644
--- a/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
+++ b/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
@@ -14,6 +14,8 @@
#include "common/debug.h"
#include "image_util/imageformats.h"
+#include "libANGLE/Context.h"
+#include "libANGLE/Display.h"
#include "libANGLE/formatutils.h"
#include "libANGLE/renderer/renderer_utils.h"
#include "libANGLE/renderer/vulkan/ContextVk.h"
@@ -91,17 +93,17 @@
{
}
-void FramebufferVk::destroy(ContextImpl *contextImpl)
+void FramebufferVk::destroy(const gl::Context *context)
{
- VkDevice device = GetAs<ContextVk>(contextImpl)->getDevice();
+ VkDevice device = GetImplAs<ContextVk>(context)->getDevice();
mRenderPass.destroy(device);
mFramebuffer.destroy(device);
}
-void FramebufferVk::destroyDefault(DisplayImpl *displayImpl)
+void FramebufferVk::destroyDefault(const egl::Display *display)
{
- VkDevice device = GetAs<DisplayVk>(displayImpl)->getRenderer()->getDevice();
+ VkDevice device = GetImplAs<DisplayVk>(display)->getRenderer()->getDevice();
mRenderPass.destroy(device);
mFramebuffer.destroy(device);
@@ -127,9 +129,9 @@
return gl::Error(GL_INVALID_OPERATION);
}
-gl::Error FramebufferVk::clear(ContextImpl *context, GLbitfield mask)
+gl::Error FramebufferVk::clear(const gl::Context *context, GLbitfield mask)
{
- ContextVk *contextVk = GetAs<ContextVk>(context);
+ ContextVk *contextVk = GetImplAs<ContextVk>(context);
if (mState.getDepthAttachment() && (mask & GL_DEPTH_BUFFER_BIT) != 0)
{
@@ -180,7 +182,7 @@
return gl::NoError();
}
-gl::Error FramebufferVk::clearBufferfv(ContextImpl *context,
+gl::Error FramebufferVk::clearBufferfv(const gl::Context *context,
GLenum buffer,
GLint drawbuffer,
const GLfloat *values)
@@ -189,7 +191,7 @@
return gl::Error(GL_INVALID_OPERATION);
}
-gl::Error FramebufferVk::clearBufferuiv(ContextImpl *context,
+gl::Error FramebufferVk::clearBufferuiv(const gl::Context *context,
GLenum buffer,
GLint drawbuffer,
const GLuint *values)
@@ -198,7 +200,7 @@
return gl::Error(GL_INVALID_OPERATION);
}
-gl::Error FramebufferVk::clearBufferiv(ContextImpl *context,
+gl::Error FramebufferVk::clearBufferiv(const gl::Context *context,
GLenum buffer,
GLint drawbuffer,
const GLint *values)
@@ -207,7 +209,7 @@
return gl::Error(GL_INVALID_OPERATION);
}
-gl::Error FramebufferVk::clearBufferfi(ContextImpl *context,
+gl::Error FramebufferVk::clearBufferfi(const gl::Context *context,
GLenum buffer,
GLint drawbuffer,
GLfloat depth,
@@ -245,7 +247,7 @@
return errOrResult.getResult()->type;
}
-gl::Error FramebufferVk::readPixels(ContextImpl *context,
+gl::Error FramebufferVk::readPixels(const gl::Context *context,
const gl::Rectangle &area,
GLenum format,
GLenum type,
@@ -258,7 +260,7 @@
RenderTargetVk *renderTarget = nullptr;
ANGLE_TRY(readAttachment->getRenderTarget(&renderTarget));
- ContextVk *contextVk = GetAs<ContextVk>(context);
+ ContextVk *contextVk = GetImplAs<ContextVk>(context);
RendererVk *renderer = contextVk->getRenderer();
VkDevice device = renderer->getDevice();
@@ -318,7 +320,7 @@
return vk::NoError();
}
-gl::Error FramebufferVk::blit(ContextImpl *context,
+gl::Error FramebufferVk::blit(const gl::Context *context,
const gl::Rectangle &sourceArea,
const gl::Rectangle &destArea,
GLbitfield mask,
@@ -334,9 +336,10 @@
return bool();
}
-void FramebufferVk::syncState(ContextImpl *contextImpl, const gl::Framebuffer::DirtyBits &dirtyBits)
+void FramebufferVk::syncState(const gl::Context *context,
+ const gl::Framebuffer::DirtyBits &dirtyBits)
{
- auto contextVk = GetAs<ContextVk>(contextImpl);
+ auto contextVk = GetImplAs<ContextVk>(context);
ASSERT(dirtyBits.any());