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/FramebufferImpl.h b/src/libANGLE/renderer/FramebufferImpl.h
index b4438f8..c4871bd 100644
--- a/src/libANGLE/renderer/FramebufferImpl.h
+++ b/src/libANGLE/renderer/FramebufferImpl.h
@@ -31,8 +31,8 @@
   public:
     explicit FramebufferImpl(const gl::FramebufferState &state) : mState(state) {}
     virtual ~FramebufferImpl() {}
-    virtual void destroy(ContextImpl *contextImpl) {}
-    virtual void destroyDefault(DisplayImpl *displayImpl) {}
+    virtual void destroy(const gl::Context *context) {}
+    virtual void destroyDefault(const egl::Display *display) {}
 
     virtual gl::Error discard(size_t count, const GLenum *attachments)    = 0;
     virtual gl::Error invalidate(size_t count, const GLenum *attachments) = 0;
@@ -40,20 +40,20 @@
                                     const GLenum *attachments,
                                     const gl::Rectangle &area) = 0;
 
-    virtual gl::Error clear(ContextImpl *context, GLbitfield mask) = 0;
-    virtual gl::Error clearBufferfv(ContextImpl *context,
+    virtual gl::Error clear(const gl::Context *context, GLbitfield mask) = 0;
+    virtual gl::Error clearBufferfv(const gl::Context *context,
                                     GLenum buffer,
                                     GLint drawbuffer,
                                     const GLfloat *values) = 0;
-    virtual gl::Error clearBufferuiv(ContextImpl *context,
+    virtual gl::Error clearBufferuiv(const gl::Context *context,
                                      GLenum buffer,
                                      GLint drawbuffer,
                                      const GLuint *values) = 0;
-    virtual gl::Error clearBufferiv(ContextImpl *context,
+    virtual gl::Error clearBufferiv(const gl::Context *context,
                                     GLenum buffer,
                                     GLint drawbuffer,
                                     const GLint *values) = 0;
-    virtual gl::Error clearBufferfi(ContextImpl *context,
+    virtual gl::Error clearBufferfi(const gl::Context *context,
                                     GLenum buffer,
                                     GLint drawbuffer,
                                     GLfloat depth,
@@ -61,13 +61,13 @@
 
     virtual GLenum getImplementationColorReadFormat() const = 0;
     virtual GLenum getImplementationColorReadType() const   = 0;
-    virtual gl::Error readPixels(ContextImpl *context,
+    virtual gl::Error readPixels(const gl::Context *context,
                                  const gl::Rectangle &area,
                                  GLenum format,
                                  GLenum type,
                                  void *pixels) const = 0;
 
-    virtual gl::Error blit(ContextImpl *context,
+    virtual gl::Error blit(const gl::Context *context,
                            const gl::Rectangle &sourceArea,
                            const gl::Rectangle &destArea,
                            GLbitfield mask,
@@ -75,7 +75,7 @@
 
     virtual bool checkStatus() const = 0;
 
-    virtual void syncState(ContextImpl *contextImpl,
+    virtual void syncState(const gl::Context *context,
                            const gl::Framebuffer::DirtyBits &dirtyBits) = 0;
 
     virtual gl::Error getSamplePosition(size_t index, GLfloat *xy) const = 0;