Index: ui/gl/gl_image_io_surface.h |
diff --git a/ui/gl/gl_image_io_surface.h b/ui/gl/gl_image_io_surface.h |
index d17d9eb9d0084349456bf074bb057f21e874ddca..7b68a96b6f54ac7c718de1662a80a2079440b4e2 100644 |
--- a/ui/gl/gl_image_io_surface.h |
+++ b/ui/gl/gl_image_io_surface.h |
@@ -69,6 +69,8 @@ class GL_EXPORT GLImageIOSurface : public GLImage { |
~GLImageIOSurface() override; |
private: |
+ class RGBConverter; |
+ |
const gfx::Size size_; |
const unsigned internalformat_; |
gfx::BufferFormat format_; |
@@ -77,13 +79,9 @@ class GL_EXPORT GLImageIOSurface : public GLImage { |
gfx::GenericSharedMemoryId io_surface_id_; |
base::ThreadChecker thread_checker_; |
- // GL state to support 420v IOSurface conversion to RGB. |
- unsigned framebuffer_ = 0; |
- unsigned vertex_shader_ = 0; |
- unsigned fragment_shader_ = 0; |
- unsigned program_ = 0; |
- int size_location_ = -1; |
- unsigned vertex_buffer_ = 0; |
+ // GL state to support 420v IOSurface conversion to RGB. This is retained |
+ // to avoid re-creating the necessary GL programs every frame. |
+ scoped_refptr<RGBConverter> rgb_converter_; |
DISALLOW_COPY_AND_ASSIGN(GLImageIOSurface); |
}; |