From 463c12be4e4db12f7c1632efc86a0f4dc0c5e1ec Mon Sep 17 00:00:00 2001 From: "sievers@chromium.org" Date: Sat, 15 Mar 2014 00:25:49 +0000 Subject: [PATCH] Make GLImage interface pure virtual Review URL: https://codereview.chromium.org/199783002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257260 0039d316-1c4b-4281-b951-d872f2087c98 --- content/common/gpu/stream_texture_android.cc | 9 ++++++++ content/common/gpu/stream_texture_android.h | 4 ++++ .../service/gles2_cmd_decoder_unittest.cc | 2 ++ ...ream_texture_manager_in_process_android.cc | 13 ++++++++++++ ui/gl/gl_image.cc | 21 ------------------- ui/gl/gl_image.h | 12 +++++------ ui/gl/gl_image_egl.cc | 6 ++++++ ui/gl/gl_image_egl.h | 2 ++ ui/gl/gl_image_glx.cc | 6 ++++++ ui/gl/gl_image_glx.h | 2 ++ ui/gl/gl_image_io_surface.cc | 6 ++++++ ui/gl/gl_image_io_surface.h | 2 ++ ui/gl/gl_image_shm.cc | 6 ++++++ ui/gl/gl_image_shm.h | 2 ++ ui/gl/gl_image_stub.cc | 6 ++++++ ui/gl/gl_image_stub.h | 2 ++ 16 files changed, 74 insertions(+), 27 deletions(-) diff --git a/content/common/gpu/stream_texture_android.cc b/content/common/gpu/stream_texture_android.cc index d48891aa87d0c3..50899913bb84de 100644 --- a/content/common/gpu/stream_texture_android.cc +++ b/content/common/gpu/stream_texture_android.cc @@ -195,4 +195,13 @@ void StreamTexture::OnEstablishPeer(int32 primary_id, int32 secondary_id) { process, surface_texture_, primary_id, secondary_id); } +bool StreamTexture::BindTexImage(unsigned target) { + NOTREACHED(); + return false; +} + +void StreamTexture::ReleaseTexImage(unsigned target) { + NOTREACHED(); +} + } // namespace content diff --git a/content/common/gpu/stream_texture_android.h b/content/common/gpu/stream_texture_android.h index 746ad59286cbbc..a19e2276f15aa7 100644 --- a/content/common/gpu/stream_texture_android.h +++ b/content/common/gpu/stream_texture_android.h @@ -34,8 +34,12 @@ class StreamTexture : public gfx::GLImage, // gfx::GLImage implementation: virtual void Destroy() OVERRIDE; virtual gfx::Size GetSize() OVERRIDE; + virtual bool BindTexImage(unsigned target) OVERRIDE; + virtual void ReleaseTexImage(unsigned target) OVERRIDE; virtual void WillUseTexImage() OVERRIDE; virtual void DidUseTexImage() OVERRIDE {} + virtual void WillModifyTexImage() OVERRIDE {} + virtual void DidModifyTexImage() OVERRIDE {} // GpuCommandBufferStub::DestructionObserver implementation. virtual void OnWillDestroyStub() OVERRIDE; diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc index 70562037828f18..15fd1d12785751 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc @@ -7953,6 +7953,8 @@ class MockGLImage : public gfx::GLImage { MOCK_METHOD1(ReleaseTexImage, void(unsigned)); MOCK_METHOD0(WillUseTexImage, void()); MOCK_METHOD0(DidUseTexImage, void()); + MOCK_METHOD0(WillModifyTexImage, void()); + MOCK_METHOD0(DidModifyTexImage, void()); protected: virtual ~MockGLImage() {} diff --git a/gpu/command_buffer/service/stream_texture_manager_in_process_android.cc b/gpu/command_buffer/service/stream_texture_manager_in_process_android.cc index 534166b5eb5188..a8ece57ebcd6b6 100644 --- a/gpu/command_buffer/service/stream_texture_manager_in_process_android.cc +++ b/gpu/command_buffer/service/stream_texture_manager_in_process_android.cc @@ -25,8 +25,12 @@ class GLImageImpl : public gfx::GLImage { // implement gfx::GLImage virtual void Destroy() OVERRIDE; virtual gfx::Size GetSize() OVERRIDE; + virtual bool BindTexImage(unsigned target) OVERRIDE; + virtual void ReleaseTexImage(unsigned target) OVERRIDE; virtual void WillUseTexImage() OVERRIDE; virtual void DidUseTexImage() OVERRIDE {} + virtual void WillModifyTexImage() OVERRIDE {} + virtual void DidModifyTexImage() OVERRIDE {} private: virtual ~GLImageImpl(); @@ -54,6 +58,15 @@ void GLImageImpl::WillUseTexImage() { surface_texture_->UpdateTexImage(); } +bool GLImageImpl::BindTexImage(unsigned target) { + NOTREACHED(); + return false; +} + +void GLImageImpl::ReleaseTexImage(unsigned target) { + NOTREACHED(); +} + gfx::Size GLImageImpl::GetSize() { return gfx::Size(); } diff --git a/ui/gl/gl_image.cc b/ui/gl/gl_image.cc index 686e9a03de4391..967f53c31d5864 100644 --- a/ui/gl/gl_image.cc +++ b/ui/gl/gl_image.cc @@ -10,27 +10,6 @@ namespace gfx { GLImage::GLImage() {} -bool GLImage::BindTexImage(unsigned target) { - NOTIMPLEMENTED(); - return false; -} - -void GLImage::ReleaseTexImage(unsigned target) { - NOTIMPLEMENTED(); -} - -void GLImage::WillUseTexImage() { - NOTIMPLEMENTED(); -} - -void GLImage::DidUseTexImage() { - NOTIMPLEMENTED(); -} - -void GLImage::WillModifyTexImage() {} - -void GLImage::DidModifyTexImage() {} - void GLImage::SetReleaseAfterUse() { // Default no-op implementation for workaround. } diff --git a/ui/gl/gl_image.h b/ui/gl/gl_image.h index c1358683c06247..7798423da12ed6 100644 --- a/ui/gl/gl_image.h +++ b/ui/gl/gl_image.h @@ -28,22 +28,22 @@ class GL_EXPORT GLImage : public base::RefCounted { virtual gfx::Size GetSize() = 0; // Bind image to texture currently bound to |target|. - virtual bool BindTexImage(unsigned target); + virtual bool BindTexImage(unsigned target) = 0; // Release image from texture currently bound to |target|. - virtual void ReleaseTexImage(unsigned target); + virtual void ReleaseTexImage(unsigned target) = 0; // Called before the texture is used for drawing. - virtual void WillUseTexImage(); + virtual void WillUseTexImage() = 0; // Called after the texture has been used for drawing. - virtual void DidUseTexImage(); + virtual void DidUseTexImage() = 0; // Called before the texture image data will be modified. - virtual void WillModifyTexImage(); + virtual void WillModifyTexImage() = 0; // Called after the texture image data has been modified. - virtual void DidModifyTexImage(); + virtual void DidModifyTexImage() = 0; // Indicate that image should be released after use. // (For an Android work-around only). diff --git a/ui/gl/gl_image_egl.cc b/ui/gl/gl_image_egl.cc index 997ac7a0e742d2..ddd2f6f5e29552 100644 --- a/ui/gl/gl_image_egl.cc +++ b/ui/gl/gl_image_egl.cc @@ -120,6 +120,12 @@ void GLImageEGL::DidUseTexImage() { &zero); } +void GLImageEGL::WillModifyTexImage() { +} + +void GLImageEGL::DidModifyTexImage() { +} + void GLImageEGL::SetReleaseAfterUse() { release_after_use_ = true; } diff --git a/ui/gl/gl_image_egl.h b/ui/gl/gl_image_egl.h index 31dd008059affc..5a1b5b3647c737 100644 --- a/ui/gl/gl_image_egl.h +++ b/ui/gl/gl_image_egl.h @@ -23,6 +23,8 @@ class GL_EXPORT GLImageEGL : public GLImage { virtual void ReleaseTexImage(unsigned target) OVERRIDE; virtual void WillUseTexImage() OVERRIDE; virtual void DidUseTexImage() OVERRIDE; + virtual void WillModifyTexImage() OVERRIDE; + virtual void DidModifyTexImage() OVERRIDE; virtual void SetReleaseAfterUse() OVERRIDE; protected: diff --git a/ui/gl/gl_image_glx.cc b/ui/gl/gl_image_glx.cc index bba53d5ed41a33..018c7619fcf632 100644 --- a/ui/gl/gl_image_glx.cc +++ b/ui/gl/gl_image_glx.cc @@ -183,4 +183,10 @@ void GLImageGLX::WillUseTexImage() { void GLImageGLX::DidUseTexImage() { } +void GLImageGLX::WillModifyTexImage() { +} + +void GLImageGLX::DidModifyTexImage() { +} + } // namespace gfx diff --git a/ui/gl/gl_image_glx.h b/ui/gl/gl_image_glx.h index fcd8fd19a38c09..0fe1d3efd1d190 100644 --- a/ui/gl/gl_image_glx.h +++ b/ui/gl/gl_image_glx.h @@ -25,6 +25,8 @@ class GL_EXPORT GLImageGLX : public GLImage { virtual void ReleaseTexImage(unsigned target) OVERRIDE; virtual void WillUseTexImage() OVERRIDE; virtual void DidUseTexImage() OVERRIDE; + virtual void WillModifyTexImage() OVERRIDE; + virtual void DidModifyTexImage() OVERRIDE; protected: virtual ~GLImageGLX(); diff --git a/ui/gl/gl_image_io_surface.cc b/ui/gl/gl_image_io_surface.cc index 23a77778981186..4d626512ed0952 100644 --- a/ui/gl/gl_image_io_surface.cc +++ b/ui/gl/gl_image_io_surface.cc @@ -76,4 +76,10 @@ void GLImageIOSurface::WillUseTexImage() { void GLImageIOSurface::DidUseTexImage() { } +void GLImageIOSurface::WillModifyTexImage() { +} + +void GLImageIOSurface::DidModifyTexImage() { +} + } // namespace gfx diff --git a/ui/gl/gl_image_io_surface.h b/ui/gl/gl_image_io_surface.h index 177098282a66bd..5739f47d05a875 100644 --- a/ui/gl/gl_image_io_surface.h +++ b/ui/gl/gl_image_io_surface.h @@ -25,6 +25,8 @@ class GL_EXPORT GLImageIOSurface : public GLImage { virtual void ReleaseTexImage(unsigned target) OVERRIDE; virtual void WillUseTexImage() OVERRIDE; virtual void DidUseTexImage() OVERRIDE; + virtual void WillModifyTexImage() OVERRIDE; + virtual void DidModifyTexImage() OVERRIDE; protected: virtual ~GLImageIOSurface(); diff --git a/ui/gl/gl_image_shm.cc b/ui/gl/gl_image_shm.cc index 076b1fcb79379a..40ad67a5dc363d 100644 --- a/ui/gl/gl_image_shm.cc +++ b/ui/gl/gl_image_shm.cc @@ -138,4 +138,10 @@ void GLImageShm::WillUseTexImage() { void GLImageShm::DidUseTexImage() { } +void GLImageShm::WillModifyTexImage() { +} + +void GLImageShm::DidModifyTexImage() { +} + } // namespace gfx diff --git a/ui/gl/gl_image_shm.h b/ui/gl/gl_image_shm.h index efff1ed52bc1f2..fea9d33df57136 100644 --- a/ui/gl/gl_image_shm.h +++ b/ui/gl/gl_image_shm.h @@ -23,6 +23,8 @@ class GL_EXPORT GLImageShm : public GLImage { virtual void ReleaseTexImage(unsigned target) OVERRIDE; virtual void WillUseTexImage() OVERRIDE; virtual void DidUseTexImage() OVERRIDE; + virtual void WillModifyTexImage() OVERRIDE; + virtual void DidModifyTexImage() OVERRIDE; protected: virtual ~GLImageShm(); diff --git a/ui/gl/gl_image_stub.cc b/ui/gl/gl_image_stub.cc index 36781f823467aa..2a5ecded62b881 100644 --- a/ui/gl/gl_image_stub.cc +++ b/ui/gl/gl_image_stub.cc @@ -33,4 +33,10 @@ void GLImageStub::WillUseTexImage() { void GLImageStub::DidUseTexImage() { } +void GLImageStub::WillModifyTexImage() { +} + +void GLImageStub::DidModifyTexImage() { +} + } // namespace gfx diff --git a/ui/gl/gl_image_stub.h b/ui/gl/gl_image_stub.h index e72ec3efc09673..e2593efd89e95d 100644 --- a/ui/gl/gl_image_stub.h +++ b/ui/gl/gl_image_stub.h @@ -21,6 +21,8 @@ class GL_EXPORT GLImageStub : public GLImage { virtual void ReleaseTexImage(unsigned target) OVERRIDE; virtual void WillUseTexImage() OVERRIDE; virtual void DidUseTexImage() OVERRIDE; + virtual void WillModifyTexImage() OVERRIDE; + virtual void DidModifyTexImage() OVERRIDE; protected: virtual ~GLImageStub();