| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 extern "C" { | 5 extern "C" { |
| 6 #include <X11/Xlib.h> | 6 #include <X11/Xlib.h> |
| 7 } | 7 } |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 | 10 |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 | 97 |
| 98 return size; | 98 return size; |
| 99 } | 99 } |
| 100 | 100 |
| 101 } // namespace | 101 } // namespace |
| 102 | 102 |
| 103 GLImageGLX::GLImageGLX(const gfx::Size& size, unsigned internalformat) | 103 GLImageGLX::GLImageGLX(const gfx::Size& size, unsigned internalformat) |
| 104 : glx_pixmap_(0), size_(size), internalformat_(internalformat) {} | 104 : glx_pixmap_(0), size_(size), internalformat_(internalformat) {} |
| 105 | 105 |
| 106 GLImageGLX::~GLImageGLX() { | 106 GLImageGLX::~GLImageGLX() { |
| 107 DCHECK_EQ(0u, glx_pixmap_); | 107 if (glx_pixmap_) |
| 108 glXDestroyGLXPixmap(gfx::GetXDisplay(), glx_pixmap_); |
| 108 } | 109 } |
| 109 | 110 |
| 110 bool GLImageGLX::Initialize(XID pixmap) { | 111 bool GLImageGLX::Initialize(XID pixmap) { |
| 111 if (!GLSurfaceGLX::IsTextureFromPixmapSupported()) { | 112 if (!GLSurfaceGLX::IsTextureFromPixmapSupported()) { |
| 112 DVLOG(0) << "GLX_EXT_texture_from_pixmap not supported."; | 113 DVLOG(0) << "GLX_EXT_texture_from_pixmap not supported."; |
| 113 return false; | 114 return false; |
| 114 } | 115 } |
| 115 | 116 |
| 116 if (!ValidFormat(internalformat_)) { | 117 if (!ValidFormat(internalformat_)) { |
| 117 DVLOG(0) << "Invalid format: " << internalformat_; | 118 DVLOG(0) << "Invalid format: " << internalformat_; |
| (...skipping 27 matching lines...) Expand all Loading... |
| 145 glx_pixmap_ = glXCreatePixmap(gfx::GetXDisplay(), *config.get(), pixmap, | 146 glx_pixmap_ = glXCreatePixmap(gfx::GetXDisplay(), *config.get(), pixmap, |
| 146 pixmap_attribs); | 147 pixmap_attribs); |
| 147 if (!glx_pixmap_) { | 148 if (!glx_pixmap_) { |
| 148 DVLOG(0) << "glXCreatePixmap failed."; | 149 DVLOG(0) << "glXCreatePixmap failed."; |
| 149 return false; | 150 return false; |
| 150 } | 151 } |
| 151 | 152 |
| 152 return true; | 153 return true; |
| 153 } | 154 } |
| 154 | 155 |
| 155 void GLImageGLX::Destroy(bool have_context) { | |
| 156 if (glx_pixmap_) { | |
| 157 glXDestroyGLXPixmap(gfx::GetXDisplay(), glx_pixmap_); | |
| 158 glx_pixmap_ = 0; | |
| 159 } | |
| 160 } | |
| 161 | |
| 162 gfx::Size GLImageGLX::GetSize() { | 156 gfx::Size GLImageGLX::GetSize() { |
| 163 return size_; | 157 return size_; |
| 164 } | 158 } |
| 165 | 159 |
| 166 unsigned GLImageGLX::GetInternalFormat() { return internalformat_; } | 160 unsigned GLImageGLX::GetInternalFormat() { return internalformat_; } |
| 167 | 161 |
| 168 bool GLImageGLX::BindTexImage(unsigned target) { | 162 bool GLImageGLX::BindTexImage(unsigned target) { |
| 169 if (!glx_pixmap_) | 163 if (!glx_pixmap_) |
| 170 return false; | 164 return false; |
| 171 | 165 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 202 return false; | 196 return false; |
| 203 } | 197 } |
| 204 | 198 |
| 205 void GLImageGLX::OnMemoryDump(base::trace_event::ProcessMemoryDump* pmd, | 199 void GLImageGLX::OnMemoryDump(base::trace_event::ProcessMemoryDump* pmd, |
| 206 uint64_t process_tracing_id, | 200 uint64_t process_tracing_id, |
| 207 const std::string& dump_name) { | 201 const std::string& dump_name) { |
| 208 // TODO(ericrk): Implement GLImage OnMemoryDump. crbug.com/514914 | 202 // TODO(ericrk): Implement GLImage OnMemoryDump. crbug.com/514914 |
| 209 } | 203 } |
| 210 | 204 |
| 211 } // namespace gl | 205 } // namespace gl |
| OLD | NEW |