diff options
Diffstat (limited to 'ui/gl/gl_image_memory.h')
-rw-r--r-- | ui/gl/gl_image_memory.h | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/ui/gl/gl_image_memory.h b/ui/gl/gl_image_memory.h index 4f1fe04..10b1a3b 100644 --- a/ui/gl/gl_image_memory.h +++ b/ui/gl/gl_image_memory.h @@ -7,8 +7,14 @@ #include "ui/gl/gl_image.h" +#if defined(OS_WIN) || defined(USE_X11) || defined(OS_ANDROID) || \ + defined(USE_OZONE) +#include <EGL/egl.h> +#include <EGL/eglext.h> +#endif + #include "base/numerics/safe_math.h" -#include "ui/gfx/buffer_types.h" +#include "ui/gfx/gpu_memory_buffer.h" namespace gfx { @@ -28,26 +34,45 @@ class GL_EXPORT GLImageMemory : public GLImage { unsigned GetInternalFormat() override; bool BindTexImage(unsigned target) override; void ReleaseTexImage(unsigned target) override {} - bool CopyTexImage(unsigned target) override; bool CopyTexSubImage(unsigned target, const Point& offset, const Rect& rect) override; + void WillUseTexImage() override; + void DidUseTexImage() override; + void WillModifyTexImage() override {} + void DidModifyTexImage() override {} bool ScheduleOverlayPlane(AcceleratedWidget widget, int z_order, OverlayTransform transform, const Rect& bounds_rect, const RectF& crop_rect) override; + // Only dumps the GLTexture portion of the memory usage. Subclasses are + // responsible for dumping the CPU-side memory. + void OnMemoryDump(base::trace_event::ProcessMemoryDump* pmd, + uint64_t process_tracing_id, + const std::string& dump_name) override; + protected: ~GLImageMemory() override; BufferFormat format() const { return format_; } private: + void DoBindTexImage(unsigned target); + const Size size_; const unsigned internalformat_; const unsigned char* memory_; BufferFormat format_; + bool in_use_; + unsigned target_; + bool need_do_bind_tex_image_; +#if defined(OS_WIN) || defined(USE_X11) || defined(OS_ANDROID) || \ + defined(USE_OZONE) + unsigned egl_texture_id_; + EGLImageKHR egl_image_; +#endif DISALLOW_COPY_AND_ASSIGN(GLImageMemory); }; |