Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1487)

Unified Diff: ui/gl/gl_image_glx.cc

Issue 699643002: ui: Remove GLImageGLX. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/gl/gl_image_glx.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/gl/gl_image_glx.cc
diff --git a/ui/gl/gl_image_glx.cc b/ui/gl/gl_image_glx.cc
deleted file mode 100644
index 395636bcfee06a1a8a58657753505cb2e812a53a..0000000000000000000000000000000000000000
--- a/ui/gl/gl_image_glx.cc
+++ /dev/null
@@ -1,205 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-extern "C" {
-#include <X11/Xlib.h>
-}
-
-#include "ui/gl/gl_image_glx.h"
-
-#include "base/logging.h"
-#include "base/memory/scoped_ptr.h"
-#include "ui/gl/gl_bindings.h"
-#include "ui/gl/gl_surface_glx.h"
-
-namespace gfx {
-
-namespace {
-
-// scoped_ptr functor for XFree(). Use as follows:
-// scoped_ptr<XVisualInfo, ScopedPtrXFree> foo(...);
-// where "XVisualInfo" is any X type that is freed with XFree.
-struct ScopedPtrXFree {
- void operator()(void* x) const { ::XFree(x); }
-};
-
-bool ValidFormat(unsigned internalformat) {
- switch (internalformat) {
- case GL_RGBA:
- return true;
- default:
- return false;
- }
-}
-
-int TextureFormat(unsigned internalformat) {
- switch (internalformat) {
- case GL_RGBA:
- return GLX_TEXTURE_FORMAT_RGBA_EXT;
- default:
- NOTREACHED();
- return 0;
- }
-}
-
-int BindToTextureFormat(unsigned internalformat) {
- switch (internalformat) {
- case GL_RGBA:
- return GLX_BIND_TO_TEXTURE_RGBA_EXT;
- default:
- NOTREACHED();
- return 0;
- }
-}
-
-unsigned PixmapDepth(unsigned internalformat) {
- switch (internalformat) {
- case GL_RGBA:
- return 32u;
- default:
- NOTREACHED();
- return 0u;
- }
-}
-
-bool ActualPixmapGeometry(XID pixmap, gfx::Size* size, unsigned* depth) {
- XID root_return;
- int x_return;
- int y_return;
- unsigned width_return;
- unsigned height_return;
- unsigned border_width_return;
- unsigned depth_return;
- if (!XGetGeometry(gfx::GetXDisplay(),
- pixmap,
- &root_return,
- &x_return,
- &y_return,
- &width_return,
- &height_return,
- &border_width_return,
- &depth_return))
- return false;
-
- if (size)
- *size = gfx::Size(width_return, height_return);
- if (depth)
- *depth = depth_return;
- return true;
-}
-
-unsigned ActualPixmapDepth(XID pixmap) {
- unsigned depth;
- if (!ActualPixmapGeometry(pixmap, NULL, &depth))
- return -1;
-
- return depth;
-}
-
-gfx::Size ActualPixmapSize(XID pixmap) {
- gfx::Size size;
- if (!ActualPixmapGeometry(pixmap, &size, NULL))
- return gfx::Size();
-
- return size;
-}
-
-} // namespace anonymous
-
-GLImageGLX::GLImageGLX(const gfx::Size& size, unsigned internalformat)
- : glx_pixmap_(0), size_(size), internalformat_(internalformat) {
-}
-
-GLImageGLX::~GLImageGLX() {
- DCHECK_EQ(0u, glx_pixmap_);
-}
-
-bool GLImageGLX::Initialize(XID pixmap) {
- if (!GLSurfaceGLX::IsTextureFromPixmapSupported()) {
- DVLOG(0) << "GLX_EXT_texture_from_pixmap not supported.";
- return false;
- }
-
- if (!ValidFormat(internalformat_)) {
- DVLOG(0) << "Invalid format: " << internalformat_;
- return false;
- }
-
- DCHECK_EQ(PixmapDepth(internalformat_), ActualPixmapDepth(pixmap));
- DCHECK_EQ(size_.ToString(), ActualPixmapSize(pixmap).ToString());
-
- int config_attribs[] = {
- GLX_DRAWABLE_TYPE, GLX_PIXMAP_BIT,
- GLX_BIND_TO_TEXTURE_TARGETS_EXT, GLX_TEXTURE_2D_EXT,
- BindToTextureFormat(internalformat_), GL_TRUE,
- 0};
- int num_elements = 0;
- scoped_ptr<GLXFBConfig, ScopedPtrXFree> config(
- glXChooseFBConfig(gfx::GetXDisplay(),
- DefaultScreen(gfx::GetXDisplay()),
- config_attribs,
- &num_elements));
- if (!config.get()) {
- DVLOG(0) << "glXChooseFBConfig failed.";
- return false;
- }
- if (!num_elements) {
- DVLOG(0) << "glXChooseFBConfig returned 0 elements.";
- return false;
- }
-
- int pixmap_attribs[] = {GLX_TEXTURE_TARGET_EXT, GLX_TEXTURE_2D_EXT,
- GLX_TEXTURE_FORMAT_EXT,
- TextureFormat(internalformat_), 0};
- glx_pixmap_ = glXCreatePixmap(
- gfx::GetXDisplay(), *config.get(), pixmap, pixmap_attribs);
- if (!glx_pixmap_) {
- DVLOG(0) << "glXCreatePixmap failed.";
- return false;
- }
-
- return true;
-}
-
-void GLImageGLX::Destroy(bool have_context) {
- if (glx_pixmap_) {
- glXDestroyGLXPixmap(gfx::GetXDisplay(), glx_pixmap_);
- glx_pixmap_ = 0;
- }
-}
-
-gfx::Size GLImageGLX::GetSize() { return size_; }
-
-bool GLImageGLX::BindTexImage(unsigned target) {
- if (!glx_pixmap_)
- return false;
-
- // Requires TEXTURE_2D target.
- if (target != GL_TEXTURE_2D)
- return false;
-
- glXBindTexImageEXT(gfx::GetXDisplay(), glx_pixmap_, GLX_FRONT_LEFT_EXT, 0);
- return true;
-}
-
-void GLImageGLX::ReleaseTexImage(unsigned target) {
- DCHECK_NE(0u, glx_pixmap_);
- DCHECK_EQ(static_cast<GLenum>(GL_TEXTURE_2D), target);
-
- glXReleaseTexImageEXT(gfx::GetXDisplay(), glx_pixmap_, GLX_FRONT_LEFT_EXT);
-}
-
-bool GLImageGLX::CopyTexImage(unsigned target) {
- return false;
-}
-
-bool GLImageGLX::ScheduleOverlayPlane(gfx::AcceleratedWidget widget,
- int z_order,
- OverlayTransform transform,
- const Rect& bounds_rect,
- const RectF& crop_rect) {
- return false;
-}
-
-} // namespace gfx
« no previous file with comments | « ui/gl/gl_image_glx.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698