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

Unified Diff: chrome/gpu/gpu_backing_store_glx_context.cc

Issue 4399003: Deleted code associated with --enable-gpu-rendering and... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 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 | « chrome/gpu/gpu_backing_store_glx_context.h ('k') | chrome/gpu/gpu_backing_store_win.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/gpu/gpu_backing_store_glx_context.cc
===================================================================
--- chrome/gpu/gpu_backing_store_glx_context.cc (revision 65168)
+++ chrome/gpu/gpu_backing_store_glx_context.cc (working copy)
@@ -1,123 +0,0 @@
-// Copyright (c) 2010 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.
-
-#include "chrome/gpu/gpu_backing_store_glx_context.h"
-
-#include "app/gfx/gl/gl_bindings.h"
-#include "app/x11_util.h"
-#include "base/scoped_ptr.h"
-#include "chrome/gpu/gpu_thread.h"
-
-// Must be last.
-#include <X11/Xutil.h>
-
-GpuBackingStoreGLXContext::GpuBackingStoreGLXContext(GpuThread* gpu_thread)
- : gpu_thread_(gpu_thread),
- tried_to_init_(false),
- context_(NULL),
- previous_window_id_(0),
- frame_buffer_for_scrolling_(0),
- is_frame_buffer_bound_(false),
- temp_scroll_texture_id_(0) {
-}
-
-GpuBackingStoreGLXContext::~GpuBackingStoreGLXContext() {
- if (temp_scroll_texture_id_) {
- glDeleteTextures(1, &temp_scroll_texture_id_);
- temp_scroll_texture_id_ = 0;
- }
-
- if (frame_buffer_for_scrolling_)
- glDeleteFramebuffersEXT(1, &frame_buffer_for_scrolling_);
-
- if (context_)
- glXDestroyContext(gpu_thread_->display(), context_);
-}
-
-GLXContext GpuBackingStoreGLXContext::BindContext(XID window_id) {
- DCHECK(!is_frame_buffer_bound_);
-
- if (tried_to_init_) {
- if (!context_)
- return NULL;
- if (!previous_window_id_ || previous_window_id_ != window_id) {
- bool success = glXMakeCurrent(gpu_thread_->display(), window_id,
- context_);
- DCHECK(success);
- }
- previous_window_id_ = window_id;
- return context_;
- }
- tried_to_init_ = true;
-
- int attrib_list[] = { GLX_RGBA, GLX_DOUBLEBUFFER, 0 };
- scoped_ptr_malloc<XVisualInfo, ScopedPtrXFree> visual_info(
- glXChooseVisual(gpu_thread_->display(), 0, attrib_list));
- if (!visual_info.get())
- return NULL;
-
- context_ = glXCreateContext(gpu_thread_->display(), visual_info.get(),
- NULL, True);
- bool success = glXMakeCurrent(gpu_thread_->display(), window_id, context_);
- DCHECK(success);
- return context_;
-}
-
-bool GpuBackingStoreGLXContext::BindTextureForScrolling(
- XID window_id,
- const gfx::Size& size) {
- DCHECK(!is_frame_buffer_bound_);
- BindContext(window_id);
-
- // Create a new destination texture if the old one isn't properly sized.
- // This means we try to re-use old ones without re-creating all the texture
- // to save work in the common case of scrolling a window repeatedly that
- // doesn't change size.
- if (temp_scroll_texture_id_ == 0 ||
- size != temp_scroll_texture_size_) {
- if (!temp_scroll_texture_id_) {
- // There may be no temporary one created yet.
- glGenTextures(1, &temp_scroll_texture_id_);
- }
-
- // Create a new texture in the context with random garbage in it large
- // enough to fit the required size.
- glBindTexture(GL_TEXTURE_2D, temp_scroll_texture_id_);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, size.width(), size.height(),
- 0, GL_BGRA, GL_UNSIGNED_BYTE, NULL);
- glBindTexture(GL_TEXTURE_2D, 0);
- }
-
- if (!frame_buffer_for_scrolling_)
- glGenFramebuffersEXT(1, &frame_buffer_for_scrolling_);
- glBindFramebufferEXT(GL_FRAMEBUFFER, frame_buffer_for_scrolling_);
- is_frame_buffer_bound_ = true;
-
- // Release our color attachment.
- glFramebufferTexture2DEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
- temp_scroll_texture_id_, 0);
-
- DCHECK(glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT) ==
- GL_FRAMEBUFFER_COMPLETE_EXT);
- return true;
-}
-
-unsigned int GpuBackingStoreGLXContext::SwapTextureForScrolling(
- unsigned int old_texture,
- const gfx::Size& old_size) {
- // Unbind the framebuffer, which we expect to be bound.
- DCHECK(is_frame_buffer_bound_);
- glBindFramebufferEXT(GL_FRAMEBUFFER, 0);
- is_frame_buffer_bound_ = false;
-
- DCHECK(temp_scroll_texture_id_);
- unsigned int new_texture = temp_scroll_texture_id_;
-
- temp_scroll_texture_id_ = old_texture;
- temp_scroll_texture_size_ = old_size;
-
- return new_texture;
-}
« no previous file with comments | « chrome/gpu/gpu_backing_store_glx_context.h ('k') | chrome/gpu/gpu_backing_store_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698