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

Unified Diff: ui/gl/gl_surface_x11.cc

Issue 145293007: ui: No more TestCompositor. Use NullDraw contexts in unit tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: testsnulldraw: Created 6 years, 11 months 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
Index: ui/gl/gl_surface_x11.cc
diff --git a/ui/gl/gl_surface_x11.cc b/ui/gl/gl_surface_x11.cc
index 3673a1de592c98cf5787823999435358758d1de8..54c7f438829c13d5132500de38dc00b5eca9ee15 100644
--- a/ui/gl/gl_surface_x11.cc
+++ b/ui/gl/gl_surface_x11.cc
@@ -18,10 +18,6 @@
namespace gfx {
-namespace {
-Display* g_osmesa_display;
-} // namespace
-
// This OSMesa GL surface can use XLib to swap the contents of the buffer to a
// view.
class NativeViewGLSurfaceOSMesa : public GLSurfaceOSMesa {
@@ -43,6 +39,7 @@ class NativeViewGLSurfaceOSMesa : public GLSurfaceOSMesa {
virtual ~NativeViewGLSurfaceOSMesa();
private:
+ Display* xdisplay_;
GC window_graphics_context_;
gfx::AcceleratedWidget window_;
GC pixmap_graphics_context_;
@@ -80,21 +77,23 @@ bool GLSurface::InitializeOneOffInternal() {
NativeViewGLSurfaceOSMesa::NativeViewGLSurfaceOSMesa(
gfx::AcceleratedWidget window)
- : GLSurfaceOSMesa(OSMESA_BGRA, gfx::Size(1, 1)),
- window_graphics_context_(0),
- window_(window),
- pixmap_graphics_context_(0),
- pixmap_(0) {
- DCHECK(window);
+ : GLSurfaceOSMesa(OSMESA_BGRA, gfx::Size(1, 1)),
+ xdisplay_(base::MessagePumpForUI::GetDefaultXDisplay()),
+ window_graphics_context_(0),
+ window_(window),
+ pixmap_graphics_context_(0),
+ pixmap_(0) {
+ DCHECK(xdisplay_);
+ DCHECK(window_);
}
+// static
bool NativeViewGLSurfaceOSMesa::InitializeOneOff() {
static bool initialized = false;
if (initialized)
return true;
- g_osmesa_display = base::MessagePumpForUI::GetDefaultXDisplay();
- if (!g_osmesa_display) {
+ if (!base::MessagePumpForUI::GetDefaultXDisplay()) {
LOG(ERROR) << "XOpenDisplay failed.";
return false;
}
@@ -107,10 +106,7 @@ bool NativeViewGLSurfaceOSMesa::Initialize() {
if (!GLSurfaceOSMesa::Initialize())
return false;
- window_graphics_context_ = XCreateGC(g_osmesa_display,
- window_,
- 0,
- NULL);
+ window_graphics_context_ = XCreateGC(xdisplay_, window_, 0, NULL);
if (!window_graphics_context_) {
LOG(ERROR) << "XCreateGC failed.";
Destroy();
@@ -122,21 +118,21 @@ bool NativeViewGLSurfaceOSMesa::Initialize() {
void NativeViewGLSurfaceOSMesa::Destroy() {
if (pixmap_graphics_context_) {
- XFreeGC(g_osmesa_display, pixmap_graphics_context_);
+ XFreeGC(xdisplay_, pixmap_graphics_context_);
pixmap_graphics_context_ = NULL;
}
if (pixmap_) {
- XFreePixmap(g_osmesa_display, pixmap_);
+ XFreePixmap(xdisplay_, pixmap_);
pixmap_ = 0;
}
if (window_graphics_context_) {
- XFreeGC(g_osmesa_display, window_graphics_context_);
+ XFreeGC(xdisplay_, window_graphics_context_);
window_graphics_context_ = NULL;
}
- XSync(g_osmesa_display, False);
+ XSync(xdisplay_, False);
}
bool NativeViewGLSurfaceOSMesa::Resize(const gfx::Size& new_size) {
@@ -144,23 +140,23 @@ bool NativeViewGLSurfaceOSMesa::Resize(const gfx::Size& new_size) {
return false;
XWindowAttributes attributes;
- if (!XGetWindowAttributes(g_osmesa_display, window_, &attributes)) {
+ if (!XGetWindowAttributes(xdisplay_, window_, &attributes)) {
LOG(ERROR) << "XGetWindowAttributes failed for window " << window_ << ".";
return false;
}
// Destroy the previous pixmap and graphics context.
if (pixmap_graphics_context_) {
- XFreeGC(g_osmesa_display, pixmap_graphics_context_);
+ XFreeGC(xdisplay_, pixmap_graphics_context_);
pixmap_graphics_context_ = NULL;
}
if (pixmap_) {
- XFreePixmap(g_osmesa_display, pixmap_);
+ XFreePixmap(xdisplay_, pixmap_);
pixmap_ = 0;
}
// Recreate a pixmap to hold the frame.
- pixmap_ = XCreatePixmap(g_osmesa_display,
+ pixmap_ = XCreatePixmap(xdisplay_,
window_,
new_size.width(),
new_size.height(),
@@ -171,7 +167,7 @@ bool NativeViewGLSurfaceOSMesa::Resize(const gfx::Size& new_size) {
}
// Recreate a graphics context for the pixmap.
- pixmap_graphics_context_ = XCreateGC(g_osmesa_display, pixmap_, 0, NULL);
+ pixmap_graphics_context_ = XCreateGC(xdisplay_, pixmap_, 0, NULL);
if (!pixmap_graphics_context_) {
LOG(ERROR) << "XCreateGC failed";
return false;
@@ -192,13 +188,13 @@ bool NativeViewGLSurfaceOSMesa::SwapBuffers() {
gfx::Size size = GetSize();
XWindowAttributes attributes;
- if (!XGetWindowAttributes(g_osmesa_display, window_, &attributes)) {
+ if (!XGetWindowAttributes(xdisplay_, window_, &attributes)) {
LOG(ERROR) << "XGetWindowAttributes failed for window " << window_ << ".";
return false;
}
// Copy the frame into the pixmap.
- gfx::PutARGBImage(g_osmesa_display,
+ gfx::PutARGBImage(xdisplay_,
attributes.visual,
attributes.depth,
pixmap_,
@@ -208,13 +204,16 @@ bool NativeViewGLSurfaceOSMesa::SwapBuffers() {
size.height());
// Copy the pixmap to the window.
- XCopyArea(g_osmesa_display,
+ XCopyArea(xdisplay_,
pixmap_,
window_,
window_graphics_context_,
- 0, 0,
- size.width(), size.height(),
- 0, 0);
+ 0,
+ 0,
+ size.width(),
+ size.height(),
+ 0,
+ 0);
return true;
}
@@ -234,13 +233,13 @@ bool NativeViewGLSurfaceOSMesa::PostSubBuffer(
y = size.height() - y - height;
XWindowAttributes attributes;
- if (!XGetWindowAttributes(g_osmesa_display, window_, &attributes)) {
+ if (!XGetWindowAttributes(xdisplay_, window_, &attributes)) {
LOG(ERROR) << "XGetWindowAttributes failed for window " << window_ << ".";
return false;
}
// Copy the frame into the pixmap.
- gfx::PutARGBImage(g_osmesa_display,
+ gfx::PutARGBImage(xdisplay_,
attributes.visual,
attributes.depth,
pixmap_,
@@ -248,19 +247,24 @@ bool NativeViewGLSurfaceOSMesa::PostSubBuffer(
static_cast<const uint8*>(GetHandle()),
size.width(),
size.height(),
- x, y,
- x, y,
+ x,
+ y,
+ x,
+ y,
width,
height);
// Copy the pixmap to the window.
- XCopyArea(g_osmesa_display,
+ XCopyArea(xdisplay_,
pixmap_,
window_,
window_graphics_context_,
- x, y,
- width, height,
- x, y);
+ x,
+ y,
+ width,
+ height,
+ x,
+ y);
return true;
}

Powered by Google App Engine
This is Rietveld 408576698