| Index: trunk/src/content/browser/compositor/software_output_device_x11.cc
|
| ===================================================================
|
| --- trunk/src/content/browser/compositor/software_output_device_x11.cc (revision 245194)
|
| +++ trunk/src/content/browser/compositor/software_output_device_x11.cc (working copy)
|
| @@ -1,70 +0,0 @@
|
| -// Copyright 2014 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 "content/browser/compositor/software_output_device_x11.h"
|
| -
|
| -#include <X11/Xlib.h>
|
| -#include <X11/Xutil.h>
|
| -
|
| -#include "content/public/browser/browser_thread.h"
|
| -#include "third_party/skia/include/core/SkBitmap.h"
|
| -#include "third_party/skia/include/core/SkDevice.h"
|
| -#include "ui/compositor/compositor.h"
|
| -#include "ui/gfx/x/x11_types.h"
|
| -
|
| -namespace content {
|
| -
|
| -SoftwareOutputDeviceX11::SoftwareOutputDeviceX11(ui::Compositor* compositor)
|
| - : compositor_(compositor), display_(gfx::GetXDisplay()), gc_(NULL) {
|
| - // TODO(skaslev) Remove this when crbug.com/180702 is fixed.
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| -
|
| - gc_ = XCreateGC(display_, compositor_->widget(), 0, NULL);
|
| - if (!XGetWindowAttributes(display_, compositor_->widget(), &attributes_)) {
|
| - LOG(ERROR) << "XGetWindowAttributes failed for window "
|
| - << compositor_->widget();
|
| - return;
|
| - }
|
| -}
|
| -
|
| -SoftwareOutputDeviceX11::~SoftwareOutputDeviceX11() {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| -
|
| - XFreeGC(display_, gc_);
|
| -}
|
| -
|
| -void SoftwareOutputDeviceX11::EndPaint(cc::SoftwareFrameData* frame_data) {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - DCHECK(device_);
|
| - DCHECK(frame_data);
|
| -
|
| - if (!device_)
|
| - return;
|
| -
|
| - SoftwareOutputDevice::EndPaint(frame_data);
|
| -
|
| - gfx::Rect rect = damage_rect_;
|
| - rect.Intersect(gfx::Rect(viewport_size_));
|
| - if (rect.IsEmpty())
|
| - return;
|
| -
|
| - // TODO(jbauman): Switch to XShmPutImage since it's async.
|
| - const SkBitmap& bitmap = device_->accessBitmap(false);
|
| - gfx::PutARGBImage(display_,
|
| - attributes_.visual,
|
| - attributes_.depth,
|
| - compositor_->widget(),
|
| - gc_,
|
| - static_cast<const uint8*>(bitmap.getPixels()),
|
| - viewport_size_.width(),
|
| - viewport_size_.height(),
|
| - rect.x(),
|
| - rect.y(),
|
| - rect.x(),
|
| - rect.y(),
|
| - rect.width(),
|
| - rect.height());
|
| -}
|
| -
|
| -} // namespace content
|
|
|